diff --git a/Machines/PCCompatible/PCCompatible.cpp b/Machines/PCCompatible/PCCompatible.cpp index 924756029..80288da8e 100644 --- a/Machines/PCCompatible/PCCompatible.cpp +++ b/Machines/PCCompatible/PCCompatible.cpp @@ -25,9 +25,18 @@ class ConcreteMachine: ) { // This is actually a MIPS count; try 3 million. set_clock_rate(3'000'000); + + // Fetch the BIOS. [8088 only, for now] + ROM::Request request = ROM::Request(ROM::Name::PCCompatibleGLaBIOS); + auto roms = rom_fetcher(request); + if(!request.validate(roms)) { + throw ROMMachine::Error::MissingROMs; + } } void run_for([[maybe_unused]] const Cycles cycles) override {} + + private: }; diff --git a/Machines/Utility/ROMCatalogue.cpp b/Machines/Utility/ROMCatalogue.cpp index 930a0d701..0d6a42f63 100644 --- a/Machines/Utility/ROMCatalogue.cpp +++ b/Machines/Utility/ROMCatalogue.cpp @@ -567,6 +567,8 @@ Description::Description(Name name) { case Name::OricMicrodisc: *this = Description(name, "Oric", "the Oric Microdisc ROM", "microdisc.rom", 8*1024, 0xa9664a9cu); break; case Name::Oric8DOSBoot: *this = Description(name, "Oric", "the 8DOS boot ROM", "8dos.rom", 512, 0x49a74c06u); break; + case Name::PCCompatibleGLaBIOS: *this = Description(name, "PCCompatible", "8088 GLaBIOS 0.2.5", "GLABIOS_0.2.5_8T.ROM", 8 * 1024, 0x9576944cu); break; + // TODO: CRCs below are incomplete, at best. case Name::MSXGenericBIOS: *this = Description(name, "MSX", "a generix MSX BIOS", "msx.rom", 32*1024, 0x94ee12f3u); break; case Name::MSXJapaneseBIOS: *this = Description(name, "MSX", "a Japanese MSX BIOS", "msx-japanese.rom", 32*1024, 0xee229390u); break; diff --git a/Machines/Utility/ROMCatalogue.hpp b/Machines/Utility/ROMCatalogue.hpp index 2580ad70c..54571bb98 100644 --- a/Machines/Utility/ROMCatalogue.hpp +++ b/Machines/Utility/ROMCatalogue.hpp @@ -132,6 +132,9 @@ enum Name { OricMicrodisc, Oric8DOSBoot, + // PCCompatible. + PCCompatibleGLaBIOS, + // Sinclair QL. SinclairQLJS, diff --git a/ROMImages/PCCompatible/GLABIOS_0.2.5_8T.ROM b/ROMImages/PCCompatible/GLABIOS_0.2.5_8T.ROM new file mode 100644 index 000000000..717a289b0 Binary files /dev/null and b/ROMImages/PCCompatible/GLABIOS_0.2.5_8T.ROM differ diff --git a/ROMImages/PCCompatible/readme.txt b/ROMImages/PCCompatible/readme.txt new file mode 100644 index 000000000..e37f706f3 --- /dev/null +++ b/ROMImages/PCCompatible/readme.txt @@ -0,0 +1,5 @@ +Expected files: + +GLABIOS_0.2.5_8T.ROM — the 8088 GlaBIOS ROM. + +GlaBIOS is an open-source GPLv3 alternative BIOS for XT clones, available from https://glabios.org/ \ No newline at end of file