version 1.10, 1996/01/07 17:22:14
|
version 1.13, 1996/08/21 14:58:44
|
Line 495 CREATE C-Table
|
Line 495 CREATE C-Table
|
WHILE 2 pick <> |
WHILE 2 pick <> |
WHILE 2 cells + |
WHILE 2 cells + |
REPEAT |
REPEAT |
nip cell+ @ EXECUTE |
nip cell+ perform |
true |
true |
ELSE |
ELSE |
2drop drop false |
2drop drop false |
Line 546 DEFER dosee
|
Line 546 DEFER dosee
|
: 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 ; |
Line 564 DEFER dosee
|
Line 564 DEFER dosee
|
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 |
Line 590 create wordtypes
|
Line 590 create wordtypes
|
wordtypes |
wordtypes |
BEGIN dup @ dup |
BEGIN dup @ dup |
WHILE 2 pick = IF cell+ @ nip EXECUTE |
WHILE 2 pick = IF cell+ @ nip EXECUTE |
r> dup 32 and IF ." immediate" THEN |
r> dup immediate-mask and IF ." immediate" THEN |
64 and IF ." restrict" THEN EXIT THEN |
restrict-mask and IF ." restrict" THEN |
|
EXIT THEN |
2 cells + |
2 cells + |
REPEAT |
REPEAT |
2drop rdrop |
2drop rdrop |
Line 604 create wordtypes
|
Line 605 create wordtypes
|
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 ; |