version 1.145, 2004/05/16 21:16:35
|
version 1.151, 2006/01/29 18:34:33
|
Line 1
|
Line 1
|
\ CROSS.FS The Cross-Compiler 06oct92py |
\ CROSS.FS The Cross-Compiler 06oct92py |
\ Idea and implementation: Bernd Paysan (py) |
\ Idea and implementation: Bernd Paysan (py) |
|
|
\ Copyright (C) 1995,1996,1997,1998,1999,2000,2003 Free Software Foundation, Inc. |
\ Copyright (C) 1995,1996,1997,1998,1999,2000,2003,2004,2005 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
Line 1722 Ghost (do) Ghost (?do)
|
Line 1722 Ghost (do) Ghost (?do)
|
Ghost (for) drop |
Ghost (for) drop |
Ghost (loop) Ghost (+loop) 2drop |
Ghost (loop) Ghost (+loop) 2drop |
Ghost (next) drop |
Ghost (next) drop |
Ghost (does>) Ghost (does>1) Ghost compile, 2drop drop |
Ghost (does>) Ghost (does>1) Ghost (does>2) 2drop drop |
|
Ghost compile, drop |
Ghost (.") Ghost (S") Ghost (ABORT") 2drop drop |
Ghost (.") Ghost (S") Ghost (ABORT") 2drop drop |
Ghost (C") Ghost c(abort") Ghost type 2drop drop |
Ghost (C") Ghost c(abort") Ghost type 2drop drop |
Ghost ' drop |
Ghost ' drop |
Line 1761 Ghost state drop
|
Line 1762 Ghost state drop
|
|
|
: count dup X c@ swap X char+ swap ; |
: count dup X c@ swap X char+ swap ; |
|
|
: on -1 -1 rot TD! ; |
: on >r -1 -1 r> TD! ; |
: off T 0 swap ! H ; |
: off T 0 swap ! H ; |
|
|
: tcmove ( source dest len -- ) |
: tcmove ( source dest len -- ) |
Line 2204 NoHeaderFlag off
|
Line 2205 NoHeaderFlag off
|
ENDCASE |
ENDCASE |
LOOP ; |
LOOP ; |
|
|
Defer setup-execution-semantics |
Defer setup-execution-semantics ' noop IS setup-execution-semantics |
0 Value lastghost |
0 Value lastghost |
|
|
: (THeader ( "name" -- ghost ) |
: (THeader ( "name" -- ghost ) |
Line 2614 Cond: [ ( -- ) interpreting-state ;Cond
|
Line 2615 Cond: [ ( -- ) interpreting-state ;Cond
|
r@ created >do:ghost ! r@ swap resolve |
r@ created >do:ghost ! r@ swap resolve |
r> tlastcfa @ >tempdp dodoes, tempdp> ; |
r> tlastcfa @ >tempdp dodoes, tempdp> ; |
|
|
Defer instant-interpret-does>-hook |
Defer instant-interpret-does>-hook ' noop IS instant-interpret-does>-hook |
|
|
T has? peephole H [IF] |
T has? peephole H [IF] |
: does-resolved ( ghost -- ) |
: does-resolved ( ghost -- ) |
Line 2631 T has? peephole H [IF]
|
Line 2632 T has? peephole H [IF]
|
|
|
>TARGET |
>TARGET |
Cond: DOES> |
Cond: DOES> |
T here 4 cells H + alit, compile (does>1) |
T here 5 cells H + alit, compile (does>2) compile ;s |
doeshandler, resolve-does>-part |
doeshandler, resolve-does>-part |
;Cond |
;Cond |
|
|
Line 3268 tchar 8 = 78 and or
|
Line 3269 tchar 8 = 78 and or
|
magic 7 + c! |
magic 7 + c! |
|
|
: save-cross ( "image-name" "binary-name" -- ) |
: save-cross ( "image-name" "binary-name" -- ) |
|
s" ec" X $has? IF .regions THEN |
bl parse ." Saving to " 2dup type cr |
bl parse ." Saving to " 2dup type cr |
w/o bin create-file throw >r |
w/o bin create-file throw >r |
s" header" X $has? IF |
s" header" X $has? IF |
Line 3284 magic 7 + c!
|
Line 3286 magic 7 + c!
|
ELSE |
ELSE |
bl parse 2drop |
bl parse 2drop |
THEN |
THEN |
dictionary >rmem @ there |
>rom dictionary >rmem @ there |
|
s" rom" X $has? IF dictionary >rstart @ - THEN |
r@ write-file throw \ write image |
r@ write-file throw \ write image |
s" relocate" X $has? IF |
s" relocate" X $has? IF |
dictionary >rbm @ there 1- tcell>bit rshift 1+ |
dictionary >rbm @ there 1- tcell>bit rshift 1+ |