add DUMP word for displaying raw memory

This commit is contained in:
Jesse D. McDonald 2020-11-07 14:25:49 -06:00
parent a143fdf7a4
commit 98731c5f01
1 changed files with 10 additions and 0 deletions

View File

@ -1063,6 +1063,16 @@ CREATE DISPLAY-ITEM-LIMIT 6 ,
DUP R0 <> IF " …" TYPE THEN DUP R0 <> IF " …" TYPE THEN
BEGIN 2DUP < WHILE CELL- DUP @ SPACE . REPEAT 2DROP EOL ; 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) \ Remove trailing whitespace from a string (only affects length)
: -TRAILING ( c-addr u1 -- c-addr u2 ) : -TRAILING ( c-addr u1 -- c-addr u2 )
BEGIN DUP AND-THEN 2DUP 1- + C@ SPACE? THEN WHILE 1- REPEAT ; BEGIN DUP AND-THEN 2DUP 1- + C@ SPACE? THEN WHILE 1- REPEAT ;