forked from MirrorRepos/RomWBW
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.8 KiB
46 lines
1.8 KiB
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
|
|
|