ASMtrad CPC

Apprenez l'assembleur Z80

Vecteurs System – Gestion CLAVIER (#BB00 – #BB4B)

#BB00 - INITIALISATION GESTIONNAIRE CLAVIER.

CE : Rien.
CS : AF, BC, DE, HL modifiés.
Tous les autres sont préservés.

#BB03 - RESET DU GESTIONNAIRE CLAVIER.

CE : Rien.
CS : AF, BC, DE, HL modifiés.
Tous les autres sont préservés.

#BB06 - LE GESTIONNAIRE CLAVIER ATTEND LE CARACTÈRE TAPE.

CE : Rien.
CS : Si C=1, A contient le caractère tapé.
Tous les regs sont préservés

#BB09 - LECTURE D’UN CARACTÈRE.

CE : Rien.
CS : Si un caractère est disponible C=1 et A contient le caractère
Si il n’y a pas de caractères dispo. C=0 et A est modifié.
Tous les autres regs sont préservés.

#BB0C - RÉSERVE UN CARACTÈRE POUR LE PROCHAIN APPEL DE LA ROUTINE PRÉCÉDENTE.

CE : A contient le caractère a sauver.
CS : Tous les regs sont préservés.

#BB0F - POSITIONNE UNE CHAINE DE CARACTÈRES ASSOCIES A UN CODE.

CE : B contient le code qui doit être associé a une chaine de caractères.
C contient la longueur de la chaine.
HL contient son adresse.
CS : Si l’expansion est faite, C=1.
Si la chaine est trop longue ou le code invalide, C=0.
A, BC, DE, HL sont modifiés.

#BB12 - LIT UN CARACTÈRE DEPUIS UNE CHAINE DE CARACTÈRE EXPANSÉE. LES CARACTÈRES CONTENUS DANS LA CHAINE 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 C=1.
Si le code est mauvais ou si la chaine de caractères n’est pas assez longue C=0, et A est modifié.
DE est modifié.

#BB15 - ALLOCATION D’UN TAMPON POUR UNE CHAINE DE CARACTÈRES EXPANSÉE.

CE : DE contient l’adresse du tampon, HL sa longueur.
CS : Si tout est correct, C=1, sinon C=0.
Les regs A, BC, DE, HL sont modifiés

#BB18 - ATTENTE D’UN CARACTÈRE EN PROVENANCE DU CLAVIER.

CE : Rien.
CS : C=1 et A contient le caractère frappé.
Tous les regs sont préservés.

#BB1B - TESTE SI UNE TOUCHE EN PROVENANCE DU CLAVIER EST DISPONIBLE.

CE : Rien.
CS : Si une touche est disponible, C=1 et A contient le caractère.
Sinon C=0.

#BB1E - TESTE SI UNE TOUCHE EST PRESSÉE. (PERMET AUSSI DE TESTER LE JOYSTICK)

CE : A contient le numéro de la touche qui doit être testée.
CS : Si la touche n’est pas pressée C=1.
Si elle l’est C=0, A et HL sont modifiés.
C contient l’état des touches SHIFT et CONTROL.

#BB21 - VÉRIFIE SI LA TOUCHE DE VERROUILLAGE DES MAJUSCULES EST ENFONCÉE CAPSLOCK

CE : Rien.
CS : L contient l’état de la touche SHIFT et A contient l’état de la touche de verrouillage des majuscules.
A=0 si pas enfoncée #FF si oui.
AF est modifié.

#BB24 - LECTURE DE L’ETAT DE LA MANETTE DE JEUX.

CE : rien.
CS : H contient l’état de la manette de jeux numéro 0.
L contient l’état de la manette de jeux numéro 1.
A contient l’état de la manette de jeux numéro 0.
La correspondance des bits est la même que celle de la fonction JOY.

#BB27 - POSITIONNE LE CODE QUI SERA FOURNI LORS DE LA PRESSION D’UNE TOUCHE SANS CONTROL NI SHIFT.

CE : A contient le numéro de la touche.
B contient le code ascii que cette touche fournira.
CS : AF, HL sont modifiés.

#BB2A - FOURNIT LE CODE CORRESPONDANT AU NUMÉRO DE TOUCHE PRESSE.

CE : A contient le numéro de la touche.
CS : A contient le code ascii correspondant a la touche.
HL et F sont modifiés.

#BB2D - POSITIONNE LE CODE QUI SERA FOURNI LORS DE LA PRESSION D’UNE TOUCHE + 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.

#BB30 - FOURNIT LE CODE CORRESPONDANT A UNE TOUCHE PRESSÉE + SHIFT.

CE : A contient le numéro de la touche.
CS : A contient le code ascii correspondant a la touche.
HL est modifié.

#BB33 - POSITIONNE LE CODE QUE FOURNIRA UNE TOUCHE ENFONCÉE + CONTROL.

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.

#BB36 - FOURNIT LE CODE ASCII CORRESPONDANT A LA TOUCHE PRESSE + CONTROL.

CE : A contient le numéro de la touche.
CS : A contient le code ascii correspondant a la touche.
HL est modifié.

#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 se répéter, B contient FF, sinon B contient 00.
CS : AF, BC, HL sont modifiés.

#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, Z=0 sinon Z=1.
De toute façon C=0 et AF et HL sont modifiés.

#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 /50 de seconde.
CS : AF est modifié.

#BB42 - LECTURE DE LA VITESSE DE RÉPÉTITION ET DU TEMPS PRÉVU AVANT LA PREMIÈRE RÉPÉTITION.

CE : Rien.
CS : H contient le délai avant la première répétition (en 1/50 de seconde).
L contient la vitesse de répétition.
AF est modifié.

#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, HL sont modifiés.
Ce mécanisme peut être désarmé par l’appel a la routine suivante.

#BB48 - DÉSARMEMENT DU MÉCANISME DU BREAK.

CE : rien.
CS : AF et HL sont modifiés.

#BB4B - GÉNÉRE UNE INTERRUPTION DE BREAK SI LE BREAK A ÉTÉ ARME AU MOYEN DE #BB45.

CE : Rien.
CS : AF et HL sont modifiés.