trunk/src/mess/machine/kb_pcxt83.c
| r24024 | r24025 | |
| 54 | 54 | 8143 P |
| 55 | 55 | (C) INTEL 76 |
| 56 | 56 | */ |
| 57 | | ROM_LOAD( "4584751.bin", 0x000, 0x400, CRC(c59aa9d1) SHA1(4f5b2a075c68f6493310ec1e2a24271ceea330df) ) |
| 57 | ROM_LOAD( "4584751.m1", 0x000, 0x400, CRC(c59aa9d1) SHA1(4f5b2a075c68f6493310ec1e2a24271ceea330df) ) |
| 58 | 58 | ROM_END |
| 59 | 59 | |
| 60 | 60 | |
| r24024 | r24025 | |
| 108 | 108 | |
| 109 | 109 | INPUT_PORTS_START( ibm_pc_xt_83_keyboard ) |
| 110 | 110 | PORT_START("MD00") |
| 111 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 112 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 113 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 114 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 115 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 116 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 117 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 118 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 111 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 112 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //4e |
| 113 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //51 |
| 114 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //4d |
| 115 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) //4a |
| 116 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //49 |
| 117 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 118 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //46 |
| 119 | 119 | |
| 120 | 120 | PORT_START("MD01") |
| 121 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 122 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 123 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 124 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 125 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 126 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 127 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 128 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 121 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) //53 |
| 122 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //50 |
| 123 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //4f |
| 124 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //4c |
| 125 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) //4b |
| 126 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //47 |
| 127 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) //48 |
| 128 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //45 |
| 129 | 129 | |
| 130 | 130 | PORT_START("MD02") |
| 131 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 132 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 133 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 134 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 135 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 136 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 137 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 138 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 131 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) //52 |
| 132 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //37 |
| 133 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //36 |
| 134 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //29 |
| 135 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) //1c |
| 136 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 137 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 138 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //0e |
| 139 | 139 | |
| 140 | 140 | PORT_START("MD03") |
| 141 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 142 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 143 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 144 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 145 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 146 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 147 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 148 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 141 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) //3a |
| 142 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //35 |
| 143 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //28 |
| 144 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 145 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) //1b |
| 146 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //1a |
| 147 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 148 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //0d |
| 149 | 149 | |
| 150 | 150 | PORT_START("MD04") |
| 151 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 152 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 153 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 154 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 155 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 156 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 157 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 158 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 151 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 152 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //34 |
| 153 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //27 |
| 154 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //26 |
| 155 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 156 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //19 |
| 157 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) //0c |
| 158 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //0b |
| 159 | 159 | |
| 160 | 160 | PORT_START("MD05") |
| 161 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 162 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 163 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 164 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 165 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 166 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 167 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 168 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 161 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) //32 |
| 162 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //33 |
| 163 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //25 |
| 164 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //24 |
| 165 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) //18 |
| 166 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //17 |
| 167 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) //0a |
| 168 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //09 |
| 169 | 169 | |
| 170 | 170 | PORT_START("MD06") |
| 171 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 172 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 173 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 174 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 175 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 176 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 177 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 178 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 171 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) //39 |
| 172 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //31 |
| 173 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //30 |
| 174 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //23 |
| 175 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) //16 |
| 176 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //15 |
| 177 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) //08 |
| 178 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //07 |
| 179 | 179 | |
| 180 | 180 | PORT_START("MD07") |
| 181 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 182 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 183 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 184 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 185 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 186 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 187 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 188 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 181 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) //2e |
| 182 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //2f |
| 183 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //22 |
| 184 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //21 |
| 185 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) //14 |
| 186 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //13 |
| 187 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) //06 |
| 188 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //05 |
| 189 | 189 | |
| 190 | 190 | PORT_START("MD08") |
| 191 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 192 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 193 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 194 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 195 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 196 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 197 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 198 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 191 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) //2d |
| 192 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //2c |
| 193 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //20 |
| 194 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //1f |
| 195 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) //12 |
| 196 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //11 |
| 197 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) //04 |
| 198 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //03 |
| 199 | 199 | |
| 200 | 200 | PORT_START("MD09") |
| 201 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 202 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 203 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 204 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 205 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 206 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 207 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 208 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 201 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) //2b |
| 202 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //2a |
| 203 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //1d |
| 204 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //1e |
| 205 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) //10 |
| 206 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //0f |
| 207 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) //02 |
| 208 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //01 |
| 209 | 209 | |
| 210 | 210 | PORT_START("MD10") |
| 211 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 212 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 213 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 214 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 215 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 216 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 217 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 218 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 211 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) //38 |
| 212 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //44 |
| 213 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //42 |
| 214 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //40 |
| 215 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 216 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //3e |
| 217 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 218 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //3c |
| 219 | 219 | |
| 220 | 220 | PORT_START("MD11") |
| 221 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 222 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 223 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 224 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 225 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 226 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 227 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 228 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
| 221 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 222 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) //43 |
| 223 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) //41 |
| 224 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) //3f |
| 225 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 226 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) //3d |
| 227 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) //76 |
| 228 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) //3b |
| 229 | 229 | INPUT_PORTS_END |
| 230 | 230 | |
| 231 | 231 | |
| r24024 | r24025 | |
| 264 | 264 | m_md09(*this, "MD09"), |
| 265 | 265 | m_md10(*this, "MD10"), |
| 266 | 266 | m_md11(*this, "MD11"), |
| 267 | | m_p1(0), |
| 268 | | m_p2(0) |
| 267 | m_bus(0xff), |
| 268 | m_p1(0xff), |
| 269 | m_p2(0xff), |
| 270 | m_sense(0), |
| 271 | m_q(1) |
| 269 | 272 | { |
| 270 | 273 | } |
| 271 | 274 | |
| r24024 | r24025 | |
| 279 | 282 | set_pc_kbdc_device(); |
| 280 | 283 | |
| 281 | 284 | // state saving |
| 285 | save_item(NAME(m_bus)); |
| 282 | 286 | save_item(NAME(m_p1)); |
| 283 | 287 | save_item(NAME(m_p2)); |
| 284 | | save_item(NAME(m_md)); |
| 285 | 288 | save_item(NAME(m_sense)); |
| 289 | save_item(NAME(m_q)); |
| 286 | 290 | } |
| 287 | 291 | |
| 288 | 292 | |
| r24024 | r24025 | |
| 292 | 296 | |
| 293 | 297 | void ibm_pc_xt_83_keyboard_device::device_reset() |
| 294 | 298 | { |
| 295 | | m_maincpu->reset(); |
| 296 | 299 | } |
| 297 | 300 | |
| 298 | 301 | |
| r24024 | r24025 | |
| 332 | 335 | 4 |
| 333 | 336 | 5 DATAOUT |
| 334 | 337 | 6 -REQOUT |
| 335 | | 7 RESET |
| 338 | 7 Z1 RESET |
| 336 | 339 | |
| 337 | 340 | */ |
| 338 | 341 | |
| 339 | 342 | m_pc_kbdc->data_write_from_kb(BIT(data, 5)); |
| 340 | 343 | m_pc_kbdc->clock_write_from_kb(BIT(data, 6)); |
| 341 | 344 | |
| 342 | | if (BIT(data, 7)) |
| 345 | if (!BIT(m_bus, 7) && BIT(data, 7)) |
| 343 | 346 | { |
| 344 | | m_md = (m_p2 & 0xf0) << 4 | m_p1; |
| 347 | UINT8 data = 0xff; |
| 348 | |
| 349 | if (BIT(m_p1, 0)) data &= m_md00->read(); |
| 350 | if (BIT(m_p1, 1)) data &= m_md01->read(); |
| 351 | if (BIT(m_p1, 2)) data &= m_md02->read(); |
| 352 | if (BIT(m_p1, 3)) data &= m_md03->read(); |
| 353 | if (BIT(m_p1, 4)) data &= m_md04->read(); |
| 354 | if (BIT(m_p1, 5)) data &= m_md05->read(); |
| 355 | if (BIT(m_p1, 6)) data &= m_md06->read(); |
| 356 | if (BIT(m_p1, 7)) data &= m_md07->read(); |
| 357 | if (BIT(m_p2, 4)) data &= m_md08->read(); |
| 358 | if (BIT(m_p2, 5)) data &= m_md09->read(); |
| 359 | if (BIT(m_p2, 6)) data &= m_md10->read(); |
| 360 | if (BIT(m_p2, 7)) data &= m_md11->read(); |
| 361 | |
| 362 | m_q = BIT(data, m_sense); |
| 345 | 363 | } |
| 364 | |
| 365 | m_bus = data; |
| 346 | 366 | } |
| 347 | 367 | |
| 348 | 368 | |
| r24024 | r24025 | |
| 417 | 437 | |
| 418 | 438 | READ8_MEMBER( ibm_pc_xt_83_keyboard_device::t1_r ) |
| 419 | 439 | { |
| 420 | | return sa_closed(); |
| 440 | return BIT(m_p2, 3) && m_q; |
| 421 | 441 | } |
| 422 | | |
| 423 | | |
| 424 | | //------------------------------------------------- |
| 425 | | // sa_closed - |
| 426 | | //------------------------------------------------- |
| 427 | | |
| 428 | | int ibm_pc_xt_83_keyboard_device::sa_closed() |
| 429 | | { |
| 430 | | UINT8 data = 0xff; |
| 431 | | |
| 432 | | if (BIT(m_md, 0)) data &= m_md00->read(); |
| 433 | | if (BIT(m_md, 1)) data &= m_md01->read(); |
| 434 | | if (BIT(m_md, 2)) data &= m_md02->read(); |
| 435 | | if (BIT(m_md, 3)) data &= m_md03->read(); |
| 436 | | if (BIT(m_md, 4)) data &= m_md04->read(); |
| 437 | | if (BIT(m_md, 5)) data &= m_md05->read(); |
| 438 | | if (BIT(m_md, 6)) data &= m_md06->read(); |
| 439 | | if (BIT(m_md, 7)) data &= m_md07->read(); |
| 440 | | if (BIT(m_md, 8)) data &= m_md08->read(); |
| 441 | | if (BIT(m_md, 9)) data &= m_md09->read(); |
| 442 | | if (BIT(m_md, 10)) data &= m_md10->read(); |
| 443 | | if (BIT(m_md, 11)) data &= m_md11->read(); |
| 444 | | |
| 445 | | return BIT(data, m_sense); |
| 446 | | } |