summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ariedlmayer@gmail.com>2025-11-02 13:09:42 -0500
committer AJR <ariedlmayer@gmail.com>2025-11-02 13:13:19 -0500
commit288620596b206f840e11f037c26ce058961e3706 (patch)
treecc192e017d07c310f35fbc6b2db41a2062101f7b
parent8777b5dc49b968fc873f9f2b0b544e539ccd3c85 (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.cpp120
-rwxr-xr-xsrc/devices/cpu/dsp563xx/dsp563xx-make.py9
-rw-r--r--src/devices/cpu/dsp563xx/dsp563xx.h6
-rw-r--r--src/devices/cpu/dsp563xx/dsp563xx.lst14
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;