summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/victor9k.cpp
diff options
context:
space:
mode:
author mooglyguy <therealmogminer@gmail.com>2018-08-01 21:25:54 +0200
committer mooglyguy <therealmogminer@gmail.com>2018-08-01 21:26:16 +0200
commit9ee8cf454c5de0755a0cd0e370c691c6593cfaa0 (patch)
tree60e6d5c48869582f2570b71668c94b4e6d18d50f /src/mame/drivers/victor9k.cpp
parent749e47c09f2a3ecb780b1bea425d389301b1b09d (diff)
-oric, pet, prodigy, rmnimbus, ssystem3, swtpc09, swyft, sym1, trvquest, tv950, vectrex, victor9k, wicat: [Ryan Holtz]
* Removed MACHINE_CONFIG and MCFG usage where possible.
Diffstat (limited to 'src/mame/drivers/victor9k.cpp')
-rw-r--r--src/mame/drivers/victor9k.cpp204
1 files changed, 103 insertions, 101 deletions
diff --git a/src/mame/drivers/victor9k.cpp b/src/mame/drivers/victor9k.cpp
index 9ad6d577c79..8b460e58e8f 100644
--- a/src/mame/drivers/victor9k.cpp
+++ b/src/mame/drivers/victor9k.cpp
@@ -152,7 +152,7 @@ private:
DECLARE_WRITE_LINE_MEMBER( mux_serial_b_w );
DECLARE_WRITE_LINE_MEMBER( mux_serial_a_w );
- DECLARE_PALETTE_INIT( victor9k );
+ void palette_init(palette_device &palette);
// video state
int m_brt;
@@ -608,7 +608,7 @@ WRITE_LINE_MEMBER( victor9k_state::fdc_irq_w )
// MACHINE INITIALIZATION
//**************************************************************************
-PALETTE_INIT_MEMBER(victor9k_state, victor9k)
+void victor9k_state::palette_init(palette_device &palette)
{
palette.set_pen_color(0, rgb_t(0x00, 0x00, 0x00));
@@ -679,121 +679,123 @@ void victor9k_state::machine_reset()
// MACHINE_CONFIG( victor9k )
//-------------------------------------------------
-MACHINE_CONFIG_START(victor9k_state::victor9k)
+void victor9k_state::victor9k(machine_config &config)
+{
// basic machine hardware
- MCFG_DEVICE_ADD(I8088_TAG, I8088, XTAL(30'000'000)/6)
- MCFG_DEVICE_PROGRAM_MAP(victor9k_mem)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A_TAG, pic8259_device, inta_cb)
+ I8088(config, m_maincpu, XTAL(30'000'000)/6);
+ m_maincpu->set_addrmap(AS_PROGRAM, &victor9k_state::victor9k_mem);
+ m_maincpu->set_irq_acknowledge_callback(I8259A_TAG, FUNC(pic8259_device::inta_cb));
// video hardware
- MCFG_SCREEN_ADD_MONOCHROME(SCREEN_TAG, RASTER, rgb_t::green())
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
- MCFG_SCREEN_UPDATE_DEVICE(HD46505S_TAG, hd6845_device, screen_update)
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_PALETTE_ADD("palette", 16)
- MCFG_PALETTE_INIT_OWNER(victor9k_state, victor9k)
-
- MCFG_MC6845_ADD(HD46505S_TAG, HD6845, SCREEN_TAG, XTAL(30'000'000)/10) // HD6845 == HD46505S
- MCFG_MC6845_SHOW_BORDER_AREA(true)
- MCFG_MC6845_CHAR_WIDTH(10)
- MCFG_MC6845_UPDATE_ROW_CB(victor9k_state, crtc_update_row)
- MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, victor9k_state, vert_w))
+ screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER));
+ screen.set_color(rgb_t::green());
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
+ screen.set_screen_update(HD46505S_TAG, FUNC(hd6845_device::screen_update));
+ screen.set_size(640, 480);
+ screen.set_visarea(0, 640-1, 0, 480-1);
+
+ PALETTE(config, m_palette, 16);
+ m_palette->set_init(FUNC(victor9k_state::palette_init));
+
+ HD6845(config, m_crtc, XTAL(30'000'000)/10); // HD6845 == HD46505S
+ m_crtc->set_screen(SCREEN_TAG);
+ m_crtc->set_show_border_area(true);
+ m_crtc->set_char_width(10);
+ m_crtc->set_update_row_callback(FUNC(victor9k_state::crtc_update_row), this);
+ m_crtc->out_vsync_callback().set(FUNC(victor9k_state::vert_w));
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD(HC55516_TAG, HC55516, 0)
+ HC55516(config, m_cvsd, 0);
//MCFG_HC55516_DIG_OUT_CB(WRITELINE(MC6852_TAG, mc6852_device, rx_w))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ m_cvsd->add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
- MCFG_IEEE488_BUS_ADD()
- MCFG_IEEE488_DAV_CALLBACK(WRITELINE(M6522_1_TAG, via6522_device, write_pb0))
- MCFG_IEEE488_EOI_CALLBACK(WRITELINE(M6522_1_TAG, via6522_device, write_pb1))
- MCFG_IEEE488_REN_CALLBACK(WRITELINE(M6522_1_TAG, via6522_device, write_pb2))
- MCFG_IEEE488_ATN_CALLBACK(WRITELINE(M6522_1_TAG, via6522_device, write_pb3))
- MCFG_IEEE488_IFC_CALLBACK(WRITELINE(M6522_1_TAG, via6522_device, write_pb4))
- MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(M6522_1_TAG, via6522_device, write_pb5))
- MCFG_IEEE488_NRFD_CALLBACK(WRITELINE(*this, victor9k_state, write_nfrd))
- MCFG_IEEE488_NDAC_CALLBACK(WRITELINE(*this, victor9k_state, write_ndac))
-
- MCFG_DEVICE_ADD(I8259A_TAG, PIC8259, 0)
- MCFG_PIC8259_OUT_INT_CB(INPUTLINE(I8088_TAG, INPUT_LINE_IRQ0))
-
- MCFG_DEVICE_ADD(I8253_TAG, PIT8253, 0)
- MCFG_PIT8253_CLK0(2500000)
- MCFG_PIT8253_OUT0_HANDLER(WRITELINE(*this, victor9k_state, mux_serial_b_w))
- MCFG_PIT8253_CLK1(2500000)
- MCFG_PIT8253_OUT1_HANDLER(WRITELINE(*this, victor9k_state, mux_serial_a_w))
- MCFG_PIT8253_CLK2(100000)
- MCFG_PIT8253_OUT2_HANDLER(WRITELINE(I8259A_TAG, pic8259_device, ir2_w))
-
- MCFG_DEVICE_ADD(UPD7201_TAG, UPD7201, XTAL(30'000'000)/30)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_INT_CB(WRITELINE(I8259A_TAG, pic8259_device, ir1_w))
-
- MCFG_DEVICE_ADD(MC6852_TAG, MC6852, XTAL(30'000'000)/30)
- MCFG_MC6852_TX_DATA_CALLBACK(WRITELINE(HC55516_TAG, hc55516_device, digit_w))
- MCFG_MC6852_SM_DTR_CALLBACK(WRITELINE(*this, victor9k_state, ssda_sm_dtr_w))
- MCFG_MC6852_IRQ_CALLBACK(WRITELINE(*this, victor9k_state, ssda_irq_w))
-
- MCFG_DEVICE_ADD(M6522_1_TAG, VIA6522, XTAL(30'000'000)/30)
- MCFG_VIA6522_READPA_HANDLER(READ8(IEEE488_TAG, ieee488_device, dio_r))
- MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(*this, victor9k_state, via1_pa_w))
- MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(*this, victor9k_state, via1_pb_w))
- MCFG_VIA6522_CB2_HANDLER(WRITELINE(*this, victor9k_state, codec_vol_w))
- MCFG_VIA6522_IRQ_HANDLER(WRITELINE(*this, victor9k_state, via1_irq_w))
-
- MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, XTAL(30'000'000)/30)
- MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(*this, victor9k_state, via2_pa_w))
- MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(*this, victor9k_state, via2_pb_w))
- MCFG_VIA6522_IRQ_HANDLER(WRITELINE(*this, victor9k_state, via2_irq_w))
-
- MCFG_DEVICE_ADD(M6522_3_TAG, VIA6522, XTAL(30'000'000)/30)
- MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(*this, victor9k_state, via3_pb_w))
- MCFG_VIA6522_IRQ_HANDLER(WRITELINE(*this, victor9k_state, via3_irq_w))
-
- MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
- MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(M6522_1_TAG, via6522_device, write_pb5))
- MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(M6522_1_TAG, via6522_device, write_pb6))
- MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(M6522_1_TAG, via6522_device, write_pb7))
-
- MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(UPD7201_TAG, z80dart_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(UPD7201_TAG, z80dart_device, dcda_w))
- MCFG_RS232_RI_HANDLER(WRITELINE(*this, victor9k_state, write_ria))
- MCFG_RS232_CTS_HANDLER(WRITELINE(UPD7201_TAG, z80dart_device, ctsa_w))
- MCFG_RS232_DSR_HANDLER(WRITELINE(M6522_2_TAG, via6522_device, write_pa3))
-
- MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(UPD7201_TAG, z80dart_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(UPD7201_TAG, z80dart_device, dcdb_w))
- MCFG_RS232_RI_HANDLER(WRITELINE(*this, victor9k_state, write_ria))
- MCFG_RS232_CTS_HANDLER(WRITELINE(UPD7201_TAG, z80dart_device, ctsb_w))
- MCFG_RS232_DSR_HANDLER(WRITELINE(M6522_2_TAG, via6522_device, write_pa5))
-
- MCFG_DEVICE_ADD(KB_TAG, VICTOR9K_KEYBOARD, 0)
- MCFG_VICTOR9K_KBRDY_HANDLER(WRITELINE(*this, victor9k_state, kbrdy_w))
- MCFG_VICTOR9K_KBDATA_HANDLER(WRITELINE(*this, victor9k_state, kbdata_w))
+ IEEE488(config, m_ieee488, 0);
+
+ m_ieee488->dav_callback().set(M6522_1_TAG, FUNC(via6522_device::write_pb0));
+ m_ieee488->eoi_callback().set(M6522_1_TAG, FUNC(via6522_device::write_pb1));
+ m_ieee488->ren_callback().set(M6522_1_TAG, FUNC(via6522_device::write_pb2));
+ m_ieee488->atn_callback().set(M6522_1_TAG, FUNC(via6522_device::write_pb3));
+ m_ieee488->ifc_callback().set(M6522_1_TAG, FUNC(via6522_device::write_pb4));
+ m_ieee488->srq_callback().set(M6522_1_TAG, FUNC(via6522_device::write_pb5));
+ m_ieee488->nrfd_callback().set(FUNC(victor9k_state::write_nfrd));
+ m_ieee488->ndac_callback().set(FUNC(victor9k_state::write_ndac));
+
+ PIC8259(config, m_pic, 0);
+ m_pic->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+
+ pit8253_device &pit(PIT8253(config, I8253_TAG, 0));
+ pit.set_clk<0>(2500000);
+ pit.out_handler<0>().set(FUNC(victor9k_state::mux_serial_b_w));
+ pit.set_clk<1>(2500000);
+ pit.out_handler<1>().set(FUNC(victor9k_state::mux_serial_a_w));
+ pit.set_clk<2>(100000);
+ pit.out_handler<2>().set(I8259A_TAG, FUNC(pic8259_device::ir2_w));
+
+ UPD7201(config, m_upd7201, XTAL(30'000'000)/30);
+ m_upd7201->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
+ m_upd7201->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr));
+ m_upd7201->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts));
+ m_upd7201->out_txdb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd));
+ m_upd7201->out_dtrb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr));
+ m_upd7201->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts));
+ m_upd7201->out_int_callback().set(I8259A_TAG, FUNC(pic8259_device::ir1_w));
+
+ MC6852(config, m_ssda, XTAL(30'000'000)/30);
+ m_ssda->tx_data_callback().set(HC55516_TAG, FUNC(hc55516_device::digit_w));
+ m_ssda->sm_dtr_callback().set(FUNC(victor9k_state::ssda_sm_dtr_w));
+ m_ssda->irq_callback().set(FUNC(victor9k_state::ssda_irq_w));
+
+ VIA6522(config, m_via1, XTAL(30'000'000)/30);
+ m_via1->readpa_handler().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
+ m_via1->writepa_handler().set(FUNC(victor9k_state::via1_pa_w));
+ m_via1->writepb_handler().set(FUNC(victor9k_state::via1_pb_w));
+ m_via1->cb2_handler().set(FUNC(victor9k_state::codec_vol_w));
+ m_via1->irq_handler().set(FUNC(victor9k_state::via1_irq_w));
+
+ VIA6522(config, m_via2, XTAL(30'000'000)/30);
+ m_via2->writepa_handler().set(FUNC(victor9k_state::via2_pa_w));
+ m_via2->writepb_handler().set(FUNC(victor9k_state::via2_pb_w));
+ m_via2->irq_handler().set(FUNC(victor9k_state::via2_irq_w));
+
+ VIA6522(config, m_via3, XTAL(30'000'000)/30);
+ m_via3->writepb_handler().set(FUNC(victor9k_state::via3_pb_w));
+ m_via3->irq_handler().set(FUNC(victor9k_state::via3_irq_w));
+
+ CENTRONICS(config, m_centronics, centronics_devices, "printer");
+ m_centronics->busy_handler().set(M6522_1_TAG, FUNC(via6522_device::write_pb5));
+ m_centronics->ack_handler().set(M6522_1_TAG, FUNC(via6522_device::write_pb6));
+ m_centronics->select_handler().set(M6522_1_TAG, FUNC(via6522_device::write_pb7));
+
+ RS232_PORT(config, m_rs232a, default_rs232_devices, nullptr);
+ m_rs232a->rxd_handler().set(UPD7201_TAG, FUNC(z80dart_device::rxa_w));
+ m_rs232a->dcd_handler().set(UPD7201_TAG, FUNC(z80dart_device::dcda_w));
+ m_rs232a->ri_handler().set(FUNC(victor9k_state::write_ria));
+ m_rs232a->cts_handler().set(UPD7201_TAG, FUNC(z80dart_device::ctsa_w));
+ m_rs232a->dsr_handler().set(M6522_2_TAG, FUNC(via6522_device::write_pa3));
+
+ RS232_PORT(config, m_rs232b, default_rs232_devices, nullptr);
+ m_rs232b->rxd_handler().set(UPD7201_TAG, FUNC(z80dart_device::rxb_w));
+ m_rs232b->dcd_handler().set(UPD7201_TAG, FUNC(z80dart_device::dcdb_w));
+ m_rs232b->ri_handler().set(FUNC(victor9k_state::write_ria));
+ m_rs232b->cts_handler().set(UPD7201_TAG, FUNC(z80dart_device::ctsb_w));
+ m_rs232b->dsr_handler().set(M6522_2_TAG, FUNC(via6522_device::write_pa5));
+
+ VICTOR9K_KEYBOARD(config, m_kb, 0);
+ m_kb->kbrdy_handler().set(FUNC(victor9k_state::kbrdy_w));
+ m_kb->kbdata_handler().set(FUNC(victor9k_state::kbdata_w));
VICTOR_9000_FDC(config, m_fdc, 0);
m_fdc->irq_wr_callback().set(FUNC(victor9k_state::fdc_irq_w));
m_fdc->syn_wr_callback().set(I8259A_TAG, FUNC(pic8259_device::ir0_w)).invert();
m_fdc->lbrdy_wr_callback().set_inputline(I8088_TAG, INPUT_LINE_TEST).invert();
- // internal ram
- MCFG_RAM_ADD(RAM_TAG)
- MCFG_RAM_DEFAULT_SIZE("128K")
+ RAM(config, m_ram).set_default_size("128K");
- // software list
- MCFG_SOFTWARE_LIST_ADD("flop_list", "victor9k_flop")
-MACHINE_CONFIG_END
+ SOFTWARE_LIST(config, "flop_list").set_type("victor9k_flop", SOFTWARE_LIST_ORIGINAL_SYSTEM);
+}