mirror of
https://github.com/macocianradu/goboy.git
synced 2026-03-18 13:00:07 +00:00
36 lines
587 B
Go
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)
|
|
}
|
|
}
|