trunk/src/mess/video/gime.c
| r20693 | r20694 | |
| 661 | 661 | case 0x20: |
| 662 | 662 | data = read_palette_register(offset); |
| 663 | 663 | break; |
| 664 | |
| 665 | default: |
| 666 | data = read_floating_bus(); |
| 667 | break; |
| 664 | 668 | } |
| 665 | 669 | |
| 666 | 670 | return data; |
| r20693 | r20694 | |
| 679 | 683 | UINT8 result; |
| 680 | 684 | switch(offset) |
| 681 | 685 | { |
| 682 | | case 2: /* Read pending IRQs */ |
| 686 | case 2: // read pending IRQs |
| 683 | 687 | result = m_irq; |
| 684 | 688 | if (result != 0x00) |
| 685 | 689 | { |
| r20693 | r20694 | |
| 688 | 692 | } |
| 689 | 693 | break; |
| 690 | 694 | |
| 691 | | case 3: /* Read pending FIRQs */ |
| 695 | case 3: // read pending FIRQs |
| 692 | 696 | result = m_firq; |
| 693 | 697 | if (result != 0x00) |
| 694 | 698 | { |
| r20693 | r20694 | |
| 697 | 701 | } |
| 698 | 702 | break; |
| 699 | 703 | |
| 700 | | case 4: /* Timer MSB/LSB; these arn't readable */ |
| 701 | | case 5: |
| 702 | | /* JK tells me that these values are indeterminate; and $7E appears |
| 703 | | * to be the value most commonly returned |
| 704 | | */ |
| 705 | | result = 0x7E; |
| 704 | case 14: |
| 705 | case 15: |
| 706 | // these (I guess) are readable (Mametesters bug #05135) |
| 707 | result = m_gime_registers[offset]; |
| 706 | 708 | break; |
| 707 | 709 | |
| 708 | 710 | default: |
| 709 | | result = m_gime_registers[offset]; |
| 711 | // the others are not readable; read floating bus (Mametesters bug #05135) |
| 712 | result = read_floating_bus(); |
| 710 | 713 | break; |
| 711 | 714 | } |
| 712 | 715 | return result; |
| r20693 | r20694 | |
| 720 | 723 | |
| 721 | 724 | ATTR_FORCE_INLINE UINT8 gime_base_device::read_mmu_register(offs_t offset) |
| 722 | 725 | { |
| 723 | | return (m_mmu[offset & 0x0F] & 0x3F); |
| 726 | return (m_mmu[offset & 0x0F] & 0x3F) | (read_floating_bus() & 0xC0); |
| 724 | 727 | } |
| 725 | 728 | |
| 726 | 729 | |