Sync to tower
This commit is contained in:
21
cpu/memory.c
21
cpu/memory.c
@@ -37,7 +37,7 @@ uint32_t read_mem32(CPU *cpu, uint32_t addr) {
|
||||
return read_mem16(cpu, addr) | (read_mem16(cpu, addr + 2) << 16);
|
||||
}
|
||||
|
||||
uint32_t read_addr(CPU *cpu) {
|
||||
uint32_t read_address(CPU *cpu) {
|
||||
uint32_t out = read_mem16(cpu, cpu->pc) | (read_mem16(cpu, cpu->pc + 2) << 16);
|
||||
cpu->pc += 4;
|
||||
if (out >= MEM_SIZE) {
|
||||
@@ -46,14 +46,29 @@ uint32_t read_addr(CPU *cpu) {
|
||||
return out;
|
||||
}
|
||||
|
||||
uint8_t read_reg(CPU *cpu) {
|
||||
uint8_t read_reg_number(CPU *cpu) {
|
||||
uint8_t out = read_mem(cpu, cpu->pc++);
|
||||
if (out >= REG_COUNT) {
|
||||
out = REG_COUNT - 1;
|
||||
return 0;
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
uint8_t read_reg(CPU *cpu, uint8_t number) {
|
||||
if (number >= REG_COUNT) {
|
||||
return 0;
|
||||
}
|
||||
return cpu->regs[number];
|
||||
}
|
||||
|
||||
uint8_t write_reg(CPU *cpu, uint8_t number, uint8_t value) {
|
||||
if (number >= REG_COUNT) {
|
||||
return 1;
|
||||
}
|
||||
cpu->regs[number] = value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t write_mem16(CPU *cpu, uint32_t addr, uint16_t value) {
|
||||
uint8_t status = write_mem(cpu, addr, value & 0xFF);
|
||||
if (status) {
|
||||
|
Reference in New Issue
Block a user