1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-27 12:08:07 +11:00
collapseos/recipes/pcat
Virgil Dupras 8bf6258673 Add word TICKS
Adding a delay such as the 20ms one we have in AVR programmer's
initialization routine is tricky without a word like TICKS.

This implementation is highly inaccurate, but more accurate and
reliable than a "ballpark" DO..LOOP...
2020-09-25 17:31:06 -04:00
..
blk Add word TICKS 2020-09-25 17:31:06 -04:00
Makefile Move 8086 assembler from B730 to B30 2020-09-21 19:24:54 -04:00
mbr.fs Move 8086 assembler from B730 to B30 2020-09-21 19:24:54 -04:00
README.md pcat: write recipe README 2020-06-22 13:34:20 -04:00
xcomp.fs recipes/pcat: move recipe blocks into local overlay 2020-09-20 20:48:52 -04:00

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
  • qemu for emulation

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

You can run the built binary in qemu using make emul.

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...).