From 2e749cdd86e43bfb8435566c7ec2496a16426547 Mon Sep 17 00:00:00 2001 From: arbee Date: Mon, 15 Mar 2021 22:50:15 -0400 Subject: apple2gs: updates [R. Belmont] - Fix 3.5" floppy motor sound never turning off - Fix $C00X and $C01X readbacks to match hardware (GitHub issue #7867) - Some minor cleanup and modernization --- src/devices/imagedev/floppy.cpp | 11 +- src/devices/imagedev/floppy.h | 8 +- src/mame/drivers/apple2gs.cpp | 252 ++++++++++++++++++++-------------------- 3 files changed, 138 insertions(+), 133 deletions(-) diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp index 5b4f2ef1294..643511a37d8 100644 --- a/src/devices/imagedev/floppy.cpp +++ b/src/devices/imagedev/floppy.cpp @@ -346,7 +346,7 @@ void floppy_image_device::register_formats() auto ff = fmt(); ff->enumerate(fse, form_factor, variants); m_fs_managers.push_back(std::unique_ptr(ff)); - } + } } void floppy_image_device::set_formats(std::function formats) @@ -2781,6 +2781,15 @@ void mac_floppy_device::mon_w(int) // Motor control is through commands } +void mac_floppy_device::tfsel_w(int state) +{ + // if 35SEL line is clear and the motor is on, turn off the motor + if ((state == CLEAR_LINE) && (!floppy_image_device::mon_r())) + { + floppy_image_device::mon_w(1); + } +} + oa_d34v_device::oa_d34v_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : mac_floppy_device(mconfig, OAD34V, tag, owner, clock) { } diff --git a/src/devices/imagedev/floppy.h b/src/devices/imagedev/floppy.h index ab716104f7e..f847e525a05 100644 --- a/src/devices/imagedev/floppy.h +++ b/src/devices/imagedev/floppy.h @@ -55,7 +55,7 @@ public: const char *m_name; u32 m_key; const char *m_description; - + fs_info(const filesystem_manager_t *manager, floppy_format_type type, u32 image_size, const char *name, u32 key, const char *description) : m_manager(manager), m_type(type), @@ -64,7 +64,7 @@ public: m_key(key), m_description(description) {} - + fs_info(const filesystem_manager_t *manager, const char *name, u32 key, const char *description) : m_manager(manager), m_type(nullptr), @@ -117,6 +117,7 @@ public: bool ready_r(); void set_ready(bool state); double get_pos(); + virtual void tfsel_w(int state) { }; // 35SEL line for Apple Sony drives virtual bool wpt_r(); // Mac sony drives using this for various reporting int dskchg_r() { return dskchg; } @@ -156,7 +157,7 @@ protected: struct fs_enum : public filesystem_manager_t::floppy_enumerator { floppy_image_device *m_fid; fs_enum(floppy_image_device *fid) : filesystem_manager_t::floppy_enumerator(), m_fid(fid) {}; - + virtual void add(const filesystem_manager_t *manager, floppy_format_type type, u32 image_size, const char *name, u32 key, const char *description) override; virtual void add_raw(const filesystem_manager_t *manager, const char *name, u32 key, const char *description) override; }; @@ -315,6 +316,7 @@ public: virtual bool wpt_r() override; virtual void mon_w(int) override; + virtual void tfsel_w(int state) override; virtual void seek_phase_w(int phases) override; virtual const char *image_interface() const noexcept override { return "floppy_3_5"; } virtual bool writing_disabled() const override; diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index 4181f459696..41abc1a9862 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -136,22 +136,10 @@ namespace { #define A2GS_7M (A2GS_MASTER_CLOCK/4) #define A2GS_1M (A2GS_MASTER_CLOCK/28) -#define A2GS_CPU_TAG "maincpu" -#define A2GS_ADBMCU_TAG "adbmicro" -#define A2GS_KBDC_TAG "ay3600" -#define A2GS_BUS_TAG "a2bus" -#define A2GS_SPEAKER_TAG "speaker" -#define A2GS_CASSETTE_TAG "tape" #define A2GS_UPPERBANK_TAG "inhbank" #define A2GS_AUXUPPER_TAG "inhaux" #define A2GS_00UPPER_TAG "inh00" #define A2GS_01UPPER_TAG "inh01" -#define A2GS_IWM_TAG "fdc" // must be "fdc" or sonydriv pukes -#define A2GS_DOC_TAG "doc" -#define A2GS_VIDEO_TAG "a2video" -#define SCC_TAG "scc" -#define RS232A_TAG "printer" -#define RS232B_TAG "modem" #define A2GS_C300_TAG "c3bank" #define A2GS_LCBANK_TAG "lcbank" @@ -169,29 +157,26 @@ namespace { #define A2GS_KBD_SPEC_TAG "keyb_special" -#define CNXX_UNCLAIMED -1 -#define CNXX_INTROM -2 - class apple2gs_state : public driver_device { public: apple2gs_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_maincpu(*this, A2GS_CPU_TAG), + m_maincpu(*this, "maincpu"), m_screen(*this, "screen"), m_scantimer(*this, "scantimer"), m_acceltimer(*this, "acceltimer"), - m_adbmicro(*this, A2GS_ADBMCU_TAG), - m_ram(*this, RAM_TAG), + m_adbmicro(*this, "adbmicro"), + m_ram(*this, "ram"), m_rom(*this, "maincpu"), m_docram(*this, "docram"), m_nvram(*this, "nvram"), - m_video(*this, A2GS_VIDEO_TAG), - m_a2bus(*this, A2GS_BUS_TAG), + m_video(*this, "a2video"), + m_a2bus(*this, "a2bus"), m_a2common(*this, "a2common"), // m_a2host(*this, "a2host"), m_gameio(*this, "gameio"), - m_speaker(*this, A2GS_SPEAKER_TAG), + m_speaker(*this, "speaker"), m_upperbank(*this, A2GS_UPPERBANK_TAG), m_upperaux(*this, A2GS_AUXUPPER_TAG), m_upper00(*this, A2GS_00UPPER_TAG), @@ -209,8 +194,8 @@ public: m_lc01(*this, A2GS_LC01_TAG), m_bank0_atc(*this, A2GS_B0CXXX_TAG), m_bank1_atc(*this, A2GS_B1CXXX_TAG), - m_scc(*this, SCC_TAG), - m_doc(*this, A2GS_DOC_TAG), + m_scc(*this, "scc"), + m_doc(*this, "doc"), m_iwm(*this, "fdc"), m_floppy(*this, "fdc:%d", 0U), m_kbd(*this, "Y%d", 0), @@ -265,6 +250,9 @@ private: required_memory_region m_kbdrom; required_ioport m_adb_mousex, m_adb_mousey; + static constexpr int CNXX_UNCLAIMED = -1; + static constexpr int CNXX_INTROM = -2; + enum glu_reg_names { // these are the MCU-visible registers @@ -282,54 +270,40 @@ private: GLU_SYSSTAT // 816 R/(limited) W }; - enum glu_kg_status - { - KGS_ANY_KEY_DOWN = 0x01, - KGS_KEYSTROBE = 0x10, - KGS_DATA_FULL = 0x20, - KGS_COMMAND_FULL = 0x40, - KGS_MOUSEX_FULL = 0x80 - }; - - enum glu_sys_status - { - GLU_STATUS_CMDFULL = 0x01, - GLU_STATUS_MOUSEXY = 0x02, - GLU_STATUS_KEYDATIRQEN = 0x04, - GLU_STATUS_KEYDATIRQ = 0x08, - GLU_STATUS_DATAIRQEN = 0x10, - GLU_STATUS_DATAIRQ = 0x20, - GLU_STATUS_MOUSEIRQEN = 0x40, - GLU_STATUS_MOUSEIRQ = 0x080 - }; - - enum shadow_reg_bits - { - SHAD_IOLC = 0x40, // I/O and language card inhibit for banks 00/01 - SHAD_TXTPG2 = 0x20, // inhibits text-page 2 shadowing in both banks (ROM 03 h/w only) - SHAD_AUXHIRES = 0x10, // inhibits bank 01 hi-res region shadowing - SHAD_SUPERHIRES = 0x08, // inhibits bank 01 super-hi-res region shadowing - SHAD_HIRESPG2 = 0x04, // inhibits hi-res page 2 shadowing in both banks - SHAD_HIRESPG1 = 0x02, // inhibits hi-res page 1 shadowing in both banks - SHAD_TXTPG1 = 0x01 // inhibits text-page 1 shadowing in both banks - }; - - enum speed_reg_bits - { - SPEED_HIGH = 0x80, // full 2.8 MHz speed when set, Apple II 1 MHz when clear - SPEED_POWERON = 0x40, // ROM 03 only; indicates machine turned on by power switch (as opposed to ?) - SPEED_ALLBANKS = 0x10, // enables bank 0/1 shadowing in all banks (not supported) - SPEED_DISKIISL7 = 0x08, // enable Disk II motor on detect for slot 7 - SPEED_DISKIISL6 = 0x04, // enable Disk II motor on detect for slot 6 - SPEED_DISKIISL5 = 0x02, // enable Disk II motor on detect for slot 5 - SPEED_DISKIISL4 = 0x01 // enable Disk II motor on detect for slot 4 - }; - enum disk_reg_bits - { - DISKREG_HDSEL = 7, // select signal for 3.5" Sony drives - DISKREG_35SEL = 6 // 1 to enable 3.5" drives, 0 to chain through to 5.25" - }; + static constexpr u8 KGS_ANY_KEY_DOWN = 0x01; + static constexpr u8 KGS_KEYSTROBE = 0x10; + static constexpr u8 KGS_DATA_FULL = 0x20; + static constexpr u8 KGS_COMMAND_FULL = 0x40; + static constexpr u8 KGS_MOUSEX_FULL = 0x80; + + [[maybe_unused]] static constexpr u8 GLU_STATUS_CMDFULL = 0x01; + [[maybe_unused]] static constexpr u8 GLU_STATUS_MOUSEXY = 0x02; + static constexpr u8 GLU_STATUS_KEYDATIRQEN = 0x04; + static constexpr u8 GLU_STATUS_KEYDATIRQ = 0x08; + [[maybe_unused]] static constexpr u8 GLU_STATUS_DATAIRQEN = 0x10; + static constexpr u8 GLU_STATUS_DATAIRQ = 0x20; + static constexpr u8 GLU_STATUS_MOUSEIRQEN = 0x40; + static constexpr u8 GLU_STATUS_MOUSEIRQ = 0x080; + + static constexpr u8 SHAD_IOLC = 0x40; // I/O and language card inhibit for banks 00/01 + static constexpr u8 SHAD_TXTPG2 = 0x20; // inhibits text-page 2 shadowing in both banks (ROM 03 h/w only) + static constexpr u8 SHAD_AUXHIRES = 0x10; // inhibits bank 01 hi-res region shadowing + static constexpr u8 SHAD_SUPERHIRES = 0x08; // inhibits bank 01 super-hi-res region shadowing + static constexpr u8 SHAD_HIRESPG2 = 0x04; // inhibits hi-res page 2 shadowing in both banks + static constexpr u8 SHAD_HIRESPG1 = 0x02; // inhibits hi-res page 1 shadowing in both banks + static constexpr u8 SHAD_TXTPG1 = 0x01; // inhibits text-page 1 shadowing in both banks + + static constexpr u8 SPEED_HIGH = 0x80; // full 2.8 MHz speed when set, Apple II 1 MHz when clear + [[maybe_unused]] static constexpr u8 SPEED_POWERON = 0x40; // ROM 03 only; indicates machine turned on by power switch (as opposed to ?) + static constexpr u8 SPEED_ALLBANKS = 0x10; // enables bank 0/1 shadowing in all banks (not supported) + [[maybe_unused]] static constexpr u8 SPEED_DISKIISL7 = 0x08; // enable Disk II motor on detect for slot 7 + [[maybe_unused]] static constexpr u8 SPEED_DISKIISL6 = 0x04; // enable Disk II motor on detect for slot 6 + [[maybe_unused]] static constexpr u8 SPEED_DISKIISL5 = 0x02; // enable Disk II motor on detect for slot 5 + [[maybe_unused]] static constexpr u8 SPEED_DISKIISL4 = 0x01; // enable Disk II motor on detect for slot 4 + + static constexpr u8 DISKREG_HDSEL = 7; // select signal for 3.5" Sony drives + static constexpr u8 DISKREG_35SEL = 6; // 1 to enable 3.5" drives, 0 to chain through to 5.25" enum irq_sources { @@ -343,28 +317,22 @@ private: IRQS_SCC = 7 }; - enum intflag_bits - { - INTFLAG_IRQASSERTED = 0x01, - INTFLAG_M2MOUSEMOVE = 0x02, - INTFLAG_M2MOUSESW = 0x04, - INTFLAG_VBL = 0x08, - INTFLAG_QUARTER = 0x10, - INTFLAG_AN3 = 0x20, - INTFLAG_MOUSEDOWNLAST = 0x40, - INTFLAG_MOUSEDOWN = 0x80 - }; - - enum vgcint_bits - { - VGCINT_EXTERNALEN = 0x01, - VGCINT_SCANLINEEN = 0x02, - VGCINT_SECONDENABLE = 0x04, - VGCINT_EXTERNAL = 0x10, - VGCINT_SCANLINE = 0x20, - VGCINT_SECOND = 0x40, - VGCINT_ANYVGCINT = 0x80 - }; + static constexpr u8 INTFLAG_IRQASSERTED = 0x01; + [[maybe_unused]] static constexpr u8 INTFLAG_M2MOUSEMOVE = 0x02; + [[maybe_unused]] static constexpr u8 INTFLAG_M2MOUSESW = 0x04; + static constexpr u8 INTFLAG_VBL = 0x08; + static constexpr u8 INTFLAG_QUARTER = 0x10; + static constexpr u8 INTFLAG_AN3 = 0x20; + [[maybe_unused]] static constexpr u8 INTFLAG_MOUSEDOWNLAST = 0x40; + [[maybe_unused]] static constexpr u8 INTFLAG_MOUSEDOWN = 0x80; + + [[maybe_unused]] static constexpr u8 VGCINT_EXTERNALEN = 0x01; + static constexpr u8 VGCINT_SCANLINEEN = 0x02; + static constexpr u8 VGCINT_SECONDENABLE = 0x04; + [[maybe_unused]] static constexpr u8 VGCINT_EXTERNAL = 0x10; + static constexpr u8 VGCINT_SCANLINE = 0x20; + static constexpr u8 VGCINT_SECOND = 0x40; + static constexpr u8 VGCINT_ANYVGCINT = 0x80; enum apple2gs_clock_mode { @@ -522,6 +490,7 @@ private: double m_joystick_x1_time, m_joystick_y1_time, m_joystick_x2_time, m_joystick_y2_time; int m_inh_slot, m_cnxx_slot; + int m_motoroff_time; bool m_page2; bool m_an0, m_an1, m_an2, m_an3; @@ -1542,6 +1511,7 @@ void apple2gs_state::machine_start() save_item(NAME(m_accel_percent)); save_item(NAME(m_accel_temp_slowdown)); save_item(NAME(m_accel_speed)); + save_item(NAME(m_motoroff_time)); } void apple2gs_state::machine_reset() @@ -1628,6 +1598,8 @@ void apple2gs_state::machine_reset() m_vgcint = 0; m_inten = 0; + m_motoroff_time = 0; + m_slow_counter = 0; // always assert full speed on reset @@ -1846,6 +1818,17 @@ TIMER_DEVICE_CALLBACK_MEMBER(apple2gs_state::apple2_interrupt) } } + // 3.5 motor off timeout + if (m_motoroff_time > 0) + { + m_motoroff_time--; + if (m_motoroff_time == 0) + { + m_floppy[2]->get_device()->tfsel_w(0); + m_floppy[3]->get_device()->tfsel_w(0); + } + } + // one second if (m_clock_frame >= 60) { @@ -2330,15 +2313,18 @@ u8 apple2gs_state::c000_r(offs_t offset) slow_cycle(); u8 uFloatingBus7 = read_floatingbus() & 0x7f; +#if RUN_ADB_MICRO + u8 uKeyboard = keyglu_816_read(GLU_C000); + u8 uKeyboardC010 = keyglu_816_read(GLU_C010); +#else + u8 uKeyboard = m_transchar | m_strobe; + u8 uKeyboardC010 = m_transchar; +#endif switch (offset) { case 0x00: // keyboard latch - #if RUN_ADB_MICRO - return keyglu_816_read(GLU_C000); - #else - return m_transchar | m_strobe; - #endif + return uKeyboard; case 0x02: // RAMRDOFF m_ramrd = false; @@ -2361,58 +2347,53 @@ u8 apple2gs_state::c000_r(offs_t offset) break; case 0x10: // read any key down, reset keyboard strobe - #if RUN_ADB_MICRO - return keyglu_816_read(GLU_C010); - #else - ret = m_transchar | (m_anykeydown ? 0x80 : 0x00); m_strobe = 0; - return ret; - #endif + return uKeyboardC010 | (m_anykeydown ? 0x80 : 0x00); case 0x11: // read LCRAM2 (LC Dxxx bank) - return m_lcram2 ? 0x80 : 0x00; + return uKeyboardC010 | (m_lcram2 ? 0x80 : 0x00); case 0x12: // read LCRAM (is LC readable?) - return m_lcram ? 0x80 : 0x00; + return uKeyboardC010 | (m_lcram ? 0x80 : 0x00); case 0x13: // read RAMRD - return m_ramrd ? 0x80 : 0x00; + return uKeyboardC010 | (m_ramrd ? 0x80 : 0x00); case 0x14: // read RAMWRT - return m_ramwrt ? 0x80 : 0x00; + return uKeyboardC010 | (m_ramwrt ? 0x80 : 0x00); case 0x15: // read INTCXROM - return m_intcxrom ? 0x80 : 0x00; + return uKeyboardC010 | (m_intcxrom ? 0x80 : 0x00); case 0x16: // read ALTZP - return m_altzp ? 0x80 : 0x00; + return uKeyboardC010 | (m_altzp ? 0x80 : 0x00); case 0x17: // read SLOTC3ROM - return m_slotc3rom ? 0x80 : 0x00; + return uKeyboardC010 | (m_slotc3rom ? 0x80 : 0x00); case 0x18: // read 80STORE - return m_80store ? 0x80 : 0x00; + return uKeyboardC010 | (m_80store ? 0x80 : 0x00); case 0x19: // read VBLBAR - return m_screen->vblank() ? 0x00 : 0x80; + return uKeyboardC010 | (m_screen->vblank() ? 0x00 : 0x80); case 0x1a: // read TEXT - return m_video->m_graphics ? 0x00 : 0x80; + return uKeyboardC010 | (m_video->m_graphics ? 0x00 : 0x80); case 0x1b: // read MIXED - return m_video->m_mix ? 0x80 : 0x00; + return uKeyboardC010 | (m_video->m_mix ? 0x80 : 0x00); case 0x1c: // read PAGE2 - return m_page2 ? 0x80 : 0x00; + return uKeyboardC010 | (m_page2 ? 0x80 : 0x00); case 0x1d: // read HIRES - return m_video->m_hires ? 0x80 : 0x00; + return uKeyboardC010 | (m_video->m_hires ? 0x80 : 0x00); case 0x1e: // read ALTCHARSET - return m_video->m_altcharset ? 0x80 : 0x00; + return uKeyboardC010 | (m_video->m_altcharset ? 0x80 : 0x00); case 0x1f: // read 80COL - return m_video->m_80col ? 0x80 : 0x00; + return uKeyboardC010 | (m_video->m_80col ? 0x80 : 0x00); case 0x22: // TEXTCOL return m_textcol; @@ -2672,6 +2653,12 @@ u8 apple2gs_state::c000_r(offs_t offset) break; } + // assume all $C00X returns the keyboard, like on the IIe + if ((offset & 0xf0) == 0x00) + { + return uKeyboard; + } + return read_floatingbus(); } @@ -2834,7 +2821,12 @@ void apple2gs_state::c000_w(offs_t offset, u8 data) case 0x2d: // SLOTROMSEL m_slotromsel = data; break; - case 0x31: // DISKREG + case 0x31: // + if (!BIT(data, DISKREG_35SEL)) + { + m_motoroff_time = 30; + } + if ((m_cur_floppy) && (BIT(data, DISKREG_35SEL))) { m_cur_floppy->ss_w(BIT(data, DISKREG_HDSEL)); @@ -4439,6 +4431,7 @@ void apple2gs_state::devsel_w(uint8_t devsel) else { m_cur_floppy = m_floppy[2]->get_device(); + m_motoroff_time = 0; } } else if (m_devsel == 2) @@ -4450,6 +4443,7 @@ void apple2gs_state::devsel_w(uint8_t devsel) else { m_cur_floppy = m_floppy[3]->get_device(); + m_motoroff_time = 0; } } else @@ -4932,15 +4926,15 @@ void apple2gs_state::apple2gs(machine_config &config) /* serial */ SCC85C30(config, m_scc, A2GS_14M/2); m_scc->out_int_callback().set(FUNC(apple2gs_state::scc_irq_w)); - m_scc->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); - m_scc->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); + m_scc->out_txda_callback().set("printer", FUNC(rs232_port_device::write_txd)); + m_scc->out_txdb_callback().set("modem", FUNC(rs232_port_device::write_txd)); - rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); + rs232_port_device &rs232a(RS232_PORT(config, "printer", default_rs232_devices, nullptr)); rs232a.rxd_handler().set(m_scc, FUNC(z80scc_device::rxa_w)); rs232a.dcd_handler().set(m_scc, FUNC(z80scc_device::dcda_w)); rs232a.cts_handler().set(m_scc, FUNC(z80scc_device::ctsa_w)); - rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); + rs232_port_device &rs232b(RS232_PORT(config, "modem", default_rs232_devices, nullptr)); rs232b.rxd_handler().set(m_scc, FUNC(z80scc_device::rxb_w)); rs232b.dcd_handler().set(m_scc, FUNC(z80scc_device::dcdb_w)); rs232b.cts_handler().set(m_scc, FUNC(z80scc_device::ctsb_w)); @@ -5001,7 +4995,7 @@ void apple2gs_state::apple2gsr1(machine_config &config) ***************************************************************************/ ROM_START(apple2gs) // M50740/50741 ADB MCU inside the IIgs system unit - ROM_REGION(0x1000, A2GS_ADBMCU_TAG, 0) + ROM_REGION(0x1000, "adbmicro", 0) ROM_LOAD( "341s0632-2.bin", 0x000000, 0x001000, CRC(e1c11fb0) SHA1(141d18c36a617ab9dce668445440d34354be0672) ) // i8048 microcontroller inside the IIgs ADB Standard Keyboard @@ -5029,7 +5023,7 @@ ROM_START(apple2gs) ROM_END ROM_START(apple2gsr3p) - ROM_REGION(0x1000, A2GS_ADBMCU_TAG, 0) + ROM_REGION(0x1000, "adbmicro", 0) ROM_LOAD( "341s0632-2.bin", 0x000000, 0x001000, CRC(e1c11fb0) SHA1(141d18c36a617ab9dce668445440d34354be0672) ) ROM_REGION(0x400, "kmcu", 0) @@ -5049,7 +5043,7 @@ ROM_START(apple2gsr3p) ROM_END ROM_START(apple2gsr1) - ROM_REGION(0xc00, A2GS_ADBMCU_TAG, 0) + ROM_REGION(0xc00, "adbmicro", 0) ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) ) ROM_REGION(0x400, "kmcu", 0) @@ -5068,7 +5062,7 @@ ROM_START(apple2gsr1) ROM_END ROM_START(apple2gsr0) - ROM_REGION(0xc00, A2GS_ADBMCU_TAG, 0) + ROM_REGION(0xc00, "adbmicro", 0) ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) ) ROM_REGION(0x400, "kmcu", 0) @@ -5087,7 +5081,7 @@ ROM_START(apple2gsr0) ROM_END ROM_START(apple2gsr0p) // 6/19/1986 Cortland prototype - ROM_REGION(0xc00, A2GS_ADBMCU_TAG, 0) + ROM_REGION(0xc00, "adbmicro", 0) ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) ) ROM_REGION(0x400, "kmcu", 0) @@ -5106,7 +5100,7 @@ ROM_START(apple2gsr0p) // 6/19/1986 Cortland prototype ROM_END ROM_START(apple2gsr0p2) // 3/10/1986 Cortland prototype, boots as "Apple //'ing - Alpha 2.0" - ROM_REGION(0xc00, A2GS_ADBMCU_TAG, 0) + ROM_REGION(0xc00, "adbmicro", 0) ROM_LOAD( "341s0345.bin", 0x000000, 0x000c00, CRC(48cd5779) SHA1(97e421f5247c00a0ca34cd08b6209df573101480) ) ROM_REGION(0x400, "kmcu", 0) -- cgit v1.2.3