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

Clefs2 07 - Logiciel Interne Vect DisqueCoding Clefs Pour Amstrad 2
LOGICIEL INTERNE DE L'AMSDOS

VECTEURS PROPRES AU DISQUE

La ROM contient neuf routines que l'AMSDOS partage avec le , CP/M pour le paramétrage et l'accès direct aux disques.L'appel de ces commandes est particulier. Il ne peut se réaliser qu'au moyen de l'assembleur et suivant un processus très précis :

— Charger HL avec l'adresse où l'on trouve le numéro de la com­mande choisie (ce numéro doit être augmenté de 80H pour posi­tionner le bit 7 à 1).

— Appeler la routine KL-FIND-COMMAND à l'adresse BCD4H (vous trouverez une description complète de cette routine à la page 100 du tome 1 du présent ouvrage). La routine vous fournit l'adresse de branchement réel dans HL et le numéro de la ROM dans C.
Remarque : à l'issue de la routine, si le CARRY est faux, la commande choisie n'a pas été trouvée.

— Appeler la routine KL-FAR-PCHL à l'adresse 001BH (tome 2, page 109)après avoir rempli les conditions d'entrée.

Exemple : appel de la commande 1.

ORG #A000
A000 21 0D A0 LD HL,COMMAND
A003 CD D4 BC CALL #BCD4
A006 D0 RET NC ; pas trouvé
A007 3E FF LD A,#FF ; message inhibé
A009 CD 1B 00 CALL #1B
A00C C9 RET
A00D 81 COMMAND: DEFB #81 ; 1 + 80H

Commandes
1Autorise ou inhibe l'affichage des messages d'erreur concer­nant le disque.
CE : A=0 autorise l'affichage des messages.
A=FFH (255) inhibe l'affichage des messages.
CS : A contient l'ancienne valeur, F et HL sont modifiés.
2Initialise les paramètres du disque.
CE : HL pointe sur la table contenant les paramètres.
CS : AF, BC, DE et HL sont modifiés.

Format de la table :

Octets 0 et 1 : temps d'accès après le démarrage du moteur exprimé en cinquantièmes de seconde (valeur par défaut 50).
Octets 2 et 3 : temps d'arrêt du moteur après le dernier accès exprimé en cinquantièmes de seconde (valeur par défaut 250).
Octet 4 : temps de retombée du courant d'écriture exprimé en dizaines de microsecondes (valeur par défaut 175).
Octet 5 : temps de positionnement de la tête exprimé en mil­lisecondes (valeur par défaut 15).
Octet 6 : temps de déplacement d'une piste à l'autre exprimé en millisecondes (valeur par défaut 12).
Octet 7 : temps de retrait de la tête (facteur utilisé par le FDC 765).
Octet 8 : temps de chargement de la tête et indicateur de DMA (bit 0).

3Sélectionne un format particulier.
CE : A contient l'indicateur du format. 41H pour le format système. C1H pour le format données seules. 01H pour le format IBM.
E contient le numéro du lecteur (0 pour le lecteur A et 1 pour le lecteur B).
CS : AF, BC, DE et HL sont modifiés.
4Lecture d'un secteur en mémoire.
CE : HL contient l'adresse d'un tampon, E contient le numéro du lecteur, D contient le numéro de piste et C contient le numéro du secteur.
CS : si le secteur est bien lu, le CARRY est vrai, A vaut 0 et HL est sauvegardé.
Si la lecture échoue, le CARRY est faux, A contient le numéro d'erreur et HL pointe sur le tampon contenant le statut de l'erreur.
5Ecriture d'un secteur sur disque.
CE : HL pointe sur le tampon qui contient le secteur, E contient le numéro du lecteur (0 ou 1), D contient le numéro de piste et C contient le numéro de secteur.
CS : si l'écriture est correcte, le CARRY est vrai, A vaut 0 et HL est préservé.
Si l'écriture échoue, le CARRY est faux, A contient le numéro d'erreur et HL contient l'adresse du tampon contenant le statut d'erreur.
6Formatage d'une piste.
CE : HL pointe sur le tampon qui contient les informations d'en-tête, E contient le numéro du disque (0 ou 1) et D contient le numéro de piste.
CS : si le formatage réussit, le CARRY est vrai, A vaut 0 et HL est préservé.si le formatage échoue, le CARRY est faux, A contient le numéro d'erreur et HL contient l'adresse du tampon conte­nant le statut d'erreur.
7Déplace la tête du disque sur une piste spécifiée.
CE : E contient le numéro du disque et D contient le numéro de la piste.
CS : si le déplacement s'est effectué correctement, le CARRY est vrai, A contient 0 et HL est préservé. Sinon, le CARRY est faux, A contient le numéro d'er­reur et HL pointe sur le tampon contenant le statut d'erreur.
8Fournit le statut du disque spécifié.
CE : A contient le numéro du disque,
CS : si le CARRY est vrai, A contient le statut du disque (voir ci-dessous). Si le CARRY est faux, HL contient l'adresse du tampon contenant le statut d'erreur dont le second octet est défi­ni comme ci-dessous.

STATUT

BIT 7 : inutilisé.
BIT 6 : état de la protection en écriture.
BIT 5 : disque prêt ou non-prêt.
BIT 4 : indicateur de position en piste 0
BIT 3 : inutilisé.
BIT 2 : 0.
BIT 1 : 0.
BIT 0 : numéro du disque sélectionné.

9Positionne le nombre d'essais lors d'une opération de lecture, d'écriture ou de formatage.
CE : A contient la valeur du compteur d'essais.
CS : A contient l'ancienne valeur du compteur, HL et F sont modifiés.

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

Page précédente : Clefs2 06 - Logiciel Interne Amsdos
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 733 millisecondes et consultée 1635 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.