The fourth BluMach alpha, 0.1.0-alpha.4, is out. A new brand joins the catalogue, TriGem, with its SX386M board, along with four more Olivetti M-series models. To prepare it I went through the BIOS of almost all these machines, and that turned up several bugs that had been in the emulation for a while.

Like the previous ones, it’s experimental. A machine that boots isn’t necessarily a machine that works well, and each machine’s page notes what I’ve tested and what I haven’t.

Before you download: BluMach does not include ROMs, BIOS files or operating systems. You’ll have to obtain them yourself; they are not distributed with the program.

New machines, unlocked and fixed

  • TriGem SX386M, a 386SX board at 16 MHz that TriGem built for other brands. It’s known inside the Emerson Elite SX386/16 and the CMS Enhancements ESP SX386M. It has the same Headland chipset as the Olivetti PCS 386SX, but it has nothing to do with Olivetti.
  • Olivetti M250 and M250 E, 286 desktops with integrated VGA video. When you create one, you choose one of the Conner disks listed in the table in its Setup.
  • Olivetti M280, a 286 with a GO723 or GO717 controller.
  • Olivetti M380 and M380 C, 386DX at 16 MHz with a GO717 controller.

TriGem appears in the catalogue with the company’s history and the SX386 family.

GO disk controllers

The M28, M280 and M380 don’t have the disk controller on the board, but on an Olivetti card: the GO714 in the M28, the GO714, GO717 or GO723 in the M280, and the GO717 in the M380 (which also took the GO720 ESDI, not emulated). The M250 and M250 E, on the other hand, have it integrated on the board, as an IDE interface. The three GO cards are now in BluMach, built on top of the WD1003 emulation. The jumpers can’t be changed: the cards stay fixed at the primary address, and the machine provides the floppy drive.

While testing the M380, a controller error appeared after a warm restart that only went away by switching off and on. It had happened to me a while ago with the PCS 286. The card wasn’t receiving the bus reset signal; now it resets as on the real machine.

What came out of the BIOSes

  • M380. Its BIOS talks to the keyboard controller with an extended Olivetti command set and stores the configuration in a small memory inside it. The emulated version left this out, so the configuration always came up as invalid. Now it’s saved to a file inside the virtual machine. The memory hidden by the address-space hole above 640 KB was also in the wrong place: the BIOS looks for it at a specific address and counts it as “dedicated memory”. With 4 MB, the POST now shows the same as the machine: 640 KB base, 3072 KB extended and 384 KB dedicated.
  • The M380 Setup. Its BIOS has no Setup, and I don’t have the M380 utilities floppy. The SETUP program on the M280’s System Test floppy works on it, and with that I installed MS-DOS 3.30 on a GO717 disk.
  • M250. There was a permanent memory alias that doesn’t exist on the machine: the BIOS only writes to those addresses to size the memory. It took away 128 KB of conventional memory. On top of that, an Amstrad video BIOS was loaded instead of Olivetti’s. Now the split of the 384 KB in the gap follows the register the BIOS uses, and the disk table comes from the BIOS itself: type 2 has 776 cylinders, not the 766 given in the service guide.
  • PCS 286 and Dario 286. The same memory alias was always on. On these boards it does exist, but only with 256 Kbit chips: that’s how the BIOS tells the memory chips apart. With 2 or 4 MB, the BIOS thought it had the wrong memory. Now the alias depends on the configuration the BIOS sends to the keyboard controller.
  • M280. It has no Setup in the BIOS either: it’s on the System Test 2.02 floppy. The machine page now explains this.
  • TriGem SX386M. The BIOS switches between 16 and 8 MHz with Ctrl+Alt+keypad − and Ctrl+Alt+keypad +, or with the “Start-up Speed” option in the Setup. BluMach ignored it and the machine always ran at 16 MHz. Slow mode now works, though approximately: it slows the memory down instead of lowering the processor clock.

All these disassembled BIOSes stay in my library, along with each machine’s notes, for the next time something needs looking at.

Catalogue

Olivetti’s Prodest family page finally has its history and its table of models: the PC 128 and PC 128 S, which were a Thomson and an Acorn with the Olivetti brand and were sold only in Italy, and the PC 1 and PC 1 HD, which were PC compatibles designed by Olivetti. The pages for the M250, M280, M380, PCS 286, Dario 286 and SX386M record what I’ve found and what’s left to do, in all five languages.

What has been checked and what hasn’t

“Checked” means I’ve seen it work myself, not that the emulation is exact. The automated tests and the Windows, Linux and macOS builds have passed, but I haven’t yet repeated several of this release’s fixes by hand.

MachineCheckedPending
TriGem SX386MBoots when created from its page; MS-DOS 6.22 with an earlier buildHard disk from the page, slow mode, shadow and the different memory sizes
M380POST with 4096 KB, configuration saved with the M280 SETUP, and MS-DOS 3.30 booting from the GO717Warm restart after SETUP
M250Cold boot with an earlier buildPOST, Setup and System Test with the memory and video fixes; hard disk
M250 ENothing yet with this releaseEverything: POST, Setup, System Test, restart, clock and disk
M280POST and keyboard with an earlier buildSaving the Setup, which it can't do yet; DOS boot and GO723 disk
PCS 286 and Dario 286Tested thoroughly in earlier releasesPOST with 1, 2 and 4 MB after the memory fix

Download

The release is on the alpha.4 page on GitHub, for 64-bit Windows only. Unzip it into a new folder and open BluMach.exe. The release guide explains the installation, the firmware each machine asks for and the known limitations.

If something fails, open an issue on GitHub with the version, the machine, the BIOS, the memory, the disk and the steps to reproduce it.