Add some RAM and a stack
This commit is contained in:
55
gb/ram.go
Normal file
55
gb/ram.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package gb
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
type RAM struct {
|
||||
WRAM [0x2000]byte
|
||||
HRAM [0x80]byte
|
||||
}
|
||||
|
||||
func NewRAM() *RAM {
|
||||
ram := RAM{}
|
||||
|
||||
return &ram
|
||||
}
|
||||
|
||||
func (ram *RAM) WRAMRead(address uint16) byte {
|
||||
// TODO(m): Understand this line
|
||||
address -= 0xC000
|
||||
|
||||
if address >= 0x2000 {
|
||||
fmt.Printf("Reading from WRAM: invalid address %X", address+0xC000)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
return ram.WRAM[address]
|
||||
}
|
||||
|
||||
func (ram *RAM) WRAMWrite(address uint16, value byte) {
|
||||
// TODO(m): Understand this line
|
||||
address -= 0xC000
|
||||
|
||||
if address >= 0x2000 {
|
||||
fmt.Printf("Writing to WRAM: invalid address %X", address)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
ram.WRAM[address] = value
|
||||
}
|
||||
|
||||
func (ram *RAM) HRAMRead(address uint16) byte {
|
||||
// TODO(m): Understand this line
|
||||
address -= 0xFF80
|
||||
|
||||
return ram.HRAM[address]
|
||||
}
|
||||
|
||||
func (ram *RAM) HRAMWrite(address uint16, value byte) {
|
||||
// TODO(m): Understand this line
|
||||
address -= 0xFF80
|
||||
|
||||
ram.HRAM[address] = value
|
||||
}
|
||||
Reference in New Issue
Block a user