summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAstrid Smith2010-09-13 19:26:26 -0700
committerAstrid Smith2010-09-13 19:26:26 -0700
commit99e9a0b3e009a780422bee65ceb75515d2e7f431 (patch)
treede0b4a53d59f74716fd3e2def5c849f943b78c24
parentd12a27ae6259465790c4b9a4c557cdd9deb3e109 (diff)
Started out on my own test suite
-rw-r--r--Makefile11
-rw-r--r--loader.c2
-rw-r--r--opcodes.asm9
-rw-r--r--testbenches/mine.z8026
4 files changed, 41 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 3771499..e5a4ad6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
ASM_FILES=alu.asm flags.asm opcodes.asm ports.asm interrupts.asm main.asm
ASM=main.asm
C_FILES=loader.c bankswap.c video.c misc.c debug.c
-MADE_FILES=testbenches/zexdoc.h
+MADE_FILES=testbenches/zexdoc.h testbenches/mine.h
TIGCCFLAGS=-Wall
CFLAGS=-Wall -ltifiles
@@ -19,3 +19,12 @@ testbenches/zexdoc.h: testbenches/zexdoc.bin
testbenches/zexdoc.bin: testbenches/zexdoc.z80
spasm testbenches/zexdoc.z80
+
+
+testbenches/mine.h: testbenches/mine.bin
+ echo 'char zexdoc[] = {' > testbenches/mine.h
+ hexdump -v -e '12/1 "0x%02x, "' -e '"\n"' testbenches/mine.bin | sed -e 's/0x *,//g' >> testbenches/mine.h
+ echo '};' >> testbenches/mine.h
+
+testbenches/zexdoc.bin: testbenches/mine.z80
+ spasm testbenches/mine.z80
diff --git a/loader.c b/loader.c
index 089c6b3..6d79b65 100644
--- a/loader.c
+++ b/loader.c
@@ -19,7 +19,7 @@ char writestr[16] = { 0x3E, 0x41, // LD A,'A'
0xC3, 0x40, 0x00 // JP 4000h
};
-#include "testbenches/zexdoc.h"
+#include "testbenches/mine.h"
void init_load(void);
void unload(void);
diff --git a/opcodes.asm b/opcodes.asm
index f2b5256..e140cfc 100644
--- a/opcodes.asm
+++ b/opcodes.asm
@@ -205,8 +205,9 @@ emu_op_01: ; S12 T36
START
emu_op_02: ; S4 T14
;; LD (BC),A
+ ;; (BC) <- A
;; No flags
- FETCHB ebc,eaf
+ PUTB eaf,ebc
DONE
START
@@ -268,16 +269,14 @@ emu_op_09:
;; HL <- HL+BC
;; Flags: H, C aff.; N=0
F_ADD_W ebc,ehl
- DONE
+ DONE ;nok
START
emu_op_0a: ; S4 T14
;; LD A,(BC)
;; A <- (BC)
;; No flags
- move.w ebc,d1
- rol.w #8,d1
- FETCHB d1,eaf
+ FETCHB ebc,eaf
DONE
START
diff --git a/testbenches/mine.z80 b/testbenches/mine.z80
new file mode 100644
index 0000000..2499de3
--- /dev/null
+++ b/testbenches/mine.z80
@@ -0,0 +1,26 @@
+;;; -*- asm -*-
+;;;
+
+.ORG 4000h
+
+ call dec8
+ halt
+
+inc8:
+ ld bc,data8 ;01
+ ;; BC should have &data8
+ ld a,(bc) ;0a
+ inc a ;3c
+ ld (bc),a ;02
+ halt
+
+dec8:
+ ld a,0a5h ;3e
+ dec a ;3d
+ ret
+
+
+data8:
+ .db 0a5h
+data16:
+ .dw data8