diff options
Diffstat (limited to 'src/emu/bus/a7800/xboard.c')
| -rw-r--r-- | src/emu/bus/a7800/xboard.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/emu/bus/a7800/xboard.c b/src/emu/bus/a7800/xboard.c index 66c89d3d05c..4a7d3742f1b 100644 --- a/src/emu/bus/a7800/xboard.c +++ b/src/emu/bus/a7800/xboard.c @@ -3,7 +3,7 @@ /*********************************************************************************************************** A7800 XBoarD & XM expansions emulation - + The XBoarD should be socketed in the A7800 pcb in place of the Maria chip. It adds to the system additional 128K of RAM and an onboard pokey. The XM seems to work the same as XBoarD, but it also features HighScore savings @@ -12,31 +12,31 @@ Currently, we emulate both of these as a passthru cart, even if not 100% accurate for the XBoarD - + Memory map: POKEY1 $0450 $045F 16 bytes POKEY2* $0460 $046F 16 bytes XCTRL $0470 $047F 1 byte RAM $4000 $7FFF 16384 bytes - + XCTRL Bit Description - + +-------------------------------+ | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | +-------------------------------+ | | | | | | | | | | | | | | | +-- Bank select bit 0 \ | | | | | | +------ Bank select bit 1 | Totally 128 KByte in 16 KByte banks - | | | | | +---------- Bank select bit 2 / + | | | | | +---------- Bank select bit 2 / | | | | +-------------- Enable memory bit (1 = Memory enabled, 0 after power on) | | | +------------------ Enable POKEY bit** (1 = POKEY enabled, 0 after power on) | | | NA NA NA = Not Available or Not Used - + * = Can be mounted piggy back on the first POKEY. Description how to do this will come when i have tried it out. ** This bit controls both POKEY chip select signals. - + TODO: - verify what happens when 2 POKEYs are present @@ -142,9 +142,9 @@ machine_config_constructor a78_xm_device::device_mconfig_additions() const -------------------------------------------------*/ /*------------------------------------------------- - + XBoarD: passthru + 128K RAM + POKEY - + -------------------------------------------------*/ READ8_MEMBER(a78_xboard_device::read_40xx) @@ -168,7 +168,7 @@ READ8_MEMBER(a78_xboard_device::read_04xx) if (BIT(m_reg, 4) && offset >= 0x50 && offset < 0x60) return m_pokey->read(space, offset & 0x0f); else if (BIT(m_reg, 4) && offset >= 0x60 && offset < 0x70) - return m_xbslot->read_04xx(space, offset - 0x10); // access second POKEY + return m_xbslot->read_04xx(space, offset - 0x10); // access second POKEY else return 0xff; } @@ -178,7 +178,7 @@ WRITE8_MEMBER(a78_xboard_device::write_04xx) if (BIT(m_reg, 4) && offset >= 0x50 && offset < 0x60) m_pokey->write(space, offset & 0x0f, data); else if (BIT(m_reg, 4) && offset >= 0x60 && offset < 0x70) - m_xbslot->write_04xx(space, offset - 0x10, data); // access second POKEY + m_xbslot->write_04xx(space, offset - 0x10, data); // access second POKEY else if (offset >= 0x70 && offset < 0x80) { m_reg = data; @@ -188,9 +188,9 @@ WRITE8_MEMBER(a78_xboard_device::write_04xx) /*------------------------------------------------- - + XM: Same as above but also featuring High Score savings - + -------------------------------------------------*/ READ8_MEMBER(a78_xm_device::read_10xx) @@ -215,7 +215,7 @@ READ8_MEMBER(a78_xm_device::read_04xx) else if (m_ym_enabled && offset >= 0x60 && offset <= 0x61) return m_ym->read(space, offset & 1); else if (BIT(m_reg, 4) && offset >= 0x60 && offset < 0x70) - return m_xbslot->read_04xx(space, offset - 0x10); // access second POKEY + return m_xbslot->read_04xx(space, offset - 0x10); // access second POKEY else return 0xff; } @@ -227,7 +227,7 @@ WRITE8_MEMBER(a78_xm_device::write_04xx) else if (m_ym_enabled && offset >= 0x60 && offset <= 0x61) m_ym->write(space, offset & 1, data); else if (BIT(m_reg, 4) && offset >= 0x60 && offset < 0x70) - m_xbslot->write_04xx(space, offset - 0x10, data); // access second POKEY + m_xbslot->write_04xx(space, offset - 0x10, data); // access second POKEY else if (offset >= 0x70 && offset < 0x80) { //printf("regs 0x%X\n", data); |
