trunk/src/emu/bus/a2bus/a2lang.c
| r32556 | r32557 | |
| 104 | 104 | |
| 105 | 105 | UINT8 a2bus_lang_device::read_c0nx(address_space &space, UINT8 offset) |
| 106 | 106 | { |
| 107 | apple2_state *state = machine().driver_data<apple2_state>(); |
| 108 | |
| 107 | 109 | // enforce "read twice" for c081/3/9/B |
| 108 | | switch(offset & 0x03) |
| 110 | // but only on the II/II+ with a discrete language card. |
| 111 | // later machines' ASICs dropped the double-read requirement, |
| 112 | // likely to be interrupt-safe. |
| 113 | if (state->m_machinetype == APPLE_II) |
| 109 | 114 | { |
| 110 | | case 1: |
| 111 | | case 3: |
| 112 | | if (offset != last_offset) |
| 113 | | { |
| 114 | | last_offset = offset; |
| 115 | | return 0; |
| 116 | | } |
| 117 | | break; |
| 115 | switch (offset & 0x03) |
| 116 | { |
| 117 | case 1: |
| 118 | case 3: |
| 119 | if (offset != last_offset) |
| 120 | { |
| 121 | last_offset = offset; |
| 122 | return 0; |
| 123 | } |
| 124 | break; |
| 125 | } |
| 118 | 126 | } |
| 119 | 127 | |
| 120 | 128 | langcard_touch(offset); |