| cell+ ; |
cell+ ; |
| |
|
| : c-lit |
: c-lit |
| Display? IF dup @ dup abs 0 <# #S rot sign #> 0 .string bl cemit THEN |
Display? IF |
| |
dup @ dup abs 0 <# #S rot sign #> 0 .string bl cemit |
| |
THEN |
| |
cell+ ; |
| |
|
| |
: c-@local# |
| |
Display? IF |
| |
S" @local" 0 .string |
| |
dup @ dup 1 cells / abs 0 <# #S rot sign #> 0 .string bl cemit |
| |
THEN |
| cell+ ; |
cell+ ; |
| |
|
| : c-flit |
: c-flit |
| Display? IF dup f@ scratch represent 0= |
Display? IF |
| |
dup f@ scratch represent 0= |
| IF 2drop scratch 3 min 0 .string |
IF 2drop scratch 3 min 0 .string |
| ELSE IF '- cemit THEN 1- |
ELSE |
| |
IF '- cemit THEN 1- |
| scratch over c@ cemit '. cemit 1 /string 0 .string |
scratch over c@ cemit '. cemit 1 /string 0 .string |
| 'E cemit |
'E cemit |
| dup abs 0 <# #S rot sign #> 0 .string bl cemit |
dup abs 0 <# #S rot sign #> 0 .string bl cemit |
| THEN THEN |
THEN THEN |
| float+ ; |
float+ ; |
| |
|
| |
: c-f@local# |
| |
Display? IF |
| |
S" f@local" 0 .string |
| |
dup @ dup 1 floats / abs 0 <# #S rot sign #> 0 .string bl cemit |
| |
THEN |
| |
cell+ ; |
| |
|
| |
: c-laddr# |
| |
Display? IF |
| |
S" laddr# " 0 .string |
| |
dup @ dup abs 0 <# #S rot sign #> 0 .string bl cemit |
| |
THEN |
| |
cell+ ; |
| |
|
| |
: c-lp+!# |
| |
Display? IF |
| |
S" lp+!# " 0 .string |
| |
dup @ dup abs 0 <# #S rot sign #> 0 .string bl cemit |
| |
THEN |
| |
cell+ ; |
| |
|
| : c-s" |
: c-s" |
| count 2dup + aligned -rot |
count 2dup + aligned -rot |
| Display? |
Display? |
| DebugBranch |
DebugBranch |
| cell+ ; |
cell+ ; |
| |
|
| |
: c-?branch-lp+!# c-?branch cell+ ; |
| |
: c-branch-lp+!# c-branch cell+ ; |
| |
|
| : c-do |
: c-do |
| Display? IF nl S" DO" .struc level+ THEN ; |
Display? IF nl S" DO" .struc level+ THEN ; |
| |
|
| Display? IF level- nl S" LOOP " .struc nl THEN |
Display? IF level- nl S" LOOP " .struc nl THEN |
| DebugBranch cell+ cell+ ; |
DebugBranch cell+ cell+ ; |
| |
|
| |
|
| : c-+loop |
: c-+loop |
| Display? IF level- nl S" +LOOP " .struc nl THEN |
Display? IF level- nl S" +LOOP " .struc nl THEN |
| DebugBranch cell+ cell+ ; |
DebugBranch cell+ cell+ ; |
| |
|
| |
: c-s+loop |
| |
Display? IF level- nl S" S+LOOP " .struc nl THEN |
| |
DebugBranch cell+ cell+ ; |
| |
|
| |
: c--loop |
| |
Display? IF level- nl S" -LOOP " .struc nl THEN |
| |
DebugBranch cell+ cell+ ; |
| |
|
| |
: c-next-lp+!# c-next cell+ ; |
| |
: c-loop-lp+!# c-loop cell+ ; |
| |
: c-+loop-lp+!# c-+loop cell+ ; |
| |
: c-s+loop-lp+!# c-s+loop cell+ ; |
| |
: c--loop-lp+!# c--loop cell+ ; |
| |
|
| : c-leave |
: c-leave |
| Display? IF S" LEAVE " .struc THEN |
Display? IF S" LEAVE " .struc THEN |
| Debug? IF dup @ + THEN cell+ ; |
Debug? IF dup @ + THEN cell+ ; |
| |
|
| CREATE C-Table |
CREATE C-Table |
| ' lit A, ' c-lit A, |
' lit A, ' c-lit A, |
| |
' @local# A, ' c-@local# A, |
| ' flit A, ' c-flit A, |
' flit A, ' c-flit A, |
| |
' f@local# A, ' c-f@local# A, |
| |
' laddr# A, ' c-laddr# A, |
| |
' lp+!# A, ' c-lp+!# A, |
| ' (s") A, ' c-s" A, |
' (s") A, ' c-s" A, |
| ' (.") A, ' c-." A, |
' (.") A, ' c-." A, |
| ' "lit A, ' c-c" A, |
' "lit A, ' c-c" A, |
| ' ?branch A, ' c-?branch A, |
|
| ' branch A, ' c-branch A, |
|
| ' leave A, ' c-leave A, |
' leave A, ' c-leave A, |
| ' ?leave A, ' c-?leave A, |
' ?leave A, ' c-?leave A, |
| ' (do) A, ' c-do A, |
' (do) A, ' c-do A, |
| ' (?do) A, ' c-?do A, |
' (?do) A, ' c-?do A, |
| ' (for) A, ' c-for A, |
' (for) A, ' c-for A, |
| |
' ?branch A, ' c-?branch A, |
| |
' branch A, ' c-branch A, |
| ' (loop) A, ' c-loop A, |
' (loop) A, ' c-loop A, |
| ' (+loop) A, ' c-+loop A, |
' (+loop) A, ' c-+loop A, |
| |
' (s+loop) A, ' c-s+loop A, |
| |
' (-loop) A, ' c--loop A, |
| ' (next) A, ' c-next A, |
' (next) A, ' c-next A, |
| |
' ?branch-lp+!# A, ' c-?branch-lp+!# A, |
| |
' branch-lp+!# A, ' c-branch-lp+!# A, |
| |
' (loop)-lp+!# A, ' c-loop-lp+!# A, |
| |
' (+loop)-lp+!# A, ' c-+loop-lp+!# A, |
| |
' (s+loop)-lp+!# A, ' c-s+loop-lp+!# A, |
| |
' (-loop)-lp+!# A, ' c--loop-lp+!# A, |
| |
' (next)-lp+!# A, ' c-next-lp+!# A, |
| ' ;s A, ' c-exit A, |
' ;s A, ' c-exit A, |
| ' (does>) A, ' c-does> A, |
' (does>) A, ' c-does> A, |
| ' (abort") A, ' c-abort" A, |
' (abort") A, ' c-abort" A, |
| : docon dup cell+ (name>) >body @ . ." Constant " .name cr ; |
: docon dup cell+ (name>) >body @ . ." Constant " .name cr ; |
| : doval dup cell+ (name>) >body @ . ." Value " .name cr ; |
: doval dup cell+ (name>) >body @ . ." Value " .name cr ; |
| : dodef ." Defer " dup >r .name cr |
: dodef ." Defer " dup >r .name cr |
| here @ look 0= ABORT" SEE: No valid xt in defered word" |
r@ cell+ (name>) >body @ look |
| here @ look drop dosee cr |
0= ABORT" SEE: No valid xt in deferred word" |
| |
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> |