CE = CONDITIONS D’ENTRÉE
CS = CONDITIONS DE SORTIE
REGS = REGISTRES
C = FLAG CARRY
Z = FLAG ZÉRO
GESTIONNAIRE CLAVIER
********************
#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: Idem BB00.
#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=00 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 ___________________________________1.
A___________________________________ 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) et 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.