IBM SC33-1683-02 User Manual

Page 535

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 33. Example of how to customize the DFHZPTDX sample program (Part 2 of 2)

Chapter 10. Writing a program to control autoinstall of terminals

503

|

Advertising