Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Dec 2020 23:07:05 +0000 (UTC)
From:      Toomas Soome <tsoome@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r368266 - head/stand/ficl/softwords
Message-ID:  <202012012307.0B1N75j1035963@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tsoome
Date: Tue Dec  1 23:07:05 2020
New Revision: 368266
URL: https://svnweb.freebsd.org/changeset/base/368266

Log:
  ficl: make dump a bit friendlier
  
  would be nice to have dump to output hex and ascii.

Modified:
  head/stand/ficl/softwords/softcore.fr

Modified: head/stand/ficl/softwords/softcore.fr
==============================================================================
--- head/stand/ficl/softwords/softcore.fr	Tue Dec  1 22:53:33 2020	(r368265)
+++ head/stand/ficl/softwords/softcore.fr	Tue Dec  1 23:07:05 2020	(r368266)
@@ -67,6 +67,12 @@ variable span
 : tuck    ( y x -- x y x)  swap over ; 
 : within  ( test low high -- flag )   over - >r - r>  u<  ;
 
+: u.r ( n +n -- )
+  swap 0 <# #s #>
+  rot over - dup 0< if
+    drop else spaces
+  then
+  type space ;
 
 \ ** LOCAL EXT word set
 \ #if FICL_WANT_LOCALS
@@ -91,12 +97,32 @@ variable span
 
 \ ** TOOLS word set...
 : ?     ( addr -- )  @ . ;
-: dump  ( addr u -- )
-    0 ?do
-        dup c@ . 1+
-        i 7 and 7 = if cr endif
-    loop drop
-;
+
+Variable /dump
+
+: i' ( R:w R:w2 -- R:w R:w2 w )
+  r> r> r> dup >r swap >r swap >r ;
+
+: .4 ( addr -- addr' )
+    4 0 DO  -1 /dump +!  /dump @ 0<
+        IF 3 spaces  ELSE  dup c@ 0 <# # # #> type space  THEN
+    char+ LOOP ;
+
+: .chars ( addr -- )
+    /dump @ over + swap
+    ?DO I c@ dup 127 bl within
+        IF  drop [char] .  THEN  emit
+    LOOP ;
+
+: .line ( addr -- )
+  dup .4 space .4 ." - " .4 space .4 drop  16 /dump +!  space .chars ;
+
+: dump  ( addr u -- ) \ tools dump
+    cr base @ >r hex        \ save base on return stack
+    0 ?DO  I' I - 16 min /dump !
+        dup 8 u.r ." : " dup .line cr 16 +
+        16 +LOOP
+    drop r> base ! ;
 
 \ ** SEARCH+EXT words and ficl helpers
 \ BRAND-WORDLIST is a helper for ficl-named-wordlist. Usage idiom:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202012012307.0B1N75j1035963>