Indentation formatting fix.
This commit is contained in:
+41
-41
@@ -5,54 +5,54 @@ import "core:log"
|
||||
// System struct, init, constants, fontset
|
||||
|
||||
System :: struct {
|
||||
// 4kb ram
|
||||
memory: [4096]u8,
|
||||
// 16 general purpose 8bit registers 0 -> F
|
||||
v: [16]u8,
|
||||
// Call stack, up to 16, 2 byte addresses.
|
||||
stack: [16]u16,
|
||||
// Stack pointer
|
||||
sp: u8,
|
||||
// index register
|
||||
i: u16,
|
||||
// PC program counter
|
||||
pc: u16,
|
||||
// 64x32-pixel monochrome display
|
||||
display: [32][64]u8,
|
||||
keypad: [16]bool,
|
||||
delay_timer: u8,
|
||||
sound_timer: u8,
|
||||
// 4kb ram
|
||||
memory: [4096]u8,
|
||||
// 16 general purpose 8bit registers 0 -> F
|
||||
v: [16]u8,
|
||||
// Call stack, up to 16, 2 byte addresses.
|
||||
stack: [16]u16,
|
||||
// Stack pointer
|
||||
sp: u8,
|
||||
// index register
|
||||
i: u16,
|
||||
// PC program counter
|
||||
pc: u16,
|
||||
// 64x32-pixel monochrome display
|
||||
display: [32][64]u8,
|
||||
keypad: [16]bool,
|
||||
delay_timer: u8,
|
||||
sound_timer: u8,
|
||||
}
|
||||
|
||||
FONT_SET := [80]u8 {
|
||||
0xF0, 0x90, 0x90, 0x90, 0xF0, // 0
|
||||
0x20, 0x60, 0x20, 0x20, 0x70, // 1
|
||||
0xF0, 0x10, 0xF0, 0x80, 0xF0, // 2
|
||||
0xF0, 0x10, 0xF0, 0x10, 0xF0, // 3
|
||||
0x90, 0x90, 0xF0, 0x10, 0x10, // 4
|
||||
0xF0, 0x80, 0xF0, 0x10, 0xF0, // 5
|
||||
0xF0, 0x80, 0xF0, 0x90, 0xF0, // 6
|
||||
0xF0, 0x10, 0x20, 0x40, 0x40, // 7
|
||||
0xF0, 0x90, 0xF0, 0x90, 0xF0, // 8
|
||||
0xF0, 0x90, 0xF0, 0x10, 0xF0, // 9
|
||||
0xF0, 0x90, 0xF0, 0x90, 0x90, // A
|
||||
0xE0, 0x90, 0xE0, 0x90, 0xE0, // B
|
||||
0xF0, 0x80, 0x80, 0x80, 0xF0, // C
|
||||
0xE0, 0x90, 0x90, 0x90, 0xE0, // D
|
||||
0xF0, 0x80, 0xF0, 0x80, 0xF0, // E
|
||||
0xF0, 0x80, 0xF0, 0x80, 0x80 // F
|
||||
0xF0, 0x90, 0x90, 0x90, 0xF0, // 0
|
||||
0x20, 0x60, 0x20, 0x20, 0x70, // 1
|
||||
0xF0, 0x10, 0xF0, 0x80, 0xF0, // 2
|
||||
0xF0, 0x10, 0xF0, 0x10, 0xF0, // 3
|
||||
0x90, 0x90, 0xF0, 0x10, 0x10, // 4
|
||||
0xF0, 0x80, 0xF0, 0x10, 0xF0, // 5
|
||||
0xF0, 0x80, 0xF0, 0x90, 0xF0, // 6
|
||||
0xF0, 0x10, 0x20, 0x40, 0x40, // 7
|
||||
0xF0, 0x90, 0xF0, 0x90, 0xF0, // 8
|
||||
0xF0, 0x90, 0xF0, 0x10, 0xF0, // 9
|
||||
0xF0, 0x90, 0xF0, 0x90, 0x90, // A
|
||||
0xE0, 0x90, 0xE0, 0x90, 0xE0, // B
|
||||
0xF0, 0x80, 0x80, 0x80, 0xF0, // C
|
||||
0xE0, 0x90, 0x90, 0x90, 0xE0, // D
|
||||
0xF0, 0x80, 0xF0, 0x80, 0xF0, // E
|
||||
0xF0, 0x80, 0xF0, 0x80, 0x80 // F
|
||||
}
|
||||
|
||||
init :: proc() -> System {
|
||||
log.info("Booting chip 8 cpu")
|
||||
log.info("Booting chip 8 cpu")
|
||||
|
||||
// Structs are zero initialized so timers, sp etc are good.
|
||||
s := System { pc = 0x200 }
|
||||
// Structs are zero initialized so timers, sp etc are good.
|
||||
s := System { pc = 0x200 }
|
||||
|
||||
// load fonts into the memory
|
||||
for v, i in FONT_SET {
|
||||
s.memory[i] = v
|
||||
}
|
||||
// load fonts into the memory
|
||||
for v, i in FONT_SET {
|
||||
s.memory[i] = v
|
||||
}
|
||||
|
||||
return s
|
||||
return s
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user