750 POKE G, LEN(B$) +2:X = G +1: FOR Y = 1 TO LEN(B$): POKE X, ASC( MID$ (B$,Y,Y)):X = X +1: NEXT : POKE X, ASC("/"): REM - POKE DICTIONARY PATHNAME INTO MEMORY
760 CALL M4: REM - DICTIONARY CHECK
770 IF PEEK(K) = 27 THEN HOME : GOTO 350
780 IF PEEK(K) < >0 AND PEEK(K) < >76 THEN HOME : PRINT : PRINT : PRINT CHR$(7)"SYSTEM ERROR # " PEEK(K): PRINT : PRINT SPC( 2)"PRESS A KEY": POKE D,0: WAIT C,128: POKE D,0: GOTO 350
1350 M$(1) = "ADD A WORD":M$(2) = "DELETE A WORD":M$(5) = "MOVE DICTIONARY TO /RAM5":M$(6) = "RECOVER DICTIONARY FROM /RAM5":M$(4) = "RETURN TO MAIN MENU":M$(3) = "EXAMINE DICTIONARY"
1370 HOME : ON A GOTO 1390,1440,3030,350,1660,1860
1380 REM - ADD WORDS
1390 PRINT : PRINT SPC( 2)"ADD WORDS TO DICTIONARY": PRINT SPC( 2);: FOR X = 1 TO 23: PRINT "=";: NEXT : PRINT
1400 VTAB 19: FOR X = 1 TO 40: PRINT "-";: NEXT : PRINT : INVERSE : PRINT "1";: NORMAL : PRINT " STOP ADDING AND UPDATE DICTIONARY": PRINT : INVERSE : PRINT "2";: NORMAL : PRINT " RETURN TO MAIN MENU": VTAB 5
1410 GOSUB 2750: IF ZA$ = "1" THEN GOSUB 2580
1420 GOTO 350
1430 REM - DELETE WORDS
1440 PRINT : PRINT SPC( 2)"DELETE WORDS FROM DICTIONARY": PRINT SPC( 2);: FOR X = 1 TO 28: PRINT "=";: NEXT : PRINT
1450 VTAB 19: FOR X = 1 TO 40: PRINT "-";: NEXT : PRINT : INVERSE : PRINT "1";: NORMAL : PRINT " STOP DELETING & UPDATE DICTIONARY": PRINT : INVERSE : PRINT "2";: NORMAL : PRINT " RETURN TO MAIN MENU": VTAB 5
1460 GOSUB 2750: IF ZA$ = "2" THEN 350
1470 V = 29952:F% = 8:ZF$ = B$: GOTO 2420: REM - CHECK PRESENCE OF DICTIONARY DISK
1480 HOME : PRINT : PRINT SPC( 2)"UPDATING THE DICTIONARY": PRINT : PRINT SPC( 2)"DO NOT HIT RESET"
1490 W = PEEK(V): IF W = 0 THEN HOME : GOTO 350
1500 ZA$ = "": FOR X = V +1 TO V +W:ZA$ = ZA$ + CHR$( PEEK(X)): NEXT :V = V +1 +W
1510 ZF$ = B$ +"/" + LEFT$(ZA$,1): ONERR GOTO 1530: REM - CHECK EXISTENCE OF DICTIONARY FILE
1710 FOR X = 65 TO 90: PRINT D$"OPEN"B$"/" CHR$(X): PRINT D$"CLOSE": NEXT
1720 PRINT D$"OPEN"B$",TDIR": PRINT D$"READ"B$:ZA = 0:ZB = 0: REM - GET SIZE OF DICTIONARY
1730 INPUT ZA$: INPUT ZA$: INPUT ZA$
1740 INPUT ZA$:ZC = VAL( MID$ (ZA$,23,6)):ZB = ZB +ZC: IF ZC >(ZA) THEN ZA = ZC
1750 IF ZA$ < >"" THEN 1740
1760 PRINT D$"CLOSE":ZA = ZA +ZB
1770 HOME : IF ZA >Q THEN PRINT : PRINT CHR$(7) SPC( 2)"NOT ENOUGH SPACE ON /RAM5": PRINT : PRINT SPC( 2)"PRESS RETURN TO CONTINUE": POKE D,0: WAIT C,128: POKE D,0: GOTO 350
2870 PRINT CHR$(7): POKE D,0: WAIT C,128: POKE D,0:ZS = PEEK(C): IF ZS < >13 AND ZS < >27 THEN 2870
2880 IF ZS = 27 THEN 350
2890 HOME : ON R GOTO 270,2420,2160
2900 REM - SUBROUTINE: CHECK FOR VALID PRODOS PATHNAME
2910 IF LEN(R$) <4 -2 *R OR LEFT$(R$,1) < >"/" OR RIGHT$(R$,1) = "/" OR R$ = "/RAM" THEN R% = 16: GOTO 2980
2920 IF R THEN 2950
2930 R% = 16: FOR XS = 2 TO LEN(R$): IF MID$ (R$,XS,1) = "/" THEN R% = 0
2940 NEXT : IF R% = 16 THEN 2980
2950 ONERR GOTO 2970
2960 PRINT D$"OPEN"R$",T$01"
2970 R% = PEEK(222): POKE 216,0: CALL 62248: PRINT D$"CLOSE": IF R% < >16 THEN 3010
2980 HOME : NORMAL : VTAB 4: PRINT SPC( 3) CHR$(15)"INCORRECT OR INCOMPLETE PATHNAME": PRINT : PRINT SPC( 3)R$: VTAB 15: PRINT SPC( 7)"PRESS RETURN TO TRY AGAIN": PRINT : PRINT SPC( 11)"OR ESC TO QUIT"
2990 PRINT CHR$(7): POKE D,0: WAIT C,128: POKE D,0:ZS = PEEK(C): IF ZS < >13 AND ZS < >27 THEN 2990
3000 HOME : IF ZS = 27 THEN POP : GOTO 350
3010 RETURN
3020 REM - EXAMINE DICTIONARY
3030 HOME : VTAB 2: PRINT SPC( 1)"FULL PATHNAME OF DICTIONARY:": VTAB 21: HTAB 12: PRINT "'?' FOR CATALOG": PRINT : HTAB 12: PRINT "'M' FOR MAIN MENU"
3040 VTAB 4: HTAB 2: PRINT B$ SPC( 64): VTAB 4: HTAB 2: INPUT "";ZA$: IF ZA$ < >"" AND ZA$ < >"?" AND ZA$ < >"M" AND ZA$ < > CHR$(109) THEN B$ = ZA$
3050 IF ZA$ = "?" THEN GOSUB 2150: GOTO 3030
3060 IF ZA$ = "M" OR ZA$ = CHR$(109) THEN 350
3070 VTAB 4: HTAB 2: PRINT B$ SPC( 64): IF B$ = "" THEN 3040
3080 IF B$ < >"/DICTIONARY" THEN R$ = B$:R = 1: GOSUB 2910: IF R% = 16 THEN 3040
3090 HOME : PRINT : PRINT SPC( 5)"*** EXAMINE DICTIONARY ***":M$(1) = "CHOOSE A LETTER":M$(2) = "RETURN TO MAIN MENU":M = 2: GOSUB 2330: IF A = 2 THEN 350
3100 HOME : PRINT : PRINT SPC( 2)"WHAT LETTER DO YOU WANT TO SEE? ";: INPUT "";ZA$: IF ZA$ = "" THEN 3100
3110 ZA = ASC(ZA$): IF ZA <65 OR (ZA >90 AND ZA <97) OR ZA >122 OR LEN(ZA$) >1 THEN 3100
3120 E$ = B$ +"/" + CHR$(ZA -32 *(ZA >90))
3130 F% = 11:ZF$ = E$: GOTO 2420
3140 HOME : PRINT SPC( 10)"DICTIONARY - " RIGHT$(E$,1): PRINT : PRINT SPC( 3)"PRESS CONTROL S TO PAUSE": PRINT SPC( 3)"OR ESC TO EXIT": POKE 34,5: PRINT
3150 ONERR GOTO 3200
3160 PRINT D$"OPEN"E$: PRINT D$"READ"E$
3170 SPEED= 100
3180 INPUT ZA$: PRINT ZA$: IF PEEK(C) >127 THEN POKE D,0: IF PEEK(C) = 27 THEN 3210
3190 GOTO 3180
3200 POKE 216,0: PRINT D$"CLOSE": PRINT : PRINT "NO MORE WORDS BEGINNING WITH " RIGHT$(E$,1)