From a5ebac1b2983ae777102a9277e97c422a0e1ddcb Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Mon, 11 Mar 2024 22:19:14 -0400 Subject: [PATCH] Add RISC OS 3.11 to catalogue, while bug hunting. --- Machines/Acorn/Archimedes/Archimedes.cpp | 18 ++++++++++++------ Machines/Utility/ROMCatalogue.cpp | 3 +++ Machines/Utility/ROMCatalogue.hpp | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Machines/Acorn/Archimedes/Archimedes.cpp b/Machines/Acorn/Archimedes/Archimedes.cpp index 9ad72fe10..d2aa5716a 100644 --- a/Machines/Acorn/Archimedes/Archimedes.cpp +++ b/Machines/Acorn/Archimedes/Archimedes.cpp @@ -750,13 +750,13 @@ class ConcreteMachine: all.insert(instruction); -// if(executor_.pc() == 0x03801404) { -// printf(""); -// } -// log |= (executor_.pc() > 0 && executor_.pc() < 0x03800000); -// log |= executor_.pc() == 0x02000078; + if(executor_.pc() == 0x03801a0c) { + printf(""); + } +// log |= (executor_.pc() > 0x02000000 && executor_.pc() < 0x02000078); + log |= executor_.pc() == 0x03801980; // log |= (executor_.pc() > 0x03801000); -// log &= (executor_.pc() != 0x038019f8); + log &= executor_.pc() != 0x03801a0c; if(executor_.pc() == 0x02000078) { if(!all.empty()) { @@ -783,6 +783,8 @@ class ConcreteMachine: // if( // executor_.pc() > 0x038021d0 && +// last_r1 != executor_.registers()[1] +// || // ( // last_link != executor_.registers()[14] || // last_r0 != executor_.registers()[0] || @@ -797,6 +799,10 @@ class ConcreteMachine: // executor_.registers()[10], // executor_.registers()[1] // ); +// logger.info().append("%08x modified R1 to %08x", +// last_pc, +// executor_.registers()[1] +// ); // last_link = executor_.registers()[14]; // last_r0 = executor_.registers()[0]; // last_r10 = executor_.registers()[10]; diff --git a/Machines/Utility/ROMCatalogue.cpp b/Machines/Utility/ROMCatalogue.cpp index 410ac798c..dfc9f9827 100644 --- a/Machines/Utility/ROMCatalogue.cpp +++ b/Machines/Utility/ROMCatalogue.cpp @@ -540,6 +540,9 @@ Description::Description(Name name) { *this = Description(name, "Electron", "the Electron MOS ROM v1.00", "os.rom", 16*1024, 0xbf63fb1fu); break; + case Name::AcornRISCOS311: + *this = Description(name, "Archimedes", "RISC OS v3.11", "ROM311", 2*1024*1024, 0x54c0c963u); + break; case Name::AcornRISCOS319: *this = Description(name, "Archimedes", "RISC OS v3.19", "ROM319", 2*1024*1024, 0x00c7a3d3u); break; diff --git a/Machines/Utility/ROMCatalogue.hpp b/Machines/Utility/ROMCatalogue.hpp index a672e9522..51f3d8b72 100644 --- a/Machines/Utility/ROMCatalogue.hpp +++ b/Machines/Utility/ROMCatalogue.hpp @@ -32,6 +32,7 @@ enum Name { Acorn1770DFS, // Acorn Archimedes. + AcornRISCOS311, AcornRISCOS319, // Amiga.