public static ushort N1ReadWord(int address) { address &= 0xfffff; ushort result = 0; if (address >= 0 && address + 1 <= 0x1ffff) { result = (ushort)(Memory.audiorom[address] + Memory.audiorom[address + 1] * 0x100); } else if (address >= 0xa0000 && address + 1 <= 0xa3fff) { int offset = address - 0xa0000; result = (ushort)(Memory.audioram[offset] + Memory.audioram[offset + 1] * 0x100); } else if (address >= 0xa8000 && address + 1 <= 0xa803f) { int offset = (address - 0xa8000) / 2; result = Iremga20.irem_ga20_r(offset); } else if (address >= 0xa8042 && address + 1 <= 0xa8043) { result = YM2151.ym2151_status_port_0_r(); } else if (address >= 0xa8044 && address + 1 <= 0xa8045) { result = m92_soundlatch_r(); } else if (address >= 0xffff0 && address + 1 <= 0xfffff) { int offset = address - 0xe0000; result = (ushort)(Memory.mainrom[offset] + Memory.mainrom[offset + 1] * 0x100); } return(result); }
public static byte N1ReadByte(int address) { address &= 0xfffff; byte result = 0; if (address >= 0 && address <= 0x1ffff) { result = Memory.audiorom[address]; } else if (address >= 0xa0000 && address <= 0xa3fff) { int offset = address - 0xa0000; result = Memory.audioram[offset]; } else if (address >= 0xa8000 && address <= 0xa803f) { int offset = (address - 0xa8000) / 2; result = (byte)Iremga20.irem_ga20_r(offset); } else if (address >= 0xa8042 && address <= 0xa8043) { result = YM2151.ym2151_status_port_0_r(); } else if (address >= 0xa8044 && address <= 0xa8045) { result = (byte)m92_soundlatch_r(); } else if (address >= 0xffff0 && address <= 0xfffff) { int offset = address - 0xe0000; result = Memory.mainrom[offset]; } return(result); }