UINT16 __fastcall kbashReadWord(UINT32 sekAddress) { if ((sekAddress & 0xfff000) == 0x200000) { return ShareRAM[(sekAddress / 2) & 0x07ff]; } 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 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; }
UINT16 __fastcall battlegReadWord(UINT32 sekAddress) { switch (sekAddress) { case 0x21C03C: return ToaScanlineRegister(); case 0x300004: return ToaGP9001ReadRAM_Hi(0); case 0x300006: return ToaGP9001ReadRAM_Lo(0); // default: // printf("Attempt to read word value of location %x\n", sekAddress); } return 0; }
static UINT16 __fastcall kbash2ReadWord(UINT32 sekAddress) { switch (sekAddress) { case 0x200004: // Dipswitch 1 return DrvInput[3]; case 0x200008: // Dipswitch 2 return DrvInput[4]; case 0x20000c: // Dipswitch 3 - Territory return DrvInput[5]; case 0x200010: // Player 1 Input return DrvInput[0]; case 0x200014: // Player 2 Input return DrvInput[1]; case 0x200018: // System... return DrvInput[2]; case 0x200020: return MSM6295ReadStatus(1); case 0x200024: return MSM6295ReadStatus(0); case 0x20002c: return ToaScanlineRegister(); case 0x300004: return ToaGP9001ReadRAM_Hi(0); case 0x300006: return ToaGP9001ReadRAM_Lo(0); case 0x30000C: // VBlank return ToaVBlankRegister(); // 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; }
UINT16 __fastcall mahoudaiReadWord(UINT32 sekAddress) { switch (sekAddress) { case 0x21C020: // Player 1 inputs return DrvInput[0]; case 0x21C024: // Player 2 inputs return DrvInput[1]; case 0x21C028: // Other inputs return DrvInput[2]; case 0x21C02C: // Dipswitch A return DrvInput[3]; case 0x21C030: // Dipswitch B return DrvInput[4]; case 0x21C034: // Dipswitch C - Territory return DrvInput[5]; case 0x21C03C: return ToaScanlineRegister(); case 0x300004: return ToaGP9001ReadRAM_Hi(0); case 0x300006: return ToaGP9001ReadRAM_Lo(0); case 0x30000C: return ToaVBlankRegister(); default: { if ((sekAddress & 0x00FFC000) == 0x00218000) { return RamZ80[(sekAddress & 0x3FFF) >> 1]; } // bprintf(PRINT_NORMAL, "Attempt to read word value of location %x\n", sekAddress); } } return 0; }
UINT16 __fastcall batriderReadWord(UINT32 sekAddress) { switch (sekAddress) { case 0x500006: return ToaScanlineRegister(); // These addresses contain the response of the Z80 to the sound commands case 0x500008: return RamShared[4]; case 0x50000A: return RamShared[5]; case 0x50000C: // This address echos the value written to 0x500060 return nData; default: { // printf("Attempt to read %06X (word).\n", sekAddress); } } return 0; }
static UINT8 __fastcall kbash2ReadByte(UINT32 sekAddress) { switch (sekAddress) { case 0x200005: // Dipswitch 1 return DrvInput[3]; case 0x200009: // Dipswitch 2 return DrvInput[4]; case 0x20000d: // Dipswitch 3 - Territory return DrvInput[5]; case 0x200011: // Player 1 Input return DrvInput[0]; case 0x200015: // Player 2 Input return DrvInput[1]; case 0x200019: // System... return DrvInput[2]; case 0x200021: return MSM6295ReadStatus(1); case 0x200025: return MSM6295ReadStatus(0); case 0x20002D: return ToaScanlineRegister(); case 0x30000d: // VBlank return ToaVBlankRegister(); // default: // printf("Attempt to read byte value of location %x\n", sekAddress); } return 0; }