diff options
Diffstat (limited to 'src/mess/drivers/c64.c')
-rw-r--r-- | src/mess/drivers/c64.c | 50 |
1 files changed, 37 insertions, 13 deletions
diff --git a/src/mess/drivers/c64.c b/src/mess/drivers/c64.c index b65ae1a072a..56aaf5966da 100644 --- a/src/mess/drivers/c64.c +++ b/src/mess/drivers/c64.c @@ -625,20 +625,40 @@ READ8_MEMBER( c64_state::cia1_pa_r ) return data; } +WRITE8_MEMBER( c64_state::cia1_pa_w ) +{ + /* + + bit description + + PA0 COL0, JOY B0 + PA1 COL1, JOY B1 + PA2 COL2, JOY B2 + PA3 COL3, JOY B3 + PA4 COL4, BTNB + PA5 COL5 + PA6 COL6 + PA7 COL7 + + */ + + m_joy2->joy_w(data & 0x1f); +} + READ8_MEMBER( c64_state::cia1_pb_r ) { /* bit description - PB0 JOY A0 - PB1 JOY A1 - PB2 JOY A2 - PB3 JOY A3 - PB4 BTNA/_LP - PB5 - PB6 - PB7 + PB0 ROW0, JOY A0 + PB1 ROW1, JOY A1 + PB2 ROW2, JOY A2 + PB3 ROW3, JOY A3 + PB4 ROW4, BTNA, _LP + PB5 ROW5 + PB6 ROW6 + PB7 ROW7 */ @@ -671,17 +691,19 @@ WRITE8_MEMBER( c64_state::cia1_pb_w ) bit description - PB0 ROW0 - PB1 ROW1 - PB2 ROW2 - PB3 ROW3 - PB4 ROW4 + PB0 ROW0, JOY A0 + PB1 ROW1, JOY A1 + PB2 ROW2, JOY A2 + PB3 ROW3, JOY A3 + PB4 ROW4, BTNA, _LP PB5 ROW5 PB6 ROW6 PB7 ROW7 */ + m_joy1->joy_w(data & 0x1f); + m_vic->lp_w(BIT(data, 4)); } @@ -1289,6 +1311,7 @@ static MACHINE_CONFIG_START( pal, c64_state ) MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4)) MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5)) MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64_state, cia1_pa_r)) + MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pa_w)) MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64_state, cia1_pb_r)) MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pb_w)) MCFG_DEVICE_ADD(MOS6526_2_TAG, MOS6526, XTAL_17_734472MHz/18) @@ -1423,6 +1446,7 @@ static MACHINE_CONFIG_START( pal_gs, c64gs_state ) MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4)) MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5)) MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64gs_state, cia1_pa_r)) + MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pa_w)) MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64gs_state, cia1_pb_r)) MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pb_w)) MCFG_DEVICE_ADD(MOS6526_2_TAG, MOS6526, XTAL_17_734472MHz/18) |