From b58b0aa9930e9e0016a76cf982a6451ef686ec1a Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Mon, 27 Mar 2023 07:44:03 +0300 Subject: [PATCH] abc80: Added keyboard PROM, and memory card IEC/Printer ROMs. [Curt Coder] --- src/devices/bus/abcbus/memcard.cpp | 7 ++++--- src/mame/luxor/abc80.cpp | 2 +- src/mame/luxor/abc80.h | 2 +- src/mame/luxor/abc80kb.cpp | 26 ++++++++++++++++++++------ src/mame/luxor/abc80kb.h | 11 +++-------- 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/devices/bus/abcbus/memcard.cpp b/src/devices/bus/abcbus/memcard.cpp index e8cd5464ae7..8f6f0e980cc 100644 --- a/src/devices/bus/abcbus/memcard.cpp +++ b/src/devices/bus/abcbus/memcard.cpp @@ -81,13 +81,14 @@ ROM_START( abc_dos ) ROMX_LOAD( "ufddos20.3d", 0x0000, 0x1000, CRC(69b09c0b) SHA1(403997a06cf6495b8fa13dc74eff6a64ef7aa53e), ROM_BIOS(2) ) ROM_REGION( 0x400, "iec", 0 ) - ROM_LOAD( "iec.4b", 0x000, 0x400, NO_DUMP ) + ROM_LOAD( "abc80-iec-option-4027-ver1.02.4b", 0x000, 0x400, CRC(b4998599) SHA1(1d46d1334599c31025cc8481daa4d38d470a7b48) ) ROM_REGION( 0x400, "opt", 0 ) - ROM_LOAD( "spare.4a", 0x000, 0x400, NO_DUMP ) + ROM_LOAD_OPTIONAL( "spare.4a", 0x000, 0x400, NO_DUMP ) ROM_REGION( 0x400, "prn", 0 ) - ROM_LOAD( "printer.3b", 0x000, 0x400, NO_DUMP ) + ROM_LOAD( "abc80-printer-option-9704.3b", 0x000, 0x400, CRC(f2f0d808) SHA1(6355495542e77411137426effbe1059532735bb2) ) + ROM_LOAD( "abc80-printer-option-9704-0.1.3b", 0x000, 0x400, CRC(5bfaee54) SHA1(fc62d8c27c69c7ca0870faa922ccd7aa1b650ecf) ) ROM_END diff --git a/src/mame/luxor/abc80.cpp b/src/mame/luxor/abc80.cpp index c088ed91434..d59d54d6ac4 100644 --- a/src/mame/luxor/abc80.cpp +++ b/src/mame/luxor/abc80.cpp @@ -539,7 +539,7 @@ void abc80_state::abc80(machine_config &config) ABCBUS_SLOT(config, m_bus, XTAL(11'980'800)/2/2, abc80_cards, "abcexp"); RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr); - generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, KEYBOARD_TAG, 0)); + generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "generic_kb", 0)); keyboard.set_keyboard_callback(FUNC(abc80_state::kbd_w)); QUICKLOAD(config, "quickload", "bac", attotime::from_seconds(2)).set_load_callback(FUNC(abc80_state::quickload_cb)); diff --git a/src/mame/luxor/abc80.h b/src/mame/luxor/abc80.h index 94c44150cab..9ee36503bc5 100644 --- a/src/mame/luxor/abc80.h +++ b/src/mame/luxor/abc80.h @@ -72,7 +72,7 @@ public: m_csg(*this, SN76477_TAG), m_cassette(*this, "cassette"), m_bus(*this, "bus"), - m_kb(*this, ABC80_KEYBOARD_TAG), + m_kb(*this, KEYBOARD_TAG), m_ram(*this, RAM_TAG), m_rs232(*this, RS232_TAG), m_palette(*this, "palette"), diff --git a/src/mame/luxor/abc80kb.cpp b/src/mame/luxor/abc80kb.cpp index 80f1117b651..11e2a92897f 100644 --- a/src/mame/luxor/abc80kb.cpp +++ b/src/mame/luxor/abc80kb.cpp @@ -90,7 +90,7 @@ Notes: // DEVICE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(ABC80_KEYBOARD, abc80_keyboard_device, "abc80kb", "ABC-80 Keyboard") +DEFINE_DEVICE_TYPE(ABC80_KEYBOARD, abc80_keyboard_device, "abc80kb", "ABC 80 Keyboard") //------------------------------------------------- @@ -99,7 +99,10 @@ DEFINE_DEVICE_TYPE(ABC80_KEYBOARD, abc80_keyboard_device, "abc80kb", "ABC-80 Key ROM_START( abc80_keyboard ) ROM_REGION( 0x400, I8048_TAG, 0 ) - ROM_LOAD( "053.z5", 0x0000, 0x0400, NO_DUMP ) + ROM_LOAD( "30293b-013.z6", 0x000, 0x400, NO_DUMP ) + + ROM_REGION( 0x200, "prom", 0 ) + ROM_LOAD( "053.z5", 0x000, 0x200, CRC(add80359) SHA1(f88be4918bfd6230b73335c6a75a3010d33b2caa) ) ROM_END @@ -114,10 +117,20 @@ const tiny_rom_entry *abc80_keyboard_device::device_rom_region() const //------------------------------------------------- -// ADDRESS_MAP( abc80_keyboard_io ) +// ADDRESS_MAP( keyboard_mem ) //------------------------------------------------- -void abc80_keyboard_device::abc80_keyboard_io(address_map &map) +void abc80_keyboard_device::keyboard_mem(address_map &map) +{ + map(0x000, 0x3ff).rom().region(I8048_TAG, 0); +} + + +//------------------------------------------------- +// ADDRESS_MAP( keyboard_io ) +//------------------------------------------------- + +void abc80_keyboard_device::keyboard_io(address_map &map) { } @@ -129,7 +142,8 @@ void abc80_keyboard_device::abc80_keyboard_io(address_map &map) void abc80_keyboard_device::device_add_mconfig(machine_config &config) { I8048(config, m_maincpu, 4000000); - m_maincpu->set_addrmap(AS_IO, &abc80_keyboard_device::abc80_keyboard_io); + m_maincpu->set_addrmap(AS_PROGRAM, &abc80_keyboard_device::keyboard_mem); + m_maincpu->set_addrmap(AS_IO, &abc80_keyboard_device::keyboard_io); m_maincpu->set_disable(); } @@ -138,7 +152,7 @@ void abc80_keyboard_device::device_add_mconfig(machine_config &config) // INPUT_PORTS( abc80_keyboard ) //------------------------------------------------- -INPUT_PORTS_START( abc80_keyboard ) +static INPUT_PORTS_START( abc80_keyboard ) INPUT_PORTS_END diff --git a/src/mame/luxor/abc80kb.h b/src/mame/luxor/abc80kb.h index f519411ce68..151ee24b22b 100644 --- a/src/mame/luxor/abc80kb.h +++ b/src/mame/luxor/abc80kb.h @@ -12,13 +12,6 @@ -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - -#define ABC80_KEYBOARD_TAG "abc80kb" - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -35,7 +28,9 @@ public: uint8_t data_r(); - void abc80_keyboard_io(address_map &map); + void keyboard_mem(address_map &map); + void keyboard_io(address_map &map); + protected: // device-level overrides virtual void device_start() override;