|
2 | 2 |
|
3 | 3 | Booted from a floppy, it will load an Option ROM image into the end of conventional memory.
|
4 | 4 |
|
5 |
| - |
| 5 | + |
6 | 6 |
|
7 | 7 | ## Use cases (non-exhaustive)
|
8 | 8 | * Test boot ROMs before burning them.
|
9 | 9 | * Netboot with etherboot/gpxe/ipxe.
|
10 | 10 | * IDE support (including LBA!) with XTIDE Universal BIOS.
|
11 | 11 |
|
12 | 12 | ## Highlights
|
13 |
| -* flat assembler syntax. |
| 13 | +* Flat assembler syntax. |
14 | 14 | * Pure 8086 code.
|
15 |
| -* Works on newer hardware, such as the 486 I wrote it for. |
16 | 15 | * Fits in a floppy bootblock.
|
| 16 | +* Verifies ROM image checksum after loading. |
| 17 | +* Works on PC/XT/AT and clones. |
| 18 | + * Also works on newer hardware, such as the 486 with AMI BIOS I wrote it for. |
17 | 19 | * Trivial to use. Concatenate loader and the ROM image, write into floppy.
|
18 | 20 | * Makefile will prepare 5.25" 360K/1.2M and 3.5" 720K/1.44M floppy images.
|
19 | 21 | * MIT License. See LICENSE file.
|
20 | 22 |
|
21 | 23 | ## Usage
|
22 | 24 | * Ensure fasm (flat assembler) is installed.
|
23 | 25 | * Copy your ROM image as the `optrom.bin` file.
|
24 |
| -* Optionally test ROM image with qemu: `make emulaterom`. |
| 26 | + * Ensure the ROM image is signed (has correct checksum). |
| 27 | + * optromloader will loudly refuse to run the ROM image if not signed. |
| 28 | + * Test with `make emulaterom`. Qemu's BIOS won't see the ROM if it's not signed. |
| 29 | + * Qemu provides a python tool to sign ROMs: |
| 30 | + * https://github.com/qemu/qemu/blob/master/scripts/signrom.py |
| 31 | + * For XTIDE Universal BIOS ROMs, use its XTIDECFG tool to configure and sign ROM images. |
25 | 32 | * Run `make`.
|
26 | 33 | * Floppy images will be created (fd*.img).
|
27 | 34 | * Optionally test 1.44M image with qemu: `make emulate`.
|
28 | 35 | * Alternatively, use a binary release. Concatenate:
|
29 |
| - * optromloader9/15/18 (according to sectors per track in your floppy format). |
30 |
| - * 9 for 5.25" 360K and 3.5" 720K. |
31 |
| - * 15 for 5.25" 1.2M. |
32 |
| - * 18 for 3.5" 1.44M. |
| 36 | + * optromloader9/15/18, according to sectors per track in your floppy format: |
| 37 | + * `9` for 5.25" 360K and 3.5" 720K. |
| 38 | + * `15` for 5.25" 1.2M. |
| 39 | + * `18` for 3.5" 1.44M. |
33 | 40 | * the ROM image.
|
34 | 41 | * pad to floppy size.
|
35 | 42 |
|
36 | 43 | ## Caveats
|
37 |
| -* ROM size limited to <= 64KB. |
| 44 | +* ROM size cannot be over 64KB (one 8086 segment). |
38 | 45 | * Hardcoded to use the first floppy drive.
|
39 |
| -* ROM checksum isn't checked (yet). |
40 |
| - * Always ensure a boot ROM is signed before burning. |
41 |
| - * Test with `make emulaterom`. Qemu's BIOS won't see the ROM if it's not signed. |
42 |
| - * Qemu provides a python tool to sign ROMs: |
43 |
| - * https://github.com/qemu/qemu/blob/master/scripts/signrom.py |
44 |
| - * For XTIDE Universal BIOS roms, use its XTIDECFG tool to configure and sign ROM images. |
45 | 46 |
|
46 | 47 | ## Author
|
47 | 48 | Roc Vallès Domènech
|
0 commit comments