ELLING to determine if the spelling is correct" \ & PRINT "SAVE to save the word to a file" \ & PRINT "EXIT to leave the program" \ & PRINT 2200 ! & !get the option & ! 2210 INPUT "Your option"; OPTION$ 2220 IF OPTION$ = "" THEN OPTION$ = "EXIT" 2230 OPTION$ = CVT$$(OPTION$,2%+4%+32%) & !get rid of spaces and junk; capitalize 2240 OPTION$ = LEFT(OPTION$,3%) + "*" 2300 ! & !see if the option is valid & ! 2310 LOC% = INSTR(1%,OPTLIST$,OPTION$) 2320 IF LOC% = 0% & THEN PRINT BELL$;"The option you specified is not one of those listed." \ & GOTO 2100 2400 ! & !if valid, convert to number & ! 2410 OPTION% = 1% + ( LOC% - 1% ) / 4% 2990 RETURN 8000 ! & ! & ! FUNCTIONS & ! & ! 8100 ! & !capitalize. (works for a single letter or a word) & ! 8110 DEF FNUPPER$(A$) = CVT$$(A$,32%) 8200 ! & !convert to lower case. Designed for one letter only. & ! 8210 DEF FNLOWER$(A$) 8220 FNLOWER$ = A$ 8230 IF A$ = "'" THEN GOTO 8290 8240 IF A$ = FNUPPER$(A$) & THEN FNLOWER$ = CHR$(ASCII(A$)+32%) 8290 FNEND 8300 ! & !Check to see if argument is a real word & ! 8310 DEF FNCHECK%(WORD$) 8320 FNCHECK% = TRUE% 8330 WORD$ = CVT$$(WORD$,32%) !convert lower case to upper case 8340 FOR CH% = 1% TO LEN(WORD$) 8350 IF INSTR(1%,ALPHABET$,MID(WORD$,CH%,1%)) & THEN GOTO 8360 8360 NEXT CH% 8390 FNEND 8400 ! & !check for proper order & ! 8410 DEF FNBEFORE%(A$,B$) 8420 FNBEFORE% = TRUE% 8430 IF FNUPPER$(A$) < FNUPPER$(B$) & THEN GOTO 8490 & !different letters in correct order: done 8440 IF FNUPPER$(A$) > FNUPPER$(B$) & THEN FNBEFORE% = FALSE% \ & GOTO 8490 & !different letters in wrong order: return false 8450 IF A$ > B$ & THEN FNBEFORE% = FALSE% & !same letter but first is lower case, second upper. & !program considers them in wrong order. 8490 FNEND 9000 ! & ! & ! Error Routine & ! & ! 9100 ! & !^C and ^Z errors & ! 9110 !IF ERR = 28 & !OR ERR = 11 & !THEN Z$ = SYS(CHR$(6%)+CHR$(-7%)) \ & ! RESUME 9200 ! & !Expected errors (by line number) & ! 9210 IF ERL = 19130 THEN RESUME 19200 & !SAVE file wasn't there 9600 ! & !Expected errors (with no specific line number) & ! 9900 ! & !Unexpected errors & ! 9910 Z$ = SYS(CHR$(6%)+CHR$(9%)+CHR$(ERR)) 9920 ERROR$ = RIGHT(Z$,3%) 9930 PRINT " ***** O No! *****" \ & PRINT " "; ERROR$; " at line";ERL \ & PRINT " Please do not consult author." 9990 GOTO 32767 11000 ! & ! SUBROUTINE: ALPHA Option & ! 11010 FOR RPT% = 1% TO LEN(WORD$) - 1% 11020 FOR C% = 1% TO LEN(WORD$) - RPT% 11130 IF FNBEFORE%(MID(WORD$,C%,1%),MID(WORD$,C%+1%,1%)) & THEN GOTO 11150 11140 WORD$ = LEFT(WORD$,C%-1%) + MID(WORD$,C%+1%,1%) & + MID(WORD$,C%,1%) + RIGHT(WORD$,C%+2%) 11150 NEXT C% 11160 NEXT RPT% 11990 RETURN 12000 ! & ! SUBROUTINE: COMPRESS Option & ! 12010 FOR C% = 1% TO LEN(WORD$) 12020 C$ = MID(WORD$,C%,1%) 12030 IF C$ = "" THEN 12060 12040 J% = INSTR(C%+1%,WORD$,FNUPPER$(C$)) \ & IF J% <> 0% & THEN WORD$ = LEFT(WORD$,J%-1%) + "" + RIGHT(WORD$,J%+1%) \ & GOTO 12030 12050 J% = INSTR(C%+1%,WORD$,FNLOWER$(C$)) \ & IF J% <> 0% & THEN WORD$ = LEFT(WORD$,J%-1%) + "" + RIGHT(WORD$,J%+1%) \ & GOTO 12030 12060 NEXT C% 12070 WORD$ = CVT$$(WORD$,4%) 12990 RETURN 13000 ! & ! SUBROUTINE: REVERSE Option & ! 13010 T$ = WORD$ \ & WORD$ = "" 13020 FOR C% = 1% TO LEN(T$) 13030 WORD$ = LEFT(T$,1%) + WORD$ 13040 T$ = RIGHT(T$,2%) 13050 NEXT C% 13990 RETURN 14000 ! & ! SUBROUTINE: UPPER Option & ! 14010 WORD$ = CVT$$(WORD$,32%) 14990 RETURN 15000 ! & ! SUBROUTINE: LOWER Option & ! 15010 T$ = WORD$ \ & WORD$ = "" 15020 FOR C% = 1% TO LEN(T$) 15030 WORD$ = WORD$ + FNLOWER$(MID(T$,C%,1%)) 15040 NEXT C% 15990 RETURN 16000 WCWP BAS[.050021]WCWP .BAS[.050021]    X14|H [4;Ik(&'( k ߫H&P` \RrPP2PPzPP{PPPPP2P~\$\\TD 0D \~ hi) +\ ^( n ^( np\^txY\^ˀ\!kVk<\F˰<˴ˬ\VVkˤ1`@lP ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789<@<SЬTЬ UQS>?\\\\\\\\\`:#@'="\abcdefghi\\\\\\\jklmnopqr\\\\\\\~stuvwxyz\\\\\\\\\\\\\\\\\\\\\\{ABCDEFGHI\\\\\\}JKLMNOPQR\\\\\\\\STUVWXYZ\\\\\\0123456789\\\\\  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~@ggh<i|o<m<4p<p<k|Zn<l fr rwx<x<x<x޺<w@]@@fjnr]Ze@@|> | |v<H|  |  |xz|  |zt f r   < &^ @&@'*/V,"?Lh:hmBmz|z{x`y~|fN|@@|@͂|@ ݃ƃ<ns<|Ŏ |️|ep|u|-@率|<ᄇ2ֻr||ZRM | ntB|xyvZw|J=|R>|J? nnaa|bddf! & ! SUBROUTINE: JUSTIFY Option & ! 16010 PRINT "Justification for this program is available from the author on request." \ & PRINT 16990 RETURN 17000 ! & ! SUBROUTINE: CENTER Option & ! 17010 LENG% = LEN(WORD$) 17020 IF LENG% / 2% * 2% = LENG% & THEN PRINT BELL$;"The word has no center." \ & RETURN 17030 INPUT "Letter to put at the center"; A$ 17040 IF A$ = "" THEN RETURN 17050 IF LEN(A$) > 1% & THEN PRINT BELL$;"One letter only." \ & GOTO 17030 17060 LETTER% = INSTR(1%,WORD$,A$) 17070 IF LETTER% = 0% & THEN PRINT "That letter doesn't appear in the word." \ & RETURN 17080 CENTER% = LENG% / 2% + 1% 17090 IF LETTER% <= CENTER% & THEN WORD$ = RIGHT(WORD$,LENG%-CENTER%+LETTER%+1%) & + LEFT(WORD$,LENG%-CENTER%+LETTER%) & ELSE WORD$ = RIGHT(WORD$,LETTER%-CENTER%+1%) & + LEFT(WORD$,LETTER%-CENTER%) 17990 RETURN 18000 ! & ! SUBROUTINE: SPELLING Option & ! 18100 ! & !get the right spelling & ! 18110 PRINT \ & PRINT "What is the correct spelling of your word"; \ & INPUTLINE CORRECT$ \ & CORRECT$ = CVT$$(CORRECT$,4%+8%+128%) & !trash leading, trailing spaces and junk 18200 ! & !convert to upper case for comparison & ! 18210 TWORD$ = CVT$$(WORD$,32%) 18220 CORRECT$ = CVT$$(CORRECT$,32%) 18300 ! & !do the comparison & ! 18310 IF TWORD$ = "RELIEF" AND CORRECT$ = "ROLAIDS" & OR TWORD$ = "ROLAIDS" AND CORRECT$ = "RELIEF" & THEN GOTO 18500 18320 IF TWORD$ = CORRECT$ & THEN GOTO 18500 18400 ! & !not correct & ! 18410 PRINT "Your word is not spelled correctly." 18420 RETURN 18500 ! & !correct & ! 18510 PRINT "Your word is spelled correctly." 18990 RETURN 19000 ! & ! SUBROUTINE: SAVE Option & ! 19100 ! & !find out the name of the file and try to open it & ! 19110 PRINT "Name of file in which to save the word"; 19120 INPUTLINE FILE$ \ & FILE$ = CVT$$(FILE$,-1%) & !do all the conversions 19130 OPEN FILE$ FOR INPUT AS FILE #1% & !if there was an error above, program will go to 19200 19140 GOTO 19300 19200 ! & !file wasn't there & ! 19210 PRINT BELL$; 19220 PRINT "File doesn't exist." 19230 RETURN 19300 ! & !file was there & ! 19310 PRINT BELL$; 19320 INPUT "File already exists. Is it okay to replace it"; ANSWER$ 19330 ANSWER$ = CVT$$(LEFT(ANSWER$,1%),-1%) 19340 IF ANSWER$ = "Y" & THEN GOTO 19400 & ELSE RETURN 19400 ! & !are you sure & ! 19410 FOR REALLY% = 0% TO 5% 19420 PRINT "Are you"; \ & PRINT " really"; IF REALLY% > 0% \ & PRINT ", really"; FOR R% = 1% TO REALLY% - 1% \ & PRINT " sure you want to delete it"; 19430 INPUT ANSWER$ \ & ANSWER$ = CVT$$(LEFT(ANSWER$,1%),-1%) 19440 IF ANSWER$ <> "Y" THEN RETURN 19450 NEXT REALLY% 19500 ! & !they are sure & ! 19510 KILL FILE$ 19520 PRINT "The file has been deleted." 19990 RETURN 32767 PRINT "Ready" \ & PRINT \ & Z$ = SYS(CHR$(5%)) \ & END