37 lines
624 B
C
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;
|
|
} |