Diff for /gforth/extend.fs between versions 1.47 and 1.60

version 1.47, 2002/12/04 10:42:58 version 1.60, 2007/07/06 12:54:56
Line 1 Line 1
 \ EXTEND.FS    CORE-EXT Word not fully tested!         12may93jaw  \ EXTEND.FS    CORE-EXT Word not fully tested!         12may93jaw
   
 \ Copyright (C) 1995,1998,2000 Free Software Foundation, Inc.  \ Copyright (C) 1995,1998,2000,2003,2005 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 25  decimal Line 25  decimal
   
 \ .(                                                    12may93jaw  \ .(                                                    12may93jaw
   
 : .(   ( compilation,interpretation "ccc<paren>" -- ) \ core-ext dot-paren  : .(   ( compilation&interpretation "ccc<paren>" -- ) \ core-ext dot-paren
   \G Compilation and interpretation semantics: Parse a string @i{ccc}    \G Compilation and interpretation semantics: Parse a string @i{ccc}
   \G delimited by a @code{)} (right parenthesis). Display the    \G delimited by a @code{)} (right parenthesis). Display the
   \G string. This is often used to display progress information during    \G string. This is often used to display progress information during
Line 36  decimal Line 36  decimal
   
 \ !! 2value  \ !! 2value
   
   [ifundef] 2literal
 : 2Literal ( compilation w1 w2 -- ; run-time  -- w1 w2 ) \ double two-literal  : 2Literal ( compilation w1 w2 -- ; run-time  -- w1 w2 ) \ double two-literal
     \G Compile appropriate code such that, at run-time, cell pair @i{w1, w2} are      \G Compile appropriate code such that, at run-time, cell pair @i{w1, w2} are
     \G placed on the stack. Interpretation semantics are undefined.      \G placed on the stack. Interpretation semantics are undefined.
     swap postpone Literal  postpone Literal ; immediate restrict      swap postpone Literal  postpone Literal ; immediate restrict
   [then]
   
 ' drop alias d>s ( d -- n ) \ double            d_to_s  ' drop alias d>s ( d -- n ) \ double            d_to_s
   
Line 48  decimal Line 50  decimal
     \G In ANS Forth u3 can only be a positive signed number.      \G In ANS Forth u3 can only be a positive signed number.
     >r s>d >r abs -rot      >r s>d >r abs -rot
     s>d r> xor r> swap >r >r dabs rot tuck um* 2swap um*      s>d r> xor r> swap >r >r dabs rot tuck um* 2swap um*
     swap >r 0 d+ r> -rot r@ um/mod -rot r> um/mod nip swap      swap >r 0 d+ r> -rot r@ um/mod -rot r> um/mod
     r> IF dnegate THEN ;      [ s" floored" environment? 0= throw ] [if]
           -rot r> IF IF 1. d+ THEN dnegate ELSE drop THEN
       [else]
           nip swap r> IF dnegate THEN
       [then] ;
   
 \ CASE OF ENDOF ENDCASE                                 17may93jaw  \ CASE OF ENDOF ENDCASE                                 17may93jaw
   
Line 92  decimal Line 98  decimal
   
 \ CONVERT                                               17may93jaw  \ CONVERT                                               17may93jaw
   
 : convert ( ud1 c-addr1 -- ud2 c-addr2 ) \ core-ext  : convert ( ud1 c-addr1 -- ud2 c-addr2 ) \ core-ext-obsolescent
     \G OBSOLESCENT: superseded by @code{>number}.      \G Obsolescent: superseded by @code{>number}.
     char+ true >number drop ;      char+ true >number drop ;
   
 \ ERASE                                                 17may93jaw  \ ERASE                                                 17may93jaw
Line 118  decimal Line 124  decimal
     begin      begin
         dup r@ >=          dup r@ >=
     while      while
         over 2r@ swap -text 0= if          2dup 2r@ string-prefix? if
             2swap 2drop 2r> 2drop true exit              2swap 2drop 2r> 2drop true exit
         endif          endif
         1 /string          1 /string
Line 182  decimal Line 188  decimal
   
 \ EXPECT SPAN                                           17may93jaw  \ EXPECT SPAN                                           17may93jaw
   
 variable span ( -- c-addr ) \ core-ext  variable span ( -- c-addr ) \ core-ext-obsolescent
 \G @code{Variable} -- @i{c-addr} is the address of a cell that stores the  \G @code{Variable} -- @i{c-addr} is the address of a cell that stores the
 \G length of the last string received by @code{expect}. OBSOLESCENT.  \G length of the last string received by @code{expect}. OBSOLESCENT.
   
 : expect ( c-addr +n -- ) \ core-ext  : expect ( c-addr +n -- ) \ core-ext-obsolescent
     \G Receive a string of at most @i{+n} characters, and store it      \G Receive a string of at most @i{+n} characters, and store it
     \G in memory starting at @i{c-addr}. The string is      \G in memory starting at @i{c-addr}. The string is
     \G displayed. Input terminates when the <return> key is pressed or      \G displayed. Input terminates when the <return> key is pressed or
Line 236  variable span ( -- c-addr ) \ core-ext Line 242  variable span ( -- c-addr ) \ core-ext
     REPEAT      REPEAT
     drop      drop
     \ remember udp      \ remember udp
     udp @ , ;      udp @ ,
       \ remember dyncode-ptr
       here ['] noop , compile-prim1 finish-code ;
   
 : marker! ( mark -- )  : marker! ( mark -- )
     \ reset included files count; resize will happen on next add-included-file      \ reset included files count; resize will happen on next add-included-file
Line 263  variable span ( -- c-addr ) \ core-ext Line 271  variable span ( -- c-addr ) \ core-ext
     REPEAT      REPEAT
     drop      drop
     \ restore udp and dp      \ restore udp and dp
   [IFDEF] forget-dyncode
       dup cell+ @ forget-dyncode drop
   [THEN]
     @ udp !  dp !      @ udp !  dp !
     \ clean up vocabulary stack      \ clean up vocabulary stack
     0 vp @ 0      0 vp @ 0

Removed from v.1.47  
changed lines
  Added in v.1.60


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>