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

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