e132xs: fix do xx= in debugger (nw)

This commit is contained in:
David Haywood 2014-09-09 12:54:05 +00:00
parent 53cf13ef00
commit ba14907e9d

View File

@ -35,7 +35,7 @@
Pierpaolo Prazzoli Pierpaolo Prazzoli
- Fixed LDxx.N/P/S opcodes not to increment the destination register when - Fixed LDxx.N/P/S opcodes not to increment the destination register when
it's the same as the source or "next source" one. it's the same as the source or"next source" one.
Pierpaolo Prazzoli Pierpaolo Prazzoli
- Removed nested delays - Removed nested delays
@ -59,7 +59,7 @@
- Added nested delays - Added nested delays
Tomasz Slanina Tomasz Slanina
- Added "undefined" C flag to shift left instructions - Added"undefined" C flag to shift left instructions
Pierpaolo Prazzoli Pierpaolo Prazzoli
- Added interrupts-block for delay instructions - Added interrupts-block for delay instructions
@ -177,13 +177,13 @@
- Implemented a crude hack to set FL in the SR to 6, since according to the docs - Implemented a crude hack to set FL in the SR to 6, since according to the docs
that's supposed to happen each time a trap occurs, apparently including when that's supposed to happen each time a trap occurs, apparently including when
the processor starts up. The 3rd opcode executed in vamphalf checks to see if the processor starts up. The 3rd opcode executed in vamphalf checks to see if
the FL flag in SR 6, so it's apparently the "correct" behaviour despite the the FL flag in SR 6, so it's apparently the"correct" behaviour despite the
docs not saying anything on it. If FL is not 6, the branch falls through and docs not saying anything on it. If FL is not 6, the branch falls through and
encounters a CHK PC, L2, which at that point will always throw a range trap. encounters a CHK PC, L2, which at that point will always throw a range trap.
The range trap vector contains 00000000 (CHK PC, PC), which according to the The range trap vector contains 00000000 (CHK PC, PC), which according to the
docs will always throw a range trap (which would effectively lock the system). docs will always throw a range trap (which would effectively lock the system).
This revealed a bug: CHK PC, PC apparently does not throw a range trap, which This revealed a bug: CHK PC, PC apparently does not throw a range trap, which
needs to be fixed. Now that the "correct" behaviour is hacked in with the FL needs to be fixed. Now that the"correct" behaviour is hacked in with the FL
flags, it reveals yet another bug in that the branch is interpreted as being flags, it reveals yet another bug in that the branch is interpreted as being
+0x8700. This means that the PC then wraps around to 000082B0, give or take +0x8700. This means that the PC then wraps around to 000082B0, give or take
a few bytes. While it does indeed branch to valid code, I highly doubt that a few bytes. While it does indeed branch to valid code, I highly doubt that
@ -211,9 +211,9 @@
*********************************************************************/ *********************************************************************/
#include "emu.h" #include"emu.h"
#include "debugger.h" #include"debugger.h"
#include "e132xs.h" #include"e132xs.h"
#ifdef MAME_DEBUG #ifdef MAME_DEBUG
#define DEBUG_PRINTF(x) do { osd_printf_debug x; } while (0) #define DEBUG_PRINTF(x) do { osd_printf_debug x; } while (0)
@ -308,7 +308,7 @@ hyperstone_device::hyperstone_device(const machine_config &mconfig, const char *
//------------------------------------------------- //-------------------------------------------------
e116t_device::e116t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e116t_device::e116t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-16T", tag, owner, clock, E116T, 16, 16, ADDRESS_MAP_NAME(e116_4k_iram_map), "e116t", __FILE__) : hyperstone_device(mconfig,"E1-16T", tag, owner, clock, E116T, 16, 16, ADDRESS_MAP_NAME(e116_4k_iram_map),"e116t", __FILE__)
{ {
} }
@ -318,7 +318,7 @@ e116t_device::e116t_device(const machine_config &mconfig, const char *tag, devic
//------------------------------------------------- //-------------------------------------------------
e116xt_device::e116xt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e116xt_device::e116xt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-16XT", tag, owner, clock, E116XT, 16, 16, ADDRESS_MAP_NAME(e116_8k_iram_map), "e116xt", __FILE__) : hyperstone_device(mconfig,"E1-16XT", tag, owner, clock, E116XT, 16, 16, ADDRESS_MAP_NAME(e116_8k_iram_map),"e116xt", __FILE__)
{ {
} }
@ -328,7 +328,7 @@ e116xt_device::e116xt_device(const machine_config &mconfig, const char *tag, dev
//------------------------------------------------- //-------------------------------------------------
e116xs_device::e116xs_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e116xs_device::e116xs_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-16XS", tag, owner, clock, E116XS, 16, 16, ADDRESS_MAP_NAME(e116_16k_iram_map), "e116xs", __FILE__) : hyperstone_device(mconfig,"E1-16XS", tag, owner, clock, E116XS, 16, 16, ADDRESS_MAP_NAME(e116_16k_iram_map),"e116xs", __FILE__)
{ {
} }
@ -338,7 +338,7 @@ e116xs_device::e116xs_device(const machine_config &mconfig, const char *tag, dev
//------------------------------------------------- //-------------------------------------------------
e116xsr_device::e116xsr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e116xsr_device::e116xsr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-16XSR", tag, owner, clock, E116XT, 16, 16, ADDRESS_MAP_NAME(e116_16k_iram_map), "e116xsr", __FILE__) : hyperstone_device(mconfig,"E1-16XSR", tag, owner, clock, E116XT, 16, 16, ADDRESS_MAP_NAME(e116_16k_iram_map),"e116xsr", __FILE__)
{ {
} }
@ -348,7 +348,7 @@ e116xsr_device::e116xsr_device(const machine_config &mconfig, const char *tag, d
//------------------------------------------------- //-------------------------------------------------
e132n_device::e132n_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e132n_device::e132n_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-32N", tag, owner, clock, E132N, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map), "e132n", __FILE__) : hyperstone_device(mconfig,"E1-32N", tag, owner, clock, E132N, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map),"e132n", __FILE__)
{ {
} }
@ -358,7 +358,7 @@ e132n_device::e132n_device(const machine_config &mconfig, const char *tag, devic
//------------------------------------------------- //-------------------------------------------------
e132t_device::e132t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e132t_device::e132t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-32T", tag, owner, clock, E132T, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map), "e132t", __FILE__) : hyperstone_device(mconfig,"E1-32T", tag, owner, clock, E132T, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map),"e132t", __FILE__)
{ {
} }
@ -368,7 +368,7 @@ e132t_device::e132t_device(const machine_config &mconfig, const char *tag, devic
//------------------------------------------------- //-------------------------------------------------
e132xn_device::e132xn_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e132xn_device::e132xn_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-32XN", tag, owner, clock, E132XN, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map), "e132xn", __FILE__) : hyperstone_device(mconfig,"E1-32XN", tag, owner, clock, E132XN, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map),"e132xn", __FILE__)
{ {
} }
@ -378,7 +378,7 @@ e132xn_device::e132xn_device(const machine_config &mconfig, const char *tag, dev
//------------------------------------------------- //-------------------------------------------------
e132xt_device::e132xt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e132xt_device::e132xt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-32XT", tag, owner, clock, E132XT, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map), "e132xt", __FILE__) : hyperstone_device(mconfig,"E1-32XT", tag, owner, clock, E132XT, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map),"e132xt", __FILE__)
{ {
} }
@ -388,7 +388,7 @@ e132xt_device::e132xt_device(const machine_config &mconfig, const char *tag, dev
//------------------------------------------------- //-------------------------------------------------
e132xs_device::e132xs_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e132xs_device::e132xs_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-32XS", tag, owner, clock, E132XS, 32, 32, ADDRESS_MAP_NAME(e132_16k_iram_map), "e132xs", __FILE__) : hyperstone_device(mconfig,"E1-32XS", tag, owner, clock, E132XS, 32, 32, ADDRESS_MAP_NAME(e132_16k_iram_map),"e132xs", __FILE__)
{ {
} }
@ -398,7 +398,7 @@ e132xs_device::e132xs_device(const machine_config &mconfig, const char *tag, dev
//------------------------------------------------- //-------------------------------------------------
e132xsr_device::e132xsr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) e132xsr_device::e132xsr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "E1-32XSR", tag, owner, clock, E132XSR, 32, 32, ADDRESS_MAP_NAME(e132_16k_iram_map), "e132xsr", __FILE__) : hyperstone_device(mconfig,"E1-32XSR", tag, owner, clock, E132XSR, 32, 32, ADDRESS_MAP_NAME(e132_16k_iram_map),"e132xsr", __FILE__)
{ {
} }
@ -408,7 +408,7 @@ e132xsr_device::e132xsr_device(const machine_config &mconfig, const char *tag, d
//------------------------------------------------- //-------------------------------------------------
gms30c2116_device::gms30c2116_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) gms30c2116_device::gms30c2116_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "GMS30C2116", tag, owner, clock, GMS30C2116, 16, 16, ADDRESS_MAP_NAME(e116_4k_iram_map), "gms30c2116", __FILE__) : hyperstone_device(mconfig,"GMS30C2116", tag, owner, clock, GMS30C2116, 16, 16, ADDRESS_MAP_NAME(e116_4k_iram_map),"gms30c2116", __FILE__)
{ {
} }
@ -418,7 +418,7 @@ gms30c2116_device::gms30c2116_device(const machine_config &mconfig, const char *
//------------------------------------------------- //-------------------------------------------------
gms30c2132_device::gms30c2132_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) gms30c2132_device::gms30c2132_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "GMS30C2132", tag, owner, clock, GMS30C2132, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map), "gms30c2132", __FILE__) : hyperstone_device(mconfig,"GMS30C2132", tag, owner, clock, GMS30C2132, 32, 32, ADDRESS_MAP_NAME(e132_4k_iram_map),"gms30c2132", __FILE__)
{ {
} }
@ -428,7 +428,7 @@ gms30c2132_device::gms30c2132_device(const machine_config &mconfig, const char *
//------------------------------------------------- //-------------------------------------------------
gms30c2216_device::gms30c2216_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) gms30c2216_device::gms30c2216_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "GMS30C2216", tag, owner, clock, GMS30C2216, 16, 16, ADDRESS_MAP_NAME(e116_8k_iram_map), "gms30c2216", __FILE__) : hyperstone_device(mconfig,"GMS30C2216", tag, owner, clock, GMS30C2216, 16, 16, ADDRESS_MAP_NAME(e116_8k_iram_map),"gms30c2216", __FILE__)
{ {
} }
@ -438,7 +438,7 @@ gms30c2216_device::gms30c2216_device(const machine_config &mconfig, const char *
//------------------------------------------------- //-------------------------------------------------
gms30c2232_device::gms30c2232_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) gms30c2232_device::gms30c2232_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: hyperstone_device(mconfig, "GMS30C2232", tag, owner, clock, GMS30C2232, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map), "gms30c2232", __FILE__) : hyperstone_device(mconfig,"GMS30C2232", tag, owner, clock, GMS30C2232, 32, 32, ADDRESS_MAP_NAME(e132_8k_iram_map),"gms30c2232", __FILE__)
{ {
} }
@ -459,7 +459,7 @@ UINT32 hyperstone_device::get_trap_addr(UINT8 trapno)
return addr; return addr;
} }
/* Return the entry point for a determinated emulated code (the one for "extend" opcode is reserved) */ /* Return the entry point for a determinated emulated code (the one for"extend" opcode is reserved) */
UINT32 hyperstone_device::get_emu_code_addr(UINT8 num) /* num is OP */ UINT32 hyperstone_device::get_emu_code_addr(UINT8 num) /* num is OP */
{ {
UINT32 addr; UINT32 addr;
@ -1563,118 +1563,118 @@ void hyperstone_device::init(int scale_mask)
astring tempstr; astring tempstr;
state_add(STATE_GENPC, "GENPC", m_global_regs[0]).noshow(); state_add(STATE_GENPC, "GENPC", m_global_regs[0]).noshow();
state_add(STATE_GENFLAGS, "GENFLAGS", m_global_regs[1]).callimport().callexport().formatstr("%40s").noshow(); state_add(STATE_GENFLAGS, "GENFLAGS", m_global_regs[1]).callimport().callexport().formatstr("%40s").noshow();
state_add(E132XS_PC, "PC :%08X", m_global_regs[0]).mask(0xffffffff); state_add(E132XS_PC, "PC", m_global_regs[0]).mask(0xffffffff);
state_add(E132XS_SR, "SR :%08X", m_global_regs[1]).mask(0xffffffff); state_add(E132XS_SR, "SR", m_global_regs[1]).mask(0xffffffff);
state_add(E132XS_FER, "FER :%08X", m_global_regs[2]).mask(0xffffffff); state_add(E132XS_FER, "FER", m_global_regs[2]).mask(0xffffffff);
state_add(E132XS_G3, "G3 :%08X", m_global_regs[3]).mask(0xffffffff); state_add(E132XS_G3, "G3", m_global_regs[3]).mask(0xffffffff);
state_add(E132XS_G4, "G4 :%08X", m_global_regs[4]).mask(0xffffffff); state_add(E132XS_G4, "G4", m_global_regs[4]).mask(0xffffffff);
state_add(E132XS_G5, "G5 :%08X", m_global_regs[5]).mask(0xffffffff); state_add(E132XS_G5, "G5", m_global_regs[5]).mask(0xffffffff);
state_add(E132XS_G6, "G6 :%08X", m_global_regs[6]).mask(0xffffffff); state_add(E132XS_G6, "G6", m_global_regs[6]).mask(0xffffffff);
state_add(E132XS_G7, "G7 :%08X", m_global_regs[7]).mask(0xffffffff); state_add(E132XS_G7, "G7", m_global_regs[7]).mask(0xffffffff);
state_add(E132XS_G8, "G8 :%08X", m_global_regs[8]).mask(0xffffffff); state_add(E132XS_G8, "G8", m_global_regs[8]).mask(0xffffffff);
state_add(E132XS_G9, "G9 :%08X", m_global_regs[9]).mask(0xffffffff); state_add(E132XS_G9, "G9", m_global_regs[9]).mask(0xffffffff);
state_add(E132XS_G10, "G10 :%08X", m_global_regs[10]).mask(0xffffffff); state_add(E132XS_G10, "G10", m_global_regs[10]).mask(0xffffffff);
state_add(E132XS_G11, "G11 :%08X", m_global_regs[11]).mask(0xffffffff); state_add(E132XS_G11, "G11", m_global_regs[11]).mask(0xffffffff);
state_add(E132XS_G12, "G12 :%08X", m_global_regs[12]).mask(0xffffffff); state_add(E132XS_G12, "G12", m_global_regs[12]).mask(0xffffffff);
state_add(E132XS_G13, "G13 :%08X", m_global_regs[13]).mask(0xffffffff); state_add(E132XS_G13, "G13", m_global_regs[13]).mask(0xffffffff);
state_add(E132XS_G14, "G14 :%08X", m_global_regs[14]).mask(0xffffffff); state_add(E132XS_G14, "G14", m_global_regs[14]).mask(0xffffffff);
state_add(E132XS_G15, "G15 :%08X", m_global_regs[15]).mask(0xffffffff); state_add(E132XS_G15, "G15", m_global_regs[15]).mask(0xffffffff);
state_add(E132XS_G16, "G16 :%08X", m_global_regs[16]).mask(0xffffffff); state_add(E132XS_G16, "G16", m_global_regs[16]).mask(0xffffffff);
state_add(E132XS_G17, "G17 :%08X", m_global_regs[17]).mask(0xffffffff); state_add(E132XS_G17, "G17", m_global_regs[17]).mask(0xffffffff);
state_add(E132XS_SP, "SP :%08X", m_global_regs[18]).mask(0xffffffff); state_add(E132XS_SP, "SP", m_global_regs[18]).mask(0xffffffff);
state_add(E132XS_UB, "UB :%08X", m_global_regs[19]).mask(0xffffffff); state_add(E132XS_UB, "UB", m_global_regs[19]).mask(0xffffffff);
state_add(E132XS_BCR, "BCR :%08X", m_global_regs[20]).mask(0xffffffff); state_add(E132XS_BCR, "BCR", m_global_regs[20]).mask(0xffffffff);
state_add(E132XS_TPR, "TPR :%08X", m_global_regs[21]).mask(0xffffffff); state_add(E132XS_TPR, "TPR", m_global_regs[21]).mask(0xffffffff);
state_add(E132XS_TCR, "TCR :%08X", m_global_regs[22]).mask(0xffffffff); state_add(E132XS_TCR, "TCR", m_global_regs[22]).mask(0xffffffff);
state_add(E132XS_TR, "TR :%08X", m_global_regs[23]).mask(0xffffffff); state_add(E132XS_TR, "TR", m_global_regs[23]).mask(0xffffffff);
state_add(E132XS_WCR, "WCR :%08X", m_global_regs[24]).mask(0xffffffff); state_add(E132XS_WCR, "WCR", m_global_regs[24]).mask(0xffffffff);
state_add(E132XS_ISR, "ISR :%08X", m_global_regs[25]).mask(0xffffffff); state_add(E132XS_ISR, "ISR", m_global_regs[25]).mask(0xffffffff);
state_add(E132XS_FCR, "FCR :%08X", m_global_regs[26]).mask(0xffffffff); state_add(E132XS_FCR, "FCR", m_global_regs[26]).mask(0xffffffff);
state_add(E132XS_MCR, "MCR :%08X", m_global_regs[27]).mask(0xffffffff); state_add(E132XS_MCR, "MCR", m_global_regs[27]).mask(0xffffffff);
state_add(E132XS_G28, "G28 :%08X", m_global_regs[28]).mask(0xffffffff); state_add(E132XS_G28, "G28", m_global_regs[28]).mask(0xffffffff);
state_add(E132XS_G29, "G29 :%08X", m_global_regs[29]).mask(0xffffffff); state_add(E132XS_G29, "G29", m_global_regs[29]).mask(0xffffffff);
state_add(E132XS_G30, "G30 :%08X", m_global_regs[30]).mask(0xffffffff); state_add(E132XS_G30, "G30", m_global_regs[30]).mask(0xffffffff);
state_add(E132XS_G31, "G31 :%08X", m_global_regs[31]).mask(0xffffffff); state_add(E132XS_G31, "G31", m_global_regs[31]).mask(0xffffffff);
state_add(E132XS_CL0, "CL0 :%08X", m_local_regs[(0 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL0, "CL0", m_local_regs[(0 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL1, "CL1 :%08X", m_local_regs[(1 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL1, "CL1", m_local_regs[(1 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL2, "CL2 :%08X", m_local_regs[(2 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL2, "CL2", m_local_regs[(2 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL3, "CL3 :%08X", m_local_regs[(3 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL3, "CL3", m_local_regs[(3 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL4, "CL4 :%08X", m_local_regs[(4 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL4, "CL4", m_local_regs[(4 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL5, "CL5 :%08X", m_local_regs[(5 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL5, "CL5", m_local_regs[(5 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL6, "CL6 :%08X", m_local_regs[(6 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL6, "CL6", m_local_regs[(6 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL7, "CL7 :%08X", m_local_regs[(7 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL7, "CL7", m_local_regs[(7 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL8, "CL8 :%08X", m_local_regs[(8 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL8, "CL8", m_local_regs[(8 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL9, "CL9 :%08X", m_local_regs[(9 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL9, "CL9", m_local_regs[(9 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL10, "CL10:%08X", m_local_regs[(10 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL10, "CL10", m_local_regs[(10 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL11, "CL11:%08X", m_local_regs[(11 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL11, "CL11", m_local_regs[(11 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL12, "CL12:%08X", m_local_regs[(12 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL12, "CL12", m_local_regs[(12 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL13, "CL13:%08X", m_local_regs[(13 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL13, "CL13", m_local_regs[(13 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL14, "CL14:%08X", m_local_regs[(14 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL14, "CL14", m_local_regs[(14 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_CL15, "CL15:%08X", m_local_regs[(15 + GET_FP) % 64]).mask(0xffffffff); state_add(E132XS_CL15, "CL15", m_local_regs[(15 + GET_FP) % 64]).mask(0xffffffff);
state_add(E132XS_L0, "L0 :%08X", m_local_regs[0]).mask(0xffffffff); state_add(E132XS_L0, "L0", m_local_regs[0]).mask(0xffffffff);
state_add(E132XS_L1, "L1 :%08X", m_local_regs[1]).mask(0xffffffff); state_add(E132XS_L1, "L1", m_local_regs[1]).mask(0xffffffff);
state_add(E132XS_L2, "L2 :%08X", m_local_regs[2]).mask(0xffffffff); state_add(E132XS_L2, "L2", m_local_regs[2]).mask(0xffffffff);
state_add(E132XS_L3, "L3 :%08X", m_local_regs[3]).mask(0xffffffff); state_add(E132XS_L3, "L3", m_local_regs[3]).mask(0xffffffff);
state_add(E132XS_L4, "L4 :%08X", m_local_regs[4]).mask(0xffffffff); state_add(E132XS_L4, "L4", m_local_regs[4]).mask(0xffffffff);
state_add(E132XS_L5, "L5 :%08X", m_local_regs[5]).mask(0xffffffff); state_add(E132XS_L5, "L5", m_local_regs[5]).mask(0xffffffff);
state_add(E132XS_L6, "L6 :%08X", m_local_regs[6]).mask(0xffffffff); state_add(E132XS_L6, "L6", m_local_regs[6]).mask(0xffffffff);
state_add(E132XS_L7, "L7 :%08X", m_local_regs[7]).mask(0xffffffff); state_add(E132XS_L7, "L7", m_local_regs[7]).mask(0xffffffff);
state_add(E132XS_L8, "L8 :%08X", m_local_regs[8]).mask(0xffffffff); state_add(E132XS_L8, "L8", m_local_regs[8]).mask(0xffffffff);
state_add(E132XS_L9, "L9 :%08X", m_local_regs[9]).mask(0xffffffff); state_add(E132XS_L9, "L9", m_local_regs[9]).mask(0xffffffff);
state_add(E132XS_L10, "L10 :%08X", m_local_regs[10]).mask(0xffffffff); state_add(E132XS_L10, "L10", m_local_regs[10]).mask(0xffffffff);
state_add(E132XS_L11, "L11 :%08X", m_local_regs[11]).mask(0xffffffff); state_add(E132XS_L11, "L11", m_local_regs[11]).mask(0xffffffff);
state_add(E132XS_L12, "L12 :%08X", m_local_regs[12]).mask(0xffffffff); state_add(E132XS_L12, "L12", m_local_regs[12]).mask(0xffffffff);
state_add(E132XS_L13, "L13 :%08X", m_local_regs[13]).mask(0xffffffff); state_add(E132XS_L13, "L13", m_local_regs[13]).mask(0xffffffff);
state_add(E132XS_L14, "L14 :%08X", m_local_regs[14]).mask(0xffffffff); state_add(E132XS_L14, "L14", m_local_regs[14]).mask(0xffffffff);
state_add(E132XS_L15, "L15 :%08X", m_local_regs[15]).mask(0xffffffff); state_add(E132XS_L15, "L15", m_local_regs[15]).mask(0xffffffff);
state_add(E132XS_L16, "L16 :%08X", m_local_regs[16]).mask(0xffffffff); state_add(E132XS_L16, "L16", m_local_regs[16]).mask(0xffffffff);
state_add(E132XS_L17, "L17 :%08X", m_local_regs[17]).mask(0xffffffff); state_add(E132XS_L17, "L17", m_local_regs[17]).mask(0xffffffff);
state_add(E132XS_L18, "L18 :%08X", m_local_regs[18]).mask(0xffffffff); state_add(E132XS_L18, "L18", m_local_regs[18]).mask(0xffffffff);
state_add(E132XS_L19, "L19 :%08X", m_local_regs[19]).mask(0xffffffff); state_add(E132XS_L19, "L19", m_local_regs[19]).mask(0xffffffff);
state_add(E132XS_L20, "L20 :%08X", m_local_regs[20]).mask(0xffffffff); state_add(E132XS_L20, "L20", m_local_regs[20]).mask(0xffffffff);
state_add(E132XS_L21, "L21 :%08X", m_local_regs[21]).mask(0xffffffff); state_add(E132XS_L21, "L21", m_local_regs[21]).mask(0xffffffff);
state_add(E132XS_L22, "L22 :%08X", m_local_regs[22]).mask(0xffffffff); state_add(E132XS_L22, "L22", m_local_regs[22]).mask(0xffffffff);
state_add(E132XS_L23, "L23 :%08X", m_local_regs[23]).mask(0xffffffff); state_add(E132XS_L23, "L23", m_local_regs[23]).mask(0xffffffff);
state_add(E132XS_L24, "L24 :%08X", m_local_regs[24]).mask(0xffffffff); state_add(E132XS_L24, "L24", m_local_regs[24]).mask(0xffffffff);
state_add(E132XS_L25, "L25 :%08X", m_local_regs[25]).mask(0xffffffff); state_add(E132XS_L25, "L25", m_local_regs[25]).mask(0xffffffff);
state_add(E132XS_L26, "L26 :%08X", m_local_regs[26]).mask(0xffffffff); state_add(E132XS_L26, "L26", m_local_regs[26]).mask(0xffffffff);
state_add(E132XS_L27, "L27 :%08X", m_local_regs[27]).mask(0xffffffff); state_add(E132XS_L27, "L27", m_local_regs[27]).mask(0xffffffff);
state_add(E132XS_L28, "L28 :%08X", m_local_regs[28]).mask(0xffffffff); state_add(E132XS_L28, "L28", m_local_regs[28]).mask(0xffffffff);
state_add(E132XS_L29, "L29 :%08X", m_local_regs[29]).mask(0xffffffff); state_add(E132XS_L29, "L29", m_local_regs[29]).mask(0xffffffff);
state_add(E132XS_L30, "L30 :%08X", m_local_regs[30]).mask(0xffffffff); state_add(E132XS_L30, "L30", m_local_regs[30]).mask(0xffffffff);
state_add(E132XS_L31, "L31 :%08X", m_local_regs[31]).mask(0xffffffff); state_add(E132XS_L31, "L31", m_local_regs[31]).mask(0xffffffff);
state_add(E132XS_L32, "L32 :%08X", m_local_regs[32]).mask(0xffffffff); state_add(E132XS_L32, "L32", m_local_regs[32]).mask(0xffffffff);
state_add(E132XS_L33, "L33 :%08X", m_local_regs[33]).mask(0xffffffff); state_add(E132XS_L33, "L33", m_local_regs[33]).mask(0xffffffff);
state_add(E132XS_L34, "L34 :%08X", m_local_regs[34]).mask(0xffffffff); state_add(E132XS_L34, "L34", m_local_regs[34]).mask(0xffffffff);
state_add(E132XS_L35, "L35 :%08X", m_local_regs[35]).mask(0xffffffff); state_add(E132XS_L35, "L35", m_local_regs[35]).mask(0xffffffff);
state_add(E132XS_L36, "L36 :%08X", m_local_regs[36]).mask(0xffffffff); state_add(E132XS_L36, "L36", m_local_regs[36]).mask(0xffffffff);
state_add(E132XS_L37, "L37 :%08X", m_local_regs[37]).mask(0xffffffff); state_add(E132XS_L37, "L37", m_local_regs[37]).mask(0xffffffff);
state_add(E132XS_L38, "L38 :%08X", m_local_regs[38]).mask(0xffffffff); state_add(E132XS_L38, "L38", m_local_regs[38]).mask(0xffffffff);
state_add(E132XS_L39, "L39 :%08X", m_local_regs[39]).mask(0xffffffff); state_add(E132XS_L39, "L39", m_local_regs[39]).mask(0xffffffff);
state_add(E132XS_L40, "L40 :%08X", m_local_regs[40]).mask(0xffffffff); state_add(E132XS_L40, "L40", m_local_regs[40]).mask(0xffffffff);
state_add(E132XS_L41, "L41 :%08X", m_local_regs[41]).mask(0xffffffff); state_add(E132XS_L41, "L41", m_local_regs[41]).mask(0xffffffff);
state_add(E132XS_L42, "L42 :%08X", m_local_regs[42]).mask(0xffffffff); state_add(E132XS_L42, "L42", m_local_regs[42]).mask(0xffffffff);
state_add(E132XS_L43, "L43 :%08X", m_local_regs[43]).mask(0xffffffff); state_add(E132XS_L43, "L43", m_local_regs[43]).mask(0xffffffff);
state_add(E132XS_L44, "L44 :%08X", m_local_regs[44]).mask(0xffffffff); state_add(E132XS_L44, "L44", m_local_regs[44]).mask(0xffffffff);
state_add(E132XS_L45, "L45 :%08X", m_local_regs[45]).mask(0xffffffff); state_add(E132XS_L45, "L45", m_local_regs[45]).mask(0xffffffff);
state_add(E132XS_L46, "L46 :%08X", m_local_regs[46]).mask(0xffffffff); state_add(E132XS_L46, "L46", m_local_regs[46]).mask(0xffffffff);
state_add(E132XS_L47, "L47 :%08X", m_local_regs[47]).mask(0xffffffff); state_add(E132XS_L47, "L47", m_local_regs[47]).mask(0xffffffff);
state_add(E132XS_L48, "L48 :%08X", m_local_regs[48]).mask(0xffffffff); state_add(E132XS_L48, "L48", m_local_regs[48]).mask(0xffffffff);
state_add(E132XS_L49, "L49 :%08X", m_local_regs[49]).mask(0xffffffff); state_add(E132XS_L49, "L49", m_local_regs[49]).mask(0xffffffff);
state_add(E132XS_L50, "L50 :%08X", m_local_regs[50]).mask(0xffffffff); state_add(E132XS_L50, "L50", m_local_regs[50]).mask(0xffffffff);
state_add(E132XS_L51, "L51 :%08X", m_local_regs[51]).mask(0xffffffff); state_add(E132XS_L51, "L51", m_local_regs[51]).mask(0xffffffff);
state_add(E132XS_L52, "L52 :%08X", m_local_regs[52]).mask(0xffffffff); state_add(E132XS_L52, "L52", m_local_regs[52]).mask(0xffffffff);
state_add(E132XS_L53, "L53 :%08X", m_local_regs[53]).mask(0xffffffff); state_add(E132XS_L53, "L53", m_local_regs[53]).mask(0xffffffff);
state_add(E132XS_L54, "L54 :%08X", m_local_regs[54]).mask(0xffffffff); state_add(E132XS_L54, "L54", m_local_regs[54]).mask(0xffffffff);
state_add(E132XS_L55, "L55 :%08X", m_local_regs[55]).mask(0xffffffff); state_add(E132XS_L55, "L55", m_local_regs[55]).mask(0xffffffff);
state_add(E132XS_L56, "L56 :%08X", m_local_regs[56]).mask(0xffffffff); state_add(E132XS_L56, "L56", m_local_regs[56]).mask(0xffffffff);
state_add(E132XS_L57, "L57 :%08X", m_local_regs[57]).mask(0xffffffff); state_add(E132XS_L57, "L57", m_local_regs[57]).mask(0xffffffff);
state_add(E132XS_L58, "L58 :%08X", m_local_regs[58]).mask(0xffffffff); state_add(E132XS_L58, "L58", m_local_regs[58]).mask(0xffffffff);
state_add(E132XS_L59, "L59 :%08X", m_local_regs[59]).mask(0xffffffff); state_add(E132XS_L59, "L59", m_local_regs[59]).mask(0xffffffff);
state_add(E132XS_L60, "L60 :%08X", m_local_regs[60]).mask(0xffffffff); state_add(E132XS_L60, "L60", m_local_regs[60]).mask(0xffffffff);
state_add(E132XS_L61, "L61 :%08X", m_local_regs[61]).mask(0xffffffff); state_add(E132XS_L61, "L61", m_local_regs[61]).mask(0xffffffff);
state_add(E132XS_L62, "L62 :%08X", m_local_regs[62]).mask(0xffffffff); state_add(E132XS_L62, "L62", m_local_regs[62]).mask(0xffffffff);
state_add(E132XS_L63, "L63 :%08X", m_local_regs[63]).mask(0xffffffff); state_add(E132XS_L63, "L63", m_local_regs[63]).mask(0xffffffff);
save_item(NAME(m_global_regs)); save_item(NAME(m_global_regs));
save_item(NAME(m_local_regs)); save_item(NAME(m_local_regs));
@ -4210,7 +4210,7 @@ void hyperstone_device::hyperstone_extend(struct hyperstone_device::regs_decode
{ {
// signed or unsigned multiplication, single word product // signed or unsigned multiplication, single word product
case EMUL: case EMUL:
case 0x100: // used in "N" type cpu case 0x100: // used in"N" type cpu
{ {
UINT32 result; UINT32 result;
@ -4437,7 +4437,7 @@ void hyperstone_device::hyperstone_lddp(struct hyperstone_device::regs_decode *d
SET_SREGF(READ_W(DREG + 4)); SET_SREGF(READ_W(DREG + 4));
// post increment the destination register if it's different from the source one // post increment the destination register if it's different from the source one
// and from the "next source" one // and from the"next source" one
if(!(decode->src == decode->dst && S_BIT == LOCAL) && !SAME_SRCF_DST ) if(!(decode->src == decode->dst && S_BIT == LOCAL) && !SAME_SRCF_DST )
{ {
SET_DREG(DREG + 8); SET_DREG(DREG + 8);
@ -4861,7 +4861,7 @@ void hyperstone_device::hyperstone_trap(struct hyperstone_device::regs_decode *d
} }
#include "e132xsop.inc" #include"e132xsop.inc"
//************************************************************************** //**************************************************************************
// CORE EXECUTION LOOP // CORE EXECUTION LOOP