#pragma once typedef struct VCPU_State { // Program Counter (16 bits but only 12 bits used (4096 memory addresses)) unsigned short PC; // Index register (16 bits but only 12 bits used (4096 memory addresses)) unsigned short I; // Stack register (16 bits) unsigned short S; // General purpose registers (8 bits each) // Note last one often used as a flag register unsigned char V[16]; // Delay timer (8 bits) unsigned char DT; // Sound timer (8 bits) unsigned char ST; // Intruction (opcode + decoded fields) unsigned short opcode; char X; char Y; char N; char NN; unsigned short NNN; } VCPU_State; void VCPUInit(); void VCPUFetch(); void VCPUDecode(); void VCPUExecute(); void VCPUDump();