DOS Days

Can I Get a 286 To Run Like a 386 - Part 3

17th October 2021

In Part 2, we took a closer look at my newly-arrived LM103S 80286 motherboard and confirmed that it gets as far as the POST (Power-On Self Test).

In this part, my goal is to run some benchmarks on the board in its stock form. Before that though, I need to get to a C: prompt.

I initially tried the XT-IDE card from my XT restoration review but after installing and starting the 286, the expected Universal IDE boot menu failed to appear. Maybe you know why, but my understanding is that during the POST process there is a search made for other ROM BIOS' in a specific address range, and the Universal IDE one takes over at some point to give you your boot options when it's been detected. Anyway, out with that card and onto something more regular - I grabbed one of my 16-bit ISA "multi I/O" expansion cards and a CF card reader:

A generic Taiwanese "VIC-I" multi-I/O card and
a slot-install CompactFlash card adapter

With this in place and a FAT16-formatted CF card, all that was needed was to re-enter the CMOS Setup and input the hard disk geometry values as a 'Type 47' drive, which means "user-defined". I had the CF card set up as a single 500 MB partition, with CHS (Cylinder/Head/Sectors per Track) configuration of 992/16/63.

Incidentally, this BIOS is of course far too old to have an auto-detect feature for IDE hard disks. Because of this, I always write on my CF card's white label area how many cyls, heads and sectors per track it has so that information is conveniently available when I need it.

Once configured I went into the onboard diagnostics to confirm it was able to read the CF card properly:

It was very nice of AMI to include a little performance test into the BIOS - what a shame they removed this in subsequent BIOS versions. But anyway, all appears to be good. We're ready to reboot!

Good stuff, it booted to a C: prompt. By the way, ignore the 0 KB Extended memory size here - I am playing with some BIOS settings, and it seems these old AMI BIOSes show memory information in a weird way compared to more modern PCs. OK, now onto some synthetic benchmarks:

I have also run Wing Commander at this standard 12 MHz speed, since Origin specified 12 MHz as the minimum system requirements. While the game does play, it's really too slow to be any fun!

I took a guess at the in-flight frames per second and deemed it to be somewhere between 6 and 10. Not totally unplayable, but hard work.

Tweaking the 12 MHz

Without updating the board at all, let's see what the BIOS allows us to manipulate.

The settings that can be made are as follows:

  • BIOS shadow option: This moves, or rather, copies, both the main BIOS and the one in my Cirrus Logic SVGA card from ROM into an area of RAM (which is faster than ROM), so BIOS calls being made by software run more quickly. Changed from 'None' to 'Main & video BIOS'.
  • Scratch RAM option: Has no effect on performance, the scratch RAM area uses a handful of bytes to store the details of any 'Type 47' hard disk you have entered. It stores this either at the top of conventional memory at 640 KB, or uses memory address 300h to access it.
  • EMS size option: Specifies how much of the installed RAM is to be used as Expanded memory.
  • 0 Wait State option: Changes the number of wait states (basically deliberate delays) in reads and writes made to the RAM from 1 to 0. Changed from 'Disabled' to 'Enabled'
  • Memory relocation: If 'Enabled' this moves all higher memory above the 1 MB mark. If you wish to use any of this as UMBs (Upper Memory Blocks), you must have this set to 'Disabled'.

Now let's revisit the same benchmarks again:

This shows a 26% to 32% improvement in performance from the Landmark speed tests, PC Tools came out at 22% higher, Norton SI version 6 scored 38% higher, uDesigns Performance Analyzer came out at 17% higher, while Check-It 3.0 showed a 33% improvement, as did AGSI. NSSI scored 26% higher.

So on average, moving the RAM from 1 to 0 wait states and shadowing the main and video ROMs to RAM improved performance by almost a third. Comparing these 0 wait state (WS) results here against others from Page 2, it appears we get similar performance from a 12 MHz 0WS setting as we do running at 16 MHz with 1WS.

Is this improvement noticeable in Wing Commander? Yes, it is! I wish I could get a true FPS reading in DOS, but my interpretation of playing with both sets of settings back to back is that Wing Commander is more playable now, and certainly a lot closer to running the game on a slow 386DX-20, though I would still favour the 386DX-20 which is, in my opinion, the ideal speed for Wing Commander.

Right, that's it for now, but watch out for Part 4 where I get serious with some motherboard mods, including installing SIMM slots to more easily expand the memory and switch out that Siemens CPU for the Harris!