diff --git a/src/assembler/instructions.c b/src/assembler/instructions.c index 50f05ca..3d11602 100644 --- a/src/assembler/instructions.c +++ b/src/assembler/instructions.c @@ -321,6 +321,166 @@ INST_FUNC(add) } } +INST_FUNC(and) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(bit) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(call) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(ccf) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(cp) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(cpd) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(cpdr) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(cpi) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(cpir) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(cpl) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(daa) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(dec) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(di) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(djnz) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(ei) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(ex) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(exx) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(halt) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(im) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(in) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + INST_FUNC(inc) { INST_TAKES_ARGS(1, 1) @@ -356,12 +516,188 @@ INST_FUNC(inc) } } +INST_FUNC(ind) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(indr) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(ini) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(inir) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(jp) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(jr) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(ld) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(ldd) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(lddr) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(ldi) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(ldir) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(neg) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + INST_FUNC(nop) { INST_TAKES_NO_ARGS INST_RETURN(1, 0x00) } +INST_FUNC(or) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(otdr) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(otir) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(out) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(outd) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(outi) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(pop) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(push) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(res) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(ret) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + INST_FUNC(reti) { INST_TAKES_NO_ARGS @@ -374,6 +710,182 @@ INST_FUNC(retn) INST_RETURN(2, 0xED, 0x45) } +INST_FUNC(rl) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rla) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rlc) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rlca) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rld) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rr) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rra) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rrc) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rrca) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rrd) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(rst) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(sbc) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(scf) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(set) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(sl1) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(sla) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(sll) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(sls) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(sra) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(srl) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(sub) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + +INST_FUNC(xor) +{ + // TODO + INST_TAKES_NO_ARGS + INST_ERROR(ARG_SYNTAX) + INST_RETURN(1, 0xFF) +} + /* Return the relevant ASMInstParser function for a given mnemonic. @@ -387,10 +899,74 @@ ASMInstParser get_inst_parser(char mstr[MAX_MNEMONIC_SIZE]) HANDLE(adc) HANDLE(add) + HANDLE(and) + HANDLE(bit) + HANDLE(call) + HANDLE(ccf) + HANDLE(cp) + HANDLE(cpd) + HANDLE(cpdr) + HANDLE(cpi) + HANDLE(cpir) + HANDLE(cpl) + HANDLE(daa) + HANDLE(dec) + HANDLE(di) + HANDLE(djnz) + HANDLE(ei) + HANDLE(ex) + HANDLE(exx) + HANDLE(halt) + HANDLE(im) + HANDLE(in) HANDLE(inc) + HANDLE(ind) + HANDLE(indr) + HANDLE(ini) + HANDLE(inir) + HANDLE(jp) + HANDLE(jr) + HANDLE(ld) + HANDLE(ldd) + HANDLE(lddr) + HANDLE(ldi) + HANDLE(ldir) + HANDLE(neg) HANDLE(nop) + HANDLE(or) + HANDLE(otdr) + HANDLE(otir) + HANDLE(out) + HANDLE(outd) + HANDLE(outi) + HANDLE(pop) + HANDLE(push) + HANDLE(res) + HANDLE(ret) HANDLE(reti) HANDLE(retn) + HANDLE(rl) + HANDLE(rla) + HANDLE(rlc) + HANDLE(rlca) + HANDLE(rld) + HANDLE(rr) + HANDLE(rra) + HANDLE(rrc) + HANDLE(rrca) + HANDLE(rrd) + HANDLE(rst) + HANDLE(sbc) + HANDLE(scf) + HANDLE(set) + HANDLE(sl1) + HANDLE(sla) + HANDLE(sll) + HANDLE(sls) + HANDLE(sra) + HANDLE(srl) + HANDLE(sub) + HANDLE(xor) return NULL; }