Skip to content

Commit

Permalink
README.md: Update for 1.1.0 release.
Browse files Browse the repository at this point in the history
  • Loading branch information
rvalles committed Sep 17, 2021
1 parent c1ceeb4 commit 071e7e7
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,46 +2,47 @@

Booted from a floppy, it will load an Option ROM image into the end of conventional memory.

![PCem IBM XT screenshot](https://b.rvalles.net/unsorted/pcem_ibmxt_optromboot_xtide.png)
![PCem IBM PC screenshot](https://b.rvalles.net/unsorted/pcem_ibmpc_optromboot_xtide.png)

## Use cases (non-exhaustive)
* Test boot ROMs before burning them.
* Netboot with etherboot/gpxe/ipxe.
* IDE support (including LBA!) with XTIDE Universal BIOS.

## Highlights
* flat assembler syntax.
* Flat assembler syntax.
* Pure 8086 code.
* Works on newer hardware, such as the 486 I wrote it for.
* Fits in a floppy bootblock.
* Verifies ROM image checksum after loading.
* Works on PC/XT/AT and clones.
* Also works on newer hardware, such as the 486 with AMI BIOS I wrote it for.
* Trivial to use. Concatenate loader and the ROM image, write into floppy.
* Makefile will prepare 5.25" 360K/1.2M and 3.5" 720K/1.44M floppy images.
* MIT License. See LICENSE file.

## Usage
* Ensure fasm (flat assembler) is installed.
* Copy your ROM image as the `optrom.bin` file.
* Optionally test ROM image with qemu: `make emulaterom`.
* Ensure the ROM image is signed (has correct checksum).
* optromloader will loudly refuse to run the ROM image if not signed.
* Test with `make emulaterom`. Qemu's BIOS won't see the ROM if it's not signed.
* Qemu provides a python tool to sign ROMs:
* https://github.com/qemu/qemu/blob/master/scripts/signrom.py
* For XTIDE Universal BIOS ROMs, use its XTIDECFG tool to configure and sign ROM images.
* Run `make`.
* Floppy images will be created (fd*.img).
* Optionally test 1.44M image with qemu: `make emulate`.
* Alternatively, use a binary release. Concatenate:
* optromloader9/15/18 (according to sectors per track in your floppy format).
* 9 for 5.25" 360K and 3.5" 720K.
* 15 for 5.25" 1.2M.
* 18 for 3.5" 1.44M.
* optromloader9/15/18, according to sectors per track in your floppy format:
* `9` for 5.25" 360K and 3.5" 720K.
* `15` for 5.25" 1.2M.
* `18` for 3.5" 1.44M.
* the ROM image.
* pad to floppy size.

## Caveats
* ROM size limited to <= 64KB.
* ROM size cannot be over 64KB (one 8086 segment).
* Hardcoded to use the first floppy drive.
* ROM checksum isn't checked (yet).
* Always ensure a boot ROM is signed before burning.
* Test with `make emulaterom`. Qemu's BIOS won't see the ROM if it's not signed.
* Qemu provides a python tool to sign ROMs:
* https://github.com/qemu/qemu/blob/master/scripts/signrom.py
* For XTIDE Universal BIOS roms, use its XTIDECFG tool to configure and sign ROM images.

## Author
Roc Vallès Domènech

0 comments on commit 071e7e7

Please sign in to comment.