| here GhostNames @ , GhostNames ! here 0 , |
here GhostNames @ , GhostNames ! here 0 , |
| bl word count |
bl word count |
| \ 2dup type space |
\ 2dup type space |
| dup c, here over chars allot swap move align ; |
string, cfalign ; |
| |
|
| hex |
hex |
| |
|
| |
|
| : align+ ( taddr -- rest ) |
: align+ ( taddr -- rest ) |
| cell tuck 1- and - [ cell 1- ] Literal and ; |
cell tuck 1- and - [ cell 1- ] Literal and ; |
| |
: cfalign+ ( taddr -- rest ) |
| |
\ see kernal.fs:cfaligned |
| |
float tuck 1- and - [ float 1- ] Literal and ; |
| |
|
| >TARGET |
>TARGET |
| : aligned ( taddr -- ta-addr ) dup align+ + ; |
: aligned ( taddr -- ta-addr ) dup align+ + ; |
| \ assumes cell alignment granularity (as GNU C) |
\ assumes cell alignment granularity (as GNU C) |
| |
|
| |
: cfaligned ( taddr1 -- taddr2 ) |
| |
\ see kernal.fs |
| |
dup cfalign+ + ; |
| |
|
| >CROSS |
>CROSS |
| : >image ( taddr -- absaddr ) image @ + ; |
: >image ( taddr -- absaddr ) image @ + ; |
| >TARGET |
>TARGET |
| : , ( w -- ) T here H cell T allot ! H ; |
: , ( w -- ) T here H cell T allot ! H ; |
| : c, ( char -- ) T here 1 allot c! H ; |
: c, ( char -- ) T here 1 allot c! H ; |
| : align ( -- ) T here H align+ 0 ?DO bl T c, H LOOP ; |
: align ( -- ) T here H align+ 0 ?DO bl T c, H LOOP ; |
| |
: cfalign ( -- ) |
| |
T here H cfalign+ 0 ?DO bl T c, H LOOP ; |
| |
|
| : A! dup relon T ! H ; |
: A! dup relon T ! H ; |
| : A, ( w -- ) T here H relon T , H ; |
: A, ( w -- ) T here H relon T , H ; |
| |
|
| : string, ( addr count -- ) |
: string, ( addr count -- ) |
| dup T c, H bounds DO I c@ T c, H LOOP ; |
dup T c, H bounds DO I c@ T c, H LOOP ; |
| : name, ( "name" -- ) bl word count string, T align H ; |
: name, ( "name" -- ) bl word count string, T cfalign H ; |
| : view, ( -- ) ( dummy ) ; |
: view, ( -- ) ( dummy ) ; |
| |
|
| VARIABLE CreateFlag CreateFlag off |
VARIABLE CreateFlag CreateFlag off |