inc b\r
push hl ;symtbl ptr\r
push de ;inpsym ptr\r
-fs_2:\r
+fs_nxtchar:\r
ld a,(de)\r
djnz fs_3\r
- cp a,':'\r
- jr nz,fs_21\r
- inc de\r
- pop hl\r
- jr fs_cont_1\r
-\r
-fs_21:\r
call test_sym_char\r
jr z,fs_cont\r
pop hl ;inpsym ptr (discard)\r
+ inc de\r
+ cp a,':'\r
+ jr z,fs_cont_1\r
+ dec de\r
+\r
pop hl ;symtbl ptr\r
inc hl\r
ld a,(hl) ;symval h\r
or a ;clear carry\r
pop bc\r
ret\r
+\r
fs_3:\r
inc de\r
dec hl\r
xor (hl)\r
and c\r
- jr z,fs_2\r
+ jr z,fs_nxtchar\r
fs_cont: ;start over\r
pop de ;inpsym ptr\r
fs_cont_1:\r
push de\r
push bc\r
l0edah:\r
- call get_char_upper\r
+ ld a,(de)\r
cp (hl)\r
jr nz,l0ee2h\r
inc de\r
; return nc if valid alfanumeric char\r
\r
test_alphanum:\r
- cp 'z'+1\r
+ cp 'z'\r
+ ret z\r
ccf\r
ret c\r
cp 'a'\r
ret nc\r
- cp 'Z'+1\r
+ cp 'Z'\r
+ ret z\r
ccf\r
ret c\r
cp '?'\r
ret nc\r
test_numeral:\r
- cp '9'+1\r
+ cp '9'\r
+ ret z\r
ccf\r
ret c\r
cp '0'\r