dsforth: some optimisations
[urasm.git] / dsforth / dump.zas
blob20da703529a1bffda48c1181e1a55649a06ae9c2
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ;; memory dumping utility
3 ;; coded by Ketmar
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 $FORTH_WORD (DUMP-8B)
7 ;; ( a -- )
8   DUP LIT 8 + SWAP (DO)
9 dump8b0:
10   I C@ 0 <# # # #> TYPE SPACE
11   (LOOP) dump8b0
12   ;S
13 $FORTH_END_WORD (DUMP-8B)
15 $FORTH_WORD (DUMP-8C)
16 ;; ( a -- )
17   DUP LIT 8 + SWAP (DO)
18 dump8c0:
19   I C@  XEMIT
20   (LOOP) dump8c0
21   ;S
22 $FORTH_END_WORD (DUMP-8C)
24 $FORTH_WORD DUMP
25 ;; ( a len -- )
26   BASE @ >R HEX
27 dump0:
28   DUP 0 > 0BRANCH dumpq
29   CR  SWAP  DUP 0 <# # # # # #> TYPE  LIT 58 EMIT  SPACE
30   DUP (DUMP-8B) SPACE  DUP (DUMP-8C)
31   LIT 8 +  SWAP LIT 8 -
32   BRANCH dump0
33 dumpq:
34   R> BASE !  2DROP  CR
35   ;S
36 $FORTH_END_WORD DUMP