r16/emu/cpu/register.c
2024-04-19 09:05:10 +00:00

37 lines
624 B
C

#include "./register.h"
#include <stdlib.h>
r16_int r0, r1, r2, r3, acu, pc, sp;
r16_int *GetRegPoint(CpuRegisters reg)
{
switch (reg)
{
case R0:
return &r0;
case R1:
return &r1;
case R2:
return &r2;
case R3:
return &r3;
case ACU:
return &acu;
case PC:
return &pc;
case SP:
return &sp;
}
return NULL;
}
r16_int GetRegister(CpuRegisters reg)
{
return *(GetRegPoint(reg));
}
void SetRegister(CpuRegisters reg, r16_int value)
{
*(GetRegPoint(reg)) = value;
}