diff options
| author | 2021-04-07 04:33:43 +1000 | |
|---|---|---|
| committer | 2021-04-07 04:33:43 +1000 | |
| commit | 958189731b8e4b0e19c042331901460ef452f601 (patch) | |
| tree | fb7fabf3d7b75ee4a954f28f878276be711d1346 | |
| parent | 42e49eaf1e33975152257d340297ed58695762fa (diff) | |
bus/a2bus: Added Orange Micro Grappler printer interface card.
| -rw-r--r-- | scripts/src/bus.lua | 4 | ||||
| -rw-r--r-- | src/devices/bus/a2bus/grappler.cpp (renamed from src/devices/bus/a2bus/grapplerplus.cpp) | 388 | ||||
| -rw-r--r-- | src/devices/bus/a2bus/grappler.h (renamed from src/devices/bus/a2bus/grapplerplus.h) | 117 | ||||
| -rw-r--r-- | src/mame/drivers/apple2.cpp | 3 | ||||
| -rw-r--r-- | src/mame/drivers/apple2e.cpp | 3 | ||||
| -rw-r--r-- | src/mame/drivers/apple2gs.cpp | 3 |
6 files changed, 400 insertions, 118 deletions
diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 74f601e7499..415826bbfb6 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -2417,8 +2417,8 @@ if (BUSES["A2BUS"]~=null) then MAME_DIR .. "src/devices/bus/a2bus/corvfdc02.h", MAME_DIR .. "src/devices/bus/a2bus/ezcgi.cpp", MAME_DIR .. "src/devices/bus/a2bus/ezcgi.h", - MAME_DIR .. "src/devices/bus/a2bus/grapplerplus.cpp", - MAME_DIR .. "src/devices/bus/a2bus/grapplerplus.h", + MAME_DIR .. "src/devices/bus/a2bus/grappler.cpp", + MAME_DIR .. "src/devices/bus/a2bus/grappler.h", MAME_DIR .. "src/devices/bus/a2bus/laser128.cpp", MAME_DIR .. "src/devices/bus/a2bus/laser128.h", MAME_DIR .. "src/devices/bus/a2bus/mouse.cpp", diff --git a/src/devices/bus/a2bus/grapplerplus.cpp b/src/devices/bus/a2bus/grappler.cpp index f4e95e92b42..3b14db16c48 100644 --- a/src/devices/bus/a2bus/grapplerplus.cpp +++ b/src/devices/bus/a2bus/grappler.cpp @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Vas Crabb #include "emu.h" -#include "grapplerplus.h" +#include "grappler.h" //#define VERBOSE 1 //#define LOG_OUTPUT_FUNC osd_printf_info @@ -9,6 +9,12 @@ namespace { +ROM_START(grappler) + ROM_REGION(0x0800, "rom", 0) + ROM_LOAD( "eps-1_c1981.u6", 0x0000, 0x0800, CRC(862773cb) SHA1(791ebae64a7fad8f42bdfaec36b9e2d34f12ded8) ) +ROM_END + + ROM_START(grapplerplus) // TODO: add other revisions - 3.3 is known to exist @@ -73,6 +79,7 @@ INPUT_PORTS_END +DEFINE_DEVICE_TYPE(A2BUS_GRAPPLER, a2bus_grappler_device, "a2grappler", "Orange Micro Grappler Printer Interface") DEFINE_DEVICE_TYPE(A2BUS_GRAPPLERPLUS, a2bus_grapplerplus_device, "a2grapplerplus", "Orange Micro Grappler+ Printer Interface") DEFINE_DEVICE_TYPE(A2BUS_BUFGRAPPLERPLUS, a2bus_buf_grapplerplus_device, "a2bufgrapplerplus", "Orange Micro Buffered Grappler+ Printer Interface") DEFINE_DEVICE_TYPE(A2BUS_BUFGRAPPLERPLUSA, a2bus_buf_grapplerplus_reva_device, "a2bufgrapplerplusa", "Orange Micro Buffered Grappler+ (rev A) Printer Interface") @@ -80,19 +87,16 @@ DEFINE_DEVICE_TYPE(A2BUS_BUFGRAPPLERPLUSA, a2bus_buf_grapplerplus_reva_device, " //============================================================== -// Grappler+ base +// Grappler base //============================================================== -a2bus_grapplerplus_device_base::a2bus_grapplerplus_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock) : +a2bus_grappler_device_base::a2bus_grappler_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock) : device_t(mconfig, type, tag, owner, clock), device_a2bus_card_interface(mconfig, *this), m_printer_conn(*this, "prn"), m_printer_out(*this, "prn_out"), - m_s1(*this, "S1"), m_rom(*this, "rom"), m_rom_bank(0x0000U), - m_ack_latch(1U), - m_ack_in(1U), m_busy_in(1U), m_pe_in(1U), m_slct_in(1U) @@ -102,21 +106,305 @@ a2bus_grapplerplus_device_base::a2bus_grapplerplus_device_base(machine_config co //-------------------------------------------------- +// device_a2bus_card_interface implementation +//-------------------------------------------------- + +u8 a2bus_grappler_device_base::read_c800(u16 offset) +{ + return m_rom[(offset & 0x07ffU) | m_rom_bank]; +} + + + +//-------------------------------------------------- // device_t implementation //-------------------------------------------------- -void a2bus_grapplerplus_device_base::device_add_mconfig(machine_config &config) +void a2bus_grappler_device_base::device_add_mconfig(machine_config &config) { CENTRONICS(config, m_printer_conn, centronics_devices, "printer"); - m_printer_conn->busy_handler().set(FUNC(a2bus_grapplerplus_device_base::busy_w)); - m_printer_conn->perror_handler().set(FUNC(a2bus_grapplerplus_device_base::pe_w)); - m_printer_conn->select_handler().set(FUNC(a2bus_grapplerplus_device_base::slct_w)); + m_printer_conn->busy_handler().set(FUNC(a2bus_grappler_device_base::busy_w)); + m_printer_conn->perror_handler().set(FUNC(a2bus_grappler_device_base::pe_w)); + m_printer_conn->select_handler().set(FUNC(a2bus_grappler_device_base::slct_w)); OUTPUT_LATCH(config, m_printer_out); m_printer_conn->set_output_latch(*m_printer_out); } +void a2bus_grappler_device_base::device_start() +{ + save_item(NAME(m_rom_bank)); + save_item(NAME(m_busy_in)); + save_item(NAME(m_pe_in)); + save_item(NAME(m_slct_in)); +} + + + +//-------------------------------------------------- +// printer status inputs +//-------------------------------------------------- + +void a2bus_grappler_device_base::set_rom_bank(u16 rom_bank) +{ + if (m_rom_bank != rom_bank) + LOG("Select ROM bank %04X\n", rom_bank); + m_rom_bank = rom_bank; +} + + + +//-------------------------------------------------- +// printer status inputs +//-------------------------------------------------- + +WRITE_LINE_MEMBER(a2bus_grappler_device_base::busy_w) +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device_base::set_busy_in), this), state ? 1 : 0); +} + + +WRITE_LINE_MEMBER(a2bus_grappler_device_base::pe_w) +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device_base::set_pe_in), this), state ? 1 : 0); +} + + +WRITE_LINE_MEMBER(a2bus_grappler_device_base::slct_w) +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device_base::set_slct_in), this), state ? 1 : 0); +} + + + +//-------------------------------------------------- +// synchronised printer status inputs +//-------------------------------------------------- + +void a2bus_grappler_device_base::set_busy_in(void *ptr, s32 param) +{ + if (u32(param) != m_busy_in) + { + LOG("BUSY=%d\n", param); + m_busy_in = u8(u32(param)); + } +} + + +void a2bus_grappler_device_base::set_pe_in(void *ptr, s32 param) +{ + if (u32(param) != m_pe_in) + { + LOG("PAPER EMPTY=%d\n", param); + m_pe_in = u8(u32(param)); + } +} + + +void a2bus_grappler_device_base::set_slct_in(void *ptr, s32 param) +{ + if (u32(param) != m_slct_in) + { + LOG("SELECT=%d\n", param); + m_slct_in = u8(u32(param)); + } +} + + + +//============================================================== +// Grappler implementation +//============================================================== + +a2bus_grappler_device::a2bus_grappler_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) : + a2bus_grappler_device_base(mconfig, A2BUS_GRAPPLER, tag, owner, clock), + m_strobe(1U), + m_ack_latch(1U), + m_ack_in(1U) +{ +} + + + +//-------------------------------------------------- +// device_a2bus_card_interface implementation +//-------------------------------------------------- + +u8 a2bus_grappler_device::read_c0nx(u8 offset) +{ + LOG("Read C0n%01X\n", offset); + + if (BIT(offset, 1)) // A1 - assert strobe + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device::set_strobe), this), 0); + else if (BIT(offset, 2)) // A2 - release strobe + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device::set_strobe), this), 1); + + if (BIT(offset, 0)) // A0 - printer status + { + return + 0xf0U | // TODO: actually open bus + (busy_in() << 3) | + (pe_in() << 2) | + (slct_in() << 1) | + m_ack_latch; + } + else + { + return 0xffU; // TODO: actually open bus + } +} + + +void a2bus_grappler_device::write_c0nx(u8 offset, u8 data) +{ + LOG("Write C0n%01X=%02X\n", offset, data); + + if (BIT(offset, 0)) // A0 - write data + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device::set_data), this), int(unsigned(data))); + + if (BIT(offset, 1)) // A1 - assert strobe + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device::set_strobe), this), 0); + else if (BIT(offset, 2)) // A2 - release strobe + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device::set_strobe), this), 1); +} + + +u8 a2bus_grappler_device::read_cnxx(u8 offset) +{ + return m_rom[offset | (slotno() << 8)]; +} + + +void a2bus_grappler_device::write_cnxx(u8 offset, u8 data) +{ + LOG("Write Cn%02X=%02X (bus conflict)\n", offset, data); +} + + + +//-------------------------------------------------- +// device_t implementation +//-------------------------------------------------- + +tiny_rom_entry const *a2bus_grappler_device::device_rom_region() const +{ + return ROM_NAME(grappler); +} + + +void a2bus_grappler_device::device_add_mconfig(machine_config &config) +{ + a2bus_grappler_device_base::device_add_mconfig(config); + + m_printer_conn->ack_handler().set(FUNC(a2bus_grappler_device::ack_w)); +} + + +void a2bus_grappler_device::device_start() +{ + a2bus_grappler_device_base::device_start(); + + save_item(NAME(m_strobe)); + save_item(NAME(m_ack_latch)); + save_item(NAME(m_ack_in)); +} + + +void a2bus_grappler_device::device_reset() +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device::set_strobe), this), 1); +} + + + +//-------------------------------------------------- +// printer status inputs +//-------------------------------------------------- + +WRITE_LINE_MEMBER(a2bus_grappler_device::ack_w) +{ + machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grappler_device::set_ack_in), this), state ? 1 : 0); +} + + + +//-------------------------------------------------- +// synchronised signals +//-------------------------------------------------- + +void a2bus_grappler_device::set_data(void *ptr, s32 param) +{ + LOG("Output data %02X\n", u8(u32(param))); + m_printer_out->write(u8(u32(param))); +} + + +void a2bus_grappler_device::set_strobe(void *ptr, s32 param) +{ + LOG("Output /STROBE=%d\n", param); + m_printer_conn->write_strobe(param); + if (m_strobe && !param) + { + if (m_ack_in) + { + if (!m_ack_latch) + LOG("Clearing acknowledge latch\n"); + else + LOG("Previous data not acknowledged\n"); + m_ack_latch = 1U; + } + else + { + LOG("/ACK asserted, not clearing acknowledge latch\n"); + } + } + m_strobe = u8(u32(param)); +} + + +void a2bus_grappler_device::set_ack_in(void *ptr, s32 param) +{ + if (u32(param) != m_ack_in) + { + LOG("/ACK=%d\n", param); + m_ack_in = u8(u32(param)); + if (!param) + { + if (m_ack_latch) + LOG("Set acknowledge latch\n"); + else + LOG("No data written since previous acknowledge\n"); + m_ack_latch = 0U; + } + else if (!m_strobe) + { + LOG("Clearing acknowledge latch\n"); + m_ack_latch = 1U; + } + } +} + + + +//============================================================== +// Grappler+ base +//============================================================== + +a2bus_grapplerplus_device_base::a2bus_grapplerplus_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock) : + a2bus_grappler_device_base(mconfig, type, tag, owner, clock), + m_s1(*this, "S1"), + m_ack_latch(1U), + m_ack_in(1U) +{ +} + + + +//-------------------------------------------------- +// device_t implementation +//-------------------------------------------------- + ioport_constructor a2bus_grapplerplus_device_base::device_input_ports() const { return INPUT_PORTS_NAME(grapplerplus); @@ -125,12 +413,10 @@ ioport_constructor a2bus_grapplerplus_device_base::device_input_ports() const void a2bus_grapplerplus_device_base::device_start() { - save_item(NAME(m_rom_bank)); + a2bus_grappler_device_base::device_start(); + save_item(NAME(m_ack_latch)); save_item(NAME(m_ack_in)); - save_item(NAME(m_busy_in)); - save_item(NAME(m_pe_in)); - save_item(NAME(m_slct_in)); } @@ -172,24 +458,14 @@ void a2bus_grapplerplus_device_base::write_c0nx(u8 offset, u8 data) } if (BIT(offset, 0)) // A0 - select high ROM bank - { - if (!m_rom_bank) - LOG("Select high ROM bank\n"); - else - LOG("High ROM bank already selected\n"); - m_rom_bank = 0x0800U; - } + set_rom_bank(0x0800U); } u8 a2bus_grapplerplus_device_base::read_cnxx(u8 offset) { if (!machine().side_effects_disabled()) - { - if (m_rom_bank) - LOG("Select low ROM bank\n"); - m_rom_bank = 0x0000U; - } + set_rom_bank(0x0000U); return m_rom[(!m_ack_latch && BIT(offset, 7)) ? (offset & 0xbfU) : offset]; } @@ -198,21 +474,13 @@ void a2bus_grapplerplus_device_base::write_cnxx(u8 offset, u8 data) { LOG("Write Cn%02X=%02X (bus conflict)\n", offset, data); - if (m_rom_bank) - LOG("Select low ROM bank\n"); - m_rom_bank = 0x0000U; -} - - -u8 a2bus_grapplerplus_device_base::read_c800(u16 offset) -{ - return m_rom[(offset & 0x07ffU) | m_rom_bank]; + set_rom_bank(0x0000U); } //-------------------------------------------------- -// printer status inputs +// ACK latch set input //-------------------------------------------------- WRITE_LINE_MEMBER(a2bus_grapplerplus_device_base::ack_w) @@ -221,24 +489,6 @@ WRITE_LINE_MEMBER(a2bus_grapplerplus_device_base::ack_w) } -WRITE_LINE_MEMBER(a2bus_grapplerplus_device_base::busy_w) -{ - machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grapplerplus_device_base::set_busy_in), this), state ? 1 : 0); -} - - -WRITE_LINE_MEMBER(a2bus_grapplerplus_device_base::pe_w) -{ - machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grapplerplus_device_base::set_pe_in), this), state ? 1 : 0); -} - - -WRITE_LINE_MEMBER(a2bus_grapplerplus_device_base::slct_w) -{ - machine().scheduler().synchronize(timer_expired_delegate(FUNC(a2bus_grapplerplus_device_base::set_slct_in), this), state ? 1 : 0); -} - - //-------------------------------------------------- // synchronised printer status inputs @@ -263,36 +513,6 @@ void a2bus_grapplerplus_device_base::set_ack_in(void *ptr, s32 param) } -void a2bus_grapplerplus_device_base::set_busy_in(void *ptr, s32 param) -{ - if (u32(param) != m_busy_in) - { - LOG("BUSY=%d\n", param); - m_busy_in = u8(u32(param)); - } -} - - -void a2bus_grapplerplus_device_base::set_pe_in(void *ptr, s32 param) -{ - if (u32(param) != m_pe_in) - { - LOG("PAPER EMPTY=%d\n", param); - m_pe_in = u8(u32(param)); - } -} - - -void a2bus_grapplerplus_device_base::set_slct_in(void *ptr, s32 param) -{ - if (u32(param) != m_slct_in) - { - LOG("SELECT=%d\n", param); - m_slct_in = u8(u32(param)); - } -} - - //============================================================== // Grappler+ implementation diff --git a/src/devices/bus/a2bus/grapplerplus.h b/src/devices/bus/a2bus/grappler.h index d2bb09ab3cc..8e3857414da 100644 --- a/src/devices/bus/a2bus/grapplerplus.h +++ b/src/devices/bus/a2bus/grappler.h @@ -2,13 +2,15 @@ // copyright-holders:Vas Crabb /*********************************************************************** - Orange Micro Grappler+ Printer Interface + Orange Micro Grappler/Grappler+ Printer Interface - With references to schematic from Grappler™+ Printer Interface - Series Operators Manual (© Orange Micro, Inc. 1982). This uses - the IC locations on the "long" version of the card. The newer - "short" version of the card has slightly different circuitry - and completely different IC locations. + With references to schematics from The Grappler™ Interface + Operators Manual (Copyright 1982 Orance Micro, Inc.) and + Grappler™+ Printer Interface Series Operators Manual (© Orange + Micro, Inc. 1982). This uses the IC locations on the "long" + version of the Grappler+ card - the newer "short" version of the + card has slightly different circuitry and completely different IC + locations. 26-pin two-row header to printer: @@ -56,7 +58,84 @@ #include "cpu/mcs48/mcs48.h" -class a2bus_grapplerplus_device_base : public device_t, public device_a2bus_card_interface +class a2bus_grappler_device_base : public device_t, public device_a2bus_card_interface +{ +public: + // device_a2bus_card_interface implementation + virtual u8 read_c800(u16 offset) override; + +protected: + a2bus_grappler_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock); + + // signal state + u8 busy_in() const { return m_busy_in; } + u8 pe_in() const { return m_pe_in; } + u8 slct_in() const { return m_slct_in; } + + required_device<centronics_device> m_printer_conn; + required_device<output_latch_device> m_printer_out; + required_region_ptr<u8> m_rom; + +protected: + // device_t implementation + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + + // helpers + void set_rom_bank(u16 rom_bank); + +private: + // printer status inputs + DECLARE_WRITE_LINE_MEMBER(busy_w); + DECLARE_WRITE_LINE_MEMBER(pe_w); + DECLARE_WRITE_LINE_MEMBER(slct_w); + + // synchronised printer status inputs + void set_busy_in(void *ptr, s32 param); + void set_pe_in(void *ptr, s32 param); + void set_slct_in(void *ptr, s32 param); + + u16 m_rom_bank; // U2D (pin 13) + u8 m_busy_in; // printer connector pin 21 (synchronised) + u8 m_pe_in; // printer connector pin 23 (synchronised) + u8 m_slct_in; // printer connector pin 25 (synchronised) +}; + + +class a2bus_grappler_device : public a2bus_grappler_device_base +{ +public: + a2bus_grappler_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); + + // device_a2bus_card_interface implementation + virtual u8 read_c0nx(u8 offset) override; + virtual void write_c0nx(u8 offset, u8 data) override; + virtual u8 read_cnxx(u8 offset) override; + virtual void write_cnxx(u8 offset, u8 data) override; + +protected: + // device_t implementation + virtual tiny_rom_entry const *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + virtual void device_reset() override; + +private: + // printer status inputs + DECLARE_WRITE_LINE_MEMBER(ack_w); + + // synchronised signals + void set_data(void *ptr, s32 param); + void set_strobe(void *ptr, s32 param); + void set_ack_in(void *ptr, s32 param); + + u8 m_strobe; // U3 (pin 4) + u8 m_ack_latch; // U3 (pin 13) + u8 m_ack_in; // printer connector pin 19 (synchronised) +}; + + +class a2bus_grapplerplus_device_base : public a2bus_grappler_device_base { public: // DIP switch handlers @@ -66,13 +145,11 @@ public: virtual void write_c0nx(u8 offset, u8 data) override; virtual u8 read_cnxx(u8 offset) override; virtual void write_cnxx(u8 offset, u8 data) override; - virtual u8 read_c800(u16 offset) override; protected: a2bus_grapplerplus_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock); // device_t implementation - virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; virtual void device_reset() override; @@ -82,39 +159,20 @@ protected: // signal state u8 ack_latch() const { return m_ack_latch; } - u8 busy_in() const { return m_busy_in; } - u8 pe_in() const { return m_pe_in; } - u8 slct_in() const { return m_slct_in; } - required_device<centronics_device> m_printer_conn; - required_device<output_latch_device> m_printer_out; - required_ioport m_s1; + required_ioport m_s1; private: - // printer status inputs - DECLARE_WRITE_LINE_MEMBER(busy_w); - DECLARE_WRITE_LINE_MEMBER(pe_w); - DECLARE_WRITE_LINE_MEMBER(slct_w); - // synchronised printer status inputs void set_ack_in(void *ptr, s32 param); - void set_busy_in(void *ptr, s32 param); - void set_pe_in(void *ptr, s32 param); - void set_slct_in(void *ptr, s32 param); // for derived devices to implement virtual void data_latched(u8 data) = 0; virtual void ack_latch_set() { } virtual void ack_latch_cleared() { } - required_region_ptr<u8> m_rom; - - u16 m_rom_bank; // U2D (pin 13) u8 m_ack_latch; // U2C (pin 9) u8 m_ack_in; // printer connector pin 19 (synchronised) - u8 m_busy_in; // printer connector pin 21 (synchronised) - u8 m_pe_in; // printer connector pin 23 (synchronised) - u8 m_slct_in; // printer connector pin 25 (synchronised) }; @@ -218,6 +276,7 @@ protected: }; +DECLARE_DEVICE_TYPE(A2BUS_GRAPPLER, a2bus_grappler_device) DECLARE_DEVICE_TYPE(A2BUS_GRAPPLERPLUS, a2bus_grapplerplus_device) DECLARE_DEVICE_TYPE(A2BUS_BUFGRAPPLERPLUS, a2bus_buf_grapplerplus_device) DECLARE_DEVICE_TYPE(A2BUS_BUFGRAPPLERPLUSA, a2bus_buf_grapplerplus_reva_device) diff --git a/src/mame/drivers/apple2.cpp b/src/mame/drivers/apple2.cpp index ead0452a302..fe68a98e554 100644 --- a/src/mame/drivers/apple2.cpp +++ b/src/mame/drivers/apple2.cpp @@ -85,7 +85,7 @@ II Plus: RAM options reduced to 16/32/48 KB. #include "bus/a2bus/computereyes2.h" #include "bus/a2bus/ccs7710.h" #include "bus/a2bus/ezcgi.h" -#include "bus/a2bus/grapplerplus.h" +#include "bus/a2bus/grappler.h" #include "bus/a2bus/laser128.h" #include "bus/a2bus/mouse.h" #include "bus/a2bus/ramcard128k.h" @@ -1314,6 +1314,7 @@ static void apple2_cards(device_slot_interface &device) device.option_add("aevm80", A2BUS_AEVIEWMASTER80); /* Applied Engineering ViewMaster 80 */ device.option_add("parprn", A2BUS_PARPRN); /* Apple II Parallel Printer Interface Card */ device.option_add("parallel", A2BUS_PIC); /* Apple II Parallel Interface Card */ + device.option_add("grappler", A2BUS_GRAPPLER); /* Orange Micro Grappler Printer Interface card */ device.option_add("grapplus", A2BUS_GRAPPLERPLUS); /* Orange Micro Grappler+ Printer Interface card */ device.option_add("bufgrapplus", A2BUS_BUFGRAPPLERPLUS); /* Orange Micro Buffered Grappler+ Printer Interface card */ device.option_add("bufgrapplusa", A2BUS_BUFGRAPPLERPLUSA); /* Orange Micro Buffered Grappler+ (rev A) Printer Interface card */ diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp index c3a81895bbd..3a8dfa7a8f4 100644 --- a/src/mame/drivers/apple2e.cpp +++ b/src/mame/drivers/apple2e.cpp @@ -173,7 +173,7 @@ MIG RAM page 2 $CE02 is the speaker/slot bitfield and $CE03 is the paddle/accele #include "bus/a2bus/computereyes2.h" #include "bus/a2bus/ccs7710.h" #include "bus/a2bus/ezcgi.h" -#include "bus/a2bus/grapplerplus.h" +#include "bus/a2bus/grappler.h" #include "bus/a2bus/laser128.h" #include "bus/a2bus/mouse.h" #include "bus/a2bus/pc_xporter.h" @@ -4665,6 +4665,7 @@ static void apple2_cards(device_slot_interface &device) device.option_add("aevm80", A2BUS_AEVIEWMASTER80); /* Applied Engineering ViewMaster 80 */ device.option_add("parprn", A2BUS_PARPRN); /* Apple II Parallel Printer Interface Card */ device.option_add("parallel", A2BUS_PIC); /* Apple II Parallel Interface Card */ + device.option_add("grappler", A2BUS_GRAPPLER); /* Orange Micro Grappler Printer Interface card */ device.option_add("grapplus", A2BUS_GRAPPLERPLUS); /* Orange Micro Grappler+ Printer Interface card */ device.option_add("bufgrapplus", A2BUS_BUFGRAPPLERPLUS); /* Orange Micro Buffered Grappler+ Printer Interface card */ device.option_add("bufgrapplusa", A2BUS_BUFGRAPPLERPLUSA); /* Orange Micro Buffered Grappler+ (rev A) Printer Interface card */ diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index ff81f3f6d78..46bf3640bad 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -113,7 +113,7 @@ #include "bus/a2bus/ccs7710.h" #include "bus/a2bus/cmsscsi.h" #include "bus/a2bus/ezcgi.h" -#include "bus/a2bus/grapplerplus.h" +#include "bus/a2bus/grappler.h" //#include "bus/a2bus/hostram.h" #include "bus/a2bus/laser128.h" #include "bus/a2bus/mouse.h" @@ -4763,6 +4763,7 @@ static void apple2_cards(device_slot_interface &device) device.option_add("aevm80", A2BUS_AEVIEWMASTER80); /* Applied Engineering ViewMaster 80 */ device.option_add("parprn", A2BUS_PARPRN); /* Apple II Parallel Printer Interface Card */ device.option_add("parallel", A2BUS_PIC); /* Apple Parallel Interface Card */ + device.option_add("grappler", A2BUS_GRAPPLER); /* Orange Micro Grappler Printer Interface card */ device.option_add("grapplus", A2BUS_GRAPPLERPLUS); /* Orange Micro Grappler+ Printer Interface card */ device.option_add("bufgrapplus", A2BUS_BUFGRAPPLERPLUS); /* Orange Micro Buffered Grappler+ Printer Interface card */ device.option_add("bufgrapplusa", A2BUS_BUFGRAPPLERPLUSA); /* Orange Micro Buffered Grappler+ (rev A) Printer Interface card */ |
