1. Inverse space kludge

2. If no VBL return value is no longer fixed at zero
This commit is contained in:
mpohoreski 2006-03-09 21:42:17 +00:00
parent bdf8dfdfe7
commit 8ae83b7199

View File

@ -939,6 +939,11 @@ BOOL Update40ColCell (int x, int y, int xpixel, int ypixel, int offset)
{ {
bool bInvert = bCharFlashing ? g_bTextFlashState : false; bool bInvert = bCharFlashing ? g_bTextFlashState : false;
// Apple ][ inits memory to FF,FF,00,00
// The 7F char is same as (inverse) space
if (ch == 0xFF)
ch = 32;
CopySource(xpixel,ypixel, CopySource(xpixel,ypixel,
14,16, 14,16,
SRCOFFS_40COL+((ch & 0x0F) << 4), SRCOFFS_40COL+((ch & 0x0F) << 4),
@ -1507,10 +1512,12 @@ BYTE __stdcall VideoCheckVbl (WORD, BYTE, BYTE, BYTE, ULONG)
69DA D0 F7 BNE $68DE 69DA D0 F7 BNE $68DE
// Karateka expects < 80 // Karateka expects < 80
// Returns 00 or FF on Apple ][
07DE AD 19 C0 LDA RDVBLBAR 07DE AD 19 C0 LDA RDVBLBAR
07E1 30 FB BMI $7DE 07E1 30 FB BMI $7DE
77A1 AD 19 C0 LDA RDVBLBAR
77A4 30 FB BMI $7DE
// Gumball expects non-zero low-nibble on VBL // Gumball expects non-zero low-nibble on VBL
BBB5 A5 60 LDA $60 BBB5 A5 60 LDA $60
BBB7 4D 50 C0 EOR TXTCLR BBB7 4D 50 C0 EOR TXTCLR
@ -1523,7 +1530,7 @@ BYTE __stdcall VideoCheckVbl (WORD, BYTE, BYTE, BYTE, ULONG)
// return MemReturnRandomData(dwVBlCounter <= nVBlStop_NTSC); // return MemReturnRandomData(dwVBlCounter <= nVBlStop_NTSC);
if (dwVBlCounter <= nVBlStop_NTSC) if (dwVBlCounter <= nVBlStop_NTSC)
return 0x00; return (BYTE)(dwVBlCounter & 0x7F); // 0x00;
else else
return 0x80 | ((BYTE)(dwVBlCounter & 1)); return 0x80 | ((BYTE)(dwVBlCounter & 1));
} }