trunk/src/emu/cpu/unsp/unsp.c
| r242074 | r242075 | |
| 16 | 16 | |
| 17 | 17 | unsp_device::unsp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 18 | 18 | : cpu_device(mconfig, UNSP, "u'nSP", tag, owner, clock, "unsp", __FILE__) |
| 19 | | , m_program_config("program", ENDIANNESS_BIG, 16, 23, 0) |
| 19 | , m_program_config("program", ENDIANNESS_BIG, 16, 23, -1) |
| 20 | 20 | { |
| 21 | 21 | } |
| 22 | 22 | |
| r242074 | r242075 | |
| 100 | 100 | |
| 101 | 101 | void unsp_device::unimplemented_opcode(UINT16 op) |
| 102 | 102 | { |
| 103 | | fatalerror("UNSP: unknown opcode %04x at %04x\n", op, UNSP_LPC << 1); |
| 103 | fatalerror("UNSP: unknown opcode %04x at %04x\n", op, UNSP_LPC); |
| 104 | 104 | } |
| 105 | 105 | |
| 106 | 106 | /*****************************************************************************/ |
| 107 | 107 | |
| 108 | 108 | UINT16 unsp_device::READ16(UINT32 address) |
| 109 | 109 | { |
| 110 | | return m_program->read_word(address << 1); |
| 110 | return m_program->read_word(address<<1); |
| 111 | 111 | } |
| 112 | 112 | |
| 113 | 113 | void unsp_device::WRITE16(UINT32 address, UINT16 data) |
| 114 | 114 | { |
| 115 | | m_program->write_word(address << 1, data); |
| 115 | m_program->write_word(address<<1, data); |
| 116 | 116 | } |
| 117 | 117 | |
| 118 | 118 | /*****************************************************************************/ |
| r242074 | r242075 | |
| 152 | 152 | switch (entry.index()) |
| 153 | 153 | { |
| 154 | 154 | case UNSP_PC: |
| 155 | | m_debugger_temp = UNSP_LPC << 1; |
| 155 | m_debugger_temp = UNSP_LPC; |
| 156 | 156 | break; |
| 157 | 157 | |
| 158 | 158 | case STATE_GENPC: |
| 159 | | m_debugger_temp = UNSP_LPC << 1; |
| 159 | m_debugger_temp = UNSP_LPC; |
| 160 | 160 | break; |
| 161 | 161 | } |
| 162 | 162 | } |
| r242074 | r242075 | |
| 166 | 166 | switch (entry.index()) |
| 167 | 167 | { |
| 168 | 168 | case UNSP_PC: |
| 169 | | UNSP_REG(PC) = (m_debugger_temp & 0x0001fffe) >> 1; |
| 170 | | UNSP_REG(SR) = (UNSP_REG(SR) & 0xffc0) | ((m_debugger_temp & 0x007e0000) >> 17); |
| 169 | UNSP_REG(PC) = m_debugger_temp & 0x0000ffff; |
| 170 | UNSP_REG(SR) = (UNSP_REG(SR) & 0xffc0) | ((m_debugger_temp & 0x003f0000) >> 16); |
| 171 | 171 | break; |
| 172 | 172 | } |
| 173 | 173 | } |
| r242074 | r242075 | |
| 230 | 230 | |
| 231 | 231 | while (m_icount > 0) |
| 232 | 232 | { |
| 233 | | debugger_instruction_hook(this, UNSP_LPC<<1); |
| 234 | | |
| 233 | debugger_instruction_hook(this, UNSP_LPC); |
| 235 | 234 | op = READ16(UNSP_LPC); |
| 236 | 235 | |
| 237 | 236 | UNSP_REG(PC)++; |
trunk/src/mess/drivers/vii.c
| r242074 | r242075 | |
| 663 | 663 | static const char *const gpioregs[] = { "GPIO Data Port", "GPIO Buffer Port", "GPIO Direction Port", "GPIO Attribute Port", "GPIO IRQ/Latch Port" }; |
| 664 | 664 | static const char gpioports[] = { 'A', 'B', 'C' }; |
| 665 | 665 | |
| 666 | | offset -= 0x500; |
| 667 | | |
| 668 | 666 | UINT16 val = m_io_regs[offset]; |
| 669 | 667 | |
| 670 | 668 | switch(offset) |
| r242074 | r242075 | |
| 738 | 736 | |
| 739 | 737 | UINT16 temp = 0; |
| 740 | 738 | |
| 741 | | offset -= 0x500; |
| 742 | | |
| 743 | 739 | switch(offset) |
| 744 | 740 | { |
| 745 | 741 | case 0x00: // GPIO special function select |
| r242074 | r242075 | |
| 901 | 897 | } |
| 902 | 898 | |
| 903 | 899 | static ADDRESS_MAP_START( vii_mem, AS_PROGRAM, 16, vii_state ) |
| 904 | | AM_RANGE( 0x000000, 0x004fff ) AM_RAM AM_SHARE("p_ram") |
| 905 | | AM_RANGE( 0x005000, 0x0051ff ) AM_READWRITE(video_r, video_w) |
| 906 | | AM_RANGE( 0x005200, 0x0055ff ) AM_RAM AM_SHARE("p_rowscroll") |
| 907 | | AM_RANGE( 0x005600, 0x0057ff ) AM_RAM AM_SHARE("p_palette") |
| 908 | | AM_RANGE( 0x005800, 0x005fff ) AM_RAM AM_SHARE("p_spriteram") |
| 909 | | AM_RANGE( 0x006000, 0x006fff ) AM_READWRITE(audio_r, audio_w) |
| 910 | | AM_RANGE( 0x007000, 0x007fff ) AM_READWRITE(io_r, io_w) |
| 911 | | AM_RANGE( 0x008000, 0x7fffff ) AM_READ(rom_r) |
| 900 | AM_RANGE( 0x000000, 0x0027ff ) AM_RAM AM_SHARE("p_ram") |
| 901 | AM_RANGE( 0x002800, 0x0028ff ) AM_READWRITE(video_r, video_w) |
| 902 | AM_RANGE( 0x002900, 0x002aff ) AM_RAM AM_SHARE("p_rowscroll") |
| 903 | AM_RANGE( 0x002b00, 0x002bff ) AM_RAM AM_SHARE("p_palette") |
| 904 | AM_RANGE( 0x002c00, 0x002fff ) AM_RAM AM_SHARE("p_spriteram") |
| 905 | AM_RANGE( 0x003000, 0x0037ff ) AM_READWRITE(audio_r, audio_w) |
| 906 | AM_RANGE( 0x003d00, 0x003eff ) AM_READWRITE(io_r, io_w) |
| 907 | AM_RANGE( 0x004000, 0x3fffff ) AM_READ(rom_r) |
| 912 | 908 | ADDRESS_MAP_END |
| 913 | 909 | |
| 914 | 910 | static INPUT_PORTS_START( vii ) |