dsforth: added `[CHAR]`
[urasm.git] / dsforth / main_vlist.zas
blobbd4ee82f67be8529f9e6de3d908df886129df265
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ;; "WORDS"
3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5 $FORTH_WORD KEY-WAIT-CR-SPACE
6 ;; k8
7 ;; ( -- )
8 key_wait_cr_space_loop:
9   KEY
10   DUP CHCR = SWAP BL = OR
11   0BRANCH key_wait_cr_space_loop
12   ;S
13 $FORTH_END_WORD KEY-WAIT-CR-SPACE
15 $FORTH_WORD KEY-SCROLL-MSG-WAIT
16 ;; k8
17 ;; ( -- )
18   (.") "\r<press ENTER...>"  ;;"
19   KEY-WAIT-CR-SPACE
20   EMITCR CONWIDTH 1- SPACES EMITCR
21   ;S
22 $FORTH_END_WORD KEY-SCROLL-MSG-WAIT
24 ;; k8
25 $FORTH_VAR (SCROLL-CRCOUNT)  0
26 $FORTH_VAR (SCROLL-CRMAX)    20
28 $FORTH_WORD (SCROLL-CR-RESET)
29 ;; k8
30 ;; ( -- )
31   (SCROLL-CRCOUNT) 0! ;S
32 $FORTH_END_WORD (SCROLL-CR-RESET)
34 $FORTH_WORD (SCROLL-CR)
35 ;; k8
36 ;; ( -- )
37   CR
38   (SCROLL-CRCOUNT) @ 1+
39   DUP (SCROLL-CRMAX) @ >= 0BRANCH words_cr_nowait
40   KEY-SCROLL-MSG-WAIT
41   DROP 0
42 words_cr_nowait:
43   (SCROLL-CRCOUNT) !
44   ;S
45 $FORTH_END_WORD (SCROLL-CR)
47 $FORTH_WORD WORDS
48 ;; AberSoft, k8
49 ;; ( -- )
50   0 >R  CONTEXT @ @
51   (SCROLL-CR-RESET)
53 vlist0:
54   SHOW-HIDDEN @ 0= 0BRANCH vlist0_1
55   ;; check if hidden word
56   DUP 1+ C@ LIT 40 - 0BRANCH vlist4
58 vlist0_1:
59   DUP C@ LIT 31 AND  R@  SWAP  -  DUP 0< 0BRANCH vlist1
60   (SCROLL-CR) DROP  DUP C@ LIT 31 AND  CONWIDTH  SWAP  -
61 vlist1:
62   RDROP >R
64   DUP
65   ;;  ID.
66   COUNT LIT 31 AND -DUP 0BRANCH vlistT9
67   0 (DO)
68 vlistT1:
69     DUP C@ LIT 127 AND XEMIT 1+
70   (LOOP) vlistT1
71 vlistT9:
72   DROP
74   R@ 0= 0BRANCH vlist2
75   (SCROLL-CR) RDROP CONWIDTH BRANCH vlist3
76 vlist2:
77   SPACE  R> 1-
79 vlist3:
80   >R
81 vlist4:
82   PFA LFA @ DUP 0= ?BREAK OR
83   0BRANCH vlist0
84   R> 2DROP ;S
85 $FORTH_END_WORD WORDS