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
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Le trilemme de la souveraineté : le coût caché du cloud qui freine l’IA en Europe
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Semperis : gouverner l’identité à l’ère des agents IA
- Analyse Patch Tuesday Mars 2026
Articles les + lus
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
À la une de la chaîne Tech
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
