[gforth] / gforth / Attic / tools.fs  

gforth: gforth/Attic/tools.fs

Diff for /gforth/Attic/tools.fs between version 1.1.1.1 and 1.4

version 1.1.1.1, Fri Feb 11 16:30:48 1994 UTC version 1.4, Tue Nov 7 18:07:03 1995 UTC
Line 1 
Line 1 
 \ TOOLS.FS     Toolkit extentions                      2may93jaw  \ TOOLS.FS     Toolkit extentions                      2may93jaw
   
   \ Copyright (C) 1995 Free Software Foundation, Inc.
   
   \ This file is part of Gforth.
   
   \ Gforth is free software; you can redistribute it and/or
   \ modify it under the terms of the GNU General Public License
   \ as published by the Free Software Foundation; either version 2
   \ of the License, or (at your option) any later version.
   
   \ This program is distributed in the hope that it will be useful,
   \ but WITHOUT ANY WARRANTY; without even the implied warranty of
   \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   \ GNU General Public License for more details.
   
   \ You should have received a copy of the GNU General Public License
   \ along with this program; if not, write to the Free Software
   \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   
 \ May be cross-compiled  \ May be cross-compiled
   
 hex  hex
   
 \ .S            CORE / CORE EXT                         9may93jaw  \ .S            CORE / CORE EXT                         9may93jaw
   
   variable maxdepth-.s
   9 maxdepth-.s !
   
 : .s ( -- )  : .s ( -- )
 \ depth 0= IF ." <empty> " THEN      ." <" depth 0 .r ." > "
   depth 0 ?DO  I pick . LOOP ;      depth 0 max maxdepth-.s @ min
       dup 0
       ?do
           dup i - pick .
       loop
       drop ;
   
 \ DUMP                       2may93jaw - 9may93jaw    06jul93py  \ DUMP                       2may93jaw - 9may93jaw    06jul93py
 \ looks very nice, I know  \ looks very nice, I know
   
   Variable /dump
   
 : .4 ( addr -- addr' )  : .4 ( addr -- addr' )
   3 FOR  dup c@ 0 <# # # #> type space char+ NEXT ;      3 FOR  -1 /dump +!  /dump @ 0<
           IF  ."    "  ELSE  dup c@ 0 <# # # #> type space  THEN
       char+ NEXT ;
 : .chars ( addr -- )  : .chars ( addr -- )
   10 bounds DO  I c@ dup 7f bl within      /dump @ bounds
                 IF drop [char] . THEN emit LOOP ;      ?DO I c@ dup 7f bl within
           IF  drop [char] .  THEN  emit
       LOOP ;
   
 : .line ( addr -- )  : .line ( addr -- )
   dup .4 space .4 ." - " .4 space .4 drop  space .chars ;    dup .4 space .4 ." - " .4 space .4 drop  10 /dump +!  space .chars ;
   
 : dump  ( addr u -- )  : dump  ( addr u -- )
   cr base @ >r hex        \ save base on return stack    cr base @ >r hex        \ save base on return stack
   $F + $10 /              \ calc number of lines      0 ?DO  I' I - 10 min /dump !
   0 ?DO  dup 8 u.r ." : " dup .line 10 + cr  LOOP          dup 8 u.r ." : " dup .line cr  10 +
           10 +LOOP
   drop r> base ! ;    drop r> base ! ;
   
 \ ?                                                     17may93jaw  \ ?                                                     17may93jaw


Generate output suitable for use with a patch program
Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.4

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help