bus/a2bus: Added Orange Micro Grappler+ Printer Interface. [Vas Crabb, Golden Child, archive.org]
This commit is contained in:
parent
dc2e44c7be
commit
515e85ba80
@ -2290,86 +2290,72 @@ if (BUSES["A2BUS"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2bus.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2bus.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2diskii.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2diskii.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2mockingboard.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2mockingboard.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2cffa.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2cffa.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2memexp.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2memexp.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2scsi.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2scsi.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2thunderclock.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2thunderclock.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2softcard.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2softcard.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2videoterm.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2videoterm.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2ssc.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2ssc.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2swyft.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2swyft.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2eauxslot.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2eauxslot.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2themill.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2themill.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2sam.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2sam.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/4play.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/4play.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2alfam2.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2alfam2.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/laser128.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/laser128.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2echoii.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2echoii.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2arcadebd.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2arcadebd.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2midi.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2midi.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2vulcan.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2vulcan.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2zipdrive.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2zipdrive.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2applicard.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2applicard.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2hsscsi.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2hsscsi.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2iwm.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2iwm.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2ultraterm.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2ultraterm.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2pic.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2pic.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2estd80col.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2estd80col.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2arcadebd.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2arcadebd.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2cffa.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2cffa.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2corvus.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2corvus.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2diskii.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2diskii.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2diskiing.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2diskiing.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2dx1.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2dx1.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2echoii.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2echoii.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2eext80col.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2eext80col.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2eramworks3.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2eramworks3.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2corvus.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2corvus.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2diskiing.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2diskiing.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2estd80col.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2estd80col.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2hsscsi.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2hsscsi.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2iwm.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2iwm.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2mcms.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2mcms.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2dx1.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2dx1.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/timemasterho.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/timemasterho.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/mouse.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/mouse.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/corvfdc01.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/corvfdc01.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/corvfdc02.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/corvfdc02.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ramcard16k.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ramcard16k.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ramcard128k.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ramcard128k.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ezcgi.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ezcgi.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/pc_xporter.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/pc_xporter.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2memexp.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2memexp.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2midi.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2midi.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2mockingboard.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2mockingboard.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2pic.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2pic.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2sam.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2sam.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2scsi.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2scsi.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2softcard.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2softcard.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2ssc.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2ssc.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2swyft.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2swyft.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2themill.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2themill.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2thunderclock.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2thunderclock.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2ultraterm.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2ultraterm.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2videoterm.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2videoterm.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2vulcan.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2vulcan.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2zipdrive.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/a2zipdrive.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat_fdc.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat_fdc.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat7langcard.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat7langcard.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat7ports.cpp",
|
||||
@ -2378,28 +2364,44 @@ if (BUSES["A2BUS"]~=null) then
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat7ram.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat840k_hle.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat840k_hle.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat_fdc.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/agat_fdc.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/nippelclock.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/nippelclock.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssprite.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssprite.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssbapple.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssbapple.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/transwarp.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/transwarp.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/4play.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/4play.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/computereyes2.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/computereyes2.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/byte8251.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/byte8251.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/cmsscsi.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/cmsscsi.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/uthernet.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/uthernet.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/computereyes2.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/computereyes2.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/corvfdc01.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/corvfdc01.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/corvfdc02.cpp",
|
||||
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/laser128.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/laser128.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/mouse.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/mouse.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/nippelclock.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/nippelclock.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/pc_xporter.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/pc_xporter.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ramcard128k.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ramcard128k.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ramcard16k.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ramcard16k.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/sider.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/sider.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssbapple.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssbapple.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssprite.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/ssprite.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/timemasterho.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/timemasterho.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/transwarp.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/transwarp.h",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/uthernet.cpp",
|
||||
MAME_DIR .. "src/devices/bus/a2bus/uthernet.h",
|
||||
}
|
||||
end
|
||||
|
||||
|
336
src/devices/bus/a2bus/grapplerplus.cpp
Normal file
336
src/devices/bus/a2bus/grapplerplus.cpp
Normal file
@ -0,0 +1,336 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Vas Crabb
|
||||
#include "emu.h"
|
||||
#include "grapplerplus.h"
|
||||
|
||||
//#define VERBOSE 1
|
||||
//#define LOG_OUTPUT_FUNC osd_printf_info
|
||||
#include "logmacro.h"
|
||||
|
||||
namespace {
|
||||
|
||||
ROM_START(grapplerplus)
|
||||
// TODO: add other revisions - 3.3 is known to exist
|
||||
|
||||
ROM_DEFAULT_BIOS("v32")
|
||||
ROM_SYSTEM_BIOS(0, "v30", "ROM 3.0")
|
||||
ROM_SYSTEM_BIOS(1, "v32", "ROM 3.2")
|
||||
|
||||
ROM_REGION(0x1000, "rom", 0)
|
||||
ROMX_LOAD( "3.0.u9", 0x0000, 0x1000, CRC(17cf5e02) SHA1(9b01a9b1cf7752987e03f9b0285eb9329d63b777), ROM_BIOS(0) )
|
||||
ROMX_LOAD( "3.2.u9", 0x0000, 0x1000, CRC(6f88b70c) SHA1(433ae61a0553ee9c1628ea5b6376dac848c04cad), ROM_BIOS(1) )
|
||||
ROM_END
|
||||
|
||||
|
||||
INPUT_PORTS_START(grapplerplus)
|
||||
PORT_START("S1")
|
||||
PORT_DIPNAME(0x07, 0x00, "Printer Type") PORT_DIPLOCATION("S1:4,3,2")
|
||||
PORT_DIPSETTING( 0x00, "Epson Series")
|
||||
PORT_DIPSETTING( 0x01, "NEC 8023/C. Itoh 8510/DMP 85")
|
||||
PORT_DIPSETTING( 0x02, "Star Gemini")
|
||||
PORT_DIPSETTING( 0x03, "Anadex Printers")
|
||||
PORT_DIPSETTING( 0x04, "Okidata 82A, 83A, 92, 93, 84")
|
||||
PORT_DIPSETTING( 0x06, "Okidata 84 w/o Step II Graphics")
|
||||
PORT_DIPSETTING( 0x05, "Apple Dot Matrix")
|
||||
PORT_DIPSETTING( 0x07, "invalid")
|
||||
PORT_DIPNAME(0x08, 0x08, "Most Significant Bit") PORT_DIPLOCATION("S1:1") PORT_CHANGED_MEMBER(DEVICE_SELF, a2bus_grapplerplus_device, sw_msb, 0)
|
||||
PORT_DIPSETTING( 0x08, "Software Control")
|
||||
PORT_DIPSETTING( 0x00, "Not Transmitted")
|
||||
INPUT_PORTS_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
|
||||
DEFINE_DEVICE_TYPE(A2BUS_GRAPPLERPLUS, a2bus_grapplerplus_device, "a2grapplerplus", "Orange Micro Grappler+ Printer Interface")
|
||||
|
||||
|
||||
|
||||
a2bus_grapplerplus_device::a2bus_grapplerplus_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock) :
|
||||
device_t(mconfig, A2BUS_GRAPPLERPLUS, 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_strobe_timer(nullptr),
|
||||
m_rom_bank(0x0000U),
|
||||
m_data_latch(0xffU),
|
||||
m_ack_latch(0x01U),
|
||||
m_irq_disable(1U),
|
||||
m_irq(0x00U),
|
||||
m_next_strobe(1U),
|
||||
m_ack_in(1U),
|
||||
m_busy_in(0x8U),
|
||||
m_pe_in(0x04U),
|
||||
m_slct_in(0x02U)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------
|
||||
// DIP switch handlers
|
||||
//----------------------------------------------
|
||||
|
||||
INPUT_CHANGED_MEMBER(a2bus_grapplerplus_device::sw_msb)
|
||||
{
|
||||
if (BIT(m_data_latch, 7))
|
||||
m_printer_out->write(m_data_latch & ((BIT(m_s1->read(), 3) ? 0xffU : 0x7fU)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------
|
||||
// device_a2bus_card_interface implementation
|
||||
//----------------------------------------------
|
||||
|
||||
u8 a2bus_grapplerplus_device::read_c0nx(u8 offset)
|
||||
{
|
||||
return
|
||||
m_irq |
|
||||
((m_s1->read() & 0x07U) << 4) |
|
||||
m_busy_in |
|
||||
m_pe_in |
|
||||
m_slct_in |
|
||||
m_ack_latch;
|
||||
}
|
||||
|
||||
|
||||
void a2bus_grapplerplus_device::write_c0nx(u8 offset, u8 data)
|
||||
{
|
||||
LOG("Write C0n%01X=%02X\n", offset, data);
|
||||
|
||||
if (!(offset & 0x03U)) // !A0 && !A1 - write data
|
||||
{
|
||||
// latch output data - remember MSB can be forced low by DIP switch
|
||||
LOG("Latch data %02X\n", data);
|
||||
m_data_latch = data;
|
||||
m_printer_out->write(data & ((BIT(m_s1->read(), 3) ? 0xffU : 0x7fU)));
|
||||
|
||||
// clearing the ACK latch will acknowledge an interrupt
|
||||
if (m_ack_in)
|
||||
{
|
||||
if (m_ack_latch)
|
||||
LOG("Clearing acknowledge latch\n");
|
||||
else
|
||||
LOG("Previous data not acknowledged\n");
|
||||
m_ack_latch = 0x00U;
|
||||
if (m_irq)
|
||||
{
|
||||
assert(!m_irq_disable);
|
||||
LOG("Releasing slot IRQ\n");
|
||||
m_irq = 0x00U;
|
||||
lower_slot_irq();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG("/ACK asserted, not clearing acknowledge latch\n", data);
|
||||
}
|
||||
|
||||
// generate strobe pulse after one clock cycle
|
||||
m_next_strobe = 0U;
|
||||
if (!m_strobe_timer->enabled())
|
||||
{
|
||||
LOG("Start strobe timer\n", m_next_strobe);
|
||||
m_strobe_timer->adjust(attotime::from_ticks(1, clock()));
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
if (BIT(offset, 1)) // A1 - disable interrupt
|
||||
{
|
||||
if (!m_irq_disable)
|
||||
LOG("Disable interrupt request\n");
|
||||
else
|
||||
LOG("Interrupt request already disabled\n");
|
||||
m_irq_disable = 1U;
|
||||
if (m_irq)
|
||||
{
|
||||
LOG("Releasing slot IRQ\n");
|
||||
m_irq = 0x00U;
|
||||
lower_slot_irq();
|
||||
}
|
||||
}
|
||||
else if (BIT(offset, 2)) // A2 - enable interrupt
|
||||
{
|
||||
if (m_irq_disable)
|
||||
LOG("Enable interrupt request\n");
|
||||
else
|
||||
LOG("Interrupt request already enabled\n");
|
||||
m_irq_disable = 0U;
|
||||
if (m_ack_latch && !m_irq)
|
||||
{
|
||||
LOG("Asserting slot IRQ\n");
|
||||
m_irq = 0x80U;
|
||||
raise_slot_irq();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
u8 a2bus_grapplerplus_device::read_cnxx(u8 offset)
|
||||
{
|
||||
if (!machine().side_effects_disabled())
|
||||
{
|
||||
if (m_rom_bank)
|
||||
LOG("Select low ROM bank\n");
|
||||
m_rom_bank = 0x0000U;
|
||||
}
|
||||
return m_rom[(!m_ack_latch && BIT(offset, 7)) ? (offset & 0xbfU) : offset];
|
||||
}
|
||||
|
||||
|
||||
u8 a2bus_grapplerplus_device::read_c800(u16 offset)
|
||||
{
|
||||
return m_rom[(offset & 0x07ffU) | m_rom_bank];
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------
|
||||
// device_t implementation
|
||||
//----------------------------------------------
|
||||
|
||||
tiny_rom_entry const *a2bus_grapplerplus_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(grapplerplus);
|
||||
}
|
||||
|
||||
|
||||
void a2bus_grapplerplus_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
CENTRONICS(config, m_printer_conn, centronics_devices, "printer");
|
||||
m_printer_conn->ack_handler().set(FUNC(a2bus_grapplerplus_device::ack_w));
|
||||
m_printer_conn->busy_handler().set(FUNC(a2bus_grapplerplus_device::busy_w));
|
||||
m_printer_conn->perror_handler().set(FUNC(a2bus_grapplerplus_device::pe_w));
|
||||
m_printer_conn->select_handler().set(FUNC(a2bus_grapplerplus_device::slct_w));
|
||||
|
||||
OUTPUT_LATCH(config, m_printer_out);
|
||||
m_printer_conn->set_output_latch(*m_printer_out);
|
||||
}
|
||||
|
||||
|
||||
ioport_constructor a2bus_grapplerplus_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME(grapplerplus);
|
||||
}
|
||||
|
||||
|
||||
void a2bus_grapplerplus_device::device_start()
|
||||
{
|
||||
m_strobe_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(a2bus_grapplerplus_device::update_strobe), this));
|
||||
|
||||
m_next_strobe = 1U;
|
||||
|
||||
save_item(NAME(m_rom_bank));
|
||||
save_item(NAME(m_data_latch));
|
||||
save_item(NAME(m_ack_latch));
|
||||
save_item(NAME(m_irq_disable));
|
||||
save_item(NAME(m_irq));
|
||||
save_item(NAME(m_next_strobe));
|
||||
save_item(NAME(m_ack_in));
|
||||
save_item(NAME(m_busy_in));
|
||||
save_item(NAME(m_pe_in));
|
||||
save_item(NAME(m_slct_in));
|
||||
|
||||
m_strobe_timer->adjust(attotime::from_ticks(1, clock()));
|
||||
}
|
||||
|
||||
|
||||
void a2bus_grapplerplus_device::device_reset()
|
||||
{
|
||||
m_ack_latch = 0x01U;
|
||||
m_irq_disable = 1U;
|
||||
if (m_irq)
|
||||
{
|
||||
m_irq = 0x00U;
|
||||
lower_slot_irq();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------
|
||||
// printer status inputs
|
||||
//----------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER(a2bus_grapplerplus_device::ack_w)
|
||||
{
|
||||
if (bool(state) != bool(m_ack_in))
|
||||
{
|
||||
LOG("/ACK=%d\n", state);
|
||||
m_ack_in = state ? 1U : 0U;
|
||||
if (!state)
|
||||
{
|
||||
if (!m_ack_latch)
|
||||
LOG("Set acknowledge latch\n");
|
||||
else
|
||||
LOG("No data written since previous acknowledge\n");
|
||||
m_ack_latch = 0x01U;
|
||||
if (!m_irq_disable && !m_irq)
|
||||
{
|
||||
LOG("Asserting slot IRQ\n");
|
||||
m_irq = 0x80U;
|
||||
raise_slot_irq();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(a2bus_grapplerplus_device::busy_w)
|
||||
{
|
||||
if (bool(state) != bool(m_busy_in))
|
||||
{
|
||||
LOG("BUSY=%d\n", state);
|
||||
m_busy_in = state ? 0x08U : 0x00U;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(a2bus_grapplerplus_device::pe_w)
|
||||
{
|
||||
if (bool(state) != bool(m_pe_in))
|
||||
{
|
||||
LOG("PAPER EMPTY=%d\n", state);
|
||||
m_pe_in = state ? 0x04U : 0x00U;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(a2bus_grapplerplus_device::slct_w)
|
||||
{
|
||||
if (bool(state) != bool(m_slct_in))
|
||||
{
|
||||
LOG("SELECT=%d\n", state);
|
||||
m_slct_in = state ? 0x02U : 0x00U;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------
|
||||
// timer handlers
|
||||
//----------------------------------------------
|
||||
|
||||
TIMER_CALLBACK_MEMBER(a2bus_grapplerplus_device::update_strobe)
|
||||
{
|
||||
LOG("Output /STROBE=%u\n", m_next_strobe);
|
||||
m_printer_conn->write_strobe(m_next_strobe);
|
||||
if (!m_next_strobe)
|
||||
{
|
||||
LOG("Start strobe timer\n", m_next_strobe);
|
||||
m_next_strobe = 1U;
|
||||
m_strobe_timer->adjust(attotime::from_ticks(1, clock()));
|
||||
}
|
||||
}
|
91
src/devices/bus/a2bus/grapplerplus.h
Normal file
91
src/devices/bus/a2bus/grapplerplus.h
Normal file
@ -0,0 +1,91 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Vas Crabb
|
||||
/***********************************************************************
|
||||
|
||||
Orange Micro 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.
|
||||
|
||||
26-pin two-row header to printer:
|
||||
|
||||
STB 1 2 GND
|
||||
D0 3 4 GND
|
||||
D1 5 6 GND
|
||||
D2 7 8 GND
|
||||
D3 9 10 GND
|
||||
D4 11 12 GND
|
||||
D5 23 14 GND
|
||||
D6 15 16 GND
|
||||
D7 17 18 GND
|
||||
ACK 19 20 GND
|
||||
BUSY 21 22 GND
|
||||
P.E. 23 24 GND
|
||||
SLCT 25 26 GND
|
||||
|
||||
***********************************************************************/
|
||||
#ifndef MAME_BUS_A2BUS_GRAPPLERPLUS_H
|
||||
#define MAME_BUS_A2BUS_GRAPPLERPLUS_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "a2bus.h"
|
||||
#include "bus/centronics/ctronics.h"
|
||||
|
||||
class a2bus_grapplerplus_device : public device_t, public device_a2bus_card_interface
|
||||
{
|
||||
public:
|
||||
a2bus_grapplerplus_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
|
||||
|
||||
// DIP switch handlers
|
||||
DECLARE_INPUT_CHANGED_MEMBER(sw_msb);
|
||||
|
||||
// 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 u8 read_c800(u16 offset) 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 ioport_constructor device_input_ports() const override;
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
// timer handlers
|
||||
TIMER_CALLBACK_MEMBER(update_strobe);
|
||||
|
||||
private:
|
||||
// printer status inputs
|
||||
DECLARE_WRITE_LINE_MEMBER(ack_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(busy_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(pe_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(slct_w);
|
||||
|
||||
required_device<centronics_device> m_printer_conn;
|
||||
required_device<output_latch_device> m_printer_out;
|
||||
required_ioport m_s1;
|
||||
required_region_ptr<u8> m_rom;
|
||||
emu_timer * m_strobe_timer;
|
||||
|
||||
u16 m_rom_bank; // U2D (pin 13)
|
||||
u8 m_data_latch; // U10
|
||||
u8 m_ack_latch; // U2C (pin 9)
|
||||
u8 m_irq_disable; // U2A (pin 4)
|
||||
u8 m_irq; // U3D (pin 13)
|
||||
u8 m_next_strobe; // U5A (pin 5)
|
||||
u8 m_ack_in; // printer connector pin 19
|
||||
u8 m_busy_in; // printer connector pin 21
|
||||
u8 m_pe_in; // printer connector pin 23
|
||||
u8 m_slct_in; // printer connector pin 25
|
||||
};
|
||||
|
||||
|
||||
DECLARE_DEVICE_TYPE(A2BUS_GRAPPLERPLUS, a2bus_grapplerplus_device)
|
||||
|
||||
#endif // MAME_BUS_A2BUS_GRAPPLERPLUS_H
|
@ -54,6 +54,7 @@ II Plus: RAM options reduced to 16/32/48 KB.
|
||||
|
||||
#include "sound/spkrdev.h"
|
||||
|
||||
#include "bus/a2bus/4play.h"
|
||||
#include "bus/a2bus/a2alfam2.h"
|
||||
#include "bus/a2bus/a2applicard.h"
|
||||
#include "bus/a2bus/a2arcadebd.h"
|
||||
@ -63,6 +64,7 @@ II Plus: RAM options reduced to 16/32/48 KB.
|
||||
#include "bus/a2bus/a2diskiing.h"
|
||||
#include "bus/a2bus/a2dx1.h"
|
||||
#include "bus/a2bus/a2echoii.h"
|
||||
#include "bus/a2bus/a2iwm.h"
|
||||
#include "bus/a2bus/a2mcms.h"
|
||||
#include "bus/a2bus/a2memexp.h"
|
||||
#include "bus/a2bus/a2midi.h"
|
||||
@ -78,19 +80,18 @@ II Plus: RAM options reduced to 16/32/48 KB.
|
||||
#include "bus/a2bus/a2ultraterm.h"
|
||||
#include "bus/a2bus/a2videoterm.h"
|
||||
#include "bus/a2bus/a2zipdrive.h"
|
||||
#include "bus/a2bus/byte8251.h"
|
||||
#include "bus/a2bus/computereyes2.h"
|
||||
#include "bus/a2bus/ezcgi.h"
|
||||
#include "bus/a2bus/grapplerplus.h"
|
||||
#include "bus/a2bus/laser128.h"
|
||||
#include "bus/a2bus/mouse.h"
|
||||
#include "bus/a2bus/ramcard128k.h"
|
||||
#include "bus/a2bus/ramcard16k.h"
|
||||
#include "bus/a2bus/timemasterho.h"
|
||||
#include "bus/a2bus/ssprite.h"
|
||||
#include "bus/a2bus/ssbapple.h"
|
||||
#include "bus/a2bus/4play.h"
|
||||
#include "bus/a2bus/computereyes2.h"
|
||||
#include "bus/a2bus/ssprite.h"
|
||||
#include "bus/a2bus/timemasterho.h"
|
||||
#include "bus/a2bus/transwarp.h"
|
||||
#include "bus/a2bus/byte8251.h"
|
||||
#include "bus/a2bus/a2iwm.h"
|
||||
|
||||
#include "bus/a2gameio/gameio.h"
|
||||
|
||||
@ -1325,6 +1326,7 @@ static void apple2_cards(device_slot_interface &device)
|
||||
device.option_add("applesurance", A2BUS_APPLESURANCE); /* Applesurance Diagnostic Controller */
|
||||
// device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); /* Magic Musician Card */
|
||||
device.option_add("byte8251", A2BUS_BYTE8251); /* BYTE Magazine 8251 serial card */
|
||||
device.option_add("grapplerplus", A2BUS_GRAPPLERPLUS); /* Orange Micro Grappler+ Printer Interface card */
|
||||
}
|
||||
|
||||
void apple2_state::apple2_common(machine_config &config)
|
||||
|
@ -131,52 +131,53 @@ MIG RAM page 2 $CE02 is the speaker/slot bitfield and $CE03 is the paddle/accele
|
||||
#include "machine/ds1315.h"
|
||||
#include "machine/apple2common.h"
|
||||
|
||||
#include "bus/a2bus/4play.h"
|
||||
#include "bus/a2bus/a2alfam2.h"
|
||||
#include "bus/a2bus/a2applicard.h"
|
||||
#include "bus/a2bus/a2arcadebd.h"
|
||||
#include "bus/a2bus/a2bus.h"
|
||||
#include "bus/a2bus/a2cffa.h"
|
||||
#include "bus/a2bus/a2corvus.h"
|
||||
#include "bus/a2bus/a2diskii.h"
|
||||
#include "bus/a2bus/a2diskiing.h"
|
||||
#include "bus/a2bus/a2mockingboard.h"
|
||||
#include "bus/a2bus/a2cffa.h"
|
||||
#include "bus/a2bus/a2memexp.h"
|
||||
#include "bus/a2bus/a2scsi.h"
|
||||
#include "bus/a2bus/cmsscsi.h"
|
||||
#include "bus/a2bus/a2dx1.h"
|
||||
#include "bus/a2bus/a2eauxslot.h"
|
||||
#include "bus/a2bus/a2echoii.h"
|
||||
#include "bus/a2bus/a2eext80col.h"
|
||||
#include "bus/a2bus/a2eramworks3.h"
|
||||
#include "bus/a2bus/a2estd80col.h"
|
||||
#include "bus/a2bus/a2hsscsi.h"
|
||||
#include "bus/a2bus/a2thunderclock.h"
|
||||
#include "bus/a2bus/a2iwm.h"
|
||||
#include "bus/a2bus/a2mcms.h"
|
||||
#include "bus/a2bus/a2memexp.h"
|
||||
#include "bus/a2bus/a2midi.h"
|
||||
#include "bus/a2bus/a2mockingboard.h"
|
||||
#include "bus/a2bus/a2pic.h"
|
||||
#include "bus/a2bus/a2sam.h"
|
||||
#include "bus/a2bus/a2scsi.h"
|
||||
#include "bus/a2bus/a2softcard.h"
|
||||
#include "bus/a2bus/a2videoterm.h"
|
||||
#include "bus/a2bus/a2ssc.h"
|
||||
#include "bus/a2bus/a2swyft.h"
|
||||
#include "bus/a2bus/a2themill.h"
|
||||
#include "bus/a2bus/a2sam.h"
|
||||
#include "bus/a2bus/a2alfam2.h"
|
||||
#include "bus/a2bus/laser128.h"
|
||||
#include "bus/a2bus/a2echoii.h"
|
||||
#include "bus/a2bus/a2arcadebd.h"
|
||||
#include "bus/a2bus/a2midi.h"
|
||||
#include "bus/a2bus/a2zipdrive.h"
|
||||
#include "bus/a2bus/a2applicard.h"
|
||||
#include "bus/a2bus/a2thunderclock.h"
|
||||
#include "bus/a2bus/a2ultraterm.h"
|
||||
#include "bus/a2bus/a2pic.h"
|
||||
#include "bus/a2bus/a2corvus.h"
|
||||
#include "bus/a2bus/a2mcms.h"
|
||||
#include "bus/a2bus/a2dx1.h"
|
||||
#include "bus/a2bus/timemasterho.h"
|
||||
#include "bus/a2bus/mouse.h"
|
||||
#include "bus/a2bus/ezcgi.h"
|
||||
#include "bus/a2bus/pc_xporter.h"
|
||||
#include "bus/a2bus/a2eauxslot.h"
|
||||
#include "bus/a2bus/a2estd80col.h"
|
||||
#include "bus/a2bus/a2eext80col.h"
|
||||
#include "bus/a2bus/a2eramworks3.h"
|
||||
#include "bus/a2bus/ssprite.h"
|
||||
#include "bus/a2bus/ssbapple.h"
|
||||
#include "bus/a2bus/transwarp.h"
|
||||
#include "bus/a2bus/a2videoterm.h"
|
||||
#include "bus/a2bus/a2vulcan.h"
|
||||
#include "bus/a2bus/4play.h"
|
||||
#include "bus/a2bus/computereyes2.h"
|
||||
#include "bus/a2bus/a2zipdrive.h"
|
||||
#include "bus/a2bus/byte8251.h"
|
||||
#include "bus/a2bus/a2iwm.h"
|
||||
#include "bus/a2bus/uthernet.h"
|
||||
#include "bus/a2bus/cmsscsi.h"
|
||||
#include "bus/a2bus/computereyes2.h"
|
||||
#include "bus/a2bus/ezcgi.h"
|
||||
#include "bus/a2bus/grapplerplus.h"
|
||||
#include "bus/a2bus/laser128.h"
|
||||
#include "bus/a2bus/mouse.h"
|
||||
#include "bus/a2bus/pc_xporter.h"
|
||||
#include "bus/a2bus/sider.h"
|
||||
#include "bus/a2bus/ssbapple.h"
|
||||
#include "bus/a2bus/ssprite.h"
|
||||
#include "bus/a2bus/timemasterho.h"
|
||||
#include "bus/a2bus/transwarp.h"
|
||||
#include "bus/a2bus/uthernet.h"
|
||||
#include "bus/a2gameio/gameio.h"
|
||||
|
||||
#include "bus/rs232/rs232.h"
|
||||
@ -4528,6 +4529,7 @@ static void apple2_cards(device_slot_interface &device)
|
||||
device.option_add("uthernet", A2BUS_UTHERNET); /* A2RetroSystems Uthernet card */
|
||||
device.option_add("sider2", A2BUS_SIDER2); /* Advanced Tech Systems / First Class Peripherals Sider 2 SASI card */
|
||||
device.option_add("sider1", A2BUS_SIDER1); /* Advanced Tech Systems / First Class Peripherals Sider 1 SASI card */
|
||||
device.option_add("grapplerplus", A2BUS_GRAPPLERPLUS); /* Orange Micro Grappler+ Printer Interface card */
|
||||
}
|
||||
|
||||
static void apple2eaux_cards(device_slot_interface &device)
|
||||
|
@ -71,45 +71,46 @@
|
||||
#include "machine/apple2common.h"
|
||||
//#include "machine/apple2host.h"
|
||||
|
||||
#include "bus/a2bus/4play.h"
|
||||
#include "bus/a2bus/a2alfam2.h"
|
||||
#include "bus/a2bus/a2applicard.h"
|
||||
#include "bus/a2bus/a2arcadebd.h"
|
||||
#include "bus/a2bus/a2bus.h"
|
||||
#include "bus/a2bus/ramcard16k.h"
|
||||
#include "bus/a2bus/a2diskiing.h"
|
||||
#include "bus/a2bus/a2mockingboard.h"
|
||||
#include "bus/a2bus/a2cffa.h"
|
||||
#include "bus/a2bus/a2memexp.h"
|
||||
#include "bus/a2bus/a2scsi.h"
|
||||
#include "bus/a2bus/a2corvus.h"
|
||||
#include "bus/a2bus/a2diskiing.h"
|
||||
#include "bus/a2bus/a2dx1.h"
|
||||
#include "bus/a2bus/a2echoii.h"
|
||||
#include "bus/a2bus/a2hsscsi.h"
|
||||
#include "bus/a2bus/cmsscsi.h"
|
||||
#include "bus/a2bus/a2thunderclock.h"
|
||||
#include "bus/a2bus/a2mcms.h"
|
||||
#include "bus/a2bus/a2memexp.h"
|
||||
#include "bus/a2bus/a2midi.h"
|
||||
#include "bus/a2bus/a2mockingboard.h"
|
||||
#include "bus/a2bus/a2pic.h"
|
||||
#include "bus/a2bus/a2sam.h"
|
||||
#include "bus/a2bus/a2scsi.h"
|
||||
#include "bus/a2bus/a2softcard.h"
|
||||
#include "bus/a2bus/a2videoterm.h"
|
||||
#include "bus/a2bus/a2ssc.h"
|
||||
#include "bus/a2bus/a2swyft.h"
|
||||
#include "bus/a2bus/a2themill.h"
|
||||
#include "bus/a2bus/a2sam.h"
|
||||
#include "bus/a2bus/a2alfam2.h"
|
||||
#include "bus/a2bus/laser128.h"
|
||||
#include "bus/a2bus/a2echoii.h"
|
||||
#include "bus/a2bus/a2arcadebd.h"
|
||||
#include "bus/a2bus/a2midi.h"
|
||||
#include "bus/a2bus/a2zipdrive.h"
|
||||
#include "bus/a2bus/a2applicard.h"
|
||||
#include "bus/a2bus/a2thunderclock.h"
|
||||
#include "bus/a2bus/a2ultraterm.h"
|
||||
#include "bus/a2bus/a2pic.h"
|
||||
#include "bus/a2bus/a2corvus.h"
|
||||
#include "bus/a2bus/a2mcms.h"
|
||||
#include "bus/a2bus/a2dx1.h"
|
||||
#include "bus/a2bus/timemasterho.h"
|
||||
#include "bus/a2bus/mouse.h"
|
||||
#include "bus/a2bus/ezcgi.h"
|
||||
#include "bus/a2bus/a2videoterm.h"
|
||||
#include "bus/a2bus/a2vulcan.h"
|
||||
#include "bus/a2bus/4play.h"
|
||||
//#include "bus/a2bus/pc_xporter.h"
|
||||
#include "bus/a2bus/a2zipdrive.h"
|
||||
#include "bus/a2bus/byte8251.h"
|
||||
#include "bus/a2bus/cmsscsi.h"
|
||||
#include "bus/a2bus/ezcgi.h"
|
||||
#include "bus/a2bus/grapplerplus.h"
|
||||
//#include "bus/a2bus/hostram.h"
|
||||
#include "bus/a2bus/laser128.h"
|
||||
#include "bus/a2bus/mouse.h"
|
||||
//#include "bus/a2bus/pc_xporter.h"
|
||||
#include "bus/a2bus/ramcard16k.h"
|
||||
//#include "bus/a2bus/ramfast.h"
|
||||
#include "bus/a2bus/uthernet.h"
|
||||
#include "bus/a2bus/sider.h"
|
||||
#include "bus/a2bus/timemasterho.h"
|
||||
#include "bus/a2bus/uthernet.h"
|
||||
|
||||
#include "bus/a2gameio/gameio.h"
|
||||
|
||||
@ -4593,6 +4594,7 @@ static void apple2_cards(device_slot_interface &device)
|
||||
device.option_add("uthernet", A2BUS_UTHERNET); /* A2RetroSystems Uthernet card */
|
||||
device.option_add("sider2", A2BUS_SIDER2); /* Advanced Tech Systems / First Class Peripherals Sider 2 SASI card */
|
||||
device.option_add("sider1", A2BUS_SIDER1); /* Advanced Tech Systems / First Class Peripherals Sider 1 SASI card */
|
||||
device.option_add("grapplerplus", A2BUS_GRAPPLERPLUS); /* Orange Micro Grappler+ Printer Interface card */
|
||||
}
|
||||
|
||||
void apple2gs_state::apple2gs(machine_config &config)
|
||||
|
Loading…
Reference in New Issue
Block a user