diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2021-05-22 16:36:02 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2021-05-22 16:36:02 -0400 |
commit | 6d818ea9481165e94af26465cfce149454a0b292 (patch) | |
tree | 6361b81881ee76d38de003318277698cedc8f984 | |
parent | b78991fc83eaa0015eca9d81a858b65f2d786d49 (diff) |
pbo: Map a few more registers
-rw-r--r-- | src/mame/drivers/philipsbo.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/mame/drivers/philipsbo.cpp b/src/mame/drivers/philipsbo.cpp index c9087ca16c4..a15d9869749 100644 --- a/src/mame/drivers/philipsbo.cpp +++ b/src/mame/drivers/philipsbo.cpp @@ -12,6 +12,7 @@ #include "imagedev/floppy.h" #include "machine/am79c90.h" #include "machine/hd63450.h" +#include "machine/mc68681.h" #include "machine/ncr5380n.h" #include "machine/nscsi_bus.h" #include "machine/wd_fdc.h" @@ -69,7 +70,9 @@ protected: void fdc_irq_w(int state); void scc_irq_w(int state); void net_irq_w(int state); + void floppy_select_w(uint8_t data); uint8_t fa0101_read(); + uint8_t net_fe00e1_read(); }; void pbo_state::main_map(address_map &map) @@ -77,11 +80,9 @@ void pbo_state::main_map(address_map &map) map(0x000000, 0x07ffff).ram().share(m_main_ram_share); map(0x080000, 0xbfffff).rw(FUNC(pbo_state::berr_r), FUNC(pbo_state::berr_w)); map(0xf80000, 0xf8ffff).rom().region("maincpu", 0); - map(0xfa0000, 0xfa0001).rw(m_fdc, FUNC(mb8877_device::status_r), FUNC(mb8877_device::cmd_w)).umask16(0x00ff); - map(0xfa0030, 0xfa0031).rw(m_scc, FUNC(scc85c30_device::cb_r), FUNC(scc85c30_device::cb_w)).umask16(0x00ff); - map(0xfa0032, 0xfa0033).rw(m_scc, FUNC(scc85c30_device::db_r), FUNC(scc85c30_device::db_w)).umask16(0x00ff); - map(0xfa0034, 0xfa0035).rw(m_scc, FUNC(scc85c30_device::ca_r), FUNC(scc85c30_device::ca_w)).umask16(0x00ff); - map(0xfa0036, 0xfa0037).rw(m_scc, FUNC(scc85c30_device::da_r), FUNC(scc85c30_device::da_w)).umask16(0x00ff); + map(0xfa0000, 0xfa0007).rw(m_fdc, FUNC(mb8877_device::read), FUNC(mb8877_device::write)).umask16(0x00ff); + map(0xfa0011, 0xfa0011).w(FUNC(pbo_state::floppy_select_w)); + map(0xfa0030, 0xfa0037).rw(m_scc, FUNC(scc85c30_device::ab_dc_r), FUNC(scc85c30_device::ab_dc_w)).umask16(0x00ff); map(0xfa8400, 0xfa840f).rw(m_hdc, FUNC(ncr5380n_device::read), FUNC(ncr5380n_device::write)).umask16(0x00ff); map(0xfa0100, 0xfa0101).r(FUNC(pbo_state::fa0101_read)).umask16(0x00ff); } @@ -91,6 +92,8 @@ void pbo_state::net_map(address_map &map) map(0x000000, 0x000fff).ram().share(m_net_ram_share); // Unknown RAM size map(0xf00000, 0xf1ffff).ram(); map(0xf80000, 0xf83fff).rom().region("netcpu", 0); + map(0xfe00e1, 0xfe00e1).r(FUNC(pbo_state::net_fe00e1_read)); + map(0xfe0100, 0xfe011f).rw("duart", FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); } uint16_t pbo_state::berr_r(offs_t offset) @@ -140,6 +143,11 @@ void pbo_state::net_irq_w(int state) LOG("LANCE IRQ: %d\n", state); } +void pbo_state::floppy_select_w(uint8_t data) +{ + LOG("Floppy select: %02X\n", data); +} + // It's unclear what hardware this location corresponds to on the actual board. // If it's unmapped, which returns 0 by default, the system hangs with very little // meaningful external access. @@ -150,6 +158,11 @@ uint8_t pbo_state::fa0101_read() return 0x80; } +uint8_t pbo_state::net_fe00e1_read() +{ + return 0; +} + static INPUT_PORTS_START( pbo ) INPUT_PORTS_END @@ -239,6 +252,8 @@ void pbo_state::pbo(machine_config &config) AM7990(config, m_lance); m_lance->intr_out().set(FUNC(pbo_state::net_irq_w)); + + MC68681(config, "duart", 3'686'400); } ROM_START( pbo ) |