collapseos/recipes/pcat/README.md

53 lines
1.7 KiB
Markdown
Raw Normal View History

2020-06-22 13:32:50 -04:00
# PC/AT
2020-06-12 14:01:24 -04:00
2020-06-22 13:32:50 -04:00
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 this folder with 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
`0x2000`.
`disk.bin` is what goes on the drive.
This binary has `BLK` and `AT-XY` support, which means you have disk I/Os and
can run `VE`.
## Emulation
2020-10-25 10:27:52 -04:00
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
2020-06-22 13:32:50 -04:00
## 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...).