trunk/src/mess/machine/cs4031.c
| r24625 | r24626 | |
| 38 | 38 | #define LOG_REGISTER 1 |
| 39 | 39 | #define LOG_MEMORY 1 |
| 40 | 40 | #define LOG_IO 1 |
| 41 | #define LOG_KEYBOARD 0 |
| 41 | 42 | |
| 42 | 43 | |
| 43 | 44 | //************************************************************************** |
| r24625 | r24626 | |
| 210 | 211 | m_refresh_toggle(0), |
| 211 | 212 | m_iochck(1), |
| 212 | 213 | m_nmi_mask(1), |
| 213 | | m_sysctrl(0), |
| 214 | 214 | m_cpureset(0), |
| 215 | 215 | m_kbrst(1), |
| 216 | 216 | m_ext_gatea20(0), |
| r24625 | r24626 | |
| 718 | 718 | |
| 719 | 719 | READ8_MEMBER( cs4031_device::keyb_status_r ) |
| 720 | 720 | { |
| 721 | if (LOG_KEYBOARD) |
| 722 | logerror("cs4031_device::keyb_status_r\n"); |
| 723 | |
| 721 | 724 | return m_keybc->status_r(space, 0); |
| 722 | 725 | } |
| 723 | 726 | |
| 724 | 727 | WRITE8_MEMBER( cs4031_device::keyb_command_w ) |
| 725 | 728 | { |
| 726 | | if (0) |
| 729 | if (LOG_KEYBOARD) |
| 727 | 730 | logerror("cs4031_device::keyb_command_w: %02x\n", data); |
| 728 | 731 | |
| 729 | 732 | m_keybc->command_w(space, 0, data); |
| r24625 | r24626 | |
| 731 | 734 | |
| 732 | 735 | READ8_MEMBER( cs4031_device::keyb_data_r ) |
| 733 | 736 | { |
| 734 | | if (0) |
| 737 | if (LOG_KEYBOARD) |
| 735 | 738 | logerror("cs4031_device::keyb_data_r\n"); |
| 736 | 739 | |
| 737 | 740 | return m_keybc->data_r(space, 0); |
| r24625 | r24626 | |
| 739 | 742 | |
| 740 | 743 | WRITE8_MEMBER( cs4031_device::keyb_data_w ) |
| 741 | 744 | { |
| 742 | | if (0) |
| 745 | if (LOG_KEYBOARD) |
| 743 | 746 | logerror("cs4031_device::keyb_data_w: %02x\n", data); |
| 744 | 747 | |
| 745 | 748 | m_keybc->data_w(space, 0, data); |
| r24625 | r24626 | |
| 747 | 750 | |
| 748 | 751 | WRITE_LINE_MEMBER( cs4031_device::gatea20_w ) |
| 749 | 752 | { |
| 750 | | if (LOG_IO) |
| 753 | if (LOG_KEYBOARD) |
| 751 | 754 | logerror("cs4031_device::gatea20_w: %u\n", state); |
| 752 | 755 | |
| 753 | 756 | if (m_ext_gatea20 != state) |
| r24625 | r24626 | |
| 759 | 762 | |
| 760 | 763 | WRITE_LINE_MEMBER( cs4031_device::kbrst_w ) |
| 761 | 764 | { |
| 762 | | if (LOG_IO) |
| 765 | if (LOG_KEYBOARD) |
| 763 | 766 | logerror("cs4031_device::kbrst_w: %u\n", state); |
| 764 | 767 | |
| 765 | 768 | // active low signal |
| r24625 | r24626 | |
| 786 | 789 | if (LOG_IO) |
| 787 | 790 | logerror("cs4031_device::sysctrl_w: %u\n", data); |
| 788 | 791 | |
| 789 | | m_sysctrl = data; |
| 790 | | |
| 791 | 792 | m_fast_gatea20 = BIT(data, 1); |
| 792 | 793 | a20m(); |
| 793 | 794 | |
| r24625 | r24626 | |
| 803 | 804 | |
| 804 | 805 | READ8_MEMBER( cs4031_device::sysctrl_r ) |
| 805 | 806 | { |
| 807 | UINT8 result = 0; // reserved bits read as 0? |
| 808 | |
| 809 | result |= m_cpureset << 0; |
| 810 | result |= m_fast_gatea20 << 1; |
| 811 | |
| 806 | 812 | if (LOG_IO) |
| 807 | | logerror("cs4031_device::sysctrl_r: %u\n", m_sysctrl); |
| 813 | logerror("cs4031_device::sysctrl_r: %u\n", result); |
| 808 | 814 | |
| 809 | | return m_sysctrl; |
| 815 | return result; |
| 810 | 816 | } |
| 811 | 817 | |
| 818 | |
| 812 | 819 | //************************************************************************** |
| 813 | 820 | // MISCELLANEOUS |
| 814 | 821 | //************************************************************************** |