Comment savoir, lorsqu’on conçoit un programme, si l’écran de l’utilisateur est en mode *DS3 (24×80) ou *DS4 (27×132) ?

Une API vous apporte la solution :

dcl-pr QsnQryModSup extproc(‘QsnQryModSup’);
   mode Char(1);
   modeInd Char(1) const options(*OMIT) ;
   llHandle Int(10) const options(*OMIT);
   error Char(16)options(*VARSIZE);
end-pr;

Elle ne vous indique pas vraiment votre mode mais permet de tester si votre configuration d’écran supporte certains modes.

Indiquer dans le premier paramètre CHAR(1) le mode testé :

‘3’ : *DS3 ou 24×80

‘4’ : *DS4 ou 27×132

Deuxième paramètre CHAR(1) est le retour de la fonction :

‘0’ : non supporté

‘1’ : mode supporté

Le troisième paramètre sera omit dans notre exemple

Le quatrième paramètre est la DS d’erreur que l’on va initialiser à x’00’

Donc, en testant, si vous supportez le mode ‘4’ vous saurez que vous êtes en 27×132.

Le mode ‘3’ (*DS3) étant supporté par les deux configurations.

dcl-pr QsnQryModSup extproc(‘QsnQryModSup’);
   mode Char(1);
   modeInd Char(1) const options(*OMIT) ;
   llHandle Int(10) const options(*OMIT);
   error Char(16)options(*VARSIZE);
end-pr;

dcl-s  MODE char(1);
dcl-s  MODEIND char(1);
dcl-s ERROR  char(16) inz(*allx’00’);

//– Corps du programme
mode = ‘4’; //– 27×132 *DS4
QsnQryModSup(mode:modeind:*omit:error);

if modeInd = ‘1’… // supporté

Bons tests à toutes et à tous.