registers.c
766 Bytes
//
// Created by imanol on 12/25/16.
//
#include <stdio.h>
#include <string.h>
#include "registers.h"
uint16_t regs[NUM_REGISTERS];
uint16_t pc = 0;
void print_regs()
{
fprintf(stderr,"r0: %04X\n",regs[0]);
fprintf(stderr,"r1: %04X\n",regs[1]);
fprintf(stderr,"r2: %04X\n",regs[2]);
fprintf(stderr,"r3: %04X\n",regs[3]);
fprintf(stderr,"r4: %04X\n",regs[4]);
fprintf(stderr,"r5: %04X\n",regs[5]);
fprintf(stderr,"r6: %04X\n",regs[6]);
fprintf(stderr,"r7: %04X\n",regs[7]);
fprintf(stderr,"pc: %04X\n",pc);
}
void dump_regs(uint16_t *dump)
{
dump[0] = pc;
memcpy(dump+1,regs,NUM_REGISTERS*sizeof(uint16_t));
}
void load_regs(uint16_t *dump)
{
pc = dump[0];
memcpy(regs,dump+1,NUM_REGISTERS*sizeof(uint16_t));
}