| @@ -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_FUNC(inc) | ||||
| { | { | ||||
| INST_TAKES_ARGS(1, 1) | 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_FUNC(nop) | ||||
| { | { | ||||
| INST_TAKES_NO_ARGS | INST_TAKES_NO_ARGS | ||||
| INST_RETURN(1, 0x00) | 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_FUNC(reti) | ||||
| { | { | ||||
| INST_TAKES_NO_ARGS | INST_TAKES_NO_ARGS | ||||
| @@ -374,6 +710,182 @@ INST_FUNC(retn) | |||||
| INST_RETURN(2, 0xED, 0x45) | 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. | 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(adc) | ||||
| HANDLE(add) | 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(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(nop) | ||||
| HANDLE(or) | |||||
| HANDLE(otdr) | |||||
| HANDLE(otir) | |||||
| HANDLE(out) | |||||
| HANDLE(outd) | |||||
| HANDLE(outi) | |||||
| HANDLE(pop) | |||||
| HANDLE(push) | |||||
| HANDLE(res) | |||||
| HANDLE(ret) | |||||
| HANDLE(reti) | HANDLE(reti) | ||||
| HANDLE(retn) | 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; | return NULL; | ||||
| } | } | ||||