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

Clefs2 42 - Fdc - Programmation et RegistresCoding Clefs Pour Amstrad 2
LE FDC PD765A

Programmation et registres du FDC PD765A

Le PD765A possède deux registres accessibles par le CPU qui sont le registre d'état principal et le registre de données.

Le registre d'état principal est accessible en lecture à n'importe quel moment.

Le registre de données est en réalité constitué de différents registres rangés en pile dont un seul est présent sur le bus de données à un instant donné. Il manipule les données, les commandes, différents paramètres et le registre d'information d'état du lecteur.
Les octets de données sont lus ou écrits dans le registre de données suivant un ordre programmé pour obtenir une réponse précise après une commande particulière.

La relation entre le registre d'état/données et les signaux RD (read data) et WR (write data) et AO (adresse) est fournie par le tableau suivant :

------------------------------------------------------
AQ RD WR Fonction
------------------------------------------------------
0 0 0 Illégal.
0 0 1 Lecture du registre d'état principal.
0 1 0 Illégal.
0 1 1 Sans action,
1 0 0 Illégal.
1 0 1 Lecture du registre de données.
1 1 0 Ecriture du registre de données.
1 1 1 Sans action.
------------------------------------------------------

Séquence de commande

Le PD765A est capable d'exécuter 15 comnandes différentes. Chaque commande demande un transfert de plusieurs octets vers le CPU. Après exécution, le résultat est également retourné en plusieurs octets.

Vu la complexité des échanges entre le CPU et le PD765A, on considère que chaque commande s'effectue en trois phases :

— Phase commande. Le FDC reçoit toutes les informations nécessaires à une commande particulière.
— Phase exécution. Le FDC exécute la commande.
— Phase résultat. Le FDC renvoie au CPU des informations concernant le déroulement de l'exécution. Toutes les informations doivent être lues.

Remarque : la plupart des commandes requièrent jusqu'à 9 octets en phase commande et jusqu'à 7 octets dans les phases résultat.

Description des symboles utilisés dans les commandes
NPNuméro de piste.
ADTAdresse de tête 0 ou 1.
NSNuméro de secteur lecture/écriture.
LTNombre de données écrites dans un secteur.
FPNuméro du dernier secteur d'une piste. Pendant une lecture ou une écriture, le FDC arrête de transférer les données après un EP.
GLDurant une lecture/écriture, cette valeur détermine le nombre d'octets au cours duquel le VCO doit rester inactif après deux octets CRC.
STPPendant une opération de vérification, si STP=1, les données dans un secteur continu sont comparées, octet par octet, avec les données envoyées par le CPU (ou DMA) ; si le STP=2, les secteurs sont lus et comparés alternativement.
ET0
ET1
ET2
ET3
Durant la phase résultat, les registres mémorisent les états relatifs à une commande particulière. Ces registrès ne doivent pas être confondus avec le registre d'état principal sélectionné par le fil d'adresse (A0=0).
NPCNuméro de piste après une commande d'interprétation d'état d'interruption.
SRTStep Rate du FDD de 1 à 16 ms par pas de 1 ms (délai entre deux impulsions de pas).
TCTDélai avant le chargement de la tête (de 2 à 254 ms par
pas de 2 ms). Ce délai n'a de sens que pour le lecteur 8". Dans les petits lecteurs, la tête est presque toujours chargée avec le signal moteur OW.
TDTDélai de déchargement de la tête (de 16 à 240 ms par pas de 2 ms).
NDOpération en mode Non Data.
NNPNouveau numéro de piste résultant d'une opération de recherche de piste.
SD0-SD1SD0-SD1 Sélection du lecteur A ou B.
LDLorsque LS est défini égal à 0, LD vaut la longueur de donnée qui sera utilisée pour la lecture et l'écriture dans un secteur.
STDans les lecteurs à deux têtes, la sélection de la face est effectuée par ce bit, Dans le cas de l'AMSTRAD, il est toujours égal à 0.
MFSélection du mode MF ou MFM. S'il est égal à 1, le FDC travaille en double densité. Pour 1'AMSTRAD, il est toujours égal à 1.
HTEgal à 1, il permet les opérations multipiste. A la fin des opérations de lecture/écriture sur la face 0, le FDC recherche automatiquement le secteur 1 sur la face 1 (valable uniquement pour les lecteurs à double tête). Toujours égal à 0 sur AMSTRAD.
TDType de données qui doit être écrit dans le secteur.
NSPIndique le nombre de secteurs par piste.
SSEgal à 1, les secteurs effacés sont sautés. Toujours égal à 0 sur 1'AMSTRAD.
WEcriture.
RLecture.

Les différentes commandes du PD765A

-------------------------------------------------------------


COMMANDE 1 - LECTURE DES DONNEES

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 BO Remarques
-------------------------------------------------------------
Commande W MT MF SS 0 0 1 1 0 Code
W x x x x x ST SD1 SDO
W NP NP NP NP NP NP NP NP Information
W ADT ADT ADT ADT ADT ADT ADT ADT ID secteur
W NS NS NS NS NS NS NS NS avant
W LS LS LS LS LS LS LS LS exécution de
W FP FP FP FP FP FP FP FP la commande.
W GL GL GL GL GL GL GL GL
W LD LD LD LD LD LD LD LD
-------------------------------------------------------------
Exécution Transfert de données entre le FDD et le système.
-------------------------------------------------------------
Résultat R ETO ETO ETO ETO ETO ETO ETO ETO Information
R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1 d'état après
R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2 exécution de
R NP NP NP NP NP NP NP NP la commande.
R ADT ADT ADT ADT ADT ADT ADT ADT Information
R NS NS NS NS NS NS NS NS ID secteur
R LS LS LS LS LS LS LS LS après commande.
-------------------------------------------------------------

COMMANDE 2 - LECTURE DE DONNEES EFFACEES.

On entend par données effacées des données d'un secteur marqué comme étant effacé.

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarques
-------------------------------------------------------------
Commande W MT MF SS 0 1 1 0 0 Code
W x x x x x ST SD1 SD0
W NP NP NP NP NP NP NP NP
W ADT ADT ADT ADT ADT ADT ADT ADT
W NS NS NS NS NS NS NS NS
W LS LS LS LS LS LS LS LS
W FP FP FP FP FP FP FP FP
W GL GL GL GL GL GL GL GL
W LD LD LD LD LD LD LD LD
-------------------------------------------------------------
Exécution Transfert de données entre FDD et le système.
-------------------------------------------------------------
Résultat R ET0 ET0 ET0 ET0 ET0 ET0 ET0 ET0
R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1
R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2
R NP NP NP NP NP NP NP NP
R ADT ADT ADT ADT ADT ADT ADT ADT
R NS NS NS NS NS NS NS NS
R LS LS LS LS LS LS LS LS
-------------------------------------------------------------
-------------------------------------------------------------


COMMANDE 3 - ECRITURE DE DONNEES

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0
-------------------------------------------------------------
Commande W MT MF 0 0 0 1 0 1 Code
;W x x x x x ST SD1 SD0
;W NP NP NP NP NP NP NP NP
;W ADT ADT ADT ADT ADT ADT ADT ADT
;W NS NS NS NS NS NS NS NS
;W LS LS LS LS LS LS LS LS
;W FP FP FP FP FP FP FP FP
;W GL GL GL GL GL GL GL GL
;W LD LD LD LD LD LD LD LD
-------------------------------------------------------------
Exécution Transfert de données entre FDD et le système,_______
-------------------------------------------------------------
Résultat R ET0 ET0 ET0 ET0 ET0 ET0 ET0 ET0
;R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1
;R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2
;R NP NP NP NP NP NP NP NP
;R ADT ADT ADT ADT ADT ADT ADT ADT
;R NS NS NS NS NS NS NS NS
;R LS LS LS LS LS LS LS LS
-------------------------------------------------------------
-------------------------------------------------------------


COMMANDE 4 - ECRITURE DE DONNEES EFFACEES

Cette commande diffère de la commande d'écriture normale par le fait qu'elle concerne des données dont le "Data Adress Mark" contient un code disant que ces dernières sont effacées.

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarques
-------------------------------------------------------------
Commande W MT MF 0 0 1 0 0 1 Code
W x x x x x ST SD1 SD0
W NP NP NP NP NP NP NP NP
W ADT ADT ADT ADT ADT ADT ADT ADT
W NS NS NS NS NS NS NS NS
W LS LS LS LS LS LS LS LS
W FP FP FP FP FP FP FP FP
W GL GL GL GL GL GL GL GL
W LD LD LD LD LD LD LD LD
-------------------------------------------------------------
Exécution Transfert de données entre FDD et le système.
-------------------------------------------------------------
Résultat R ETO ET0 ET0 ET0 ET0 ET0 ET0 ET0
R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1
R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2
R NP NP NP NP NP NP NP NP
R ADT ADT ADT ADT ADT ADT ADT ADT
R NS NS NS NS NS NS NS NS
R LS LS LS LS LS LS LS LS
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 5 - LECTURE D'UNE PISTE

Cette commande lit tous les octets de données de la piste entre l'orifice d'indx et FP.

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W 0 MF SS 0 0 0 1 0 Code
W x x x x x SI SD1 SDO
W NP NP NP NP NP NP NP NP
W ADT ADT ADT ADT ADT ADT ADT ADT
W NS NS NS NS NS NS NS NS
W LS LS LS LS LS LS LS LS
W FP FP FP FP FP FP FP FP
W GL GL GL GL GL GL GL GL
W LD LD LD LD LD LD LD LD
-------------------------------------------------------------
Exécution
-------------------------------------------------------------
Résultat R ET0 ET0 ET0 ET0 ET0 ET0 ET0 ET0
R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1
R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2
R NP NP NP NP NP NP NP NP
R ADT ADT ADT ADT ADT ADT ADT ADT
R NS NS NS NS NS NS NS NS
R LS LS LS LS LS LS LS LS
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 6 - LECTURE DE ID

Lecture sur la disquette de la prochaine ID possible.

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W 0 MF 0 0 1 0 1 0 Code
W x x x x x ST SD1 SD0
-------------------------------------------------------------
Exécution
-------------------------------------------------------------
Résultat R ET0 ET0 ET0 ET0 ET0 ET0 ET0 ET0
R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1
R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2
R NP NP NP NP NP NP NP NP
R ADT ADT ADT ADT ADT ADT ADT ADT
R NS NS NS NS NS NS NS NS
R LS LS LS LS LS LS LS LS
-------------------------------------------------------------

-------------------------------------------------------------


COMANDE 7 - FORMATAGE D'UNE PISTE

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W 0 MF 0 0 1 1 0 1 Code
W x x x x x ST SD1 SD0
W LS LS LS LS LS LS LS LS
W NSP NSP NSP NSP NSP NSP NSP NSP
W GL GL GL GL GL GL GL GL
W TD TD TD TD TD TD TD TD
-------------------------------------------------------------
Exécution
-------------------------------------------------------------
Résultat R ET0 ET0 ET0 ET0 ET0 ET0 ET0 ET0
R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1
R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2
R NP NP NP NP NP NP NP NP
R ADT ADT ADT ADT ADT ADT ADT ADT
R NS NS NS NS NS NS NS NS
R LS LS LS LS LS LS LS LS
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 8 - VERIFICATION D'UN SECTEUR EGALITE

Cette commande opère une vérification de l'identité ID entre les données écrites et les données à écrire.

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W MT MF SS 1 0 0 0 1 Code
W x x x x x ST SD1 SD0
W NP NP NP NP NP NP NP NP
W ADT ADT ADT ADT ADT ADT ADT ADT
W NS NS NS NS NS NS NS NS
W LS LS LS LS LS LS LS LS
M FP FP FP FP FP FP FP FP
W GL GL GL GL GL GL GL GL
W MV MV MV MV MV MV MV MV
-------------------------------------------------------------
Exécution Comparaison de données entre FDD et le système.
-------------------------------------------------------------
Résultat R ET0 ET0 ET0 ET0 ET0 ET0 ET0 ET0
R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1
R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2
R NP NP NP NP NP NP NP NP
R ADT ADT ADT ADT ADT ADT ADT ADT
R NS NS NS NS NS NS NS NS
R LS LS LS LS LS LS LS LS
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 9 - VERIFICATION D'UN SECTEUR (plus petit ou égal)

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W MT MF SS 1 1 0 0 1 Code
W x x x x x ST SD1 SDO
W NP NP NP NP NP NP NP NP
W ADT ADT ADT ADT ADT ADT ADT ADT
W NS NS NS NS NS NS NS NS
W LS LS LS LS LS LS LS LS
W FP FP FP FP FP FP FP FP
W GL GL GL GL GL GL GL GL
W MV MV MV MV MV MV MV MV
-------------------------------------------------------------
Exécution Comparaison de données entre FDD et le système.
-------------------------------------------------------------
Résultat R ETO ETO ETO ETO ETO ETO ETO ETO
R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1
R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2
R NP NP NP NP NP NP NP NP
R ADT ADT ADT ADT ADT ADT ADT ADT
R NS NS NS NS NS NS NS NS
R LS LS LS LS LS LS LS LS
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 10 - VERIFICATION D'UN SECTEUR (plus grand ou égal).

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W MT MF SS 1 1 1 0 1 Code
W x x x x x ST SD1 SD0
W NP NP NP NP NP NP NP NP
W ADT ADT ADT ADT ADT ADT ADT ADT
W NS NS NS NS NS NS NS NS
W LS LS LS LS LS LS LS LS
W FP FP FP FP FP FP FP FP
W GL GL GL GL GL GL GL GL
W MV MV MV MV MV MV MV MV
-------------------------------------------------------------
Exécution Comparaison de données entre FDD et le système.
-------------------------------------------------------------
Résultat R ET0 ET0 ET0 ET0 ET0 ET0 ET0 ET0
R ET1 ET1 ET1 ET1 ET1 ET1 ET1 ET1
R ET2 ET2 ET2 ET2 ET2 ET2 ET2 ET2
R NP NP NP NP NP NP NP NP
R ADT ADT ADT ADT ADT ADT ADT ADT
R NS NS NS NS NS NS NS NS
R LS LS LS LS LS LS LS LS
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 11 - POSITIONNEMENT SUR LA PISTE 0

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W 0 0 0 0 0 1 1 1 Code
W x x x x x 0 SD1 SDO
-------------------------------------------------------------
Exécution
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 12 - INTERROGATION D'ETAT D'INTERRUPTION

Cette commande détermine les causes d'interruption

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W 0 0 0 0 1 0 0 0 Code
-------------------------------------------------------------
Résultat R ETO ETO ETO ETO ETO ETO ETO ETO
R NPC NPC NPC NPC NPÇ NPC NPC NPC
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 13 - SPECIFICATION

Cette commande permet d'adapter différents types de lecteurs au FDC.
-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W 0 0 0 0 0 0 1 1 Code
;W SRT SRT SRT SRT TDT TDT TDT TOT
;W TCT TCT TCT TCT TCT TCT TCT ND
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 14 - INTERROGATION D'ETAT DES LECTEURS

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W 0 0 0 0 0 1 0 0 Code
;W x x x x x ST SD1 SD0
-------------------------------------------------------------
Résultat R ET3 ET3 ET3 ET3 ET3 ET3 ET3 ET3
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE 15 - RECHERCHE D'UNE PISTE

Cette commande permet le déplacement de la tête.

-------------------------------------------------------------
PHASE R/W B7 B6 B5 B4 B3 B2 B1 B0 Remarque
-------------------------------------------------------------
Commande W 0 0 0 0 1 1 1 1 Code
;W x x x x x ST SD1 SD0
;W NNP NNP NNP NNP NNP NNP NNP NNP
-------------------------------------------------------------
Exécution La tête est positionnée sur la piste recherchée.
-------------------------------------------------------------

-------------------------------------------------------------


COMMANDE X - COMMANDE INVALIDE

Le FDC se met en attente.
-------------------------------------------------------------
Résultat R ET0 ET0 ET0 ET0 ET0 ET0 ET0 ET0 ET0 = 80
; en base 16.
-------------------------------------------------------------

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

Page précédente : Clefs2 42 - Fdc - Pd765a
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 487 millisecondes et consultée 1842 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.