Files
goboy/memory/memory.go
2025-04-17 18:02:33 +02:00

36 lines
587 B
Go

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)
}
}