diff options
Diffstat (limited to 'src/mame/drivers/hp9k_3xx.cpp')
-rw-r--r-- | src/mame/drivers/hp9k_3xx.cpp | 135 |
1 files changed, 31 insertions, 104 deletions
diff --git a/src/mame/drivers/hp9k_3xx.cpp b/src/mame/drivers/hp9k_3xx.cpp index 363d3c1be6b..a345873171f 100644 --- a/src/mame/drivers/hp9k_3xx.cpp +++ b/src/mame/drivers/hp9k_3xx.cpp @@ -164,6 +164,10 @@ public: void hp9k382_map(address_map &map); void hp9k3xx_common(address_map &map); void iocpu_map(address_map &map); + +protected: + void hp9k300(machine_config &config); + private: static constexpr uint8_t HIL_CS = 0x01; @@ -450,11 +454,7 @@ static void dio16_cards(device_slot_interface &device) device.option_add("98644", HPDIO_98644); /* 98644 Async serial interface */ } -MACHINE_CONFIG_START(hp9k3xx_state::hp9k310) - /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, M68010, 10000000) - MCFG_DEVICE_PROGRAM_MAP(hp9k310_map) - +MACHINE_CONFIG_START(hp9k3xx_state::hp9k300) MCFG_DEVICE_ADD(m_iocpu, I8042, 5000000) MCFG_DEVICE_PROGRAM_MAP(iocpu_map) MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(*this, hp9k3xx_state, iocpu_port1_w)) @@ -473,13 +473,6 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k310) MCFG_DEVICE_ADD(SN76494_TAG, SN76494, SN76494_CLOCK) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - MCFG_DEVICE_ADD("diobus", DIO16, 0) - MCFG_DIO16_CPU(m_maincpu) - MCFG_DEVICE_ADD("sl1", DIO16_SLOT, 0, "diobus", dio16_cards, "98544", true) - MCFG_DEVICE_ADD("sl2", DIO16_SLOT, 0, "diobus", dio16_cards, "98603b", true) - MCFG_DEVICE_ADD("sl3", DIO16_SLOT, 0, "diobus", dio16_cards, "98644", true) - MCFG_DEVICE_ADD("sl4", DIO16_SLOT, 0, "diobus", dio16_cards, nullptr, false) - MCFG_DEVICE_ADD(m_tms9914, TMS9914, XTAL(5000000)) MCFG_TMS9914_INT_WRITE_CB(WRITELINE(*this, hp9k3xx_state, gpib_irq)); MCFG_TMS9914_DIO_READWRITE_CB(READ8(IEEE488_TAG, ieee488_device, dio_r), WRITE8(IEEE488_TAG, ieee488_device, host_dio_w)) @@ -508,28 +501,25 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k310) MCFG_SOFTWARE_LIST_ADD("flop_list", "hp9k3xx_flop") MACHINE_CONFIG_END -MACHINE_CONFIG_START(hp9k3xx_state::hp9k320) - /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, M68020FPU, 16670000) - MCFG_DEVICE_PROGRAM_MAP(hp9k320_map) +MACHINE_CONFIG_START(hp9k3xx_state::hp9k310) + hp9k300(config); + MCFG_DEVICE_ADD(m_maincpu, M68010, 10000000) + MCFG_DEVICE_PROGRAM_MAP(hp9k310_map) - MCFG_DEVICE_ADD(m_iocpu, I8042, 5000000) - MCFG_DEVICE_PROGRAM_MAP(iocpu_map) - MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(*this, hp9k3xx_state, iocpu_port1_w)) - MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(*this, hp9k3xx_state, iocpu_port2_w)) - MCFG_MCS48_PORT_P1_IN_CB(READ8(*this, hp9k3xx_state, iocpu_port1_r)) - MCFG_MCS48_PORT_T0_IN_CB(READ8(*this, hp9k3xx_state, iocpu_test0_r)) + MCFG_DEVICE_ADD("diobus", DIO16, 0) + MCFG_DIO16_CPU(m_maincpu) + MCFG_DEVICE_ADD("sl1", DIO16_SLOT, 0, "diobus", dio16_cards, "98544", true) + MCFG_DEVICE_ADD("sl2", DIO16_SLOT, 0, "diobus", dio16_cards, "98603b", true) + MCFG_DEVICE_ADD("sl3", DIO16_SLOT, 0, "diobus", dio16_cards, "98644", true) + MCFG_DEVICE_ADD("sl4", DIO16_SLOT, 0, "diobus", dio16_cards, nullptr, false) - MCFG_DEVICE_ADD(m_mlc, HP_HIL_MLC, XTAL(15'920'000)/2) - MCFG_HP_HIL_SLOT_ADD(MLC_TAG, "hil1", hp_hil_devices, "hp_46021a") +MACHINE_CONFIG_END - MCFG_DEVICE_ADD(PTM6840_TAG, PTM6840, 250000) // from oscillator module next to the 6840 - MCFG_PTM6840_EXTERNAL_CLOCKS(250000.0f, 0.0f, 250000.0f) - MCFG_PTM6840_O3_CB(WRITELINE(PTM6840_TAG, ptm6840_device , set_c2)) +MACHINE_CONFIG_START(hp9k3xx_state::hp9k320) + MCFG_DEVICE_ADD(m_maincpu, M68020FPU, 16670000) + MCFG_DEVICE_PROGRAM_MAP(hp9k320_map) - SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD(SN76494_TAG, SN76494, SN76494_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) + hp9k300(config); MCFG_DEVICE_ADD("diobus", DIO32, 0) MCFG_DIO32_CPU(m_maincpu) @@ -537,96 +527,33 @@ MACHINE_CONFIG_START(hp9k3xx_state::hp9k320) MCFG_DEVICE_ADD("sl2", DIO16_SLOT, 0, "diobus", dio16_cards, "98603b", true) MCFG_DEVICE_ADD("sl3", DIO16_SLOT, 0, "diobus", dio16_cards, "98644", true) MCFG_DEVICE_ADD("sl4", DIO32_SLOT, 0, "diobus", dio16_cards, nullptr, false) - - MCFG_DEVICE_ADD(m_tms9914, TMS9914, XTAL(5000000)) - MCFG_TMS9914_INT_WRITE_CB(WRITELINE(*this, hp9k3xx_state, gpib_irq)); - MCFG_TMS9914_DIO_READWRITE_CB(READ8(IEEE488_TAG, ieee488_device, dio_r), WRITE8(IEEE488_TAG, ieee488_device, host_dio_w)) - MCFG_TMS9914_EOI_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_eoi_w)) - MCFG_TMS9914_DAV_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_dav_w)) - MCFG_TMS9914_NRFD_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_nrfd_w)) - MCFG_TMS9914_NDAC_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ndac_w)) - MCFG_TMS9914_IFC_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ifc_w)) - MCFG_TMS9914_SRQ_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_srq_w)) - MCFG_TMS9914_ATN_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_atn_w)) - MCFG_TMS9914_REN_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ren_w)) - - MCFG_IEEE488_SLOT_ADD("ieee0", 0, hp_ieee488_devices, "hp9122c") - MCFG_IEEE488_SLOT_ADD("ieee_rem", 0, remote488_devices, nullptr) - MCFG_IEEE488_BUS_ADD() - - MCFG_IEEE488_EOI_CALLBACK(WRITELINE(m_tms9914, tms9914_device, eoi_w)) - MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_tms9914, tms9914_device, dav_w)) - MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_tms9914, tms9914_device, nrfd_w)) - MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ndac_w)) - MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ifc_w)) - MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_tms9914, tms9914_device, srq_w)) - MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, atn_w)) - MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ren_w)) - - MCFG_SOFTWARE_LIST_ADD("flop_list", "hp9k3xx_flop") MACHINE_CONFIG_END MACHINE_CONFIG_START(hp9k3xx_state::hp9k330) - hp9k320(config); - /* basic machine hardware */ - MCFG_DEVICE_REPLACE(MAINCPU_TAG, M68020PMMU, 16670000) + MCFG_DEVICE_ADD(m_maincpu, M68020PMMU, 16670000) MCFG_DEVICE_PROGRAM_MAP(hp9k330_map) + + hp9k300(config); + + MCFG_DEVICE_ADD("diobus", DIO32, 0) + MCFG_DIO32_CPU(m_maincpu) + MCFG_DEVICE_ADD("sl1", DIO32_SLOT, 0, "diobus", dio16_cards, "98544", true) + MCFG_DEVICE_ADD("sl2", DIO16_SLOT, 0, "diobus", dio16_cards, "98603b", true) + MCFG_DEVICE_ADD("sl3", DIO16_SLOT, 0, "diobus", dio16_cards, "98644", true) + MCFG_DEVICE_ADD("sl4", DIO32_SLOT, 0, "diobus", dio16_cards, nullptr, false) MACHINE_CONFIG_END MACHINE_CONFIG_START(hp9k3xx_state::hp9k332) - /* basic machine hardware */ MCFG_DEVICE_ADD(m_maincpu, M68020PMMU, 16670000) MCFG_DEVICE_PROGRAM_MAP(hp9k332_map) - MCFG_DEVICE_ADD(m_iocpu, I8042, 5000000) - MCFG_DEVICE_PROGRAM_MAP(iocpu_map) - MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(*this, hp9k3xx_state, iocpu_port1_w)) - MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(*this, hp9k3xx_state, iocpu_port2_w)) - MCFG_MCS48_PORT_P1_IN_CB(READ8(*this, hp9k3xx_state, iocpu_port1_r)) - MCFG_MCS48_PORT_T0_IN_CB(READ8(*this, hp9k3xx_state, iocpu_test0_r)) - - MCFG_DEVICE_ADD(m_mlc, HP_HIL_MLC, XTAL(15'920'000)/2) - MCFG_HP_HIL_SLOT_ADD(MLC_TAG, "hil1", hp_hil_devices, "hp_46021a") - - MCFG_DEVICE_ADD(PTM6840_TAG, PTM6840, 250000) // from oscillator module next to the 6840 - MCFG_PTM6840_EXTERNAL_CLOCKS(250000.0f, 250000.0f, 250000.0f) - - SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD(SN76494_TAG, SN76494, SN76494_CLOCK) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) + hp9k300(config); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_UPDATE_DRIVER(hp9k3xx_state, hp_medres_update) MCFG_SCREEN_SIZE(512,390) MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 390-1) MCFG_SCREEN_REFRESH_RATE(70) - - MCFG_DEVICE_ADD(m_tms9914, TMS9914, XTAL(5000000)) - MCFG_TMS9914_INT_WRITE_CB(WRITELINE(*this, hp9k3xx_state, gpib_irq)); - MCFG_TMS9914_DIO_READWRITE_CB(READ8(IEEE488_TAG, ieee488_device, dio_r), WRITE8(IEEE488_TAG, ieee488_device, host_dio_w)) - MCFG_TMS9914_EOI_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_eoi_w)) - MCFG_TMS9914_DAV_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_dav_w)) - MCFG_TMS9914_NRFD_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_nrfd_w)) - MCFG_TMS9914_NDAC_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ndac_w)) - MCFG_TMS9914_IFC_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ifc_w)) - MCFG_TMS9914_SRQ_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_srq_w)) - MCFG_TMS9914_ATN_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_atn_w)) - MCFG_TMS9914_REN_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ren_w)) - - MCFG_IEEE488_SLOT_ADD("ieee0", 0, hp_ieee488_devices, "hp9895") - MCFG_IEEE488_SLOT_ADD("ieee_rem", 0, remote488_devices, nullptr) - MCFG_IEEE488_BUS_ADD() - - MCFG_IEEE488_EOI_CALLBACK(WRITELINE(m_tms9914, tms9914_device, eoi_w)) - MCFG_IEEE488_DAV_CALLBACK(WRITELINE(m_tms9914, tms9914_device, dav_w)) - MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(m_tms9914, tms9914_device, nrfd_w)) - MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ndac_w)) - MCFG_IEEE488_IFC_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ifc_w)) - MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_tms9914, tms9914_device, srq_w)) - MCFG_IEEE488_ATN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, atn_w)) - MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ren_w)) - - MCFG_SOFTWARE_LIST_ADD("flop_list", "hp9k3xx_flop") MACHINE_CONFIG_END MACHINE_CONFIG_START(hp9k3xx_state::hp9k340) |