mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
tandy1t: Distinguish between models using the 90-key Tandy keyboard layout and the standard 101-key "Enhanced" AT layout. Unmap the Hold key on the 90-key layout by default to avoid freezing the emulated system when using Scroll Lock to switch UI modes. [Justin Kerk]
This commit is contained in:
parent
24f821bd59
commit
348afca60c
@ -434,7 +434,7 @@ WRITE8_MEMBER( tandy1000_state::tandy1000_bank_w )
|
||||
}
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( tandy1t )
|
||||
static INPUT_PORTS_START( t1000_common )
|
||||
PORT_START("IN0") /* IN0 */
|
||||
PORT_BIT ( 0xf0, 0xf0, IPT_UNUSED )
|
||||
PORT_BIT ( 0x08, 0x08, IPT_CUSTOM ) PORT_VBLANK("pcvideo_t1000:screen")
|
||||
@ -468,7 +468,11 @@ static INPUT_PORTS_START( tandy1t )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
|
||||
PORT_BIT( 0x02, 0x02, IPT_UNUSED ) /* no turbo switch */
|
||||
PORT_BIT( 0x01, 0x01, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
/* 90-key Tandy Keyboard layout, used on earlier models
|
||||
later models use the Tandy Enhanced Keyboard with a standard 101-key Enhanced AT layout */
|
||||
static INPUT_PORTS_START( t1000_keyboard )
|
||||
PORT_INCLUDE(pc_keyboard)
|
||||
|
||||
PORT_MODIFY("pc_keyboard_2")
|
||||
@ -480,6 +484,8 @@ static INPUT_PORTS_START( tandy1t )
|
||||
|
||||
PORT_MODIFY("pc_keyboard_4")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("NumLock") PORT_CODE(KEYCODE_NUMLOCK) PORT_TOGGLE /* Num Lock 45 C5 */
|
||||
/* Hold corresponds to Scroll Lock, but pauses the system when pressed - leaving unmapped by default to avoid conflicting with the UI Toggle key */
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Hold") /* 46 C6 */
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KP 7 \\") PORT_CODE(KEYCODE_7_PAD) /* Keypad 7 47 C7 */
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KP 8 ~") PORT_CODE(KEYCODE_8_PAD) /* Keypad 8 48 C8 */
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KP 9 (PgUp)") PORT_CODE(KEYCODE_9_PAD) /* Keypad 9 (PgUp) 49 C9 */
|
||||
@ -503,6 +509,16 @@ static INPUT_PORTS_START( tandy1t )
|
||||
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F12") PORT_CODE(KEYCODE_F12) /* F12 5a Da */
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( t1000_90key )
|
||||
PORT_INCLUDE(t1000_common)
|
||||
PORT_INCLUDE(t1000_keyboard)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( t1000_101key )
|
||||
PORT_INCLUDE(t1000_common)
|
||||
PORT_INCLUDE(at_keyboard)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static ADDRESS_MAP_START(tandy1000_map, AS_PROGRAM, 8, tandy1000_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0xb8000, 0xbffff) AM_DEVICE("pcvideo_t1000:vram", address_map_bank_device, amap8)
|
||||
@ -616,7 +632,6 @@ static MACHINE_CONFIG_FRAGMENT(tandy1000_common)
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa_com", pc_isa8_cards, "com", true)
|
||||
|
||||
MCFG_PC_JOY_ADD("pc_joy")
|
||||
MCFG_PC_KEYB_ADD("pc_keyboard", DEVWRITELINE("mb:pic8259", pic8259_device, ir1_w))
|
||||
|
||||
/* internal ram */
|
||||
MCFG_RAM_ADD(RAM_TAG)
|
||||
@ -626,6 +641,14 @@ static MACHINE_CONFIG_FRAGMENT(tandy1000_common)
|
||||
MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("pc_list","ibm5150")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT(tandy1000_90key)
|
||||
MCFG_PC_KEYB_ADD("pc_keyboard", DEVWRITELINE("mb:pic8259", pic8259_device, ir1_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT(tandy1000_101key)
|
||||
MCFG_AT_KEYB_ADD("pc_keyboard", 1, DEVWRITELINE("mb:pic8259", pic8259_device, ir1_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( t1000hx, tandy1000_state )
|
||||
MCFG_CPU_ADD("maincpu", I8088, 8000000)
|
||||
MCFG_CPU_PROGRAM_MAP(tandy1000_map)
|
||||
@ -634,6 +657,8 @@ static MACHINE_CONFIG_START( t1000hx, tandy1000_state )
|
||||
|
||||
MCFG_FRAGMENT_ADD(tandy1000_common)
|
||||
|
||||
MCFG_FRAGMENT_ADD(tandy1000_90key)
|
||||
|
||||
// plus cards are isa with a nonstandard conntector
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "plus1", pc_isa8_cards, nullptr, false)
|
||||
MCFG_DEVICE_MODIFY(RAM_TAG)
|
||||
@ -662,6 +687,8 @@ static MACHINE_CONFIG_START( t1000rl, tandy1000_state )
|
||||
|
||||
MCFG_FRAGMENT_ADD(tandy1000_common)
|
||||
|
||||
MCFG_FRAGMENT_ADD(tandy1000_101key)
|
||||
|
||||
MCFG_DEVICE_ADD("biosbank", ADDRESS_MAP_BANK, 0)
|
||||
MCFG_DEVICE_PROGRAM_MAP(biosbank_map)
|
||||
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
|
||||
@ -692,6 +719,8 @@ static MACHINE_CONFIG_START( t1000tl, tandy1000_state )
|
||||
|
||||
MCFG_FRAGMENT_ADD(tandy1000_common)
|
||||
|
||||
MCFG_FRAGMENT_ADD(tandy1000_101key)
|
||||
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa1", pc_isa8_cards, nullptr, false)
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa2", pc_isa8_cards, nullptr, false)
|
||||
MCFG_ISA8_SLOT_ADD("mb:isa", "isa3", pc_isa8_cards, nullptr, false)
|
||||
@ -702,6 +731,9 @@ MACHINE_CONFIG_END
|
||||
static MACHINE_CONFIG_DERIVED( t1000tx, t1000tl )
|
||||
MCFG_CPU_MODIFY( "maincpu" )
|
||||
MCFG_CPU_IO_MAP(tandy1000tx_io)
|
||||
|
||||
MCFG_DEVICE_REMOVE("pc_keyboard")
|
||||
MCFG_FRAGMENT_ADD(tandy1000_90key)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
#ifdef UNUSED_DEFINITION
|
||||
@ -868,11 +900,11 @@ ROM_START( t1000tl2 )
|
||||
ROM_END
|
||||
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
|
||||
// tandy 1000
|
||||
COMP( 1987, t1000hx, ibm5150, 0, t1000hx, tandy1t, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 HX", 0)
|
||||
COMP( 1987, t1000sx, ibm5150, 0, t1000sx, tandy1t, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 SX", 0)
|
||||
COMP( 1987, t1000tx, ibm5150, 0, t1000tx, tandy1t, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 TX", 0)
|
||||
COMP( 1989, t1000rl, ibm5150, 0, t1000rl, tandy1t, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 RL", 0)
|
||||
COMP( 1989, t1000tl2, ibm5150, 0, t1000tl, tandy1t, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 TL/2", 0)
|
||||
COMP( 1988, t1000sl2, ibm5150, 0, t1000sl2, tandy1t, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 SL/2", 0)
|
||||
COMP( 1987, t1000hx, ibm5150, 0, t1000hx, t1000_90key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 HX", 0)
|
||||
COMP( 1987, t1000sx, ibm5150, 0, t1000sx, t1000_90key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 SX", 0)
|
||||
COMP( 1987, t1000tx, ibm5150, 0, t1000tx, t1000_90key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 TX", 0)
|
||||
COMP( 1989, t1000rl, ibm5150, 0, t1000rl, t1000_101key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 RL", 0)
|
||||
COMP( 1989, t1000tl2, ibm5150, 0, t1000tl, t1000_101key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 TL/2", 0)
|
||||
COMP( 1988, t1000sl2, ibm5150, 0, t1000sl2, t1000_101key, driver_device, 0, "Tandy Radio Shack", "Tandy 1000 SL/2", 0)
|
||||
|
Loading…
Reference in New Issue
Block a user