trunk/src/emu/machine/6522via.c
| r26852 | r26853 | |
| 1103 | 1103 | |
| 1104 | 1104 | WRITE_LINE_MEMBER( via6522_device::write_cb2 ) |
| 1105 | 1105 | { |
| 1106 | | /* CB2 is in input mode */ |
| 1107 | | if (CB2_INPUT(m_pcr)) |
| 1106 | /* the new state has caused a transition */ |
| 1107 | if (m_in_cb2 != state) |
| 1108 | 1108 | { |
| 1109 | | /* the new state has caused a transition */ |
| 1110 | | if (m_in_cb2 != state) |
| 1109 | /* CB2 is in input mode */ |
| 1110 | if (CB2_INPUT(m_pcr)) |
| 1111 | 1111 | { |
| 1112 | 1112 | /* handle the active transition */ |
| 1113 | 1113 | if ((state && CB2_LOW_TO_HIGH(m_pcr)) || (!state && CB2_HIGH_TO_LOW(m_pcr))) |
| r26852 | r26853 | |
| 1115 | 1115 | /* mark the IRQ */ |
| 1116 | 1116 | set_int(INT_CB2); |
| 1117 | 1117 | } |
| 1118 | | /* set the new value for CB2 */ |
| 1119 | | m_in_cb2 = state; |
| 1120 | 1118 | } |
| 1119 | |
| 1120 | /* set the new value for CB2 */ |
| 1121 | m_in_cb2 = state; |
| 1121 | 1122 | } |
| 1122 | 1123 | } |
trunk/src/mess/drivers/clcd.c
| r26852 | r26853 | |
| 45 | 45 | m_col5(*this,"COL5"), |
| 46 | 46 | m_col6(*this,"COL6"), |
| 47 | 47 | m_col7(*this,"COL7"), |
| 48 | | m_special(*this,"SPECIAL") |
| 49 | | , |
| 50 | | m_maincpu(*this, "maincpu") { |
| 48 | m_special(*this,"SPECIAL"), |
| 49 | m_maincpu(*this, "maincpu"), |
| 50 | m_via0(*this, "via0") |
| 51 | { |
| 51 | 52 | } |
| 52 | 53 | |
| 53 | 54 | TILE_GET_INFO_MEMBER(get_clcd_tilemap_tile_info) |
| r26852 | r26853 | |
| 202 | 203 | } |
| 203 | 204 | |
| 204 | 205 | keyShift = 0x10000; |
| 206 | |
| 207 | m_via0->write_cb2( ( keyData & keyShift ) != 0 ); |
| 205 | 208 | } |
| 206 | 209 | } |
| 207 | 210 | } |
| 208 | 211 | |
| 209 | | READ8_MEMBER( via0_pb_r ) |
| 210 | | { |
| 211 | | return 0; |
| 212 | | } |
| 213 | | |
| 214 | | READ_LINE_MEMBER( via0_cb2_r ) |
| 215 | | { |
| 216 | | return ( keyData & keyShift ) != 0; |
| 217 | | } |
| 218 | | |
| 219 | 212 | WRITE_LINE_MEMBER( via0_cb1_w ) |
| 220 | 213 | { |
| 221 | 214 | int newKeyClockState = state & 1; |
| r26852 | r26853 | |
| 226 | 219 | if( keyClockState ) |
| 227 | 220 | { |
| 228 | 221 | keyShift >>= 1; |
| 222 | |
| 223 | m_via0->write_cb2( ( keyData & keyShift ) != 0 ); |
| 229 | 224 | } |
| 230 | 225 | } |
| 231 | 226 | } |
| r26852 | r26853 | |
| 249 | 244 | required_ioport m_col7; |
| 250 | 245 | required_ioport m_special; |
| 251 | 246 | required_device<cpu_device> m_maincpu; |
| 247 | required_device<via6522_device> m_via0; |
| 252 | 248 | }; |
| 253 | 249 | |
| 254 | 250 | static ADDRESS_MAP_START( clcd_mem, AS_PROGRAM, 8, clcd_state ) |
| r26852 | r26853 | |
| 397 | 393 | MCFG_CPU_PROGRAM_MAP(clcd_mem) |
| 398 | 394 | |
| 399 | 395 | MCFG_DEVICE_ADD("via0", VIA6522, 0) |
| 400 | | MCFG_VIA6522_READPB_HANDLER(READ8(clcd_state, via0_pb_r)) |
| 401 | | MCFG_VIA6522_READCB2_HANDLER(READLINE(clcd_state, via0_cb2_r)) |
| 402 | 396 | MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(clcd_state, via0_pa_w)) |
| 403 | 397 | MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(clcd_state, via0_pb_w)) |
| 404 | 398 | MCFG_VIA6522_CB1_HANDLER(WRITELINE(clcd_state, via0_cb1_w)) |