Commodore DOS sistema operativo | |
---|---|
Sviluppatore | Commodore International Ltd |
Famiglia | DOS |
Release corrente | 10.0 |
Tipo di kernel | kernel monolitico |
Piattaforme supportate | computer Commodore ad 8 bit |
Stadio di sviluppo | non più sviluppato |
Commodore DOS, detto CBM DOS, era un sistema operativo per il disco utilizzato dai computer a 8 bit della Commodore. Diversamente dagli altri sistemi DOS, il CBM DOS era integrato nella ROM dei drive floppy e dei rari modelli di disco rigido venduti dalla Commodore.
Versioni del CBM DOS
[modifica | modifica wikitesto]- 1.0 - presente nei drive 2040 e 3040;
- 2.0 - presente nei drive 4040 e 3040;
- 2.5 - presente nei drive 8050;
- 2.6 - la versione più comune, integrata nei 1540, 1541, nei drive integrati dell'SX-64, nei 1551, nei 2031/2031LP e nei 4031;
- 2.7 - presente nei drive 8050, 8250/8250LP e SFD-1001;
- 3.0 - presente nei drive 1570, 1571 e 8280 (8 pollici) nonché nelle unità a disco rigido 9060 e 9090;
- 3.1 - presente nelle unità 1571 integrate nei computer C128D/C128DCR;
- 10.0 - presente nei drive per floppy da 3½ pollici 1581.
Caratteristiche tecniche
[modifica | modifica wikitesto]Directory e tipi di file
[modifica | modifica wikitesto]I dischi floppy possono contenere fino a 144 file. I nomi dei file possono essere lunghi fino a 16 caratteri. Non esistono sotto-directory e i nomi di file devono essere univoci; scrivendo direttamente alla tabella dei blocchi, è possibile avere più file con lo stesso nome. Un trucco molto comune utilizzato, ad esempio, da The Final Cartridge III, era quello di aggiungere nomi di file come "----------------"
del tipo DEL<
alla directory e poi riordinare tra quelle linee i file per formare dei gruppi. Molti sviluppatori di giochi, gruppi di membri di warez e hacker di demoscene utilizzavano trucchi simili.
C'era un altro trucco curioso: i nomi dei file potevano contenere caratteri composti da Shift+spazio, che veniva usato per creare codice come SAVE "PROGRAM
(shift+space),8,1:",8,1
, che apparirà nella directory come 32 "PROGRAM",8,1: PRG
. Quando l'utente muove il cursore all'inizio della linea e scrive LOAD
, sovrascrivendo la colonna della dimensione e premeva il tasto enter, il Commodore BASIC interpreta quella riga come LOAD "PROGRAM",8,1
.
Nel BASIC, la directory può essere visualizzata con LOAD "$",8
, seguita dal comando LIST
.
I seguenti tipi di file sono supportati:
SEQ
- File sequenziali, file che possono essere letti byte per byte o in accesso casuale. Molti dei file sono di questo tipo. Nel BASIC, essi possono essere aperti con il comando
OPEN
.
PRG
- Simile al tipo
SEQ
, essi hanno il program location header nei primi 2 byte. Tutti i programmi in BASIC e in linguaggio macchina sono salvati comePRG
, e possono essere salvati in memoria con il comandoLOAD
o la chiamata LOAD del KERNAL.
REL
- File relativi sono file con record di dimensione fissa.
USR
- File personalizzati dall'utente (User-specified files). Essi sono simili al tipo
SEQ
. Viene utilizzato da alcune applicazioni, la più nota delle quali è il GEOS, che salva i file in formato "VLIR", memorizzati come fileUSR
.
DEL
- Tipo di file non documentato, per uso interno. Strutturalmente, è simile al
SEQ
. I comandi DOS non possono creare file con questo tipo.
I file che contengono un asterisco *
(ad esempio, *SEQ
) sono file che non sono stati chiusi correttamente. I file con un segno del <
(ad esempio PRG<
) sono protetti e non possono essere cancellati.
Accesso ai file
[modifica | modifica wikitesto]Nel Commodore BASIC per leggere o scrivere un file si utilizza il comando OPEN
, che richiede 4 parametri: il numero del descrittore del file, il numero del device, il numero dell'accesso secondario e il nome del file. Per leggere un file normale si utilizza il comando OPEN 2,8,2,"0:EXAMPLE FILE,SEQ,READ"
. Il numero 8 si riferisce al primo drive floppy. Su sistemi a due drive, il 9 si riferisce al secondo drive. Dopo il nome del file c'è il tipo del file e la modalità d'accesso (READ
, WRITE
o APPEND
). Questi campi possono essere abbreviati alla loro prima lettera (ad esempio OPEN 2,8,2,"0:EXAMPLE FILE,S,R"
)
I file possono essere caricati e salvati con i comandi LOAD
e SAVE
. Il comando SAVE "FILE",8,1
salva il programma BASIC con l'estensione PRG
e il comando SAVE "0:FILE,SEQ,WRITE",8,1
salva il programma BASIC con l'estensione SEQ.
Command channel
[modifica | modifica wikitesto]Per accedere al DOS si utilizza il command channel. Questo canale è come un normale file, ma si utilizza il 15 come numero dell'accesso secondario.
È possibile conoscere lo stato del drive scrivendo i comandi OPEN 15,8,15: INPUT#15,E,E$,T,S: CLOSE 15: PRINT E,E$,T,S
. E
è il codice d'errore, E$
è il messaggio d'errore, T
e S
rappresentano la traccia e il settore dove è stato trovato l'errore. Il codice 0,"OK",0,0
indica che non vi è stato alcun errore. All'accensione, il drive restituisce la versione del DOS e il modello del drive: 73,"CBM DOS V2.6 1541",0,0
.
I comandi per la gestione del disco si scrivono attraverso il command channel: OPEN 15,8,15,"N0:WIKIPEDIA DOCS,WP":CLOSE 15
, questo comando effettuerà una formattazione del disco e lo nominerà come "WIKIPEDIA DOCS" con l'ID "WP".
Alcuni comandi caratteristici sono:
NEW0:DISKNAME,ID
o N0:DISKNAME,ID
- Formatta il disco. Il nome del disco può avere un massimo di 16 caratteri e il codice ID 2 caratteri. Il codice ID dovrrebbe essere unico per ogni disco.
SCRATCH0:FILE NAME
o S0:FILE NAME
- Elimina il file. I caratteri d'espansione ? e * sono supportati.
RENAME0:NEW NAME=OLD NAME
o R0:NEW NAME=OLD NAME
- Rinomina il file.
COPY0:NEW NAME=EXISTING NAME
o C0:NEW NAME=EXISTING NAME
- Copia il file.
VALIDATE0
o V0
- Marca come liberi tutti i blocchi non marcati o non utilizzati da nessun file ed elimina tutti i file non chiusi correttamente.
INITIALIZE0
o I0
- Reinizializza il drive e memorizza la tabella d'allocazione dei file (BAM).
Ci sono anche comandi per l'accesso casuale ai file: (BLOCK-READ
, BLOCK-WRITE
), gestione dei blocchi (BLOCK-ALLOCATE
, BLOCK-FREE
), gestione della memoria del 1541 ed esecuzione di codice attraverso il processore del 1541 (MEMORY-WRITE
, MEMORY-READ
, MEMORY-EXECUTE
, BLOCK-EXECUTE
, BUFFER-POINTER
) e funzioni definite dall'utente (USER
).
Bibliografia
[modifica | modifica wikitesto]- Richard Immers, Gerald G. Neufeld, Inside Commodore DOS. The Complete Guide to the 1541 Disk Operating System. DATAMOST, Inc & Reston Publishing Company, Inc. (Prentice-Hall), 1984, ISBN 0-8359-3091-2.
- Lothar Englisch, Norbert Szczepanowski, The Anatomy of the 1541 Disk Drive. Grand Rapids, MI: Abacus Software (tradotto dalla versione originale tedesca del 1983, Düsseldorf: Data Becker GmbH), 1984, ISBN 0-916439-01-1.
- Reijo Lundahl, 1541-Levyasema. Amersoft, 1986, ISBN 951-35-3707-2.