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)
{
// 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)


Loading…
Cancel
Save