basic memory and cpu

This commit is contained in:
radumacocian
2025-04-17 18:02:33 +02:00
parent e955649be0
commit 6948e84b32
8 changed files with 138 additions and 2 deletions

35
memory/memory.go Normal file
View File

@@ -0,0 +1,35 @@
package memory
import (
"radu.macocian.me/goboy/errorHandling"
)
var memory = new([64000]byte)
func Read(addr int) []byte {
checkInside(addr)
checkInside(addr + 8)
return memory[addr : addr+9]
}
func Write(addr int, val [8]byte) {
checkInside(addr)
for i := 0; i < 8; i++ {
memory[addr+i] = val[i]
}
}
func WriteAll(addr int, val []byte) {
checkInside(addr)
checkInside(addr + len(val))
for b := 0; b < len(val); b++ {
memory[addr+b] = val[b]
}
}
func checkInside(addr int) {
if addr < 0 || addr >= len(memory) {
panic(errorHandling.OutOfMemoryBoundsError)
}
}