Improve initialization sequence documentation
This commit is contained in:
parent
f8b7a3ce65
commit
b48455e4db
29
doc/impl.txt
29
doc/impl.txt
@ -127,13 +127,13 @@ offsets, but thankfully, there aren't many system variables.
|
||||
Here's a list of them:
|
||||
|
||||
SYSVARS FUTURE USES +3c BLK(*
|
||||
+02 CURRENT +3e A@*
|
||||
+04 HERE +40 A!*
|
||||
+06 C<? +42 A,*
|
||||
+02 CURRENT +3e A@ ialias
|
||||
+04 HERE +40 A! ialias
|
||||
+06 C<? +42 A, ialias
|
||||
+08 C<* override +44 FUTURE USES
|
||||
+0a NLPTR +51 CURRENTPTR
|
||||
+0c C<* +53 (emit) override
|
||||
+0e WORDBUF +55 (key) override
|
||||
+0a NL ialias +51 CURRENTPTR
|
||||
+0c C<* +53 EMIT ialias
|
||||
+0e WORDBUF +55 KEY ialias
|
||||
+2e BOOT C< PTR +57 FUTURE USES
|
||||
+30 IN>
|
||||
+32 IN(* +70 DRIVERS
|
||||
@ -186,8 +186,17 @@ very few things.
|
||||
In a normal system, BOOT is in core words at B396 and does a
|
||||
few things:
|
||||
|
||||
1. Initialize all overrides to 0.
|
||||
2. Write LATEST in BOOT C< PTR ( see below ).
|
||||
1. Initialize a few core variables:
|
||||
CURRENT* -> CURRENT (RAM+02)
|
||||
BOOT C< PTR -> LATEST
|
||||
C<* override -> 0
|
||||
2. Initialized ialiases in this way:
|
||||
EMIT -> (emit)
|
||||
KEY -> (key)
|
||||
NL -> CRLF
|
||||
A@ -> C@
|
||||
A! -> C!
|
||||
A, -> C,
|
||||
3. Set "C<*", the word that C< calls, to (boot<).
|
||||
4. Call INTERPRET which interprets boot source code until
|
||||
ASCII EOT (4) is met. This usually initializes drivers.
|
||||
@ -196,6 +205,10 @@ few things:
|
||||
6. (main) interprets from rdln input (usually from KEY) until
|
||||
EOT is met, then calls BYE.
|
||||
|
||||
If, for some reason, you need to override an ialias at some
|
||||
point, you de-override it by re-setting it to the address of
|
||||
the word specified at step 2.
|
||||
|
||||
# Stable ABI
|
||||
|
||||
The Stable ABI lives at the beginning of the binary and prov-
|
||||
|
Loading…
Reference in New Issue
Block a user