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.
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
OPEN
.PRG
SEQ
, essi hanno il program location header nei primi 2 byte. Tutti i programmi in BASIC e in linguaggio macchina sono salvati come PRG
, e possono essere salvati in memoria con il comando LOAD
o la chiamata LOAD del KERNAL.REL
USR
SEQ
. Viene utilizzato da alcune applicazioni, la più nota delle quali è il GEOS, che salva i file in formato "VLIR", memorizzati come file USR
.DEL
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.
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.
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
SCRATCH0:FILE NAME
o S0:FILE NAME
RENAME0:NEW NAME=OLD NAME
o R0:NEW NAME=OLD NAME
COPY0:NEW NAME=EXISTING NAME
o C0:NEW NAME=EXISTING NAME
VALIDATE0
o V0
INITIALIZE0
o I0
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
).