summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAstrid Smith2010-09-13 16:49:18 -0700
committerAstrid Smith2010-09-13 16:49:18 -0700
commitd12a27ae6259465790c4b9a4c557cdd9deb3e109 (patch)
tree7a96c62209cd8bb94b0a9375d7a7f5e9fb5399e4
parentcff026c3a067ec09fc5775996a48d7ad73412230 (diff)
Endianness fixes, I don't know how correct these are ...
-rw-r--r--main.asm1
-rw-r--r--opcodes.asm9
2 files changed, 7 insertions, 3 deletions
diff --git a/main.asm b/main.asm
index 02bcb1d..d302780 100644
--- a/main.asm
+++ b/main.asm
@@ -92,7 +92,6 @@ emu_teardown:
;; Take a virtual address in d1 and dereference it. Returns the
;; host address in a0. Destroys a0, d0.
deref:
- rol.w #8,d1
move.w d1,d0
andi.w #$3FFF,d0
movea.w d0,a0
diff --git a/opcodes.asm b/opcodes.asm
index 06badd7..f2b5256 100644
--- a/opcodes.asm
+++ b/opcodes.asm
@@ -275,7 +275,9 @@ emu_op_0a: ; S4 T14
;; LD A,(BC)
;; A <- (BC)
;; No flags
- FETCHB ebc,eaf
+ move.w ebc,d1
+ rol.w #8,d1
+ FETCHB d1,eaf
DONE
START
@@ -349,7 +351,9 @@ emu_op_11: ; S
emu_op_12:
;; LD (DE),A
;; No flags
- FETCHB ede,eaf
+ move.w ede,d0
+ rol.w #8,d0
+ FETCHB d0,eaf
DONE
START
@@ -617,6 +621,7 @@ emu_op_32:
;; LD (immed.w),A
;; store indirect
FETCHWI d1
+ rol.w #8,d1
PUTB eaf,d1
DONE