1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;; based on the sources from AberSoft
5 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10 defb 172,127 ;; AT->(c)
11 defb 226,126 ;; STOP->~
12 defb 195,124 ;; NOT->|
13 defb 205,92 ;; STEP->\
15 defb 203,125 ;; THEN->}
18 $FORTH_CONST (KEY-SHOW-CURSOR) key_show_cursor
19 key_show_cursor: defb 1,0
23 $FORTH_CODE_WORD LAST-KEY-RESET
27 ld (#5C08),a ;; last_k
29 $FORTH_END_CODE_WORD LAST-KEY-RESET
32 $FORTH_CODE_WORD LAST-KEY?
35 ld a,(#5C08) ;; last_k
39 jr nz,key_query_not_cs2
55 jr nz,key_query_trans_loop
60 $FORTH_END_CODE_WORD LAST-KEY?
64 ;; show cursor, wait for key
75 ld (#5C08),a ;; last_k
77 ;; change cursor shape according to FRAMES
79 ld a,(key_show_cursor)
83 ld a,(#5C78) ;; frames
84 and #2F ;; each 24th frame (~0.5 sec)
90 ;; check CAPS & change cursor shape
103 ;;; CALL #02BF ;; keyboard
104 ld a,(#5C08) ;; last_k
108 ;; something's pressed
113 ld a,#08 ;; CAPS flag
141 push hl ;; save keycode
144 ld a,(key_show_cursor)
146 jr z,key_skip_erase_cursor
153 key_skip_erase_cursor:
158 $FORTH_END_CODE_WORD KEY