abc80: Added keyboard PROM, and memory card IEC/Printer ROMs. [Curt Coder]

This commit is contained in:
Curt Coder 2023-03-27 07:44:03 +03:00
parent 6a32d4bb44
commit b58b0aa993
5 changed files with 29 additions and 19 deletions

View File

@ -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

View File

@ -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));

View File

@ -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"),

View File

@ -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

View File

@ -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;