CODINGCLEFS POUR AMSTRAD 1 ★ Système de base par Daniel Martin ★

Clefs1 15 Logiciel Interne Table ClavierCoding Clefs Pour Amstrad 1
TABLE DES POINTS D'ENTREE DES ROUTINES SYSTEME

Pour chaque sous-routine, vous trouverez, derrière le numéro de point d'entrée, son adresse en hexadécimal suivie d'une explication. Les abréviations CE et CS signifient Conditions d'Entrée et Conditions de Sortie.

Le gestionnaire clavier

00 BB00 Initialisation du gestionnaire clavier.
Pas de CE.
CS : AF, BC, DE et HL sont modifiés.
Tous les autres registres sont préservés.

01 BB03 RESET du gestionnaire clavier.
Pas de CE.
CS : AF, BC, DE et HL sont modifiés.
Tous les autres registres sont préservés.

02 BB06 Le gestionnaire clavier attend le caractère tapé au clavier.
Pas de CE.
CS : si le sémaphore de CARRY est vrai, l'Accumulateur contient le caractère qui a été tapé.
Tous les registres sont préservés.

03 BB09 Lecture d'un caractère.
Cette routine teste si un caractère est disponible depuis le clavier.
Pas de CE.
CS : si un caractère est disponible, le sémaphore de CARRY est vrai et A contient le caractère. S'il n'y a pas de caractère disponible, le sémaphore de CARRY est faux et A est modifié.
Tous les autres registres sont conservés.

04 BB0C Réserve un caractère pour le prochain appel de la routine précédente.
CE : A contient le caractère à sauver.
CS : Tous les registres sont préservés.

05 BB0F Positionne une chaîne de caractères associée à un code.
CE : B contient le code qui doit être associé à une chaîne de caractères.
C contient la longueur de la chaîne.
HL contient son adresse.
CS : Si l'expansion est faite, le sémaphore de CARRY est vrai. Si la chaîne est trop longue ou le code invalide, le sémaphore de CARRY est faux. A, BC, DE et HL sont modifiés.

06 BB12 Lit un caractère depuis une chaîne de caractères expansée.
Les caractères contenus dans la chaîne de caractères sont numérotés en partant de 0.
CE : A contient le code d'expansion. L contient le numéro du caractère.
CS : si le caractère est trouvé, A contient le caractère et le sémaphore de CARRY est vrai. Si le code est mauvais ou si la chaîne de caractères n'est pas assez longue, le sémaphore de CARRY est faux et A est modifié. DE est modifié.

07 BB15 Allocation d'un tampon pour une chaîne de caractères expansée.
CE : DE contient l'adresse du tampon et HL sa longueur.
CS : si tout est correct, le sémaphore de CARRY est vrai ; sinon, il est faux. Les registres A, BC, DE et HL sont modifiés.

08 BB18 Attente d'un caractère en provenance du clavier.
Pas de CE.
CS : le sémaphore de CARRY est vrai et A contient le caractère qui a été frappé. Tous les registres sont préservés.

09 BB1B Teste si une touche en provenance du clavier est disponible.
Pas de CE.
CS : si une touche est disponible, le sémaphore de CARRY est vrai et A contient le caractère ; sinon, le CARRY est faux.

10 BB1E Teste si une touche est pressée.
Permet aussi de tester la manette de jeux.
CE : A contient le numéro de la touche qui doit être testée.
CS : si la touche n'est pas pressée, le sémaphore de
CARRY est vrai ; si la touche est pressée, le sémaphore de CARRY est faux et A et HL sont modifiés et C contient l'état des touches SHIFT et CONTROLE.

11 BB21 Vérifie si la touche de verrouillage des majuscules est enfoncée (CAPS LOCK).
Pas de CE.
CS : L contient l'état de la touche SHIFT et A contient l'état de la touche de verrouillage des majuscules ;
A contient 00 si elle n'est pas enfoncée et FF si elle l'est.
Le registre AF est modifié.

12 BB24 Lecture de l'état de la manette de jeux.
Pas de CE.
CS : H contient l'état de la manette de jeux n° 0.
L contient l'état de la manette de jeux n° 1.
A contient l'état de la manette de jeux n° 0. La correspondance des bits est la même que celle de la fonction JOY déjà décrite dans les fonctions Basic.

13 BB27 Positionne le code qui sera fourni lors de la pression d'une touche sans CTRL ni SHIFT.
CE : A contient le numéro de la touche.
B contient le code ASCII que cette touche fournira.
CS : AF et HL sont modifiés.

14 BB2A Fournit le code correspondant au numéro de touche pressée.
CE : A contient le numéro de la touche.
CS : A contient le code ASCII correspondant à la touche. HL et F sont modifiés.

15 BB2D Positionne le code qui sera fourni lors de la pression d'une touche conjointement à la pression de la touche SHIFT.
CE : A contient le numéro de la touche.
B contient le code ASCII que cette touche fournira.
CS : AL et HL sont modifiés.

16 BB30 Fournit le code correspondant à une touche pressée conjointement à la touche SHIFT.
CE : A contient le numéro de la touche.
CS : A contient le code ASCII correspondant à la touche. HL est modifié.

17 BB33 Positionne le code que fournira une touche enfoncée conjointement à la touche CTRL.
CE : A contient le numéro de la touche.
B contient le code ASCII que cette touche fournira.
CS : AF et HL sont modifiés.

18 BB36 Fournit le code ASCII correspondant à la touche pressée conjointement à la touche CTRL.
CE : A contient le numéro de la touche.
CS : A contient le code ASCII correspondant à la touche. HL est modifié.

19 BB39 Positionne l'entrée dans la table des touches qui doivent se répéter.
CE : A contient le numéro de la touche.
Si la touche peut être répétée, B contient FF ; sinon,
B contient 00.
CS : AF, BC et HL sont modifiés.

20 BB3C Teste si une touche dont le numéro est fourni peut ou non être répétée.
CE : A contient le numéro de la touche.
CS : si la touche peut être répétée, le sémaphore 0 est faux ; si elle ne peut pas être répétée, le sémaphore 0 est vrai
— De toute façon, le sémaphore de CARRY est faux et AF et HL sont modifiés.

21 BB3F Positionne le temps de délai avant la première répétition, ainsi que le temps prévu entre deux répétitions.
CE : H contient le délai avant la première répétition. L contient la vitesse de répétition. Ces temps sont exprimés en cinquantième de seconde.
CS : AF est modifié.

22 BB42 Lecture de la vitesse de répétition et du temps prévu avant la première répétition.
Pas de CE.
CS : H contient le délai avant la première répétition (en 1/50° de seconde) et L contient la vitesse de répétition. AF est modifié.

23 BB45 Positionne le mécanisme du BREAK.
CE : DE contient l'adresse de la routine de traitement du BREAK.
C contient l'adresse de ROM sélectionnée pour cette routine.
CS : AF, BC, DE et HL sont modifiés.
Remarque : ce mécanisme peut être désarmé par l'appel à la routine suivante.

24 BB48 Désarmement du mécanisme du BREAK.
Pas de CE.
CS : AF et HL sont modifiés.

25 BB4B Génère une interruption de BREAK si le BREAK a été armé au moyen de la routine 23.
Pas de CE.
CS : AF et HL sont modifiés.

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

Page précédente : Clefs1 14 - Logiciel Interne Generalites
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 336 millisecondes et consultée 1951 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.