mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
46 lines
1.8 KiB
Plaintext
46 lines
1.8 KiB
Plaintext
21 July 1996
|
||
The boot record is NOT executable. Any attempt to execute it will produce
|
||
varied effects ranging from a HALT to only a single load or jump. The
|
||
arguments of the instructions are simply intended to make addresses available
|
||
to the ROM Boot loader. The layout is:
|
||
|
||
ORG 8000H
|
||
|
||
DB 76H ; HALT instruction
|
||
LD HL,CCP-80H ; Base load point assuming 128 bytes for
|
||
; this Boot Record size.
|
||
RET ; (safety)
|
||
JP BIOS ; This address is for the CBOOT entry in the
|
||
; relocated System image. Execution should
|
||
; commence at the argument of this jump.
|
||
|
||
Accessing the relevant parameters from the ROM, then, normally consists of
|
||
getting the Load Address from 8002H, and the BIOS CBOOT Entry point from
|
||
8006H. It is recommended that the jump itself not be executed, but use a
|
||
vectored approach such as the sequence:
|
||
|
||
LD HL,(8006H)
|
||
JP (HL)
|
||
|
||
The remainder of this record is available for transferring parameters to the
|
||
Bios as part of the CBOOT setup. Parameters may be addressed by absolute
|
||
values such as 8020H, etc.
|
||
|
||
Since the two location addresses are variable depending on the system size
|
||
generated, a checksum of the boot record is not feasible without generating
|
||
an entirely new, unique utility. That defeats the intent of this effort which
|
||
is to retain a common suite of utilities across multiple platforms. Validation
|
||
of the Boot record instead can check the absolute bytes at any or all of the
|
||
following locations:
|
||
|
||
8000 - 76H
|
||
8001 - 21H
|
||
8004 - 0C9H
|
||
8005 - 0C3H
|
||
|
||
Another possibility which may be implemented is to embed an ASCII Text string
|
||
in the available space. This may be a visual thing, but there comes a limit
|
||
to complexity vs reliability.
|
||
|
||
Hal
|
||
|