Le RamDisk
Le RamDisk est le disque virtuel, composé exclusivement de mémoire vive, toujours en double
densité (256 octets par secteur) et qui permet des accès plus rapides aux données que les supports magnétiques. De
plus, il est créé en mémoire commutable à partir de la
banque la plus éloignée, même si pour cela le système doit déplacer les
fichiers CHG de plusieurs banques. Sa capacité peut être fixée au choix à 64,
128, 192, 256 ou 320 kilooctets. Chaque banque du RamDisk est divisée en 4
pistes de 16 secteurs double densité, comportant donc chacun 256 octets. Lors
d'une opération RamDisk, la banque concernée est commutée dans lespace
cartouche ($0000-$3FFF, sur TO); c'est d'ailleurs la raison pour laquelle le
système d'exploitation RamDisk ne peut accéder à un secteur utilisateur s'il se
trouve dans cette zone.
Les secteurs sont sauvegardés de l'adresse $0000 vers l'adresse $3FFF (entrelacement 1) pour les
4 pistes internes à chaque banque RamDisk tandis que les banques sont
initialisées de la banque de numéro maximum vers la banque de numéro minimum.
Le nombre total de pistes varie en fonction de la capacité du RamDisk:
Taille du RamDisk
|
Nombre de pistes
|
Numéros de pistes
|
64
|
16
|
De 16 à 31
|
128
|
32
|
De 0 à 31
|
192
|
48
|
De 0 à 47
|
256
|
64
|
De 0 à 63
|
320
|
80
|
De 0 à 79
|
Dans la régularité physique d'un RamDisk, la piste 20 (FAT, catalogue et nom de disquette) fait
exception: quelque soit la capacité du RamDisk, cette piste se trouve toujours
dans la banque de numéro maximum, de l'adresse $0000 à $0FFF; pour un TO8 sans extension
mémoire, c'est la banque 15; avec extension, c'est la banque 31. Voici donc les
formules pour calculer le numéro de banque et l'offset d'un secteur RamDisk,
BanqueMax étant la banque de numéro maximum et tout résultat d'opération
restant entier:
Piste
|
RamDisk
|
Formule
|
20
|
Tous
|
Adresse
= $0000
|
Tous
|
Banque = BanqueMax
|
Inférieure à 20
|
Tous
|
Adresse
= ((((Piste + 1) & 4) * 16) + (Secteur - 1)) * 256
|
64 k
|
Banque
= BanqueMax - ((Piste - 15) / 4)
|
> 64 k
|
Banque
= BanqueMax - ((Piste + 1) / 4)
|
Supérieure à 20
|
Tous
|
Adresse
= (((Piste & 4) * 16) + (Secteur - 1)) * 256
|
64 k
|
Banque
= BanqueMax - ((Piste - 16) / 4)
|
> 64 k
|
Banque
= BanqueMax - (Piste / 4)
|
Au sein du système dexploitation, un programme ré-étalonne le numéro de piste dans le cas d'un
RamDisk de 64 kilooctets. Pour ramener l'intervalle des numéros de pistes de
type RamDisk de 16-31 à 0-15, on soustrait 16 au numéro de piste et on comble
le passage de la piste 20 en retirant 1 au numéro obtenu si la piste traitée va
au-delà de la piste 20. On obtient donc un intervalle de 0 à 14. Le numéro de
piste 20 étant conservé en l'état par la routine - parce qu'étant traité comme
celui de la piste de FAT et de catalogue par les routines suivantes -
l'éventualité de rencontrer le numéro de piste 37 ($25), altéré, lui, par la
routine de conversion, sèmerait la confusion, puisqu'en retirant 16 et 1 à 37,
on obtient le numéro de piste... 20! C'est pourquoi il est exclu du traitement.
|