incorporate extra 104 findings from Charles, will clean up as next step (nw)

This commit is contained in:
David Haywood 2013-07-31 03:41:19 +00:00
parent 10f94ab8a2
commit 2b271e90a5
2 changed files with 70 additions and 71 deletions

View File

@ -3,7 +3,11 @@
Data East 104 based protection/IO chips
(a variation on the Deco 146 protection, see deco146.c for notes)
original protection simulations by Bryan McPhail, mish@tendril.co.uk
Emulation by David Haywood
based on findings by Charles MacDonald
previous protection simulations by Bryan McPhail
***************************************************************************/
@ -14,9 +18,9 @@
// the same way some 146 games require an address XOR of 0x44a at some point during the read chain
// there are 104 games requiring a xor of 0x2a4
#define DECO_PORT(p) (prot_ram[p/2])
#define DECO_NEW_PORT(p) (prot_ram[p/2])
@ -35,7 +39,7 @@ deco146port_xx port104_table[] = {
/* 0x014 */ { 0x24, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x016 */ { 0xfc, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x018 */ { 0x08, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x01a */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x01a */ { INPUT_PORT_C , {NIB1__, NIB0__,NIB2__,NIB3__ } , 0, 0 }, // dc.w $001A ; 0x0010
/* 0x01c */ { 0x72, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x01e */ { 0xc4, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 },
/* 0x020 */ { 0xd0, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
@ -48,7 +52,7 @@ deco146port_xx port104_table[] = {
/* 0x02e */ { 0x6a, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x030 */ { 0x00, { 0x0f, 0x0c, 0x0d, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x032 */ { 0x60, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x034 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x034 */ { INPUT_PORT_B , { 0x03, 0x00, 0x01, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x036 */ { 0xae, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x038 */ { 0x12, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x03a */ { 0x42, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
@ -80,8 +84,8 @@ deco146port_xx port104_table[] = {
/* 0x06e */ { 0x96, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
/* 0x070 */ { 0x5c, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x072 */ { 0x0a, { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x074 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x076 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x074 */ { INPUT_PORT_B , { 0x01, 0x02, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x076 */ { INPUT_PORT_C , { NIB3__, BLANK_,BLANK_,BLANK_ } , 0, 1 }, // dc.w $0076 ; 0x1000 dc.w $0076 ; 0x1000 ; nand
/* 0x078 */ { 0x5a, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x07a */ { 0x74, { 0x0f, 0x0c, 0x0d, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x07c */ { 0xb4, { 0x0e, 0x0f, 0x0c, 0x0d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
@ -90,7 +94,7 @@ deco146port_xx port104_table[] = {
/* 0x082 */ { 0x28, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x084 */ { 0x50, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x086 */ { 0x66, { 0x0d, 0x0e, 0x0f, 0x0c, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 },
/* 0x088 */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, // { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // most common input port case
/* 0x088 */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, } , 0, 0 }, // dc.w $0088
/* 0x08a */ { 0x1c, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x08c */ { 0x48, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x08e */ { 0xc2, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
@ -112,7 +116,7 @@ deco146port_xx port104_table[] = {
/* 0x0ae */ { 0x3e, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x0b0 */ { 0xb6, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x0b2 */ { 0xd8, { 0x05, 0x06, 0x07, 0x04, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 1 },
/* 0x0b4 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x0b4 */ { INPUT_PORT_C , { NIB3__, NIB0__,NIB1__,NIB2__ } , 0, 0 }, // dc.w $00B4 ; 0x1000
/* 0x0b6 */ { 0xc0, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x0b8 */ { 0xa2, { 0x09, 0x0a, 0x0b, 0x08, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x0ba */ { 0xe6, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
@ -122,7 +126,7 @@ deco146port_xx port104_table[] = {
/* 0x0c2 */ { 0x56, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x0c4 */ { 0xee, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x0c6 */ { 0xd4, { 0x0e, 0x0f, 0x0c, 0x0d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 0 },
/* 0x0c8 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x0c8 */ { INPUT_PORT_A , { 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 0 }, // dc.w $00C8 ; xor
/* 0x0ca */ { 0xda, { 0x03, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x0cc */ { 0xce, { 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b } , 1, 0 },
/* 0x0ce */ { 0xf2, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
@ -138,7 +142,7 @@ deco146port_xx port104_table[] = {
/* 0x0e2 */ { 0x92, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x0e4 */ { 0x52, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x0e6 */ { 0xf4, { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
/* 0x0e8 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x0e8 */ { INPUT_PORT_B , { 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x0ea */ { 0xc6, { 0x03, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
/* 0x0ec */ { 0xea, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x0ee */ { 0xfe, { 0x0e, 0x0f, 0x0c, 0x0d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
@ -192,7 +196,7 @@ deco146port_xx port104_table[] = {
/* 0x14e */ { 0xd6, { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 1, 1 },
/* 0x150 */ { 0x7e, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x152 */ { 0x92, { 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
/* 0x154 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x154 */ { INPUT_PORT_A , { 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x156 */ { 0xde, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x158 */ { 0x1a, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x15a */ { 0x9c, { 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
@ -212,9 +216,9 @@ deco146port_xx port104_table[] = {
/* 0x176 */ { 0x62, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x178 */ { 0x88, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x17a */ { 0xe0, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x17c */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x17c */ { INPUT_PORT_A , { 0x0D, 0x0E, 0x0F, 0x0C, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B } , 1, 1 }, // dc.w $017C ; xor,nand
/* 0x17e */ { 0xcc, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x180 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x180 */ { INPUT_PORT_A , { 0x03, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F } , 0, 0 },
/* 0x182 */ { 0x46, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x184 */ { 0x90, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x186 */ { 0x72, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
@ -246,11 +250,11 @@ deco146port_xx port104_table[] = {
/* 0x1ba */ { 0x18, { 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x1bc */ { 0x0e, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x1be */ { 0xc2, { 0x06, 0x07, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x1c0 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x1c0 */ { INPUT_PORT_C , { NIB3__, NIB1__,NIB2__,NIB0__ } , 0, 0 }, // dc.w $01C0 ; 0x1000
/* 0x1c2 */ { 0x0c, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x1c4 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x1c4 */ { INPUT_PORT_A , { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F } , 0, 0 },
/* 0x1c6 */ { 0x70, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x1c8 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x1c8 */ { INPUT_PORT_A , { 0x02, 0x03, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F } , 0, 0 },
/* 0x1ca */ { 0x5c, { 0xff, 0xff, 0xff, 0xff, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x1cc */ { 0xac, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x1ce */ { 0x48, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
@ -267,8 +271,8 @@ deco146port_xx port104_table[] = {
/* 0x1e4 */ { 0x5e, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x1e6 */ { 0xe6, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x1e8 */ { 0x66, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x1ea */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x1ec */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x1ea */ { INPUT_PORT_B , { 0x04, 0x05, 0x06, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x1ec */ { INPUT_PORT_B , { 0x06, 0x07, 0x04, 0x05, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 1 }, // dc.w $01EC ; nand
/* 0x1ee */ { 0xc8, { 0x0f, 0x0c, 0x0d, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x1f0 */ { 0xa2, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 1, 1 },
/* 0x1f2 */ { 0x60, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
@ -281,10 +285,10 @@ deco146port_xx port104_table[] = {
/* 0x200 */ { 0xa0, { 0x0d, 0x0e, 0x0f, 0x0c, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x202 */ { 0x34, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
/* 0x204 */ { 0xf6, { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
/* 0x206 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x206 */ { INPUT_PORT_A , { 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x208 */ { 0xae, { 0x02, 0x03, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x20a */ { 0xf4, { 0xff, 0xff, 0xff, 0xff, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
/* 0x20c */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x20c */ { INPUT_PORT_C , {BLANK_, BLANK_,BLANK_,NIB3__ } , 1, 1 }, // dc.w $020C ; Bit not present dc.w $020C ; Bit not present ; xor,nand
/* 0x20e */ { 0x4e, { 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x210 */ { 0x0e, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x212 */ { 0x6e, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 0 },
@ -334,7 +338,7 @@ deco146port_xx port104_table[] = {
/* 0x26a */ { 0xe6, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x26c */ { 0xc2, { 0x09, 0x0a, 0x0b, 0x08, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x26e */ { 0xa8, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x270 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x270 */ { INPUT_PORT_C , { NIB1__, NIB2__,NIB3__,NIB0__ } , 0, 0 }, // dc.w $0270 ; 0x0010
/* 0x272 */ { 0x3c, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 },
/* 0x274 */ { 0x68, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x276 */ { 0x2e, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
@ -351,7 +355,7 @@ deco146port_xx port104_table[] = {
/* 0x28c */ { 0xa6, { 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x28e */ { 0x36, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x290 */ { 0xee, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x292 */ { INPUT_PORT_C , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, //{ INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings uses this, NOT verified (but should be right, common use)
/* 0x292 */ { INPUT_PORT_C , { NIB0__, NIB1__,NIB2__,NIB3__ } , 0, 0 }, // dc.w $0292 ; 0x0001
/* 0x294 */ { 0x66, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x296 */ { 0x5a, { 0x0e, 0x0f, 0x0c, 0x0d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x298 */ { 0x64, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
@ -360,7 +364,7 @@ deco146port_xx port104_table[] = {
/* 0x29e */ { 0x80, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x2a0 */ { 0xd0, { 0x06, 0x07, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 1 },
/* 0x2a2 */ { 0x44, { 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 1 },
/* 0x2a4 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x2a4 */ { INPUT_PORT_C , { NIB0__, NIB1__,NIB3__,NIB2__ } , 0, 0 }, // dc.w $02A4 ; 0x0001
/* 0x2a6 */ { 0xbc, { 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x2a8 */ { 0x22, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x2aa */ { 0xb2, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
@ -380,7 +384,7 @@ deco146port_xx port104_table[] = {
/* 0x2c6 */ { 0x50, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
/* 0x2c8 */ { 0x1c, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x2ca */ { 0x1a, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x2cc */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // bit order not verified, old sim says wizard fire uses it
/* 0x2cc */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 }, // { INPUT_PORT_B , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // bit order not verified, old sim says wizard fire uses it
/* 0x2ce */ { 0x92, { 0x09, 0x0a, 0x0b, 0x08, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 1 },
/* 0x2d0 */ { 0x66, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x08, 0x09, 0x0a, 0x0b } , 1, 0 },
/* 0x2d2 */ { 0x28, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
@ -400,10 +404,10 @@ deco146port_xx port104_table[] = {
/* 0x2ee */ { 0xaa, { 0x0d, 0x0e, 0x0f, 0x0c, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
/* 0x2f0 */ { 0xb4, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
/* 0x2f2 */ { 0xf2, { 0x05, 0x06, 0x07, 0x04, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x2f4 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x2f4 */ { INPUT_PORT_C , { NIB0__, NIB1__,NIB2__,NIB3__ } , 0, 1 }, // dc.w $02F4 ; 0x0001 dc.w $02F4 ; 0x0001 ; nand
/* 0x2f6 */ { 0x84, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x2f8 */ { 0xa4, { 0xff, 0xff, 0xff, 0xff, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x2fa */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x2fa */ { INPUT_PORT_C , { NIB0R3, NIB1__,NIB2__,NIB3__ } , 0, 0 }, // dc.w $02FA ; 0x0008
/* 0x2fc */ { 0xfc, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x2fe */ { 0x10, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x300 */ { 0xa4, { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
@ -458,9 +462,9 @@ deco146port_xx port104_table[] = {
/* 0x362 */ { 0x02, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x364 */ { 0x6c, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x366 */ { 0xec, { 0x03, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x368 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x36a */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x36c */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // Double Wing - not verified but standard case for most games
/* 0x368 */ { INPUT_PORT_C , { NIB3__, BLANK_,BLANK_,BLANK_ } , 0, 0 }, // dc.w $0368 ; 0x1000
/* 0x36a */ { INPUT_PORT_A , { 0x0C, 0x0D, 0x0E, 0x0F, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B } , 0, 0 },
/* 0x36c */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 }, // { INPUT_PORT_B , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // Double Wing - not verified but standard case for most games
/* 0x36e */ { 0x0c, { 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x370 */ { 0x80, { 0x05, 0x06, 0x07, 0x04, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 0 },
/* 0x372 */ { 0x82, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 },
@ -474,8 +478,8 @@ deco146port_xx port104_table[] = {
/* 0x382 */ { 0xf2, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x384 */ { 0xdc, { 0x06, 0x07, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x386 */ { 0x9c, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x388 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x38a */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x388 */ { INPUT_PORT_A , { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x38a */ { INPUT_PORT_B , { 0x04, 0x05, 0x06, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x38c */ { 0x28, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x38e */ { 0xb6, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x390 */ { 0x2c, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
@ -494,7 +498,7 @@ deco146port_xx port104_table[] = {
/* 0x3aa */ { 0x56, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 1, 0 },
/* 0x3ac */ { 0x54, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
/* 0x3ae */ { 0x58, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
/* 0x3b0 */ { INPUT_PORT_B , { NIB1__, BLANK_, BLANK_, BLANK_ } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // not verified, old sim says wizdfire uses it
/* 0x3b0 */ { INPUT_PORT_B , { 0x04, 0x05, 0x06, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 }, // { INPUT_PORT_B , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // not verified, old sim says wizdfire uses it
/* 0x3b2 */ { 0x14, { 0x05, 0x06, 0x07, 0x04, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x3b4 */ { 0x38, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x3b6 */ { 0xf8, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
@ -512,9 +516,9 @@ deco146port_xx port104_table[] = {
/* 0x3ce */ { 0xea, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x3d0 */ { 0xe8, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 1, 1 },
/* 0x3d2 */ { 0x88, { 0x06, 0x07, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x3d4 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x3d4 */ { INPUT_PORT_C , { NIB1__, NIB0__,NIB3__,NIB2__ } , 0, 0 }, // dc.w $03D4 ; 0x0010
/* 0x3d6 */ { 0x66, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x3d8 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x3d8 */ { INPUT_PORT_B , { 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x3da */ { 0xfa, { 0x0f, 0x0c, 0x0d, 0x0e, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 0 },
/* 0x3dc */ { 0x4c, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x3de */ { 0x36, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
@ -564,7 +568,7 @@ deco146port_xx port104_table[] = {
/* 0x436 */ { 0x66, { 0x06, 0x07, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 0 },
/* 0x438 */ { 0xec, { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x43a */ { 0xfe, { 0x03, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x43c */ { INPUT_NOT_FOUND , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // this address always seems to return 0, is it a port with all bits masked out?
/* 0x43c */ { INPUT_PORT_B , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // this address always seems to return 0, is it a port with all bits masked out? I'm going to assume it's a 'B' port (4-bit) with mask applied to those 4 bits so they always return 0 due to a design flaw, that would make 21 of each port type.
/* 0x43e */ { 0x7a, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
/* 0x440 */ { 0xfc, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x442 */ { 0x10, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
@ -572,9 +576,9 @@ deco146port_xx port104_table[] = {
/* 0x446 */ { 0x16, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x448 */ { 0x90, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
/* 0x44a */ { 0xb4, { 0x0f, 0x0c, 0x0d, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x44c */ { INPUT_PORT_B, { NIB2R1, BLANK_, BLANK_, BLANK_ }, 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // not verified, rohga, based on old sim
/* 0x44c */ { INPUT_PORT_B, { 0x0D, 0x0E, 0x0F, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, 0, 1 }, //dc.w $044C ; nand
/* 0x44e */ { 0x44, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x450 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x450 */ { INPUT_PORT_C , { NIB2__, NIB3__,BLANK_,BLANK_ } , 1, 0 }, // dc.w $0450 ; 0x0100 dc.w $0450 ; 0x0100 ; xor
/* 0x452 */ { 0x30, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x454 */ { 0x82, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
/* 0x456 */ { 0x26, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
@ -597,7 +601,7 @@ deco146port_xx port104_table[] = {
/* 0x478 */ { 0xb6, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x47a */ { 0xc2, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x47c */ { 0x7e, { 0x0f, 0x0c, 0x0d, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x47e */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x47e */ { INPUT_PORT_B , { 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x480 */ { 0x5a, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x482 */ { 0x5c, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x484 */ { 0x5a, { 0x0d, 0x0e, 0x0f, 0x0c, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
@ -620,7 +624,7 @@ deco146port_xx port104_table[] = {
/* 0x4a6 */ { 0x8c, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x4a8 */ { 0xb0, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x4aa */ { 0x48, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 0 },
/* 0x4ac */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x4ac */ { INPUT_PORT_A , { 0x0C, 0x0D, 0x0E, 0x0F, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x4ae */ { 0x92, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x4b0 */ { 0x10, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x4b2 */ { 0x74, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
@ -634,12 +638,12 @@ deco146port_xx port104_table[] = {
/* 0x4c2 */ { 0x80, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x4c4 */ { 0x3c, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x4c6 */ { 0x94, { 0x0e, 0x0f, 0x0c, 0x0d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 },
/* 0x4c8 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x4c8 */ { INPUT_PORT_A , { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F } , 0, 0 },
/* 0x4ca */ { 0x20, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x4cc */ { 0xf6, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x4ce */ { 0x66, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 1, 1 },
/* 0x4d0 */ { 0xe2, { 0x09, 0x0a, 0x0b, 0x08, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x4d2 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x4d2 */ { INPUT_PORT_B , { 0x02, 0x03, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x4d4 */ { 0xd4, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x4d6 */ { 0xa0, { 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x4d8 */ { 0x48, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
@ -655,7 +659,7 @@ deco146port_xx port104_table[] = {
/* 0x4ec */ { 0x7c, { 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x4ee */ { 0xcc, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x4f0 */ { 0x34, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x4f2 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x4f2 */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, 0x08, 0x09, 0x0A, 0x0B } , 0, 0 }, // dc.w $04F2
/* 0x4f4 */ { 0x28, { 0x09, 0x0a, 0x0b, 0x08, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x4f6 */ { 0xe6, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x4f8 */ { 0x6a, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
@ -665,8 +669,8 @@ deco146port_xx port104_table[] = {
/* 0x500 */ { 0xf0, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x502 */ { 0x88, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 1, 1 },
/* 0x504 */ { 0x5c, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x506 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x508 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x506 */ { INPUT_PORT_C , { NIB0R2, NIB1__,NIB2__,NIB3__ } , 0, 0 }, // dc.w $0506 ; 0x0004
/* 0x508 */ { INPUT_PORT_A , { 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x50a */ { 0xc0, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
/* 0x50c */ { 0x26, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 1 },
/* 0x50e */ { 0x72, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 1, 1 },
@ -682,7 +686,7 @@ deco146port_xx port104_table[] = {
/* 0x522 */ { 0xca, { 0x07, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x524 */ { 0x54, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x526 */ { 0x08, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x528 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x528 */ { INPUT_PORT_B , { 0x08, 0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x52a */ { 0x8e, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x52c */ { 0xe0, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x52e */ { 0xba, { 0x07, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 0 },
@ -711,12 +715,12 @@ deco146port_xx port104_table[] = {
/* 0x55c */ { 0x66, { 0x05, 0x06, 0x07, 0x04, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x55e */ { 0xea, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x560 */ { 0x82, { 0x0f, 0x0c, 0x0d, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x562 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x562 */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 1, 0 }, // dc.w $0562 ; xor
/* 0x564 */ { 0x80, { 0x06, 0x07, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x566 */ { 0xf8, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x568 */ { 0x6c, { 0x0f, 0x0c, 0x0d, 0x0e, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x56a */ { 0x7c, { 0x0f, 0x0c, 0x0d, 0x0e, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
/* 0x56c */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x56c */ { INPUT_PORT_A , { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x56e */ { 0x98, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x570 */ { 0x24, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
/* 0x572 */ { 0xc2, { 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 },
@ -751,7 +755,7 @@ deco146port_xx port104_table[] = {
/* 0x5ac */ { 0x6e, { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 1, 1 },
/* 0x5ae */ { 0xdc, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x5b0 */ { 0xc4, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x5b2 */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings - NOT verified
/* 0x5b2 */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 }, // { INPUT_PORT_B , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings - NOT verified
/* 0x5b4 */ { 0xe0, { 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x5b6 */ { 0x92, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x5b8 */ { 0x4e, { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
@ -780,11 +784,11 @@ deco146port_xx port104_table[] = {
/* 0x5e6 */ { 0x34, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 1 },
/* 0x5e8 */ { 0xe4, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x5ea */ { 0x58, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x5ec */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x5ec */ { INPUT_PORT_B , { 0x08, 0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x5ee */ { 0x42, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x5f0 */ { 0x8c, { 0x02, 0x03, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x5f2 */ { 0x10, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x5f4 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x5f4 */ { INPUT_PORT_C , {NIB2__, NIB3__,BLANK_,BLANK_ } , 0, 0 }, // dc.w $05F4 ; 0x0100
/* 0x5f6 */ { 0x04, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 1, 0 },
/* 0x5f8 */ { 0x4e, { 0x07, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x5fa */ { 0xd2, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
@ -796,7 +800,7 @@ deco146port_xx port104_table[] = {
/* 0x606 */ { 0xfc, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x608 */ { 0x1c, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
/* 0x60a */ { 0xca, { 0x03, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x60c */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x60c */ { INPUT_PORT_A , { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0C, 0x0D, 0x0E, 0x0F, 0x08, 0x09, 0x0A, 0x0B } , 0, 0 },
/* 0x60e */ { 0xa0, { 0xff, 0xff, 0xff, 0xff, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x610 */ { 0xa4, { 0x06, 0x07, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 1 },
/* 0x612 */ { 0x64, { 0x09, 0x0a, 0x0b, 0x08, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 0 },
@ -812,9 +816,9 @@ deco146port_xx port104_table[] = {
/* 0x626 */ { 0x4e, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x628 */ { 0x5a, { 0x02, 0x03, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x62a */ { 0x8a, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x62c */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x62c */ { INPUT_PORT_A , { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0x0D, 0x0E, 0x0F } , 0, 1 }, // dc.w $062C ; nand
/* 0x62e */ { 0x58, { 0x06, 0x07, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 1, 0 },
/* 0x630 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x630 */ { INPUT_PORT_B , { 0x00, 0x01, 0x02, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 1 }, // dc.w $0630 ; nand
/* 0x632 */ { 0x6a, { 0x07, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x634 */ { 0xc2, { 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
/* 0x636 */ { 0xc4, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
@ -848,12 +852,12 @@ deco146port_xx port104_table[] = {
/* 0x66e */ { 0xec, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 0 },
/* 0x670 */ { 0xf4, { 0x05, 0x06, 0x07, 0x04, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x672 */ { 0x6c, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
/* 0x674 */ { INPUT_PORT_C , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, //{ INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings uses this, NOT verified
/* 0x674 */ { INPUT_PORT_C , { NIB1__, NIB2__,NIB3__,BLANK_ } , 0, 0 }, // dc.w $0674 ; 0x0010
/* 0x676 */ { 0xd2, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x678 */ { 0x72, { 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x67a */ { 0x28, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x67c */ { 0x1e, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x67e */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x67e */ { INPUT_PORT_B , { 0x0D, 0x0E, 0x0F, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x680 */ { 0x7a, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 },
/* 0x682 */ { 0xba, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
/* 0x684 */ { 0xd8, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
@ -885,19 +889,19 @@ deco146port_xx port104_table[] = {
/* 0x6b8 */ { 0xea, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
/* 0x6ba */ { 0xf6, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 1 },
/* 0x6bc */ { 0x42, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x6be */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x6be */ { INPUT_PORT_A , { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0x0D, 0x0E, 0x0F } , 1, 0 }, // dc.w $06BE ; xor
/* 0x6c0 */ { 0x08, { 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x6c2 */ { 0x54, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x6c4 */ { 0x66, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x6c6 */ { 0xcc, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x6c8 */ { 0x52, { 0x07, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x6ca */ { 0xd4, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x6cc */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x6cc */ { INPUT_PORT_C , { NIB0R1, NIB1__,NIB2__,NIB3__ } , 0, 0 }, // dc.w $06CC ; 0x0002
/* 0x6ce */ { 0x0e, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 1 },
/* 0x6d0 */ { 0xb2, { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x6d2 */ { 0xa2, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 0 },
/* 0x6d4 */ { 0xb4, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x6d6 */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x6d6 */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, } , 1, 0 }, // dc.w $06D6 ; xor
/* 0x6d8 */ { 0xac, { 0x09, 0x0a, 0x0b, 0x08, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x6da */ { 0x24, { 0xff, 0xff, 0xff, 0xff, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x6dc */ { 0xbe, { 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 1, 0 },
@ -937,7 +941,7 @@ deco146port_xx port104_table[] = {
/* 0x720 */ { 0x66, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
/* 0x722 */ { 0xdc, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x724 */ { 0xb2, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x726 */ { INPUT_PORT_C , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, //{ INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings uses this, NOT verified
/* 0x726 */ { INPUT_PORT_C , { NIB0__, NIB1__,NIB2__,NIB3__ } , 0, 0 }, // dc.w $0726 ; 0x0001
/* 0x728 */ { 0xd4, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 0, 1 },
/* 0x72a */ { 0x86, { 0x0e, 0x0f, 0x0c, 0x0d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 },
/* 0x72c */ { 0x78, { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
@ -948,16 +952,16 @@ deco146port_xx port104_table[] = {
/* 0x736 */ { 0x68, { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x738 */ { 0x54, { 0x0d, 0x0e, 0x0f, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x73a */ { 0x00, { 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x73c */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 }, // { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 }, // double wings uses this, NOT verified (standard inputs?)
/* 0x73c */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, } , 0, 0 }, // dc.w $073C
/* 0x73e */ { 0xae, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x740 */ { 0x6a, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 0 },
/* 0x742 */ { 0x2e, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07 } , 0, 0 },
/* 0x744 */ { 0xf6, { 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 1 },
/* 0x746 */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x746 */ { INPUT_PORT_C , { NIB0__, NIB1__,NIB2__,NIB3__ } , 1, 0 }, // dc.w $0746 ; 0x0001 dc.w $0746 ; 0x0001 ; xor
/* 0x748 */ { 0x44, { 0x03, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x74a */ { 0x14, { 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x74c */ { 0xd2, { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
/* 0x74e */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x74e */ { INPUT_PORT_C , { NIB2__, NIB3__,NIB0__,NIB1__ } , 0, 0 }, // dc.w $074E ; 0x0100
/* 0x750 */ { 0xaa, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x752 */ { 0xbe, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x754 */ { 0x76, { 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
@ -974,7 +978,7 @@ deco146port_xx port104_table[] = {
/* 0x76a */ { 0xfa, { 0x0f, 0x0c, 0x0d, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x76c */ { 0x52, { 0x01, 0x02, 0x03, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
/* 0x76e */ { 0xd6, { 0x00, 0x01, 0x02, 0x03, 0x0c, 0x0d, 0x0e, 0x0f, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 0, 1 },
/* 0x770 */ { INPUT_PORT_B_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x770 */ { INPUT_PORT_B , { 0x04, 0x05, 0x06, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } , 0, 0 },
/* 0x772 */ { 0xc4, { 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b } , 1, 0 },
/* 0x774 */ { 0x38, { 0x07, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x776 */ { 0x6c, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 1 },
@ -1028,7 +1032,7 @@ deco146port_xx port104_table[] = {
/* 0x7d6 */ { 0x28, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x7d8 */ { 0xee, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x7da */ { 0x56, { 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 1 },
/* 0x7dc */ { INPUT_PORT_A_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x7dc */ { INPUT_PORT_A , { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, } , 0, 1 }, // dc.w $07DC ; nand
/* 0x7de */ { 0x2a, { 0x0c, 0x0d, 0x0e, 0x0f, 0x08, 0x09, 0x0a, 0x0b, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01, 0x02, 0x03 } , 1, 1 },
/* 0x7e0 */ { 0xf8, { 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b } , 1, 1 },
/* 0x7e2 */ { 0x96, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x0d, 0x0e, 0x0f } , 1, 0 },
@ -1044,7 +1048,7 @@ deco146port_xx port104_table[] = {
/* 0x7f6 */ { 0xac, { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } , 0, 0 },
/* 0x7f8 */ { 0x98, { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03 } , 0, 1 },
/* 0x7fa */ { 0x80, { 0x0e, 0x0f, 0x0c, 0x0d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 1, 1 },
/* 0x7fc */ { INPUT_PORT_C_NV , { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } , 0, 0 },
/* 0x7fc */ { INPUT_PORT_C , { BLANK_, NIB3__,BLANK_,BLANK_ } , 0, 0 }, // dc.w $07FC ; Bit not present
/* 0x7fe */ { 0xd8, { 0x0a, 0x0b, 0x08, 0x09, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 } , 1, 1 }
};

View File

@ -40,11 +40,6 @@ typedef device_delegate<void (address_space &space, UINT16 data, UINT16 mem_mask
#define INPUT_PORT_B (-2)
#define INPUT_PORT_C (-3)
#define INPUT_PORT_A_NV (-4)
#define INPUT_PORT_B_NV (-5)
#define INPUT_PORT_C_NV (-6)
#define INPUT_NOT_FOUND (-7)
#define NIB3__ 0xc, 0xd, 0xe, 0xf
#define NIB3R1 0xd, 0xe, 0xf, 0xc