diff options
Diffstat (limited to 'instruction-init.h')
-rw-r--r-- | instruction-init.h | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/instruction-init.h b/instruction-init.h deleted file mode 100644 index 12cdfa4..0000000 --- a/instruction-init.h +++ /dev/null @@ -1,116 +0,0 @@ -// instruction-init.h -// Initializes every instruction function prior to addressing.h so that function addresses are accessible -// also defines the array used to refer to functions - -//InstructionTable -void* IT; -void (*func)(Addressing, address); - -#define InstructionTableSize (256*(sizeof(uintptr_t) + sizeof(Addressing))) - -/* -uintptr_t getITFunction(int i){ //Segmentation fault is occurring here, likely in next one too - uintptr_t r = (IT + (sizeof(uintptr_t)*i)); - return r; -} - -Addressing getITAddressing(int i){ - Addressing r = (IT + (sizeof(uintptr_t)*256) + (sizeof(Addressing)*i)); - return r; -} -*/ - - -void callIT(int i, address val){ - uintptr_t a = (IT + (sizeof(uintptr_t) * i)); - memcpy(&func, a, sizeof(uintptr_t)); - Addressing* r = (IT + ((sizeof(uintptr_t)*256) + (sizeof(Addressing) * i))); - func(*r, val); -} - -void initIT(){ - IT = malloc(InstructionTableSize); - FILE* fs = fopen("instructions.bin", "r"); - - /*if (fs == NULL){ - system("instruction-dump"); - }*/ - for(char* c = IT; c < (IT + InstructionTableSize); c++){ //NEED TO MAKE (IT + (256*(sizeof(uintptr_t) + sizeof(Addressing)))) a macro - *c = fgetc(fs); - } //Investigate whether doing word sized units would increase speed - fclose(fs); - //read in the instruction data binary -} - - - -// Load and Store Instructions -void fLDA(Addressing, address); -void fLDX(Addressing, address); -void fLDY(Addressing, address); -void fSTA(Addressing, address); -void fSTX(Addressing, address); -void fSTY(Addressing, address); -// Arithmetic Instructions -void fADC(Addressing, address); -void fSBC(Addressing, address); -//Increment and Decrement Instructions -void fINC(Addressing, address); -void fINX(Addressing, address); -void fINY(Addressing, address); -void fDEC(Addressing, address); -void fDEX(Addressing, address); -void fDEY(Addressing, address); -// Logical Instructions -void fAND(Addressing, address); -void fORA(Addressing, address); -void fEOR(Addressing, address); -// Jump, Branch, Compare, and Test Bits -void fJMP(Addressing, address); -void fBCC(Addressing, address); -void fBCS(Addressing, address); -void fBEQ(Addressing, address); -void fBNE(Addressing, address); -void fBMI(Addressing, address); -void fBPL(Addressing, address); -void fBVS(Addressing, address); -void fBVC(Addressing, address); -void fCMP(Addressing, address); -void fCPX(Addressing, address); -void fCPY(Addressing, address); -void fBIT(Addressing, address); -// Shift and Rotate Instructions -void fASL(Addressing, address); -void fLSR(Addressing, address); -void fROL(Addressing, address); -void fROR(Addressing, address); -// Transfer Instructions -void fTAX(Addressing, address); -void fTAY(Addressing, address); -void fTXA(Addressing, address); -void fTYA(Addressing, address); -// Stack Instructions -void fTSX(Addressing, address); -void fTXS(Addressing, address); -void fPHA(Addressing, address); -void fPHP(Addressing, address); -void fPLA(Addressing, address); -void fPLP(Addressing, address); -// Subroutine Instructions -void fJSR(Addressing, address); -void fRTS(Addressing, address); -void fRTI(Addressing, address); -// Set/Reset Insutrctions -void fCLC(Addressing, address); -void fCLD(Addressing, address); -void fCLI(Addressing, address); -void fCLV(Addressing, address); -void fSEC(Addressing, address); -void fSED(Addressing, address); -void fSEI(Addressing, address); -// NOP/BRK Instructions -void fNOP(Addressing, address); -void fBRK(Addressing, address); - - - |