★ CODING ★ LA BIBLE DU CPC 6128 ★ |
La bible du CPC 6128 : 2.05.07 Keyboard manager (KM) |
Ce pack a pour fonction la surveillance du clavier et la conversion en codes de caractères utilisables. Pour l'interrogation cyclique des touches, il utilise le mécanisme d'EVENT. 1B5C ************************************** KM INITIALISEInitialisation complète de la gestion clavier. L'état de la gestion clavier avant appel de cette routine est perdu. 1B5F KM SET DELA Y 1B98 ******************************************* KM RESET La gestion clavier est placé dans son état de départ. La table de saut indirect et les buffers de la gestion clavier sont neutralisés. 1BA4 Exp Buffer Cont'd 1BBF ************************************* KM WAIT CHAR KM WAIT CHAR va chercher un caractère dans le buffer clavier, dans 1BBF KM RE AD CHAR 1BC2 KM WAIT CHAR 1BC5 ************************************ KM READ CHAR KM READ CHAR transmet également un caractère dans a, s'il y en avait un, mais cette routine n'attend pas qu'il y ait un résultat positif. Si au retour de la routine, le carry est mis, c'est qu'il n'y avait pas de caractère à aller chercher. 1BC6 Put Back Buffer 1BFA ********************************* KM CHAR RETURN Placer un caractère dans le buffer clavier pour le prochain accès (KM READ CHAR ou KM WAIT CHAR). 1BFA (Put Back Bufferj 1C04 ************************************ KM EXP BUFFER Affecter mémoire pour chaîne d'extension (adresse, longueur). Initialiser buffer 1C04 Exp Buffer Cont'd 1C3C ************************************* Default Exp String 1C3C 01 2E 01 0D 05 52 55 4E .....RUN 1C46 ************************************ KM SET EXPAND créer chaîne d'extension. 1C47 adresse Exp String vers de 1C6A ********************************* vider buffer d'extension 1C79 place pour une nouvelle chaîne d'extension? 1CA7 **************************** place pour une nouvelle chaîne d'extension? 1CA7 (pointeur buffer d'extension libre) 1CB3 *********************************** KM GET EXPAND Aller chercher un caractère d'une chaîne d'extension. Les caractères de la chaîne de caractères sont numérotés par ordre croissant en commençant par 0. 1CB3 adresse Exp String vers de 1CC3 **************************** adresse Exp String vers de 1CC3 Token dans zone 1CDB ************************************** KM WAIT KEY Les routines KM WAIT KEY et KM READ KEY travaillent de façon La chaîne d'extension et le buffer Put Back ne sont pas pris en 1CDB KM READ KEY 1CDE KMWAITKEY 1CE1 ************************************** KM READ KEY Voir KM WAIT KEY. 1CFB Caps Lock State 1D38 ************************************** KM GET STATE examiner si touches CAPS-LOCK et SHIFT-LOCK ont été actionnées. 1D38 (Shift Lock State) 1D3C ********************************************** Set State 1D3C (Shift Lock State) 1D40 *********************** KM UPDATE KEY STATE MAP 1D40 Mulitihit contr. à B63F 1DB8 ************************************ KM TEST BREAK 1DC1 KM BREAK EVENT 1DE5 ********************************** KM GET JOYSTICK L'état du joystick au moment du test est déterminé à l'aide de la Key State Map. 1DE5 (Joystick 1) 1DF2 ************************************* KM GET DELAY aller chercher paramètres pour emploi et vitesse de la répétition de touches. 1DF2 (KMDelay) 1DF6 ************************************* KM SET DELAY fixer emploi et vitesse de répétition de touches. 1DF6 (KM Delay) 1DFA *********************************** KM ARM BREAK autoriser la touche Break. 1E0B ********************************* KM DISARM BREAK la touche Break est verrouillée. 1E13 KL DEL SYNCHRONOUS 1E19 ********************************** KM BREAK EVENT exécuter routines lorsque la touche Break est actionnée. 1E24 KL EVENT Tester, pour une touche déterminée, s'il s'agit d'une touche avec fonction de répétition activée. 1E2F (adresse de la table de répétition) 1E34 ************************************* KM SET REPEAT KM SET REPEAT vous permet de déterminer quelles touches doivent être dotées de la fonction de répétition. Il faut placer en a le numéro de touche, b doit contenir &FF si la touche doit avoir une fonction de répétition et 0 s'il s'agit d'annuler la fonction de répétition de cette touche. 1E34 Key > 80? 1E45 *************************************** KM TEST KEY L'état de la Key State Map permet d'examiner si une touche ou un joystick a été activé. 1E46 (Key 16...23) 1E55 ***************************** aller chercher bit correspondant à la touche 1E57 Key# 1E6D ******************************************* masques bits 1E6D 01 02 04 08 10 20 40 80 1EC4 ******************************* km GET TRANSLATE aller chercher entrée du premier niveau de la table clavier (Key State Map). 1EC4 (adresse table traduction touche) 1EC9 ************************************** KM GET SHIFT aller chercher entrée du second niveau de la table clavier. 1EC9 (Adresse Key SHIFT Table) 1ECE ********************************** KM GET CONTROL aller chercher entrée du troisième niveau de la table clavier. 1ED1 **************************************** Qet Key Table 1ED8 ******************************** KM SET TRANSLATE effectuer une entrée dans le premier niveau de la table clavier. 1ED8 (adresse table traduction touche) 1EDD ************************************** KM SET SHIFT effectuer une entrée dans le second niveau de la table clavier. 1EDD (Adresse Key SHIFT Table) 1EE0 Set Key Table effectuer une entrée dans le troisième niveau de la table clavier. 1EE5 ***************************************** set Kev Table 1EEF ********************************* Key Translation Table 1EEF F0 F3 F1 89 86 83 8B 8A 1F3F ************************************** Key SHIFT Table 1F3F F4 F7 F5 89 86 83 8B 8A 1F8F ************************************** Key CTRL Table 1F8F F8 FB F9 89 86 83 8C 8A
|