diff --git a/Machines/Utility/ROMCatalogue.cpp b/Machines/Utility/ROMCatalogue.cpp index b217c000e..410ac798c 100644 --- a/Machines/Utility/ROMCatalogue.cpp +++ b/Machines/Utility/ROMCatalogue.cpp @@ -540,6 +540,10 @@ Description::Description(Name name) { *this = Description(name, "Electron", "the Electron MOS ROM v1.00", "os.rom", 16*1024, 0xbf63fb1fu); break; + case Name::AcornRISCOS319: + *this = Description(name, "Archimedes", "RISC OS v3.19", "ROM319", 2*1024*1024, 0x00c7a3d3u); + break; + case Name::MasterSystemJapaneseBIOS: *this = Description(name, "MasterSystem", "the Japanese Master System BIOS", "japanese-bios.sms", 8*1024, 0x48d44a13u); break; case Name::MasterSystemWesternBIOS: *this = Description(name, "MasterSystem", "the European/US Master System BIOS", "bios.sms", 8*1024, 0x0072ed54u); break; diff --git a/Machines/Utility/ROMCatalogue.hpp b/Machines/Utility/ROMCatalogue.hpp index 4cec1b0da..a672e9522 100644 --- a/Machines/Utility/ROMCatalogue.hpp +++ b/Machines/Utility/ROMCatalogue.hpp @@ -22,7 +22,7 @@ namespace ROM { enum Name { None, - // Acorn. + // Acorn Electron. AcornBASICII, AcornElectronMOS100, PRESADFSSlot1, @@ -31,6 +31,9 @@ enum Name { PRESAdvancedPlus6, Acorn1770DFS, + // Acorn Archimedes. + AcornRISCOS319, + // Amiga. AmigaKickstart10, AmigaKickstart11, diff --git a/OSBindings/Mac/Clock SignalTests/ARMDecoderTests.mm b/OSBindings/Mac/Clock SignalTests/ARMDecoderTests.mm index 352de1907..e0456aed6 100644 --- a/OSBindings/Mac/Clock SignalTests/ARMDecoderTests.mm +++ b/OSBindings/Mac/Clock SignalTests/ARMDecoderTests.mm @@ -9,6 +9,7 @@ #import #include "../../../InstructionSets/ARM/Executor.hpp" +#include "CSROMFetcher.hpp" using namespace InstructionSet::ARM; @@ -41,15 +42,6 @@ struct Memory { @implementation ARMDecoderTests -//- (void)testXYX { -// Executor scheduler; -// -// for(int c = 0; c < 65536; c++) { -// InstructionSet::ARM::dispatch(c << 16, scheduler); -// } -// InstructionSet::ARM::dispatch(0xEAE06900, scheduler); -//} - - (void)testBarrelShifterLogicalLeft { uint32_t value; uint32_t carry; @@ -195,4 +187,12 @@ struct Memory { XCTAssertEqual(carry, 0); } +- (void)testROM319 { + constexpr ROM::Name rom_name = ROM::Name::AcornRISCOS319; + ROM::Request request(rom_name); + const auto roms = CSROMFetcher()(request); + + NSLog(@""); +} + @end diff --git a/ROMImages/Archimedes/readme.txt b/ROMImages/Archimedes/readme.txt new file mode 100644 index 000000000..4dee93c33 --- /dev/null +++ b/ROMImages/Archimedes/readme.txt @@ -0,0 +1,5 @@ +ROM files would ordinarily go here; RISC OS remains a commercial product so these are not included with the emulator. + +Expected files: + +ROM319 — the RISC OS 3.19 ROM. \ No newline at end of file