I Drive Commodore

MarC-ello 30-06-2003.
Categoria: Hardware

Una caratteristica peculiare dei sistemi Commodore è data dall’utilizzo di drive "intelligenti". Forse non tutti sanno con esattezza cosa questo significhi; in questo articolo cercherò, per quanto mi è possibile, di fare chiarezza in merito.
Prima di tutto, una doverosa precisazione: questa trattazione è riferita ai drive utilizzati negli elaboratori Commodore ad 8 bit (dal PET 2001 al Commodore 128).

Cominciamo con il chiarire cosa significhi il termine "intelligente" per un drive Commodore. Nell’appendice A del Manuale dell’Utente del Commodore 64 si può leggere la seguente frase (pag. 107):

"Le unità disco sono intelligenti, il che significa che dispongono di un proprio microprocessore e di una propria memoria".

035_drive_1541.jpg
Il Drive 1541

Questa frase fa capire come un drive Commodore (ad esempio un 1541, uscito insieme al C64 nel lontano ’82) sia un qualcosa di più di una semplice periferica; esso, infatti, rappresenta più un computer con uno scopo specifico, evidentemente in questo caso il supporto per la lettura/scrittura mediante floppy.

Il fatto che un drive Commodore sia assimilabile ad un computer implica che questo sia riprogrammabile; effettivamente è così. Un 1541 (o 1570, 1571, 1581, ecc…) dispone di una propria memoria ROM (ove risiede il DOS Commodore) e di una propria memoria RAM (circa 2 kilobyte). La ROM permette di ospitare il sistema operativo per la gestione dei dischi, e questo evita l’assorbimento di memoria al computer Commodore. I 2K di RAM servono per ospitare dati e codice che il computer può inviare al drive. In questo sta la programmabilità dei drive Commodore. Cerchiamo di capire in cosa consiste tale caratteristica ed i vantaggi che possono essere tratti da essa.

Riferiamoci, senza limitare la validità generale del discorso, al Commodore 64. Siamo in molti ad apprezzare ancora questa macchina, tuttavia questo non significa che fosse esente da difetti. In particolare, le routine del kernel del C64 (il CBM KERNAL) erano molto lente nella gestione del caricamento/salvataggio da/su floppy (per non parlare poi delle cassette). Tale lentezza è dovuta al fatto che la Commodore diede la priorità all’efficienza più che alla velocità. Erano infatti presenti dei controlli degli errori molto ripetitivi, che rallentavano l’I/O. Questo incrementò eccessivamente i tempi di accesso ai dati, e anche se tale gestione era esente da errori rendeva troppo grandi i tempi di lettura-scrittura.

035_drive_1541-II_1.jpg
Il Drive 1541-II

Le case software risolsero a loro tempo il problema scrivendo degli speciali programmi che gestivano meglio l’I/O, dando importanza anche alla velocità. La possibilità di programmazione del drive ebbe un ruolo fondamentale in tal senso. Ad esempio, il caricamento di un videogioco si attua in due fasi; nella prima fase, il C64 carica uno speciale programma di caricamento veloce (turboloader) e lo trasferisce nella RAM del 1541, poi, nella seconda fase, il 1541 esegue lui stesso tale programma, mentre il Commodore 64 si limita a ricevere i dati e a gestire il canale di comunicazione fra le due apparecchiature. Questo porta ad avere un multitasking reale, nel quale sia il C64 sia il drive eseguono i rispettivi programmi e si scambiano informazioni.

Per rendersi conto dell’effettiva possibilità del multitasking reale, basta osservare che con un Commodore 64 è possibile formattare un floppy e contemporaneamente continuare a scrivere del testo o fare altre operazioni, senza alcun rallentamento. Questo non è possibile con un PC in ambiente MS-DOS, perché nel PC un drive è soltanto un insieme di meccanismi, interamente controllati dal PC in tutti gli aspetti (oggi non ci accorgiamo di questo perché i floppy sono già formattati, ma una volta non lo erano…). Con Windows è possibile continuare a lavorare mentre si formatta, ma si riscontrano dei rallentamenti (almeno con il mio sistema Windows 98 – Pentium II 400 MHz – 64 Mb RAM).

Addirittura è possibile collegare ad un C64 fino a quattro drive, così ad esempio con uno si può formattare un floppy, con un altro si può cancellare un file su un altro floppy, con un altro si può compattare il contenuto di un ulteriore altro floppy, ecc… Queste infatti sono tutte operazioni gestite interamente dal drive, il quale richiede soltanto al C64 l’invio del comando relativo.

Commenti
Commenta gioco Ci sono 9 commenti per questo articolo. Registrati se vuoi lasciarne uno.
C'è una cosa che non riesco a capire. Voglio aquistare un drive 1541 ma non ho floppy da 5" e 1/4. Vanno bene anche quelli X IBM compatibile, indicati in genere 2D? Basta quindi riformattarli nel formato commodore? Oppure devono essere quelli specifici a bassa densità.
# - postato da Jonathan - 15 January 2008 [11:46]
Vi segnalo che quello che tu chiami 1541 in realtà è 154I (con la I finale, non la 1)
# - postato da Davide - 22 April 2008 [12:05]
154I? Si, e la marmotta fa su la cioccolata... e' una leggenda metropolitana diffusasi presso molti sempliciotti. E' solo un 1 scritto con un font diverso, tutti i cataloghi e lo stesso manuale indica 1541 LINK
# - postato da iAN CooG/HF - 22 April 2008 [21:45]
@DAVIDE: Ma che idiozia... perchè non ti documenti come si deve prima di postare? I soliti N00B....
# - postato da Raffox - 22 April 2008 [21:59]
LINK (thread del 2006 su comp.sys.cbm sulla diatriba 1541-154I)
# - postato da fab - 30 April 2008 [14:06]
E' possibile usare qualsiasi floppy 5'25" senza particolari problemi (io ne ho preso qualcuno da ebay per 286 ;) ), basta formattarli .
# - postato da Falko - 02 February 2009 [06:31]
Non è possibile utilizzare qualunque tipo di floppy, ma appunto solo quelli DS/DD, a meno di non voler incorrere in problemi di corruzione dei dati. I dischi HD sono progettati per funzionare esclusivamente con i corrispondenti drive pc e hanno una densità di traccia per pollice (tpi) doppia rispetto agli precedenti. E' questo fattore che crea problemi rispetto alla testina di lettura/scrittura del drive commodore. Maggiori riferimenti sui formati qui LINK
# - postato da AndreaP - 08 March 2009 [18:56]
Oltre a scusarmi per gli eRori di stUmpa del commento precedente, segnalo che il floppy drive di un 286 è molto probabilmene da 360kb, e quindi utilizza gli stessi DS/DD dei commodore. Da questo però non si può dedurre che tutti i floppy per pc vadano bene con il 1541.
# - postato da AndreaP - 08 March 2009 [19:00]
Rileggendo questo articolo che avevo scritto ormai molti anni fa, ritengo utile riportare qualche precisazione. L'analisi qui riportata in merito all'affidabilità dei 1541 è valida dal punto di vista software, quindi posso tuttora confermare che le routine di caricamento originali Commodore sono lentissime ma molto affidabili. Tuttavia, un problema presente nelle prime versioni del 1541 è il possibile disallineamento della testina. Un moderato disallineamento in genere non comporta problemi, specialmente con il KERNAL Commodore. Un disallineamento più marcato porta invece ad avere problemi, specialmente con i turboloader. Ciò detto, va precisato che l'inconveniente riguarda più che altro i 1541 prima serie, a causa dell'alimentatore integrato che sviluppa calore. Tale calore può fare ruotare, in condizioni particolarmente sfavorevoli, una puleggia rispetto al suo albero, causando il disallineamento. Nei 1541-II, il problema è stato pressoché risolto. Ritengo anche utile rilevare che molto spesso un apparente disallineamento della testina in realtà nasconde problemi ben più semplici: guide sporche e/o scarsamente lubrificate, testina da ripulire. Il disallineamento è un problema molto meno frequente di quanto potrebbe sembrare, anche nei più vecchi 1541. Quanto alla classica "mitragliata" del 1541, non è un bug ma una caratteristica progettuale. Inserendo un dischetto da formattare, l'unico modo per trovare la prima traccia per la testina è quello di andare indietro di 35 tracce. Se in quel momento la testina si trova nella traccia 10, i restanti 25 passi indietro saranno "mitragliate". In questo modo, ovunque si trovi, la testina andrà con certezza a battuta. Non fu inserito un sensore inizialmente per motivi di risparmio, venne poi aggiunto nei 1541C ma rimase inutilizzato per evitare problemi di compatibilità. Curiosità: alcune 1541 C con portellino (meccanica ALPS) mitragliano sempre: basta in questo caso sostituire la ROM del S. O. con quella di un 1541-II.
# - postato da MarC-ello - 31 May 2017 [19:58]
Commodore 64
Pannello Utente
278 Visitatori, 4 Utenti
Roberto, Raffox, Lordfener75, Pac76
Ciao, ospite!
(Login | Registrati)
Merchandising
Ultimo Commento
Clicca per leggere tutti i commenti
Aquanaut
Se non fosse per il titolo "aqua" e il vedere perlomeno nelle prime schermate la superficie della stessa sembrerebbe più di guidare un'astronave in uno spazio / caverne aperte sullo stile di Fort Apocalypse che non un gioco ambientato ...
leggi »
Andy/AEG
Articolo
Intervista a Luciano Merighi (Merifon)
Ottimo articolo… solo una nota all’Autore dell’articolo… tra i programmatori bolognesi “pionieri” c’ero anche io: Andrea Paselli! Con Luca Zarri e Marco Corazza ho realizzato Chuck Rock, Over The Net, Mystere, Halley Adventure… ...
Andrea Paselli
Superlink