80 REM VARIABILI IMPORTANTI-DW$(N)-MATRICE PAROLE DIZIONARIO, DF$(N)-MATRICE SIGNIFICATI DIZIONARIO, NT$(N)-MATRICE NOTE DIZIONARIO, NW-NUMERO PAROLE NEL DIZIONARIO
180 GOSUB 2740: IF Z = 20 THEN PRINT CHR$(7): GOTO 180
190 IF NW = 0 AND SL < >1 AND SL < >7 AND SL < >9 THEN HOME : VTAB 12: PRINT "NESSUN DATO IN MEMORIA...": GOSUB 2660: GOTO 170
200 ON SL GOSUB 280,420,730,870,1220,1410,1930,2170,2520
210 B$ = "": ON A$ = "S" AND SL = 8 GOTO 90: GOTO 170
220 GOTO 130
230 IF DW$ = "" THEN 260
240 VTAB 1: HTAB 1: PRINT "LINGUA: "DW$"/"DF$;
250 VTAB 2: HTAB 1: PRINT "PAROLE NEL DIZIONARIO: "NW;
260 RETURN
270 REM INSERIMENTO NUOVE PAROLE
280 HOME : VTAB 1: HTAB 1: INVERSE : PRINT "INSERIMENTO PAROLE": NORMAL : PRINT
290 POKE 34,1
300 XX = 0: GOSUB 2090: IF XX = 27 THEN RETURN
310 NW = NW +1: IF NW >800 THEN HOME : VTAB 12: PRINT "HAI RAGGIUNTO IL MASSIMO DI 800 PAROLE.": PRINT : PRINT "SALVA IL DIZIONARIO.": GOSUB 2660: RETURN
670 HTAB 1: VTAB 23: CALL -958: HTAB 1: PRINT "<ESC> PER IL MENU, (C) PER CAMBIARE": PRINT "<RETURN> PER CONTINUARE";: GOSUB 2640: IF XX = 27 OR N = NW THEN 420
680 IF XX = 67 THEN 620
690 IF XX = 13 THEN HOME :N = N +1: GOTO 450
700 IF PEEK(37) >16 THEN N1 = PEEK(37): FOR N2 = 1 TO N1 -16: CALL -912: VTAB N1 -N: NEXT
710 RETURN
720 REM ROUTINE ORDINAMENTO ALFABETICO
730 HOME : POKE 34,1: INVERSE : PRINT "ORDINAMENTO ALFABETICO": NORMAL : VTAB 12: HTAB 8: INVERSE : PRINT "UN MOMENTO, PREGO...": NORMAL :Y = NW +1:M3 = Y
740 M3 = INT(M3/2): IF M3 = 0 THEN SS = 0: GOTO 850
1260 IF A$ = "1" THEN BEGIN$ = " A ":FINISH$ = " ZZZZ"
1270 IF A$ = "2" THEN GOSUB 1360
1280 VTAB 10: HTAB 1: CALL -958: HTAB 1: INPUT " (E) ESPLORAZIONE O (C) CONTROLLO: ";CTRL$: IF CTRL$ < >"E" AND CTRL$ < >"C" THEN 1280
1290 VTAB 13: HTAB 1: CALL -958: HTAB 1: INPUT "USCITA SU (P) STAMPANTE O (S) SCHERMO? ";SP$: IF SP$ < >"P" AND SP$ < >"S" GOTO 1290
1300 HOME : FOR N = 1 TO NW: IF SP$ = "P" THEN PRINT D$"PR#1": IF N = 1 THEN PRINT DW$"/"DF$" STAMPA DIZIONARIO": PRINT
1310 FD = 0: IF (BEGIN$ = <DW$(N)) AND (FINISH$ > = DW$(N)) THEN FD = 1: PRINT DW$(N)"-->"DF$(N);: IF NT$(N) < >"" AND NT$(N) < >" " AND NT$(N) < >" " THEN PRINT "("NT$(N)")";: REM 0,1,2 SPAZI FRA VIRGOLETTE
1320 IF FD AND CTRL$ = "C" AND N < >NW THEN PRINT D$: PRINT D$"PR#0": PRINT "<ESC> MENU, <RETURN> PER CONTINUARE": GOSUB 2620: IF XX = 27 THEN RETURN
1450 VTAB 20: PRINT "LA TUA FRASE SARA' TRADOTTA PAROLA PER": PRINT "PAROLA SE LE PAROLE SONO SEPARATE": PRINT "DA SPAZI MA SARA' TRADOTTA COME FRASE": PRINT "SE SONO SEPARATE DA ASTERISCHI (*)."
1470 PRINT : INVERSE : PRINT "STO ANALIZZANDO": NORMAL
1480 REM SE LE PAROLE SONO DIVISE DA SPAZI/DIVIDE IN PAROLE/SE LE PAROLE SONO DIVISE DA ASTERISCHI, DIVIDE IN FRASI
1490 L = LEN(T$): FOR N = 1 TO L
1500 ONERR GOTO 1560
1510 IF MID$ (T$,N,1) = " " THEN C5 = C5 +1:T$(C5) = MID$ (T$,C6,N -C6):C6 = N +1
1520 A = ASC( MID$ (T$,N,1)): IF A >90 OR A <65 AND A < >42 AND A < >32 THEN VTAB 17: HTAB 1: INPUT "SOLO CARATTERI MAIUSCOLI PER FAVORE: ";A$: GOTO 1410
1530 A = LEN(T$(C5)): IF A >1 THEN FOR N1 = 1 TO A: IF MID$ (T$(C5),N1,1) = "*" THEN T$(C5) = LEFT$(T$(C5),N1 -1) +" " + RIGHT$(T$(C5),A -N1)
1540 IF A >1 THEN NEXT N1
1550 NEXT N
1560 IF C5 >10 THEN PRINT : INPUT "TROPPE PAROLE: ";A$: GOTO 1410
1570 FOR N = 1 TO C5:T$(N) = " " +T$(N) +" ": NEXT N
1580 POKE 216,0: ONERR GOTO 2450
1590 ON VAL(A$) GOSUB 1620,1710
1600 GOTO 1410
1610 REM TRADUCE LE PAROLE DAL DIZIONARIO NELLA LINGUA SELEZIONATA
1620 HOME : PRINT : INVERSE : PRINT "STO TRADUCENDO": NORMAL : PRINT : GOSUB 1900
1630 FOR N = 1 TO C5:TRANS = 0: PRINT T$(N);
1640 FOR N1 = 1 TO NW: HTAB 20: PRINT "-->"N1;
1650 IF T$(N) = DW$(N1) THEN HTAB 20: PRINT "-->"DF$(N1)" ":TRANS = 1
1660 NEXT N1: IF TRANS = 0 THEN HTAB 20: PRINT "-->PAROLA SCONOSCIUTA": PRINT
1670 IF TRANS < >0 THEN HTAB 20: PRINT " ": REM 10 SPAZI
2220 VTAB T +2: HTAB L: POKE -16388,0: GET Z1$:X = PEEK( -16384): VTAB T +2
2230 IF X <32 THEN ON X GOTO 2220,2200,2220,2350,2220,2410,2220,2360,2400,2220,2220,2220,2300,2440,2220,2220,2430,2220,2220,2220,2380,2220,2220,2220,2220,2420: GOTO 2220
2240 IF E = 1 THEN M$ = LEFT$(M$,L -1) +Z1$ + MID$ (M$,L +1): HTAB L: PRINT Z1$;:L = L +1: GOTO 2220
2250 IF E = 2 THEN M$ = LEFT$(M$,L -1) +Z1$ + MID$ (M$,L): HTAB L: PRINT MID$ (M$,L);:L = L +1: GOTO 2220
2260 F = W:W = X: IF F < >X AND F THEN E = 1: GOTO 2240
2270 FOR J3 = L +1 TO LEN(M$): IF Z1$ < > MID$ (M$,J3,1) THEN NEXT : GOTO 2220
2585 IF FM <200 THEN ON ( PEEK(48896) = 76) +1 GOSUB 2600,2610: IF FM <100 THEN HOME : VTAB 12: PRINT "STO ESAURENDO LA MEMORIA": PRINT : PRINT "SALVA IL CONTENUTO DEL DIZIONARIO": GOSUB 2660