summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/atarist.c
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2014-02-09 20:08:25 +0000
committer smf- <smf-@users.noreply.github.com>2014-02-09 20:08:25 +0000
commitbe55c4bef617d21dab79e0b8d3d31e1472ed767b (patch)
tree620031e820d7aedc289ce277abcde1b4b7012adb /src/mess/drivers/atarist.c
parent4e64093ebc1ce7d26c810d5a591b0b8bd437e8f9 (diff)
Centronics WIP using write lines and DEVCB2. Added an output latch and input buffer device to allow configuration in MCFG. Renamed centronics device "printer" to "image". FM-7 parallel port joystick works again. Added support for using PC LPT control lines as inputs (not tested). c64 geocable now just passes individual lines through, changed the strobe line to what is documented online (not tested). Converted MSX & exidy sorcerer parallel port DAC to use covox device instead of using a configuration switch (not tested). Sorcerer parallel port is more like the commodore user port, so should be converted to it's own slot where one option is a centronics card. [smf]
Diffstat (limited to 'src/mess/drivers/atarist.c')
-rw-r--r--src/mess/drivers/atarist.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/src/mess/drivers/atarist.c b/src/mess/drivers/atarist.c
index 1a6136bdb9c..c45a7a20581 100644
--- a/src/mess/drivers/atarist.c
+++ b/src/mess/drivers/atarist.c
@@ -1759,7 +1759,7 @@ WRITE8_MEMBER( st_state::psg_pa_w )
m_rs232->dtr_w(BIT(data, 4));
// centronics strobe
- m_centronics->strobe_w(BIT(data, 5));
+ m_centronics->write_strobe(BIT(data, 5));
}
static const ay8910_interface psg_intf =
@@ -1769,7 +1769,7 @@ static const ay8910_interface psg_intf =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(st_state, psg_pa_w),
- DEVCB_DEVICE_MEMBER(CENTRONICS_TAG, centronics_device, write)
+ DEVCB_DEVICE_MEMBER("cent_data_out", output_latch_device, write),
};
@@ -1814,7 +1814,7 @@ WRITE8_MEMBER( stbook_state::psg_pa_w )
m_rs232->dtr_w(BIT(data, 4));
// centronics strobe
- m_centronics->strobe_w(BIT(data, 5));
+ m_centronics->write_strobe(BIT(data, 5));
// density select
m_fdc->dden_w(BIT(data, 7));
@@ -1827,7 +1827,7 @@ static const ay8910_interface stbook_psg_intf =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_DRIVER_MEMBER(stbook_state, psg_pa_w),
- DEVCB_DEVICE_MEMBER(CENTRONICS_TAG, centronics_device, write)
+ DEVCB_DEVICE_MEMBER("cent_data_out", output_latch_device, write),
};
@@ -1980,18 +1980,6 @@ static RP5C15_INTERFACE( rtc_intf )
//-------------------------------------------------
-// centronics_interface centronics_intf
-//-------------------------------------------------
-
-static const centronics_interface centronics_intf =
-{
- DEVCB_NULL,
- DEVCB_DEVICE_LINE_MEMBER(MC68901_TAG, mc68901_device, i0_w),
- DEVCB_NULL
-};
-
-
-//-------------------------------------------------
// SLOT_INTERFACE( midiin_slot )
//-------------------------------------------------
@@ -2274,7 +2262,8 @@ static MACHINE_CONFIG_START( st, st_state )
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":0", atari_floppies, "35dd", st_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":1", atari_floppies, 0, st_state::floppy_formats)
- MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
+ MCFG_CENTRONICS_ADD("centronics", centronics_printers, "image")
+ MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, i0_w))
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, write_rx))
@@ -2337,7 +2326,9 @@ static MACHINE_CONFIG_START( megast, megast_state )
MCFG_WD1772x_ADD(WD1772_TAG, Y2/4)
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":0", atari_floppies, "35dd", st_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":1", atari_floppies, 0, st_state::floppy_formats)
- MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
+
+ MCFG_CENTRONICS_ADD("centronics", centronics_printers, "image")
+ MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, i0_w))
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, write_rx))
@@ -2409,7 +2400,9 @@ static MACHINE_CONFIG_START( ste, ste_state )
MCFG_WD1772x_ADD(WD1772_TAG, Y2/4)
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":0", atari_floppies, "35dd", st_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":1", atari_floppies, 0, st_state::floppy_formats)
- MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
+
+ MCFG_CENTRONICS_ADD("centronics", centronics_printers, "image")
+ MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, i0_w))
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, write_rx))
@@ -2491,7 +2484,9 @@ static MACHINE_CONFIG_START( stbook, stbook_state )
MCFG_WD1772x_ADD(WD1772_TAG, U517/2)
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":0", atari_floppies, "35dd", 0, st_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":1", atari_floppies, 0, 0, st_state::floppy_formats)
- MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
+
+ MCFG_CENTRONICS_ADD("centronics", centronics_printers, "image")
+ MCFG_CENTRONICS_BUSY_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, i0_w))
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, write_rx))