10 DEFFNucase(lcase$) 20 REM Returns a string 30 REM ASCii values of a,z are 97,122 40 FORX%=1TOLEN(lcase$) 50 IFASC(MID$(lcase$,X%,1))>96 AND ASC(MID$(lcase$,X%,1))<123 THENlcase$=LEFT$(lcase$,X%-1)+CHR$(ASC(MID$(lcase$,X%,1))AND&DF)+RIGHT$(lcase$,LEN(lcase$)-X%) 60 NEXT 70 =lcase$ 80 : 90 DEFFNgetline(length%) 100 REM Returns a string 110 DIM line% length% 120 DIM block% &5 130 P%=block% 140 [OPT2:EQUBline% MOD256:EQUBline% DIV256:EQUBlength%:EQUB32:EQUB126:] 150 A%=0:X%=block% MOD256:Y%=block% DIV256:CALLoswd 160 =$line% 170 : 180 DEFFNgotbadchr(name$,invalid$) 190 REM Returns "FALSE" if all the letters are OK 200 line%=0 210 FORX%=1TOLEN(invalid$) 220 line%=line% OR INSTR(name$,MID$(invalid$,X%,1)) 230 NEXT 240 =line%