Browse Source

Implement most (all) of the no-argument instructions.

master
Ben Kurtovic 9 years ago
parent
commit
8babffb562
1 changed files with 28 additions and 84 deletions
  1. +28
    -84
      src/assembler/instructions.c

+ 28
- 84
src/assembler/instructions.c View File

@@ -344,10 +344,8 @@ INST_FUNC(call)


INST_FUNC(ccf) INST_FUNC(ccf)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0x3F)
} }


INST_FUNC(cp) INST_FUNC(cp)
@@ -360,50 +358,38 @@ INST_FUNC(cp)


INST_FUNC(cpd) INST_FUNC(cpd)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xA9)
} }


INST_FUNC(cpdr) INST_FUNC(cpdr)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xB9)
} }


INST_FUNC(cpi) INST_FUNC(cpi)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xA1)
} }


INST_FUNC(cpir) INST_FUNC(cpir)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xB1)
} }


INST_FUNC(cpl) INST_FUNC(cpl)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0x2F)
} }


INST_FUNC(daa) INST_FUNC(daa)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0x27)
} }


INST_FUNC(dec) INST_FUNC(dec)
@@ -416,10 +402,8 @@ INST_FUNC(dec)


INST_FUNC(di) INST_FUNC(di)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0xF3)
} }


INST_FUNC(djnz) INST_FUNC(djnz)
@@ -432,10 +416,8 @@ INST_FUNC(djnz)


INST_FUNC(ei) INST_FUNC(ei)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0xFB)
} }


INST_FUNC(ex) INST_FUNC(ex)
@@ -448,18 +430,14 @@ INST_FUNC(ex)


INST_FUNC(exx) INST_FUNC(exx)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0xD9)
} }


INST_FUNC(halt) INST_FUNC(halt)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0x76)
} }


INST_FUNC(im) INST_FUNC(im)
@@ -515,34 +493,26 @@ INST_FUNC(inc)


INST_FUNC(ind) INST_FUNC(ind)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xAA)
} }


INST_FUNC(indr) INST_FUNC(indr)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xBA)
} }


INST_FUNC(ini) INST_FUNC(ini)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xA2)
} }


INST_FUNC(inir) INST_FUNC(inir)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xB2)
} }


INST_FUNC(jp) INST_FUNC(jp)
@@ -571,34 +541,26 @@ INST_FUNC(ld)


INST_FUNC(ldd) INST_FUNC(ldd)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xA8)
} }


INST_FUNC(lddr) INST_FUNC(lddr)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xB8)
} }


INST_FUNC(ldi) INST_FUNC(ldi)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xA0)
} }


INST_FUNC(ldir) INST_FUNC(ldir)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xB0)
} }


INST_FUNC(neg) INST_FUNC(neg)
@@ -625,18 +587,14 @@ INST_FUNC(or)


INST_FUNC(otdr) INST_FUNC(otdr)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xBB)
} }


INST_FUNC(otir) INST_FUNC(otir)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xB3)
} }


INST_FUNC(out) INST_FUNC(out)
@@ -649,18 +607,14 @@ INST_FUNC(out)


INST_FUNC(outd) INST_FUNC(outd)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xAB)
} }


INST_FUNC(outi) INST_FUNC(outi)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(2, 0xED, 0xA3)
} }


INST_FUNC(pop) INST_FUNC(pop)
@@ -717,10 +671,8 @@ INST_FUNC(rl)


INST_FUNC(rla) INST_FUNC(rla)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0x17)
} }


INST_FUNC(rlc) INST_FUNC(rlc)
@@ -733,10 +685,8 @@ INST_FUNC(rlc)


INST_FUNC(rlca) INST_FUNC(rlca)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0x07)
} }


INST_FUNC(rld) INST_FUNC(rld)
@@ -757,10 +707,8 @@ INST_FUNC(rr)


INST_FUNC(rra) INST_FUNC(rra)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0x1F)
} }


INST_FUNC(rrc) INST_FUNC(rrc)
@@ -773,10 +721,8 @@ INST_FUNC(rrc)


INST_FUNC(rrca) INST_FUNC(rrca)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0x0F)
} }


INST_FUNC(rrd) INST_FUNC(rrd)
@@ -805,10 +751,8 @@ INST_FUNC(sbc)


INST_FUNC(scf) INST_FUNC(scf)
{ {
// TODO
INST_TAKES_NO_ARGS INST_TAKES_NO_ARGS
INST_ERROR(ARG_SYNTAX)
INST_RETURN(1, 0xFF)
INST_RETURN(1, 0x37)
} }


INST_FUNC(set) INST_FUNC(set)


Loading…
Cancel
Save