| 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).