Commodore DOS

Da Wikipedia, l'enciclopedia libera.
Commodore DOS
Sviluppatore Commodore International Ltd
Famiglia SO DOS
Release corrente 10.0 ()
Tipo di kernel kernel monolitico
Piattaforme supportate computer Commodore ad 8 bit
Stadio di sviluppo non più sviluppato
Sito web nessuno ufficiale

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 è integrato nella ROM dei drive floppy*.

(* I rari modelli di hard disk venduti dalla Commodore avevano anch'essi il DOS nella ROM.)

Versioni del CBM DOS[modifica | modifica sorgente]

Caratteristiche tecniche[modifica | modifica sorgente]

Directory e tipi di file[modifica | modifica sorgente]

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 come PRG, e possono essere salvati in memoria con il comando LOAD 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 file USR.

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 sorgente]

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 sorgente]

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 sorgente]

  • Immers, Richard; Neufeld, Gerald G. (1984). Inside Commodore DOS. The Complete Guide to the 1541 Disk Operating System. DATAMOST, Inc & Reston Publishing Company, Inc. (Prentice-Hall). ISBN 0-8359-3091-2.
  • Englisch, Lothar; Szczepanowski, Norbert (1984). The Anatomy of the 1541 Disk Drive. Grand Rapids, MI: Abacus Software (tradotto dalla versione originale tedesca del 1983, Düsseldorf: Data Becker GmbH). ISBN 0-916439-01-1.
  • Lundahl, Reijo (1986). 1541-Levyasema. Amersoft. ISBN 951-35-3707-7.