src/mess/machine/at.c
| r4063 | r4064 | |
| 36 | 36 | #define LOG_PORT80 0 |
| 37 | 37 | #define LOG_KBDC 0 |
| 38 | 38 | |
| 39 | | /* 0.129 BREAKAGE - PLEASE FIX ME */ |
| 40 | | #define I8X41_DATA 0 |
| 41 | | #define I8X41_STAT 0 |
| 42 | | #define I8X41_CMND 0 |
| 43 | | |
| 44 | 39 | static struct { |
| 45 | 40 | const device_config *pic8259_master; |
| 46 | 41 | const device_config *pic8259_slave; |
| r4063 | r4064 | |
| 554 | 549 | |
| 555 | 550 | switch ( offset ) |
| 556 | 551 | { |
| 557 | | case 0: |
| 558 | | data = cpu_get_reg( space->machine->cpu[1], I8X41_DATA ); |
| 552 | case 0: /* A2 is wired to 8042 A0 */ |
| 553 | data = upi41_master_r( space->machine->cpu[1], 0 ); |
| 559 | 554 | break; |
| 560 | 555 | |
| 561 | 556 | case 1: |
| r4063 | r4064 | |
| 583 | 578 | data &= ~0x20; |
| 584 | 579 | break; |
| 585 | 580 | |
| 586 | | case 4: |
| 587 | | data = cpu_get_reg( space->machine->cpu[1], I8X41_STAT ); |
| 581 | case 4: /* A2 is wired to 8042 A0 */ |
| 582 | data = upi41_master_r( space->machine->cpu[1], 1 ); |
| 588 | 583 | break; |
| 589 | 584 | } |
| 590 | 585 | |
| r4063 | r4064 | |
| 600 | 595 | logerror("kbdc8042_8_w(): ofset=%d data=0x%02x\n", offset, data); |
| 601 | 596 | |
| 602 | 597 | switch (offset) { |
| 603 | | case 0: |
| 604 | | cpu_set_reg( space->machine->cpu[1], I8X41_DATA, data ); |
| 598 | case 0: /* A2 is wired to 8042 A0 */ |
| 599 | upi41_master_w( space->machine->cpu[1], 0, data ); |
| 605 | 600 | break; |
| 606 | 601 | |
| 607 | 602 | case 1: |
| r4063 | r4064 | |
| 610 | 605 | at_speaker_set_spkrdata( data & 0x02 ); |
| 611 | 606 | break; |
| 612 | 607 | |
| 613 | | case 4: |
| 614 | | cpu_set_reg( space->machine->cpu[1], I8X41_CMND, data ); |
| 608 | case 4: /* A2 is wirted to 8042 A0 */ |
| 609 | upi41_master_w( space->machine->cpu[1], 1, data ); |
| 615 | 610 | break; |
| 616 | 611 | } |
| 617 | 612 | } |