MCPcopy
hub / github.com/fogleman/nes / Read

Method Read

nes/memory.go:20–42  ·  view source on GitHub ↗
(address uint16)

Source from the content-addressed store, hash-verified

18}
19
20func (mem *cpuMemory) Read(address uint16) byte {
21 switch {
22 case address < 0x2000:
23 return mem.console.RAM[address%0x0800]
24 case address < 0x4000:
25 return mem.console.PPU.readRegister(0x2000 + address%8)
26 case address == 0x4014:
27 return mem.console.PPU.readRegister(address)
28 case address == 0x4015:
29 return mem.console.APU.readRegister(address)
30 case address == 0x4016:
31 return mem.console.Controller1.Read()
32 case address == 0x4017:
33 return mem.console.Controller2.Read()
34 case address < 0x6000:
35 // TODO: I/O registers
36 case address >= 0x6000:
37 return mem.console.Mapper.Read(address)
38 default:
39 log.Fatalf("unhandled cpu memory read at address: 0x%04X", address)
40 }
41 return 0
42}
43
44func (mem *cpuMemory) Write(address uint16, value byte) {
45 switch {

Callers

nothing calls this directly

Calls 2

ReadMethod · 0.65
readRegisterMethod · 0.45

Tested by

no test coverage detected