diff --git a/startup.4th b/startup.4th index ef1e31a..3e791c6 100644 --- a/startup.4th +++ b/startup.4th @@ -1063,6 +1063,16 @@ CREATE DISPLAY-ITEM-LIMIT 6 , DUP R0 <> IF " …" TYPE THEN BEGIN 2DUP < WHILE CELL- DUP @ SPACE . REPEAT 2DROP EOL ; +\ Display a block of memory +: DUMP ( addr u -- ) + OVER + 16 ALIGNED-TO ▪ SWAP TUCK -16 AND ▪ ?DO + I 0 <# ":" HOLDS 16 #SB [[ CHAR 0 ]] 9 #PAD #> TYPE + I 16 + I ?DO + DUP I C@ 0 <# 16 #SB [[ CHAR 0 ]] 2 #PAD + ROT I = IF [[ CHAR > ]] ELSE BL THEN HOLD BL HOLD #> TYPE + LOOP ▪ EOL + 16 +LOOP ▪ DROP ; + \ Remove trailing whitespace from a string (only affects length) : -TRAILING ( c-addr u1 -- c-addr u2 ) BEGIN DUP AND-THEN 2DUP 1- + C@ SPACE? THEN WHILE 1- REPEAT ;