diff options
author | 2014-04-10 19:40:11 +0000 | |
---|---|---|
committer | 2014-04-10 19:40:11 +0000 | |
commit | 057d4c763c968eb00b639044575382755676993f (patch) | |
tree | df2e38d5a05f0343a86fb00e9daebef075ded85b | |
parent | 9a26d675efa2e7f6fa8ae9506672dc258ab80f3c (diff) |
(MESS) rainbow.c : unmap unavailable RAM. Hard limits and 'floating bus' code removed. [Bavarese]
(MESS) dec_lk201.c : KEYCODE_2 corrected. RIGHT CONTROL now triggers DO. [Bavarese]
-rw-r--r-- | src/mess/drivers/rainbow.c | 130 | ||||
-rw-r--r-- | src/mess/machine/dec_lk201.c | 82 |
2 files changed, 117 insertions, 95 deletions
diff --git a/src/mess/drivers/rainbow.c b/src/mess/drivers/rainbow.c index 6517276229a..603fb837859 100644 --- a/src/mess/drivers/rainbow.c +++ b/src/mess/drivers/rainbow.c @@ -168,6 +168,22 @@ W16 pulls J2 printer port pin 1 to GND when set (chassis to logical GND). W17 pulls J1 serial port pin 1 to GND when set (chassis to logical GND). ****************************************************************************/ +// Define standard and maximum RAM sizes (A, then B model): +//#define BOARD_RAM 0x10000 // 64 K base RAM (100-A) +//#define END_OF_RAM 0xcffff // very last byte (100-A) DO NOT CHANGE. + +// DEC-100-B probes until a 'flaky' area is found (BOOT ROM around F400:0E04). +// It is no longer possible to key in the RAM size from within the 100-B BIOS. +#define BOARD_RAM 0x20000 // 128 K base RAM (100-B) +#define END_OF_RAM 0xdffff // very last byte (100-B) DO NOT CHANGE. + +// TROUBLESHOOTING RAM +// Unexpected low RAM sizes are an indication of option RAM (at worst: 128 K on board) failure. +// While motherboard errors often render the system unbootable, bad option RAM (> 128 K) +// can be narrowed down with the Diagnostic Disk and codes from the 'Pocket Service Guide' +// EK-PC100-PS-002 (APPENDIX B.2.2); pc100ps2.pdf + + // Workaround DOES NOT APPLY to the 190-B ROM. Only enable when compiling the 'rainbow' driver - //#define FORCE_RAINBOW_100_LOGO @@ -203,6 +219,7 @@ public: m_inp7(*this, "GRAPHICS OPTION"), m_inp8(*this, "MEMORY PRESENT"), m_inp9(*this, "MONITOR TYPE"), + m_inp10(*this, "J17"), m_crtc(*this, "vt100_video"), m_i8088(*this, "maincpu"), @@ -232,9 +249,6 @@ public: DECLARE_READ8_MEMBER(share_z80_r); DECLARE_WRITE8_MEMBER(share_z80_w); - DECLARE_READ8_MEMBER(floating_bus_r); - DECLARE_WRITE8_MEMBER(floating_bus_w); - DECLARE_READ8_MEMBER(hd_status_68_r); DECLARE_READ8_MEMBER(i8088_latch_r); @@ -285,6 +299,7 @@ private: required_ioport m_inp7; required_ioport m_inp8; required_ioport m_inp9; + required_ioport m_inp10; required_device<rainbow_video_device> m_crtc; required_device<cpu_device> m_i8088; @@ -368,11 +383,7 @@ void rainbow_state::machine_start() static ADDRESS_MAP_START( rainbow8088_map, AS_PROGRAM, 8, rainbow_state) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x00000, 0x0ffff) AM_RAM AM_SHARE("sh_ram") - AM_RANGE(0x10000, 0x1ffff) AM_RAM - - // test at f4e00 - f4e1c - AM_RANGE(0x20000, 0xdffff) AM_READWRITE(floating_bus_r,floating_bus_w) - AM_RANGE(0x20000, 0xdffff) AM_RAM + AM_RANGE(0x10000, END_OF_RAM) AM_RAM // Documentation claims there is a 256 x 4 bit NVRAM from 0xed000 to 0xed040 (*) // shadowed at $ec000 - $ecfff and from $ed040 - $edfff. @@ -475,33 +486,41 @@ static INPUT_PORTS_START( rainbow100b_in ) PORT_DIPSETTING( 0x02, "GREEN" ) PORT_DIPSETTING( 0x03, "AMBER" ) + // MEMORY, FLOPPY, BUNDLE, GRAPHICS affect 'system_parameter_r': PORT_START("MEMORY PRESENT") - PORT_DIPNAME( 0xF000, 0x2000, "MEMORY PRESENT") - PORT_DIPSETTING( 0x2000, "128 K (BOARD DEFAULT)" ) // NOTE: 0x2000 hard coded in 'system_parameter_r' - PORT_DIPSETTING( 0x3000, "192 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0x4000, "256 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0x5000, "320 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0x6000, "384 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0x7000, "448 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0x8000, "512 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0x9000, "576 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0xA000, "640 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0xB000, "704 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0xC000, "768 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0xD000, "832 K (MEMORY OPTION)" ) - PORT_DIPSETTING( 0xE000, "896 K (MEMORY OPTION)" ) - - PORT_START("GRAPHICS OPTION") - PORT_DIPNAME( 0x00, 0x00, "GRAPHICS OPTION") PORT_TOGGLE - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) + PORT_DIPNAME( 0xF0000, 0x20000, "MEMORY PRESENT") + PORT_DIPSETTING( 0x10000, "64 K (MINIMUM ON 100-A)" ) // see BOARD_RAM + PORT_DIPSETTING( 0x20000, "128 K (MINIMUM ON 100-B)" ) + PORT_DIPSETTING( 0x30000, "192 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0x40000, "256 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0x50000, "320 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0x60000, "384 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0x70000, "448 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0x80000, "512 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0x90000, "576 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0xA0000, "640 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0xB0000, "704 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0xC0000, "768 K (MEMORY OPTION)" ) + PORT_DIPSETTING( 0xD0000, "832 K (MAX.MEM.ON -A)" ) // see END_OF_RAM + PORT_DIPSETTING( 0xE0000, "896 K (MAX.MEM.ON -B)" ) + + // Floppy is always 'on', BUNDLE + GRAPHICS are not implemented yet: + PORT_START("FLOPPY CONTROLLER") + PORT_DIPNAME( 0x01, 0x01, "FLOPPY CONTROLLER") PORT_TOGGLE + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) PORT_START("BUNDLE OPTION") PORT_DIPNAME( 0x00, 0x00, "BUNDLE OPTION") PORT_TOGGLE PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_START("W13") // W13 - W18 affect 'system_parameter_r' + PORT_START("GRAPHICS OPTION") + PORT_DIPNAME( 0x00, 0x00, "GRAPHICS OPTION") PORT_TOGGLE + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x01, DEF_STR( On ) ) + + // W13 - W18 are used for factory tests and affect the boot process - + PORT_START("W13") PORT_DIPNAME( 0x02, 0x02, "W13 (FACTORY TEST A, LEAVE OFF)") PORT_TOGGLE PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) @@ -522,7 +541,7 @@ static INPUT_PORTS_START( rainbow100b_in ) PORT_WRITE_LINE_DEVICE_MEMBER("kbdser", i8251_device, write_dsr) // J17 jumper on FDC controller board shifts drive select (experimental) - - PORT_START("FLOPPY CONTROLLER") + PORT_START("J17") PORT_DIPNAME( 0x02, 0x00, "J17 DRIVE SELECT (A => C and B => D)") PORT_TOGGLE PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x02, DEF_STR( On ) ) @@ -548,6 +567,12 @@ LEGACY_FLOPPY_OPTIONS_END void rainbow_state::machine_reset() { + /* configure RAM */ + address_space &program = m_maincpu->space(AS_PROGRAM); + if (m_inp8->read() < END_OF_RAM) + { program.unmap_readwrite(m_inp8->read(), END_OF_RAM); + } + if (COLD_BOOT == 1) { COLD_BOOT = 2; @@ -603,39 +628,6 @@ UINT32 rainbow_state::screen_update_rainbow(screen_device &screen, bitmap_ind16 return 0; } -// It is no longer possible to key in the RAM size on the 100-B. -// The DEC-100-B boot ROM probes until a 'flaky' area is found (around F400:0E04). - -// Unexpected low RAM sizes are an indication of option RAM (at worst: 128 K on board) failure. -// While motherboard errors often render the system unbootable, bad option RAM (> 128 K) -// can be narrowed down with the Diagnostic Disk and codes from the 'Pocket Service Guide' -// EK-PC100-PS-002 (APPENDIX B.2.2); pc100ps2.pdf -// ================================================================ -// - Simulate floating bus for initial RAM detection - -// FIXME: code valid ONLY within ROM section F4Exxx. -// -// NOTE: MS-DOS 2.x unfortunately probes RAM in a similar way. -// => SET OPTION RAM to 896 K for unknown applications (and DOS) <= -// ================================================================ -READ8_MEMBER(rainbow_state::floating_bus_r) -{ - int pc = space.device().safe_pc(); - - if ( ((pc & 0xFFF00) == 0xF4E00) && - ( m_maincpu->state_int(I8086_DS) >= m_inp8->read() ) - ) - { - return (offset>>16) + 2; - } - else - return space.read_byte(offset); -} - -WRITE8_MEMBER(rainbow_state::floating_bus_w) -{ - space.write_byte(offset,data); -} - // interrupt handling and arbitration. priorities currently unknown. void rainbow_state::update_8088_irqs() { @@ -746,11 +738,11 @@ READ8_MEMBER(rainbow_state::system_parameter_r) B F G M ( 1 means NOT present ) */ - // Hard coded value 0x2000 - see DIP switch setup! - return 0x0f - m_inp5->read() - - 0 // floppy is hard coded in emulator. - - m_inp7->read() - - ((m_inp8->read() > 0x2000) ? 8 : 0); + return (((m_inp5->read() == 1) ? 0 : 1) | + ((m_inp6->read() == 1) ? 0 : 2) | + ((m_inp7->read() == 1) ? 0 : 4) | + ((m_inp8->read() > BOARD_RAM) ? 0 : 8) + ); } READ8_MEMBER(rainbow_state::comm_control_r) @@ -951,7 +943,7 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w) int force_ready = ( (data & 4) != 0 ) ? 0 : 1; int drive; - if ( m_inp6->read() && ((data & 3) < 2) ) + if ( m_inp10->read() && ((data & 3) < 2) ) drive = (data & 1) + 2; else drive = data & 3; @@ -1236,7 +1228,7 @@ MACHINE_CONFIG_END // 'Rainbow 100-A' (introduced May 1982) is first-generation hardware with ROM 04.03.11 // - 64 K base RAM on board (instead of 128 K on 'B' model). 832 K RAM max. // - inability to boot from hard disc (mind the inadequate PSU) -// - cannot control bit 7 of IRQ vector (prevents DOS 2.0x from booting on unmodified hardware) +// - cannot control bit 7 of IRQ vector (prevents DOS >= 2.05 from booting on unmodified hardware) // - limited palette with color graphics option (4 instead of 16 colors) // - smaller ROMs (3 x 2764) with fewer routines (no documented way to beep...) diff --git a/src/mess/machine/dec_lk201.c b/src/mess/machine/dec_lk201.c index aa0b98e1a7e..33868969137 100644 --- a/src/mess/machine/dec_lk201.c +++ b/src/mess/machine/dec_lk201.c @@ -226,6 +226,35 @@ const rom_entry *lk201_device::device_rom_region() const // INPUT_PORTS( lk201 ) //------------------------------------------------- +/* [Foreign language caps] are referenced in software titles. Please leave them in. + + DEC omitted terms like 'Interrupt', 'Break' and 'Data / Talk' on some keyboards, + so Fn numbers are definitely important for end users. + + === CURRENT SPECIAL KEYS === + [PC-AT] ......=> [DEC] + LEFT CONTROL..=> Control + LEFT ALT .....=> Compose + + RIGHT ALT ....=> Help + RIGHT CONTROL => Do + ============================================================================================== + === (PC - AT ) keys above cursor block === + * KEYCODE_INSERT * KEYCODE_HOME * KEYCODE_PGUP + * KEYCODE_DEL... * KEYCODE_END * KEYCODE_PGDN + + === (DEC LK 201 layout above cursor) === + * Find ........| Insert Here | Remove + * Select.........| Prev ..... | Next + ============================================================================================== + === CURRENT NUM PAD ASSIGNMENTS === + [PF1] to [PF4] are mapped to NUM LOCK, SLASH etc. (=> 4 keys on top on num pad). + Num pad '+' gives ',' on the DEC. + ',' translates to '.' (=> more or less the layout of model 'LK-201-AG') + + Switch between 'full' and 'partial keyboard emulation' with Scroll Lock. +*/ + INPUT_PORTS_START( lk201 ) PORT_START("KBD0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) @@ -245,36 +274,36 @@ INPUT_PORTS_START( lk201 ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Compose") PORT_CODE(KEYCODE_LALT) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_START("KBD2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1") PORT_CODE(KEYCODE_1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Esc") PORT_CODE(KEYCODE_TILDE) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tilde") PORT_CODE(KEYCODE_TILDE) // E00 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("KBD3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("<") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("<") PORT_CODE(KEYCODE_BACKSLASH2) // B00 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z") PORT_CODE(KEYCODE_2) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Hold Screen") PORT_CODE(KEYCODE_F1) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2") PORT_CODE(KEYCODE_2) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Hold Screen (F1)") PORT_CODE(KEYCODE_F1) PORT_START("KBD4") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3") PORT_CODE(KEYCODE_3) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Setup") PORT_CODE(KEYCODE_F3) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Setup (F3)") PORT_CODE(KEYCODE_F3) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Print Screen") PORT_CODE(KEYCODE_F2) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Print Screen (F2)") PORT_CODE(KEYCODE_F2) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("KBD5") @@ -284,15 +313,15 @@ INPUT_PORTS_START( lk201 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Break") PORT_CODE(KEYCODE_F5) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Break (F5)") PORT_CODE(KEYCODE_F5) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Data / Talk (F4)") PORT_CODE(KEYCODE_F4) PORT_START("KBD6") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("5") PORT_CODE(KEYCODE_5) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Interrupt") PORT_CODE(KEYCODE_F6) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Interrupt (F6) [X]") PORT_CODE(KEYCODE_F6) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) @@ -302,9 +331,9 @@ INPUT_PORTS_START( lk201 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("6") PORT_CODE(KEYCODE_6) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Resume") PORT_CODE(KEYCODE_F7) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Resume (F7) [Fortsetzen]") PORT_CODE(KEYCODE_F7) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Cancel") PORT_CODE(KEYCODE_F8) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Cancel (F8) [Zuruecknehmen]") PORT_CODE(KEYCODE_F8) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("KBD8") @@ -312,9 +341,9 @@ INPUT_PORTS_START( lk201 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7") PORT_CODE(KEYCODE_7) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Exit") PORT_CODE(KEYCODE_F10) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Exit (F10) [Fertig]") PORT_CODE(KEYCODE_F10) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Main Screen") PORT_CODE(KEYCODE_F9) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Main Screen (F9) [Hauptbild]") PORT_CODE(KEYCODE_F9) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("KBD9") @@ -324,7 +353,7 @@ INPUT_PORTS_START( lk201 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F11") PORT_CODE(KEYCODE_F11) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ESC (F11)") PORT_CODE(KEYCODE_F11) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("KBD10") @@ -332,20 +361,20 @@ INPUT_PORTS_START( lk201 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9") PORT_CODE(KEYCODE_9) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F13") PORT_CODE(KEYCODE_PRTSCR) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LF (F13)") PORT_CODE(KEYCODE_PRTSCR) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F12") PORT_CODE(KEYCODE_F12) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BS (F12)") PORT_CODE(KEYCODE_F12) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("KBD11") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // FIXME - duplicate "Return" PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Delete") PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Additional Options (F14)") PORT_CODE(KEYCODE_SCRLOCK) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Delete <X") PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Additional Options (F14) [Zusaetze]") PORT_CODE(KEYCODE_PAUSE) PORT_START("KBD12") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH) @@ -362,8 +391,8 @@ INPUT_PORTS_START( lk201 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("'") PORT_CODE(KEYCODE_QUOTE) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Previous") PORT_CODE(KEYCODE_END) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Do (F16)") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Previous [^]") PORT_CODE(KEYCODE_END) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Do (F16) [Ausfuehren]") PORT_CODE(KEYCODE_RCONTROL) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Insert Here") PORT_CODE(KEYCODE_HOME) @@ -374,7 +403,7 @@ INPUT_PORTS_START( lk201 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 7") PORT_CODE(KEYCODE_7_PAD) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Remove") PORT_CODE(KEYCODE_PGUP) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Next") PORT_CODE(KEYCODE_PGDN) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Next [v]") PORT_CODE(KEYCODE_PGDN) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF1") PORT_CODE(KEYCODE_NUMLOCK) PORT_START("KBD15") @@ -400,9 +429,9 @@ INPUT_PORTS_START( lk201 ) PORT_START("KBD17") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num ,") PORT_CODE(KEYCODE_PLUS_PAD) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num -") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num -") // duplicate...see KBD13 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF4") PORT_CODE(KEYCODE_MINUS_PAD) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F20") PORT_CODE(KEYCODE_PAUSE) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F20") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F19") PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) @@ -720,3 +749,4 @@ WRITE8_MEMBER( lk201_device::spi_w ) // printf("SPI %02x to %x (PC=%x)\n", data, offset, m_maincpu->pc()); } + |