MACRO 00050002 &NAME ENDINTAB 00100002 .* GLOBAL CMZELOG IS USED TO CONTROL THE ORDER OF THE MACROS 00150002 .* LOCAL IN1 IS A STRING SCAN INDEX 00200002 .* LOCAL ERRBIT IS A GENERAL ERROR SWITCH 00250002 .* LOCAL ERRCHAR IS A GENERAL CHARACTER IN ERROR 00300002 GBLB &CMZELOG(2) 00350002 LCLA &IN1 00400002 LCLB &ERRBIT 00410002 LCLC &ERRCHAR 00450002 AGO .ONW00 00460002 * /* START OF SPECIFICATIONS **** 02950002 * 03000002 *01* MODULE-NAME = ENDINTAB 03050002 * 03200002 *01* DESCRIPTIVE-NAME = END LOGON CHARACTERISTICS TABLE 03250002 * 03300002 *01* COPYRIGHT = XXXX-XXX COPYRIGHT IBM CORP 1973 03350002 * 03400002 *01* STATUS = RELEASE 1 03450002 * 03500002 *01* FUNCTION = CREATES END OF LOGON CHARACTERISTICS TABLE MARKER 03550002 * 03750002 *01* NOTES = THE FOLLOWING MNOTES ARE ISSUED 03800002 * 8,'CARDS OUT OF SEQUENCE' 03810002 * 8,'LOGCHAR MUST PRECEED ENDINTAB' 03820002 * 8,'NAME ''&NAME'' IS LONGER THAN EIGHT CHARACTERS' 03830002 * 8,'CHARACTER ''&ERRCHAR'' IS INVALID IN NAME ''&NAME''' 03840002 * 03850002 *02* CHARACTER-CODE-DEPENDENCIES = EBCDIC 03900002 * 03950002 *02* DEPENDENCIES = NONE 04000002 * 04150002 *02* RESTRICTIONS = VTAM MAPPING MACRO 04200002 * 04250002 *02* REGISTER-CONVENTIONS = NONE, LIST FORM 04300002 * 04450002 *02* PATCH-LABEL = NONE 04500002 * 04550002 *01* MODULE-TYPE = MACRO 04600002 * 04610002 *02* PROCESSOR = ASSEMBLER 04620002 * 04640002 *02* MACRO-SIZE = 50 STATEMENTS 04642002 * 04646002 *02* ATTRIBUTES = LIST 04648002 * 04648402 *01* ENTRY-POINT = NA 04648802 * 04649202 *01* EXIT-NORMAL = NA 04649602 * 04649702 *01* EXIT-ERROR = NA 04649802 * 04649902 *01* EXTERNAL-REFERENCES = AS-FOLLOWS 04666602 * 04676602 *02* ROUTINES = NONE 04678602 * 04690802 *02* DATA-SETS = NONE 04692802 * 04694002 *02* DATA-AREA = NONE CMZELOG IS A TWO BIT GLOBAL WHICH CONTROLS THE 04694102 * SEQUENCING OF THE INTAB, LOGCHAR, AND ENDINTAB MACROS. 04694202 * 04694302 *02* CONTROL-BLOCKS-SYSTEM = REQ: COMMENTS:, 04694402 * COMMENTS: ENTER NONE OR LIST SYSTEM 04744302 * CONTROL BLOCKS WITH FIELDS 04754302 * REFERENCED OR SET, THIS 04764302 * SECTION MAY BE EXPANDED; 04774302 * 04784302 *02* CONTROL-BLOCKS-ATCAM = REQ: CHOOSE: NONE| 04786302 * ISTATCVT=SPCATCVT| 04788302 * ISTACB=SPCACB| 04790302 * ISTACDEB=SPCACDEB| 04792302 * ISTRPL=SPCRPL| 04792702 * ISTPREFX=SPCPREFX| 04793102 * ISTQAB=SPCQAB| 04793502 * ISTDFNOD=SPCDFNOD| 04793902 * ISTEXLST=SPCEXLST| 04794002 * ISTLDO=SPCLDO| 04794102 * ISTDNCB=SPCDNCB| 04794202 * ISTRPLH=SPCRPLH| 04810902 * ISTRDT=SPCRDT| 04820902 * ISTBTU=SPCBTU| 04822902 * ISTDVT=SPCDVT| 04824902 * ISTAPB=SPCAPB| 04826902 * ISTICB=SPCICB| 04827302 * ISTICEX=SPCICEX| 04827402 * ISTFSB=SPCFSB| 04827502 * ISTFDB=SPCFDB, 04833102 * COMMENTS: ENTER NAME OF CONTROL BLOCK 04835102 * USED, COPY THIS SECTION IF 04837102 * MORE THAN ONE; 04837502 * 04837902 *01* TABLES = NONE 04838302 * 04838502 *01* INNER-MACROS = NONE 04838602 * 04898602 *01* SYSTEM-MACROS = NONE 04908602 * 04928602 *01* CHANGE-ACTIVITY = NONE 04930602 * 04938602 **** END OF SPECIFICATIONS ***/ 04988602 */*ENDINTAB: CHART (FMODE) */ 05038602 */*HEADER 05088602 */*PROGRAM NAME: 05138602 */*DATE: 05188602 */*PROGRAMMER: */ 05388602 */*1A3 E ENDINTAB */ 05398602 */*1B3 P GLOBAL: CMZELOG(2) , LOCALS: IN1, ERRBIT, ERRCHAR */ 05438602 */*ONW00:1C3 D (NO,ERR0010:LT,YES,) IS CMZELOG(1) = 1 */ 05488602 */*1D3 D (NO,ERR0020:RT,YES,) IS CMZELOG(2) = 1 */ 05538602 */*ONW10:1F3 P SET CMZELOG(1) = 0 AND CMZELOG(2) = 1 */ 05588602 */*1G3 $ (,%2B2) */ 05598602 */*%2B2:2B2 D (NO,ONW30:LT,YES,) WAS A NAME GIVEN */ 05638602 */*ONW20:2C2 P SET IN1 = IN1+1 */ 05688602 */*2D2 D (YES,ONW30:LT,NO,) IN1 > NAME LENGTH */ 05738602 */*2E2 D (YES,ERR0030:BT,NO,:RT) IN1 > 8 */ 05788602 */*2F4 D (YES,ONW20:RT,INVL,ERR0040:LT,NO,) NAME(IN1) FROM A-Z */ 05838602 */*2G4 D (YES,ERR0040:LT,NO,) IN1 = 1 */ 05888602 */*2H4 D (NO,ERR0040:BT,YES,ONW20:RT) NAME(IN1) FROM 0-9 */ 05938602 */*ONW30:2G2 D (YES,ONW50:RT,NO,) ERRBIT = 1 */ 05988602 */*2H2 D (NO,ONW40:BT,YES,:LR) NAME SPECIFIED */ 06038602 */*2H1 P GENERATE NAME STMT */ 06088602 */*ONW40:2J2 P GENERATE END OF TABLE FLAGS */ 06138602 */*ONW50:2K2 R MEXIT */ 06188602 */*ERR0010:1E2 P (,ONW10) MNOTE ERROR, SET ERRBIT TO 1 */ 06238602 */*ERR0020:1E4 P (,ONW10) MNOTE ERROR, SET ERRBIT TO 1 */ 06288602 */*ERR0030:2F2 P (,ONW30) MNOTE ERROR, SET ERRBIT TO 1 */ 06338602 */*ERR0040:2J4 P (,ONW20:RT) MNOTE ERROR, SET ERRBIT TO 1 */ 06388602 */*ENDINTAB: END */ 06438602 .* IF THE FIRST BIT IS NOT ON, SEQUENCE ERROR 06488602 .ONW00 AIF (&CMZELOG(1) NE 1 ).ERR0010 06538602 .* IF THE SECOND BIT IS NOT ON, THERE WERE NO LOGCHAR MACROS ISSUED 06588602 AIF (&CMZELOG(2) NE 1 ).ERR0020 06638602 .ONW10 ANOP 06688602 .* SET THE BITS FOR ERROR IF ANY MORE MACROS ARE ISSUED. ENDINTAB IS 06738602 .* LAST MACRO TO BE CALLED 06788602 &CMZELOG(1) SETB 0 06838602 &CMZELOG(2) SETB 1 06888602 .* IF THERE IS NO NAME, SKIP TO GENERATE CODE 06938602 AIF ('&NAME' EQ '' ).ONW30 06988602 .* CHECK THE NAME LENGTH AND VALID EBCDIC 07038602 .ONW20 ANOP 07088602 &IN1 SETA &IN1+1 POINT TO NEXT CHARACTER 07138602 AIF (&IN1 GT K'&NAME ).ONW30 07188602 AIF (&IN1 GT 8 ).ERR0030 07238602 AIF ('&NAME'(&IN1,1) LT 'A' ).ERR0040 07288602 AIF ('&NAME'(&IN1,1) LE 'I' ).ONW20 07338602 AIF ('&NAME'(&IN1,1) LT 'J' ).ERR0040 07388602 AIF ('&NAME'(&IN1,1) LE 'R' ).ONW20 07438602 AIF ('&NAME'(&IN1,1) LT 'S' ).ERR0040 07488602 AIF ('&NAME'(&IN1,1) LE 'Z' ).ONW20 07538602 AIF (&IN1 EQ 1 ).ERR0040 07588602 AIF ('&NAME'(&IN1,1) LT '0' ).ERR0040 07638602 AIF ('&NAME'(&IN1,1) GT '9' ).ERR0040 07688602 AGO .ONW20 07738602 .* IF THE ERROR BIT WAS SET, SKIP GENERATION 07788602 .ONW30 AIF (&ERRBIT EQ 1 ).ONW50 07838602 AIF ('&NAME' EQ '' ).ONW40 07888602 &NAME EQU * 07938602 .ONW40 ANOP 07988602 DC BL1'10000000' 08038602 .ONW50 ANOP 08088602 MEXIT 08138602 .ERR0010 MNOTE 8,'CARDS OUT OF SEQUENCE' 08188602 &ERRBIT SETB 1 08238602 AGO .ONW10 08288602 .ERR0020 MNOTE 8,'LOGCHAR MUST PRECEED ENDINTAB' 08338602 &ERRBIT SETB 1 08388602 AGO .ONW10 08438602 .ERR0030 MNOTE 8,'NAME ''&NAME'' IS LONGER THAN EIGHT CHARACTERS' 08488602 &ERRBIT SETB 1 08538602 AGO .ONW30 08588602 .ERR0040 ANOP 08638602 &ERRCHAR SETC '&NAME'(&IN1,1) 08688602 MNOTE 8,'CHARACTER ''&ERRCHAR'' IS INVALID IN NAME ''&NAME''' 08738602 &ERRBIT SETB 1 08788602 AGO .ONW20 08838602 MEND 08888602