unsigned char __fastcall twinhawkReadByte(unsigned int a) { switch (a) { case 0x500001: return (0xff - twinhawkDip[0]) & 0x0f; case 0x500003: return ((0xff - twinhawkDip[0]) & 0xf0) >> 4; case 0x500005: return (0xff - twinhawkDip[1]) & 0x0f; case 0x500007: return ((0xff - twinhawkDip[1]) & 0xf0) >> 4; // printf("DSW byte read %x\n",a); return 0xFF; } if (a==0x900001) { return twinhawkInput[0]; } if (a==0x900003) { return twinhawkInput[1]; } if (a==0x900005) { return twinhawkInput[2]; } if (a>=0x900000&&a<=0x90000f) { bprintf(PRINT_NORMAL, _T("input byte read %x\n"),a); return 0xff; } if (a==0x800002) { bprintf(PRINT_NORMAL, _T("sound byte read %x\n"),a); return 0xff; } if (a==0x800003) { return tc0140_comm_r(); } bprintf(PRINT_NORMAL, _T("unknown byte read %x\n"),a); return 0xFF; }
unsigned char __fastcall SupermanReadByte(unsigned int a) { if (a >= 0x900000 && a <= 0x900fff) { return CChip_Read((a - 0x900000) / 2); } switch (a) { case 0x500001: return (0xff - SupermanDip[0]) & 0x0f; case 0x500003: return ((0xff - SupermanDip[0]) & 0xf0) >> 4; case 0x500005: return (0xff - SupermanDip[1]) & 0x0f; case 0x500007: return ((0xff - SupermanDip[1]) & 0xf0) >> 4; case 0x800002: return 0xff; case 0x800003: return tc0140_comm_r(); } // bprintf(PRINT_NORMAL, "68000: Read Byte %06X\n", a); return 0; }
unsigned char __fastcall rastanReadByte(unsigned int a) { switch (a) { case 0x390001: return RastanInput[0]; case 0x390003: return RastanInput[1]; case 0x390005: return RastanInput[2]; case 0x390007: return RastanInput[2]; case 0x390009: return 0xff- RastanDip[0]; //dipa case 0x39000b: return 0xff - RastanDip[1]; //dipb case 0x3e0003: return tc0140_comm_r(); default: bprintf(PRINT_NORMAL, _T("readbyte %x\n"),a); return 0; } }