| 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 |
| |
|
| : >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 |
| 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 ) |
| |
|
| \ 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 ; |
| : 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 |
| 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 |