diff --git a/doc/impl.txt b/doc/impl.txt index 0aa0d69..8e58175 100644 --- a/doc/impl.txt +++ b/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 +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-