summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Smith2010-09-13 16:49:18 -0700
committerDuncan Smith2010-09-13 16:49:18 -0700
commit9f26b036aadf4fa3856586935f105868a93a189f (patch)
treefac481d4e68db5584a5ad25a5473b881dbf604b4
parent98a8f201b56035da4c7faa88427968c1e7236f06 (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 51f91a5..9d4dfbc 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