MCPcopy Index your code
hub / github.com/fogleman/nes / Write

Method Write

nes/memory.go:44–68  ·  view source on GitHub ↗
(address uint16, value byte)

Source from the content-addressed store, hash-verified

42}
43
44func (mem *cpuMemory) Write(address uint16, value byte) {
45 switch {
46 case address < 0x2000:
47 mem.console.RAM[address%0x0800] = value
48 case address < 0x4000:
49 mem.console.PPU.writeRegister(0x2000+address%8, value)
50 case address < 0x4014:
51 mem.console.APU.writeRegister(address, value)
52 case address == 0x4014:
53 mem.console.PPU.writeRegister(address, value)
54 case address == 0x4015:
55 mem.console.APU.writeRegister(address, value)
56 case address == 0x4016:
57 mem.console.Controller1.Write(value)
58 mem.console.Controller2.Write(value)
59 case address == 0x4017:
60 mem.console.APU.writeRegister(address, value)
61 case address < 0x6000:
62 // TODO: I/O registers
63 case address >= 0x6000:
64 mem.console.Mapper.Write(address, value)
65 default:
66 log.Fatalf("unhandled cpu memory write at address: 0x%04X", address)
67 }
68}
69
70// PPU Memory Map
71

Callers

nothing calls this directly

Calls 2

WriteMethod · 0.65
writeRegisterMethod · 0.45

Tested by

no test coverage detected