3 \ Displaying data stack on screen for Forth beginners.
\r
4 \ HIOMULTI.F or HIOMULT2.F must be loaded first.
\r
10 GET-ORDER GET-CURRENT
\r
11 Ðe
\8bi·³Â
\89\9db-WORDLIST GET-ORDER 1+ SET-ORDER
\r
15 Ðe
\8bi·³Â
\89\9db-WORDLIST SET-CURRENT
\r
18 CREATE BLANKS SWIDTH CHARS ALLOT BLANKS SWIDTH CHARS BL FILL
\r
20 : #!R ( column row x width )
\r
21 >R BASE @ 10 = IF S>D ELSE 0 THEN \ col row d R: width
\r
22 SWAP OVER DUP 0< IF DNEGATE THEN
\r
24 2OVER 2OVER NIP R@ SWAP - BLANKS SWAP xySTR!
\r
25 DUP R> SWAP - >R 2SWAP SWAP R> + SWAP 2SWAP xySTR! ;
\r
27 NONSTANDARD-WORDLIST SET-CURRENT
\r
29 0 60 CELLS 60 CELLS HAT
\94ᣡ¥¡·¡
\88\81 \94ᣡ¥¡·¡
\88\81 BUILD
\r
30 \ 0 60 CELLS 60 CELLS HAT StackDisplayer StackDisplayer BUILD
\r
32 :NONAME
\94ᣡ¥¡·¡
\88\81 ACTIVATE
\r
34 \8cq¤b·± @ 0 DO PAUSE LOOP
\r
35 GRAPHIC? SCREEN-UPDATED? AND IF
\r
36 BASE @ DUP 10 <> IF HEX THEN
\r
37 MAX-X 8 - 0 S"
\8b¼·¡:" xySTR!
\r
38 SystemTask \ system task's userP
\r
40 SystemTask stackTop 's @ \ sp0 sp@
\r
41 4 CELLS + \ PAUSE pushes 4
\r
42 2DUP - 2/ ( 1 CELLS / ) DUP
\r
43 MAX-X 3 - 0 ROT 3 #!R
\r
45 DUP 1+ MAX-X 8 - SWAP S" " xySTR!
\r
47 DUP @ MAX-X SWIDTH - I 1+ ROT SWIDTH #!R CELL+
\r
54 SET-CURRENT SET-ORDER
\r