CODINGCLEFS POUR AMSTRAD 2 ★ Système disque par Daniel Martin et Philippe Jadoul ★

Clefs2 10 - Cpm22 Table de ParametrageCoding Clefs Pour Amstrad 2

CP/M 2.2 - Tables de paramétrage du disque

Pour faciliter l'accès aux disques en provenance d'autres systèmes et donc d'un format différent, tous les paramètres qui concernent le disque sont mémorisés en mémoire vive et donc facilement altérables par l'utilisateur averti.

En général, chaque disque possède deux tables. La première est appelée DPH (Disk Parameter Header). Elle contient un pointeur vers la seconde appelée DPB (Disk Parameter Bloc).

LA  DPH

La DPH est composée de  16 octets (00 à OFH) divisés en 8 mots de   16 bits.
 
Octets 0 & 1 :XLT : adresse du vecteur de translation des numéros de secteurs logiques et physiques. Si ce vecteur n'existe pas, le mot vaut 0000.
Octets 2 & 3 :0000 Zone de travail du BDOS.
Octets 4 & 5 :0000 Zone de travail du BDOS.
Octets 6 & 7 :0000 Zone de travail du BDOS.
Octets 8 & 9 :DIRBUF : adresse d'un tampon de 128 octets pour les opérations du BDOS sur le répertoire.
Octets A & B :DPB : adresse de la table DPB.
Octets C & D :CSV : adresse d'un tampon pour le test logiciel de changement de disque.
Octets E & F :ALV : adresse d'un tampon utilisé par le BDOS pour mémoriser des informations sur l'allocation du disque.

LA DPB

La zone de paramétrage se compose de 25 octets (00-18H) définis comme suit :
 
Octets 0 & 1 :SPT : nombre total de secteurs par piste, codé sur 16 bits.
Octet 2 :BSH : facteur de déplacement du bloc d'allocation de données déterminé par la taille du bloc d'allo­cation de données.
Octet 3 :BLM : masque du bloc d'allocation de données ((2 exposant BSH) - 1).
Octet 4 :EXM : extension du masque déterminée par la tail­le du bloc d'allocation et le nombre de blocs sur le disque.
Octets 5 & 6 :DSM : capacité totale de stockage du disque ex­primée en nombre de blocs - 1 {valeur codée sur 16 bits).
Octets 7 S, 8 :DRM : nombre d'entrées possibles dans le réper­toire - 1 (valeur codée sur 16 bits).
Octets 9 & A :AL0 & AL1 : valeur 16 bits qui indique le nombre de blocs réservés pour le répertoire.
Octets B & C :CKS : taille du vecteur de contrôle ((DRM+D/4).
Octets D & E :OFF : nombre de pistes réservées pour le système.
Octet F :FSC : numéro physique du premier secteur.
Octet 10 :PST : nombre de secteurs par piste.
Octet 11 :GLS : longueur du GAP (en-tête de synchro) pour les écritures et les lectures.
Octet 12GLT : longueur du GAP pour le formatage.
Octet 13 :FLB : octet de remplissage des secteurs lors du formatage (FILLER).
Octet 14 :BPS : cet octet exprime la taille du secteur selon la formule : logarithme en base 2 de la taille -7. Ce nombre est utilisé pour programmer directement le FOC PD765A.
Octet 15 :RPS : taille d'un secteur divisée par 128.
Octet 16 :BCT : piste courante (réservé au BIOS).
Octet 17 :FTO : indicateur d'alignement. 0 = non aligné, FF = aligné (réservé au BIOS).
Octet 18 :FLG : indicateur de sélection automatique du for­mat. 00 = sélection automatique, FF = pas de sélection automatique.

Les valeurs de BSH et BLM déterminent implicitement la taille d'un bloc d'allocation (BLS).

 BSH             ;BLM             ;BLS
-------------------------------------
 3               ;  7           ; 1024
 4               ; 15           ; 2048
 5               ; 31           ; 4096
 6               ; 63           ; 8192
 7             ;  127           ;16384

EXM est déterminé par la valeur de BLS et la valeur de DSM (SUPERIEURE à 255 ou non).

BLS   EXM si DSM est < 256      EXM si DSM > 255
--------------------------------------------------------
1024           ;0                     ;  -
2048           ;1                     ;  0
4096           ;3                     ;  1
8192           ;7                     ;  3
16384          15                     ; 7

La valeur de DSM exprime le nombre maximum de blocs de données de taille BLS supporté par le disque.

Les valeurs de AL0 et AL1 sont déterminées selon la formule suivante : nal = DRM * 32 / BLS (une entrée du répertoire occupe 32 octets).

Exemple  :  dans le cas de l'AMSTRAD, BLS= 1024 et DRM = 64. Il faut donc 32 x 64 / 1024 blocs pour le répertoire, soit 2 blocs.

AL0 et AL1 sont codés de la façon suivante :

          AL0                                   ;   ;AL1
 B7 B6 B5 B4 B3 B2 B1 B0                ;  B7 B6 B5 B4 B3 B2 B1 B0

Si 1 bloc doit être réservé,  alors seul   B7 de AL0 est à   1.
Si  2 blocs doivent être réservés, alors B7 et B6 de AL0 sont à 1.
....

Si 16 blocs doivent être réservés, alors les 8 bits de AL0 et les 8 bits de AL1 sont à 1.

Dans le cas de l'AMSTRAD, AL0 vaut COH et AL1 vaut 0.

Valeurs standards de la DPB en fonction du format

Remarque :  toutes les valeurs sont données en hexadécimal.
 
OctetsSystèmeDonnées seulesIBM

SPT
BSH
BLM
EXM
DSM
DRM
AL0
AL1
CKS
OFF
FSN
RPT
GLR
GLF
FIL
SS1
SS2
CTK
ALG
AUT

24
3
7
0
AA
3F
CO
0
10
2
41
9
2A
52
E9
2
4
0
0
0

24
3
7
0
B3
3F
C0
0
10
0
C1
9
2A
52
E9
2
4
0
0
0

20
3
7
0
9
B
3
F
C
0
0
1
0
1
0
1
8
2
A
5
0
E
9
2
4
0
0
0

Accès à la DPH et à la DPB

Pour accéder à  la DPH,   il  faut appeler la routine BIOS SELDSK. Cette routine retourne l'adresse de la DPH (voir routines internes).  Le mot qui   se trouve à un OFFSET 0AH (10) de l'adresse fournie est l'adresse de la DPB.
Le mot situé à l'adresse BE40H contient lui aussi  l'adresse de la DPH.
Une troisième possibilité consiste en l'appel de la fonction 31 du BDOS.

Remarque  : lors de  l'appel de SELDSK,  si   le bit 0 du registre E vaut 0 et que  l'octet   18H (AUT) de la DPB vaut 00, alors  le BIOS essaie de déterminer le format de disque et modifie la table DPB en accord avec le format trouvé.

Les formats de la disquette

Les CPC distinguent trois formats différents  :  le format standard,  le format de données et le format compatible IBM. Vous pouvez choisir votre format lors de l'opération de formatage de disquette (voir commande FORMAT).

Points communs aux trois formats  :

Nombre de pistes               ;  :   40 numérotées de 0 à 39.
Taille d'un secteur             ; :  512 octets.
Nombre d'entrées du répertoire   :   64.
Taille d'un enregistrement       :  128 octets.

Le nombre d'enregistrements par secteur est évidemment de 4.

Caractéristiques du format standard

C'est le format le plus courant.

Nombre de secteurs par piste      :  9.
Numérotation des secteurs         ;: de 41H à 49H.
Nombre de pistes réservées        :  2.

Les pistes réservées permettent  l'installation du CP/M.

Affectation des pistes réservées  :

Piste 0 secteur 41H               ;  :   secteur B00T.
Piste 0 secteur 42H               ;  :   secteur CONFIGURATION.
Piste 0 secteurs 43H à 47H          :   inutilisés.
Piste 0 secteurs 48H & 49H          :   CCP et BDOS.
Piste 1 secteurs 41H à 49H          :   suite du CCP et du BDOS.

Caractéristiques du format de données

Nombre de secteurs par piste  : 9.
Numérotation des secteurs     : C1H à C9H.
Pistes réservées             ; : 0.

Caractéristiques du format IBM compatible

Nombre de secteurs par piste  : 8.
Numérotation des secteurs     : 0 à 7.
Pistes réservées             ; : 0.

★ ANNÉE: ???
★ AUTEUR(S): ???

Page précédente : Clefs2 10 - Cpm22 Structure du Repertoire

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 149 millisecondes et consultée 943 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.