Collapse OS Documentation Browser

doc/hw/8086/pcat.txt

../ pcat.txt

PC/AT

PC-compatible machines need no introduction. They are one of the
most popular machines of all time. Collapse OS has a 8086
assembler and has boot code allowing it to run on a
PC/AT-compatible machine, using BIOS interrupts in real mode.
Collapse OS always runs in real mode.

In this recipe, we will compile Collapse OS and write it to a
USB drive that is bootable on a modern PC-compatible machine.

Gathering parts

* A modern PC-compatible machine that can boot from a USB drive.
* A USB drive

Build the binary

Running "make" in /arch/8086/pcat will yield:

* mbr.bin: a 512 byte binary that goes at the beginning of the
           disk
* os.bin: 8086 Collapse OS binary
* disk.bin: a concatenation of the above, with "blkfs" appended
            to it starting at $2000.

disk.bin is what goes on the USB drive.

This binary has BLK and AT-XY support, which means you have disk
I/Os and can run VE.

Emulation

You can run the built binary in Collapse OS' 8086 emulator using
"make emul".

The 8086 emulator is barbone. If you prefer to use it on a more
realistic setting, use QEMU. The command is:

    qemu-system-i386 -drive file=disk.bin,if=floppy,format=raw

Running on a modern PC

First, copy disk.bin onto your USB drive. For example, on an
OpenBSD machine, it could look like:

    doas dd if=disk.bin of=/dev/sd1c

Your USB drive is now BIOS-bootable. Boot your computer and
enter your BIOS setup to make sure that "legacy boot" (non-EFI
boot, that is, BIOS boot) is enabled. Configure your boot device
priority to ensure that the USB drive has a chance to boot.

Reboot, you have Collapse OS. Boot is of course instantaneous
(we're not used to this with modern software...).

Collapse OS and its documentation are created by Virgil Dupras and licensed under the GNU GPL v3.

This documentation browser by James Stanley. Please report bugs on github or to james@incoherency.co.uk.

This page generated at 2024-12-25 21:05:04 from documentation in CollapseOS snapshot 20230427.