mirror of
https://github.com/macocianradu/goboy.git
synced 2026-03-18 13:00:07 +00:00
basic memory and cpu
This commit is contained in:
35
memory/memory.go
Normal file
35
memory/memory.go
Normal 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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user