From 4f6371b6aa2d45fb0280e3aa7ab644ad36bbe548 Mon Sep 17 00:00:00 2001 From: Sergey Svishchev Date: Sat, 7 Oct 2017 22:39:34 +0300 Subject: [PATCH] a7150: pass PIC test, hook up keyboard, add more roms (nw) --- src/mame/drivers/a7150.cpp | 48 ++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/src/mame/drivers/a7150.cpp b/src/mame/drivers/a7150.cpp index 8220ad96964..0b87eaeee8f 100644 --- a/src/mame/drivers/a7150.cpp +++ b/src/mame/drivers/a7150.cpp @@ -268,6 +268,7 @@ WRITE8_MEMBER(a7150_state::a7150_kgs_w) { m_kgs_datao = data; m_kgs_ctrl |= KGS_ST_IBF; + m_pic8259->ir7_w(CLEAR_LINE); } break; } @@ -369,12 +370,22 @@ static INPUT_PORTS_START( a7150 ) PORT_DIPSETTING(0x80, "Same as V.24") INPUT_PORTS_END +static DEVICE_INPUT_DEFAULTS_START( kbd_rs232_defaults ) + DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_28800 ) + DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_28800 ) + DEVICE_INPUT_DEFAULTS( "RS232_STARTBITS", 0xff, RS232_STARTBITS_1 ) + DEVICE_INPUT_DEFAULTS( "RS232_DATABITS", 0xff, RS232_DATABITS_8 ) + DEVICE_INPUT_DEFAULTS( "RS232_PARITY", 0xff, RS232_PARITY_NONE ) + DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_2 ) + DEVICE_INPUT_DEFAULTS( "FLOW_CONTROL", 0x01, 0x01 ) +DEVICE_INPUT_DEFAULTS_END + void a7150_state::kgs_memory_remap() { int bank = m_kgs_iml + m_kgs_msel + m_kgs_msel; - logerror("%s: kgs memory: iml %d msel %d bank %d\n", machine().describe_context(), m_kgs_iml, m_kgs_msel, bank); + if (0) logerror("%s: kgs memory: iml %d msel %d bank %d\n", machine().describe_context(), m_kgs_iml, m_kgs_msel, bank); m_video_bankdev->set_bank(bank); } @@ -441,11 +452,12 @@ static MACHINE_CONFIG_START( a7150 ) MCFG_I8251_RXRDY_HANDLER(DEVWRITELINE("pic8259", pic8259_device, ir4_w)) MCFG_I8251_TXRDY_HANDLER(DEVWRITELINE("pic8259", pic8259_device, ir4_w)) - // IFSS port on processor card - MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "loopback") // allows ACT to pass + // IFSS port on processor card -- keyboard runs at 28800 8N2 + MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "keyboard") // "loopback" allows ACT to pass MCFG_RS232_RXD_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_rxd)) MCFG_RS232_CTS_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_cts)) MCFG_RS232_DSR_HANDLER(DEVWRITELINE("uart8251", i8251_device, write_dsr)) + MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("keyboard", kbd_rs232_defaults) MCFG_ISBC_215_ADD("isbc_215g", 0x4a, "maincpu") MCFG_ISBC_215_IRQ(DEVWRITELINE("pic8259", pic8259_device, ir5_w)) @@ -485,7 +497,7 @@ static MACHINE_CONFIG_START( a7150 ) MCFG_RS232_CTS_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80sio_device, ctsa_w)) // IFSS (current loop) port (keyboard) - MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, "keyboard") + MCFG_RS232_PORT_ADD(RS232_B_TAG, default_rs232_devices, nullptr) MCFG_RS232_RXD_HANDLER(DEVWRITELINE(Z80SIO_TAG, z80sio_device, rxb_w)) MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green()) @@ -498,7 +510,33 @@ MACHINE_CONFIG_END /* ROM definition */ ROM_START( a7150 ) ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF ) - ROM_LOAD( "a7150.rom", 0x0000, 0x8000, CRC(57855abd) SHA1(b58f1363623d2c3ff1221e449529ecaa22573bff)) + ROM_DEFAULT_BIOS("2.3") + + // A7100 + ROM_SYSTEM_BIOS(0, "1.1", "ACT 1.1") + ROMX_LOAD("Q259.BIN", 0x4001, 0x2000, CRC(fb5b547b) SHA1(1d17fcededa91cad321a7b237a46a308142d902b),ROM_BIOS(1)|ROM_SKIP(1)) + ROMX_LOAD("Q260.BIN", 0x0001, 0x2000, CRC(b51f8ed6) SHA1(9aa6291bf8ab49a343741717366992649e2957b3),ROM_BIOS(1)|ROM_SKIP(1)) + ROMX_LOAD("Q261.BIN", 0x4000, 0x2000, CRC(43c08ea3) SHA1(ea697180b415b71d834968be84431a6efe9490c2),ROM_BIOS(1)|ROM_SKIP(1)) + ROMX_LOAD("Q262.BIN", 0x0000, 0x2000, CRC(9df1c396) SHA1(a627889e1162e5b2fe95804de52bb78e41aaf7cc),ROM_BIOS(1)|ROM_SKIP(1)) + + // A7150 + ROM_SYSTEM_BIOS(1, "2.1", "ACT 2.1") + ROMX_LOAD("265.bin", 0x4001, 0x2000, CRC(a5fb5f35) SHA1(9d9501441cad0ef724dec7b5ffb52b17a678a9f8),ROM_BIOS(2)|ROM_SKIP(1)) + ROMX_LOAD("266.bin", 0x0001, 0x2000, CRC(f5898eb7) SHA1(af3fd82813fbea7883dea4d7e23a9b5e5b2b844a),ROM_BIOS(2)|ROM_SKIP(1)) + ROMX_LOAD("267.bin", 0x4000, 0x2000, CRC(c1873a01) SHA1(77f15cc217cd854732fbe33d395e1ea9867fedd7),ROM_BIOS(2)|ROM_SKIP(1)) + ROMX_LOAD("268.bin", 0x0000, 0x2000, CRC(e3f09213) SHA1(1e2d69061f8e84697440b219181e0b870fe21835),ROM_BIOS(2)|ROM_SKIP(1)) + + ROM_SYSTEM_BIOS(2, "2.2", "ACT 2.2") + ROMX_LOAD("269.bin", 0x4001, 0x2000, CRC(f137f94b) SHA1(7cb79f332db48cb66dae04c1ce1bdd169a6ab561),ROM_BIOS(3)|ROM_SKIP(1)) + ROMX_LOAD("270.bin", 0x0001, 0x2000, CRC(1ea44a33) SHA1(f5708d1f6a9dc109979a9a91a80f2a4e4956d1eb),ROM_BIOS(3)|ROM_SKIP(1)) + ROMX_LOAD("271.bin", 0x4000, 0x2000, CRC(de2222c9) SHA1(e02225c93b49f0380dfb2d996b63370141359199),ROM_BIOS(3)|ROM_SKIP(1)) + ROMX_LOAD("272.bin", 0x0000, 0x2000, CRC(5001c528) SHA1(ce67c35326fbfd17f086a37ffe81b79aefaef0cb),ROM_BIOS(3)|ROM_SKIP(1)) + + ROM_SYSTEM_BIOS(3, "2.3", "ACT 2.3") + ROMX_LOAD("273.ROM", 0x4001, 0x2000, CRC(67ca9b78) SHA1(bcb6221f6df28b24b602846b149ac12e93b5e356),ROM_BIOS(4)|ROM_SKIP(1)) + ROMX_LOAD("274.ROM", 0x0001, 0x2000, CRC(6fa68834) SHA1(49abe48bbb5ae151f977a9c63b27336c15e8a08d),ROM_BIOS(4)|ROM_SKIP(1)) + ROMX_LOAD("275.ROM", 0x4000, 0x2000, CRC(0da54426) SHA1(7492caff98b1d1a896c5964942b17beadf996b60),ROM_BIOS(4)|ROM_SKIP(1)) + ROMX_LOAD("276.ROM", 0x0000, 0x2000, CRC(5924192a) SHA1(eb494d9f96a0b3ea69f4b9cb2b7add66a8c16946),ROM_BIOS(4)|ROM_SKIP(1)) ROM_REGION( 0x10000, "user2", ROMREGION_ERASEFF ) // ROM from A7100