Mountlist
In qualche caso può essere necessario intervenire sulle Mountlist per
modificare qualche parametro. In questa sezione vengono elencate
sommariamente tutte le voci consentite. La maggior parte dei campi
possiede un significato tecnico che ne limita l'uso ai programmatori.
Una Mountlist contiene delle informazioni che permettono al sistema di
avviare un handler (o device) AmigaDOS, cioè un programma capace di
gestire le risorse associate a un disco (PC0:, RAD:...) o più in
generale un dispositivo di input/output (CON:, AUX:, PIPE:...).
Le Mountlist sono contenute in file ASCII (vedere Mount e Mountlist),
in cui su ogni riga compare una parola chiave seguita dal segno di
uguale (=) e dal valore che deve assumere il parametro. Il valore può
essere un numero decimale, un numero esadecimale indicato dal prefisso
"0X", una stringa eventualmente tra virgolette ("..."). Se la
Mountlist contiene la descrizione di più device (secondo il sistema
adottato fino al 2.0 nel file DEVS:Mountlist e ancora supportato sotto
2.1, 3.0 e 3.1), la descrizione di ogni handler deve essere introdotta
dal nome del device (AUX:, PIPE:) e conclusa dal cancelletto (#).
Alcuni dispositivi, detti "automount" (le partizioni di molti hard
disk, per esempio), contengono al proprio interno un equivalente della
Mountlist. Tale Mountlist viene letta automaticamente dal DOS al
momento del reset. Per modificarne i valori si deve usare in questo
caso il programma HDToolBox. Alcuni dei parametri qui indicati si
ritrovano pertanto fra le voci gestite da HDToolBox.
Di seguito elenchiamo i vari parametri gestiti da Mount. Per capire
il significato di quelli che si riferiscono alla geometria di un disco
(floppy, hard disk, magneto-ottici, RAD:...), si tenga presente che un
disco o una partizione sono composti da un certo numero di cilindri
(LowCyl e HighCyl), che un cilindro è composto da tante tracce (Track)
quante sono le superfici (Surfaces), che una traccia è composta da un
certo numero di settori o blocchi (SectorsPerTrack o BlocksPerTrack) e
che un settore o blocco è composto da un certo numero di byte
(BytePerSector o BytePerBlock). Il termine blocco (Block) sotto 2.0,
2.1 e 3.0 viene usato per indicare i settori fisici del disco; dal 3.1
il termine blocco indica un blocco del file system che può
corrispondere a uno o più settori fisici del disco (SectorsPerBlock).
Il numero totale di byte di un disco o di una partizione è dunque dato
dalla formula:
(HighCyl-LowCyl+1)*Surfaces*BlocksPerTrack*BytePerBlock
oppure, sotto 3.1, da:
(HighCyl-LowCyl+1)*Surfaces*SectorsPerTrack*BytePerSector
Per alcuni parametri sono indicati i valori di default assunti da
Mount nel caso la voce non compaia nella Mountlist. Tali valori si
riferiscono alla versione 3.1 del sistema operativo così come si
evincono dalla documentazione ufficiale e potrebbero variare nelle
altre versioni del sistema operativo.
Activate
Il valore 1 indica di lanciare immediatamente l'handler caricandolo in
memoria. Di default (0) si attende il primo reale accesso al device.
A partire dal 2.1 sostituisce il parametro Mount.
Baud
Baud rate per la porta seriale. Di default è 1200. Vedere SER:.
BlocksPerTrack
Usato sotto 2.0, 2.1 e 3.0. Dal 3.1 gli è preferita la voce
SectorsPerTrack.
BlockSize
Usato sotto 2.0, 2.1 e 3.0. Dal 3.1 gli è preferito il parametro
SectorSize.
BootPri
Indica la priorità di boot per i device che lo consentono. Al momento
del boot l'AmigaDOS esamina i device nell'ordine generato da questo
valore alla ricerca di un disco con cui effettuare il boot del
sistema. Accetta valori compresi tra -128 e 127. -128 indica che il
device non è autoboot; 127 è invece la priorità massima. Siccome DF0:
ha la priorità 5, è bene tenere la priorità di tutti gli altri device
al di sotto di tale valore, per consentire di effettuare il boot da
floppy al semplice inserimento di un disco di boot al momento del
reset. Per l'hard disk la priorità consigliata è 0 (default), -5
quella per gli hard disk in rete, mentre i floppy aggiuntivi
(DF1:...DF3:) hanno sotto 2.0 le priorità fisse -10, -20, -30.
Buffers
Numero di buffer da 512 byte da utilizzare per la cache. Corrisponde
al valore che si può modificare con il comando AddBuffers.
Di default è 5.
BufMemType
Il tipo di memoria da utilizzare per le cache. 0 e 1 indicano
qualsiasi tipo di memoria, 2 e 3 (default) indicano memoria Chip e 4 e
5 memoria di tipo Fast. Può essere preferibile richiedere memoria di
tipo Fast per velocizzare le operazioni, ma in tal caso il file system
non può più operare quando venisse a mancare tale tipo di memoria.
Visto che la memoria Fast ha di solito la priorità su quella Chip,
conviene dunque indicare "qualsiasi tipo di memoria": la Fast verrà
usata di preferenza fino al suo eventuale esaurimento.
Control
Numero di bit, parità e bit di stop per la porta seriale (es. 8N1
significa 8 bit, nessuna parità e 1 bit di stop). Di default è 0.
Vedere SER:.
Device
Nome del device Exec utilizzato dall'handler AmigaDOS. Un handler
AmigaDOS può usare un device Exec per effettuare le operazioni di
input/output. Ad esempio l'handler CrossDOSFileSystem utilizza il
device Exec mfm.device. I device Exec sono normalmente posti in
DEVS:.
DosType
Il tipo di file system da usare. Il valore è di tipo esadecimale e
corrisponde a tre valori ASCII seguiti da un numero:
Valore ASCII File system
0x44F53000 DOS 0 OldFileSystem
0x44F53001 DOS 1 FastFileSystem
0x44F53002 DOS 2 OldFileSystem International (2.1)
0x44F53003 DOS 3 FastFileSystem International (2.1)
0x44F53004 DOS 4 OldFileSystem International Directory Caching (3.0)
0x44F53005 DOS 5 FastFileSystem International Directory Caching (3.0)
0x4D534400 MSD 0 MS-DOS (2.1)
EHandler
Come la voce Handler, ma viene creata anche la struttura DosEnvec.
FileSystem
Come Handler, ma in questo caso si comunica al sistema che il device è
un autentico file system, come PC0:, e non un generico device di
input/output, come AUX:.
Flags
Il suo valore viene usato dall'handler per aprire il device Exec
specificato in Device. Di default è 0.
ForceLoad
Il valore 1 (di default è 0) forza il caricamento del file system da
disco anche se questo si trova già in memoria. Di solito il codice
del file system viene condiviso per risparmiare memoria. Introdotto
dal 2.1.
GlobVec
E' un retaggio del BCPL, il linguaggio in cui fu scritto inizialmente
l'AmigaDOS: il valore da usare dipende dall'handler e non può in
alcun modo essere modificato dall'utente. -1 indica che non è
richiesto un Global Vector, 0 richiede un Global Vector privato, 2
(default) forza l'uso di un Global Vector condiviso; sono possibili
anche i valori -3 e -2 la cui comprensione richiede profonde
conoscenze sul funzionamento interno degli handler.
Handler
Nome del file eseguibile che contiene il codice di gestione del
device. Di default è posto in L:, ma è possibile indicare un percorso
completo.
HighCyl
Il cilindro finale. In un floppy è solitamente l'ultimo cilindro
fisico del disco, ma se il disco è diviso in partizioni, come avviene
sugli hard disk, indica l'ultimo cilindro della partizione. Vedere
anche LowCyl.
Interleave
Dipende dal device e non viene quasi mai utilizzato. Di default è 0.
LowCyl
Il cilindro iniziale. In un floppy è solitamente il primo (0); se il
disco è diviso in partizioni, come avviene sugli hard disk, indica il
cilindro da cui inizia la partizione. Vedere anche HighCyl.
Mask
Questo valore esadecimale (da indicare con il prefisso "0x")
costituisce una maschera che limita l'accesso alla memoria durante i
trasferimenti in DMA (accesso diretto alla memoria senza passare dalla
CPU). Un valore pari a 0xFFFFFFFF (default) indica che non vi è alcun
limite ed è il caso ideale. Il valore 0xFFFFFFFE indica che non si
può accedere direttamente a blocchi di memoria non allineati alla word
(indirizzi dispari). Un valore adatto a molti driver è 0x00FFFFFE.
Ogni limite imposto da Mask rallenta le operazioni di lettura e
scrittura perché costringe il file system a copiare i dati in un'area
di memoria adatta (del tipo indicato da BufMemType), prima di dare
inizio al trasferimento in DMA.
MaxTransfer
Il numero massimo di byte trasferiti con un'unica operazione di
lettura o scrittura. Va espresso come valore esadecimale con il
prefisso "0x". Con certi hard disk IDE può essere necessario limitare
questo valore a 0x0000FFFF per ragioni di compatibilità. Il valore di
default è 0x007FFFFF.
Mount
Sinonimo di Activate, è stato introdotto dal 2.1. Obsoleto.
PreAlloc
Obsoleto.
Priority
La priorità del processo associato all'handler. Gli handler hanno di
solito una priorità più elevata degli altri programmi. Spesso si
usano i valori 5 e 10 (default), mentre i programmi utente non
dovrebbero mai superare la priorità 4 proprio per non interferire con
gli handler AmigaDOS.
Reserved
Numero di blocchi destinati a contenere il programma che permette
l'autoboot da disco. Sui floppy sono riservati 2 blocchi (default).
SectorSize
Numero di byte presenti in un settore. Di solito sono 512 (default),
ma nei CD-ROM sono 2048. Introdotto dal 3.1 come sinonimo di
BlockSize.
SectorsPerBlock
Numero di settori fisici presenti in un blocco logico del file system:
di default è 1. Introdotto dal 3.1.
SectorsPerTrack
Numero di settori fisici presenti in una traccia. Introdotto dal 3.1
come sinonimo di BlocksPerTrack.
StackSize
L'handler è un programma e come tutti i programmi necessita di uno
stack, cioè di un area di memoria in cui depositare temporaneamente
dei valori. Questa voce indica l'ampiezza in byte dello stack e
dipende dall'handler (default 600).
Startup
Un numero o una stringa che verranno comunicati all'handler al momento
dell'avvio. Il suo uso dipende direttamente dall'handler. Alcune
versioni del comando Mount (quella del 2.0 in particolare) hanno
difficoltà nel trattare stringhe complesse poste tra virgolette.
Surfaces
Numero di superfici presenti nella geometria del disco. Un floppy ha
di solito 2 superfici, per esempio.
Unit
Il numero di unità gestita dall'handler. Ad esempio, PC0: si
riferisce all'unità 0 e PC1: all'unità 1. Il significato esatto di
questo campo dipende dal tipo di handler, ma generalmente si riferisce
a differenti unità fisiche (l'ennesimo floppy drive, l'ennesimo
elemento della catena SCSI...). Di default è 0.