version 1.112, 2001/09/12 11:48:36
|
version 1.115, 2001/09/16 10:21:13
|
Line 202 Create bases 10 , 2 , A , 100 ,
|
Line 202 Create bases 10 , 2 , A , 100 ,
|
|
|
[THEN] |
[THEN] |
|
|
|
\ this provides assert( and struct stuff |
|
\GFORTH [IFUNDEF] assert1( |
|
\GFORTH also forth definitions require assert.fs previous |
|
\GFORTH [THEN] |
|
|
|
>CROSS |
|
|
hex \ the defualt base for the cross-compiler is hex !! |
hex \ the defualt base for the cross-compiler is hex !! |
\ Warnings off |
\ Warnings off |
|
|
Line 1007 Variable reuse-ghosts reuse-ghosts off
|
Line 1014 Variable reuse-ghosts reuse-ghosts off
|
|
|
\ ' >ghostname ALIAS @name |
\ ' >ghostname ALIAS @name |
|
|
|
: findghost ( "ghostname" -- ghost ) |
|
bl word gfind 0= ABORT" CROSS: Ghost don't exists" ; |
|
|
: [G'] ( -- ghost : name ) |
: [G'] ( -- ghost : name ) |
\G ticks a ghost and returns its address |
\G ticks a ghost and returns its address |
\ bl word gfind 0= ABORT" CROSS: Ghost don't exists" |
findghost |
ghost state @ IF postpone literal THEN ; immediate |
state @ IF postpone literal THEN ; immediate |
|
|
: g>xt ( ghost -- xt ) |
: g>xt ( ghost -- xt ) |
\G Returns the xt (cfa) of a ghost. Issues a warning if undefined. |
\G Returns the xt (cfa) of a ghost. Issues a warning if undefined. |
Line 1043 End-Struct addr-struct
|
Line 1053 End-Struct addr-struct
|
|
|
\ Predefined ghosts 12dec92py |
\ Predefined ghosts 12dec92py |
|
|
|
Ghost - drop \ need a ghost otherwise "-" would be treated as a number |
|
|
Ghost 0= drop |
Ghost 0= drop |
Ghost branch Ghost ?branch 2drop |
Ghost branch Ghost ?branch 2drop |
Ghost (do) Ghost (?do) 2drop |
Ghost (do) Ghost (?do) 2drop |
Line 1057 Ghost '
|
Line 1069 Ghost '
|
Ghost :docol Ghost :doesjump Ghost :dodoes 2drop drop |
Ghost :docol Ghost :doesjump Ghost :dodoes 2drop drop |
Ghost :dovar drop |
Ghost :dovar drop |
Ghost over Ghost = Ghost drop 2drop drop |
Ghost over Ghost = Ghost drop 2drop drop |
Ghost - drop |
|
Ghost 2drop drop |
Ghost 2drop drop |
Ghost 2dup drop |
Ghost 2dup drop |
|
Ghost state drop |
|
Ghost call drop |
|
Ghost @ drop |
|
Ghost useraddr drop |
|
Ghost execute drop |
|
Ghost + drop |
|
Ghost (C") drop |
|
Ghost decimal drop |
|
Ghost hex drop |
|
|
\ \ Parameter for target systems 06oct92py |
\ \ Parameter for target systems 06oct92py |
|
|
Line 1142 true DefaultValue standardthreading
|
Line 1160 true DefaultValue standardthreading
|
s" relocate" T environment? H |
s" relocate" T environment? H |
\ JAW why set NIL to this?! |
\ JAW why set NIL to this?! |
[IF] drop \ SetValue NIL |
[IF] drop \ SetValue NIL |
[ELSE] >ENVIRON T NIL H SetValue relocate |
[ELSE] >ENVIRON X NIL SetValue relocate |
[THEN] |
[THEN] |
|
>TARGET |
|
|
|
0 Constant NIL |
|
|
>CROSS |
>CROSS |
|
|
Line 1224 Variable mirrored-link \ linked
|
Line 1245 Variable mirrored-link \ linked
|
: >rlen cell+ ; |
: >rlen cell+ ; |
: >rstart ; |
: >rstart ; |
|
|
|
: (region) ( addr len region -- ) |
|
\G change startaddress and length of an existing region |
|
>r r@ last-defined-region ! |
|
r@ >rlen ! dup r@ >rstart ! r> >rdp ! ; |
|
|
: region ( addr len -- ) |
: region ( addr len -- ) |
\G create a new region |
\G create a new region |
Line 1237 Variable mirrored-link \ linked
|
Line 1262 Variable mirrored-link \ linked
|
region-link linked 0 , 0 , 0 , bl word count string, |
region-link linked 0 , 0 , 0 , bl word count string, |
ELSE \ store new parameters in region |
ELSE \ store new parameters in region |
bl word drop |
bl word drop |
>body >r r@ last-defined-region ! |
>body (region) |
r@ >rlen ! dup r@ >rstart ! r> >rdp ! |
|
THEN ; |
THEN ; |
|
|
: borders ( region -- startaddr endaddr ) |
: borders ( region -- startaddr endaddr ) |
Line 1356 T has? rom H
|
Line 1380 T has? rom H
|
|
|
\ MakeKernel 22feb99jaw |
\ MakeKernel 22feb99jaw |
|
|
: makekernel ( targetsize -- targetsize ) |
: makekernel ( targetsize -- ) |
dup dictionary >rlen ! setup-target ; |
\G convenience word to setup the memory of the target |
|
\G used by main.fs of the c-engine based systems |
|
100 swap dictionary (region) |
|
setup-target ; |
|
|
>MINIMAL |
>MINIMAL |
: makekernel makekernel ; |
: makekernel makekernel ; |
Line 2167 Comment ( Comment \
|
Line 2194 Comment ( Comment \
|
\ compile 10may93jaw |
\ compile 10may93jaw |
|
|
: compile ( "name" -- ) \ name |
: compile ( "name" -- ) \ name |
\ bl word gfind 0= ABORT" CROSS: Can't compile " |
findghost |
ghost |
|
dup >exec-compile @ ?dup |
dup >exec-compile @ ?dup |
IF nip compile, |
IF nip compile, |
ELSE postpone literal postpone gexecute THEN ; immediate restrict |
ELSE postpone literal postpone gexecute THEN ; immediate restrict |
Line 2190 Cond: ['] T ' H alit, ;Cond
|
Line 2216 Cond: ['] T ' H alit, ;Cond
|
|
|
: [T'] |
: [T'] |
\ returns the target-cfa of a ghost, or compiles it as literal |
\ returns the target-cfa of a ghost, or compiles it as literal |
postpone [G'] state @ IF postpone g>xt ELSE g>xt THEN ; immediate |
postpone [G'] |
|
state @ IF postpone g>xt ELSE g>xt THEN ; immediate |
|
|
\ \ threading modell 13dec92py |
\ \ threading modell 13dec92py |
\ modularized 14jun97jaw |
\ modularized 14jun97jaw |
Line 2315 Cond: MAXI
|
Line 2342 Cond: MAXI
|
;Cond |
;Cond |
|
|
>CROSS |
>CROSS |
|
|
\ Target compiling loop 12dec92py |
\ Target compiling loop 12dec92py |
\ ">tib trick thrown out 10may93jaw |
\ ">tib trick thrown out 10may93jaw |
\ number? defined at the top 11may93jaw |
\ number? defined at the top 11may93jaw |
Line 2335 Cond: MAXI
|
Line 2363 Cond: MAXI
|
IF 0> IF swap lit, THEN lit, discard |
IF 0> IF swap lit, THEN lit, discard |
ELSE 2drop restore-input throw Ghost gexecute THEN ; |
ELSE 2drop restore-input throw Ghost gexecute THEN ; |
|
|
>TARGET |
|
\ : ; DOES> 13dec92py |
\ : ; DOES> 13dec92py |
\ ] 9may93py/jaw |
\ ] 9may93py/jaw |
|
|
|
>CROSS |
|
|
: compiling-state ( -- ) |
: compiling-state ( -- ) |
\G set states to compililng |
\G set states to compililng |
Compiling comp-state ! |
Compiling comp-state ! |
Line 2353 Cond: MAXI
|
Line 2382 Cond: MAXI
|
IF >ghost-xt @ execute X off ELSE drop THEN |
IF >ghost-xt @ execute X off ELSE drop THEN |
Interpreting comp-state ! ; |
Interpreting comp-state ! ; |
|
|
|
>TARGET |
|
|
: ] |
: ] |
compiling-state |
compiling-state |
BEGIN |
BEGIN |
Line 3004 magic 7 + c!
|
Line 3035 magic 7 + c!
|
: save-cross ( "image-name" "binary-name" -- ) |
: save-cross ( "image-name" "binary-name" -- ) |
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 |
TNIL IF |
s" header" X $has? IF |
s" #! " r@ write-file throw |
s" #! " r@ write-file throw |
bl parse r@ write-file throw |
bl parse r@ write-file throw |
s" --image-file" r@ write-file throw |
s" --image-file" r@ write-file throw |
Line 3020 magic 7 + c!
|
Line 3051 magic 7 + c!
|
THEN |
THEN |
image @ there |
image @ there |
r@ write-file throw \ write image |
r@ write-file throw \ write image |
TNIL IF |
s" relocate" X $has? IF |
bit$ @ there 1- tcell>bit rshift 1+ |
bit$ @ there 1- tcell>bit rshift 1+ |
r@ write-file throw \ write tags |
r@ write-file throw \ write tags |
THEN |
THEN |