IBM SC34-6814-04 User Manual

Page 555

Advertising
background image

/* Now access the screen PS area in the portion of the BIND

image presented in the CINIT RU */

/* using the screen alternate height as a guide to the model

of terminal attempting logon. If this cannot be determined
then default to the first model in the table */

SELECT (AHGT);

/* NOW GET SCRN ALTERNATE HEIGHT */

WHEN (12)

NAME = ’M1’;

/* MODEL 1 */

WHEN (32)

NAME = ’M3’;

/*

3 */

WHEN (43)

NAME = ’M4’;

/*

4 */

WHEN (27)

NAME = ’M5’;

/*

5 */

OTHERWISE

NAME = ’M2’;

/*

2 */

END;
/* Search the model entries for a matching entry.

*/

/* The criterion here is that a model definition should*/
/* contain the chars M2 for a model 2, and so on.

*/

/* For example, L3270M2, L3270M5

*/

/*

TERMM2,

TERMM5

*/

IF MODELNAME_COUNT = 0
THEN GO TO EXIT;
DO I = 1 TO MODELNAME_COUNT;

IF INDEX(MODELNAME(I),NAME)
THEN GO TO FOUND_MODEL;

END;

NO_MODEL: /* Matching entry was not found, default to first model*/

SELECTED_MODELNAME = MODELNAME(1);
GO TO MODEL_EXIT;

FOUND_MODEL: /* Move the selected model name to the return area */

SELECTED_MODELNAME = MODELNAME(I);

MODEL_EXIT: /* ENQ to stop multiple updates of counter.

*/

/* A simple counter is used to generate unique

*/

/* terminal identities, so concurrent access to */
/* this counter is denied to ensure no two get

*/

/* the same identifier or update the counter.

*/

/* To use this method the program must be defined as resident.*/

EXEC CICS ENQ RESOURCE(ENQ);
SELECTED_TERMID = TERMID; /* Set SELECTED_TERMID to

count value

*/

TERMID = TERMID + 1; /* Increase the count value by 1

*/

IF TERMID = 9999 THEN TERMID = 1;

/* Reset if too large*/

EXEC CICS DEQ RESOURCE(ENQ);

NAME_EXIT:

INSTALL_RETURN_CODE = LOW(1);

/* Set stat field to X’00’ to allow

logon to be processed */

GO TO EXIT;

END INSTALL;

Figure 43. Example of how to customize the DFHZPTDX sample program (part 2)

Chapter 10. Writing a program to control autoinstall of terminals

533

Advertising