From 5241f0bb6303611a3cc3f4016824b4a28e2eab32 Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 18 Sep 2024 09:23:20 -0400 Subject: [PATCH 1/8] wy30p: Add keyboard --- src/devices/bus/wysekbd/wysegakb.cpp | 135 +++++++++++++++++++++++++++ src/devices/bus/wysekbd/wysegakb.h | 14 +++ src/devices/bus/wysekbd/wysekbd.cpp | 11 ++- src/devices/bus/wysekbd/wysekbd.h | 1 + src/mame/wyse/wy30p.cpp | 31 ++++++ 5 files changed, 189 insertions(+), 3 deletions(-) diff --git a/src/devices/bus/wysekbd/wysegakb.cpp b/src/devices/bus/wysekbd/wysegakb.cpp index a425b1587eb..22fd035f148 100644 --- a/src/devices/bus/wysekbd/wysegakb.cpp +++ b/src/devices/bus/wysekbd/wysegakb.cpp @@ -21,6 +21,7 @@ // device type definitions DEFINE_DEVICE_TYPE(WY85_KEYBOARD, wy85_keyboard_device, "wy85_kbd", "WY-85 Keyboard") +DEFINE_DEVICE_TYPE(WY30_KEYBOARD, wy30_keyboard_device, "wy30_kbd", "WY-30 Keyboard") DEFINE_DEVICE_TYPE(WY60_ASCII_KEYBOARD, wy60_ascii_keyboard_device, "wy60_ascii_kbd", "WY-60 ASCII Keyboard") DEFINE_DEVICE_TYPE(WYSE_AT_KEYBOARD, wyse_at_keyboard_device, "wyse_at_kbd", "Wyse AT-Style Keyboard") DEFINE_DEVICE_TYPE(WYSE_316X_KEYBOARD, wyse_316x_keyboard_device, "wyse_316x_kbd", "Wyse IBM 316X-Style Keyboard") @@ -248,6 +249,140 @@ u8 wy85_keyboard_device::wysekbd_get_id() } +wy30_keyboard_device::wy30_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) + : wyse_gate_array_keyboard_device(mconfig, WY30_KEYBOARD, tag, owner, clock) +{ +} + +static INPUT_PORTS_START(wy30_keyboard) + PORT_START("R0") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 1 Send") PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) PORT_CODE(KEYCODE_1_PAD) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad - Replace") PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD)) PORT_CODE(KEYCODE_MINUS_PAD) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_CODE(KEYCODE_NUMLOCK) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CapsLock") PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_CODE(KEYCODE_LCONTROL) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CHAR('d') PORT_CHAR('D') PORT_CODE(KEYCODE_D) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CHAR('p') PORT_CHAR('P') PORT_CODE(KEYCODE_P) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Funct") PORT_CODE(KEYCODE_LALT) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CHAR(0x1b) PORT_CODE(KEYCODE_TILDE) + + PORT_START("R1") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 2 Copy Prt") PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) PORT_CODE(KEYCODE_2_PAD) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 4 Ins Line") PORT_CHAR(UCHAR_MAMEKEY(4_PAD)) PORT_CODE(KEYCODE_4_PAD) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_CHAR(UCHAR_MAMEKEY(F6)) PORT_CODE(KEYCODE_EQUALS_PAD) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CHAR(' ') PORT_CODE(KEYCODE_SPACE) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CHAR(0x0d) PORT_CODE(KEYCODE_ENTER) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('[') PORT_CHAR('{') PORT_CODE(KEYCODE_OPENBRACE) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CHAR('c') PORT_CHAR('C') PORT_CODE(KEYCODE_C) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('1') PORT_CHAR('!') PORT_CODE(KEYCODE_1) + + PORT_START("R2") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(u8"Keypad 3 \u25B2 Page") PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) PORT_CODE(KEYCODE_3_PAD) // ▲ Page + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 5 Del Line") PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) PORT_CODE(KEYCODE_5_PAD) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CHAR(UCHAR_MAMEKEY(F7)) PORT_CODE(KEYCODE_SLASH_PAD) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('\\') PORT_CHAR('|') PORT_CODE(KEYCODE_RALT) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CHAR('s') PORT_CHAR('S') PORT_CODE(KEYCODE_S) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(']') PORT_CHAR('}') PORT_CODE(KEYCODE_CLOSEBRACE) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CHAR('z') PORT_CHAR('Z') PORT_CODE(KEYCODE_Z) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('2') PORT_CHAR('@') PORT_CODE(KEYCODE_2) + + PORT_START("R3") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Setup") PORT_CODE(KEYCODE_INSERT) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BackSpace") PORT_CHAR(0x08) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('=') PORT_CHAR('+') PORT_CODE(KEYCODE_EQUALS) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('-') PORT_CHAR('_') PORT_CODE(KEYCODE_MINUS) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('0') PORT_CHAR(')') PORT_CODE(KEYCODE_0) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('`') PORT_CHAR('~') PORT_CODE(KEYCODE_BACKSLASH) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('9') PORT_CHAR('(') PORT_CODE(KEYCODE_9) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('\'') PORT_CHAR('"') PORT_CODE(KEYCODE_QUOTE) + + PORT_START("R4") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_CODE(KEYCODE_HOME) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CODE(KEYCODE_UP) // (possibly DOWN instead) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('/') PORT_CHAR('?') PORT_CODE(KEYCODE_SLASH) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('.') PORT_CHAR('>') PORT_CODE(KEYCODE_STOP) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) PORT_CODE(KEYCODE_CAPSLOCK) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(',') PORT_CHAR('<') PORT_CODE(KEYCODE_COMMA) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('3') PORT_CHAR('#') PORT_CODE(KEYCODE_3) + + PORT_START("R5") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CHAR('o') PORT_CHAR('O') PORT_CODE(KEYCODE_O) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CHAR('i') PORT_CHAR('I') PORT_CODE(KEYCODE_I) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CHAR('u') PORT_CHAR('U') PORT_CODE(KEYCODE_U) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CHAR('t') PORT_CHAR('T') PORT_CODE(KEYCODE_T) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CHAR('y') PORT_CHAR('Y') PORT_CODE(KEYCODE_Y) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CHAR('x') PORT_CHAR('X') PORT_CODE(KEYCODE_X) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Line Feed") PORT_CHAR(0x0a) PORT_CODE(KEYCODE_END) + + PORT_START("R6") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(';') PORT_CHAR(':') PORT_CODE(KEYCODE_COLON) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CHAR('l') PORT_CHAR('L') PORT_CODE(KEYCODE_L) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CHAR('a') PORT_CHAR('A') PORT_CODE(KEYCODE_A) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CHAR('j') PORT_CHAR('J') PORT_CODE(KEYCODE_J) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CHAR(0x09) PORT_CODE(KEYCODE_TAB) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CHAR(UCHAR_SHIFT_1) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('4') PORT_CHAR('$') PORT_CODE(KEYCODE_4) + + PORT_START("R7") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD)) PORT_CODE(KEYCODE_ENTER_PAD) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(u8"Keypad . \u25BC Page") PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_CODE(KEYCODE_DEL_PAD) // ▼ Page + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 0 Print Page") PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_CODE(KEYCODE_0_PAD) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CHAR('f') PORT_CHAR('F') PORT_CODE(KEYCODE_F) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CHAR('q') PORT_CHAR('Q') PORT_CODE(KEYCODE_Q) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CHAR('v') PORT_CHAR('V') PORT_CODE(KEYCODE_V) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('5') PORT_CHAR('%') PORT_CODE(KEYCODE_5) + + PORT_START("R8") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 9 Clr Line") PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) PORT_CODE(KEYCODE_9_PAD) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad , Insert") PORT_CHAR(UCHAR_MAMEKEY(COMMA_PAD)) PORT_CODE(KEYCODE_PLUS_PAD) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_CODE(KEYCODE_LEFT) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CHAR('H') PORT_CHAR('H') PORT_CODE(KEYCODE_H) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CHAR('W') PORT_CHAR('W') PORT_CODE(KEYCODE_W) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CHAR('N') PORT_CHAR('N') PORT_CODE(KEYCODE_N) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('6') PORT_CHAR('^') PORT_CODE(KEYCODE_6) + + PORT_START("R9") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 8 Del Char") PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) PORT_CODE(KEYCODE_8_PAD) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_CHAR(UCHAR_MAMEKEY(F8)) PORT_CODE(KEYCODE_ASTERISK) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CODE(KEYCODE_DOWN) // (possibly UP instead) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CHAR('g') PORT_CHAR('G') PORT_CODE(KEYCODE_G) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CHAR('e') PORT_CHAR('E') PORT_CODE(KEYCODE_E) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CHAR('b') PORT_CHAR('B') PORT_CODE(KEYCODE_B) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('7') PORT_CHAR('&') PORT_CODE(KEYCODE_7) + + PORT_START("R10") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del Break") PORT_CHAR(UCHAR_MAMEKEY(DEL)) PORT_CODE(KEYCODE_DEL) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 6 Clr Page") PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) PORT_CODE(KEYCODE_6_PAD) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 7 Ins Char") PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) PORT_CODE(KEYCODE_7_PAD) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CODE(KEYCODE_RIGHT) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CHAR('k') PORT_CHAR('K') PORT_CODE(KEYCODE_K) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CHAR('r') PORT_CHAR('R') PORT_CODE(KEYCODE_R) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CHAR('m') PORT_CHAR('M') PORT_CODE(KEYCODE_M) + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CHAR('8') PORT_CHAR('*') PORT_CODE(KEYCODE_8) + + PORT_START("R11") + PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED) + + PORT_START("R12") + PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED) +INPUT_PORTS_END + +ioport_constructor wy30_keyboard_device::device_input_ports() const +{ + return INPUT_PORTS_NAME(wy30_keyboard); +} + +u8 wy30_keyboard_device::wysekbd_get_id() +{ + return 0x01 ^ 0xff; +} + + wy60_ascii_keyboard_device::wy60_ascii_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : wyse_gate_array_keyboard_device(mconfig, WY60_ASCII_KEYBOARD, tag, owner, clock) { diff --git a/src/devices/bus/wysekbd/wysegakb.h b/src/devices/bus/wysekbd/wysegakb.h index 8404031ae77..1bef4102a5b 100644 --- a/src/devices/bus/wysekbd/wysegakb.h +++ b/src/devices/bus/wysekbd/wysegakb.h @@ -59,6 +59,19 @@ class wy85_keyboard_device : public wyse_gate_array_keyboard_device virtual u8 wysekbd_get_id() override; }; +// ======================> wy30_keyboard_device + +class wy30_keyboard_device : public wyse_gate_array_keyboard_device +{ +public: + // device type constructor + wy30_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0U); + +protected: + virtual ioport_constructor device_input_ports() const override; + virtual u8 wysekbd_get_id() override; +}; + // ======================> wy60_ascii_keyboard_device class wy60_ascii_keyboard_device : public wyse_gate_array_keyboard_device @@ -140,6 +153,7 @@ class wyse_pceint_keyboard_device : public wyse_at_keyboard_device // device type declarations DECLARE_DEVICE_TYPE(WY85_KEYBOARD, wy85_keyboard_device) +DECLARE_DEVICE_TYPE(WY30_KEYBOARD, wy30_keyboard_device) DECLARE_DEVICE_TYPE(WY60_ASCII_KEYBOARD, wy60_ascii_keyboard_device) DECLARE_DEVICE_TYPE(WYSE_AT_KEYBOARD, wyse_at_keyboard_device) DECLARE_DEVICE_TYPE(WYSE_316X_KEYBOARD, wyse_316x_keyboard_device) diff --git a/src/devices/bus/wysekbd/wysekbd.cpp b/src/devices/bus/wysekbd/wysekbd.cpp index 5236b7c4e9f..6e7f6c66c6d 100644 --- a/src/devices/bus/wysekbd/wysekbd.cpp +++ b/src/devices/bus/wysekbd/wysekbd.cpp @@ -19,9 +19,9 @@ Each keyboard has a different matrix layout, so the same key may appear at different indices on different keyboards. The one consistent feature - is the reservation of one row for an ID code. Some keyboards also have - LEDs whose state can be set by sending a few additional pulses - following the ID row. + is the reservation of one row for an ID code (though this is absent on + the earliest keyboards). Some keyboards also have LEDs whose state can + be set by sending a few additional pulses following the ID row. ***************************************************************************/ @@ -74,6 +74,11 @@ void wy85_keyboards(device_slot_interface &slot) slot.option_add("wy85", WY85_KEYBOARD); } +void wy30_keyboards(device_slot_interface &slot) +{ + slot.option_add("wy30", WY30_KEYBOARD); +} + void wy60_keyboards(device_slot_interface &slot) { slot.option_add("ascii", WY60_ASCII_KEYBOARD); diff --git a/src/devices/bus/wysekbd/wysekbd.h b/src/devices/bus/wysekbd/wysekbd.h index 7a1644c2d09..68e64fc9530 100644 --- a/src/devices/bus/wysekbd/wysekbd.h +++ b/src/devices/bus/wysekbd/wysekbd.h @@ -70,6 +70,7 @@ DECLARE_DEVICE_TYPE(WYSE_KEYBOARD, wyse_keyboard_port_device) // standard options extern void wy85_keyboards(device_slot_interface &slot); +extern void wy30_keyboards(device_slot_interface &slot); extern void wy60_keyboards(device_slot_interface &slot); //************************************************************************** diff --git a/src/mame/wyse/wy30p.cpp b/src/mame/wyse/wy30p.cpp index b7ba4312af0..92fec4befb8 100644 --- a/src/mame/wyse/wy30p.cpp +++ b/src/mame/wyse/wy30p.cpp @@ -10,6 +10,7 @@ *******************************************************************************/ #include "emu.h" +#include "bus/wysekbd/wysekbd.h" #include "cpu/mcs51/mcs51.h" #include "machine/eepromser.h" #include "screen.h" @@ -23,6 +24,7 @@ class wy30p_state : public driver_device wy30p_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_eeprom(*this, "eeprom") + , m_keyboard(*this, "keyboard") , m_screen(*this, "screen") { } @@ -36,13 +38,17 @@ class wy30p_state : public driver_device private: u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + u8 p1_r(); u8 p3_r(); + void keyboard_clock_w(u8 data); + void keyboard_reset_w(u8 data); u8 de00_r(); void prog_map(address_map &map); void ext_map(address_map &map); required_device m_eeprom; + required_device m_keyboard; required_device m_screen; }; @@ -56,11 +62,27 @@ u32 wy30p_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, cons return 0; } +u8 wy30p_state::p1_r() +{ + return 0x7f | (!m_keyboard->data_r() << 7); +} + u8 wy30p_state::p3_r() { return 0xdf | (m_eeprom->do_read() << 5); } +void wy30p_state::keyboard_clock_w(u8 data) +{ + m_keyboard->cmd_w(0); + m_keyboard->cmd_w(1); +} + +void wy30p_state::keyboard_reset_w(u8 data) +{ + m_keyboard->cmd_w(0); +} + u8 wy30p_state::de00_r() { return m_screen->vblank() << 7; // probably not correct @@ -75,6 +97,11 @@ void wy30p_state::ext_map(address_map &map) { map(0x0000, 0x1fff).ram(); map(0xa000, 0xa7ff).ram(); + map(0xc300, 0xc3ff).nopw(); // ? + map(0xc700, 0xc7ff).nopw(); // ? + map(0xc900, 0xc9ff).nopw(); // ? + map(0xdc00, 0xdc00).mirror(0xff).w(FUNC(wy30p_state::keyboard_clock_w)); + map(0xdd00, 0xdd00).mirror(0xff).w(FUNC(wy30p_state::keyboard_reset_w)); map(0xde00, 0xde00).mirror(0xff).r(FUNC(wy30p_state::de00_r)); } @@ -88,6 +115,7 @@ void wy30p_state::wy30p(machine_config &config) i8031_device &maincpu(I8031(config, "maincpu", 7.3728_MHz_XTAL)); maincpu.set_addrmap(AS_PROGRAM, &wy30p_state::prog_map); maincpu.set_addrmap(AS_IO, &wy30p_state::ext_map); + maincpu.port_in_cb<1>().set(FUNC(wy30p_state::p1_r)); maincpu.port_in_cb<3>().set(FUNC(wy30p_state::p3_r)); maincpu.port_out_cb<3>().set(m_eeprom, FUNC(eeprom_serial_er5911_device::cs_write)).bit(3); maincpu.port_out_cb<3>().append(m_eeprom, FUNC(eeprom_serial_er5911_device::clk_write)).bit(4); @@ -95,9 +123,12 @@ void wy30p_state::wy30p(machine_config &config) EEPROM_ER5911_8BIT(config, m_eeprom); + WYSE_KEYBOARD(config, m_keyboard, wy30_keyboards, "wy30"); + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(31.2795_MHz_XTAL * 2 / 3, 1050, 0, 800, 331, 0, 312); // divider and dimensions guessed m_screen->set_screen_update(FUNC(wy30p_state::screen_update)); + m_screen->screen_vblank().set_inputline("maincpu", MCS51_INT0_LINE); } From b8889905639472978b87e1729a8e1924ec33efd4 Mon Sep 17 00:00:00 2001 From: hap Date: Wed, 18 Sep 2024 16:21:11 +0200 Subject: [PATCH 2/8] diexec: remove vestigal execute_input_lines() --- src/devices/cpu/8x300/8x300.h | 1 - src/devices/cpu/adsp2100/adsp2100.cpp | 21 ------------------- src/devices/cpu/adsp2100/adsp2100.h | 9 -------- src/devices/cpu/alpha/alpha.h | 3 --- src/devices/cpu/alto2/alto2cpu.h | 1 - src/devices/cpu/am29000/am29000.h | 1 - src/devices/cpu/amis2000/amis2000.h | 1 - src/devices/cpu/apexc/apexc.h | 1 - src/devices/cpu/arc/arc.h | 1 - src/devices/cpu/arcompact/arcompact.h | 1 - src/devices/cpu/arm/arm.h | 1 - src/devices/cpu/arm7/arm7.h | 1 - src/devices/cpu/asap/asap.cpp | 11 ---------- src/devices/cpu/asap/asap.h | 1 - src/devices/cpu/avr8/avr8.h | 1 - src/devices/cpu/axc51/axc51.h | 1 - src/devices/cpu/bcp/dp8344.h | 1 - src/devices/cpu/capricorn/capricorn.h | 8 ++----- src/devices/cpu/ccpu/ccpu.h | 1 - src/devices/cpu/clipper/clipper.h | 1 - src/devices/cpu/cop400/cop400.h | 1 - src/devices/cpu/cosmac/cosmac.cpp | 11 ---------- src/devices/cpu/cosmac/cosmac.h | 1 - src/devices/cpu/cp1610/cp1610.h | 1 - src/devices/cpu/cubeqcpu/cubeqcpu.h | 3 --- src/devices/cpu/diablo/diablo1300.h | 1 - src/devices/cpu/dsp16/dsp16.h | 1 - src/devices/cpu/dsp32/dsp32.cpp | 11 ---------- src/devices/cpu/dsp32/dsp32.h | 1 - src/devices/cpu/dsp56000/dsp56000.h | 1 - src/devices/cpu/dsp56156/dsp56156.h | 1 - src/devices/cpu/e0c6200/e0c6200.h | 1 - src/devices/cpu/e0c6200/e0c6s46.h | 1 - src/devices/cpu/e132xs/e132xs.cpp | 11 ---------- src/devices/cpu/e132xs/e132xs.h | 1 - src/devices/cpu/es5510/es5510.cpp | 4 ---- src/devices/cpu/es5510/es5510.h | 1 - src/devices/cpu/esrip/esrip.cpp | 11 ---------- src/devices/cpu/esrip/esrip.h | 1 - src/devices/cpu/evolution/evo.h | 1 - src/devices/cpu/f8/f8.h | 1 - src/devices/cpu/g65816/g65816.h | 1 - src/devices/cpu/gigatron/gigatron.h | 1 - src/devices/cpu/h6280/h6280.cpp | 11 ---------- src/devices/cpu/h6280/h6280.h | 1 - src/devices/cpu/h8/h8.h | 1 - src/devices/cpu/hcd62121/hcd62121.h | 1 - src/devices/cpu/hd61700/hd61700.h | 1 - src/devices/cpu/hmcs40/hmcs40.h | 1 - src/devices/cpu/hmcs400/hmcs400.cpp | 2 +- src/devices/cpu/hmcs400/hmcs400.h | 1 - src/devices/cpu/hphybrid/hphybrid.h | 1 - src/devices/cpu/ht1130/ht1130.h | 1 - src/devices/cpu/i386/i386.h | 1 - src/devices/cpu/i8085/i8085.h | 2 -- src/devices/cpu/i86/i186.h | 1 - src/devices/cpu/i86/i286.h | 1 - src/devices/cpu/i86/i86.h | 1 - src/devices/cpu/i860/i860.h | 2 -- src/devices/cpu/i960/i960.h | 1 - src/devices/cpu/jaguar/jaguar.h | 2 -- src/devices/cpu/ks0164/ks0164.cpp | 5 ----- src/devices/cpu/ks0164/ks0164.h | 1 - src/devices/cpu/lc8670/lc8670.h | 1 - src/devices/cpu/lh5801/lh5801.h | 1 - src/devices/cpu/lr35902/lr35902.h | 1 - src/devices/cpu/m37710/m37710.h | 1 - src/devices/cpu/m6502/m6502.cpp | 5 ----- src/devices/cpu/m6502/m6502.h | 1 - src/devices/cpu/m6800/m6800.h | 1 - src/devices/cpu/m6800/m6801.h | 1 - src/devices/cpu/m68000/m68kcommon.h | 1 - src/devices/cpu/m68000/tmp68301.cpp | 5 ----- src/devices/cpu/m68000/tmp68301.h | 1 - src/devices/cpu/m6805/m6805.cpp | 11 ---------- src/devices/cpu/m6805/m6805.h | 1 - src/devices/cpu/m6809/m6809.cpp | 11 ---------- src/devices/cpu/m6809/m6809.h | 1 - src/devices/cpu/mb86233/mb86233.h | 1 - src/devices/cpu/mb86235/mb86235.h | 1 - src/devices/cpu/mb88xx/mb88xx.h | 1 - src/devices/cpu/mc68hc11/mc68hc11.h | 1 - src/devices/cpu/mcs40/mcs40.cpp | 10 --------- src/devices/cpu/mcs40/mcs40.h | 2 -- src/devices/cpu/mcs48/mcs48.h | 1 - src/devices/cpu/mcs51/mcs51.h | 1 - src/devices/cpu/mcs96/i8x9x.h | 1 - src/devices/cpu/melps4/melps4.h | 1 - src/devices/cpu/minx/minx.h | 1 - src/devices/cpu/mips/mips1.h | 1 - src/devices/cpu/mips/mips3.h | 1 - src/devices/cpu/mips/ps2vu.h | 1 - src/devices/cpu/mips/r4000.h | 1 - src/devices/cpu/mipsx/mipsx.h | 1 - src/devices/cpu/mn10200/mn10200.h | 1 - src/devices/cpu/nanoprocessor/nanoprocessor.h | 1 - src/devices/cpu/nec/nec.h | 1 - src/devices/cpu/nec/v25.h | 1 - src/devices/cpu/ns32000/ns32000.h | 1 - src/devices/cpu/nuon/nuon.h | 1 - src/devices/cpu/palm/palm.h | 1 - src/devices/cpu/pdp1/pdp1.h | 1 - src/devices/cpu/pdp8/pdp8.cpp | 11 ---------- src/devices/cpu/pdp8/pdp8.h | 1 - src/devices/cpu/pic16c5x/pic16c5x.h | 1 - src/devices/cpu/pic16c62x/pic16c62x.h | 1 - src/devices/cpu/pic16x8x/pic16x8x.h | 1 - src/devices/cpu/pic17/pic17c4x.h | 1 - src/devices/cpu/powerpc/ppc.h | 8 ------- src/devices/cpu/pps4/pps4.h | 1 - src/devices/cpu/pps41/pps41base.h | 1 - src/devices/cpu/psx/psx.h | 1 - src/devices/cpu/romp/romp.h | 1 - src/devices/cpu/rsp/rsp.h | 1 - src/devices/cpu/s2650/s2650.h | 1 - src/devices/cpu/saturn/saturn.h | 1 - src/devices/cpu/sc61860/sc61860.h | 1 - src/devices/cpu/scmp/scmp.h | 1 - src/devices/cpu/score/score.h | 1 - src/devices/cpu/scudsp/scudsp.h | 1 - src/devices/cpu/se3208/se3208.h | 1 - src/devices/cpu/sh/sh2.h | 1 - src/devices/cpu/sh/sh4.h | 1 - src/devices/cpu/sharc/sharc.h | 1 - src/devices/cpu/sm510/sm510base.h | 1 - src/devices/cpu/sm8500/sm8500.h | 1 - src/devices/cpu/sparc/sparc.cpp | 11 ---------- src/devices/cpu/sparc/sparc.h | 1 - src/devices/cpu/spc700/spc700.h | 1 - src/devices/cpu/ssem/ssem.cpp | 11 ---------- src/devices/cpu/ssem/ssem.h | 1 - src/devices/cpu/ssp1601/ssp1601.h | 1 - src/devices/cpu/st62xx/st62xx.cpp | 5 ----- src/devices/cpu/st62xx/st62xx.h | 1 - src/devices/cpu/superfx/superfx.h | 1 - src/devices/cpu/t11/t11.h | 1 - src/devices/cpu/tlcs870/tlcs870.h | 1 - src/devices/cpu/tlcs90/tlcs90.h | 1 - src/devices/cpu/tlcs900/tlcs900.h | 1 - src/devices/cpu/tms1000/smc1102.h | 1 - src/devices/cpu/tms1000/tms2100.h | 1 - src/devices/cpu/tms32010/tms32010.h | 1 - src/devices/cpu/tms32025/tms32025.h | 1 - src/devices/cpu/tms32031/tms32031.cpp | 11 ---------- src/devices/cpu/tms32031/tms32031.h | 1 - src/devices/cpu/tms32051/tms32051.h | 1 - src/devices/cpu/tms32082/tms32082.h | 2 -- src/devices/cpu/tms34010/tms34010.h | 1 - src/devices/cpu/tms57002/tms57002.cpp | 5 ----- src/devices/cpu/tms57002/tms57002.h | 1 - src/devices/cpu/tms7000/tms7000.h | 1 - src/devices/cpu/tms9900/ti990_10.cpp | 5 ----- src/devices/cpu/tms9900/ti990_10.h | 5 ++--- src/devices/cpu/tms9900/tms9900.cpp | 5 ----- src/devices/cpu/tms9900/tms9900.h | 1 - src/devices/cpu/tms9900/tms9980a.cpp | 5 ----- src/devices/cpu/tms9900/tms9980a.h | 1 - src/devices/cpu/tms9900/tms9995.cpp | 5 ----- src/devices/cpu/tms9900/tms9995.h | 1 - src/devices/cpu/ucom4/ucom4.h | 1 - src/devices/cpu/unsp/unsp.h | 1 - src/devices/cpu/upd7725/upd7725.cpp | 11 ---------- src/devices/cpu/upd7725/upd7725.h | 1 - src/devices/cpu/upd7810/upd7810.h | 1 - src/devices/cpu/v30mz/v30mz.h | 1 - src/devices/cpu/v60/v60.h | 1 - src/devices/cpu/v810/v810.h | 1 - src/devices/cpu/xa/xa.h | 1 - src/devices/cpu/xavix2/xavix2.cpp | 5 ----- src/devices/cpu/xavix2/xavix2.h | 1 - src/devices/cpu/z180/z180.h | 1 - src/devices/cpu/z8/z8.h | 1 - src/devices/cpu/z80/nsc800.h | 1 - src/devices/cpu/z80/z80.h | 1 - src/devices/cpu/z8000/z8000.h | 1 - src/devices/sound/dspv.cpp | 5 ----- src/devices/sound/dspv.h | 1 - src/devices/sound/swp30.cpp | 5 ----- src/devices/sound/swp30.h | 1 - src/emu/diexec.cpp | 11 ---------- src/emu/diexec.h | 2 -- src/mame/sgi/sgi_ge5.h | 1 - src/mame/virtual/vgmplay.cpp | 6 ------ 183 files changed, 5 insertions(+), 440 deletions(-) diff --git a/src/devices/cpu/8x300/8x300.h b/src/devices/cpu/8x300/8x300.h index c4e36490b7f..d4bfd85a976 100644 --- a/src/devices/cpu/8x300/8x300.h +++ b/src/devices/cpu/8x300/8x300.h @@ -64,7 +64,6 @@ class n8x300_cpu_device : public cpu_device // device_execute_interface implementation virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface implementation diff --git a/src/devices/cpu/adsp2100/adsp2100.cpp b/src/devices/cpu/adsp2100/adsp2100.cpp index eb787a00a18..8f927831162 100644 --- a/src/devices/cpu/adsp2100/adsp2100.cpp +++ b/src/devices/cpu/adsp2100/adsp2100.cpp @@ -1161,27 +1161,6 @@ uint32_t adsp21xx_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t adsp2100_device::execute_input_lines() const noexcept -{ - return 4; -} - -uint32_t adsp2101_device::execute_input_lines() const noexcept -{ - return 5; -} - -uint32_t adsp2181_device::execute_input_lines() const noexcept -{ - return 9; -} - - void adsp21xx_device::execute_set_input(int inputnum, int state) { // update the latched state diff --git a/src/devices/cpu/adsp2100/adsp2100.h b/src/devices/cpu/adsp2100/adsp2100.h index ca45c8756c8..392ed7278b4 100644 --- a/src/devices/cpu/adsp2100/adsp2100.h +++ b/src/devices/cpu/adsp2100/adsp2100.h @@ -476,9 +476,6 @@ class adsp2100_device : public adsp21xx_device adsp2100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: - // device_execute_interface overrides - virtual uint32_t execute_input_lines() const noexcept override; - // device_memory_interface overrides virtual space_config_vector memory_space_config() const override; @@ -499,9 +496,6 @@ class adsp2101_device : public adsp21xx_device protected: adsp2101_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint32_t chiptype); - // device_execute_interface overrides - virtual uint32_t execute_input_lines() const noexcept override; - // device_memory_interface overrides virtual space_config_vector memory_space_config() const override; @@ -520,9 +514,6 @@ class adsp2181_device : public adsp21xx_device adsp2181_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: - // device_execute_interface overrides - virtual uint32_t execute_input_lines() const noexcept override; - // device_memory_interface overrides virtual space_config_vector memory_space_config() const override; diff --git a/src/devices/cpu/alpha/alpha.h b/src/devices/cpu/alpha/alpha.h index c37960c3127..2d9d4d9f910 100644 --- a/src/devices/cpu/alpha/alpha.h +++ b/src/devices/cpu/alpha/alpha.h @@ -83,9 +83,6 @@ class alpha_ev4_device : public alpha_device virtual void device_start() override; virtual void device_reset() override; - // device_execute_interface overrides - virtual u32 execute_input_lines() const noexcept override { return 6; } - virtual void cpu_execute(u32 const op) override; virtual bool cpu_translate(u64 &address, int intention) override; diff --git a/src/devices/cpu/alto2/alto2cpu.h b/src/devices/cpu/alto2/alto2cpu.h index c269737d2e6..c56629ca167 100644 --- a/src/devices/cpu/alto2/alto2cpu.h +++ b/src/devices/cpu/alto2/alto2cpu.h @@ -217,7 +217,6 @@ class alto2_cpu_device : public cpu_device //! device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/am29000/am29000.h b/src/devices/cpu/am29000/am29000.h index c19eeb8b9f2..9eea0b09a41 100644 --- a/src/devices/cpu/am29000/am29000.h +++ b/src/devices/cpu/am29000/am29000.h @@ -446,7 +446,6 @@ class am29000_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 2; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/amis2000/amis2000.h b/src/devices/cpu/amis2000/amis2000.h index e6f5a0f3236..6b4bcf0ebd7 100644 --- a/src/devices/cpu/amis2000/amis2000.h +++ b/src/devices/cpu/amis2000/amis2000.h @@ -50,7 +50,6 @@ class amis2000_base_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 4); } // " virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 2; } - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/apexc/apexc.h b/src/devices/cpu/apexc/apexc.h index 84b44add940..b795292cf45 100644 --- a/src/devices/cpu/apexc/apexc.h +++ b/src/devices/cpu/apexc/apexc.h @@ -34,7 +34,6 @@ class apexc_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 2; } virtual uint32_t execute_max_cycles() const noexcept override { return 75; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/arc/arc.h b/src/devices/cpu/arc/arc.h index fd4fa0582e1..f5a49fdf76c 100644 --- a/src/devices/cpu/arc/arc.h +++ b/src/devices/cpu/arc/arc.h @@ -31,7 +31,6 @@ class arc_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 5; } virtual uint32_t execute_max_cycles() const noexcept override { return 5; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/arcompact/arcompact.h b/src/devices/cpu/arcompact/arcompact.h index 3069684449f..11be86da76a 100644 --- a/src/devices/cpu/arcompact/arcompact.h +++ b/src/devices/cpu/arcompact/arcompact.h @@ -28,7 +28,6 @@ class arcompact_device : public cpu_device, protected arcompact_common // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 5; } virtual uint32_t execute_max_cycles() const noexcept override { return 5; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/arm/arm.h b/src/devices/cpu/arm/arm.h index aeafa3c0d7b..9a99b16cf54 100644 --- a/src/devices/cpu/arm/arm.h +++ b/src/devices/cpu/arm/arm.h @@ -50,7 +50,6 @@ class arm_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 3; } virtual uint32_t execute_max_cycles() const noexcept override { return 4; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/arm7/arm7.h b/src/devices/cpu/arm7/arm7.h index 9217a271ab5..47321d561d4 100644 --- a/src/devices/cpu/arm7/arm7.h +++ b/src/devices/cpu/arm7/arm7.h @@ -134,7 +134,6 @@ class arm7_cpu_device : public cpu_device, public arm7_disassembler::config // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 3; } virtual uint32_t execute_max_cycles() const noexcept override { return 4; } - virtual uint32_t execute_input_lines() const noexcept override { return 4; } /* There are actually only 2 input lines: we use 3 variants of the ABORT line while there is only 1 real one */ virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/asap/asap.cpp b/src/devices/cpu/asap/asap.cpp index 53f66aa1900..5ef08e161ad 100644 --- a/src/devices/cpu/asap/asap.cpp +++ b/src/devices/cpu/asap/asap.cpp @@ -516,17 +516,6 @@ uint32_t asap_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t asap_device::execute_input_lines() const noexcept -{ - return 1; -} - - void asap_device::execute_set_input(int inputnum, int state) { m_irq_state = (state != CLEAR_LINE); diff --git a/src/devices/cpu/asap/asap.h b/src/devices/cpu/asap/asap.h index 3adb9ef37f4..62bbd15c1f1 100644 --- a/src/devices/cpu/asap/asap.h +++ b/src/devices/cpu/asap/asap.h @@ -76,7 +76,6 @@ class asap_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/avr8/avr8.h b/src/devices/cpu/avr8/avr8.h index 0254775273d..1e93442b00c 100644 --- a/src/devices/cpu/avr8/avr8.h +++ b/src/devices/cpu/avr8/avr8.h @@ -605,7 +605,6 @@ class avr8_base_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 4; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } // device_memory_interface overrides virtual space_config_vector memory_space_config() const override; diff --git a/src/devices/cpu/axc51/axc51.h b/src/devices/cpu/axc51/axc51.h index 291c4231414..1f9a2f1f25b 100644 --- a/src/devices/cpu/axc51/axc51.h +++ b/src/devices/cpu/axc51/axc51.h @@ -46,7 +46,6 @@ class axc51base_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 20; } - virtual uint32_t execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/bcp/dp8344.h b/src/devices/cpu/bcp/dp8344.h index aede18c32a0..263462f975a 100644 --- a/src/devices/cpu/bcp/dp8344.h +++ b/src/devices/cpu/bcp/dp8344.h @@ -71,7 +71,6 @@ class dp8344_device : public cpu_device // device_execute_interface implementation virtual u32 execute_min_cycles() const noexcept override { return 2; } virtual u32 execute_max_cycles() const noexcept override { return 4; } - virtual u32 execute_input_lines() const noexcept override { return 3; } virtual void execute_run() override; virtual void execute_set_input(int irqline, int state) override; diff --git a/src/devices/cpu/capricorn/capricorn.h b/src/devices/cpu/capricorn/capricorn.h index 40bbb2cc3ab..3051c8b9bd7 100644 --- a/src/devices/cpu/capricorn/capricorn.h +++ b/src/devices/cpu/capricorn/capricorn.h @@ -37,12 +37,8 @@ class capricorn_cpu_device : public cpu_device virtual void device_reset() override; // device_execute_interface overrides - virtual u32 execute_min_cycles() const noexcept override - { return 2; } - virtual u32 execute_max_cycles() const noexcept override - { return 17; } - virtual u32 execute_input_lines() const noexcept override - { return 1; } + virtual u32 execute_min_cycles() const noexcept override { return 2; } + virtual u32 execute_max_cycles() const noexcept override { return 17; } virtual void execute_run() override; virtual void execute_set_input(int linenum, int state) override; diff --git a/src/devices/cpu/ccpu/ccpu.h b/src/devices/cpu/ccpu/ccpu.h index c4377f251e3..9a952276f6c 100644 --- a/src/devices/cpu/ccpu/ccpu.h +++ b/src/devices/cpu/ccpu/ccpu.h @@ -60,7 +60,6 @@ class ccpu_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/clipper/clipper.h b/src/devices/cpu/clipper/clipper.h index 44741234df1..6a03ccac86a 100644 --- a/src/devices/cpu/clipper/clipper.h +++ b/src/devices/cpu/clipper/clipper.h @@ -157,7 +157,6 @@ class clipper_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 1; } // FIXME: don't know, especially macro instructions - virtual u32 execute_input_lines() const noexcept override { return 2; } // number of input/interrupt lines (irq/nmi) virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/cop400/cop400.h b/src/devices/cpu/cop400/cop400.h index 4c51e36595b..0155a832e05 100644 --- a/src/devices/cpu/cop400/cop400.h +++ b/src/devices/cpu/cop400/cop400.h @@ -140,7 +140,6 @@ class cop400_cpu_device : public cpu_device virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * m_cki); } virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 2; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/cosmac/cosmac.cpp b/src/devices/cpu/cosmac/cosmac.cpp index 6b9c866c92e..7775e6f33db 100644 --- a/src/devices/cpu/cosmac/cosmac.cpp +++ b/src/devices/cpu/cosmac/cosmac.cpp @@ -739,17 +739,6 @@ uint32_t cosmac_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t cosmac_device::execute_input_lines() const noexcept -{ - return 7; -} - - //------------------------------------------------- // execute_set_input - //------------------------------------------------- diff --git a/src/devices/cpu/cosmac/cosmac.h b/src/devices/cpu/cosmac/cosmac.h index d89d2622156..7071b51e3ee 100644 --- a/src/devices/cpu/cosmac/cosmac.h +++ b/src/devices/cpu/cosmac/cosmac.h @@ -192,7 +192,6 @@ class cosmac_device : public cpu_device, public cosmac_disassembler::config // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/cp1610/cp1610.h b/src/devices/cpu/cp1610/cp1610.h index af2ed5a7fe2..1def7c2eeaf 100644 --- a/src/devices/cpu/cp1610/cp1610.h +++ b/src/devices/cpu/cp1610/cp1610.h @@ -42,7 +42,6 @@ class cp1610_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 7; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == CP1610_INT_INTR; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/cubeqcpu/cubeqcpu.h b/src/devices/cpu/cubeqcpu/cubeqcpu.h index 543f90a8a82..52b8132739d 100644 --- a/src/devices/cpu/cubeqcpu/cubeqcpu.h +++ b/src/devices/cpu/cubeqcpu/cubeqcpu.h @@ -63,7 +63,6 @@ class cquestsnd_cpu_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 1; } - virtual u32 execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides @@ -162,7 +161,6 @@ class cquestrot_cpu_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 1; } - virtual u32 execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides @@ -274,7 +272,6 @@ class cquestlin_cpu_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 1; } - virtual u32 execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/diablo/diablo1300.h b/src/devices/cpu/diablo/diablo1300.h index f706938f2a0..68e0fc5bf31 100644 --- a/src/devices/cpu/diablo/diablo1300.h +++ b/src/devices/cpu/diablo/diablo1300.h @@ -31,7 +31,6 @@ class diablo1300_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - //virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; //virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/dsp16/dsp16.h b/src/devices/cpu/dsp16/dsp16.h index f23477ed10b..5c4304851f1 100644 --- a/src/devices/cpu/dsp16/dsp16.h +++ b/src/devices/cpu/dsp16/dsp16.h @@ -82,7 +82,6 @@ class dsp16_device_base : public cpu_device, protected dsp16_disassembler::cpu // device_execute_interface implementation virtual u64 execute_clocks_to_cycles(u64 clocks) const noexcept override { return (clocks + 2 - 1) >> 1; } virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return cycles << 1; } - virtual u32 execute_input_lines() const noexcept override { return 5U; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/dsp32/dsp32.cpp b/src/devices/cpu/dsp32/dsp32.cpp index 2341cdf4f0c..ac30ba9a34f 100644 --- a/src/devices/cpu/dsp32/dsp32.cpp +++ b/src/devices/cpu/dsp32/dsp32.cpp @@ -553,17 +553,6 @@ uint32_t dsp32c_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t dsp32c_device::execute_input_lines() const noexcept -{ - return 2; -} - - void dsp32c_device::execute_set_input(int inputnum, int state) { } diff --git a/src/devices/cpu/dsp32/dsp32.h b/src/devices/cpu/dsp32/dsp32.h index 90ede0181fa..79d2314c8f7 100644 --- a/src/devices/cpu/dsp32/dsp32.h +++ b/src/devices/cpu/dsp32/dsp32.h @@ -109,7 +109,6 @@ class dsp32c_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/dsp56000/dsp56000.h b/src/devices/cpu/dsp56000/dsp56000.h index 0a47b2fe078..d62f2fb1523 100644 --- a/src/devices/cpu/dsp56000/dsp56000.h +++ b/src/devices/cpu/dsp56000/dsp56000.h @@ -20,7 +20,6 @@ class dsp56000_device_base : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 2); } virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 16; } - virtual u32 execute_input_lines() const noexcept override { return 2; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/dsp56156/dsp56156.h b/src/devices/cpu/dsp56156/dsp56156.h index 4317fa249f5..67a8e5f4abb 100644 --- a/src/devices/cpu/dsp56156/dsp56156.h +++ b/src/devices/cpu/dsp56156/dsp56156.h @@ -228,7 +228,6 @@ class dsp56156_device : public cpu_device virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return cycles; } virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 8; } - virtual uint32_t execute_input_lines() const noexcept override { return 4; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == DSP56156_IRQ_RESET; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/e0c6200/e0c6200.h b/src/devices/cpu/e0c6200/e0c6200.h index 5222983e09b..6e7bf86aa06 100644 --- a/src/devices/cpu/e0c6200/e0c6200.h +++ b/src/devices/cpu/e0c6200/e0c6200.h @@ -24,7 +24,6 @@ class e0c6200_cpu_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 5; } virtual u32 execute_max_cycles() const noexcept override { return 14; } // longest opcode is 12 cycles, but interrupt service takes up to 14 - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_one(); virtual bool check_interrupt() { return false; } // nothing to do by default diff --git a/src/devices/cpu/e0c6200/e0c6s46.h b/src/devices/cpu/e0c6200/e0c6s46.h index 0fb7a67e44c..cf48f14a562 100644 --- a/src/devices/cpu/e0c6200/e0c6s46.h +++ b/src/devices/cpu/e0c6200/e0c6s46.h @@ -73,7 +73,6 @@ class e0c6s46_device : public e0c6200_cpu_device virtual void device_reset() override; // device_execute_interface overrides - virtual u32 execute_input_lines() const noexcept override { return 8; } virtual void execute_set_input(int line, int state) override; virtual void execute_one() override; virtual bool check_interrupt() override; diff --git a/src/devices/cpu/e132xs/e132xs.cpp b/src/devices/cpu/e132xs/e132xs.cpp index 137a45404f2..4ee0f429377 100644 --- a/src/devices/cpu/e132xs/e132xs.cpp +++ b/src/devices/cpu/e132xs/e132xs.cpp @@ -1591,17 +1591,6 @@ uint32_t hyperstone_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t hyperstone_device::execute_input_lines() const noexcept -{ - return 8; -} - - void hyperstone_device::execute_set_input(int inputnum, int state) { if (state) diff --git a/src/devices/cpu/e132xs/e132xs.h b/src/devices/cpu/e132xs/e132xs.h index 51f9c5cc3c1..3c555d83c7f 100644 --- a/src/devices/cpu/e132xs/e132xs.h +++ b/src/devices/cpu/e132xs/e132xs.h @@ -286,7 +286,6 @@ class hyperstone_device : public cpu_device, public hyperstone_disassembler::con // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/es5510/es5510.cpp b/src/devices/cpu/es5510/es5510.cpp index 7ba2d91bc39..7449f1bc307 100644 --- a/src/devices/cpu/es5510/es5510.cpp +++ b/src/devices/cpu/es5510/es5510.cpp @@ -670,10 +670,6 @@ uint32_t es5510_device::execute_max_cycles() const noexcept { return 1; } -uint32_t es5510_device::execute_input_lines() const noexcept { - return 1; -} - void es5510_device::execute_set_input(int linenum, int state) { if (linenum == ES5510_HALT) { halt_asserted = (state == ASSERT_LINE); diff --git a/src/devices/cpu/es5510/es5510.h b/src/devices/cpu/es5510/es5510.h index 9f8d10035ca..6061d2e86bc 100644 --- a/src/devices/cpu/es5510/es5510.h +++ b/src/devices/cpu/es5510/es5510.h @@ -133,7 +133,6 @@ class es5510_device : public cpu_device { virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override; virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int linenum, int state) override; virtual std::unique_ptr create_disassembler() override; diff --git a/src/devices/cpu/esrip/esrip.cpp b/src/devices/cpu/esrip/esrip.cpp index ac99aec9290..b78928cb3c4 100644 --- a/src/devices/cpu/esrip/esrip.cpp +++ b/src/devices/cpu/esrip/esrip.cpp @@ -1738,17 +1738,6 @@ uint32_t esrip_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t esrip_device::execute_input_lines() const noexcept -{ - return 0; -} - - //------------------------------------------------- // execute_set_input - act on a changed input/ // interrupt line diff --git a/src/devices/cpu/esrip/esrip.h b/src/devices/cpu/esrip/esrip.h index f58b2d41a97..04a11b67560 100644 --- a/src/devices/cpu/esrip/esrip.h +++ b/src/devices/cpu/esrip/esrip.h @@ -112,7 +112,6 @@ class esrip_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/evolution/evo.h b/src/devices/cpu/evolution/evo.h index 992e302e835..8bbdaf60d32 100644 --- a/src/devices/cpu/evolution/evo.h +++ b/src/devices/cpu/evolution/evo.h @@ -18,7 +18,6 @@ class evo_cpu_device : public cpu_device virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/f8/f8.h b/src/devices/cpu/f8/f8.h index da621d3a306..e6f552f1717 100644 --- a/src/devices/cpu/f8/f8.h +++ b/src/devices/cpu/f8/f8.h @@ -39,7 +39,6 @@ class f8_cpu_device : public cpu_device // device_execute_interface implementation virtual u32 execute_min_cycles() const noexcept override { return 4; } virtual u32 execute_max_cycles() const noexcept override { return 26; } - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/g65816/g65816.h b/src/devices/cpu/g65816/g65816.h index 6dfe2b52975..39b8d1e304b 100644 --- a/src/devices/cpu/g65816/g65816.h +++ b/src/devices/cpu/g65816/g65816.h @@ -76,7 +76,6 @@ class g65816_device : public cpu_device, public g65816_disassembler::config // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 20; } - virtual uint32_t execute_input_lines() const noexcept override { return 5; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/gigatron/gigatron.h b/src/devices/cpu/gigatron/gigatron.h index b224b4ab280..ddf87eb195a 100644 --- a/src/devices/cpu/gigatron/gigatron.h +++ b/src/devices/cpu/gigatron/gigatron.h @@ -41,7 +41,6 @@ class gigatron_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 7; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/h6280/h6280.cpp b/src/devices/cpu/h6280/h6280.cpp index 7bb01c3f6d5..f725e6065a5 100644 --- a/src/devices/cpu/h6280/h6280.cpp +++ b/src/devices/cpu/h6280/h6280.cpp @@ -2269,17 +2269,6 @@ uint32_t h6280_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t h6280_device::execute_input_lines() const noexcept -{ - return 4; -} - - //------------------------------------------------- // execute_input_edge_triggered - return true if // the input line has an asynchronous edge trigger diff --git a/src/devices/cpu/h6280/h6280.h b/src/devices/cpu/h6280/h6280.h index fb46ec5e4c6..37b863dcf1f 100644 --- a/src/devices/cpu/h6280/h6280.h +++ b/src/devices/cpu/h6280/h6280.h @@ -83,7 +83,6 @@ class h6280_device : public cpu_device, public device_mixer_interface // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual bool execute_input_edge_triggered(int inputnum) const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/h8/h8.h b/src/devices/cpu/h8/h8.h index 58929688ca5..a359855026a 100644 --- a/src/devices/cpu/h8/h8.h +++ b/src/devices/cpu/h8/h8.h @@ -143,7 +143,6 @@ class h8_device : public cpu_device, public device_nvram_interface { virtual bool cpu_is_interruptible() const override { return true; } virtual u32 execute_min_cycles() const noexcept override { return 2; } virtual u32 execute_max_cycles() const noexcept override { return 12; } - virtual u32 execute_input_lines() const noexcept override { return 0; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; diff --git a/src/devices/cpu/hcd62121/hcd62121.h b/src/devices/cpu/hcd62121/hcd62121.h index 89687d16aab..44adef412a6 100644 --- a/src/devices/cpu/hcd62121/hcd62121.h +++ b/src/devices/cpu/hcd62121/hcd62121.h @@ -42,7 +42,6 @@ class hcd62121_cpu_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 4; } virtual u32 execute_max_cycles() const noexcept override { return 48; } - virtual u32 execute_input_lines() const noexcept override { return 2; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/hd61700/hd61700.h b/src/devices/cpu/hd61700/hd61700.h index 6f7ef9462ff..4ffb595f2f8 100644 --- a/src/devices/cpu/hd61700/hd61700.h +++ b/src/devices/cpu/hd61700/hd61700.h @@ -51,7 +51,6 @@ class hd61700_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 52; } - virtual uint32_t execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/hmcs40/hmcs40.h b/src/devices/cpu/hmcs40/hmcs40.h index 833b5891cd2..a08e5a2949e 100644 --- a/src/devices/cpu/hmcs40/hmcs40.h +++ b/src/devices/cpu/hmcs40/hmcs40.h @@ -114,7 +114,6 @@ class hmcs40_cpu_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 4); } // " virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 2+1; } // max 2 + interrupt - virtual u32 execute_input_lines() const noexcept override { return 3; } virtual void execute_set_input(int line, int state) override; virtual void execute_run() override; diff --git a/src/devices/cpu/hmcs400/hmcs400.cpp b/src/devices/cpu/hmcs400/hmcs400.cpp index 06a3270cfd3..5866db596c8 100644 --- a/src/devices/cpu/hmcs400/hmcs400.cpp +++ b/src/devices/cpu/hmcs400/hmcs400.cpp @@ -37,7 +37,7 @@ removed (interrupt flags are via memory-mapped I/O). // AC = high-speed // HMCS408, HMCS414, HMCS424 have a mask option for the system clock divider -// rev 2 apparently added LAW/LWA opcodes +// rev 2 apparently added LAW/LWA opcodes? // HMCS402C/CL/AC, 64 pins DP-64S or FP-64, 2Kx10 ROM, 160x4 RAM DEFINE_DEVICE_TYPE(HD614022, hd614022_device, "hd614022", "Hitachi HD614022") // C, rev 2 diff --git a/src/devices/cpu/hmcs400/hmcs400.h b/src/devices/cpu/hmcs400/hmcs400.h index f09c37734c5..15b9e34e102 100644 --- a/src/devices/cpu/hmcs400/hmcs400.h +++ b/src/devices/cpu/hmcs400/hmcs400.h @@ -44,7 +44,6 @@ class hmcs400_cpu_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * m_divider); } virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 3+2; } // max 3 + interrupt - virtual u32 execute_input_lines() const noexcept override { return 2; } //virtual void execute_set_input(int line, int state) override; virtual void execute_run() override; diff --git a/src/devices/cpu/hphybrid/hphybrid.h b/src/devices/cpu/hphybrid/hphybrid.h index 48b8e37b59c..0ab0071f267 100644 --- a/src/devices/cpu/hphybrid/hphybrid.h +++ b/src/devices/cpu/hphybrid/hphybrid.h @@ -103,7 +103,6 @@ class hp_hybrid_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return m_r_cycles; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/ht1130/ht1130.h b/src/devices/cpu/ht1130/ht1130.h index f500ef7553a..1f2f9b030b6 100644 --- a/src/devices/cpu/ht1130/ht1130.h +++ b/src/devices/cpu/ht1130/ht1130.h @@ -45,7 +45,6 @@ class ht1130_device : public cpu_device virtual void device_reset() override; virtual void execute_run() override; - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == HT1130_EXT_WAKEUP_LINE; } virtual void execute_set_input(int inputnum, int state) override; virtual u32 execute_max_cycles() const noexcept override { return 2; } diff --git a/src/devices/cpu/i386/i386.h b/src/devices/cpu/i386/i386.h index b932c75866f..e165e8e2606 100644 --- a/src/devices/cpu/i386/i386.h +++ b/src/devices/cpu/i386/i386.h @@ -52,7 +52,6 @@ class i386_device : public cpu_device, public device_vtlb_interface, public i386 // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 40; } - virtual uint32_t execute_input_lines() const noexcept override { return 32; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/i8085/i8085.h b/src/devices/cpu/i8085/i8085.h index 711f6add7ff..6b8755210c6 100644 --- a/src/devices/cpu/i8085/i8085.h +++ b/src/devices/cpu/i8085/i8085.h @@ -72,7 +72,6 @@ class i8085a_cpu_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 4; } virtual u32 execute_max_cycles() const noexcept override { return 16; } - virtual u32 execute_input_lines() const noexcept override { return 4; } virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == I8085_RST75_LINE; } virtual void execute_run() override; @@ -177,7 +176,6 @@ class i8080_cpu_device : public i8085a_cpu_device protected: i8080_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock); - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual u64 execute_clocks_to_cycles(u64 clocks) const noexcept override { return clocks; } virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return cycles; } diff --git a/src/devices/cpu/i86/i186.h b/src/devices/cpu/i86/i186.h index 9683bf8336b..72a3eb008e8 100644 --- a/src/devices/cpu/i86/i186.h +++ b/src/devices/cpu/i86/i186.h @@ -71,7 +71,6 @@ class i80186_cpu_device : public i8086_common_cpu_device virtual void execute_run() override; virtual void device_start() override; virtual void device_reset() override; - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual uint8_t fetch() override; uint32_t update_pc() { return m_pc = (m_sregs[CS] << 4) + m_ip; } diff --git a/src/devices/cpu/i86/i286.h b/src/devices/cpu/i86/i286.h index 78b1f1d6b03..383d0a6adb9 100644 --- a/src/devices/cpu/i86/i286.h +++ b/src/devices/cpu/i86/i286.h @@ -97,7 +97,6 @@ class i80286_cpu_device : public i8086_common_cpu_device virtual void state_import(const device_state_entry &entry) override; virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual void execute_set_input(int inputnum, int state) override; bool memory_translate(int spacenum, int intention, offs_t &address, address_space *&target_space) override; diff --git a/src/devices/cpu/i86/i86.h b/src/devices/cpu/i86/i86.h index 8999fb5b260..917cac19dea 100644 --- a/src/devices/cpu/i86/i86.h +++ b/src/devices/cpu/i86/i86.h @@ -359,7 +359,6 @@ class i8086_cpu_device : public i8086_common_cpu_device virtual void execute_run() override; virtual void device_start() override; - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual uint8_t fetch() override; inline address_space *sreg_to_space(int sreg) const; virtual uint8_t read_byte(uint32_t addr) override; diff --git a/src/devices/cpu/i860/i860.h b/src/devices/cpu/i860/i860.h index 3f37dda5b87..942880a3834 100644 --- a/src/devices/cpu/i860/i860.h +++ b/src/devices/cpu/i860/i860.h @@ -58,7 +58,6 @@ class i860_cpu_device : public cpu_device I860_F10, I860_F11, I860_F12, I860_F13, I860_F14, I860_F15, I860_F16, I860_F17, I860_F18, I860_F19, I860_F20, I860_F21, I860_F22, I860_F23, I860_F24, I860_F25, I860_F26, I860_F27, I860_F28, I860_F29, I860_F30, I860_F31 - }; @@ -69,7 +68,6 @@ class i860_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 8; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/i960/i960.h b/src/devices/cpu/i960/i960.h index 1efab1d328a..ca7678c9418 100644 --- a/src/devices/cpu/i960/i960.h +++ b/src/devices/cpu/i960/i960.h @@ -87,7 +87,6 @@ class i960_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } /* ???? TODO: Exact timing unknown */ virtual uint32_t execute_max_cycles() const noexcept override { return 1; } /* ???? TODO: Exact timing unknown */ - virtual uint32_t execute_input_lines() const noexcept override { return 4; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/jaguar/jaguar.h b/src/devices/cpu/jaguar/jaguar.h index 90533c3bc7c..34dff918fbe 100644 --- a/src/devices/cpu/jaguar/jaguar.h +++ b/src/devices/cpu/jaguar/jaguar.h @@ -74,7 +74,6 @@ class jaguar_cpu_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 1; } - virtual u32 execute_input_lines() const noexcept override { return 5; } virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface overrides @@ -292,7 +291,6 @@ class jaguardsp_cpu_device : public jaguar_cpu_device void io_map(address_map &map); protected: - virtual u32 execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual std::unique_ptr create_disassembler() override; diff --git a/src/devices/cpu/ks0164/ks0164.cpp b/src/devices/cpu/ks0164/ks0164.cpp index 436415f1b34..1dce547896e 100644 --- a/src/devices/cpu/ks0164/ks0164.cpp +++ b/src/devices/cpu/ks0164/ks0164.cpp @@ -58,11 +58,6 @@ uint32_t ks0164_cpu_device::execute_max_cycles() const noexcept return 5; } -uint32_t ks0164_cpu_device::execute_input_lines() const noexcept -{ - return 16; -} - void ks0164_cpu_device::execute_set_input(int inputnum, int state) { if(state) diff --git a/src/devices/cpu/ks0164/ks0164.h b/src/devices/cpu/ks0164/ks0164.h index 1df7e6f5e4b..9cf77af7274 100644 --- a/src/devices/cpu/ks0164/ks0164.h +++ b/src/devices/cpu/ks0164/ks0164.h @@ -42,7 +42,6 @@ class ks0164_cpu_device : public cpu_device virtual void device_reset() override; virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; virtual space_config_vector memory_space_config() const override; diff --git a/src/devices/cpu/lc8670/lc8670.h b/src/devices/cpu/lc8670/lc8670.h index a00658a7d4d..a6c443958bc 100644 --- a/src/devices/cpu/lc8670/lc8670.h +++ b/src/devices/cpu/lc8670/lc8670.h @@ -97,7 +97,6 @@ class lc8670_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 7; } - virtual uint32_t execute_input_lines() const noexcept override { return 4; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/lh5801/lh5801.h b/src/devices/cpu/lh5801/lh5801.h index 68c028289af..5f77658ab47 100644 --- a/src/devices/cpu/lh5801/lh5801.h +++ b/src/devices/cpu/lh5801/lh5801.h @@ -79,7 +79,6 @@ class lh5801_cpu_device : public cpu_device virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 2); } virtual uint32_t execute_min_cycles() const noexcept override { return 2; } virtual uint32_t execute_max_cycles() const noexcept override { return 19; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == LH5801_LINE_MI || inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/lr35902/lr35902.h b/src/devices/cpu/lr35902/lr35902.h index f723213137c..578e975cfce 100644 --- a/src/devices/cpu/lr35902/lr35902.h +++ b/src/devices/cpu/lr35902/lr35902.h @@ -70,7 +70,6 @@ class lr35902_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 16; } - virtual uint32_t execute_input_lines() const noexcept override { return 5; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/m37710/m37710.h b/src/devices/cpu/m37710/m37710.h index 6d09957b38a..da888632f3e 100644 --- a/src/devices/cpu/m37710/m37710.h +++ b/src/devices/cpu/m37710/m37710.h @@ -210,7 +210,6 @@ class m37710_cpu_device : public cpu_device, public m7700_disassembler::config virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 2); } virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 20; /* rough guess */ } - virtual uint32_t execute_input_lines() const noexcept override { return M37710_LINE_MAX; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/m6502/m6502.cpp b/src/devices/cpu/m6502/m6502.cpp index c704a114e5e..105ae863785 100644 --- a/src/devices/cpu/m6502/m6502.cpp +++ b/src/devices/cpu/m6502/m6502.cpp @@ -140,11 +140,6 @@ uint32_t m6502_device::execute_max_cycles() const noexcept return 10; } -uint32_t m6502_device::execute_input_lines() const noexcept -{ - return NMI_LINE+1; -} - bool m6502_device::execute_input_edge_triggered(int inputnum) const noexcept { return inputnum == NMI_LINE || inputnum == V_LINE; diff --git a/src/devices/cpu/m6502/m6502.h b/src/devices/cpu/m6502/m6502.h index 0e0864f8881..6d490e98af6 100644 --- a/src/devices/cpu/m6502/m6502.h +++ b/src/devices/cpu/m6502/m6502.h @@ -101,7 +101,6 @@ class m6502_device : public cpu_device { virtual bool cpu_is_interruptible() const override { return true; } virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; virtual bool execute_input_edge_triggered(int inputnum) const noexcept override; diff --git a/src/devices/cpu/m6800/m6800.h b/src/devices/cpu/m6800/m6800.h index 4cddbaa9e34..427db624aa7 100644 --- a/src/devices/cpu/m6800/m6800.h +++ b/src/devices/cpu/m6800/m6800.h @@ -48,7 +48,6 @@ class m6800_cpu_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 12; } - virtual u32 execute_input_lines() const noexcept override { return 2; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_one(); diff --git a/src/devices/cpu/m6800/m6801.h b/src/devices/cpu/m6800/m6801.h index 12d618856c2..e7799f4807d 100644 --- a/src/devices/cpu/m6800/m6801.h +++ b/src/devices/cpu/m6800/m6801.h @@ -83,7 +83,6 @@ class m6801_cpu_device : public m6800_cpu_device, public device_nvram_interface // device_execute_interface implementation virtual u64 execute_clocks_to_cycles(u64 clocks) const noexcept override { return (clocks + 4 - 1) / 4; } virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 4); } - virtual u32 execute_input_lines() const noexcept override { return 6; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return m6800_cpu_device::execute_input_edge_triggered(inputnum) || inputnum == M6801_STBY_LINE; } virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/m68000/m68kcommon.h b/src/devices/cpu/m68000/m68kcommon.h index 86cb0bc18e6..604cd97ad52 100644 --- a/src/devices/cpu/m68000/m68kcommon.h +++ b/src/devices/cpu/m68000/m68kcommon.h @@ -54,7 +54,6 @@ class m68000_base_device : public cpu_device void set_interrupt_mixer(bool enable) { m_interrupt_mixer = enable; } auto reset_cb() { return m_reset_cb.bind(); } - virtual u32 execute_input_lines() const noexcept override { return m_interrupt_mixer ? 8 : 3; } // number of input lines virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return m_interrupt_mixer ? inputnum == M68K_IRQ_7 : false; } virtual bool supervisor_mode() const noexcept = 0; diff --git a/src/devices/cpu/m68000/tmp68301.cpp b/src/devices/cpu/m68000/tmp68301.cpp index 5063f504138..20813bb9dbd 100644 --- a/src/devices/cpu/m68000/tmp68301.cpp +++ b/src/devices/cpu/m68000/tmp68301.cpp @@ -513,11 +513,6 @@ void tmp68301_device::ieir_w(u8 data) } -u32 tmp68301_device::execute_input_lines() const noexcept -{ - return 10; -} - void tmp68301_device::execute_set_input(int inputnum, int state) { int prev_state = (m_external_interrupt_state >> inputnum) & 1; diff --git a/src/devices/cpu/m68000/tmp68301.h b/src/devices/cpu/m68000/tmp68301.h index aa49f1674ae..2e308afa6ac 100644 --- a/src/devices/cpu/m68000/tmp68301.h +++ b/src/devices/cpu/m68000/tmp68301.h @@ -35,7 +35,6 @@ class tmp68301_device : public m68000_mcu_device void device_start() override; void device_reset() override; - u32 execute_input_lines() const noexcept override; void execute_set_input(int inputnum, int state) override; void internal_update(uint64_t current_time = 0) override; diff --git a/src/devices/cpu/m6805/m6805.cpp b/src/devices/cpu/m6805/m6805.cpp index c949cb21b23..7c93afbd254 100644 --- a/src/devices/cpu/m6805/m6805.cpp +++ b/src/devices/cpu/m6805/m6805.cpp @@ -581,17 +581,6 @@ uint32_t m6805_base_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t m6805_base_device::execute_input_lines() const noexcept -{ - return 9; -} - - /* execute instructions on this CPU until icount expires */ void m6805_base_device::execute_run() { diff --git a/src/devices/cpu/m6805/m6805.h b/src/devices/cpu/m6805/m6805.h index 99f71504c8d..1153fe87f56 100644 --- a/src/devices/cpu/m6805/m6805.h +++ b/src/devices/cpu/m6805/m6805.h @@ -132,7 +132,6 @@ class m6805_base_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override; diff --git a/src/devices/cpu/m6809/m6809.cpp b/src/devices/cpu/m6809/m6809.cpp index 83e4662a855..ec72856ec2f 100644 --- a/src/devices/cpu/m6809/m6809.cpp +++ b/src/devices/cpu/m6809/m6809.cpp @@ -451,17 +451,6 @@ uint32_t m6809_base_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t m6809_base_device::execute_input_lines() const noexcept -{ - return 3; -} - - //------------------------------------------------- // execute_set_input - act on a changed input/ // interrupt line diff --git a/src/devices/cpu/m6809/m6809.h b/src/devices/cpu/m6809/m6809.h index df9f74d1882..6a05ab16280 100644 --- a/src/devices/cpu/m6809/m6809.h +++ b/src/devices/cpu/m6809/m6809.h @@ -62,7 +62,6 @@ class m6809_base_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } diff --git a/src/devices/cpu/mb86233/mb86233.h b/src/devices/cpu/mb86233/mb86233.h index 34dac1407c0..5609de49102 100644 --- a/src/devices/cpu/mb86233/mb86233.h +++ b/src/devices/cpu/mb86233/mb86233.h @@ -75,7 +75,6 @@ class mb86233_device : public cpu_device virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 4; } virtual void execute_run() override; virtual space_config_vector memory_space_config() const override; diff --git a/src/devices/cpu/mb86235/mb86235.h b/src/devices/cpu/mb86235/mb86235.h index c859807bf56..c8a97cf452e 100644 --- a/src/devices/cpu/mb86235/mb86235.h +++ b/src/devices/cpu/mb86235/mb86235.h @@ -61,7 +61,6 @@ class mb86235_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 7; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; //virtual void execute_set_input(int inputnum, int state); diff --git a/src/devices/cpu/mb88xx/mb88xx.h b/src/devices/cpu/mb88xx/mb88xx.h index 9c21d99906e..58c3105e37c 100644 --- a/src/devices/cpu/mb88xx/mb88xx.h +++ b/src/devices/cpu/mb88xx/mb88xx.h @@ -116,7 +116,6 @@ class mb88_cpu_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 3; } - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; virtual u64 execute_clocks_to_cycles(u64 clocks) const noexcept override { return (clocks + 6 - 1) / 6; } diff --git a/src/devices/cpu/mc68hc11/mc68hc11.h b/src/devices/cpu/mc68hc11/mc68hc11.h index 75c12c1455c..6e08e2c44fc 100644 --- a/src/devices/cpu/mc68hc11/mc68hc11.h +++ b/src/devices/cpu/mc68hc11/mc68hc11.h @@ -62,7 +62,6 @@ class mc68hc11_cpu_device : public cpu_device, public device_nvram_interface // device_execute_interface implementation virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 41; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + 4 - 1) / 4; } virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 4); } virtual void execute_run() override; diff --git a/src/devices/cpu/mcs40/mcs40.cpp b/src/devices/cpu/mcs40/mcs40.cpp index e7b30082012..e46ebe6c8d4 100644 --- a/src/devices/cpu/mcs40/mcs40.cpp +++ b/src/devices/cpu/mcs40/mcs40.cpp @@ -817,11 +817,6 @@ i4004_cpu_device::i4004_cpu_device(machine_config const &mconfig, char const *ta device_execute_interface implementation ***********************************************************************/ -u32 i4004_cpu_device::execute_input_lines() const noexcept -{ - return 1U; -} - void i4004_cpu_device::execute_set_input(int inputnum, int state) { switch (inputnum) @@ -1127,11 +1122,6 @@ i4040_cpu_device::i4040_cpu_device(machine_config const &mconfig, char const *ta device_execute_interface implementation ***********************************************************************/ -u32 i4040_cpu_device::execute_input_lines() const noexcept -{ - return 3U; -} - void i4040_cpu_device::execute_set_input(int inputnum, int state) { switch (inputnum) diff --git a/src/devices/cpu/mcs40/mcs40.h b/src/devices/cpu/mcs40/mcs40.h index 9b538fd9255..5dd54020dee 100644 --- a/src/devices/cpu/mcs40/mcs40.h +++ b/src/devices/cpu/mcs40/mcs40.h @@ -259,7 +259,6 @@ class i4004_cpu_device : public mcs40_cpu_device_base using mcs40_cpu_device_base::mcs40_cpu_device_base; // device_execute_interface implementation - virtual u32 execute_input_lines() const noexcept override; virtual void execute_set_input(int inputnum, int state) override; // device_disasm_interface implementation @@ -289,7 +288,6 @@ class i4040_cpu_device : public i4004_cpu_device virtual std::unique_ptr create_disassembler() override; // device_execute_interface implementation - virtual u32 execute_input_lines() const noexcept override; virtual void execute_set_input(int inputnum, int state) override; // mcs40_cpu_device_base implementation diff --git a/src/devices/cpu/mcs48/mcs48.h b/src/devices/cpu/mcs48/mcs48.h index 136f6a1087e..b5bec683335 100644 --- a/src/devices/cpu/mcs48/mcs48.h +++ b/src/devices/cpu/mcs48/mcs48.h @@ -148,7 +148,6 @@ class mcs48_cpu_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 15); } virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 2+2; } // opcode+irq - virtual u32 execute_input_lines() const noexcept override { return 2; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/mcs51/mcs51.h b/src/devices/cpu/mcs51/mcs51.h index 8ac6effd4d3..9d8d4dc3dd9 100644 --- a/src/devices/cpu/mcs51/mcs51.h +++ b/src/devices/cpu/mcs51/mcs51.h @@ -80,7 +80,6 @@ class mcs51_cpu_device : public cpu_device virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 12); } virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 20; } - virtual uint32_t execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/mcs96/i8x9x.h b/src/devices/cpu/mcs96/i8x9x.h index 903e2c5c488..d9e0832605f 100644 --- a/src/devices/cpu/mcs96/i8x9x.h +++ b/src/devices/cpu/mcs96/i8x9x.h @@ -73,7 +73,6 @@ class i8x9x_device : public mcs96_device { virtual void device_start() override; virtual void device_reset() override; - virtual uint32_t execute_input_lines() const noexcept override { return 5; } virtual void execute_set_input(int linenum, int state) override; virtual std::unique_ptr create_disassembler() override; diff --git a/src/devices/cpu/melps4/melps4.h b/src/devices/cpu/melps4/melps4.h index 09894a1fa8e..6274dee3266 100644 --- a/src/devices/cpu/melps4/melps4.h +++ b/src/devices/cpu/melps4/melps4.h @@ -101,7 +101,6 @@ class melps4_cpu_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 6); } // " virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 1+1; } // max opcode cycles + interrupt duration - virtual u32 execute_input_lines() const noexcept override { return 3; } // up to 3 (some internal) virtual void execute_set_input(int line, int state) override; virtual void execute_run() override; virtual void execute_one(); diff --git a/src/devices/cpu/minx/minx.h b/src/devices/cpu/minx/minx.h index 991916435ee..6e7507d183f 100644 --- a/src/devices/cpu/minx/minx.h +++ b/src/devices/cpu/minx/minx.h @@ -28,7 +28,6 @@ class minx_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 4; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/mips/mips1.h b/src/devices/cpu/mips/mips1.h index c94629a7896..6baa1eb8533 100644 --- a/src/devices/cpu/mips/mips1.h +++ b/src/devices/cpu/mips/mips1.h @@ -26,7 +26,6 @@ class mips1core_device_base : public cpu_device // device_execute_interface implementation virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 40; } - virtual u32 execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/mips/mips3.h b/src/devices/cpu/mips/mips3.h index 67d74eea7fb..76d035dc64b 100644 --- a/src/devices/cpu/mips/mips3.h +++ b/src/devices/cpu/mips/mips3.h @@ -320,7 +320,6 @@ class mips3_device : public cpu_device, public device_vtlb_interface { // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 40; } - virtual uint32_t execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/mips/ps2vu.h b/src/devices/cpu/mips/ps2vu.h index cc898ffa58d..e5c7ef7009a 100644 --- a/src/devices/cpu/mips/ps2vu.h +++ b/src/devices/cpu/mips/ps2vu.h @@ -116,7 +116,6 @@ class sonyvu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override { } diff --git a/src/devices/cpu/mips/r4000.h b/src/devices/cpu/mips/r4000.h index f905e520493..503894a53f8 100644 --- a/src/devices/cpu/mips/r4000.h +++ b/src/devices/cpu/mips/r4000.h @@ -332,7 +332,6 @@ class r4000_base_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles + 1) / 2; } virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return *std::max_element(std::begin(m_hilo_cycles), std::end(m_hilo_cycles)); } - virtual u32 execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/mipsx/mipsx.h b/src/devices/cpu/mipsx/mipsx.h index 34aa61d20fd..ce189d3fcf5 100644 --- a/src/devices/cpu/mipsx/mipsx.h +++ b/src/devices/cpu/mipsx/mipsx.h @@ -17,7 +17,6 @@ class mipsx_cpu_device : public cpu_device virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 5; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual space_config_vector memory_space_config() const override; diff --git a/src/devices/cpu/mn10200/mn10200.h b/src/devices/cpu/mn10200/mn10200.h index 8ea31fa1d4b..d1131b9b909 100644 --- a/src/devices/cpu/mn10200/mn10200.h +++ b/src/devices/cpu/mn10200/mn10200.h @@ -62,7 +62,6 @@ class mn10200_device : public cpu_device virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 2); } // internal /2 divider virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 13+7; } // max opcode cycles + interrupt duration - virtual uint32_t execute_input_lines() const noexcept override { return 4; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/nanoprocessor/nanoprocessor.h b/src/devices/cpu/nanoprocessor/nanoprocessor.h index 2aa8cf3a4ab..49f63c5caca 100644 --- a/src/devices/cpu/nanoprocessor/nanoprocessor.h +++ b/src/devices/cpu/nanoprocessor/nanoprocessor.h @@ -90,7 +90,6 @@ class hp_nanoprocessor_device : public cpu_device virtual uint32_t execute_min_cycles() const noexcept override { return 2; } // 3 cycles is for int. acknowledge + 1 instruction virtual uint32_t execute_max_cycles() const noexcept override { return 3; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } // device_memory_interface overrides diff --git a/src/devices/cpu/nec/nec.h b/src/devices/cpu/nec/nec.h index af20d2f3a1a..12af9f8dc57 100644 --- a/src/devices/cpu/nec/nec.h +++ b/src/devices/cpu/nec/nec.h @@ -37,7 +37,6 @@ class nec_common_device : public cpu_device, public nec_disassembler::config // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 80; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; diff --git a/src/devices/cpu/nec/v25.h b/src/devices/cpu/nec/v25.h index 726f4557e59..6f239bb0c0a 100644 --- a/src/devices/cpu/nec/v25.h +++ b/src/devices/cpu/nec/v25.h @@ -55,7 +55,6 @@ class v25_common_device : public cpu_device, public nec_disassembler::config virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return cycles * m_PCK; } virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 80; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI || (inputnum >= NEC_INPUT_LINE_INTP0 && inputnum <= NEC_INPUT_LINE_INTP2); } virtual void execute_run() override; diff --git a/src/devices/cpu/ns32000/ns32000.h b/src/devices/cpu/ns32000/ns32000.h index cc713c26a72..99cd956fc40 100644 --- a/src/devices/cpu/ns32000/ns32000.h +++ b/src/devices/cpu/ns32000/ns32000.h @@ -27,7 +27,6 @@ class ns32000_device : public cpu_device // device_execute_interface implementation virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 6; } - virtual u32 execute_input_lines() const noexcept override { return 2; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } diff --git a/src/devices/cpu/nuon/nuon.h b/src/devices/cpu/nuon/nuon.h index f3a7311e985..c446fad2a76 100644 --- a/src/devices/cpu/nuon/nuon.h +++ b/src/devices/cpu/nuon/nuon.h @@ -30,7 +30,6 @@ class nuon_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/palm/palm.h b/src/devices/cpu/palm/palm.h index af19bd3f1de..a0b474ce479 100644 --- a/src/devices/cpu/palm/palm.h +++ b/src/devices/cpu/palm/palm.h @@ -34,7 +34,6 @@ class palm_device : public cpu_device // device_execute_interface implementation virtual u32 execute_min_cycles() const noexcept override { return 17; } virtual u32 execute_max_cycles() const noexcept override { return 54; } - virtual u32 execute_input_lines() const noexcept override { return 3; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/pdp1/pdp1.h b/src/devices/cpu/pdp1/pdp1.h index f1a4e934236..cbe0d5d8181 100644 --- a/src/devices/cpu/pdp1/pdp1.h +++ b/src/devices/cpu/pdp1/pdp1.h @@ -93,7 +93,6 @@ class pdp1_device : public cpu_device, public pdp1_reset_param_t // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 5; } virtual uint32_t execute_max_cycles() const noexcept override { return 31; } - virtual uint32_t execute_input_lines() const noexcept override { return 16; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/pdp8/pdp8.cpp b/src/devices/cpu/pdp8/pdp8.cpp index 31086b3fb48..7e30766bf90 100644 --- a/src/devices/cpu/pdp8/pdp8.cpp +++ b/src/devices/cpu/pdp8/pdp8.cpp @@ -180,17 +180,6 @@ uint32_t pdp8_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t pdp8_device::execute_input_lines() const noexcept -{ - return 0; // TODO -} - - //------------------------------------------------- // execute_set_input - set the state of an input // line during execution diff --git a/src/devices/cpu/pdp8/pdp8.h b/src/devices/cpu/pdp8/pdp8.h index ef6c4af95ae..98bc1fe4ed1 100644 --- a/src/devices/cpu/pdp8/pdp8.h +++ b/src/devices/cpu/pdp8/pdp8.h @@ -32,7 +32,6 @@ class pdp8_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/pic16c5x/pic16c5x.h b/src/devices/cpu/pic16c5x/pic16c5x.h index e7a294df593..d78c2db9738 100644 --- a/src/devices/cpu/pic16c5x/pic16c5x.h +++ b/src/devices/cpu/pic16c5x/pic16c5x.h @@ -101,7 +101,6 @@ class pic16c5x_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 4); } virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 2; } - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == PIC16C5x_RTCC; } virtual void execute_run() override; virtual void execute_set_input(int line, int state) override; diff --git a/src/devices/cpu/pic16c62x/pic16c62x.h b/src/devices/cpu/pic16c62x/pic16c62x.h index 5465743b52d..73692cb105d 100644 --- a/src/devices/cpu/pic16c62x/pic16c62x.h +++ b/src/devices/cpu/pic16c62x/pic16c62x.h @@ -75,7 +75,6 @@ class pic16c62x_device : public cpu_device virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 4); } virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 2; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/pic16x8x/pic16x8x.h b/src/devices/cpu/pic16x8x/pic16x8x.h index 89c0d500227..0cd71ba978c 100644 --- a/src/devices/cpu/pic16x8x/pic16x8x.h +++ b/src/devices/cpu/pic16x8x/pic16x8x.h @@ -81,7 +81,6 @@ class pic16x8x_device : public cpu_device, public device_nvram_interface virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 4); } virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 2; } - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == PIC16x8x_T0CKI; } virtual void execute_run() override; virtual void execute_set_input(int line, int state) override; diff --git a/src/devices/cpu/pic17/pic17c4x.h b/src/devices/cpu/pic17/pic17c4x.h index fd48f2aa49a..406244b6ee4 100644 --- a/src/devices/cpu/pic17/pic17c4x.h +++ b/src/devices/cpu/pic17/pic17c4x.h @@ -82,7 +82,6 @@ class pic17c4x_device : public pic17_cpu_device virtual void device_reset() override; // device_execute_interface implementation - virtual u32 execute_input_lines() const noexcept override { return 6; } // for now virtual bool execute_input_edge_triggered(int linenum) const noexcept override { return linenum == INT_LINE || linenum == T0CKI_LINE; } virtual void execute_set_input(int linenum, int state) override; diff --git a/src/devices/cpu/powerpc/ppc.h b/src/devices/cpu/powerpc/ppc.h index caf3e2b3862..f5a5d8ca7df 100644 --- a/src/devices/cpu/powerpc/ppc.h +++ b/src/devices/cpu/powerpc/ppc.h @@ -257,7 +257,6 @@ class ppc_device : public cpu_device, public device_vtlb_interface // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 40; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; @@ -693,9 +692,6 @@ class ppc_device : public cpu_device, public device_vtlb_interface //{ //public: // ppc403_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -// -//protected: -// virtual uint32_t execute_input_lines() const noexcept { return 8; } //}; // // @@ -703,9 +699,6 @@ class ppc_device : public cpu_device, public device_vtlb_interface //{ //public: // ppc405_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); -// -//protected: -// virtual uint32_t execute_input_lines() const noexcept { return 8; } //}; @@ -787,7 +780,6 @@ class ppc4xx_device : public ppc_device protected: ppc4xx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, powerpc_flavor flavor, uint32_t cap, uint32_t tb_divisor); - virtual uint32_t execute_input_lines() const noexcept override { return 5; } virtual void execute_set_input(int inputnum, int state) override; }; diff --git a/src/devices/cpu/pps4/pps4.h b/src/devices/cpu/pps4/pps4.h index 4b9b82f37c0..38fa3d5cd77 100644 --- a/src/devices/cpu/pps4/pps4.h +++ b/src/devices/cpu/pps4/pps4.h @@ -59,7 +59,6 @@ class pps4_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 3; } - virtual u32 execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/pps41/pps41base.h b/src/devices/cpu/pps41/pps41base.h index 2d962b5a5d3..f024280a234 100644 --- a/src/devices/cpu/pps41/pps41base.h +++ b/src/devices/cpu/pps41/pps41base.h @@ -67,7 +67,6 @@ class pps41_base_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 4); } virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 2; } - virtual u32 execute_input_lines() const noexcept override { return 2; } virtual void execute_set_input(int line, int state) override; virtual void execute_run() override; virtual void execute_one() = 0; diff --git a/src/devices/cpu/psx/psx.h b/src/devices/cpu/psx/psx.h index f2ce1ed59d3..30bb90d85ff 100644 --- a/src/devices/cpu/psx/psx.h +++ b/src/devices/cpu/psx/psx.h @@ -178,7 +178,6 @@ class psxcpu_device : public cpu_device, psxcpu_disassembler::config // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 40; } - virtual uint32_t execute_input_lines() const noexcept override { return 6; } virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return ( clocks + 3 ) / 4; } virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return cycles * 4; } virtual void execute_run() override; diff --git a/src/devices/cpu/romp/romp.h b/src/devices/cpu/romp/romp.h index 0f1f848327c..556de7e6e95 100644 --- a/src/devices/cpu/romp/romp.h +++ b/src/devices/cpu/romp/romp.h @@ -113,7 +113,6 @@ class romp_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 40; } - virtual u32 execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/rsp/rsp.h b/src/devices/cpu/rsp/rsp.h index 3bbb95ca348..c19784ed03d 100644 --- a/src/devices/cpu/rsp/rsp.h +++ b/src/devices/cpu/rsp/rsp.h @@ -102,7 +102,6 @@ class rsp_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override { } diff --git a/src/devices/cpu/s2650/s2650.h b/src/devices/cpu/s2650/s2650.h index 008ea0bb31f..c17287b5380 100644 --- a/src/devices/cpu/s2650/s2650.h +++ b/src/devices/cpu/s2650/s2650.h @@ -44,7 +44,6 @@ class s2650_device : public cpu_device, public s2650_disassembler::config // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 5; } virtual uint32_t execute_max_cycles() const noexcept override { return 13; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/saturn/saturn.h b/src/devices/cpu/saturn/saturn.h index 5111de6d7ed..f40d3eb7237 100644 --- a/src/devices/cpu/saturn/saturn.h +++ b/src/devices/cpu/saturn/saturn.h @@ -86,7 +86,6 @@ class saturn_device : public cpu_device, public saturn_disassembler::config // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 2; } virtual uint32_t execute_max_cycles() const noexcept override { return 21; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/sc61860/sc61860.h b/src/devices/cpu/sc61860/sc61860.h index df019b6b845..ab0e83c1bec 100644 --- a/src/devices/cpu/sc61860/sc61860.h +++ b/src/devices/cpu/sc61860/sc61860.h @@ -74,7 +74,6 @@ class sc61860_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 2; } virtual uint32_t execute_max_cycles() const noexcept override { return 4; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/scmp/scmp.h b/src/devices/cpu/scmp/scmp.h index 9928bf57290..bfa52a56e9d 100644 --- a/src/devices/cpu/scmp/scmp.h +++ b/src/devices/cpu/scmp/scmp.h @@ -35,7 +35,6 @@ class scmp_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 5; } virtual uint32_t execute_max_cycles() const noexcept override { return 23+8; } // max opcode + interrupt - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/score/score.h b/src/devices/cpu/score/score.h index badf1b2b0d8..887d3ad68cb 100644 --- a/src/devices/cpu/score/score.h +++ b/src/devices/cpu/score/score.h @@ -43,7 +43,6 @@ class score7_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 64; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/scudsp/scudsp.h b/src/devices/cpu/scudsp/scudsp.h index eba4ed5903c..19e2a079c4f 100644 --- a/src/devices/cpu/scudsp/scudsp.h +++ b/src/devices/cpu/scudsp/scudsp.h @@ -69,7 +69,6 @@ class scudsp_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 7; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/se3208/se3208.h b/src/devices/cpu/se3208/se3208.h index 0e6608540c3..dff3ca9888c 100644 --- a/src/devices/cpu/se3208/se3208.h +++ b/src/devices/cpu/se3208/se3208.h @@ -32,7 +32,6 @@ class se3208_device : public cpu_device // device_execute_interface implementation virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/sh/sh2.h b/src/devices/cpu/sh/sh2.h index a75f1c53f92..a552318df46 100644 --- a/src/devices/cpu/sh/sh2.h +++ b/src/devices/cpu/sh/sh2.h @@ -42,7 +42,6 @@ class sh2_device : public sh_common_execution // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 4; } - virtual uint32_t execute_input_lines() const noexcept override { return 16; } virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; diff --git a/src/devices/cpu/sh/sh4.h b/src/devices/cpu/sh/sh4.h index e344a42385e..ef745d85add 100644 --- a/src/devices/cpu/sh/sh4.h +++ b/src/devices/cpu/sh/sh4.h @@ -263,7 +263,6 @@ class sh34_base_device : public sh_common_execution // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 4; } - virtual uint32_t execute_input_lines() const noexcept override { return 5; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } diff --git a/src/devices/cpu/sharc/sharc.h b/src/devices/cpu/sharc/sharc.h index c9c008effdb..eafbd7fe74f 100644 --- a/src/devices/cpu/sharc/sharc.h +++ b/src/devices/cpu/sharc/sharc.h @@ -210,7 +210,6 @@ class adsp21062_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 8; } virtual uint32_t execute_max_cycles() const noexcept override { return 8; } - virtual uint32_t execute_input_lines() const noexcept override { return 32; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/sm510/sm510base.h b/src/devices/cpu/sm510/sm510base.h index 1e3aa5c9795..139f5cdb79c 100644 --- a/src/devices/cpu/sm510/sm510base.h +++ b/src/devices/cpu/sm510/sm510base.h @@ -78,7 +78,6 @@ class sm510_base_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * m_clk_div); } // " virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 3+1; } - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual void execute_set_input(int line, int state) override; virtual void execute_run() override; diff --git a/src/devices/cpu/sm8500/sm8500.h b/src/devices/cpu/sm8500/sm8500.h index 5e93029c030..936bb42a599 100644 --- a/src/devices/cpu/sm8500/sm8500.h +++ b/src/devices/cpu/sm8500/sm8500.h @@ -57,7 +57,6 @@ class sm8500_cpu_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 16; } - virtual uint32_t execute_input_lines() const noexcept override { return 11; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/sparc/sparc.cpp b/src/devices/cpu/sparc/sparc.cpp index 8717d56e22e..721d77b3b77 100644 --- a/src/devices/cpu/sparc/sparc.cpp +++ b/src/devices/cpu/sparc/sparc.cpp @@ -1210,17 +1210,6 @@ uint32_t sparc_base_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t sparc_base_device::execute_input_lines() const noexcept -{ - return 16; -} - - //------------------------------------------------- // execute_set_input - set the state of an input // line during execution diff --git a/src/devices/cpu/sparc/sparc.h b/src/devices/cpu/sparc/sparc.h index 5a3e1bd4c2d..821da8e9fb1 100644 --- a/src/devices/cpu/sparc/sparc.h +++ b/src/devices/cpu/sparc/sparc.h @@ -34,7 +34,6 @@ class sparc_base_device : public cpu_device, public sparc_mmu_host_interface, pr // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/spc700/spc700.h b/src/devices/cpu/spc700/spc700.h index 33e3190ac10..b43c6dd71f2 100644 --- a/src/devices/cpu/spc700/spc700.h +++ b/src/devices/cpu/spc700/spc700.h @@ -23,7 +23,6 @@ class spc700_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 2; } virtual uint32_t execute_max_cycles() const noexcept override { return 8; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/ssem/ssem.cpp b/src/devices/cpu/ssem/ssem.cpp index 77bc62edb14..6e80840c8dc 100644 --- a/src/devices/cpu/ssem/ssem.cpp +++ b/src/devices/cpu/ssem/ssem.cpp @@ -194,17 +194,6 @@ uint32_t ssem_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t ssem_device::execute_input_lines() const noexcept -{ - return 0; -} - - //------------------------------------------------- // execute_set_input - set the state of an input // line during execution diff --git a/src/devices/cpu/ssem/ssem.h b/src/devices/cpu/ssem/ssem.h index 7cfe5d17435..06180551468 100644 --- a/src/devices/cpu/ssem/ssem.h +++ b/src/devices/cpu/ssem/ssem.h @@ -33,7 +33,6 @@ class ssem_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/ssp1601/ssp1601.h b/src/devices/cpu/ssp1601/ssp1601.h index e912ff9891b..673b0eb0f55 100644 --- a/src/devices/cpu/ssp1601/ssp1601.h +++ b/src/devices/cpu/ssp1601/ssp1601.h @@ -32,7 +32,6 @@ class ssp1601_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 4; } - virtual uint32_t execute_input_lines() const noexcept override { return 3; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/st62xx/st62xx.cpp b/src/devices/cpu/st62xx/st62xx.cpp index 7b47c087dfd..d1cebf0e5ae 100644 --- a/src/devices/cpu/st62xx/st62xx.cpp +++ b/src/devices/cpu/st62xx/st62xx.cpp @@ -495,11 +495,6 @@ uint32_t st6228_device::execute_max_cycles() const noexcept return 5; } -uint32_t st6228_device::execute_input_lines() const noexcept -{ - return 0; -} - void st6228_device::execute_set_input(int inputnum, int state) { logerror("%s: Unimplemented: execute_set_input line %d = %d\n", machine().describe_context(), inputnum, state); diff --git a/src/devices/cpu/st62xx/st62xx.h b/src/devices/cpu/st62xx/st62xx.h index 30f17b5c155..0cb3e36ea42 100644 --- a/src/devices/cpu/st62xx/st62xx.h +++ b/src/devices/cpu/st62xx/st62xx.h @@ -95,7 +95,6 @@ class st6228_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/superfx/superfx.h b/src/devices/cpu/superfx/superfx.h index 54f07ec184f..9cbe9adf353 100644 --- a/src/devices/cpu/superfx/superfx.h +++ b/src/devices/cpu/superfx/superfx.h @@ -112,7 +112,6 @@ class superfx_device : public cpu_device, public superfx_disassembler::config virtual void device_reset() override; // device_execute_interface overrides - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/t11/t11.h b/src/devices/cpu/t11/t11.h index 2cfc843d01a..431da089b8f 100644 --- a/src/devices/cpu/t11/t11.h +++ b/src/devices/cpu/t11/t11.h @@ -95,7 +95,6 @@ class t11_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 12; } virtual uint32_t execute_max_cycles() const noexcept override { return 114; } - virtual uint32_t execute_input_lines() const noexcept override { return 8; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == PF_LINE || inputnum == HLT_LINE || inputnum == BUS_ERROR; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/tlcs870/tlcs870.h b/src/devices/cpu/tlcs870/tlcs870.h index b6c3d73478d..189fec2f90f 100644 --- a/src/devices/cpu/tlcs870/tlcs870.h +++ b/src/devices/cpu/tlcs870/tlcs870.h @@ -51,7 +51,6 @@ class tlcs870_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 2; } virtual uint32_t execute_max_cycles() const noexcept override { return 26; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/tlcs90/tlcs90.h b/src/devices/cpu/tlcs90/tlcs90.h index d42eb719255..6535ebf81f1 100644 --- a/src/devices/cpu/tlcs90/tlcs90.h +++ b/src/devices/cpu/tlcs90/tlcs90.h @@ -44,7 +44,6 @@ class tlcs90_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 2; } virtual uint32_t execute_max_cycles() const noexcept override { return 26; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/tlcs900/tlcs900.h b/src/devices/cpu/tlcs900/tlcs900.h index a700735e4be..f2cfa8d3723 100644 --- a/src/devices/cpu/tlcs900/tlcs900.h +++ b/src/devices/cpu/tlcs900/tlcs900.h @@ -57,7 +57,6 @@ class tlcs900_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } /* FIXME */ virtual uint32_t execute_max_cycles() const noexcept override { return 1; } /* FIXME */ - virtual uint32_t execute_input_lines() const noexcept override { return 6; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; diff --git a/src/devices/cpu/tms1000/smc1102.h b/src/devices/cpu/tms1000/smc1102.h index 648d637544d..585b70a12b0 100644 --- a/src/devices/cpu/tms1000/smc1102.h +++ b/src/devices/cpu/tms1000/smc1102.h @@ -56,7 +56,6 @@ class smc1102_cpu_device : public tms1100_cpu_device virtual void device_reset() override; virtual void device_add_mconfig(machine_config &config) override { } - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual void execute_set_input(int line, int state) override; virtual std::unique_ptr create_disassembler() override; diff --git a/src/devices/cpu/tms1000/tms2100.h b/src/devices/cpu/tms1000/tms2100.h index c72edc4952f..9cf2c9eb61d 100644 --- a/src/devices/cpu/tms1000/tms2100.h +++ b/src/devices/cpu/tms1000/tms2100.h @@ -80,7 +80,6 @@ class tms2100_cpu_device : public tms1100_cpu_device virtual void device_add_mconfig(machine_config &config) override; virtual void device_clock_changed() override { reset_prescaler(); } - virtual u32 execute_input_lines() const noexcept override { return 2; } virtual void execute_set_input(int line, int state) override; virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == TMS2100_INPUT_LINE_INT || inputnum == TMS2100_INPUT_LINE_EC1; } diff --git a/src/devices/cpu/tms32010/tms32010.h b/src/devices/cpu/tms32010/tms32010.h index a4287f5b274..7eb7a435349 100644 --- a/src/devices/cpu/tms32010/tms32010.h +++ b/src/devices/cpu/tms32010/tms32010.h @@ -45,7 +45,6 @@ class tms3201x_base_device : public cpu_device // device_execute_interface implementation virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 3; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + 4 - 1) / 4; } diff --git a/src/devices/cpu/tms32025/tms32025.h b/src/devices/cpu/tms32025/tms32025.h index 56ed8fd57b9..1aa602a838f 100644 --- a/src/devices/cpu/tms32025/tms32025.h +++ b/src/devices/cpu/tms32025/tms32025.h @@ -84,7 +84,6 @@ class tms3202x_device : public cpu_device // device_execute_interface implementation virtual uint32_t execute_min_cycles() const noexcept override { return 4; } virtual uint32_t execute_max_cycles() const noexcept override { return 20; } - virtual uint32_t execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/tms32031/tms32031.cpp b/src/devices/cpu/tms32031/tms32031.cpp index dd318f7debf..8711c46ea18 100644 --- a/src/devices/cpu/tms32031/tms32031.cpp +++ b/src/devices/cpu/tms32031/tms32031.cpp @@ -854,17 +854,6 @@ uint32_t tms3203x_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t tms3203x_device::execute_input_lines() const noexcept -{ - return 14; -} - - //------------------------------------------------- // execute_clocks_to_cycles - convert the raw // clock into cycles per second diff --git a/src/devices/cpu/tms32031/tms32031.h b/src/devices/cpu/tms32031/tms32031.h index 975a8d1cb32..39852736baf 100644 --- a/src/devices/cpu/tms32031/tms32031.h +++ b/src/devices/cpu/tms32031/tms32031.h @@ -155,7 +155,6 @@ class tms3203x_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override; virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override; virtual void execute_run() override; diff --git a/src/devices/cpu/tms32051/tms32051.h b/src/devices/cpu/tms32051/tms32051.h index 63552d7e605..b1088011ef9 100644 --- a/src/devices/cpu/tms32051/tms32051.h +++ b/src/devices/cpu/tms32051/tms32051.h @@ -74,7 +74,6 @@ class tms32051_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 5; } - virtual uint32_t execute_input_lines() const noexcept override { return 6; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/tms32082/tms32082.h b/src/devices/cpu/tms32082/tms32082.h index 415ce95d564..a02ffadf6aa 100644 --- a/src/devices/cpu/tms32082/tms32082.h +++ b/src/devices/cpu/tms32082/tms32082.h @@ -82,7 +82,6 @@ class tms32082_mp_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; @@ -173,7 +172,6 @@ class tms32082_pp_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; // device_memory_interface overrides diff --git a/src/devices/cpu/tms34010/tms34010.h b/src/devices/cpu/tms34010/tms34010.h index b9165b17f77..672aada9ee3 100644 --- a/src/devices/cpu/tms34010/tms34010.h +++ b/src/devices/cpu/tms34010/tms34010.h @@ -262,7 +262,6 @@ class tms340x0_device : public cpu_device, // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 10000; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/tms57002/tms57002.cpp b/src/devices/cpu/tms57002/tms57002.cpp index f93ca5796bf..4adeed1cf85 100644 --- a/src/devices/cpu/tms57002/tms57002.cpp +++ b/src/devices/cpu/tms57002/tms57002.cpp @@ -1023,11 +1023,6 @@ u32 tms57002_device::execute_max_cycles() const noexcept return 3; } -u32 tms57002_device::execute_input_lines() const noexcept -{ - return 0; -} - device_memory_interface::space_config_vector tms57002_device::memory_space_config() const { return space_config_vector { diff --git a/src/devices/cpu/tms57002/tms57002.h b/src/devices/cpu/tms57002/tms57002.h index dd0967e72a8..d991a5283c7 100644 --- a/src/devices/cpu/tms57002/tms57002.h +++ b/src/devices/cpu/tms57002/tms57002.h @@ -40,7 +40,6 @@ class tms57002_device : public cpu_device, public device_sound_interface virtual space_config_vector memory_space_config() const override; virtual u32 execute_min_cycles() const noexcept override; virtual u32 execute_max_cycles() const noexcept override; - virtual u32 execute_input_lines() const noexcept override; virtual void execute_run() override; virtual std::unique_ptr create_disassembler() override; diff --git a/src/devices/cpu/tms7000/tms7000.h b/src/devices/cpu/tms7000/tms7000.h index 3c39ed217b6..54826965f2c 100644 --- a/src/devices/cpu/tms7000/tms7000.h +++ b/src/devices/cpu/tms7000/tms7000.h @@ -86,7 +86,6 @@ class tms7000_device : public cpu_device virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * m_divider); } virtual uint32_t execute_min_cycles() const noexcept override { return 5; } virtual uint32_t execute_max_cycles() const noexcept override { return 49; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual void execute_run() override; virtual void execute_set_input(int extline, int state) override; diff --git a/src/devices/cpu/tms9900/ti990_10.cpp b/src/devices/cpu/tms9900/ti990_10.cpp index 99cf65dfb0b..b31849737d4 100644 --- a/src/devices/cpu/tms9900/ti990_10.cpp +++ b/src/devices/cpu/tms9900/ti990_10.cpp @@ -118,11 +118,6 @@ uint32_t ti990_10_device::execute_max_cycles() const noexcept return 10; } -uint32_t ti990_10_device::execute_input_lines() const noexcept -{ - return 2; -} - // TODO: check 9900dasm std::unique_ptr ti990_10_device::create_disassembler() { diff --git a/src/devices/cpu/tms9900/ti990_10.h b/src/devices/cpu/tms9900/ti990_10.h index 93d3ecec4a0..428e27dfde6 100644 --- a/src/devices/cpu/tms9900/ti990_10.h +++ b/src/devices/cpu/tms9900/ti990_10.h @@ -26,9 +26,8 @@ class ti990_10_device : public cpu_device void device_reset() override; // device_execute_interface overrides - uint32_t execute_min_cycles() const noexcept override; - uint32_t execute_max_cycles() const noexcept override; - uint32_t execute_input_lines() const noexcept override; + uint32_t execute_min_cycles() const noexcept override; + uint32_t execute_max_cycles() const noexcept override; void execute_set_input(int irqline, int state) override; void execute_run() override; diff --git a/src/devices/cpu/tms9900/tms9900.cpp b/src/devices/cpu/tms9900/tms9900.cpp index 2f5c2d413d3..cac2f42845b 100644 --- a/src/devices/cpu/tms9900/tms9900.cpp +++ b/src/devices/cpu/tms9900/tms9900.cpp @@ -2771,11 +2771,6 @@ uint32_t tms99xx_device::execute_max_cycles() const noexcept return 124; } -uint32_t tms99xx_device::execute_input_lines() const noexcept -{ - return 2; -} - // clocks to cycles, cycles to clocks = id // execute_default_irq_vector = 0 // execute_burn = nop diff --git a/src/devices/cpu/tms9900/tms9900.h b/src/devices/cpu/tms9900/tms9900.h index 67e6fd034c1..c67ed48999f 100644 --- a/src/devices/cpu/tms9900/tms9900.h +++ b/src/devices/cpu/tms9900/tms9900.h @@ -74,7 +74,6 @@ class tms99xx_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_set_input(int irqline, int state) override; virtual void execute_run() override; diff --git a/src/devices/cpu/tms9900/tms9980a.cpp b/src/devices/cpu/tms9900/tms9980a.cpp index a57bb4d3639..fc83e0b3c7b 100644 --- a/src/devices/cpu/tms9900/tms9980a.cpp +++ b/src/devices/cpu/tms9900/tms9980a.cpp @@ -283,11 +283,6 @@ uint32_t tms9980a_device::execute_max_cycles() const noexcept return 136; } -uint32_t tms9980a_device::execute_input_lines() const noexcept -{ - return 8; -} - // clocks to cycles, cycles to clocks = id // execute_default_irq_vector = 0 // execute_burn = nop diff --git a/src/devices/cpu/tms9900/tms9980a.h b/src/devices/cpu/tms9900/tms9980a.h index c93212e6a4c..4219c14f819 100644 --- a/src/devices/cpu/tms9900/tms9980a.h +++ b/src/devices/cpu/tms9900/tms9980a.h @@ -40,7 +40,6 @@ class tms9980a_device : public tms99xx_device uint32_t execute_min_cycles() const noexcept override; uint32_t execute_max_cycles() const noexcept override; - uint32_t execute_input_lines() const noexcept override; void execute_set_input(int irqline, int state) override; // The clock is internally divided by 4 diff --git a/src/devices/cpu/tms9900/tms9995.cpp b/src/devices/cpu/tms9900/tms9995.cpp index 905357dc597..7f721c25197 100644 --- a/src/devices/cpu/tms9900/tms9995.cpp +++ b/src/devices/cpu/tms9900/tms9995.cpp @@ -3512,11 +3512,6 @@ uint32_t tms9995_device::execute_max_cycles() const noexcept return 47; } -uint32_t tms9995_device::execute_input_lines() const noexcept -{ - return 2; -} - std::unique_ptr tms9995_device::create_disassembler() { return std::make_unique(TMS9995_ID); diff --git a/src/devices/cpu/tms9900/tms9995.h b/src/devices/cpu/tms9900/tms9995.h index 13f16ffafff..4e0689e406f 100644 --- a/src/devices/cpu/tms9900/tms9995.h +++ b/src/devices/cpu/tms9900/tms9995.h @@ -68,7 +68,6 @@ class tms9995_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_set_input(int irqline, int state) override; virtual void execute_run() override; diff --git a/src/devices/cpu/ucom4/ucom4.h b/src/devices/cpu/ucom4/ucom4.h index 29b766b5cd4..adadec64ddc 100644 --- a/src/devices/cpu/ucom4/ucom4.h +++ b/src/devices/cpu/ucom4/ucom4.h @@ -92,7 +92,6 @@ class ucom4_cpu_device : public cpu_device virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 4); } // " virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 2+1; } // max 2 + interrupt - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual void execute_set_input(int line, int state) override; virtual void execute_run() override; diff --git a/src/devices/cpu/unsp/unsp.h b/src/devices/cpu/unsp/unsp.h index 010720adeec..9be731e556f 100644 --- a/src/devices/cpu/unsp/unsp.h +++ b/src/devices/cpu/unsp/unsp.h @@ -131,7 +131,6 @@ class unsp_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 5; } virtual uint32_t execute_max_cycles() const noexcept override { return 5; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/upd7725/upd7725.cpp b/src/devices/cpu/upd7725/upd7725.cpp index c8d079cc84c..817c205ce6e 100644 --- a/src/devices/cpu/upd7725/upd7725.cpp +++ b/src/devices/cpu/upd7725/upd7725.cpp @@ -268,17 +268,6 @@ uint32_t necdsp_device::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the number of -// input/interrupt lines -//------------------------------------------------- - -uint32_t necdsp_device::execute_input_lines() const noexcept -{ - return 3; // TODO: there should be 11: INT, SCK, /SIEN, /SOEN, SI, and /DACK, plus SO, /SORQ and DRQ; for now, just INT, P0, and P1 are enough. -} - - //------------------------------------------------- // execute_set_input - //------------------------------------------------- diff --git a/src/devices/cpu/upd7725/upd7725.h b/src/devices/cpu/upd7725/upd7725.h index e1f7703c369..c3049220b40 100644 --- a/src/devices/cpu/upd7725/upd7725.h +++ b/src/devices/cpu/upd7725/upd7725.h @@ -50,7 +50,6 @@ class necdsp_device : public cpu_device // device_execute_interface implementation virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/upd7810/upd7810.h b/src/devices/cpu/upd7810/upd7810.h index 294c38fa102..a71d5087017 100644 --- a/src/devices/cpu/upd7810/upd7810.h +++ b/src/devices/cpu/upd7810/upd7810.h @@ -144,7 +144,6 @@ class upd7810_device : public cpu_device virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 3); } virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 40; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return true; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/v30mz/v30mz.h b/src/devices/cpu/v30mz/v30mz.h index f194fba269c..cdfa6ae7539 100644 --- a/src/devices/cpu/v30mz/v30mz.h +++ b/src/devices/cpu/v30mz/v30mz.h @@ -35,7 +35,6 @@ class v30mz_cpu_device : public cpu_device, public nec_disassembler::config // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 80; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/v60/v60.h b/src/devices/cpu/v60/v60.h index d617ec1bd56..3e44568e218 100644 --- a/src/devices/cpu/v60/v60.h +++ b/src/devices/cpu/v60/v60.h @@ -98,7 +98,6 @@ class v60_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } - virtual uint32_t execute_input_lines() const noexcept override { return 1; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/v810/v810.h b/src/devices/cpu/v810/v810.h index 4a56ecf9fb1..4451b998119 100644 --- a/src/devices/cpu/v810/v810.h +++ b/src/devices/cpu/v810/v810.h @@ -93,7 +93,6 @@ class v810_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 3; } virtual uint32_t execute_max_cycles() const noexcept override { return 6; } - virtual uint32_t execute_input_lines() const noexcept override { return 16; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/xa/xa.h b/src/devices/cpu/xa/xa.h index 3fbf7a3cb92..71b239a404d 100644 --- a/src/devices/cpu/xa/xa.h +++ b/src/devices/cpu/xa/xa.h @@ -60,7 +60,6 @@ class xa_cpu : public cpu_device virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 5; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; diff --git a/src/devices/cpu/xavix2/xavix2.cpp b/src/devices/cpu/xavix2/xavix2.cpp index 04e94af800e..558e7404ffa 100644 --- a/src/devices/cpu/xavix2/xavix2.cpp +++ b/src/devices/cpu/xavix2/xavix2.cpp @@ -136,11 +136,6 @@ uint32_t xavix2_device::execute_max_cycles() const noexcept return 5; } -uint32_t xavix2_device::execute_input_lines() const noexcept -{ - return 1; -} - u32 xavix2_device::check_interrupt(u32 cpc) { if(m_int_line && ((m_hr[4] & F_I) || m_wait)) { diff --git a/src/devices/cpu/xavix2/xavix2.h b/src/devices/cpu/xavix2/xavix2.h index 30e9ec5faea..12d74c78e2e 100644 --- a/src/devices/cpu/xavix2/xavix2.h +++ b/src/devices/cpu/xavix2/xavix2.h @@ -31,7 +31,6 @@ class xavix2_device : public cpu_device virtual void device_reset() override; virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; virtual space_config_vector memory_space_config() const override; diff --git a/src/devices/cpu/z180/z180.h b/src/devices/cpu/z180/z180.h index 69b1b979d69..5ccb2073c54 100644 --- a/src/devices/cpu/z180/z180.h +++ b/src/devices/cpu/z180/z180.h @@ -144,7 +144,6 @@ class z180_device : public cpu_device, public z80_daisy_chain_interface virtual uint32_t execute_max_cycles() const noexcept override { return 16; } virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + 2 - 1) / 2; } virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 2); } - virtual uint32_t execute_input_lines() const noexcept override { return 5; } virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; diff --git a/src/devices/cpu/z8/z8.h b/src/devices/cpu/z8/z8.h index c092cfd4066..1074801c557 100644 --- a/src/devices/cpu/z8/z8.h +++ b/src/devices/cpu/z8/z8.h @@ -48,7 +48,6 @@ class z8_device : public cpu_device // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 6; } virtual uint32_t execute_max_cycles() const noexcept override { return 27; } - virtual uint32_t execute_input_lines() const noexcept override { return 4; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return true; } virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + 2 - 1) / 2; } virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 2); } diff --git a/src/devices/cpu/z80/nsc800.h b/src/devices/cpu/z80/nsc800.h index c7ccd3c90b8..c37179fa700 100644 --- a/src/devices/cpu/z80/nsc800.h +++ b/src/devices/cpu/z80/nsc800.h @@ -26,7 +26,6 @@ class nsc800_device : public z80_device virtual void device_reset() override ATTR_COLD; // device_execute_interface implementation - virtual u32 execute_input_lines() const noexcept override { return 7; } virtual void execute_set_input(int inputnum, int state) override; virtual void do_op() override; diff --git a/src/devices/cpu/z80/z80.h b/src/devices/cpu/z80/z80.h index addab5979b5..cffcfb21917 100644 --- a/src/devices/cpu/z80/z80.h +++ b/src/devices/cpu/z80/z80.h @@ -55,7 +55,6 @@ class z80_device : public cpu_device, public z80_daisy_chain_interface virtual bool cpu_is_interruptible() const override { return true; } virtual u32 execute_min_cycles() const noexcept override { return 2; } virtual u32 execute_max_cycles() const noexcept override { return 16; } - virtual u32 execute_input_lines() const noexcept override { return 4; } virtual u32 execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; diff --git a/src/devices/cpu/z8000/z8000.h b/src/devices/cpu/z8000/z8000.h index 3f4900788a6..4d53285d31d 100644 --- a/src/devices/cpu/z8000/z8000.h +++ b/src/devices/cpu/z8000/z8000.h @@ -96,7 +96,6 @@ class z8002_device : public cpu_device, public z8000_disassembler::config // device_execute_interface overrides virtual uint32_t execute_min_cycles() const noexcept override { return 2; } virtual uint32_t execute_max_cycles() const noexcept override { return 744; } - virtual uint32_t execute_input_lines() const noexcept override { return 2; } virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; diff --git a/src/devices/sound/dspv.cpp b/src/devices/sound/dspv.cpp index b0f4d8f3596..9877cee3fb1 100644 --- a/src/devices/sound/dspv.cpp +++ b/src/devices/sound/dspv.cpp @@ -151,11 +151,6 @@ uint32_t dspv_device::execute_max_cycles() const noexcept return 1; } -uint32_t dspv_device::execute_input_lines() const noexcept -{ - return 0; -} - void dspv_device::execute_run() { if(machine().debug_flags & DEBUG_FLAG_ENABLED) diff --git a/src/devices/sound/dspv.h b/src/devices/sound/dspv.h index 9be1cb3963d..33604fc454d 100644 --- a/src/devices/sound/dspv.h +++ b/src/devices/sound/dspv.h @@ -22,7 +22,6 @@ class dspv_device : public cpu_device, public device_sound_interface virtual void device_reset() override; virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual space_config_vector memory_space_config() const override; virtual void state_import(const device_state_entry &entry) override; diff --git a/src/devices/sound/swp30.cpp b/src/devices/sound/swp30.cpp index 70ba7c5c7e6..15d87e4233f 100644 --- a/src/devices/sound/swp30.cpp +++ b/src/devices/sound/swp30.cpp @@ -1233,11 +1233,6 @@ uint32_t swp30_device::execute_max_cycles() const noexcept return 1; } -uint32_t swp30_device::execute_input_lines() const noexcept -{ - return 0; -} - void swp30_device::meg_prg_map(address_map &map) { diff --git a/src/devices/sound/swp30.h b/src/devices/sound/swp30.h index 3529a39a032..4c07776c06e 100644 --- a/src/devices/sound/swp30.h +++ b/src/devices/sound/swp30.h @@ -25,7 +25,6 @@ class swp30_device : public cpu_device, public device_sound_interface, public sw virtual void sound_stream_update(sound_stream &stream, std::vector const &inputs, std::vector &outputs) override; virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + 1) / 2; } virtual void execute_run() override; virtual space_config_vector memory_space_config() const override; diff --git a/src/emu/diexec.cpp b/src/emu/diexec.cpp index 715f0c38459..ba0099a18e8 100644 --- a/src/emu/diexec.cpp +++ b/src/emu/diexec.cpp @@ -282,17 +282,6 @@ u32 device_execute_interface::execute_max_cycles() const noexcept } -//------------------------------------------------- -// execute_input_lines - return the total number -// of input lines for the device -//------------------------------------------------- - -u32 device_execute_interface::execute_input_lines() const noexcept -{ - return 0; -} - - //------------------------------------------------- // execute_default_irq_vector - return the default // IRQ vector when an acknowledge is processed diff --git a/src/emu/diexec.h b/src/emu/diexec.h index 51973ad19cc..fa76de3b438 100644 --- a/src/emu/diexec.h +++ b/src/emu/diexec.h @@ -109,7 +109,6 @@ class device_execute_interface : public device_interface u32 max_cycles() const { return execute_max_cycles(); } attotime cycles_to_attotime(u64 cycles) const { return device().clocks_to_attotime(cycles_to_clocks(cycles)); } u64 attotime_to_cycles(const attotime &duration) const { return clocks_to_cycles(device().attotime_to_clocks(duration)); } - u32 input_lines() const { return execute_input_lines(); } u32 default_irq_vector(int linenum) const { return execute_default_irq_vector(linenum); } bool input_edge_triggered(int linenum) const { return execute_input_edge_triggered(linenum); } @@ -201,7 +200,6 @@ class device_execute_interface : public device_interface virtual u32 execute_max_cycles() const noexcept; // input line information getters - virtual u32 execute_input_lines() const noexcept; virtual u32 execute_default_irq_vector(int linenum) const noexcept; virtual bool execute_input_edge_triggered(int linenum) const noexcept; diff --git a/src/mame/sgi/sgi_ge5.h b/src/mame/sgi/sgi_ge5.h index 39a8f859623..a9efc878fe2 100644 --- a/src/mame/sgi/sgi_ge5.h +++ b/src/mame/sgi/sgi_ge5.h @@ -38,7 +38,6 @@ class sgi_ge5_device : public cpu_device // device_execute_interface overrides virtual u32 execute_min_cycles() const noexcept override { return 1; } virtual u32 execute_max_cycles() const noexcept override { return 1; } - virtual u32 execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override {} diff --git a/src/mame/virtual/vgmplay.cpp b/src/mame/virtual/vgmplay.cpp index b04cf2e237a..e699d03eec7 100644 --- a/src/mame/virtual/vgmplay.cpp +++ b/src/mame/virtual/vgmplay.cpp @@ -230,7 +230,6 @@ class vgmplay_device : public cpu_device virtual uint32_t execute_min_cycles() const noexcept override; virtual uint32_t execute_max_cycles() const noexcept override; - virtual uint32_t execute_input_lines() const noexcept override; virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; @@ -664,11 +663,6 @@ uint32_t vgmplay_device::execute_max_cycles() const noexcept return 65536; } -uint32_t vgmplay_device::execute_input_lines() const noexcept -{ - return 0; -} - void vgmplay_device::blocks_clear() { for (int i = 0; i < 0x40; i++) From 608499617a31676fbc7d57b57084928ac112ad0c Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 18 Sep 2024 10:36:09 -0400 Subject: [PATCH 3/8] diexec: Remove vestigial execute_burn override --- src/devices/cpu/tlcs90/tlcs90.h | 2 +- src/devices/cpu/z180/z180.h | 2 +- src/emu/diexec.cpp | 12 ------------ src/emu/diexec.h | 1 - 4 files changed, 2 insertions(+), 15 deletions(-) diff --git a/src/devices/cpu/tlcs90/tlcs90.h b/src/devices/cpu/tlcs90/tlcs90.h index 6535ebf81f1..7479b699057 100644 --- a/src/devices/cpu/tlcs90/tlcs90.h +++ b/src/devices/cpu/tlcs90/tlcs90.h @@ -47,7 +47,7 @@ class tlcs90_device : public cpu_device virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; - virtual void execute_burn(int32_t cycles) override; + [[maybe_unused]] void execute_burn(int32_t cycles); // device_memory_interface overrides virtual space_config_vector memory_space_config() const override; diff --git a/src/devices/cpu/z180/z180.h b/src/devices/cpu/z180/z180.h index 5ccb2073c54..18aa0b5770f 100644 --- a/src/devices/cpu/z180/z180.h +++ b/src/devices/cpu/z180/z180.h @@ -147,7 +147,7 @@ class z180_device : public cpu_device, public z80_daisy_chain_interface virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } virtual void execute_run() override; - virtual void execute_burn(int32_t cycles) override; + [[maybe_unused]] void execute_burn(int32_t cycles); virtual void execute_set_input(int inputnum, int state) override; // device_memory_interface implementation diff --git a/src/emu/diexec.cpp b/src/emu/diexec.cpp index ba0099a18e8..60ba1e7e8ba 100644 --- a/src/emu/diexec.cpp +++ b/src/emu/diexec.cpp @@ -304,18 +304,6 @@ bool device_execute_interface::execute_input_edge_triggered(int linenum) const n } -//------------------------------------------------- -// execute_burn - called after we consume a bunch -// of cycles for artifical reasons (such as -// spinning devices for performance optimization) -//------------------------------------------------- - -void device_execute_interface::execute_burn(s32 cycles) -{ - // by default, do nothing -} - - //------------------------------------------------- // execute_set_input - called when a synchronized // input is changed diff --git a/src/emu/diexec.h b/src/emu/diexec.h index fa76de3b438..81c337645bb 100644 --- a/src/emu/diexec.h +++ b/src/emu/diexec.h @@ -205,7 +205,6 @@ class device_execute_interface : public device_interface // optional operation overrides virtual void execute_run() = 0; - virtual void execute_burn(s32 cycles); virtual void execute_set_input(int linenum, int state); // interface-level overrides From e5b401ef3676a6061938cf90a869d33d3e798f39 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Thu, 19 Sep 2024 02:02:16 +1000 Subject: [PATCH 4/8] -Don't use image_error::BADSOFTWARE for things that aren't software list errors. -scripts/minimaws: Use python3 superclass method call syntax. --- scripts/minimaws/lib/auxverbs.py | 2 +- scripts/minimaws/lib/dbaccess.py | 8 ++++---- scripts/minimaws/lib/lxparse.py | 24 ++++++++++++------------ scripts/minimaws/lib/wsgiserve.py | 24 ++++++++++++------------ src/mame/altos/altos5.cpp | 2 +- src/mame/ausnz/aussiebyte.cpp | 2 +- src/mame/kaypro/kaypro_m.cpp | 2 +- src/mame/ncr/dmv.cpp | 2 +- src/mame/sony/smc777.cpp | 4 ++-- src/mame/xerox/xerox820.cpp | 4 ++-- 10 files changed, 37 insertions(+), 37 deletions(-) diff --git a/scripts/minimaws/lib/auxverbs.py b/scripts/minimaws/lib/auxverbs.py index 0383331e064..f4a4ebbe70c 100644 --- a/scripts/minimaws/lib/auxverbs.py +++ b/scripts/minimaws/lib/auxverbs.py @@ -17,7 +17,7 @@ class _Identifier(object): def __init__(self, dbcurs, **kwargs): - super(_Identifier, self).__init__(**kwargs) + super().__init__(**kwargs) self.dbcurs = dbcurs self.shortnamewidth = 0 self.pathwidth = 0 diff --git a/scripts/minimaws/lib/dbaccess.py b/scripts/minimaws/lib/dbaccess.py index 89cd88c7437..74c1cdb6d1e 100644 --- a/scripts/minimaws/lib/dbaccess.py +++ b/scripts/minimaws/lib/dbaccess.py @@ -571,7 +571,7 @@ class UpdateQueries(object): class QueryCursor(object): def __init__(self, dbconn, **kwargs): - super(QueryCursor, self).__init__(**kwargs) + super().__init__(**kwargs) self.dbcurs = dbconn.cursor() def close(self): @@ -913,7 +913,7 @@ def get_software_disk_dumps(self, sha1): class UpdateCursor(object): def __init__(self, dbconn, **kwargs): - super(UpdateCursor, self).__init__(**kwargs) + super().__init__(**kwargs) self.dbcurs = dbconn.cursor() def close(self): @@ -1063,7 +1063,7 @@ def add_softwarediskdump(self, part, name, sha1, bad): class QueryConnection(object): def __init__(self, database, **kwargs): - super(QueryConnection, self).__init__(**kwargs) + super().__init__(**kwargs) self.dbconn = sqlite3.connect('file:' + urllib.request.pathname2url(database) + '?mode=ro', uri=True, check_same_thread=False) self.dbconn.row_factory = sqlite3.Row self.dbconn.execute('PRAGMA foreign_keys = ON') @@ -1077,7 +1077,7 @@ def cursor(self): class UpdateConnection(object): def __init__(self, database, **kwargs): - super(UpdateConnection, self).__init__(**kwargs) + super().__init__(**kwargs) self.dbconn = sqlite3.connect(database) self.dbconn.execute('PRAGMA page_size = 4096') self.dbconn.execute('PRAGMA foreign_keys = ON') diff --git a/scripts/minimaws/lib/lxparse.py b/scripts/minimaws/lib/lxparse.py index 3e462154c53..11c9a15f451 100644 --- a/scripts/minimaws/lib/lxparse.py +++ b/scripts/minimaws/lib/lxparse.py @@ -14,7 +14,7 @@ class ElementHandlerBase(object): def __init__(self, parent, **kwargs): - super(ElementHandlerBase, self).__init__(**kwargs) + super().__init__(**kwargs) self.dbconn = parent.dbconn if parent is not None else None self.locator = parent.locator if parent is not None else None self.depth = 0 @@ -105,7 +105,7 @@ class ElementHandler(ElementHandlerBase): class TextAccumulator(ElementHandler): def __init__(self, parent, **kwargs): - super(TextAccumulator, self).__init__(parent=parent, **kwargs) + super().__init__(parent=parent, **kwargs) self.text = '' def mainCharacters(self, content): @@ -114,7 +114,7 @@ def mainCharacters(self, content): class DipSwitchHandler(ElementHandler): def __init__(self, parent, **kwargs): - super(DipSwitchHandler, self).__init__(parent=parent, **kwargs) + super().__init__(parent=parent, **kwargs) self.dbcurs = parent.dbcurs self.machine = parent.id @@ -138,7 +138,7 @@ def startChildElement(self, name, attrs): class SlotHandler(ElementHandler): def __init__(self, parent, **kwargs): - super(SlotHandler, self).__init__(parent=parent, **kwargs) + super().__init__(parent=parent, **kwargs) self.dbcurs = parent.dbcurs self.machine = parent.id @@ -155,7 +155,7 @@ def startChildElement(self, name, attrs): class RamOptionHandler(TextAccumulator): def __init__(self, parent, **kwargs): - super(RamOptionHandler, self).__init__(parent=parent, **kwargs) + super().__init__(parent=parent, **kwargs) self.dbcurs = parent.dbcurs self.machine = parent.id @@ -181,7 +181,7 @@ class MachineHandler(ElementHandler): 'ramoption': RamOptionHandler } def __init__(self, parent, **kwargs): - super(MachineHandler, self).__init__(parent=parent, **kwargs) + super().__init__(parent=parent, **kwargs) self.dbcurs = self.dbconn.cursor() def startMainElement(self, name, attrs): @@ -248,7 +248,7 @@ def endChildHandler(self, name, handler): class ListXmlHandler(ElementHandler): def __init__(self, dbconn, **kwargs): - super(ListXmlHandler, self).__init__(parent=None, **kwargs) + super().__init__(parent=None, **kwargs) self.dbconn = dbconn def startDocument(self): @@ -290,7 +290,7 @@ def processingInstruction(self, target, data): class DataAreaHandler(ElementHandler): def __init__(self, parent, **kwargs): - super(DataAreaHandler, self).__init__(parent=parent, **kwargs) + super().__init__(parent=parent, **kwargs) self.dbcurs = parent.dbcurs self.part = parent.id @@ -309,7 +309,7 @@ def startChildElement(self, name, attrs): class DiskAreaHandler(ElementHandler): def __init__(self, parent, **kwargs): - super(DiskAreaHandler, self).__init__(parent=parent, **kwargs) + super().__init__(parent=parent, **kwargs) self.dbcurs = parent.dbcurs self.part = parent.id @@ -330,7 +330,7 @@ class SoftwarePartHandler(ElementHandler): 'diskarea': DiskAreaHandler } def __init__(self, parent, **kwargs): - super(SoftwarePartHandler, self).__init__(parent=parent, **kwargs) + super().__init__(parent=parent, **kwargs) self.dbcurs = parent.dbcurs self.software = parent.id @@ -356,7 +356,7 @@ class SoftwareHandler(ElementHandler): 'part': SoftwarePartHandler } def __init__(self, parent, **kwargs): - super(SoftwareHandler, self).__init__(parent=parent, **kwargs) + super().__init__(parent=parent, **kwargs) self.dbcurs = self.dbconn.cursor() self.softwarelist = parent.id @@ -400,7 +400,7 @@ class SoftwareListHandler(ElementHandler): 'software': SoftwareHandler } def __init__(self, dbconn, **kwargs): - super(SoftwareListHandler, self).__init__(parent=None, **kwargs) + super().__init__(parent=None, **kwargs) self.dbconn = dbconn def startDocument(self): diff --git a/scripts/minimaws/lib/wsgiserve.py b/scripts/minimaws/lib/wsgiserve.py index 98317db210e..56197407516 100644 --- a/scripts/minimaws/lib/wsgiserve.py +++ b/scripts/minimaws/lib/wsgiserve.py @@ -39,7 +39,7 @@ class HandlerBase(object): 505: 'HTTP Version Not Supported' } def __init__(self, app, application_uri, environ, start_response, **kwargs): - super(HandlerBase, self).__init__(**kwargs) + super().__init__(**kwargs) self.app = app self.js_escape = app.js_escape self.application_uri = application_uri @@ -52,7 +52,7 @@ def error_page(self, code): class ErrorPageHandler(HandlerBase): def __init__(self, code, app, application_uri, environ, start_response, **kwargs): - super(ErrorPageHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) self.code = code self.start_response('%d %s' % (self.code, self.STATUS_MESSAGE[code]), [('Content-type', 'text/html; charset=utf-8'), ('Cache-Control', 'public, max-age=3600')]) @@ -64,7 +64,7 @@ class AssetHandler(HandlerBase): EXTENSIONMAP = { '.js': 'application/javascript', '.svg': 'image/svg+xml' } def __init__(self, directory, app, application_uri, environ, start_response, **kwargs): - super(AssetHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) self.directory = directory self.asset = shiftpath(environ) @@ -99,7 +99,7 @@ def __iter__(self): class QueryPageHandler(HandlerBase): def __init__(self, app, application_uri, environ, start_response, **kwargs): - super(QueryPageHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) self.dbcurs = app.dbconn.cursor() def machine_href(self, shortname): @@ -191,7 +191,7 @@ def softwarelist_data(self, machine): class MachineRpcHandlerBase(QueryPageHandler): def __init__(self, app, application_uri, environ, start_response, **kwargs): - super(MachineRpcHandlerBase, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) self.shortname = shiftpath(environ) def __iter__(self): @@ -216,7 +216,7 @@ def __iter__(self): class MachineHandler(QueryPageHandler): def __init__(self, app, application_uri, environ, start_response, **kwargs): - super(MachineHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) self.shortname = shiftpath(environ) def __iter__(self): @@ -464,7 +464,7 @@ def sanitised_json(data): class SourceFileHandler(QueryPageHandler): def __init__(self, app, application_uri, environ, start_response, **kwargs): - super(SourceFileHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) def __iter__(self): self.filename = self.environ['PATH_INFO'] @@ -577,7 +577,7 @@ def machine_row(self, machine_info): class SoftwareListHandler(QueryPageHandler): def __init__(self, app, application_uri, environ, start_response, **kwargs): - super(SoftwareListHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) self.shortname = shiftpath(environ) self.software = shiftpath(environ) @@ -788,7 +788,7 @@ def format_supported(supported): class RomIdentHandler(QueryPageHandler): def __init__(self, app, application_uri, environ, start_response, **kwargs): - super(QueryPageHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) self.dbcurs = app.dbconn.cursor() def __iter__(self): @@ -833,7 +833,7 @@ def data_page(self, machine): class RomDumpsRpcHandler(QueryPageHandler): def __init__(self, app, application_uri, environ, start_response, **kwargs): - super(RomDumpsRpcHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) def __iter__(self): if self.environ['PATH_INFO']: @@ -890,7 +890,7 @@ def data_page(self, crc, sha1): class DiskDumpsRpcHandler(QueryPageHandler): def __init__(self, app, application_uri, environ, start_response, **kwargs): - super(DiskDumpsRpcHandler, self).__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) + super().__init__(app=app, application_uri=application_uri, environ=environ, start_response=start_response, **kwargs) def __iter__(self): if self.environ['PATH_INFO']: @@ -954,7 +954,7 @@ class MiniMawsApp(object): 'diskdumps': DiskDumpsRpcHandler } def __init__(self, dbfile, **kwargs): - super(MiniMawsApp, self).__init__(**kwargs) + super().__init__(**kwargs) self.dbconn = dbaccess.QueryConnection(dbfile) self.assetsdir = os.path.join(os.path.dirname(inspect.getfile(self.__class__)), 'assets') if not mimetypes.inited: diff --git a/src/mame/altos/altos5.cpp b/src/mame/altos/altos5.cpp index 12cf53d0300..a927b99da0e 100644 --- a/src/mame/altos/altos5.cpp +++ b/src/mame/altos/altos5.cpp @@ -323,7 +323,7 @@ QUICKLOAD_LOAD_MEMBER(altos5_state::quickload_cb) { uint8_t data; if (image.fread(&data, 1) != 1) - return std::make_pair(image_error::BADSOFTWARE, "Problem reading the image at offset " + std::to_string(i)); + return std::make_pair(image_error::UNSPECIFIED, "Problem reading the image at offset " + std::to_string(i)); prog_space.write_byte(i + 0x100, data); } diff --git a/src/mame/ausnz/aussiebyte.cpp b/src/mame/ausnz/aussiebyte.cpp index 0745691357e..26213ad6e83 100644 --- a/src/mame/ausnz/aussiebyte.cpp +++ b/src/mame/ausnz/aussiebyte.cpp @@ -423,7 +423,7 @@ QUICKLOAD_LOAD_MEMBER(aussiebyte_state::quickload_cb) { u8 data; if (image.fread(&data, 1) != 1) - return std::make_pair(image_error::BADSOFTWARE, "Problem reading the image at offset " + std::to_string(i)); + return std::make_pair(image_error::UNSPECIFIED, "Problem reading the image at offset " + std::to_string(i)); prog_space.write_byte(i + 0x100, data); } diff --git a/src/mame/kaypro/kaypro_m.cpp b/src/mame/kaypro/kaypro_m.cpp index 8bb754cc115..dfc11add8b6 100644 --- a/src/mame/kaypro/kaypro_m.cpp +++ b/src/mame/kaypro/kaypro_m.cpp @@ -315,7 +315,7 @@ QUICKLOAD_LOAD_MEMBER(kaypro_state::quickload_cb) { u8 data; if (image.fread(&data, 1) != 1) - return std::make_pair(image_error::BADSOFTWARE, "Problem reading the image at offset " + std::to_string(i)); + return std::make_pair(image_error::UNSPECIFIED, "Problem reading the image at offset " + std::to_string(i)); prog_space.write_byte(i + 0x100, data); } diff --git a/src/mame/ncr/dmv.cpp b/src/mame/ncr/dmv.cpp index 1e8cda6b882..924849184d3 100644 --- a/src/mame/ncr/dmv.cpp +++ b/src/mame/ncr/dmv.cpp @@ -416,7 +416,7 @@ QUICKLOAD_LOAD_MEMBER(dmv_state::quickload_cb) { uint8_t data; if (image.fread(&data, 1) != 1) - return std::make_pair(image_error::BADSOFTWARE, "Problem reading the image at offset " + std::to_string(i)); + return std::make_pair(image_error::UNSPECIFIED, "Problem reading the image at offset " + std::to_string(i)); m_ram->base()[i + 0x100] = data; } diff --git a/src/mame/sony/smc777.cpp b/src/mame/sony/smc777.cpp index b1a6c6c2cc6..bebbc1488d6 100644 --- a/src/mame/sony/smc777.cpp +++ b/src/mame/sony/smc777.cpp @@ -437,11 +437,11 @@ QUICKLOAD_LOAD_MEMBER(smc777_state::quickload_cb) { uint8_t data; if (image.fread(&data, 1) != 1) - return std::make_pair(image_error::BADSOFTWARE, "Problem reading the image at offset " + std::to_string(i)); + return std::make_pair(image_error::UNSPECIFIED, "Problem reading the image at offset " + std::to_string(i)); prog_space.write_byte(i + 0x100, data); } - // clear out command tail */ + // clear out command tail prog_space.write_byte(0x80, 0); prog_space.write_byte(0x81, 0); diff --git a/src/mame/xerox/xerox820.cpp b/src/mame/xerox/xerox820.cpp index 00373b7916d..907383ce6bd 100644 --- a/src/mame/xerox/xerox820.cpp +++ b/src/mame/xerox/xerox820.cpp @@ -401,11 +401,11 @@ QUICKLOAD_LOAD_MEMBER(xerox820_state::quickload_cb) { uint8_t data; if (image.fread(&data, 1) != 1) - return std::make_pair(image_error::BADSOFTWARE, "Problem reading the image at offset " + std::to_string(i)); + return std::make_pair(image_error::UNSPECIFIED, "Problem reading the image at offset " + std::to_string(i)); prog_space.write_byte(i + 0x100, data); } - // clear out command tail */ + // clear out command tail prog_space.write_byte(0x80, 0); prog_space.write_byte(0x81, 0); From 4c673df50300ff57d7e9ca0cd91af7e2dc789411 Mon Sep 17 00:00:00 2001 From: angelosa Date: Wed, 18 Sep 2024 20:16:48 +0200 Subject: [PATCH 5/8] bus/pci: PowerVR Neon 250 stub --- scripts/src/bus.lua | 2 + src/devices/bus/pci/neon250.cpp | 188 +++++++++++++++++++++++++++++++ src/devices/bus/pci/neon250.h | 54 +++++++++ src/devices/bus/pci/pci_slot.cpp | 6 + src/mame/sunwise/anoworld.cpp | 7 +- 5 files changed, 254 insertions(+), 3 deletions(-) create mode 100644 src/devices/bus/pci/neon250.cpp create mode 100644 src/devices/bus/pci/neon250.h diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 403f1872472..16f86826013 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -5643,6 +5643,8 @@ if (BUSES["PCI"]~=null) then MAME_DIR .. "src/devices/bus/pci/mga2064w.h", MAME_DIR .. "src/devices/bus/pci/ncr53c825.cpp", MAME_DIR .. "src/devices/bus/pci/ncr53c825.h", + MAME_DIR .. "src/devices/bus/pci/neon250.cpp", + MAME_DIR .. "src/devices/bus/pci/neon250.h", MAME_DIR .. "src/devices/bus/pci/oti_spitfire.cpp", MAME_DIR .. "src/devices/bus/pci/oti_spitfire.h", MAME_DIR .. "src/devices/bus/pci/opti82c861.cpp", diff --git a/src/devices/bus/pci/neon250.cpp b/src/devices/bus/pci/neon250.cpp new file mode 100644 index 00000000000..b0908182e9c --- /dev/null +++ b/src/devices/bus/pci/neon250.cpp @@ -0,0 +1,188 @@ +// license:BSD-3-Clause +// copyright-holders: +/************************************************************************************************** + +VideoLogic PowerVR Neon 250 + +TODO: +- stub device; +- detects 0Kb of RAM in SDD test, plays with pvr_io_map $54 (IIC Interface B); + +**************************************************************************************************/ + +#include "emu.h" +#include "neon250.h" + +#define LOG_WARN (1U << 1) +#define LOG_TODO (1U << 2) // log unimplemented registers + +#define VERBOSE (LOG_GENERAL | LOG_WARN | LOG_TODO) +//#define LOG_OUTPUT_FUNC osd_printf_info +#include "logmacro.h" + +#define LOGWARN(...) LOGMASKED(LOG_WARN, __VA_ARGS__) +#define LOGTODO(...) LOGMASKED(LOG_TODO, __VA_ARGS__) + + +DEFINE_DEVICE_TYPE(NEON250, neon250_device, "neon250", "VideoLogic PowerVR Neon 250 (PMX1)") + +neon250_device::neon250_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : pci_card_device(mconfig, type, tag, owner, clock) + , m_svga(*this, "svga") + , m_vga_rom(*this, "vga_rom") +{ + // PowerVR Neon 250 AGP (NEC branded) + set_ids_agp(0x10330067, 0x02, 0x10100120); +} + +neon250_device::neon250_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : neon250_device(mconfig, NEON250, tag, owner, clock) +{ +} + +ROM_START( neon250 ) + ROM_REGION32_LE( 0x20000, "vga_rom", ROMREGION_ERASEFF ) + ROM_SYSTEM_BIOS( 0, "neon250", "NEC Neon 250" ) + ROMX_LOAD( "n0020331.bin", 0x000000, 0x20000, CRC(e76008f5) SHA1(1ddda1494d5b32148e2c9e7a6557f00ee9cffea6), ROM_BIOS(0) ) +// ROMX_LOAD( "ppvr201i.bin", 0x000000, 0x10000, CRC(b6e763c9) SHA1(1e1fecbb663dde5295a9db98dde70a4e1bd8338d), ROM_BIOS(0) ) +// ROMX_LOAD( "b1002816.bin", 0x000000, 0x10000, CRC(d3cf607a) SHA1(8fea7c3e678bc585ed5729d7f1a4b203bae8d15d), ROM_BIOS(0) ) + // from VGA Legacy MkIII, bad +// ROMX_LOAD( "neon250agp.vbi", 0x000000, 0x009200, CRC(41a46c28) SHA1(f99482b906436d9b1db25e68de5a2bc96a192128) BAD_DUMP, ROM_BIOS(0) ) +ROM_END + +const tiny_rom_entry *neon250_device::device_rom_region() const +{ + return ROM_NAME(neon250); +} + +void neon250_device::device_add_mconfig(machine_config &config) +{ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480); + screen.set_screen_update(m_svga, FUNC(vga_device::screen_update)); + + // TODO: PVR "VGA Emulator" + VGA(config, m_svga, 0); + m_svga->set_screen("screen"); + m_svga->set_vram_size(32*1024*1024); +} + + + +void neon250_device::device_start() +{ + pci_card_device::device_start(); + + add_map( 64*1024*1024, M_MEM | M_PREF, FUNC(neon250_device::pvr_fb_map)); + add_map( 16*1024, M_MEM | M_PREF, FUNC(neon250_device::pvr_mmio_map)); + add_map( 128*1024, M_MEM | M_PREF, FUNC(neon250_device::vga_fb_map)); + add_map( 2*1024, M_MEM, FUNC(neon250_device::vga_mmio_map)); + // not indicated, assume no-pref again + add_map( 256, M_IO, FUNC(neon250_device::pvr_io_map)); + + add_rom((u8 *)m_vga_rom->base(), 128*1024 ); + expansion_rom_base = 0xc0000; + + // INTA# + intr_pin = 1; +} + +void neon250_device::device_reset() +{ + pci_card_device::device_reset(); + + command = 0x0000; + // can VGA palette snoop, can MWI (bit 4) + command_mask = 0x0037; + // medium DEVSELB + fast back to back + new cap support + // can set AGP bit 5 + status = 0x0290; + + remap_cb(); +} + +u8 neon250_device::capptr_r() +{ + return 0x60; +} + +void neon250_device::config_map(address_map &map) +{ + pci_device::config_map(map); + + // AGP + map(0x40, 0x43).lr32(NAME([] { return 0x0010'0002; })); + // AGP 1x & 2x + SBA + 31 RQ + map(0x44, 0x47).lr32(NAME([] { return 0x1f00'0203; })); + +// map(0x4c, 0x4d) Discard Timer +// map(0x50, 0x50) 16T Timer +// map(0x54, 0x54) 8T Timer +// map(0x58, 0x59) SSVIDW +// map(0x5a, 0x5b) Subsystem Control +// map(0x5c, 0x5d) SSDEVW + + // Power management + // PCI PM 1.0 compliant + Device Specific Init (DSI) + D1 & D2 support + // TODO: disables capptr if AGP is unset + map(0x60, 0x63).lr32(NAME([] { return 0x0621'4001; })); + +// map(0x70, 0x71) AGP PLL Control +// map(0x72, 0x73) Core PLL Control +} + + + +void neon250_device::pvr_fb_map(address_map &map) +{ + +} + +void neon250_device::pvr_mmio_map(address_map &map) +{ +} + +void neon250_device::pvr_io_map(address_map &map) +{ +} + +void neon250_device::vga_fb_map(address_map &map) +{ +} + +void neon250_device::vga_mmio_map(address_map &map) +{ +} + +// TODO: this should really be a subclass of VGA +void neon250_device::legacy_memory_map(address_map &map) +{ + map(0xa0000, 0xbffff).rw(FUNC(neon250_device::vram_r), FUNC(neon250_device::vram_w)); +} + +void neon250_device::legacy_io_map(address_map &map) +{ + map(0, 0x02f).m(m_svga, FUNC(vga_device::io_map)); +} + +uint8_t neon250_device::vram_r(offs_t offset) +{ + return downcast(m_svga.target())->mem_r(offset); +} + +void neon250_device::vram_w(offs_t offset, uint8_t data) +{ + downcast(m_svga.target())->mem_w(offset, data); +} + +void neon250_device::map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, + uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) +{ + if (command & 7) + { + memory_space->install_readwrite_handler(0xa0000, 0xbffff, read8sm_delegate(*this, FUNC(neon250_device::vram_r)), write8sm_delegate(*this, FUNC(neon250_device::vram_w))); + + io_space->install_device(0x03b0, 0x03df, *this, &neon250_device::legacy_io_map); + //memory_space->install_rom(0xc0000, 0xcffff, (void *)expansion_rom); + } +} diff --git a/src/devices/bus/pci/neon250.h b/src/devices/bus/pci/neon250.h new file mode 100644 index 00000000000..c303189e678 --- /dev/null +++ b/src/devices/bus/pci/neon250.h @@ -0,0 +1,54 @@ +// license:BSD-3-Clause +// copyright-holders: + +#ifndef MAME_VIDEO_NEON250_H +#define MAME_VIDEO_NEON250_H + +#pragma once + +#include "pci_slot.h" +#include "video/pc_vga.h" + +class neon250_device : public pci_card_device +{ +public: + neon250_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + void legacy_memory_map(address_map &map); + void legacy_io_map(address_map &map); + +protected: + neon250_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_add_mconfig(machine_config &config) override; + + virtual const tiny_rom_entry *device_rom_region() const override; + + virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, + uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override; + + virtual void config_map(address_map &map) override; + + required_device m_svga; + required_memory_region m_vga_rom; + + virtual u8 capptr_r() override; + +// bool m_vga_legacy_enable = false; +private: + u8 vram_r(offs_t offset); + void vram_w(offs_t offset, uint8_t data); + + void pvr_fb_map(address_map &map); + void pvr_mmio_map(address_map &map); + void pvr_io_map(address_map &map); + + void vga_fb_map(address_map &map); + void vga_mmio_map(address_map &map); +}; + +DECLARE_DEVICE_TYPE(NEON250, neon250_device) + +#endif // MAME_VIDEO_NEON250_H diff --git a/src/devices/bus/pci/pci_slot.cpp b/src/devices/bus/pci/pci_slot.cpp index ed297fbda38..238e61be49c 100644 --- a/src/devices/bus/pci/pci_slot.cpp +++ b/src/devices/bus/pci/pci_slot.cpp @@ -15,6 +15,7 @@ #include "geforce.h" #include "mga2064w.h" #include "ncr53c825.h" +#include "neon250.h" #include "opti82c861.h" #include "oti_spitfire.h" #include "pdc20262.h" @@ -164,6 +165,7 @@ void pci_cards(device_slot_interface &device) // assume all natively with class code 03 void agp_cards(device_slot_interface &device) { + // nVidia device.option_add("riva128", RIVA128); device.option_add("riva128zx", RIVA128ZX); device.option_add("rivatnt", RIVATNT); @@ -174,6 +176,10 @@ void agp_cards(device_slot_interface &device) device.option_add("geforce256", GEFORCE256); device.option_add("geforce256_ddr", GEFORCE256_DDR); device.option_add("quadro", QUADRO); + // Cirrus Logic device.option_add("laguna3d", GD5465_LAGUNA3D); + // PowerVR VideoLogic + device.option_add("neon250", NEON250); + // SiS device.option_add("sis6326_agp", SIS6326_AGP); } diff --git a/src/mame/sunwise/anoworld.cpp b/src/mame/sunwise/anoworld.cpp index ec2b8302e81..ffb6590c32e 100644 --- a/src/mame/sunwise/anoworld.cpp +++ b/src/mame/sunwise/anoworld.cpp @@ -1,6 +1,6 @@ // license: BSD-3-Clause // copyright-holders: Angelo Salese, AJR -/*************************************************************************************************** +/************************************************************************************************** Another World (c) 1989 Sunwise @@ -8,13 +8,14 @@ Another World (c) 1989 Sunwise - Identify irq sources ($24 timer, $26 VBLANK?, $20 or $22 quadrature encoder); - Z80DMA never sends a ready signal, workaround by forcing is_ready fn to 1; - Verify data ROM bank; +- Complete inputs: cabinet shows 3 buttons and a trackball; - Sound i/f not fully understood: \- no irq from CTC, hooking up YM irq in daisy chain will fail device validation; \- sound ROMs mainly decodes as regular 8-bit DAC, mono, 8000 Hz. \- Denote they ends abruptly towards the end (bad ROMs?). \- is output connected to CTC ZC0 / ZC1 as DAC1BIT? -==================================================================================================== +=================================================================================================== TOP BOARD (S-8808A) ========= @@ -44,7 +45,7 @@ video output 5x 5816 RAM 18 MHz osc -***************************************************************************************************/ +**************************************************************************************************/ #include "emu.h" From 5d276715c8c27187e0359f61ac45e7e1e96a5a7c Mon Sep 17 00:00:00 2001 From: mamehaze <140764005+mamehaze@users.noreply.github.com> Date: Wed, 18 Sep 2024 19:46:25 +0100 Subject: [PATCH 6/8] igs/igs_m027.cpp, igs/igs_m027xa.cpp: Added three more video slots games. (#12779) * igs/igs_m027xa.cpp: Dumped XA microcontroller for Triple Fever (V108US) (matches Crazy Bugs). [Ioannis Bampoulas, TeamEurope] * igs/igs_m027.cpp: Improved ROM labels for extradrw and added note about additional 8255 PIA. [Jorge Silva, TeamEurope] * igs/igs_m027.cpp: Found a board with an external game program ROM that isn't double-sized. * igs/igs_m027.cpp, igs/igs_m027xa.cpp: Removed outdated/incorrect comments about ROM dumps. New systems marked not working ---------------------- Triple Slot (V200VE) [Ioannis Bampoulas, TeamEurope] New clones marked not working ------------------------ Triple Fever (V108US) [Ioannis Bampoulas, TeamEurope] Triple Fever (V105US) [Ioannis Bampoulas, TeamEurope] --- src/mame/igs/igs_m027.cpp | 43 +++++++++++++++--- src/mame/igs/igs_m027xa.cpp | 89 ++++++++++++++++++++++++------------- src/mame/igs/pgmcrypt.cpp | 23 ++++++++++ src/mame/igs/pgmcrypt.h | 1 + src/mame/mame.lst | 3 ++ 5 files changed, 123 insertions(+), 36 deletions(-) diff --git a/src/mame/igs/igs_m027.cpp b/src/mame/igs/igs_m027.cpp index a25f72687ef..f2939c5bea9 100644 --- a/src/mame/igs/igs_m027.cpp +++ b/src/mame/igs/igs_m027.cpp @@ -110,6 +110,7 @@ class igs_m027_state : public driver_device void init_luckycrs() ATTR_COLD; void init_olympic5() ATTR_COLD; void init_extradrw() ATTR_COLD; + void init_tripshot() ATTR_COLD; protected: virtual void machine_start() override ATTR_COLD; @@ -1840,10 +1841,29 @@ ROM_START( fruitpara ) ROM_LOAD( "igs_w4102.u28", 0x00000, 0x80000, CRC(558cab25) SHA1(0280b37a14589329f0385c048e5742b9e89bd587) ) ROM_END +ROM_START( tripslot ) + ROM_REGION( 0x04000, "maincpu", 0 ) + // Internal ROM of IGS027A type G ARM based MCU + ROM_LOAD( "v21_027a.bin", 0x00000, 0x4000, CRC(debf0400) SHA1(b359f7d0549005682780d70060a8fc9a4b4b777e) ) // V21 sticker + + ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg + ROM_LOAD( "tripleslot_v-200ve.u23", 0x000000, 0x80000, CRC(c1a1ff26) SHA1(866b5cb04069d8dfedda06f7e2fd21b9a03d4b5a) ) + + ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 ) + ROM_LOAD16_WORD_SWAP( "tripleslot_text.u12", 0x000000, 0x80000, CRC(c2537d18) SHA1(172cccfb69b814c670f3c1673ccece6eab866fe1) ) + + ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 ) + ROM_LOAD( "tripleslot_ani_cg.u13", 0x000000, 0x400000, CRC(83fc100e) SHA1(8a03e2cb9876a0f61364ad9214ac2a74ceaf7f5e) ) + + ROM_REGION( 0x200000, "oki", 0 ) + ROM_LOAD( "tripleslot_sp.u37", 0x00000, 0x200000, CRC(98b9cafd) SHA1(3bf3971f0d9520c98fc6b1c2e77ab9c178d21c62) ) +ROM_END + // supposedly a reskin of fruitpar / oceanpar, runs on a slightly different PCB (type not readable, seems same as amazonkp) ROM_START( luckycrs ) ROM_REGION( 0x04000, "maincpu", 0 ) // Internal ROM of IGS027A type G ARM based MCU + // note, despite the sticker still being V21 this is NOT the same as tripslot, XOR table needs to be different at least ROM_LOAD( "v21_igs027a", 0x00000, 0x4000, NO_DUMP ) // stickered V21 ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg @@ -2570,16 +2590,18 @@ ROM_START( extradrw ) // IGS PCB 0326-05-DV-1 // Internal rom of IGS027A ARM based MCU ROM_LOAD( "e1_027a.bin", 0x00000, 0x4000, CRC(ebbf4922) SHA1(d2d196756317523db650bfe9e4bf2aa243e87a00) ) // has a 'E1' sticker - ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg - ROM_LOAD( "u21", 0x00000, 0x80000, CRC(c1641b14) SHA1(bd2525a5b38d4d8a39e99e43ef62e1d2fd3c044d) ) // 1ST AND 2ND HALF IDENTICAL, but correct, label not readable + ROM_REGION32_LE( 0x80000, "user1", ROMREGION_ERASEFF ) // external ARM data / prg + // has been seen on boards with an unlabeled chip that is double the size, with data doubled up (CRC(c1641b14) SHA1(bd2525a5b38d4d8a39e99e43ef62e1d2fd3c044d)) + ROM_LOAD( "extradraw_v100ve.u21", 0x00000, 0x40000, CRC(d83c1975) SHA1(c38bc41e5b5560dc02421fe1770359d9259b5e93) ) + ROM_RELOAD( 0x40000, 0x40000 ) ROM_REGION( 0x080000, "igs017_igs031:tilemaps", 0 ) - ROM_LOAD( "igs m3001.u4", 0x000000, 0x080000, CRC(d161f8f7) SHA1(4b495197895fd805979c5d5c5a4b7f07a68f4171) ) // label barely readable + ROM_LOAD( "igs_m3004.u4", 0x000000, 0x080000, CRC(d161f8f7) SHA1(4b495197895fd805979c5d5c5a4b7f07a68f4171) ) ROM_REGION( 0x180000, "igs017_igs031:sprites", 0 ) - ROM_LOAD( "u12", 0x000000, 0x100000, CRC(642247fb) SHA1(69c01c3551551120a3786522b28a80621a0d5082) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF, label not readable + ROM_LOAD( "igs_m3001.u12", 0x000000, 0x100000, CRC(642247fb) SHA1(69c01c3551551120a3786522b28a80621a0d5082) ) // 1xxxxxxxxxxxxxxxxxxxx = 0xFF ROM_IGNORE(0x100000) - ROM_LOAD( "u3", 0x100000, 0x080000, CRC(97227767) SHA1(c6a1916c0df1aceafbd488ecace5794390058c49) ) // FIXED BITS (xxxxxxx0xxxxxxxx), label not readable + ROM_LOAD( "h2_and_cg.u3", 0x100000, 0x080000, CRC(97227767) SHA1(c6a1916c0df1aceafbd488ecace5794390058c49) ) // FIXED BITS (xxxxxxx0xxxxxxxx) ROM_REGION( 0x200000, "oki", 0 ) ROM_LOAD( "igs s3002.u18", 0x00000, 0x200000, CRC(48601c32) SHA1(8ef3bad80931f4b1badf0598463e15508602f104) ) // BADADDR --xxxxxxxxxxxxxxxxxxx @@ -2746,6 +2768,13 @@ void igs_m027_state::init_luckycrs() pgm_create_dummy_internal_arm_region(); } +void igs_m027_state::init_tripshot() +{ + tripshot_decrypt(machine()); + m_igs017_igs031->sdwx_gfx_decrypt(); + m_igs017_igs031->tarzan_decrypt_sprites(0, 0); +} + void igs_m027_state::init_olympic5() { olympic5_decrypt(machine()); @@ -2786,7 +2815,9 @@ GAMEL( 1999, oceanpara, oceanpar, oceanpar_xor, oceanpara,igs_m027_state, init_o GAMEL( 1999, fruitpar, 0, oceanpar_xor, oceanpar, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V214)", 0, layout_oceanpar ) GAMEL( 1999, fruitpara, fruitpar, oceanpar_xor, fruitpara,igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V206US)", 0, layout_oceanpar ) GAME( 200?, cjddz, 0, cjddz_xor, cjddz, igs_m027_state, init_cjddz, ROT0, "IGS", "Chaoji Dou Dizhu", 0 ) -GAME( 2001, extradrw, 0, m027, base, igs_m027_state, init_extradrw, ROT0, "IGS", "Extra Draw", MACHINE_NOT_WORKING ) +GAME( 2007, tripslot, 0, oceanpar_xor, oceanpar, igs_m027_state, init_tripshot, ROT0, "IGS", "Triple Slot (V200VE)", MACHINE_NOT_WORKING ) // 2007 date in internal ROM at least, could be later, default settings password is all 'start 1' +// this has a 2nd 8255 +GAME( 2001, extradrw, 0, m027, base, igs_m027_state, init_extradrw, ROT0, "IGS", "Extra Draw (V100VE)", MACHINE_NOT_WORKING ) // these have an IGS025 protection device instead of the 8255 GAME( 2002, chessc2, 0, chessc2_xor, chessc2, igs_m027_state, init_chessc2, ROT0, "IGS", "Chess Challenge II", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) diff --git a/src/mame/igs/igs_m027xa.cpp b/src/mame/igs/igs_m027xa.cpp index a5f6f99973d..d80631176b6 100644 --- a/src/mame/igs/igs_m027xa.cpp +++ b/src/mame/igs/igs_m027xa.cpp @@ -56,7 +56,6 @@ class igs_m027xa_state : public driver_device void igs_mahjong_xa(machine_config &config); void igs_mahjong_xa_xor(machine_config &config); - void igs_mahjong_xa_xor_disable(machine_config &config); void init_crzybugs(); void init_crzybugsj(); @@ -424,15 +423,6 @@ void igs_m027xa_state::igs_mahjong_xa_xor(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &igs_m027xa_state::main_xor_map); } -void igs_m027xa_state::igs_mahjong_xa_xor_disable(machine_config &config) -{ - igs_mahjong_xa_xor(config); - - m_xa->set_disable(); -} - - - // prg at u34 // text at u15 // cg at u32 / u12 @@ -452,12 +442,11 @@ ROM_START( haunthig ) ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 ) ROM_LOAD16_WORD_SWAP( "haunted-h_text.u15", 0x000000, 0x80000, CRC(c23f48c8) SHA1(0cb1b6c61611a081ae4a3c0be51812045ff632fe) ) - // are these PGM-like sprites? ROM_REGION( 0x800000, "igs017_igs031:sprites", 0 ) ROM_LOAD( "haunted-h_cg.u32", 0x000000, 0x400000, BAD_DUMP CRC(e0ea10e6) SHA1(e81be78fea93e72d4b1f4c0b58560bda46cf7948) ) // not dumped for this set, FIXED BITS (xxxxxxx0xxxxxxxx) ROM_LOAD( "haunted-h_ext.u12", 0x400000, 0x400000, BAD_DUMP CRC(662eb883) SHA1(831ebe29e1e7a8b2c2fff7fbc608975771c3486c) ) // not dumped for this set, FIXED BITS (xxxxxxxx0xxxxxxx) - ROM_REGION( 0x200000, "oki", 0 ) // Oki M6295 samples, missing sample table, bad? + ROM_REGION( 0x200000, "oki", 0 ) // Oki M6295 samples ROM_LOAD( "haunted-h_sp.u3", 0x00000, 0x200000, BAD_DUMP CRC(fe3fcddf) SHA1(ac57ab6d4e4883747c093bd19d0025cf6588cb2c) ) // not dumped for this set ROM_REGION( 0x500, "plds", ROMREGION_ERASE00 ) @@ -479,13 +468,12 @@ ROM_START( haunthiga ) // IGS PCB-0575-04-HU - Has IGS027A, MX10EXAQC, IGS031, O ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 ) ROM_LOAD16_WORD_SWAP( "haunted-h_text.u15", 0x000000, 0x80000, CRC(c23f48c8) SHA1(0cb1b6c61611a081ae4a3c0be51812045ff632fe) ) - // are these PGM-like sprites? ROM_REGION( 0x800000, "igs017_igs031:sprites", 0 ) ROM_LOAD( "haunted-h_cg.u32", 0x000000, 0x400000, CRC(e0ea10e6) SHA1(e81be78fea93e72d4b1f4c0b58560bda46cf7948) ) // FIXED BITS (xxxxxxx0xxxxxxxx) ROM_LOAD( "haunted-h_ext.u12", 0x400000, 0x400000, CRC(662eb883) SHA1(831ebe29e1e7a8b2c2fff7fbc608975771c3486c) ) // FIXED BITS (xxxxxxxx0xxxxxxx) - ROM_REGION( 0x200000, "oki", 0 ) // Oki M6295 samples, missing sample table, bad? - ROM_LOAD( "haunted-h_sp.u3", 0x00000, 0x200000, BAD_DUMP CRC(fe3fcddf) SHA1(ac57ab6d4e4883747c093bd19d0025cf6588cb2c) ) + ROM_REGION( 0x200000, "oki", 0 ) // Oki M6295 samples + ROM_LOAD( "haunted-h_sp.u3", 0x00000, 0x200000, CRC(fe3fcddf) SHA1(ac57ab6d4e4883747c093bd19d0025cf6588cb2c) ) ROM_REGION( 0x500, "plds", ROMREGION_ERASE00 ) ROM_LOAD( "hu_u38a.u38", 0x000, 0x117, NO_DUMP ) // ATF16V8B, protected @@ -506,7 +494,6 @@ ROM_START( crzybugs ) // IGS PCB-0447-05-GM - Has IGS027A, MX10EXAQC, IGS031, Ok ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 ) ROM_LOAD16_WORD_SWAP( "crazy_bugs_text_u10.u10", 0x000000, 0x80000, CRC(db0d679a) SHA1(c5d039aa4fa2218b6f574ccb5b6da983b8d4067d) ) - // are these PGM-like sprites? ROM_REGION( 0x200000, "igs017_igs031:sprites", 0 ) ROM_LOAD( "crazy_bugs_cg.u19", 0x000000, 0x200000, CRC(9d53ad47) SHA1(46690a37acf8bd88c7fbe973db2faf5ef0cff805) ) // FIXED BITS (xxxxxxx0xxxxxxxx) // u18 not populated @@ -529,7 +516,6 @@ ROM_START( crzybugsa ) ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 ) ROM_LOAD16_WORD_SWAP( "crazy_bugs_text_u10.u10", 0x000000, 0x80000, CRC(db0d679a) SHA1(c5d039aa4fa2218b6f574ccb5b6da983b8d4067d) ) // M27C4002 - // are these PGM-like sprites? ROM_REGION( 0x200000, "igs017_igs031:sprites", 0 ) ROM_LOAD( "crazy_bugs_cg.u19", 0x000000, 0x200000, CRC(9d53ad47) SHA1(46690a37acf8bd88c7fbe973db2faf5ef0cff805) ) // M27C160, FIXED BITS (xxxxxxx0xxxxxxxx) // u18 not populated @@ -552,7 +538,6 @@ ROM_START( crzybugsb ) ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 ) ROM_LOAD16_WORD_SWAP( "crazy_bugs_text_u10.u10", 0x000000, 0x80000, BAD_DUMP CRC(db0d679a) SHA1(c5d039aa4fa2218b6f574ccb5b6da983b8d4067d) ) // not dumped for this set - // are these PGM-like sprites? ROM_REGION( 0x200000, "igs017_igs031:sprites", 0 ) ROM_LOAD( "crazy_bugs_cg.u19", 0x000000, 0x200000, BAD_DUMP CRC(9d53ad47) SHA1(46690a37acf8bd88c7fbe973db2faf5ef0cff805) ) // not dumped for this set, FIXED BITS (xxxxxxx0xxxxxxxx) // u18 not populated @@ -576,7 +561,6 @@ ROM_START( crzybugsj ) // IGS PCB-0575-04-HU - Has IGS027A, MX10EXAQC, IGS031, O ROM_LOAD16_WORD_SWAP( "crazy_bugs_text_u15.u15", 0x000000, 0x80000, CRC(db0d679a) SHA1(c5d039aa4fa2218b6f574ccb5b6da983b8d4067d) ) // u14 not populated - // are these PGM-like sprites? ROM_REGION( 0x200000, "igs017_igs031:sprites", 0 ) ROM_LOAD( "crazy_bugs_ani-cg-u32.u32", 0x000000, 0x200000, CRC(9d53ad47) SHA1(46690a37acf8bd88c7fbe973db2faf5ef0cff805) ) // FIXED BITS (xxxxxxx0xxxxxxxx) // u12 not populated @@ -589,16 +573,60 @@ ROM_START( crzybugsj ) // IGS PCB-0575-04-HU - Has IGS027A, MX10EXAQC, IGS031, O ROM_LOAD( "hu_u39.u39", 0x200, 0x2dd, CRC(75f58b46) SHA1(7cb136a41899ddd50c95a67ca6353ce5d8d92149) ) // AT22V10 ROM_END -ROM_START( tripfev ) // IGS PCB-0447-05-GM - Has IGS027A, MX10EXAQC, IGS031, Oki M6295, 3x 8-DIP banks +ROM_START( tripfev ) // IGS PCB-0575-02-HU PCB ROM_REGION( 0x04000, "maincpu", 0 ) // Internal ROM of IGS027A ARM based MCU - ROM_LOAD( "m1_igs027a.u37", 0x00000, 0x4000, CRC(a40ec1f8) SHA1(f6f7005d61522934758fd0a98bf383c6076b6afe) ) // sticker marked 'M1' + ROM_LOAD( "w1_igs027a.u42", 0x00000, 0x4000, CRC(a40ec1f8) SHA1(f6f7005d61522934758fd0a98bf383c6076b6afe) ) // sticker marked 'W1' + + ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg + ROM_LOAD( "v108.u34", 0x000000, 0x80000, CRC(f0ad18ed) SHA1(95239e7b9925f12008051140afb74d47a5da4a3a) ) // 27C4096 + + ROM_REGION( 0x10000, "xa:mcu", 0 ) // MX10EXAQC (80C51 XA based MCU) marked P7 + ROM_LOAD( "p7.u17", 0x00000, 0x10000, CRC(3c76b157) SHA1(d8d3a434fd649577a30d5855e3fb34998041f4e5) ) // MX10EXAQC (80C51 XA based MCU) marked P7, but same as haunthig, crzybugsj + + ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 ) + ROM_LOAD16_WORD_SWAP( "triple_fever_text.u15", 0x000000, 0x80000, CRC(522a1030) SHA1(9a7a5ba9b26bceb0d251be6139c10e4655fc19ec) ) // M27C4002 + + ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 ) + ROM_LOAD( "triple_fever_cg.u32", 0x000000, 0x400000, CRC(cd45bbf2) SHA1(7f1cf270245bbe4604de2cacade279ab13584dbd) ) // M27C322, FIXED BITS (xxxxxxx0xxxxxxxx) + // u18 not populated + + ROM_REGION( 0x200000, "oki", 0 ) // plain Oki M6295 samples + ROM_LOAD( "triplef_sp.u3", 0x000000, 0x200000, CRC(98b9cafd) SHA1(3bf3971f0d9520c98fc6b1c2e77ab9c178d21c62) ) // M27C160 +ROM_END + +ROM_START( tripfeva ) // IGS PCB-0447-05-GM - Has IGS027A, MX10EXAQC, IGS031, Oki M6295, 3x 8-DIP banks + ROM_REGION( 0x04000, "maincpu", 0 ) + // Internal ROM of IGS027A ARM based MCU + ROM_LOAD( "w1_igs027a.u37", 0x00000, 0x4000, CRC(a40ec1f8) SHA1(f6f7005d61522934758fd0a98bf383c6076b6afe) ) // sticker marked 'W1' ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg ROM_LOAD( "triple_fever_u23_v107_us.u23", 0x000000, 0x80000, CRC(aa56d888) SHA1(0b8b2765079259b76ea803289841d867c33c8cb2) ) // 27C4096 ROM_REGION( 0x10000, "xa:mcu", 0 ) // MX10EXAQC (80C51 XA based MCU) marked P7 - ROM_LOAD( "p7.u27", 0x00000, 0x10000, NO_DUMP ) + ROM_LOAD( "p7.u27", 0x00000, 0x10000, CRC(3c76b157) SHA1(d8d3a434fd649577a30d5855e3fb34998041f4e5) ) // MX10EXAQC (80C51 XA based MCU) marked P7, but same as haunthig, crzybugsj + + ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 ) + ROM_LOAD16_WORD_SWAP( "triple_fever_u10_text.u10", 0x000000, 0x80000, CRC(522a1030) SHA1(9a7a5ba9b26bceb0d251be6139c10e4655fc19ec) ) // M27C4002 + + ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 ) + ROM_LOAD( "triple_fever_u19_cg.u19", 0x000000, 0x400000, CRC(cd45bbf2) SHA1(7f1cf270245bbe4604de2cacade279ab13584dbd) ) // M27C322, FIXED BITS (xxxxxxx0xxxxxxxx) + // u18 not populated + + ROM_REGION( 0x200000, "oki", 0 ) // plain Oki M6295 samples + ROM_LOAD( "triplef_sp_u15.u15", 0x000000, 0x200000, CRC(98b9cafd) SHA1(3bf3971f0d9520c98fc6b1c2e77ab9c178d21c62) ) // M27C160 +ROM_END + +ROM_START( tripfevb ) // IGS PCB-0447-05-GM - Has IGS027A, MX10EXAQC, IGS031, Oki M6295, 3x 8-DIP banks + ROM_REGION( 0x04000, "maincpu", 0 ) + // Internal ROM of IGS027A ARM based MCU + ROM_LOAD( "w1_igs027a.u37", 0x00000, 0x4000, CRC(a40ec1f8) SHA1(f6f7005d61522934758fd0a98bf383c6076b6afe) ) // sticker marked 'W1' + + ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg + ROM_LOAD( "u23 27c4096.bin", 0x000000, 0x80000, CRC(f870edda) SHA1(30d1c2d4c575749adbbf28b64eca1f35bcf7dfca) ) // 27C4096, unreadable label + + ROM_REGION( 0x10000, "xa:mcu", 0 ) // MX10EXAQC (80C51 XA based MCU) marked P7 + ROM_LOAD( "p7.u27", 0x00000, 0x10000, CRC(3c76b157) SHA1(d8d3a434fd649577a30d5855e3fb34998041f4e5) ) // MX10EXAQC (80C51 XA based MCU) marked P7, but same as haunthig, crzybugsj ROM_REGION( 0x80000, "igs017_igs031:tilemaps", 0 ) ROM_LOAD16_WORD_SWAP( "triple_fever_u10_text.u10", 0x000000, 0x80000, CRC(522a1030) SHA1(9a7a5ba9b26bceb0d251be6139c10e4655fc19ec) ) // M27C4002 @@ -614,7 +642,7 @@ ROM_END ROM_START( wldfruit ) // IGS PCB-0447-05-GM - Has IGS027A, MX10EXAQC, IGS031, Oki M6295, 3x 8-DIP banks ROM_REGION( 0x04000, "maincpu", 0 ) // Internal ROM of IGS027A ARM based MCU - ROM_LOAD( "w1.u37", 0x00000, 0x4000, NO_DUMP ) // sticker marked 'W1' + ROM_LOAD( "w1.u37", 0x00000, 0x4000, NO_DUMP ) // sticker marked 'W1?' (same label, but not the same as tripfev? or an error) ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg ROM_LOAD( "wild_fruit_v-208us.u23", 0x000000, 0x80000, CRC(d43398f1) SHA1(ecc4bd5cb6da16b35c63b843cf7beec1ab84ed9d) ) // M27C4002 @@ -642,7 +670,7 @@ void igs_m027xa_state::pgm_create_dummy_internal_arm_region() for (int i = 0; i < 0x4000 / 2; i += 2) { temp16[i] = 0xff1e; - temp16[ i +1] = 0xe12f; + temp16[i +1] = 0xe12f; } @@ -697,16 +725,17 @@ void igs_m027xa_state::init_wldfruit() // These use the MX10EXAQC (80c51XA from Philips) // the PCBs are closer to igs_fear.cpp in terms of layout -GAME( 2008, haunthig, 0, igs_mahjong_xa, base, igs_m027xa_state, init_hauntedh, ROT0, "IGS", "Haunted House (IGS, V109US)", MACHINE_IS_SKELETON ) // IGS FOR V109US 2008 10 14 -GAME( 2006, haunthiga, haunthig, igs_mahjong_xa, base, igs_m027xa_state, init_hauntedh, ROT0, "IGS", "Haunted House (IGS, V101US)", MACHINE_IS_SKELETON ) // IGS FOR V101US 2006 08 23 +GAME( 2008, haunthig, 0, igs_mahjong_xa, base, igs_m027xa_state, init_hauntedh, ROT0, "IGS", "Haunted House (IGS, V109US)", MACHINE_NOT_WORKING ) // IGS FOR V109US 2008 10 14 +GAME( 2006, haunthiga, haunthig, igs_mahjong_xa, base, igs_m027xa_state, init_hauntedh, ROT0, "IGS", "Haunted House (IGS, V101US)", MACHINE_NOT_WORKING ) // IGS FOR V101US 2006 08 23 GAMEL( 2009, crzybugs, 0, igs_mahjong_xa_xor, base, igs_m027xa_state, init_crzybugs, ROT0, "IGS", "Crazy Bugs (V204US)", 0, layout_crzybugs ) // IGS FOR V204US 2009 5 19 GAMEL( 2006, crzybugsa, crzybugs, igs_mahjong_xa_xor, base, igs_m027xa_state, init_crzybugs, ROT0, "IGS", "Crazy Bugs (V202US)", 0, layout_crzybugs ) // IGS FOR V100US 2006 3 29 but also V202US string GAMEL( 2005, crzybugsb, crzybugs, igs_mahjong_xa_xor, base, igs_m027xa_state, init_crzybugs, ROT0, "IGS", "Crazy Bugs (V200US)", 0, layout_crzybugs ) // FOR V100US 2005 7 20 but also V200US string -GAME( 2007, crzybugsj, crzybugs, igs_mahjong_xa, base, igs_m027xa_state, init_crzybugsj, ROT0, "IGS", "Crazy Bugs (V103JP)", MACHINE_IS_SKELETON ) // IGS FOR V101JP 2007 06 08 +GAME( 2007, crzybugsj, crzybugs, igs_mahjong_xa, base, igs_m027xa_state, init_crzybugsj, ROT0, "IGS", "Crazy Bugs (V103JP)", MACHINE_NOT_WORKING ) // IGS FOR V101JP 2007 06 08 -// XA dump is missing, so XA CPU will crash, disable for now -GAME( 2006, tripfev, 0, igs_mahjong_xa_xor_disable, base, igs_m027xa_state, init_tripfev, ROT0, "IGS", "Triple Fever (V107US)", MACHINE_IS_SKELETON ) // IGS FOR V107US 2006 09 07 +GAME( 2006, tripfev, 0, igs_mahjong_xa_xor, base, igs_m027xa_state, init_tripfev, ROT0, "IGS", "Triple Fever (V108US)", MACHINE_NOT_WORKING ) +GAME( 2006, tripfeva, tripfev, igs_mahjong_xa_xor, base, igs_m027xa_state, init_tripfev, ROT0, "IGS", "Triple Fever (V107US)", MACHINE_NOT_WORKING ) // IGS FOR V107US 2006 09 07 +GAME( 2006, tripfevb, tripfev, igs_mahjong_xa_xor, base, igs_m027xa_state, init_tripfev, ROT0, "IGS", "Triple Fever (V105US)", MACHINE_NOT_WORKING ) -GAME( 200?, wldfruit, 0, igs_mahjong_xa, base, igs_m027xa_state, init_wldfruit, ROT0, "IGS", "Wild Fruit (V208US)", MACHINE_IS_SKELETON ) // IGS-----97----V208US +GAME( 200?, wldfruit, 0, igs_mahjong_xa, base, igs_m027xa_state, init_wldfruit, ROT0, "IGS", "Wild Fruit (V208US)", MACHINE_NOT_WORKING ) // IGS-----97----V208US diff --git a/src/mame/igs/pgmcrypt.cpp b/src/mame/igs/pgmcrypt.cpp index 55f26ddbbba..fa5bc455c74 100644 --- a/src/mame/igs/pgmcrypt.cpp +++ b/src/mame/igs/pgmcrypt.cpp @@ -1850,6 +1850,29 @@ void lhdmg_decrypt(running_machine &machine) } +void tripshot_decrypt(running_machine &machine) +{ + memory_region *const region = machine.root_device().memregion("user1"); + auto const src = util::little_endian_cast(reinterpret_cast(region->base())); + auto const rom_size = region->bytes(); + + for (int i = 0; i < rom_size / 2; i++) + { + uint16_t x = 0; + + IGS27_CRYPT1 + IGS27_CRYPT2 + IGS27_CRYPT3 + IGS27_CRYPT4_ALT + IGS27_CRYPT5 + IGS27_CRYPT6 + IGS27_CRYPT7 + IGS27_CRYPT8 + + src[i] ^= x; + } +} + void extradrw_decrypt(running_machine &machine) { diff --git a/src/mame/igs/pgmcrypt.h b/src/mame/igs/pgmcrypt.h index cad964b0849..007367379ad 100644 --- a/src/mame/igs/pgmcrypt.h +++ b/src/mame/igs/pgmcrypt.h @@ -57,6 +57,7 @@ void tripfev_decrypt(running_machine &machine); void wldfruit_decrypt(running_machine &machine); void lthy_decrypt(running_machine &machine); void lhdmg_decrypt(running_machine &machine); +void tripshot_decrypt(running_machine &machine); void extradrw_decrypt(running_machine &machine); #endif // MAME_IGS_PGMCRYPT_H diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 0bd4f5c4ad8..9f0d0ff5d6b 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -20310,6 +20310,7 @@ oceanpar // oceanpara // olympic5 // (c) 2005 olympic5a // (c) 2003 +tripslot // (c) 2007 qlgs // (c) 1999 sdwx // (c) 2002 slqz3 // (c) 1999 @@ -20329,6 +20330,8 @@ crzybugsj // (c) 2007 haunthig // (c) 2008 haunthiga // (c) 2006 tripfev // (c) 2006 +tripfeva // (c) 2006 +tripfevb // (c) 2006 wldfruit // (c) 200? @source:igs/igs_m036.cpp From df90a55568bd14b1207372f8cbd46e990787cc87 Mon Sep 17 00:00:00 2001 From: angelosa Date: Wed, 18 Sep 2024 21:20:40 +0200 Subject: [PATCH 7/8] hitachi/bmjr.cpp: hookup cassette software list New working software list items ------------------------------- bmjr_cass: Wilwesp [Gaming Alexandria] --- hash/bmjr_cass.xml | 22 ++++++++++++++++++++++ src/mame/hitachi/bmjr.cpp | 29 +++++++++++++++++------------ 2 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 hash/bmjr_cass.xml diff --git a/hash/bmjr_cass.xml b/hash/bmjr_cass.xml new file mode 100644 index 00000000000..503050556b4 --- /dev/null +++ b/hash/bmjr_cass.xml @@ -0,0 +1,22 @@ + + + + + + + + + Wilwesp + 1984 + Micom BASIC + + + + + + + + + diff --git a/src/mame/hitachi/bmjr.cpp b/src/mame/hitachi/bmjr.cpp index 19e531dd155..07af7c4bab8 100644 --- a/src/mame/hitachi/bmjr.cpp +++ b/src/mame/hitachi/bmjr.cpp @@ -26,6 +26,7 @@ Basic Master Jr. (MB-6885) (c) 1982? Hitachi #include "emupal.h" #include "screen.h" +#include "softlist_dev.h" #include "speaker.h" @@ -37,7 +38,7 @@ class bmjr_state : public driver_device bmjr_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_cass(*this, "cassette") + , m_cassette(*this, "cassette") , m_dac(*this, "dac") , m_work_ram(*this, "work_ram") , m_basic_view(*this, "basic_view") @@ -61,7 +62,7 @@ class bmjr_state : public driver_device void main_map(address_map &map); required_device m_maincpu; - required_device m_cass; + required_device m_cassette; required_device m_dac; required_shared_ptr m_work_ram; memory_view m_basic_view; @@ -172,7 +173,7 @@ u8 bmjr_state::timer_r() TIMER_DEVICE_CALLBACK_MEMBER( bmjr_state::kansas_r ) { /* cassette - turn pulses into a bit */ - bool cass_ws = (m_cass->input() > +0.04) ? 1 : 0; + bool cass_ws = (m_cassette->input() > +0.04) ? 1 : 0; m_casscnt++; if (cass_ws != m_cassold) @@ -190,7 +191,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( bmjr_state::kansas_r ) u8 bmjr_state::tape_r() { - //m_cass->change_state(CASSETTE_PLAY,CASSETTE_MASK_UISTATE); + //m_cassette->change_state(CASSETTE_PLAY,CASSETTE_MASK_UISTATE); return m_cassbit ? 0xff : 0x00; } @@ -203,23 +204,23 @@ void bmjr_state::tape_w(u8 data) } else { - //m_cass->change_state(CASSETTE_RECORD,CASSETTE_MASK_UISTATE); - m_cass->output(BIT(data, 0) ? -1.0 : +1.0); + //m_cassette->change_state(CASSETTE_RECORD,CASSETTE_MASK_UISTATE); + m_cassette->output(BIT(data, 0) ? -1.0 : +1.0); } } u8 bmjr_state::tape_stop_r() { m_tape_switch = 0; - //m_cass->change_state(CASSETTE_STOPPED,CASSETTE_MASK_UISTATE); - m_cass->change_state(CASSETTE_MOTOR_DISABLED,CASSETTE_MASK_MOTOR); + //m_cassette->change_state(CASSETTE_STOPPED,CASSETTE_MASK_UISTATE); + m_cassette->change_state(CASSETTE_MOTOR_DISABLED,CASSETTE_MASK_MOTOR); return 0x01; } u8 bmjr_state::tape_start_r() { m_tape_switch = 1; - m_cass->change_state(CASSETTE_MOTOR_ENABLED,CASSETTE_MASK_MOTOR); + m_cassette->change_state(CASSETTE_MOTOR_ENABLED,CASSETTE_MASK_MOTOR); return 0x01; } @@ -452,7 +453,7 @@ void bmjr_state::machine_reset() //m_beep->set_state(0); m_tape_switch = 0; m_key_select = 0; - m_cass->change_state(CASSETTE_MOTOR_DISABLED,CASSETTE_MASK_MOTOR); + m_cassette->change_state(CASSETTE_MOTOR_DISABLED,CASSETTE_MASK_MOTOR); m_bank_mode = 0; m_basic_view.select(0); m_printer_view.select(0); @@ -469,8 +470,10 @@ void bmjr_state::bmjr(machine_config &config) m_maincpu->set_vblank_int("screen", FUNC(bmjr_state::irq0_line_hold)); // TRQ237/TRQ359 - CASSETTE(config, m_cass); - m_cass->add_route(ALL_OUTPUTS, "mono", 0.05); + CASSETTE(config, m_cassette); + m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05); + m_cassette->set_interface("bmjr_cass"); + TIMER(config, "kansas_r").configure_periodic(FUNC(bmjr_state::kansas_r), attotime::from_hz(40000)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -487,6 +490,8 @@ void bmjr_state::bmjr(machine_config &config) SPEAKER(config, "mono").front_center(); // TODO: unknown DAC type, likely connected to discrete circuitry. DAC_5BIT_BINARY_WEIGHTED(config, m_dac).add_route(ALL_OUTPUTS, "mono", 0.25); + + SOFTWARE_LIST(config, "cass_list").set_original("bmjr_cass"); } /* ROM definition */ From 844b0763d46e1fbd2f21aea9528316a7b0cab7da Mon Sep 17 00:00:00 2001 From: Octocontrabass Date: Wed, 18 Sep 2024 20:44:07 -0700 Subject: [PATCH 8/8] Add Linksys PAP2 and other MIPS-X improvements (#12726) New machines marked as NOT WORKING ---------------------------------- Linksys PAP2 [unknown] * cpu/mipsx/mipsxdasm.cpp: fix various bugs [Octocontrabass] * tomy/kissite.cpp: memory map borrowed from Linksys PAP2 [Octocontrabass] --- src/devices/cpu/mipsx/mipsx.cpp | 2 +- src/devices/cpu/mipsx/mipsxdasm.cpp | 159 ++++++++++++++++++---------- src/mame/mame.lst | 3 + src/mame/skeleton/pap2.cpp | 99 +++++++++++++++++ src/mame/tomy/kisssite.cpp | 10 +- 5 files changed, 212 insertions(+), 61 deletions(-) create mode 100644 src/mame/skeleton/pap2.cpp diff --git a/src/devices/cpu/mipsx/mipsx.cpp b/src/devices/cpu/mipsx/mipsx.cpp index 72e45f84d1a..438c4b4e3b6 100644 --- a/src/devices/cpu/mipsx/mipsx.cpp +++ b/src/devices/cpu/mipsx/mipsx.cpp @@ -11,7 +11,7 @@ DEFINE_DEVICE_TYPE(MIPSX, mipsx_cpu_device, "mipsx", "MIPS-X") mipsx_cpu_device::mipsx_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : cpu_device(mconfig, MIPSX, tag, owner, clock) - , m_program_config("program", ENDIANNESS_BIG, 32, 24, 0) + , m_program_config("program", ENDIANNESS_BIG, 32, 32, 0) , m_pc(0) , m_program(nullptr) , m_icount(0) diff --git a/src/devices/cpu/mipsx/mipsxdasm.cpp b/src/devices/cpu/mipsx/mipsxdasm.cpp index 7705a666ccd..06f6e075aff 100644 --- a/src/devices/cpu/mipsx/mipsxdasm.cpp +++ b/src/devices/cpu/mipsx/mipsxdasm.cpp @@ -10,7 +10,7 @@ constexpr bool SHOW_R0_AS_0 = false; char const *const REGNAMES[32] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", - "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15" + "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31" }; @@ -55,16 +55,36 @@ constexpr int get_sq(u32 opcode) return BIT(opcode, 16, 1); } -constexpr int get_asr_amount(int shift) +constexpr int get_shift_amount(int shift) { - // TODO - return shift; -} - -constexpr int get_sh_amount(int shift) -{ - // TODO - return shift; + switch (shift & 0xf) + { + case 0x1: + { + shift = ((shift & 0x70) >> 2) + 0; + break; + } + case 0x2: + { + shift = ((shift & 0x70) >> 2) + 1; + break; + } + case 0x4: + { + shift = ((shift & 0x70) >> 2) + 2; + break; + } + case 0x8: + { + shift = ((shift & 0x70) >> 2) + 3; + break; + } + default: + { + return 0; + } + } + return 32 - shift; } @@ -144,7 +164,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da default: { - util::stream_format(stream, "Unhandled TY0 (%08x)", opcode); + util::stream_format(stream, "unknown TY0 (%08x)", opcode); break; } } @@ -153,7 +173,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da case 1: { - u8 op = get_op(opcode); + const u8 op = get_op(opcode); switch (op) { @@ -170,7 +190,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da } else { - util::stream_format(stream, "illegal mstart form"); + util::stream_format(stream, "invalid mstart TY1 OP0 (%02x, %02x, %02x %03x)", get_src1(opcode), get_src2_dest(opcode), get_compute_dest(opcode), get_compute_compfunc(opcode)); } } else if (comp == 0x099) @@ -183,7 +203,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da } else { - util::stream_format(stream, "unknown TY1 subcase 0 (%02x, %02x, %02x %04x)", get_src1(opcode), get_src2_dest(opcode), get_compute_dest(opcode), get_compute_compfunc(opcode)); + util::stream_format(stream, "unknown TY1 OP0 (%02x, %02x, %02x %03x)", get_src1(opcode), get_src2_dest(opcode), get_compute_dest(opcode), get_compute_compfunc(opcode)); } break; } @@ -200,28 +220,53 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da { util::stream_format(stream, "rotlb %s,%s,%s", get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode)), get_regname(get_compute_dest(opcode))); } - else if ((comp & 0xf80) == 0x200) - { - int shift = get_sh_amount(get_compute_compfunc(opcode) & 0x7f); - util::stream_format(stream, "sh %s,%s,%s,#%d", get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode)), get_regname(get_compute_dest(opcode)), shift); - } else if ((comp & 0xf80) == 0x100) { const u8 src2 = get_src2_dest(opcode); if (src2 == 0x0) { - int shift = get_asr_amount((get_compute_compfunc(opcode) & 0x7f)); - util::stream_format(stream, "asr %s,%s,#%d", get_regname(get_src1(opcode)), get_regname(get_compute_dest(opcode)), shift); + const int shift = get_shift_amount((get_compute_compfunc(opcode) & 0x7f)); + if(shift != 0) + { + util::stream_format(stream, "asr %s,%s,#%d", get_regname(get_src1(opcode)), get_regname(get_compute_dest(opcode)), shift); + } + else + { + util::stream_format(stream, "asr %s,%s,#invalid (%02x)", get_regname(get_src1(opcode)), get_regname(get_compute_dest(opcode)), get_compute_compfunc(opcode) & 0x7f); + } } else { - util::stream_format(stream, "illegal asr form"); + util::stream_format(stream, "invalid asr TY1 OP1 (%02x, %02x, %02x %03x)", get_src1(opcode), get_src2_dest(opcode), get_compute_dest(opcode), get_compute_compfunc(opcode)); + } + } + else if ((comp & 0xf80) == 0x200) + { + const int shift = get_shift_amount(get_compute_compfunc(opcode) & 0x7f); + if(shift != 0) + { + if (get_src1(opcode) == 0) + { + util::stream_format(stream, "lsl %s,%s,#%d", get_regname(get_src2_dest(opcode)), get_regname(get_compute_dest(opcode)), 32 - shift); + } + else if (get_src2_dest(opcode) == 0) + { + util::stream_format(stream, "lsr %s,%s,#%d", get_regname(get_src1(opcode)), get_regname(get_compute_dest(opcode)), shift); + } + else + { + util::stream_format(stream, "sh %s,%s,%s,#%d", get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode)), get_regname(get_compute_dest(opcode)), shift); + } + } + else + { + util::stream_format(stream, "sh %s,%s,%s,#invalid (%02x)", get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode)), get_regname(get_compute_dest(opcode)), get_compute_compfunc(opcode) & 0x7f); } } else { - util::stream_format(stream, "unknown TY1 subcase 1 (%02x, %02x, %02x %04x)", get_src1(opcode), get_src2_dest(opcode), get_compute_dest(opcode), get_compute_compfunc(opcode)); + util::stream_format(stream, "unknown TY1 OP1 (%02x, %02x, %02x %03x)", get_src1(opcode), get_src2_dest(opcode), get_compute_dest(opcode), get_compute_compfunc(opcode)); } break; } @@ -232,7 +277,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da if (comp == 0x00b) { - util::stream_format(stream, "blc %s,%s,%s", get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode)), get_regname(get_compute_dest(opcode))); + util::stream_format(stream, "bic %s,%s,%s", get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode)), get_regname(get_compute_dest(opcode))); } else if (comp == 0x00f) { @@ -242,24 +287,24 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da } else { - util::stream_format(stream, "illegal not form"); + util::stream_format(stream, "invalid not TY1 OP4 (%02x, %02x, %02x %03x)", get_src1(opcode), get_src2_dest(opcode), get_compute_dest(opcode), get_compute_compfunc(opcode)); } } else if (comp == 0x019) { - u8 src2 = get_src2_dest(opcode); - if (src2 == 0) + const u8 src1 = get_src1(opcode); + const u8 src2 = get_src2_dest(opcode); + if ((src1 == 0) || (src2 == 0)) { - const u8 src1 = get_src1(opcode); const u8 dest = get_compute_dest(opcode); - - if ((src1 == 0) && (dest == 0)) + if (dest == 0) { util::stream_format(stream, "nop"); } else { - util::stream_format(stream, "mov %s,%s", get_regname(get_src1(opcode)), get_regname(get_compute_dest(opcode))); + // manuals say src2==0 for mov, but actual ROMs use src1==0 + util::stream_format(stream, "mov %s,%s", get_regname(get_src1(opcode) | get_src2_dest(opcode)), get_regname(get_compute_dest(opcode))); } } else @@ -289,14 +334,14 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da } else { - util::stream_format(stream, "unknown compute (%02x, %02x, %02x %04x)", get_src1(opcode), get_src2_dest(opcode), get_compute_dest(opcode), get_compute_compfunc(opcode)); + util::stream_format(stream, "unknown TY1 OP4 (%02x, %02x, %02x %03x)", get_src1(opcode), get_src2_dest(opcode), get_compute_dest(opcode), get_compute_compfunc(opcode)); } break; } default: { - util::stream_format(stream, "Unhandled TY1 (%08x)", opcode); + util::stream_format(stream, "unknown TY1 (%08x)", opcode); break; } } @@ -336,6 +381,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da { // stt - Store Through // stt Offset[rSrc1], rDest + // maybe "store byte" on ES3210 and ES3890 util::stream_format(stream, "stt 0x%08x[%s],%s", imm17, get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode))); break; } @@ -343,11 +389,12 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da { // ldf - Load Floating Point // ldf Offset[rSrc1], rDest + // maybe "load byte" on ES3210 and ES3890 util::stream_format(stream, "ldf 0x%08x[%s],%s", imm17, get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode))); break; } - case 5: // movfrc or aluc + case 5: // movfrc or aluc, maybe "load byte" on ES3210 and ES3890 { // this is just a suggested form const u8 c2 = BIT(opcode, 0, 4); @@ -359,11 +406,11 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da if (src == 0) { - util::stream_format(stream, "movfrc %s,(%02x,%02x,%02x,%02x)", get_regname(dest), op, func, c1, c2); + util::stream_format(stream, "movfrc (%02x,%02x,%02x,%02x),%s", op, func, c1, c2, get_regname(dest)); } else { - util::stream_format(stream, "illegal movfrc form"); + util::stream_format(stream, "movfrc 0x%08x[%s],%s", imm17, get_regname(src), get_regname(dest)); } break; @@ -375,7 +422,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da util::stream_format(stream, "stf 0x%08x[%s],%s", imm17, get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode))); break; } - case 7: // movtoc + case 7: // movtoc, maybe "store byte" on ES3210 { // this is just a suggested form const u8 c2 = BIT(opcode, 0, 4); @@ -392,15 +439,15 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da else { //util::stream_format(stream, "illegal movtoc form"); - // this form appears to be used - util::stream_format(stream, "movtoc %s,(%02x,%02x,%02x,%02x) (src1 == %s)", get_regname(dest), op, func, c1, c2, get_regname(src)); + //util::stream_format(stream, "movtoc %s,(%02x,%02x,%02x,%02x) (src1 == %s)", get_regname(dest), op, func, c1, c2, get_regname(src)); + util::stream_format(stream, "movtoc 0x%08x[%s],%s", imm17, get_regname(src), get_regname(dest)); } break; } default: { - util::stream_format(stream, "Unhandled TY2 (%08x)", opcode); + util::stream_format(stream, "unknown TY2 (%08x)", opcode); break; } } @@ -417,7 +464,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da { // jspci - Jump Indexed and Store PC // jspci rSrc1,#Immed,Rdest - const int imm17 = util::sext(opcode, 17) * 2; + const int imm17 = util::sext(opcode, 17) * 4; util::stream_format(stream, "jspci %s,#%02x,%s", get_regname(get_src1(opcode)), imm17, get_regname(get_src2_dest(opcode))); break; } @@ -431,7 +478,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da } else { - util::stream_format(stream, "illegal hsc form"); + util::stream_format(stream, "invalid hsc TY3 OP1 (%08x)", opcode); } break; } @@ -457,12 +504,12 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da } else { - util::stream_format(stream, "illegal movtos form"); + util::stream_format(stream, "invalid movtos TY3 OP2 (%08x)", opcode); } } else { - util::stream_format(stream, "illegal movtos form"); + util::stream_format(stream, "invalid movtos TY3 OP2 (%08x)", opcode); } break; @@ -488,12 +535,12 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da } else { - util::stream_format(stream, "illegal movfrs form"); + util::stream_format(stream, "invalid movfrs TY3 OP3 (%08x)", opcode); } } else { - util::stream_format(stream, "illegal movfrs form"); + util::stream_format(stream, "invalid movfrs TY3 OP3 (%08x)", opcode); } break; @@ -502,7 +549,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da case 4: { const int imm17 = util::sext(opcode, 17); - util::stream_format(stream, "addi %s,%s,0x%08x", get_regname(get_src1(opcode)), get_regname(get_src2_dest(opcode)), imm17); + util::stream_format(stream, "addi %s,#0x%08x,%s", get_regname(get_src1(opcode)), imm17, get_regname(get_src2_dest(opcode))); break; } @@ -520,12 +567,12 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da } else { - util::stream_format(stream, "illegal jpc form"); + util::stream_format(stream, "invalid jpc TY3 OP5 (%08x)", opcode); } } else { - util::stream_format(stream, "illegal jpc form"); + util::stream_format(stream, "invalid jpc TY3 OP5 (%08x)", opcode); } break; } @@ -534,12 +581,12 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da { if ((opcode & 0x07fff807) == 0x00000003) { - const int vector = (opcode & 0x000007f8) >> 3; - util::stream_format(stream, "trap %02x", vector); + const u8 vector = ~((opcode & 0x000007f8) >> 3); + util::stream_format(stream, "trap 0x%02x", vector); } else { - util::stream_format(stream, "illegal trap form"); + util::stream_format(stream, "invalid trap TY3 OP6 (%08x)", opcode); } break; } @@ -558,19 +605,19 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da } else { - util::stream_format(stream, "illegal jpcrs form"); + util::stream_format(stream, "invalid jpcrs TY3 OP7 (%08x)", opcode); } } else { - util::stream_format(stream, "illegal jpcrs form"); + util::stream_format(stream, "invalid jpcrs TY3 OP7 (%08x)", opcode); } break; } default: { - util::stream_format(stream, "Unhandled TY3 (%08x)", opcode); + util::stream_format(stream, "unknown TY3 (%08x)", opcode); break; } } @@ -579,7 +626,7 @@ offs_t mipsx_disassembler::disassemble(std::ostream& stream, offs_t pc, const da default: { - util::stream_format(stream, "Unhandled (%08x)", opcode); + util::stream_format(stream, "unknown (%08x)", opcode); break; } } diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 9f0d0ff5d6b..634acf3be15 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -42371,6 +42371,9 @@ p8000_16 // @source:skeleton/palestra.cpp palestra +@source:skeleton/pap2.cpp +pap2 + @source:skeleton/pcksurfer.cpp pcksurfer // (c) 2006 Datawind diff --git a/src/mame/skeleton/pap2.cpp b/src/mame/skeleton/pap2.cpp new file mode 100644 index 00000000000..f00c4f0248f --- /dev/null +++ b/src/mame/skeleton/pap2.cpp @@ -0,0 +1,99 @@ +/* + +Linksys PAP2 two-port analog telephone adapter + +ESS Visba 3 ES3890F @ 27MHz (CPU/MCU) +Realtek RTL8019AS (NIC) +ICSI IC41LV16100S-50KG (2MB RAM) +SST39VF080-70-4C-EI (1MB flash ROM) +2x Silicon Labs Si3210-KT (line interfaces) + +Four of the five LEDs are controlled by ES3890F GPIOs +Power LEDs are connected to AUX1[4] and AUX1[5] (pin 112 and 113) +Phone 1 LED is connected to AUX1[6] (pin 114) +Phone 2 LED is connected to AUX1[7] (pin 115) +Ethernet LED is connected to RTL8019AS somehow + +RTL8019AS pin 65 is tied to VDD to disable PnP +RTL8019AS pin 96 is tied to ground to share the flash ROM's 8-bit data bus +RTL8019AS registers are selected when ES3890F pin 19 (/CS1) is low +It looks like the RTL8019AS EEPROM pins are connected to ES3890F AUX2[0-3]? + + +There are several ATAs based on essentially the same hardware: + +Sipura SPA-2000 +Sipura SPA-1000 +Sipura SPA-3000 (ES3890F, RTL8019AS, 2MB RAM, 1MB flash, unknown line interfaces) +Sipura SPA-1001 (ES3890F, RTL8019AS, 2MB RAM, 1MB flash, 1x Si3210) +Sipura SPA-2100 (Sipura SIP316F @ 27MHz, 2x RTL8019AS, 8MB RAM, 2MB flash, unknown line interfaces) +Sipura SPA-2002 +Linksys PAP2T (ES3890F, RTL8019AS, 2MB RAM, 1MB flash, 2x Si3215) +Linksys SPA2102? + +There are also ATAs with similar names but probably very different hardware: + +Linksys PAP2 V2 +Cisco SPA112 +Cisco SPA122 + +*/ + +#include "emu.h" + +#include "cpu/mipsx/mipsx.h" + + +namespace { + +class pap2_state : public driver_device + +{ +public: + pap2_state(machine_config const &mconfig, device_type type, char const *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { + } + + void pap2(machine_config &config) ATTR_COLD; + +protected: + virtual void machine_reset() override; + +private: + required_device m_maincpu; + + void mem(address_map &map); +}; + + +void pap2_state::machine_reset() +{ + m_maincpu->set_state_int(STATE_GENPC, 0x1cffff80); // might actually be 0x7fffff80 with a ROM mirror +} + +void pap2_state::mem(address_map &map) +{ + map(0x00000000, 0x001fffff).ram(); + map(0x1c000000, 0x1c0fffff).mirror(0x00f00000).rom().region("maincpu", 0); + // ES3890F registers at 0x20000000-0x2000ffff, ES6008 datasheet could be helpful +} + +void pap2_state::pap2(machine_config &config) +{ + MIPSX(config, m_maincpu, 27'000'000); + m_maincpu->set_addrmap(AS_PROGRAM, &pap2_state::mem); +} + +INPUT_PORTS_START(pap2) +INPUT_PORTS_END + +ROM_START(pap2) + ROM_REGION32_BE(0x100000, "maincpu", 0 ) + ROM_LOAD("linksys-pap2-2.0.12-ls_rom dump of pap2 flash chip.rom", 0x000000, 0x100000, BAD_DUMP CRC(4d0f1e5d) SHA1(73b163b00a3709a14f7419283c8515dd91009598) ) +ROM_END + +} + +SYST( 200?, pap2, 0, 0, pap2, pap2, pap2_state, empty_init, "Linksys (Cisco)", "PAP2", MACHINE_IS_SKELETON ) diff --git a/src/mame/tomy/kisssite.cpp b/src/mame/tomy/kisssite.cpp index 446315af94d..949f929cdd1 100644 --- a/src/mame/tomy/kisssite.cpp +++ b/src/mame/tomy/kisssite.cpp @@ -20,7 +20,7 @@ S1L9223A01-Q0 SAMSUNG C031 S5L9284D01-Q0 -ASD AE43BH40I16I-35 +ASD AE43BH4016I-35 50G00290919D F 037B @@ -77,17 +77,19 @@ class kisssite_state : public driver_device void kisssite_state::machine_reset() { - m_maincpu->set_state_int(STATE_GENPC, 0xe2cc); // temp, there is code here, but this is unlikely to be the entry point + m_maincpu->set_state_int(STATE_GENPC, 0x1cffff80); // might actually be 0x7fffff80 with a ROM mirror } void kisssite_state::mem(address_map &map) { - map(0x0000000, 0x003ffff).rom(); + map(0x00000000, 0x0007ffff).ram(); + map(0x1c000000, 0x1c03ffff).mirror(0x00fc0000).rom().region("maincpu", 0); + // registers at 0x20000000-0x2000ffff, ES6008 datasheet could be helpful } void kisssite_state::kisssite(machine_config &config) { - MIPSX(config, m_maincpu, 60'000'000); // there is MIPS-X code at at around 0xe2e0 in the ROM, 0x60000019 is "r0 + r0 -> r0" which acts as a NOP + MIPSX(config, m_maincpu, 60'000'000); m_maincpu->set_addrmap(AS_PROGRAM, &kisssite_state::mem); CDROM(config, "cdrom").set_interface("cdrom");