Some PPI changes, should make the PPI behave consistently on hard reset.
This commit is contained in:
@@ -34,6 +34,7 @@
|
|||||||
#include <86box/rom.h>
|
#include <86box/rom.h>
|
||||||
#include <86box/nmi.h>
|
#include <86box/nmi.h>
|
||||||
#include <86box/pic.h>
|
#include <86box/pic.h>
|
||||||
|
#include <86box/ppi.h>
|
||||||
#include <86box/timer.h>
|
#include <86box/timer.h>
|
||||||
|
|
||||||
/* The opcode of the instruction currently being executed. */
|
/* The opcode of the instruction currently being executed. */
|
||||||
@@ -978,8 +979,10 @@ reset_common(int hard)
|
|||||||
in_smm = smi_latched = 0;
|
in_smm = smi_latched = 0;
|
||||||
smi_line = smm_in_hlt = 0;
|
smi_line = smm_in_hlt = 0;
|
||||||
|
|
||||||
if (hard)
|
if (hard) {
|
||||||
smbase = 0x00030000;
|
smbase = 0x00030000;
|
||||||
|
ppi_reset();
|
||||||
|
}
|
||||||
in_sys = 0;
|
in_sys = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2039,7 +2039,7 @@ do_command:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x61:
|
case 0x61:
|
||||||
ppi.pb = val;
|
ppi.pb = (ppi.pb & 0x10) | (val & 0x0f);
|
||||||
|
|
||||||
speaker_update();
|
speaker_update();
|
||||||
speaker_gated = val & 1;
|
speaker_gated = val & 1;
|
||||||
|
Reference in New Issue
Block a user