From e81ab31cf7cfabce9f5d235066c471761c647ff2 Mon Sep 17 00:00:00 2001 From: Astrid Smith Date: Fri, 10 Sep 2010 19:40:53 -0700 Subject: Two more fixes The underef function will now return 0 if a match is not found, rather than returning something undefined. The routine for CALL immed.w was mistakenly calling deref with a truncated address. This has been fixed. --- main.asm | 1 + opcodes.asm | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/main.asm b/main.asm index 0e3b06f..989ed06 100644 --- a/main.asm +++ b/main.asm @@ -154,6 +154,7 @@ underef_not1: underef_not2: suba.l (a1)+,a0 ;; if that fails too, well shit man! + moveq #0,d0 underef_thatsit: rts diff --git a/opcodes.asm b/opcodes.asm index e366b90..e49a193 100644 --- a/opcodes.asm +++ b/opcodes.asm @@ -555,6 +555,8 @@ emu_op_2a: FETCHW d1,ehl DONE + ;; XXX TOO LONG + START emu_op_2b: ;; DEC HL @@ -1873,7 +1875,7 @@ emu_op_cd: ;; (SP-2) <- PCl ;; SP <- SP - 2 ;; PC <- address - move epc,a0 + move.l epc,a0 bsr underef ; d0 has PC PUSHW d0 FETCHWI d0 -- cgit v1.2.3