| : dopri .name ." is primitive" cr ; |
: dopri .name ." is primitive" cr ; |
| : dovar ." Variable " .name cr ; |
: dovar ." Variable " .name cr ; |
| : douse ." User " .name cr ; |
: douse ." User " .name cr ; |
| : docon dup cell+ (name>) >body @ . ." Constant " .name cr ; |
: docon dup ((name>)) >body @ . ." Constant " .name cr ; |
| : doval dup cell+ (name>) >body @ . ." Value " .name cr ; |
: doval dup ((name>)) >body @ . ." Value " .name cr ; |
| : dodef ." Defer " dup >r .name cr |
: dodef ." Defer " dup >r .name cr |
| r@ cell+ (name>) >body @ look |
r@ ((name>)) >body @ look |
| 0= ABORT" SEE: No valid xt in deferred word" |
0= ABORT" SEE: No valid xt in deferred word" |
| dup dosee cr |
dup dosee cr |
| ." ' " .name r> ." IS " .name cr ; |
." ' " .name r> ." IS " .name cr ; |
| : dodoe ." Create " dup .name cr |
: dodoe ." Create " dup .name cr |
| S" DOES> " Com# .string XPos @ Level ! name> |
S" DOES> " Com# .string XPos @ Level ! name>int |
| >does-code dup C-Pass @ DebugMode = IF ScanMode c-pass ! EXIT THEN |
>does-code dup C-Pass @ DebugMode = IF ScanMode c-pass ! EXIT THEN |
| ScanMode c-pass ! dup makepass |
ScanMode c-pass ! dup makepass |
| DisplayMode c-pass ! makepass ; |
DisplayMode c-pass ! makepass ; |
| S" : " Com# .string |
S" : " Com# .string |
| dup name>string 2 pick wordinfo .string bl cemit bl cemit |
dup name>string 2 pick wordinfo .string bl cemit bl cemit |
| ( XPos @ ) 2 Level ! |
( XPos @ ) 2 Level ! |
| name> >body |
name>int >body |
| C-Pass @ DebugMode = |
C-Pass @ DebugMode = |
| IF |
IF |
| ScanMode c-pass ! EXIT |
ScanMode c-pass ! EXIT |
| cr c-init |
cr c-init |
| dosee ; |
dosee ; |
| |
|
| : see name sfind 0= IF ." Word unknown" cr exit THEN |
: see ( "name" -- ) \ tools |
| xtc ; |
name find-name dup 0= |
| |
IF |
| |
drop -&13 bounce |
| |
THEN |
| |
name>int xtc ; |
| |
|
| : lfc cr c-init cell+ dosee ; |
: lfc cr c-init cell+ dosee ; |
| : nfc cr c-init dosee ; |
: nfc cr c-init dosee ; |