From 108d1ca29275b8310b232e780896ae3bab2f765b Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Mon, 26 Aug 2019 14:09:42 -0400 Subject: [PATCH] vcs: fixed readAddress() bug --- src/platform/vcs.ts | 2 ++ test/cli/testplatforms.js | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/platform/vcs.ts b/src/platform/vcs.ts index 2cf47ce8..8da33ded 100644 --- a/src/platform/vcs.ts +++ b/src/platform/vcs.ts @@ -209,6 +209,8 @@ class VCSPlatform extends BasePlatform { // TODO: shouldn't have to do this when debugging if (this.lastBreakState && addr >= 0x80 && addr < 0x100) return this.getRAMForState(this.lastBreakState)[addr & 0x7f]; + else if ((addr & 0x1280) === 0x280) + return 0; // don't read PIA else return Javatari.room.console.readAddress(addr); } diff --git a/test/cli/testplatforms.js b/test/cli/testplatforms.js index 92a672e7..a3b4900a 100644 --- a/test/cli/testplatforms.js +++ b/test/cli/testplatforms.js @@ -148,6 +148,11 @@ function testPlatform(platid, romname, maxframes, callback) { assert.equal(maxframes, rec.loadFrame(maxframes)); var state2 = platform.saveState(); assert.deepEqual(state1, state2); + // test memory reads not clearing stuff + for (var i=0; i<=0xffff; i++) + if (platform.readAddress) platform.readAddress(i); + var state3 = platform.saveState(); + assert.deepEqual(state2, state3); // test debug info var debugs = platform.getDebugCategories(); for (var dcat of debugs) {