Tutorial 10
L'indicateur d'exécution

 

Survol
    Qu'est-ce que l'indicateur d'exécution ? C'est drôle que vous demandiez ça.... L'indicateur d'exécution est situé dans le coin supérieur droit de l'écran, et s'allume lorsque le microprocesseur de la calculatrice est occupé à faire quelque chose. Un peu comme le petit voyant devant votre ordinateur qui clignote quand il travaille. Ce tutorial va vous montrer comment activer ou désactiver l'indicateur d'exécution.


Programmation
    Prenons le programme Getkey qui affiche le code d'une touche lorsque l'on appuie dessus (Tutorial 8). Lorsque le programme attend la pression d'une touche, il affiche l'indicateur d'exécution dans le coin de l'écran. N'est-ce pas ennuyeux ? La solution pour s'en débarrasser est simple.
 
#define B_CALL(xxxx)   rst 28h \ .dw xxxx
#define B_JUMP(xxxx)  call 50h \ .dw xxxx
 
_clrlcdfull                      =4540h             ;Les constantes et définitions habituelles, lisez la section Nouvelles Commandes pour plus d'information
_homeup                      =4558h
_puts                            =450Ah
_putc                            =4504h
_getkey                        =4972h
_newline                       =452Eh
_RunIndicOff                 =4570h
 
            .org      9D95h
 
            B_CALL(_clrlcdfull)                    ; vide l'écran
            B_CALL(_homeup)                    ; affiche l'écran home
            B_CALL(_RunIndicOff)               ; Éteint l'indicateur d'exécution
            ld         hl,txt1                          ; Affiche le message du label txt1
            B_CALL(_puts)
            B_CALL(_getkey)                      ; Détecte l'appui d'une touche
            push     af                                 ; Enregistre l'appui de la touche dans le registre a
            B_CALL(_clrlcdfull)                    ; vide l'écran encore
            B_CALL(_homeup)                    ; réaffiche l'écran home
            ld         hl,txt2                          ; Affiche msg2
            B_CALL(_puts)                         ; Affiche le texte
            pop       af                                 ; restaure le registre a
            call       dishex                          ; Suit les commandes au label dishex pour trouver le code hex de la touche
            B_CALL(_getkey)                      ; fait une pause jusqu'à la prochaine pression d'une touche
            B_CALL(_newline)                     ; Renvoie le curseur à la ligne
            ret                                           ; Retourne au TI-OS
 
dishex: push     af                                  ; garde une copie de la valeur
            and       0F0h                            ; supprimer le quartet inférieur
            rra                                            ; décaler le quartet de 4 positions vers la droite
            rra
            rra
            rra
            ld         l,a                                ; Affiche le code hex de la touche dans Str1
            ld         h,0
            ld         de,hexStr
            push     de                               ; garder pour les autres quartets / keep for other nibbler
            add       hl,de                           ; add offset to hexStr address
            ld         a,(hl)                           ; trouve le caractère ASCII correct dans la chaîne ci-dessous pour afficher le code hex de la touche pressée.
            B_CALL(_putc)                          ; affiche le caractère
            pop       de
            pop       af
            and       0Fh                             ; effacer le quartet supérieur
            ld         l,a
            ld         h,0
            add       hl,de
            ld         a,(hl)
            B_CALL(_putc)
            B_CALL(clrlcdfull)
            ret                                           ; Retourne au TI-OS  
 
hexStr .db       "0123456789ABCDEF"  ;Ce sont les caractères utilisés pour afficher le code hex de la touche
txt1      .db       "Push a key.",0
txt2      .db       "Key code: ",0
 
.end
END

 

Nouvelles Commandes
    _RunIndicOff - Désactive l'indicateur d'exécution

Commandes associées
    Il y a un ROM call qui fait exactement le contraire du call _RunIndic_off, et c'est _RunIndicOn ( _RunIndicOn = 456Dh ). Pour l'utiliser, placez-le à la fin du programme pour réactiver l'indicateur d'exécution, ou placez-le au début du programme pour vous assurer de sa présence pendant l'exécution du programme.

 

Tutorial 11

    Cliquez pour revenir au menu du site... ou ici pour retourner au menu du tutorial.