diff options
Diffstat (limited to 'src/devices/machine/swtpc8212.cpp')
-rw-r--r-- | src/devices/machine/swtpc8212.cpp | 50 |
1 files changed, 17 insertions, 33 deletions
diff --git a/src/devices/machine/swtpc8212.cpp b/src/devices/machine/swtpc8212.cpp index fffd6eefe7f..e7e739b4373 100644 --- a/src/devices/machine/swtpc8212.cpp +++ b/src/devices/machine/swtpc8212.cpp @@ -136,8 +136,10 @@ swtp|ct8212|southwest technical products ct8212, ****************************************************************************/ #include "emu.h" -#include "machine/swtpc8212.h" +#include "swtpc8212.h" + #include "machine/input_merger.h" + #include "screen.h" #include "speaker.h" @@ -271,12 +273,6 @@ void swtpc8212_device::pia1_pa_w(uint8_t data) m_printer_data = data; } -int swtpc8212_device::pia1_ca1_r() -{ - // External parallel printer busy input. - return 0; -} - void swtpc8212_device::pia1_ca2_w(int state) { // External parallel printer data ready. @@ -329,14 +325,9 @@ MC6845_UPDATE_ROW(swtpc8212_device::update_row) } } -void swtpc8212_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +TIMER_CALLBACK_MEMBER(swtpc8212_device::bell_off) { - switch (id) - { - case BELL_TIMER_ID: - m_beeper->set_state(0); - break; - } + m_beeper->set_state(0); } void swtpc8212_device::rs232_conn_dcd_w(int state) @@ -379,16 +370,9 @@ void swtpc8212_device::write_rts(int state) m_rs232_conn_rts_handler(state); } -void swtpc8212_device::device_resolve_objects() -{ - m_rs232_conn_dtr_handler.resolve_safe(); - m_rs232_conn_rts_handler.resolve_safe(); - m_rs232_conn_txd_handler.resolve_safe(); -} - void swtpc8212_device::device_start() { - m_bell_timer = timer_alloc(BELL_TIMER_ID); + m_bell_timer = timer_alloc(FUNC(swtpc8212_device::bell_off), this); save_item(NAME(m_latch_data)); save_item(NAME(m_keyboard_data)); @@ -441,22 +425,22 @@ INPUT_PORTS_START(swtpc8212) PORT_BIT(0x0002U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("7 / Form") PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) PORT_BIT(0x0004U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8 / Xmit") PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) PORT_BIT(0x0001U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9 / ??") PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) - PORT_BIT(0x0008U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("\xC3\xB7 / ??") PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) + PORT_BIT(0x0008U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(u8"÷ / ??") PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) PORT_BIT(0x0200U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("4 / Scroll Up") PORT_CODE(KEYCODE_PGDN) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) - PORT_BIT(0x0400U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5 / \xE2\x86\x91") PORT_CODE(KEYCODE_UP) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) + PORT_BIT(0x0400U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(u8"5 / \u2191") PORT_CODE(KEYCODE_UP) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) // U+2191 = ↑ PORT_BIT(0x0100U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6 / Insert") PORT_CODE(KEYCODE_0_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) - PORT_BIT(0x0800U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("\xC3\x97 / ??") PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) - PORT_BIT(0x0020U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("1 / \xE2\x86\x90") PORT_CODE(KEYCODE_LEFT) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) + PORT_BIT(0x0800U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(u8"× / ??") PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) + PORT_BIT(0x0020U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(u8"1 / \u2190") PORT_CODE(KEYCODE_LEFT) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) // U+2190 = ← PORT_BIT(0x0040U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2 / Home") PORT_CODE(KEYCODE_HOME) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) - PORT_BIT(0x0010U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3 / \xE2\x86\x92") PORT_CODE(KEYCODE_RIGHT) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) + PORT_BIT(0x0010U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(u8"3 / \u2192") PORT_CODE(KEYCODE_RIGHT) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) // U+2192 = → PORT_BIT(0x0080U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("- / LF") PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) PORT_BIT(0x2000U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0 / Scroll Down") PORT_CODE(KEYCODE_PGUP) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) - PORT_BIT(0x4000U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0 / \xE2\x86\x93") PORT_CODE(KEYCODE_DOWN) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) + PORT_BIT(0x4000U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(u8"0 / \u2193") PORT_CODE(KEYCODE_DOWN) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) // U+2193 = ↓ PORT_BIT(0x1000U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME(". / Delete") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) PORT_BIT(0x8000U, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("+ / CR") PORT_CHANGED_MEMBER(DEVICE_SELF, swtpc8212_device, keypad_changed, 0) PORT_START("DIP_SWITCHES") - PORT_DIPNAME(0x1f, 0x19, "Baud Rate") PORT_DIPLOCATION("DIP:4,3,2,1,0") + PORT_DIPNAME(0x1f, 0x19, "Baud Rate") PORT_DIPLOCATION("DIP:5,4,3,2,1") PORT_DIPSETTING(0x04, "110") PORT_DIPSETTING(0x0a, "300") PORT_DIPSETTING(0x0d, "600") @@ -467,13 +451,13 @@ INPUT_PORTS_START(swtpc8212) PORT_DIPSETTING(0x19, "9600") PORT_DIPSETTING(0x1c, "19200") PORT_DIPSETTING(0x1f, "38400") - PORT_DIPNAME(0x20, 0x00, "Mode switch") PORT_DIPLOCATION("DIP:5") + PORT_DIPNAME(0x20, 0x00, "Mode switch") PORT_DIPLOCATION("DIP:6") PORT_DIPSETTING(0x00, "Conversational") PORT_DIPSETTING(0x20, "Page edit") - PORT_DIPNAME(0x40, 0x00, "No Parity") PORT_DIPLOCATION("DIP:6") + PORT_DIPNAME(0x40, 0x00, "No Parity") PORT_DIPLOCATION("DIP:7") PORT_DIPSETTING(0x00, "No Parity") PORT_DIPSETTING(0x40, "Parity") - PORT_DIPNAME(0x80, 0x00, "Parity Select") PORT_DIPLOCATION("DIP:7") + PORT_DIPNAME(0x80, 0x00, "Parity Select") PORT_DIPLOCATION("DIP:8") PORT_DIPSETTING(0x00, "Odd or Mark") PORT_DIPSETTING(0x80, "Even or Space") @@ -538,7 +522,7 @@ void swtpc8212_device::device_add_mconfig(machine_config &config) // CB2 - Handshake output? PIA6821(config, m_pia1); m_pia1->writepa_handler().set(FUNC(swtpc8212_device::pia1_pa_w)); - m_pia1->readca1_handler().set(FUNC(swtpc8212_device::pia1_ca1_r)); + m_pia1->ca1_w(0); // External parallel printer busy input. m_pia1->ca2_handler().set(FUNC(swtpc8212_device::pia1_ca2_w)); m_pia1->readpb_handler().set_ioport("DIP_SWITCHES"); |