--- gforth/see.fs 1994/09/12 19:00:37 1.4 +++ gforth/see.fs 1995/10/07 17:38:19 1.7 @@ -191,6 +191,16 @@ VARIABLE C-Pass Display? IF dup @ dup abs 0 <# #S rot sign #> 0 .string bl cemit THEN cell+ ; +: c-flit + Display? IF dup f@ scratch represent 0= + IF 2drop scratch 3 min 0 .string + ELSE IF '- cemit THEN 1- + scratch over c@ cemit '. cemit 1 /string 0 .string + 'E cemit + dup abs 0 <# #S rot sign #> 0 .string bl cemit + THEN THEN + float+ ; + : c-s" count 2dup + aligned -rot Display? @@ -357,7 +367,7 @@ VARIABLE C-Pass THEN Debug? IF drop THEN ; -: c-;code \ end of create part +: c-does> \ end of create part Display? IF S" DOES> " Com# .string THEN Cell+ cell+ ; @@ -373,6 +383,7 @@ VARIABLE C-Pass CREATE C-Table ' lit A, ' c-lit A, + ' flit A, ' c-flit A, ' (s") A, ' c-s" A, ' (.") A, ' c-." A, ' "lit A, ' c-c" A, @@ -387,7 +398,7 @@ CREATE C-Table ' (+loop) A, ' c-+loop A, ' (next) A, ' c-next A, ' ;s A, ' c-exit A, - ' (;code) A, ' c-;code A, + ' (does>) A, ' c-does> A, ' (abort") A, ' c-abort" A, ' (compile) A, ' c-(compile) A, 0 , @@ -457,9 +468,9 @@ DEFER dosee here @ look 0= ABORT" SEE: No valid xt in defered word" here @ look drop dosee cr ." ' " .name r> ." IS " .name cr ; -: dodoe ." Create " .name cr - S" DOES> " Com# .string XPos @ Level ! - here @ dup C-Pass @ DebugMode = IF ScanMode c-pass ! EXIT THEN +: dodoe ." Create " dup .name cr + S" DOES> " Com# .string XPos @ Level ! name> + >does-code dup C-Pass @ DebugMode = IF ScanMode c-pass ! EXIT THEN ScanMode c-pass ! dup makepass DisplayMode c-pass ! makepass ; : doali here @ .name ." Alias " .name cr