16bit.io

Projects and notes

Building and embedding bootable floppy disk images in the firmware

Within SeaBIOS it is possible to embed either an LZMA compressed, or uncompressed bootable floppy disk image (Up to 2.88MB!). This is extremely cool when combined with ultra-small Assembly based OS's, such as MenuetOS or Kolibri. Kolibri is an actively developed open-source 32-bit fork of the Menuet OS before the project went closed source. Unfortunately I wasn't able to get Kolibri to boot successfully, however Minuet64 worked great for me. Both of these images clock in at 1.44MB, so it's possible to expand the image to 2.88MB to include additional content (Doom, anyone?)

To embed the image, use the below command while in the Coreboot DIR.

$ ./build/cbfstool build/coreboot.rom add -f /path/to/myfloppy.img -c lzma -n floppyimg/MyFloppy.lzma -t raw

It's even possible to embed a floppy image containing FreeDOS, including a megabyte or so of DOS demoscene executables. I was able to build a 2.88MB bootable image containing the popular ASCII art library/demo "bb". It doesn't have any "real-world" uses, but it's fun anyways! Here is a link to the FreeDOS floppy containing BB. You can boot it using qemu, VirtualBox or the like as well. Just run BB.EXE once it has booted.

References: