diff --git a/src/memory.d b/src/memory.d index 33e911f..5aa3a57 100644 --- a/src/memory.d +++ b/src/memory.d @@ -253,14 +253,15 @@ class AddressDecoder writePages[0xC0] = &switches.write; } - ubyte read(ushort addr) + ubyte opIndex(ushort addr) { return readPages[addr >> 8](addr); } - void write(ushort addr, ubyte val) + ubyte opIndexAssign(ubyte val, ushort addr) { writePages[addr >> 8](addr, val); + return val; } // XXX address read only/write only code diff --git a/src/video/scanner.d b/src/video/scanner.d index 13243a4..f936bde 100644 --- a/src/video/scanner.d +++ b/src/video/scanner.d @@ -256,8 +256,8 @@ class Scanner_II : Scanner { uint clock = vidCycle.val(); if (((clock % 65) < 25) && (mode != Mode.HIRES)) - return decoder.read( - cast(ushort)(0x1400 + (page * 0x400) + scanOffset(clock, mode))); + return decoder[ + cast(ushort)(0x1400 + (page * 0x400) + scanOffset(clock, mode))]; else return displayMem[mode][page].data[scanOffset(clock, mode)]; }