Le segment de code de la figure 5 représente
la sous-procédure complète
permettant de déterminer la touche
actionnée et si elle est disponible. Si
elle ne l'est pas, il envoie un message
d'erreur. Si elle l'est, il exécute la sousprocédure
de la touche de fonction
correspondante.
La figure 6 montre
La procédure de contrôle des touches de fonction
la définition du Allowed Function Key Mask comme une matrice de compilation
de 29 éléments dont les valeurs sont définies à la fin du
code source (comme indiqué). Dans cet exemple, j’ai autorisé
l’utilisation des touches de fonction F3, F5, F6, F12 et de
toutes les touches de non-fonction (Enter, Page, par
exemple). Si je voulais activer une autre touche ultérieurement,
il me suffirait d’insérer un « Y » dans l’élément de matrice
correspondant. Ensuite, il suffirait d’insérer le code
dans la bonne procédure de touche de fonction.
La figure 5 montre la sous-procédure de contrôle des
touches de fonction. Elle est appelée après le ExFmt pour déterminer
l’action à mener après que l’utilisateur ait actionné
une touche. Premièrement, elle effectue un %Scan de la
structure de données ds_keys (contenant nos configurations
binaires de touches) avec la configuration binaire renvoyée
dans l’INFDS de la station de travail. Cela définit la valeur
d’index du hit de la touche de fonction au champ KeyHit.
Ensuite, nous entrons dans le groupe Select pour déterminer
si la touche de fonction est autorisée. S’il n’y a pas un
« Y » dans l’élément correspondant de la matrice pa_key,
alors j’envoie un appel à mon SendMsg (une procédure externe
contenue dans un programme de service) qui envoie
un message au sous-fichier de messages de l’écran du programme
indiquant que la touche de fonction n’est pas autorisée
en ce moment.
Quand la matrice pa_key contient un « Y » dans l’élément
indexé KeyHit, c’est que la touche est active. Donc, nous définissons
la valeur de PtrProc (rappelez-vous, notre pointeur
de prototype de procédure général) d’après celui de
l’adresse de procédure contenue dans l’élément correspondant
de la matrice Prp (adresse de procédure de touche de
fonction).
A ce stade, le KeyProc de prototype général est basé sur
l’adresse de stockage de la sous-procédure de la touche de
fonction que nous voulons exécuter.
La commande CallP sur la ligne suivante fait l’appel de
sous-procédure vers la procédure de touche de fonction appropriée,
qui apparaît en figure 7.
Il est intéressant de noter que, bien que la commande
CallP requière un champ de type de pointeur de procédure
(ou un nom de procédure valide), elle ne peut pas traiter
l’élément de matrice lui-même ; vous ne pouvez pas insérer
le Prp(KeyHit) directement dans l’instruction CallP. En revanche,
vous pourriez utiliser CallB avec Prp(KeyHit). IBM
autorise apparemment cette souplesse supplémentaire avec
son CallB (appel de procédure lié statique).
Dans la figure 7, l’espace étant limité, je ne montre que
les touches de non-fonction (Enter, Page, par exemple) et les
cinq premières procédures de touches de fonction. Il y a un
exemple de code de traitement dans la procédure $F3 (Exit)
qui pourrait être utilisé pour terminer un programme. On le
voit, les procédures sont très visibles et elles se trouvent dans
une position relative standard dans le code source, donc
elles sont faciles à trouver. Quand vous voulez activer une
nouvelle touche de fonction, il suffit d’ajouter le code dans la
sous-procédure appropriée.
Enfin, en figure 8, j’ai donné un exemple de contexte de
l’appel vers la sous-procédure $FKeys provenant du corps
central du code de traitement du fichier écran.
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- L’analytique prédictive au service de la décarbonation en France
- Ofelia, ex-Bonitasoft, lance une solution d’orchestration IA agentique
- Le bruit au travail et ses effets sur la concentration dans les bureaux modernes
Articles les + lus
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
À la une de la chaîne Tech
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
