diff options
| -rw-r--r-- | Makefile | 11 | ||||
| -rw-r--r-- | loader.c | 2 | ||||
| -rw-r--r-- | opcodes.asm | 9 | ||||
| -rw-r--r-- | testbenches/mine.z80 | 26 |
4 files changed, 41 insertions, 7 deletions
@@ -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 @@ -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 |
