So after the "A3000 repair advice" thread elsewhere on the forums where the CMOS needed to be replaced, I got curious about how many modules were required in order to get the RISC OS 3.11 Desktop minimally working on a machine where every module had been *Unplug'ged, not counting the modules that RISC OS automatically reinitialises on every bootup.
Before I start, though, an obligatory notice: This is just for entertainment purposes. Don't actually use this for getting your machine up and running! If you're in a situation where you need to use this, just do a DEL-power on to reset the CMOS - this will auto-insert all the ROM modules and configure all settings to sensible values.
With that said...
These first seven modules are needed to get the Desktop loading up without any error messages, in order of usage during the desktop load sequence:
- Desktop - obviously.
- WindowManager - the Desktop won't even go into a graphics mode without this module, perhaps unsurprisingly.
- ColourTrans - this one surprised me, because on RISC OS 2 the module was on a separate disc, so I assumed the RO3 Desktop would continue to not need it for startup.
- FontManager - without this the Desktop will try to display an error message, but the error box doesn't contain any message.
- Filer - the Desktop uses the *Filer_Boot command for something, so this module is necessary.
- FPEmulator - this was surprising for the same reason as ColourTrans! I'm not entirely certain what floating-point operations the Desktop would be using, but it apparently does because it fails with either "undefined instruction" (the first time) or "Use *Desktop to start Filer" (on subsequent attempts without rebooting) without this. (If your machine has an FPA10, you don't need this module.) [edit: Turns out this is only true on Arculator - on real hardware, you require FPEmulator!]
- Obey - the Desktop wants to *Obey something, so this module is needed.
- SpriteExtend - With this in place, we finally have a mouse pointer!
Let's get ourselves a method of being able to run *Commands without rebooting. To do that we need to load two or three more modules, so that Task Manager will load:
- TaskManager - the module that provides the Acorn icon on the far right of the icon bar.
- ROMFonts - without this module, TaskManager won't load correctly. You'll also notice after loading this module that the Desktop starts attempting to display its splash screen, but fails.
- ShellCLI (optional) - So technically you can do it with just two modules (with the first two, you can use the Exit command to run more *Commands) but this one will allow us to use the familiar F12 key to get a command-line prompt.
So that's 11 modules to get a minimally-usable Desktop - but you still can't actually do much with this. So let's at the very least get our Apps icon working, along with !Edit and !Configure.
- ResourceFiler - the module that allows us to access the Resources filing system via the Filer. (Note that ResourceFS is one of the modules that's automatically reinit'd by RISC OS on every bootup, so we don't need to worry about that one.)
- !Configure - the module that every teacher unplugged and a select few pupils knew how to reinit again.
- Squash - for some reason, !Configure requires this module in order to load. *shrugs*
- Basic - used to run an "Export" BASIC file in ResourceFS which allows !Edit to read and write BASIC files. Without this module, !Edit will refuse to load.
...okay technically we're cheating a bit here because while we can now load !Edit and !Configure, the !Run files for these applications will also re-initialise a few other modules for us:
- !Edit - yep, !Edit reinits its own module. To be fair, it's kind of an important tool.
- SharedCLibrary - !Configure reinits this module when it loads. I have no idea why Acorn didn't decide that it should do the same for Squash, but there you go.
Okay let's finally fix three more issues that might be bugging you but aren't technically necessary for a minimal desktop:
- Draw - loading this module will finally allow the splash screen to display properly. It also fixes the Info window in the Task Manager menu.
- PaletteUtil - gives us the good old Palette utility next to the Task Manager.
- TaskWindow - allows us to use the Task Window option in the Task Manager menu to run *Commands in an !Edit window.