unsigned char __fastcall kbashReadByte(unsigned int sekAddress) { switch (sekAddress) { case 0x208011: // Player 1 inputs return DrvInput[0]; case 0x208015: // Player 2 inputs return DrvInput[1]; case 0x208019: // Other inputs return DrvInput[2]; case 0x200001: return ZX80Status(); case 0x200005: // Dipswitch 1 return DrvInput[3]; case 0x200007: // Dipswitch 2 return DrvInput[4]; case 0x200009: // Dipswitch 3 - Territory return DrvInput[5]; case 0x30000D: // VBlank return ToaVBlankRegister(); // default: // printf("Attempt to read byte value of location %x\n", sekAddress); } return 0; }
unsigned short __fastcall dogyuunReadWord(unsigned int sekAddress) { switch (sekAddress) { case 0x200010: // Player 1 inputs return DrvInput[0]; case 0x200014: // Player 2 inputs return DrvInput[1]; case 0x200018: // Other inputs return DrvInput[2]; case 0x21F004: // Dipswitch A return DrvInput[3]; case 0x21F006: // Dipswitch B return DrvInput[4]; case 0x21F008: // Dipswitch C - Territory return DrvInput[5]; case 0x21F000: return ZX80Status(); case 0x300004: return ToaGP9001ReadRAM_Hi(0); case 0x300006: return ToaGP9001ReadRAM_Lo(0); case 0x30000C: return ToaVBlankRegister(); case 0x500004: return ToaGP9001ReadRAM_Hi(1); case 0x500006: return ToaGP9001ReadRAM_Lo(1); case 0x700000: { static int i; unsigned short nStatus; i++; nStatus = 0xFFFF - (i & 0xFF); if (i & 1) { nStatus &= 0x00FF; } return nStatus; } // default: // printf("Attempt to read word value of location %x\n", sekAddress); } return 0; }
unsigned short __fastcall kbashReadWord(unsigned int sekAddress) { switch (sekAddress) { case 0x208010: // Player 1 inputs return DrvInput[0]; case 0x208014: // Player 2 inputs return DrvInput[1]; case 0x208018: // Other inputs return DrvInput[2]; case 0x200000: return ZX80Status(); case 0x200004: // Dipswitch 1 return DrvInput[3]; case 0x200006: // Dipswitch 2 return DrvInput[4]; case 0x200008: // Dipswitch 3 - Territory return DrvInput[5]; case 0x300004: return ToaGP9001ReadRAM_Hi(0); case 0x300006: return ToaGP9001ReadRAM_Lo(0); case 0x30000C: return ToaVBlankRegister(); case 0x700000: return ToaScanlineRegister(); // default: // printf("Attempt to read word value of location %x\n", sekAddress); } return 0; }