Voglio essere sincero e franco, per non dare illusioni.
Trovo il programma abbastanza inutile nella forma attuale, esistono decine
di shell/wedges/disk tools molto piu' versatili e potenti sin dagli albori,
basta vedere sul disco stesso fornito con il 1541, ma al di la' della
valutazione soggettiva, e considerandolo pura didattica, presenta evidenti
vizi di forma. Vediamo che si puo' migliorare:
5 FOR a=1 TO 11:READ l$:FOR r=1 TO 200:NEXT r
85 FOR t1=1 TO 1000:NEXT t1
95 FOR t2=1 TO 2500:NEXT t2
e cosi' via per tutto il resto del programma: fai uso eccessivo di
variabili temporanee. Usa meno variabili possibile, occupano memoria e
piu' ne usi piu' il basic ci impiega a cercarle quando vuoi usarle.
510 ON n GOTO
ON GOSUB e' meglio in questi casi.
1000 OPEN 1,8,15
1010 INPUT#1,e$,er$,t$,s$
1020 CLOSE 1
1050 PRINT "stato del disco inserito":PRINT
Ma quale "stato del disco INSERITO"?? =)
E' solo lo stato del drive.
1060 PRINT:IF er$="ok" THEN PRINT "nessun errore presente"
Non e' certo cosi' semplicemente che si controllano gli errori nei
settori del floppy.
2020 PRINT:PRINT "{!*3} il file ''";ca$;"''"
Inezia formale: non usare 2 apici, per stampare il doppio apice usa CHR$(34)
2040 PRINT:INPUT "sei certo di voler procedere (s/n)";co$
2050 IF co$="s" THEN GOTO 2065
2055 IF co$="n" THEN GOTO 10010
2060 GOTO 2040
Anche qua, usare subroutines
2070 OPEN 2,8,15,"s:"+ca$:CLOSE 2
Non e' un errore, ma mi chiedo perche'usare un numero di file sempre diverso
per ogni comando, e per di piu' una sub routine per ogni open/close...
Basterebbe una variabile stringa contenente il comando da eseguire, una sub
OPEN 1,8,15,co$:CLOSE 1
(eventuale controllo e stampa del codice di errore/ok che invece non fai mai)
e un RETURN
5070 OPEN 5,8,15,"n:"+fo$+fd$:CLOSE 5
Manca la virgola!
8000 PRINT "inizializzazione lettore"
8010 PRINT:INPUT "vuoi procedere con l'operazione (s/n)";in$
Operazione in cui e' inutile chiedere conferma.
Ora che ho fatto un po' di pulci, direi che puoi iniziare a sistemarlo,
giusto per fare un po' di pratica con le subroutines.
Ma la cosa piu' importante e' quella di aggiungere funzioni piu' utili
tipo la lettura della directory, lettura, editing e scrittura/spostamento di
blocchi sul disco, verifica e visualizzazione della BAM, test di
lettura/scrittura del disco per verifica errori.
Altrimenti, ripeto, un programma che fa SOLO i comandi base del dos non
serve davvero a niente.