Some PPI changes, should make the PPI behave consistently on hard reset.

This commit is contained in:
OBattler
2020-05-15 07:24:43 +02:00
parent d4f6a91e0a
commit 3d278b344f
3 changed files with 8 additions and 5 deletions

View File

@@ -34,6 +34,7 @@
#include <86box/rom.h>
#include <86box/nmi.h>
#include <86box/pic.h>
#include <86box/ppi.h>
#include <86box/timer.h>
/* The opcode of the instruction currently being executed. */
@@ -978,8 +979,10 @@ reset_common(int hard)
in_smm = smi_latched = 0;
smi_line = smm_in_hlt = 0;
if (hard)
if (hard) {
smbase = 0x00030000;
ppi_reset();
}
in_sys = 0;
}

View File

@@ -2039,7 +2039,7 @@ do_command:
break;
case 0x61:
ppi.pb = val;
ppi.pb = (ppi.pb & 0x10) | (val & 0x0f);
speaker_update();
speaker_gated = val & 1;

View File

@@ -20,8 +20,8 @@ PPI ppi;
int ppispeakon;
void ppi_reset(void)
void
ppi_reset(void)
{
ppi.pa=0x0;
ppi.pb=0x40;
memset(&ppi, 0x00, sizeof(PPI));
}