diff options
| author | 2025-11-02 13:09:42 -0500 | |
|---|---|---|
| committer | 2025-11-02 13:13:19 -0500 | |
| commit | 288620596b206f840e11f037c26ce058961e3706 (patch) | |
| tree | cc192e017d07c310f35fbc6b2db41a2062101f7b | |
| parent | 8777b5dc49b968fc873f9f2b0b544e539ccd3c85 (diff) | |
dsp563xx: Further CPU fixes
- Revert the LA "fix" from 830e75c6c88905ed43a4cfff57b4315c26445efc. The instruction at LA must be executed (see DSP56362 bootstrap ROM at $FF003B-3E, as executed by triplec).
- Use special write handlers for 8-bit immediate moves to A, B, X0, X1, Y0 or Y1.
| -rw-r--r-- | src/devices/cpu/dsp563xx/dsp563xx-interp.cpp | 120 | ||||
| -rwxr-xr-x | src/devices/cpu/dsp563xx/dsp563xx-make.py | 9 | ||||
| -rw-r--r-- | src/devices/cpu/dsp563xx/dsp563xx.h | 6 | ||||
| -rw-r--r-- | src/devices/cpu/dsp563xx/dsp563xx.lst | 14 |
4 files changed, 80 insertions, 69 deletions
diff --git a/src/devices/cpu/dsp563xx/dsp563xx-interp.cpp b/src/devices/cpu/dsp563xx/dsp563xx-interp.cpp index 39165c9bae0..ed6f27f81c7 100644 --- a/src/devices/cpu/dsp563xx/dsp563xx-interp.cpp +++ b/src/devices/cpu/dsp563xx/dsp563xx-interp.cpp @@ -14129,22 +14129,22 @@ void dsp563xx_device::execute_post_move(u16 kmove, u32 opcode, u32 exv) } case 2: { // #[i],x0 u32 i = BIT(opcode, 8, 8); - set_x0(i); + set_x0f(i); break; } case 3: { // #[i],x1 u32 i = BIT(opcode, 8, 8); - set_x1(i); + set_x1f(i); break; } case 4: { // #[i],y0 u32 i = BIT(opcode, 8, 8); - set_y0(i); + set_y0f(i); break; } case 5: { // #[i],y1 u32 i = BIT(opcode, 8, 8); - set_y1(i); + set_y1f(i); break; } case 6: { // #[i],a0 @@ -14179,12 +14179,12 @@ void dsp563xx_device::execute_post_move(u16 kmove, u32 opcode, u32 exv) } case 12: { // #[i],a u32 i = BIT(opcode, 8, 8); - set_a(i); + set_af(i); break; } case 13: { // #[i],b u32 i = BIT(opcode, 8, 8); - set_b(i); + set_bf(i); break; } case 14: { // #[i],r @@ -32254,7 +32254,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32268,7 +32268,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32282,7 +32282,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32296,7 +32296,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32310,7 +32310,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32324,7 +32324,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32338,7 +32338,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32352,7 +32352,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32366,7 +32366,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32380,7 +32380,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32394,7 +32394,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32408,7 +32408,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32422,7 +32422,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32436,7 +32436,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32450,7 +32450,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32464,7 +32464,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32478,7 +32478,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32492,7 +32492,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32506,7 +32506,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32520,7 +32520,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32534,7 +32534,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32548,7 +32548,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32562,7 +32562,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32576,7 +32576,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32590,7 +32590,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32604,7 +32604,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32616,7 +32616,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; m_emr |= EMR_FV; break; @@ -32695,7 +32695,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32709,7 +32709,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32723,7 +32723,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32737,7 +32737,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32751,7 +32751,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32765,7 +32765,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32779,7 +32779,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32793,7 +32793,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32807,7 +32807,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32821,7 +32821,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32835,7 +32835,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32849,7 +32849,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32863,7 +32863,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32877,7 +32877,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32891,7 +32891,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32905,7 +32905,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32919,7 +32919,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32933,7 +32933,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32947,7 +32947,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32961,7 +32961,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32975,7 +32975,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -32989,7 +32989,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -33003,7 +33003,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -33017,7 +33017,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -33031,7 +33031,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -33045,7 +33045,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; break; } @@ -33057,7 +33057,7 @@ void dsp563xx_device::execute_npar(u16 knpar, u32 opcode, u32 exv) inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la(expr-1); + set_la(expr); m_mr |= MR_LF; m_emr |= EMR_FV; break; diff --git a/src/devices/cpu/dsp563xx/dsp563xx-make.py b/src/devices/cpu/dsp563xx/dsp563xx-make.py index 658c0268d9c..4d844cdceb8 100755 --- a/src/devices/cpu/dsp563xx/dsp563xx-make.py +++ b/src/devices/cpu/dsp563xx/dsp563xx-make.py @@ -30,6 +30,7 @@ class SlotChange: none = 0 sel1 = 1 bus24 = 2 + bus8 = 3 functions = {} @@ -594,11 +595,11 @@ class Source: while pos != len(line) and isa(line[pos]): pos += 1 smode = line[spos:pos] - if smode != '' and smode != 'w' and smode != 'm' and smode != '1' and smode != 'w1' and smode != 'h' and smode != 'wh': + if smode != '' and smode != 'w' and smode != 'm' and smode != '1' and smode != 'w1' and smode != 'h' and smode != 'wh' and smode != 'wb': print("Unexpected slot mode %s" % smode) sys.exit(1) smode_id = SlotMode.memory if smode == 'm' else SlotMode.write if 'w' in smode else SlotMode.read - schange_id = SlotChange.sel1 if '1' in smode else SlotChange.bus24 if 'h' in smode else SlotChange.none + schange_id = SlotChange.sel1 if '1' in smode else SlotChange.bus24 if 'h' in smode else SlotChange.bus8 if 'b' in smode else SlotChange.none if sname not in self.slots: self.slots[sname] = [False]*3 self.slots[sname][smode_id] = True @@ -658,8 +659,12 @@ class Source: s += 'set_%s1(%s)' % (slot, sub) elif e[2] == SlotChange.bus24: s += 'set_%sh(%s)' % (slot, sub) + elif e[2] == SlotChange.bus8: + s += 'set_%sf(%s)' % (slot, sub) else: s += 'set_%s(%s)' % (slot, sub) + elif (slot == 'x0' or slot == 'x1' or slot == 'y0' or slot == 'y1') and e[2] == SlotChange.bus8: + s += 'set_%sf(%s)' % (slot, sub) else: s += 'set_%s(%s)' % (slot, sub) elif slot in ArrayRegs: diff --git a/src/devices/cpu/dsp563xx/dsp563xx.h b/src/devices/cpu/dsp563xx/dsp563xx.h index de991de7212..863d7113ba7 100644 --- a/src/devices/cpu/dsp563xx/dsp563xx.h +++ b/src/devices/cpu/dsp563xx/dsp563xx.h @@ -112,18 +112,24 @@ protected: inline void set_a(u64 v) { m_a = v & 0xffffffffffffff; } inline void set_ah(u32 v) { m_a = u64(util::sext(v, 24)) << 24; } + inline void set_af(u8 v) { m_a = u64(v) << 48; } inline void set_a2(u8 v) { m_a = (m_a & 0x00ffffffffffff) | (u64(v) << 48); } inline void set_a1(u32 v) { m_a = (m_a & 0xff000000ffffff) | (u64(v & 0xffffff) << 24); } inline void set_a0(u32 v) { m_a = (m_a & 0xffffffff000000) | u64(v & 0xffffff); } inline void set_b(u64 v) { m_b = v & 0xffffffffffffff; } inline void set_bh(u32 v) { m_b = u64(util::sext(v, 24)) << 24; } + inline void set_bf(u64 v) { m_b = u64(v) << 48; } inline void set_b2(u8 v) { m_b = (m_b & 0x00ffffffffffff) | (u64(v) << 48); } inline void set_b1(u32 v) { m_b = (m_b & 0xff000000ffffff) | (u64(v & 0xffffff) << 24); } inline void set_b0(u32 v) { m_b = (m_b & 0xffffffff000000) | u64(v & 0xffffff); } inline void set_x0(u32 v) { m_x0 = v & 0xffffff; } + inline void set_x0f(u8 v) { m_x0 = u32(v) << 16; } inline void set_x1(u32 v) { m_x1 = v & 0xffffff; } + inline void set_x1f(u8 v) { m_x1 = u32(v) << 16; } inline void set_y0(u32 v) { m_y0 = v & 0xffffff; } + inline void set_y0f(u8 v) { m_y0 = u32(v) << 16; } inline void set_y1(u32 v) { m_y1 = v & 0xffffff; } + inline void set_y1f(u8 v) { m_y1 = u32(v) << 16; } inline void set_r(int index, u32 v) { m_r[index] = v & 0xffffff; } inline void set_n(int index, u32 v) { m_n[index] = v & 0xffffff; } inline void set_m(int index, u32 v) { m_m[index] = v & 0xffffff; } diff --git a/src/devices/cpu/dsp563xx/dsp563xx.lst b/src/devices/cpu/dsp563xx/dsp563xx.lst index 21dd53bd52b..ed85caeed89 100644 --- a/src/devices/cpu/dsp563xx/dsp563xx.lst +++ b/src/devices/cpu/dsp563xx/dsp563xx.lst @@ -39,7 +39,7 @@ 2000.. #i,d - d:fvbr1(16) i:imm8(8) %p - $d:w($i); + $d:wb($i); 2000.. s,d - s:fvbr1(13) d:fvbr1(8) m_tmp1 = $s:h; @@ -561,7 +561,7 @@ c000.. s1,x:eax y:eay,d2 - eax:xyeax(8) eay:xyeay(20, 13, 10) s1:tbrx(18) d2 inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la($expr-1); + set_la($expr); m_mr |= MR_LF; 06c000 do s,expr - s:sbr_nos(8) expr:exabs() @@ -572,7 +572,7 @@ c000.. s1,x:eax y:eay,d2 - eax:xyeax(8) eay:xyeay(20, 13, 10) s1:tbrx(18) d2 inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la($expr-1); + set_la($expr); m_mr |= MR_LF; 000203 do forever,expr - expr:exabs() @@ -582,7 +582,7 @@ c000.. s1,x:eax y:eay,d2 - eax:xyeax(8) eay:xyeay(20, 13, 10) s1:tbrx(18) d2 inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la($expr-1); + set_la($expr); m_mr |= MR_LF; m_emr |= EMR_FV; @@ -596,7 +596,7 @@ c000.. s1,x:eax y:eay,d2 - eax:xyeax(8) eay:xyeay(20, 13, 10) s1:tbrx(18) d2 inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la($expr-1); + set_la($expr); m_mr |= MR_LF; 06c010 dor s,expr - s:sbr_nos(8) expr:expcrel() @@ -607,7 +607,7 @@ c000.. s1,x:eax y:eay,d2 - eax:xyeax(8) eay:xyeay(20, 13, 10) s1:tbrx(18) d2 inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la($expr-1); + set_la($expr); m_mr |= MR_LF; 000202 dor forever,expr - expr:expcrel() @@ -617,7 +617,7 @@ c000.. s1,x:eax y:eay,d2 - eax:xyeax(8) eay:xyeay(20, 13, 10) s1:tbrx(18) d2 inc_sp(); set_ssh(m_pc+2); set_ssl(get_sr()); - set_la($expr-1); + set_la($expr); m_mr |= MR_LF; m_emr |= EMR_FV; |
