From 8babffb562c12e59f571f7d1a66baf3ec332ea36 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Fri, 8 May 2015 23:03:18 -0500 Subject: [PATCH] Implement most (all) of the no-argument instructions. --- src/assembler/instructions.c | 112 +++++++++++-------------------------------- 1 file changed, 28 insertions(+), 84 deletions(-) diff --git a/src/assembler/instructions.c b/src/assembler/instructions.c index 3481a00..443f4e5 100644 --- a/src/assembler/instructions.c +++ b/src/assembler/instructions.c @@ -344,10 +344,8 @@ INST_FUNC(call) INST_FUNC(ccf) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0x3F) } INST_FUNC(cp) @@ -360,50 +358,38 @@ INST_FUNC(cp) INST_FUNC(cpd) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xA9) } INST_FUNC(cpdr) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xB9) } INST_FUNC(cpi) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xA1) } INST_FUNC(cpir) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xB1) } INST_FUNC(cpl) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0x2F) } INST_FUNC(daa) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0x27) } INST_FUNC(dec) @@ -416,10 +402,8 @@ INST_FUNC(dec) INST_FUNC(di) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0xF3) } INST_FUNC(djnz) @@ -432,10 +416,8 @@ INST_FUNC(djnz) INST_FUNC(ei) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0xFB) } INST_FUNC(ex) @@ -448,18 +430,14 @@ INST_FUNC(ex) INST_FUNC(exx) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0xD9) } INST_FUNC(halt) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0x76) } INST_FUNC(im) @@ -515,34 +493,26 @@ INST_FUNC(inc) INST_FUNC(ind) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xAA) } INST_FUNC(indr) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xBA) } INST_FUNC(ini) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xA2) } INST_FUNC(inir) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xB2) } INST_FUNC(jp) @@ -571,34 +541,26 @@ INST_FUNC(ld) INST_FUNC(ldd) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xA8) } INST_FUNC(lddr) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xB8) } INST_FUNC(ldi) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xA0) } INST_FUNC(ldir) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xB0) } INST_FUNC(neg) @@ -625,18 +587,14 @@ INST_FUNC(or) INST_FUNC(otdr) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xBB) } INST_FUNC(otir) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xB3) } INST_FUNC(out) @@ -649,18 +607,14 @@ INST_FUNC(out) INST_FUNC(outd) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xAB) } INST_FUNC(outi) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(2, 0xED, 0xA3) } INST_FUNC(pop) @@ -717,10 +671,8 @@ INST_FUNC(rl) INST_FUNC(rla) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0x17) } INST_FUNC(rlc) @@ -733,10 +685,8 @@ INST_FUNC(rlc) INST_FUNC(rlca) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0x07) } INST_FUNC(rld) @@ -757,10 +707,8 @@ INST_FUNC(rr) INST_FUNC(rra) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0x1F) } INST_FUNC(rrc) @@ -773,10 +721,8 @@ INST_FUNC(rrc) INST_FUNC(rrca) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0x0F) } INST_FUNC(rrd) @@ -805,10 +751,8 @@ INST_FUNC(sbc) INST_FUNC(scf) { - // TODO INST_TAKES_NO_ARGS - INST_ERROR(ARG_SYNTAX) - INST_RETURN(1, 0xFF) + INST_RETURN(1, 0x37) } INST_FUNC(set)