Mercurial > hg > ede
view emulator/iset.c @ 25:45340c2a38c5
tidier and less buggier
author | james <jb302@eecs.qmul.ac.uk> |
---|---|
date | Fri, 28 Feb 2014 17:21:11 +0000 |
parents | 256d24488e3f |
children | a542cd390efd |
line wrap: on
line source
/* iset.c * op functions */ #include <stdlib.h> #include "iset.h" #include "mem.h" //implement me void JNS(void) { registers.PC = registers.PC + 1; } //implement me void LJMP(void) { registers.PC = registers.PC + 1; } /* * 0x08 - SET C * 0x0A - SET BS * 0x0C - SET IE */ void SET(void) { switch (op) { case 0x08: registers.flags = registers.flags | 0x80; break; case 0x0A: registers.flags = registers.flags | 0x01; break; case 0x0C: registers.flags = registers.flags | 0x02; break; } registers.PC = registers.PC + 1; } void RESERVED(void) { registers.PC = registers.PC + 1; } //implement me void JPO(void) { registers.PC = registers.PC + 1; } //implement me void ANL(void) { registers.PC = registers.PC + 1; } //implement me void JNZ(void) { registers.PC = registers.PC + 1; } /* 0xFF - HLT */ void HLT(void) { exit(0); } //implement me void RRC(void) { registers.PC = registers.PC + 1; } //implement me void POP(void) { registers.PC = registers.PC + 1; } //implement me void JNC(void) { registers.PC = registers.PC + 1; } //implement me void SUBB(void) { registers.PC = registers.PC + 1; } //implement me void PCALL(void) { registers.PC = registers.PC + 1; } //implement me void IN(void) { registers.PC = registers.PC + 1; } //implement me void INC(void) { registers.PC = registers.PC + 1; } //implement me void XRL(void) { registers.PC = registers.PC + 1; } //implement me void SUB(void) { registers.PC = registers.PC + 1; } //implement me void RR(void) { registers.PC = registers.PC + 1; } //implement me void SJMP(void) { registers.PC = registers.PC + 1; } //implement me void RETI(void) { registers.PC = registers.PC + 1; } //implement me void RET(void) { registers.PC = registers.PC + 1; } //implement me void INT(void) { registers.PC = registers.PC + 1; } //implement me void ADD(void) { registers.PC = registers.PC + 1; } //implement me void ADDC(void) { registers.PC = registers.PC + 1; } //implement me void RL(void) { registers.PC = registers.PC + 1; } //implement me void MUL(void) { registers.PC = registers.PC + 1; } //implement me void JC(void) { registers.PC = registers.PC + 1; } //implement me void JMP(void) { registers.PC = registers.PC + 1; } //implement me void DJNZ(void) { registers.PC = registers.PC + 1; } /* 0x09 - CLR C * 0x0B - CLR BS * 0x0D - CLR IE */ void CLR(void) { switch (op) { case 0x09: registers.flags = registers.flags ^ 0x80; break; case 0x0B: registers.flags = registers.flags ^ 0x01; break; case 0x0D: registers.flags = registers.flags ^ 0x02; break; } registers.PC = registers.PC + 1; } //implement me void JZ(void) { registers.PC = registers.PC + 1; } //implement me void JPE(void) { registers.PC = registers.PC + 1; } //implement me void LAF(void) { registers.PC = registers.PC + 1; } //implement me void MOV(void) { registers.PC = registers.PC + 1; } //implement me void RLC(void) { registers.PC = registers.PC + 1; } //implement me void JS(void) { registers.PC = registers.PC + 1; } //implement me void ORL(void) { registers.PC = registers.PC + 1; } //implement me void CJNE(void) { registers.PC = registers.PC + 1; } //implement me void XCSD(void) { registers.PC = registers.PC + 1; } //implement me void LCALL(void) { registers.PC = registers.PC + 1; } //implement me void DA(void) { registers.PC = registers.PC + 1; } //implement me void NOP(void) { registers.PC = registers.PC + 1; } //implement me void SFA(void) { registers.PC = registers.PC + 1; } //implement me void CPL(void) { registers.PC = registers.PC + 1; } //implement me void PUSH(void) { registers.PC = registers.PC + 1; } //implement me void DIV(void) { registers.PC = registers.PC + 1; } //implement me void DEC(void) { registers.PC = registers.PC + 1; } //implement me void OUT(void) { registers.PC = registers.PC + 1; } //implement me void PJMP(void) { registers.PC = registers.PC + 1; }