CPU core still needs finishing

This commit is contained in:
2025-02-04 23:16:19 +01:00
parent e6f241bcae
commit de77a0a9f5
4 changed files with 79 additions and 59 deletions

View File

@@ -37,6 +37,23 @@ 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 out = read_mem16(cpu, cpu->pc) | (read_mem16(cpu, cpu->pc + 2) << 16);
cpu->pc += 4;
if (out >= MEM_SIZE) {
out = MEM_SIZE - 1;
}
return out;
}
uint8_t read_reg(CPU *cpu) {
uint8_t out = read_mem(cpu, cpu->pc++);
if (out >= REG_COUNT) {
out = REG_COUNT - 1;
}
return out;
}
uint8_t write_mem16(CPU *cpu, uint32_t addr, uint16_t value) {
uint8_t status = write_mem(cpu, addr, value & 0xFF);
if (status) {