Multiboot
and Partition Manager
The following programs are
free to download and use (read disclamer at bottom).
Programs require DOS (e.g. FreeDOS)
for installation, but then function OS independent.
- Why these bootmanagers?
- Multiboot was introduced by IBM with OS/2 around 1990. It introduced extra partition
types to hide conflicting inactive partitions. That Bootmanger needed however a separate
primary partition, leaving only 3 (in most cases 2 when an extended partition is
required) remaining bootable partitions. This made it not very popular. Various other
bootmanagers came on the market with little popularity, caused by incompatability or
difficulty in use. Often they do not hide inactive conflicting partitions, causing wrong
drive letter assignment (e.g. with DOS and DOS related systems).
- Windows-NT and up have its own simple multiboot manager, but version 10 also creates by
default a separate primary partition for it. With some tricks this could be combined
with the system partition, but makes it dependent of this operating system. It does
not hide conflicting primary partitions.
- Linux also installs a multiboot manager (e.g. GRUB) partly in the MBR and the remaining
sectors of track 0, but is in stage 2 also depending on some files in the Linux system
partition. GRUB however may also be installed in the Linux system partition, but makes
the multiboot function depending on this system. It also does not hide conflicting
primary partitions.
- In my opinion a Multiboot manager should be self supporting and file format independent,
so in case a partition becomes inoperable, requires OS upgrade or replacement, should
not influence booting other installed OS's. Also it should not require a separate
primary partition, allow boot of any desired operating system and be user friendly,
also at personalisation. The MBR already has the required means for multiboot if
3 or 4 choices suffice. The following Multiboot managers use these according to the
standards as described in IBM DOS 2.1 Technical Reference. They require DOS for install,
but are autonomous in use. By using only 8086 instructions, they are compatible
with all known ancient like IBM 5150 upto modern multicore systems. They hide any
conflicting primary partition automatic, respect Microsofts Windows-NT signature,
support LBA, partitions larger than 2 GB, disks larger than 8GB, but only up to 2TB.
They are however not compatible with GPT and Microsoft 'Bit Locker'. Although compliant
with the specifications, it appeared that it causes Windows 10 to misbehave. Therefore
an adapted version and option is added. Where possible however, I do advise the original
version.
- Tiny Boot Manager © (Nov 2021)
(5KB)
- Offers a choice of up to 4 operating systems (primary
partitions on disk) or other devices to start at system boot. If an extended partition with
logical volumes is used, it also allows you to boot from a 4th partition through chain boot of
the first logical volume. This works fine with Linux, but is incompatible with DOS and Windows.
It makes use of hiding partitions as introduced with IBM OS/2 boot manager. It supports disks
upto 2 TB. Tiny boot manager itself needs no partition nor extra disk space (it only replaces
the boot code in the single MBR sector and optionally the EBR sector for chain boot; it leaves
the NT signature, partition table and boot signature untouched).
Read more details.....
Note: With Windows 10 however it apears to prevent entering Sleep-mode, the default power off
mode (disabling it solves this issue) and also updates requiring a reboot, apear to fail
(disabling multiboot during such update can solve this). A modified version "TBootSel"
is added to solve this as well.
-
T0-DOS (T0Format + T0DOSMnu + T0Drive) ©
(Sep 2021) (7KB)
- An enhanced variant to "Tiny Boot Manager" with
mainly the same primary features and compatabilities. It allows however to also start
DOS. An unmodified IBM PC-DOS 1.10 (or 1.0) can be copied
in and started from the (generally unused) space of track 0 on your fixed disk as if it were a
floppy and is made fully functional for you to run your own DOS 1 compatible utilities! The set
of programs are designed to work on computers ranging from ancient PC's up to the current
generation of IBM PC compatibles.
- T0Format - The installation program. It replaces the code in the MBR
and formats the remainder unused sectors of track 0 on your fixed disk. Existing partitions on
your disk remain untouched. The code in the MBR (track 0, sector 1) handles all partition- and
DOS boots autonomous and is fully compatible with all known operating systems. The remaining
max. 62 sectors of track 0 are formatted as a FAT-12 volume of max. 28 KB (The Menu program
needs 2 KB and PC-DOS 1.10 system files require 13.5 KB of that). The code to make DOS think
it runs from a 160 KB floppy is hidden from DOS in the FAT tables, leaving as much space as
possible for DOS and other files and utilities. PC-DOS 1 was choosen, because this is the only
version that fits in this limited space.
The package is designed to work on all (and is
tested on various) PC generations. It does however not support GPT which is needed for
partitions >2 TB.
Note: An option is build in for compatability with Windows 10 as
described above and behaves essentialy the same. However multiboot can then not be disabled.
- T0-DOS
Menu- An included DOS utility, which is run by default from T0-DOS, which makes the
multi-boot function more user friendly. It requires 2 KB of track 0. It enables by menu choice
at system boot the start of any installed operating system from up to 4 partitions or start
PC-DOS 1. An optional timeout feature automatically boots your default choice. The menu is fully
configurable. This program will work with or without DOS 1 system files installed (e.g. on disks
of old PC's with insufficient space in track 0 for the DOS system files).
- T0-Drive -
A DOS device driver that gives access to the FAT-12 volume on track 0 as an extra drive. It is
included to allow users to manage the contents of this volume from a DOS diskette or USB-stick.
(DOS 1 itself only supports 5¼ inch floppies of 160KB and 320KB which are rare today)
The driver supports all DOS versions (except version 1), including the latest FreeDOS.
Read more details.....
IBM PC-DOS 1.1
system files can be downloaded here. (11KB)
- Partition
Table Tiny Editor © (Oct 2021)
(7KB)
- A super small (only 6 KB), yet powerfull program to create or manage
classic partition tables on disk. It is thereby a replacement for FDISK, as was included
with every DOS version. It is however distinctive as it is DOS version independent and
supports also more recent techniques. It therefore can be used on the ancient IBM PC-5150
from 1980 with Intel 8088, HDA and 10MB disk up to the most advanced PC with multicore 64
bit processor, XGA, SATA, 2 TB LBA, AF and SSD. It recognizes, but does not support GPT.
By means of a full-screen menu (see picture) with an overview of the disk content,
partitions can be adjusted in full detail. As it works on sector level and shows the
recognized content of the volume boot sector, it can also be helpfull to repair or
reconstruct partition tables. Build in checks prevent the user from invalid table changes,
like overlap or boundary crossing. Changes can be prepared without any change to the disk
content. When satisfied with all changes prepared, a push on 'Apply changes' will finally
apply all these changes to disk.
Because of its size and compatibility it is also perfectly suited to use under T0-DOS (see
previous chapter above). It makes it possible to manage partitions on the system disks
without the need of diskette, CD or USB stick as if it were an extension of BIOS.
Read more details.....
- Microchip PIC Math routines
- Some assembler routines I like to share, because I could not find any that met my needs.
Some made errors, took too much time or lacked functionallity. With some math operations
an option for rounding can be usefull.:
- Square a 10 bit unsigned integer: square10,
56 instructions, 56 cycles
- Square a 12 bit unsigned integer: square12,
77 instructions, 78 cycles
- Square root a 32 bit integer (with optional rounding): sqroot32, 45 (+10) instructions, 631 (+7) cycles max,
- Interface routines for the TM1637 display driver: TM1637
To unpack tar.gzip
files under Windows the freeware utility from 7-Zip can be used.
Warning! - Although thoroughly tested and in use
on various computers by me, you may only use these programs at your own risk.
I can not be held
responsible for any damage or data loss. Any feedback however will be appreciated.