src/mess/machine/compis.c
| r929 | r930 | |
| 198 | 198 | pic8259_set_irq_line(0, irq, 0); |
| 199 | 199 | } |
| 200 | 200 | |
| 201 | | READ8_HANDLER ( compis_osp_pic_r ) |
| 201 | READ16_HANDLER ( compis_osp_pic_r ) |
| 202 | 202 | { |
| 203 | | return pic8259_0_r (offset >> 1); |
| 203 | return pic8259_0_r (offset); |
| 204 | 204 | } |
| 205 | 205 | |
| 206 | | WRITE8_HANDLER ( compis_osp_pic_w ) |
| 206 | WRITE16_HANDLER ( compis_osp_pic_w ) |
| 207 | 207 | { |
| 208 | | pic8259_0_w (offset >> 1, data); |
| 208 | pic8259_0_w (offset, data); |
| 209 | 209 | } |
| 210 | 210 | |
| 211 | 211 | /*-------------------------------------------------------------------------*/ |
| r929 | r930 | |
| 317 | 317 | compis_fdc_dma_drq |
| 318 | 318 | }; |
| 319 | 319 | |
| 320 | | READ8_HANDLER (compis_fdc_dack_r) |
| 320 | READ16_HANDLER (compis_fdc_dack_r) |
| 321 | 321 | { |
| 322 | 322 | UINT16 data; |
| 323 | 323 | data = 0xffff; |
| r929 | r930 | |
| 330 | 330 | return data; |
| 331 | 331 | } |
| 332 | 332 | |
| 333 | | WRITE8_HANDLER (compis_fdc_w) |
| 333 | WRITE16_HANDLER (compis_fdc_w) |
| 334 | 334 | { |
| 335 | 335 | switch(offset) |
| 336 | 336 | { |
| r929 | r930 | |
| 343 | 343 | } |
| 344 | 344 | } |
| 345 | 345 | |
| 346 | | READ8_HANDLER (compis_fdc_r) |
| 346 | READ16_HANDLER (compis_fdc_r) |
| 347 | 347 | { |
| 348 | 348 | UINT16 data; |
| 349 | 349 | data = 0xffff; |
| r929 | r930 | |
| 352 | 352 | case 0: |
| 353 | 353 | data = nec765_status_r(0); |
| 354 | 354 | break; |
| 355 | | case 2: |
| 355 | case 1: |
| 356 | 356 | data = nec765_data_r(0); |
| 357 | 357 | break; |
| 358 | 358 | default: |
| r929 | r930 | |
| 393 | 393 | /* Bit 6: J7-13 Centronics SELECT */ |
| 394 | 394 | /* Bit 7: Tmr0 */ |
| 395 | 395 | /*-------------------------------------------------------------------------*/ |
| 396 | | static READ8_HANDLER ( compis_ppi_port_b_r ) |
| 396 | static READ8_HANDLER ( compis_ppi_port_b_r ) |
| 397 | 397 | { |
| 398 | 398 | UINT8 data; |
| 399 | 399 | |
| r929 | r930 | |
| 442 | 442 | {compis_ppi_port_c_w} |
| 443 | 443 | }; |
| 444 | 444 | |
| 445 | | READ8_HANDLER ( compis_ppi_r ) |
| 445 | READ16_HANDLER ( compis_ppi_r ) |
| 446 | 446 | { |
| 447 | | return ppi8255_0_r (offset >> 1); |
| 447 | return ppi8255_0_r (offset); |
| 448 | 448 | } |
| 449 | 449 | |
| 450 | | WRITE8_HANDLER ( compis_ppi_w ) |
| 450 | WRITE16_HANDLER ( compis_ppi_w ) |
| 451 | 451 | { |
| 452 | | ppi8255_0_w (offset >> 1, data); |
| 452 | ppi8255_0_w (offset, data); |
| 453 | 453 | } |
| 454 | 454 | |
| 455 | 455 | /*-------------------------------------------------------------------------*/ |
| r929 | r930 | |
| 482 | 482 | } |
| 483 | 483 | }; |
| 484 | 484 | |
| 485 | | READ8_HANDLER ( compis_pit_r ) |
| 485 | READ16_HANDLER ( compis_pit_r ) |
| 486 | 486 | { |
| 487 | | return pit8253_0_r (offset >> 1); |
| 487 | return pit8253_0_r (offset); |
| 488 | 488 | } |
| 489 | 489 | |
| 490 | | WRITE8_HANDLER ( compis_pit_w ) |
| 490 | WRITE16_HANDLER ( compis_pit_w ) |
| 491 | 491 | { |
| 492 | | pit8253_0_w (offset >> 1 , data); |
| 492 | pit8253_0_w (offset , data); |
| 493 | 493 | } |
| 494 | 494 | |
| 495 | 495 | /*-------------------------------------------------------------------------*/ |
| 496 | 496 | /* OSP PIT 8254 */ |
| 497 | 497 | /*-------------------------------------------------------------------------*/ |
| 498 | 498 | |
| 499 | | READ8_HANDLER ( compis_osp_pit_r ) |
| 499 | READ16_HANDLER ( compis_osp_pit_r ) |
| 500 | 500 | { |
| 501 | | return pit8253_1_r (offset >> 1); |
| 501 | return pit8253_1_r (offset); |
| 502 | 502 | } |
| 503 | 503 | |
| 504 | | WRITE8_HANDLER ( compis_osp_pit_w ) |
| 504 | WRITE16_HANDLER ( compis_osp_pit_w ) |
| 505 | 505 | { |
| 506 | | pit8253_1_w (offset >> 1, data); |
| 506 | pit8253_1_w (offset, data); |
| 507 | 507 | } |
| 508 | 508 | |
| 509 | 509 | /*-------------------------------------------------------------------------*/ |
| 510 | 510 | /* RTC 58174 */ |
| 511 | 511 | /*-------------------------------------------------------------------------*/ |
| 512 | | READ8_HANDLER ( compis_rtc_r ) |
| 512 | |
| 513 | READ16_HANDLER ( compis_rtc_r ) |
| 513 | 514 | { |
| 514 | | return mm58274c_r(0, offset >> 1); |
| 515 | return mm58274c_r(0, offset); |
| 515 | 516 | } |
| 516 | 517 | |
| 517 | | WRITE8_HANDLER ( compis_rtc_w ) |
| 518 | WRITE16_HANDLER ( compis_rtc_w ) |
| 518 | 519 | { |
| 519 | | mm58274c_w(0, offset >> 1, data); |
| 520 | mm58274c_w(0, offset, data); |
| 520 | 521 | } |
| 521 | 522 | |
| 522 | 523 | /*-------------------------------------------------------------------------*/ |
| r929 | r930 | |
| 537 | 538 | compis_usart_rxready |
| 538 | 539 | }; |
| 539 | 540 | |
| 540 | | READ8_HANDLER ( compis_usart_r ) |
| 541 | READ16_HANDLER ( compis_usart_r ) |
| 541 | 542 | { |
| 542 | | UINT8 data = 0xff; |
| 543 | | |
| 544 | | return msm8251_data_r ( offset >> 1 ); |
| 545 | | |
| 546 | | switch (offset) |
| 547 | | { |
| 548 | | case 0x00: |
| 549 | | if (compis.usart.status & COMPIS_USART_STATUS_RX_READY) |
| 550 | | { |
| 551 | | switch (compis.usart.bytes_sent) |
| 552 | | { |
| 553 | | case 0: |
| 554 | | data = compis.keyboard.key_code; |
| 555 | | compis.usart.bytes_sent = 1; |
| 556 | | break; |
| 557 | | |
| 558 | | case 1: |
| 559 | | data = compis.keyboard.key_status; |
| 560 | | compis.usart.bytes_sent = 0; |
| 561 | | compis.usart.status &= ~COMPIS_USART_STATUS_RX_READY; |
| 562 | | break; |
| 563 | | } |
| 564 | | } |
| 565 | | break; |
| 566 | | |
| 567 | | case 0x02: |
| 568 | | data = compis.usart.status; |
| 569 | | logerror("%04X: USART STATUS Port Read %04X\n", activecpu_get_pc(), |
| 570 | | offset); |
| 571 | | break; |
| 572 | | |
| 573 | | default: |
| 574 | | logerror("%04X: USART Unknown Port Read %04X\n", activecpu_get_pc(), |
| 575 | | offset); |
| 576 | | break; |
| 577 | | } |
| 578 | | |
| 579 | | return data; |
| 543 | return msm8251_data_r ( offset); |
| 580 | 544 | } |
| 581 | 545 | |
| 582 | | WRITE8_HANDLER ( compis_usart_w ) |
| 546 | WRITE16_HANDLER ( compis_usart_w ) |
| 583 | 547 | { |
| 584 | 548 | switch (offset) |
| 585 | 549 | { |
| 586 | 550 | case 0x00: |
| 587 | 551 | msm8251_data_w (0,data); |
| 588 | 552 | break; |
| 589 | | case 0x02: |
| 553 | case 0x01: |
| 590 | 554 | msm8251_control_w (0,data); |
| 591 | 555 | break; |
| 592 | 556 | default: |
| r929 | r930 | |
| 1064 | 1028 | *************************************/ |
| 1065 | 1029 | |
| 1066 | 1030 | |
| 1067 | | READ8_HANDLER( i186_internal_port_r ) |
| 1031 | READ16_HANDLER( i186_internal_port_r ) |
| 1068 | 1032 | { |
| 1069 | 1033 | int shift = 8 * (offset & 1); |
| 1070 | 1034 | int temp, which; |
| 1071 | 1035 | |
| 1072 | 1036 | switch (offset & ~1) |
| 1073 | 1037 | { |
| 1074 | | case 0x22: |
| 1038 | case 0x11: |
| 1075 | 1039 | logerror("%05X:ERROR - read from 80186 EOI\n", activecpu_get_pc()); |
| 1076 | 1040 | break; |
| 1077 | 1041 | |
| 1078 | | case 0x24: |
| 1042 | case 0x12: |
| 1079 | 1043 | if (LOG_PORTS) |
| 1080 | 1044 | logerror("%05X:read 80186 interrupt poll\n", activecpu_get_pc()); |
| 1081 | 1045 | if (i186.intr.poll_status & 0x8000) |
| 1082 | 1046 | int_callback(0); |
| 1083 | 1047 | return (i186.intr.poll_status >> shift) & 0xff; |
| 1084 | 1048 | |
| 1085 | | case 0x26: |
| 1049 | case 0x13: |
| 1086 | 1050 | if (LOG_PORTS) |
| 1087 | 1051 | logerror("%05X:read 80186 interrupt poll status\n", |
| 1088 | 1052 | activecpu_get_pc()); |
| 1089 | 1053 | return (i186.intr.poll_status >> shift) & 0xff; |
| 1090 | 1054 | |
| 1091 | | case 0x28: |
| 1055 | case 0x14: |
| 1092 | 1056 | if (LOG_PORTS) logerror("%05X:read 80186 interrupt mask\n", |
| 1093 | 1057 | activecpu_get_pc()); |
| 1094 | 1058 | temp = (i186.intr.timer >> 3) & 0x01; |
| r929 | r930 | |
| 1100 | 1064 | temp |= (i186.intr.ext[3] << 4) & 0x80; |
| 1101 | 1065 | return (temp >> shift) & 0xff; |
| 1102 | 1066 | |
| 1103 | | case 0x2a: |
| 1067 | case 0x15: |
| 1104 | 1068 | if (LOG_PORTS) |
| 1105 | 1069 | logerror("%05X:read 80186 interrupt priority mask\n", |
| 1106 | 1070 | activecpu_get_pc()); |
| 1107 | 1071 | return (i186.intr.priority_mask >> shift) & 0xff; |
| 1108 | 1072 | |
| 1109 | | case 0x2c: |
| 1073 | case 0x16: |
| 1110 | 1074 | if (LOG_PORTS) |
| 1111 | 1075 | logerror("%05X:read 80186 interrupt in-service\n", |
| 1112 | 1076 | activecpu_get_pc()); |
| 1113 | 1077 | return (i186.intr.in_service >> shift) & 0xff; |
| 1114 | 1078 | |
| 1115 | | case 0x2e: |
| 1079 | case 0x17: |
| 1116 | 1080 | if (LOG_PORTS) |
| 1117 | 1081 | logerror("%05X:read 80186 interrupt request\n", |
| 1118 | 1082 | activecpu_get_pc()); |
| r929 | r930 | |
| 1121 | 1085 | temp |= 1; |
| 1122 | 1086 | return (temp >> shift) & 0xff; |
| 1123 | 1087 | |
| 1124 | | case 0x30: |
| 1088 | case 0x18: |
| 1125 | 1089 | if (LOG_PORTS) |
| 1126 | 1090 | logerror("%05X:read 80186 interrupt status\n", activecpu_get_pc()); |
| 1127 | 1091 | return (i186.intr.status >> shift) & 0xff; |
| 1128 | 1092 | |
| 1129 | | case 0x32: |
| 1093 | case 0x19: |
| 1130 | 1094 | if (LOG_PORTS) |
| 1131 | 1095 | logerror("%05X:read 80186 timer interrupt control\n", |
| 1132 | 1096 | activecpu_get_pc()); |
| 1133 | 1097 | return (i186.intr.timer >> shift) & 0xff; |
| 1134 | 1098 | |
| 1135 | | case 0x34: |
| 1099 | case 0x1a: |
| 1136 | 1100 | if (LOG_PORTS) |
| 1137 | 1101 | logerror("%05X:read 80186 DMA 0 interrupt control\n", |
| 1138 | 1102 | activecpu_get_pc()); |
| 1139 | 1103 | return (i186.intr.dma[0] >> shift) & 0xff; |
| 1140 | 1104 | |
| 1141 | | case 0x36: |
| 1105 | case 0x1b: |
| 1142 | 1106 | if (LOG_PORTS) |
| 1143 | 1107 | logerror("%05X:read 80186 DMA 1 interrupt control\n", |
| 1144 | 1108 | activecpu_get_pc()); |
| 1145 | 1109 | return (i186.intr.dma[1] >> shift) & 0xff; |
| 1146 | 1110 | |
| 1147 | | case 0x38: |
| 1111 | case 0x1c: |
| 1148 | 1112 | if (LOG_PORTS) |
| 1149 | 1113 | logerror("%05X:read 80186 INT 0 interrupt control\n", |
| 1150 | 1114 | activecpu_get_pc()); |
| 1151 | 1115 | return (i186.intr.ext[0] >> shift) & 0xff; |
| 1152 | 1116 | |
| 1153 | | case 0x3a: |
| 1117 | case 0x1d: |
| 1154 | 1118 | if (LOG_PORTS) |
| 1155 | 1119 | logerror("%05X:read 80186 INT 1 interrupt control\n", |
| 1156 | 1120 | activecpu_get_pc()); |
| 1157 | 1121 | return (i186.intr.ext[1] >> shift) & 0xff; |
| 1158 | 1122 | |
| 1159 | | case 0x3c: |
| 1123 | case 0x1e: |
| 1160 | 1124 | if (LOG_PORTS) |
| 1161 | 1125 | logerror("%05X:read 80186 INT 2 interrupt control\n", |
| 1162 | 1126 | activecpu_get_pc()); |
| 1163 | 1127 | return (i186.intr.ext[2] >> shift) & 0xff; |
| 1164 | 1128 | |
| 1165 | | case 0x3e: |
| 1129 | case 0x1f: |
| 1166 | 1130 | if (LOG_PORTS) |
| 1167 | 1131 | logerror("%05X:read 80186 INT 3 interrupt control\n", |
| 1168 | 1132 | activecpu_get_pc()); |
| 1169 | 1133 | return (i186.intr.ext[3] >> shift) & 0xff; |
| 1170 | 1134 | |
| 1171 | | case 0x50: |
| 1172 | | case 0x58: |
| 1173 | | case 0x60: |
| 1135 | case 0x28: |
| 1136 | case 0x2c: |
| 1137 | case 0x30: |
| 1174 | 1138 | if (LOG_PORTS) |
| 1175 | 1139 | logerror("%05X:read 80186 Timer %d count\n", |
| 1176 | 1140 | activecpu_get_pc(), (offset - 0x50) / 8); |
| r929 | r930 | |
| 1179 | 1143 | internal_timer_sync(which); |
| 1180 | 1144 | return (i186.timer[which].count >> shift) & 0xff; |
| 1181 | 1145 | |
| 1182 | | case 0x52: |
| 1183 | | case 0x5a: |
| 1184 | | case 0x62: |
| 1146 | case 0x29: |
| 1147 | case 0x2d: |
| 1148 | case 0x31: |
| 1185 | 1149 | if (LOG_PORTS) logerror("%05X:read 80186 Timer %d max A\n", |
| 1186 | 1150 | activecpu_get_pc(), (offset - 0x50) / 8); |
| 1187 | 1151 | which = (offset - 0x50) / 8; |
| 1188 | 1152 | return (i186.timer[which].maxA >> shift) & 0xff; |
| 1189 | 1153 | |
| 1190 | | case 0x54: |
| 1191 | | case 0x5c: |
| 1154 | case 0x2a: |
| 1155 | case 0x2e: |
| 1192 | 1156 | logerror("%05X:read 80186 Timer %d max B\n", |
| 1193 | 1157 | activecpu_get_pc(), (offset - 0x50) / 8); |
| 1194 | 1158 | which = (offset - 0x50) / 8; |
| 1195 | 1159 | return (i186.timer[which].maxB >> shift) & 0xff; |
| 1196 | 1160 | |
| 1197 | | case 0x56: |
| 1198 | | case 0x5e: |
| 1199 | | case 0x66: |
| 1161 | case 0x2b: |
| 1162 | case 0x2f: |
| 1163 | case 0x33: |
| 1200 | 1164 | if (LOG_PORTS) |
| 1201 | 1165 | logerror("%05X:read 80186 Timer %d control\n", |
| 1202 | 1166 | activecpu_get_pc(), (offset - 0x50) / 8); |
| 1203 | 1167 | which = (offset - 0x50) / 8; |
| 1204 | 1168 | return (i186.timer[which].control >> shift) & 0xff; |
| 1205 | 1169 | |
| 1206 | | case 0xa0: |
| 1170 | case 0x50: |
| 1207 | 1171 | if (LOG_PORTS) |
| 1208 | 1172 | logerror("%05X:read 80186 upper chip select\n", |
| 1209 | 1173 | activecpu_get_pc()); |
| 1210 | 1174 | return (i186.mem.upper >> shift) & 0xff; |
| 1211 | 1175 | |
| 1212 | | case 0xa2: |
| 1176 | case 0x51: |
| 1213 | 1177 | if (LOG_PORTS) |
| 1214 | 1178 | logerror("%05X:read 80186 lower chip select\n", |
| 1215 | 1179 | activecpu_get_pc()); |
| 1216 | 1180 | return (i186.mem.lower >> shift) & 0xff; |
| 1217 | 1181 | |
| 1218 | | case 0xa4: |
| 1182 | case 0x52: |
| 1219 | 1183 | if (LOG_PORTS) |
| 1220 | 1184 | logerror("%05X:read 80186 peripheral chip select\n", |
| 1221 | 1185 | activecpu_get_pc()); |
| 1222 | 1186 | return (i186.mem.peripheral >> shift) & 0xff; |
| 1223 | 1187 | |
| 1224 | | case 0xa6: |
| 1188 | case 0x53: |
| 1225 | 1189 | if (LOG_PORTS) |
| 1226 | 1190 | logerror("%05X:read 80186 middle chip select\n", |
| 1227 | 1191 | activecpu_get_pc()); |
| 1228 | 1192 | return (i186.mem.middle >> shift) & 0xff; |
| 1229 | 1193 | |
| 1230 | | case 0xa8: |
| 1194 | case 0x54: |
| 1231 | 1195 | if (LOG_PORTS) |
| 1232 | 1196 | logerror("%05X:read 80186 middle P chip select\n", |
| 1233 | 1197 | activecpu_get_pc()); |
| 1234 | 1198 | return (i186.mem.middle_size >> shift) & 0xff; |
| 1235 | 1199 | |
| 1236 | | case 0xc0: |
| 1237 | | case 0xd0: |
| 1200 | case 0x60: |
| 1201 | case 0x68: |
| 1238 | 1202 | if (LOG_PORTS) |
| 1239 | 1203 | logerror("%05X:read 80186 DMA%d lower source address\n", |
| 1240 | 1204 | activecpu_get_pc(), (offset - 0xc0) / 0x10); |
| r929 | r930 | |
| 1242 | 1206 | // stream_update(dma_stream, 0); |
| 1243 | 1207 | return (i186.dma[which].source >> shift) & 0xff; |
| 1244 | 1208 | |
| 1245 | | case 0xc2: |
| 1246 | | case 0xd2: |
| 1209 | case 0x61: |
| 1210 | case 0x69: |
| 1247 | 1211 | if (LOG_PORTS) |
| 1248 | 1212 | logerror("%05X:read 80186 DMA%d upper source address\n", |
| 1249 | 1213 | activecpu_get_pc(), (offset - 0xc0) / 0x10); |
| r929 | r930 | |
| 1251 | 1215 | // stream_update(dma_stream, 0); |
| 1252 | 1216 | return (i186.dma[which].source >> (shift + 16)) & 0xff; |
| 1253 | 1217 | |
| 1254 | | case 0xc4: |
| 1255 | | case 0xd4: |
| 1218 | case 0x62: |
| 1219 | case 0x6a: |
| 1256 | 1220 | if (LOG_PORTS) |
| 1257 | 1221 | logerror("%05X:read 80186 DMA%d lower dest address\n", |
| 1258 | 1222 | activecpu_get_pc(), (offset - 0xc0) / 0x10); |
| r929 | r930 | |
| 1260 | 1224 | // stream_update(dma_stream, 0); |
| 1261 | 1225 | return (i186.dma[which].dest >> shift) & 0xff; |
| 1262 | 1226 | |
| 1263 | | case 0xc6: |
| 1264 | | case 0xd6: |
| 1227 | case 0x63: |
| 1228 | case 0x6b: |
| 1265 | 1229 | if (LOG_PORTS) |
| 1266 | 1230 | logerror("%05X:read 80186 DMA%d upper dest address\n", |
| 1267 | 1231 | activecpu_get_pc(), (offset - 0xc0) / 0x10); |
| r929 | r930 | |
| 1269 | 1233 | // stream_update(dma_stream, 0); |
| 1270 | 1234 | return (i186.dma[which].dest >> (shift + 16)) & 0xff; |
| 1271 | 1235 | |
| 1272 | | case 0xc8: |
| 1273 | | case 0xd8: |
| 1236 | case 0x64: |
| 1237 | case 0x6c: |
| 1274 | 1238 | if (LOG_PORTS) |
| 1275 | 1239 | logerror("%05X:read 80186 DMA%d transfer count\n", |
| 1276 | 1240 | activecpu_get_pc(), (offset - 0xc0) / 0x10); |
| r929 | r930 | |
| 1278 | 1242 | // stream_update(dma_stream, 0); |
| 1279 | 1243 | return (i186.dma[which].count >> shift) & 0xff; |
| 1280 | 1244 | |
| 1281 | | case 0xca: |
| 1282 | | case 0xda: |
| 1245 | case 0x65: |
| 1246 | case 0x6d: |
| 1283 | 1247 | if (LOG_PORTS) |
| 1284 | 1248 | logerror("%05X:read 80186 DMA%d control\n", |
| 1285 | 1249 | activecpu_get_pc(), (offset - 0xc0) / 0x10); |
| r929 | r930 | |
| 1301 | 1265 | * |
| 1302 | 1266 | *************************************/ |
| 1303 | 1267 | |
| 1304 | | WRITE8_HANDLER( i186_internal_port_w ) |
| 1268 | WRITE16_HANDLER( i186_internal_port_w ) |
| 1305 | 1269 | { |
| 1306 | | static UINT8 even_byte; |
| 1307 | | int temp, which, data16; |
| 1270 | int temp, which, data16 = data; |
| 1308 | 1271 | |
| 1309 | | /* warning: this assumes all port writes here are word-sized */ |
| 1310 | | if (!(offset & 1)) |
| 1311 | | { |
| 1312 | | even_byte = data; |
| 1313 | | return; |
| 1314 | | } |
| 1315 | | data16 = (data << 8) | even_byte; |
| 1316 | | |
| 1317 | 1272 | switch (offset & ~1) |
| 1318 | 1273 | { |
| 1319 | 1274 | case 0x22: |
| r929 | r930 | |
| 1539 | 1494 | temp = (data16 & 0x0fff) << 8; |
| 1540 | 1495 | if (data16 & 0x1000) |
| 1541 | 1496 | { |
| 1542 | | memory_install_read8_handler(2, ADDRESS_SPACE_PROGRAM, temp, temp + 0xff, 0, 0, i186_internal_port_r); |
| 1543 | | memory_install_write8_handler(2, ADDRESS_SPACE_PROGRAM, temp, temp + 0xff, 0, 0, i186_internal_port_w); |
| 1497 | memory_install_read16_handler(2, ADDRESS_SPACE_PROGRAM, temp, temp + 0xff, 0, 0, i186_internal_port_r); |
| 1498 | memory_install_write16_handler(2, ADDRESS_SPACE_PROGRAM, temp, temp + 0xff, 0, 0, i186_internal_port_w); |
| 1544 | 1499 | } |
| 1545 | 1500 | else |
| 1546 | 1501 | { |
| 1547 | 1502 | temp &= 0xffff; |
| 1548 | | memory_install_read8_handler(2, ADDRESS_SPACE_IO, temp, temp + 0xff, 0, 0, i186_internal_port_r); |
| 1549 | | memory_install_write8_handler(2, ADDRESS_SPACE_IO, temp, temp + 0xff, 0, 0, i186_internal_port_w); |
| 1503 | memory_install_read16_handler(2, ADDRESS_SPACE_IO, temp, temp + 0xff, 0, 0, i186_internal_port_r); |
| 1504 | memory_install_write16_handler(2, ADDRESS_SPACE_IO, temp, temp + 0xff, 0, 0, i186_internal_port_w); |
| 1550 | 1505 | } |
| 1551 | 1506 | /* popmessage("Sound CPU reset");*/ |
| 1552 | 1507 | break; |