Sunday, March 29, 2015

Booting MS-DOS 3.1 on old Sirius 1 computers without the Universal Boot-ROM

Some internet sources claim that for booting MS-DOS 3.1 on the Sirius 1 the machine has to be equipped with the Universal Boot ROM or an ISSUE Boot ROM which is based on the Universal.

This is not the whole truth. Basically the only limitation in the original Boot ROM (also called P1 Boot ROM) that prevents it from starting DOS 3.1 is that it was only capable of loading operating
systems smaller than 64k. MS-DOS 3.1 has a size of >75k (Sirius 1 Version incl. BIOS).

The Boot ROM of the hard disk machines (at least the ones I have) are on the other hand already capable of loading system files >64k even without Universal Boot ROMs. This is due to the fact that the additional HD drivers often made even the old MS-DOS versions bigger than 64k. So these machines will boot 3.1 without any problem.

To overcome the 64k limitation for P1 ROM equipped machines I came up with a simple solution:

Sirius system files also contain the BIOS and one or two charsets. Especially the charset is very good compressible with RLE encoding. This led to the development of a runtime RLE decompression tool for the operating system. After compressing MS-DOS 3.1 its size was reduced to 60k. The compressed OS contains an extraction routine which extracts the original 75k system to RAM on-the-fly and then starts the OS. MS-DOS won't recognize the difference. This way 3.1 also starts from old Boot ROMs. Besides you will save some space on system disks due to the smaller file size. However, there will be no impact on the RAM requirements.

Basically this tool can be used to compress all MS-DOS versions for the Sirius. In general it would even work with CP/M-86 system files. So if you have the time, you could extract a CP/M-86 system file to MS-DOS, compress it, transfer it back to CP/M-86 and create a boot disk.

The tool including source code can be downloaded here. There is a compressed version of MS-DOS 3.1 for the Sirius 1 included (dos31rle.SYS), ready to use.

https://drive.google.com/file/d/0B7ohycwCnaQbbENua2s0enl2R1k/view?usp=sharing&resourcekey=0-CRxHMFmJWjxOxunZ3aaKlA

Axel

2 comments:

  1. sys a: from a standard ms-dos 2.11 bootdisk. uncompress the dos31rle.sys to msdos.sys and copy to the new systemdisk, but is does not work. Victor show X 01. Can you help ? thx tt0ny

    ReplyDelete
  2. Hi, sorry for my late reply. "X 01" is a "no sync" error. So there seems to be something wrong with the disk (or the disk drive). Try again with another disk. Error codes see here:
    http://www.actsirius1.co.uk/pages/error.htm

    Anyway, why did you uncompress the system file? The intention is to use it in compressed state so that old Boot ROMs can start it. The uncompression is done automatically in RAM during boot process.

    ReplyDelete