link: fix literal ASKIP

This commit is contained in:
Virgil Dupras 2020-04-07 11:26:47 -04:00
parent 400f0ab0b0
commit a09e552ccc
1 changed files with 9 additions and 5 deletions

View File

@ -1,11 +1,13 @@
( depends: cmp ( depends: cmp, parse
Relink a dictionary by applying offsets to all word Relink a dictionary by applying offsets to all word
references in words of the "compiled" type. references in words of the "compiled" type.
A typical usage of this unit would be to, right after a A typical usage of this unit would be to, right after a
bootstrap-from-icore-from-source operation, to copy the bootstrap-from-icore-from-source operation, identify the
dictionary from '< H@ to CURRENT, and then call RLDICT on root word of the source part, probably "H@", and run
that new range, with "ol" set to ' H@. " ' thatword COMPACT ". Then, take the resulting relinked
binary, concatenate it to the boot binary, and write to
boot media.
) )
( Skip atom, considering special atom types. ) ( Skip atom, considering special atom types. )
@ -21,7 +23,8 @@
( a ) ( a )
1 + ( we skip by 2, but the loop below is pre-inc... ) 1 + ( we skip by 2, but the loop below is pre-inc... )
BEGIN 1 + DUP C@ NOT UNTIL BEGIN 1 + DUP C@ NOT UNTIL
( a+1 ) ( skip null char )
1 +
; ;
( Get word header length from wordref. That is, name length ( Get word header length from wordref. That is, name length
@ -78,6 +81,7 @@
2OVER ( ol o a2 a1 ol o ) 2OVER ( ol o a2 a1 ol o )
SWAP ( ol o a2 a1 o ol ) SWAP ( ol o a2 a1 o ol )
RLATOM ( ol o a2 a+n ) RLATOM ( ol o a2 a+n )
2DUP < IF ABORT THEN ( Something is very wrong )
2DUP = ( ol o a2 a+n f ) 2DUP = ( ol o a2 a+n f )
IF IF
( unwind ) ( unwind )