mirror of
https://github.com/holub/mame
synced 2025-04-22 00:11:58 +03:00
(MESS) Added keyboard inputs for Pasopia and Pasopia 7, z80pio irq still doesn't work [Angelo Salese]
This commit is contained in:
parent
ec94908b35
commit
18d55aaad6
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -6135,6 +6135,7 @@ src/mess/includes/osborne1.h svneol=native#text/plain
|
||||
src/mess/includes/osi.h svneol=native#text/plain
|
||||
src/mess/includes/p2000t.h svneol=native#text/plain
|
||||
src/mess/includes/partner.h svneol=native#text/plain
|
||||
src/mess/includes/pasopia.h svneol=native#text/plain
|
||||
src/mess/includes/pc.h svneol=native#text/plain
|
||||
src/mess/includes/pc1251.h svneol=native#text/plain
|
||||
src/mess/includes/pc1350.h svneol=native#text/plain
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "machine/z80pio.h"
|
||||
#include "video/mc6845.h"
|
||||
#include "machine/keyboard.h"
|
||||
#include "includes/pasopia.h"
|
||||
|
||||
class pasopia_state : public driver_device
|
||||
{
|
||||
@ -55,12 +56,16 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER(testa_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(testb_w);
|
||||
DECLARE_WRITE8_MEMBER(kbd_put);
|
||||
DECLARE_READ8_MEMBER(mux_r);
|
||||
DECLARE_READ8_MEMBER(keyb_r);
|
||||
DECLARE_WRITE8_MEMBER(mux_w);
|
||||
|
||||
UINT8 m_hblank;
|
||||
UINT16 m_vram_addr;
|
||||
UINT8 m_vram_latch;
|
||||
UINT8 m_attr_latch;
|
||||
// UINT8 m_gfx_mode;
|
||||
UINT8 m_mux_data;
|
||||
bool m_video_wl;
|
||||
bool m_ram_bank;
|
||||
UINT8 *m_p_vram;
|
||||
@ -125,13 +130,14 @@ static ADDRESS_MAP_START(pasopia_io, AS_IO, 8, pasopia_state)
|
||||
// 0x1c - 0x1f something
|
||||
AM_RANGE(0x20,0x23) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write)
|
||||
AM_RANGE(0x28,0x2b) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x30,0x33) AM_DEVREADWRITE("z80pio", z80pio_device, read_alt, write_alt)
|
||||
AM_RANGE(0x30,0x33) AM_DEVREADWRITE("z80pio", z80pio_device, read, write)
|
||||
// 0x38 printer
|
||||
AM_RANGE(0x3c,0x3c) AM_WRITE(pasopia_ctrl_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/* Input ports */
|
||||
static INPUT_PORTS_START( pasopia )
|
||||
PASOPIA_KEYBOARD
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_START(pasopia)
|
||||
@ -243,37 +249,49 @@ static Z80CTC_INTERFACE( ctc_intf )
|
||||
DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg3) // ZC/TO2 callback
|
||||
};
|
||||
|
||||
READ8_MEMBER( pasopia_state::testa_r )
|
||||
READ8_MEMBER( pasopia_state::mux_r )
|
||||
{
|
||||
printf("A R\n");
|
||||
return 0xff;
|
||||
return m_mux_data;
|
||||
}
|
||||
|
||||
READ8_MEMBER( pasopia_state::testb_r )
|
||||
READ8_MEMBER( pasopia_state::keyb_r )
|
||||
{
|
||||
printf("B R\n");
|
||||
return 0xff;
|
||||
const char *const keynames[3][4] = { { "KEY0", "KEY1", "KEY2", "KEY3" },
|
||||
{ "KEY4", "KEY5", "KEY6", "KEY7" },
|
||||
{ "KEY8", "KEY9", "KEYA", "KEYB" } };
|
||||
int i,j;
|
||||
UINT8 res;
|
||||
|
||||
res = 0;
|
||||
for(j=0;j<3;j++)
|
||||
{
|
||||
if(m_mux_data & 0x10 << j)
|
||||
{
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
if(m_mux_data & 1 << i)
|
||||
res |= ioport(keynames[j][i])->read();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return res ^ 0xff;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( pasopia_state::testa_w )
|
||||
WRITE8_MEMBER( pasopia_state::mux_w )
|
||||
{
|
||||
printf("A %02x\n",state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( pasopia_state::testb_w )
|
||||
{
|
||||
printf("B %02x\n",state);
|
||||
m_mux_data = data;
|
||||
}
|
||||
|
||||
static Z80PIO_INTERFACE( z80pio_intf )
|
||||
{
|
||||
DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0), //doesn't work?
|
||||
DEVCB_DRIVER_MEMBER(pasopia_state, testa_r), // port A read
|
||||
DEVCB_NULL, // port A write
|
||||
DEVCB_DRIVER_LINE_MEMBER(pasopia_state, testa_w), // ready A
|
||||
DEVCB_DRIVER_MEMBER(pasopia_state, testb_r), // port B read
|
||||
DEVCB_NULL, // port B write
|
||||
DEVCB_DRIVER_LINE_MEMBER(pasopia_state, testb_w) // ready B
|
||||
DEVCB_DRIVER_MEMBER(pasopia_state, mux_r),
|
||||
DEVCB_DRIVER_MEMBER(pasopia_state, mux_w),
|
||||
DEVCB_NULL,
|
||||
DEVCB_DRIVER_MEMBER(pasopia_state, keyb_r),
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static const mc6845_interface mc6845_intf =
|
||||
@ -313,17 +331,7 @@ static const z80_daisy_config pasopia_daisy[] =
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
// temporary hack
|
||||
WRITE8_MEMBER( pasopia_state::kbd_put )
|
||||
{
|
||||
address_space *mem = m_maincpu->memory().space(AS_PROGRAM);
|
||||
mem->write_byte(0xfe79, data);
|
||||
}
|
||||
|
||||
static ASCII_KEYBOARD_INTERFACE( keyboard_intf )
|
||||
{
|
||||
DEVCB_DRIVER_MEMBER(pasopia_state, kbd_put)
|
||||
};
|
||||
|
||||
DRIVER_INIT_MEMBER(pasopia_state,pasopia)
|
||||
{
|
||||
@ -364,9 +372,6 @@ static MACHINE_CONFIG_START( pasopia, pasopia_state )
|
||||
MCFG_I8255A_ADD( "ppi8255_2", ppi8255_intf_2 )
|
||||
MCFG_Z80CTC_ADD( "z80ctc", XTAL_4MHz, ctc_intf )
|
||||
MCFG_Z80PIO_ADD( "z80pio", XTAL_4MHz, z80pio_intf )
|
||||
|
||||
// temporary hack
|
||||
MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
/* ROM definition */
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "sound/sn76496.h"
|
||||
#include "video/mc6845.h"
|
||||
#include "rendlay.h"
|
||||
#include "includes/pasopia.h"
|
||||
|
||||
class pasopia7_state : public driver_device
|
||||
{
|
||||
@ -63,9 +64,9 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(pasopia7_fdc_w);
|
||||
DECLARE_READ8_MEMBER(pasopia7_io_r);
|
||||
DECLARE_WRITE8_MEMBER(pasopia7_io_w);
|
||||
DECLARE_READ8_MEMBER(test_r);
|
||||
DECLARE_WRITE_LINE_MEMBER(testa_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(testb_w);
|
||||
DECLARE_READ8_MEMBER(mux_r);
|
||||
DECLARE_READ8_MEMBER(keyb_r);
|
||||
DECLARE_WRITE8_MEMBER(mux_w);
|
||||
DECLARE_READ8_MEMBER(crtc_portb_r);
|
||||
DECLARE_WRITE8_MEMBER(screen_mode_w);
|
||||
DECLARE_WRITE8_MEMBER(plane_reg_w);
|
||||
@ -101,6 +102,7 @@ public:
|
||||
UINT8 m_screen_type;
|
||||
int m_addr_latch;
|
||||
void pasopia_nmi_trap();
|
||||
UINT8 m_mux_data;
|
||||
DECLARE_DRIVER_INIT(p7_lcd);
|
||||
DECLARE_DRIVER_INIT(p7_raster);
|
||||
};
|
||||
@ -128,76 +130,6 @@ static VIDEO_START( pasopia7 )
|
||||
ram_space->write_byte(0xfce1,_charset_); \
|
||||
} \
|
||||
|
||||
/* cheap kludge to use the keyboard without going nuts with the debugger ... */
|
||||
static void fake_keyboard_data(running_machine &machine)
|
||||
{
|
||||
address_space *ram_space = machine.device("maincpu")->memory().space(AS_PROGRAM);
|
||||
|
||||
ram_space->write_byte(0xfda4,0x00); //clear flag
|
||||
|
||||
keyb_press(KEYCODE_Z, 'z');
|
||||
keyb_press(KEYCODE_X, 'x');
|
||||
keyb_press(KEYCODE_C, 'c');
|
||||
keyb_press(KEYCODE_V, 'v');
|
||||
keyb_press(KEYCODE_B, 'b');
|
||||
keyb_press(KEYCODE_N, 'n');
|
||||
keyb_press(KEYCODE_M, 'm');
|
||||
|
||||
keyb_press(KEYCODE_A, 'a');
|
||||
keyb_press(KEYCODE_S, 's');
|
||||
keyb_press(KEYCODE_D, 'd');
|
||||
keyb_press(KEYCODE_F, 'f');
|
||||
keyb_press(KEYCODE_G, 'g');
|
||||
keyb_press(KEYCODE_H, 'h');
|
||||
keyb_press(KEYCODE_J, 'j');
|
||||
keyb_press(KEYCODE_K, 'k');
|
||||
keyb_press(KEYCODE_L, 'l');
|
||||
|
||||
keyb_press(KEYCODE_Q, 'q');
|
||||
keyb_press(KEYCODE_W, 'w');
|
||||
keyb_press(KEYCODE_E, 'e');
|
||||
keyb_press(KEYCODE_R, 'r');
|
||||
keyb_press(KEYCODE_T, 't');
|
||||
keyb_press(KEYCODE_Y, 'y');
|
||||
keyb_press(KEYCODE_U, 'u');
|
||||
keyb_press(KEYCODE_I, 'i');
|
||||
keyb_press(KEYCODE_O, 'o');
|
||||
keyb_press(KEYCODE_P, 'p');
|
||||
|
||||
keyb_press(KEYCODE_0, '0');
|
||||
keyb_press(KEYCODE_1, '1');
|
||||
keyb_press(KEYCODE_2, '2');
|
||||
keyb_press(KEYCODE_3, '3');
|
||||
keyb_press(KEYCODE_4, '4');
|
||||
keyb_press(KEYCODE_5, '5');
|
||||
keyb_press(KEYCODE_6, '6');
|
||||
keyb_press(KEYCODE_7, '7');
|
||||
keyb_press(KEYCODE_8, '8');
|
||||
keyb_press(KEYCODE_9, '9');
|
||||
|
||||
keyb_shift_press(KEYCODE_0, '=');
|
||||
keyb_shift_press(KEYCODE_1, '!');
|
||||
keyb_shift_press(KEYCODE_2, '"');
|
||||
keyb_shift_press(KEYCODE_3, '?');
|
||||
keyb_shift_press(KEYCODE_4, '$');
|
||||
keyb_shift_press(KEYCODE_5, '%');
|
||||
keyb_shift_press(KEYCODE_6, '&');
|
||||
keyb_shift_press(KEYCODE_7, '/');
|
||||
keyb_shift_press(KEYCODE_8, '(');
|
||||
keyb_shift_press(KEYCODE_9, ')');
|
||||
|
||||
keyb_press(KEYCODE_ENTER, 0x0d);
|
||||
keyb_press(KEYCODE_SPACE, ' ');
|
||||
keyb_press(KEYCODE_STOP, '.');
|
||||
keyb_shift_press(KEYCODE_STOP, ':');
|
||||
keyb_press(KEYCODE_BACKSPACE, 0x08);
|
||||
keyb_press(KEYCODE_0_PAD, '@'); //@
|
||||
keyb_press(KEYCODE_COMMA, ',');
|
||||
keyb_shift_press(KEYCODE_COMMA, ';');
|
||||
keyb_press(KEYCODE_MINUS_PAD, '-');
|
||||
keyb_press(KEYCODE_PLUS_PAD, '+');
|
||||
keyb_press(KEYCODE_ASTERISK, '*');
|
||||
}
|
||||
|
||||
static void draw_cg4_screen(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect,int width)
|
||||
{
|
||||
@ -376,8 +308,6 @@ static SCREEN_UPDATE_IND16( pasopia7 )
|
||||
|
||||
bitmap.fill(screen.machine().pens[0], cliprect);
|
||||
|
||||
fake_keyboard_data(screen.machine());
|
||||
|
||||
width = state->m_x_width ? 80 : 40;
|
||||
|
||||
if(state->m_gfx_mode)
|
||||
@ -656,9 +586,6 @@ READ8_MEMBER( pasopia7_state::pasopia7_io_r )
|
||||
|
||||
io_port = offset & 0xff; //trim down to 8-bit bus
|
||||
|
||||
if(io_port >= 0x30 && io_port <= 0x33)
|
||||
printf("[%02x]\n",offset & 3);
|
||||
|
||||
if(io_port >= 0x08 && io_port <= 0x0b)
|
||||
return m_ppi0->read(space, io_port & 3);
|
||||
else
|
||||
@ -679,7 +606,7 @@ READ8_MEMBER( pasopia7_state::pasopia7_io_r )
|
||||
return m_ctc->read(space,io_port & 3);
|
||||
else
|
||||
if(io_port >= 0x30 && io_port <= 0x33)
|
||||
return m_pio->read_alt(space, io_port & 3);
|
||||
return m_pio->read(space, io_port & 3);
|
||||
// else if(io_port == 0x3a) { SN1 }
|
||||
// else if(io_port == 0x3b) { SN2 }
|
||||
// else if(io_port == 0x3c) { bankswitch }
|
||||
@ -708,9 +635,6 @@ WRITE8_MEMBER( pasopia7_state::pasopia7_io_w )
|
||||
|
||||
io_port = offset & 0xff; //trim down to 8-bit bus
|
||||
|
||||
if(io_port >= 0x30 && io_port <= 0x33)
|
||||
printf("[%02x] <- %02x\n",offset & 3,data);
|
||||
|
||||
if(io_port >= 0x08 && io_port <= 0x0b)
|
||||
m_ppi0->write(space, io_port & 3, data);
|
||||
else
|
||||
@ -733,7 +657,7 @@ WRITE8_MEMBER( pasopia7_state::pasopia7_io_w )
|
||||
m_ctc->write(space, io_port & 3, data);
|
||||
else
|
||||
if(io_port >= 0x30 && io_port <= 0x33)
|
||||
m_pio->write_alt(space, io_port & 3, data);
|
||||
m_pio->write(space, io_port & 3, data);
|
||||
else
|
||||
if(io_port == 0x3a)
|
||||
m_sn1->write(space, 0, data);
|
||||
@ -766,8 +690,9 @@ static ADDRESS_MAP_START(pasopia7_io, AS_IO, 8, pasopia7_state)
|
||||
AM_RANGE( 0x0000, 0xffff) AM_READWRITE( pasopia7_io_r, pasopia7_io_w )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/* Input ports */
|
||||
/* TODO: where are SPACE and RETURN keys? */
|
||||
static INPUT_PORTS_START( pasopia7 )
|
||||
PASOPIA_KEYBOARD
|
||||
INPUT_PORTS_END
|
||||
|
||||
static const gfx_layout p7_chars_8x8 =
|
||||
@ -819,30 +744,50 @@ static Z80CTC_INTERFACE( z80ctc_intf )
|
||||
DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg3) // ZC/TO2 callback
|
||||
};
|
||||
|
||||
READ8_MEMBER( pasopia7_state::test_r )
|
||||
|
||||
READ8_MEMBER( pasopia7_state::mux_r )
|
||||
{
|
||||
return machine().rand();
|
||||
return m_mux_data;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( pasopia7_state::testa_w )
|
||||
READ8_MEMBER( pasopia7_state::keyb_r )
|
||||
{
|
||||
printf("A %02x\n",state);
|
||||
const char *const keynames[3][4] = { { "KEY0", "KEY1", "KEY2", "KEY3" },
|
||||
{ "KEY4", "KEY5", "KEY6", "KEY7" },
|
||||
{ "KEY8", "KEY9", "KEYA", "KEYB" } };
|
||||
int i,j;
|
||||
UINT8 res;
|
||||
|
||||
res = 0;
|
||||
for(j=0;j<3;j++)
|
||||
{
|
||||
if(m_mux_data & 0x10 << j)
|
||||
{
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
if(m_mux_data & 1 << i)
|
||||
res |= ioport(keynames[j][i])->read();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return res ^ 0xff;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( pasopia7_state::testb_w )
|
||||
WRITE8_MEMBER( pasopia7_state::mux_w )
|
||||
{
|
||||
printf("B %02x\n",state);
|
||||
m_mux_data = data;
|
||||
}
|
||||
|
||||
static Z80PIO_INTERFACE( z80pio_intf )
|
||||
{
|
||||
DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0), //doesn't work?
|
||||
DEVCB_DRIVER_MEMBER(pasopia7_state, test_r),
|
||||
DEVCB_DRIVER_MEMBER(pasopia7_state, mux_r),
|
||||
DEVCB_DRIVER_MEMBER(pasopia7_state, mux_w),
|
||||
DEVCB_NULL,
|
||||
DEVCB_DRIVER_LINE_MEMBER(pasopia7_state, testa_w),
|
||||
DEVCB_DRIVER_MEMBER(pasopia7_state, test_r),
|
||||
DEVCB_DRIVER_MEMBER(pasopia7_state, keyb_r),
|
||||
DEVCB_NULL,
|
||||
DEVCB_DRIVER_LINE_MEMBER(pasopia7_state, testb_w)
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static const z80_daisy_config p7_daisy[] =
|
||||
@ -1049,8 +994,8 @@ static const floppy_interface pasopia7_floppy_interface =
|
||||
* Sound interface
|
||||
*
|
||||
*************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// sn76496_config psg_intf
|
||||
//-------------------------------------------------
|
||||
|
135
src/mess/includes/pasopia.h
Normal file
135
src/mess/includes/pasopia.h
Normal file
@ -0,0 +1,135 @@
|
||||
#define PASOPIA_KEYBOARD \
|
||||
PORT_START("KEY0") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) \
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) ) \
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) ) \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("KANA LOCK") \
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) ) \
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) \
|
||||
PORT_START("KEY1") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0_PAD) \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1_PAD) \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2_PAD) \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3_PAD) \
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4_PAD) \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5_PAD) \
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6_PAD) \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7_PAD) \
|
||||
PORT_START("KEY2") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_8_PAD) \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9_PAD) \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS_PAD) \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_PLUS_PAD) \
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH_PAD) \
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL_PAD) \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CODE(KEYCODE_ENTER) \
|
||||
PORT_START("KEY3") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("RIGHT") \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Status?") \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("BACKSPACE") \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB) \
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) ) \
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) ) \
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) ) \
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) \
|
||||
PORT_START("KEY4") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_HOME) PORT_NAME("CLS") \
|
||||
PORT_DIPNAME( 0x02, 0x00, "4" ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) ) \
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) ) \
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) ) \
|
||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( On ) ) \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_NAME("LEFT") \
|
||||
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) \
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) ) \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_NAME("SPACE") \
|
||||
PORT_START("KEY5") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F1) PORT_NAME("F1") \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F2) PORT_NAME("F2") \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F3) PORT_NAME("F3") \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F4) PORT_NAME("F4") \
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F5) PORT_NAME("F5") \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F6) PORT_NAME("F6") \
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F7) PORT_NAME("F7") \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F8) PORT_NAME("F8") \
|
||||
PORT_START("KEY6") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_NAME("1") \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_NAME("2") \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_NAME("4") \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_NAME("R") \
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_NAME("Y") \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("=") \
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("^") \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Yen Symbol") \
|
||||
PORT_START("KEY7") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_NAME("2") \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_NAME("3") \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_NAME("8") \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_NAME("T") \
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_NAME("U") \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_NAME("7") \
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("@") \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[") \
|
||||
PORT_START("KEY8") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_NAME("-") \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_NAME("5") \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_NAME("6") \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_NAME("F") \
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_NAME("H") \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_NAME("9") \
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(":") \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("]") \
|
||||
PORT_START("KEY9") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_NAME("Q") \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_NAME("W") \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_NAME("E") \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_NAME("G") \
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_NAME("J") \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_NAME("I") \
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_NAME("O") \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_NAME("P") \
|
||||
PORT_START("KEYA") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_NAME("A") \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_NAME("S") \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_NAME("D") \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_NAME("V") \
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_NAME("N") \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_NAME("K") \
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_NAME("L") \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(";") \
|
||||
PORT_START("KEYB") \
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_NAME("Z") \
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_NAME("X") \
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_NAME("C") \
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_NAME("B") \
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_NAME("M") \
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(",") \
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(".") \
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/")
|
Loading…
Reference in New Issue
Block a user