branches/alto2/src/emu/cpu/alto2/alto2.c
| r26051 | r26052 | |
| 206 | 206 | m_icountptr = &m_icount; |
| 207 | 207 | |
| 208 | 208 | // reverse dwords and invert hardware specific bits |
| 209 | | const UINT32 addrxor = 2 * (ALTO2_UCODE_PAGE_SIZE - 1); |
| 209 | const UINT32 addrxor = 4 * (ALTO2_UCODE_PAGE_SIZE - 1); |
| 210 | 210 | UINT32* temp = auto_alloc_array(machine(), UINT32, 2 * ALTO2_UCODE_PAGE_SIZE); |
| 211 | 211 | UINT32 ucode; |
| 212 | 212 | for (UINT32 addr = 0; addr < ALTO2_UCODE_PAGE_SIZE; addr++) { |
| 213 | | ucode = m_ucode->read_dword(2*addr ^ addrxor); |
| 213 | ucode = m_ucode->read_dword(4*addr ^ addrxor); |
| 214 | 214 | temp[addr] = ucode ^ ALTO2_UCODE_INVERTED; |
| 215 | | ucode = m_ucode->read_dword(2*(ALTO2_UCODE_PAGE_SIZE+addr) ^ addrxor); |
| 215 | ucode = m_ucode->read_dword(4*(ALTO2_UCODE_PAGE_SIZE+addr) ^ addrxor); |
| 216 | 216 | temp[ALTO2_UCODE_PAGE_SIZE+addr] = ucode ^ ALTO2_UCODE_INVERTED; |
| 217 | 217 | } |
| 218 | 218 | for (UINT32 addr = 0; addr < 2*ALTO2_UCODE_PAGE_SIZE; addr++) { |
| 219 | | m_ucode->write_dword(2*addr, temp[addr]); |
| 219 | m_ucode->write_dword(4*addr, temp[addr]); |
| 220 | 220 | } |
| 221 | 221 | |
| 222 | 222 | hard_reset(); |