MACRO 00050003 &NAME INTAB 00100003 .* GLOBAL CMZELOG IS USED TO CONTROL THE ORDER OF THE MACROS 00150003 .* LOCAL ERRBIT IS A GENERAL ERROR SWITCH 00200003 .* LOCAL INT1 IS A GENERAL STRING INDEX 00250003 .* LOCAL ERRCHAR IS A GENERAL ERROR CHARACTER INDICATOR 00300003 GBLB &CMZELOG(2) 00350003 LCLB &ERRBIT 00400003 LCLA &IN1 00450003 LCLC &ERRCHAR 00500003 AGO .ONW00 00550003 * /* START OF SPECIFICATIONS **** 03100003 * 03150003 *01* MODULE-NAME = INTAB 03200003 * 03350003 *01* DESCRIPTIVE-NAME = BEGIN LOGON CHARACTERISTICS TABLE 03400003 * 03450003 *01* COPYRIGHT = XXXX-XXX COPYRIGHT IBM CORP 1973 03500003 * 03550003 *01* STATUS = RELEASE 1 03600003 * 03650003 *01* FUNCTION = CREATES A CSECT CARD FOR THE NAME OF A LOGON 03700003 * CHARACTERISTICS TABLE 03750003 * 03900003 *01* NOTES = THE FOLLOWING MNOTES ARE PRODUCED: 03950003 * 8,'NO STARTS,CSECTS,OR DSECTS ALLOWED IN THIS ASSEMBLY' 03960003 * 8,'NAME WAS NOT SPECIFIED' 03970003 * 8,'NAME ''&NAME'' IS LONGER THAN EIGHT CHARACTERS' 03980003 * 8,'''&ERRCHAR'' IS INVALID CHARACTER IN NAME ''&NAME''' 03990003 * 04000003 *02* CHARACTER-CODE-DEPENDENCIES = EBCDIC 04050003 * 04100003 *02* DEPENDENCIES = NONE 04150003 * 04300003 *02* RESTRICTIONS = VTAM MAPPING MACRO 04350003 * 04400003 *02* REGISTER-CONVENTIONS = NONE, LIST FORM 04450003 * 04600003 *02* PATCH-LABEL = NONE 04650003 * 04700003 *01* MODULE-TYPE = MACRO 04750003 * 04760003 *02* PROCESSOR = ASSEMBLER 04770003 * 04790003 *02* MACRO-SIZE = 50 STATEMENTS 04792003 * 04796003 *02* ATTRIBUTES = LIST 04798003 * 04798403 *01* ENTRY-POINT = NA 04798803 * 04799203 *01* EXIT-NORMAL = NA 04799603 * 04799703 *01* EXIT-ERROR = NA 04799803 * 04799903 *01* EXTERNAL-REFERENCES = AS-FOLLOWS 04816603 * 04826603 *02* ROUTINES = NONE 04828603 * 04830603 *02* DATA-SETS = NONE 04842803 * 04844003 *02* DATA-AREA = GLOBAL CMZELOG IS USED TO PASS INFORMATION BETWEEN 04844103 * INTAB, LOGCHAR, AND ENDINTAB MACROS. THE FIELD IS TWO BITS 04844203 * USED AS SEQUENCING BITS. 04844603 * 04848603 *02* CONTROL-BLOCKS-SYSTEM = REQ: COMMENTS:, 04850003 * COMMENTS: ENTER NONE OR LIST SYSTEM 04894303 * CONTROL BLOCKS WITH FIELDS 04904303 * REFERENCED OR SET, THIS 04914303 * SECTION MAY BE EXPANDED; 04924303 * 04934303 *02* CONTROL-BLOCKS-ATCAM = REQ: CHOOSE: NONE| 04936303 * ISTATCVT=SPCATCVT| 04938303 * ISTACB=SPCACB| 04940303 * ISTACDEB=SPCACDEB| 04942303 * ISTRPL=SPCRPL| 04942703 * ISTPREFX=SPCPREFX| 04943103 * ISTQAB=SPCQAB| 04943503 * ISTDFNOD=SPCDFNOD| 04943903 * ISTEXLST=SPCEXLST| 04944003 * ISTLDO=SPCLDO| 04944103 * ISTDNCB=SPCDNCB| 04944203 * ISTRPLH=SPCRPLH| 04960903 * ISTRDT=SPCRDT| 04970903 * ISTBTU=SPCBTU| 04972903 * ISTDVT=SPCDVT| 04974903 * ISTAPB=SPCAPB| 04976903 * ISTICB=SPCICB| 04977303 * ISTICEX=SPCICEX| 04977403 * ISTFSB=SPCFSB| 04977503 * ISTFDB=SPCFDB, 04983103 * COMMENTS: ENTER NAME OF CONTROL BLOCK 04985103 * USED, COPY THIS SECTION IF 04987103 * MORE THAN ONE; 04987503 * 04987903 *01* TABLES = NONE 04988303 * 04988503 *01* INNER-MACROS = NONE 04988603 * 05048603 *01* SYSTEM-MACROS = NONE 05058603 * 05078603 *01* CHANGE-ACTIVITY = NONE 05080603 * 05088603 **** END OF SPECIFICATIONS ***/ 05138603 */*INTAB: CHART (FMODE) */ 05188603 */* HEADER 05238603 */*PROGRAM NAME: 05288603 */*DATE: 05338603 */*PROGRAMMER: */ 05388603 */*1A3 E INTAB */ 05588603 */*1B3 P GLOBAL: CMZELOG(2), LOCALS: ERRBIT, IN1, ERRCHAR */ 05638603 */*ONW00:1C3 D (NO,ERR0010:LT,YES,) IS CMZELOG(1) = 0 */ 05688603 */*1D3 D (NO,ERR0010:LT,YES,) IS CMZELOG(2) = 0 */ 05738603 */*1E3 P SET CMZELOG(1)= 1 */ 05788603 */*ONW10:1F3 D (NO,ERR0020:RT,YES,) IS SYSECT = NULL */ 05838603 */*%1G3:1G3 $ (,ONW20) */ 05848603 */*ONW20:2B2 D (NO,ERR0030:LT,YES,) IS THERE A NAME SPECIFIED */ 05888603 */*ONW30:2C2 P SET IN1 = IN1 + 1 */ 05938603 */*2D2 D (YES,ONW40:LT,NO,) IS IN1 > LENGTH OF NAME */ 05988603 */*2E2 D (YES,ERR0040:BT,NO,:RT) IS IN1 > 8 */ 06038603 */*2F4 D (NO,:BT,INVL,ERR0050:LT,YES,ONW30:RT) IS NAME(IN1) FROM A-Z */ 06088603 */*2G4 D (YES,ERR0050:LT,NO,) IS IN1 = 1 */ 06138603 */*2H4 D (NO,ERR0050:BT,YES,ONW30:RT) IS NAME(IN1) FROM 0-9 */ 06188603 */*ONW40:2G2 D (YES,ONW50:LT,NO,) WAS ERRBIT SET */ 06238603 */*2H2 P GENERATE CSECT CARD */ 06288603 */*ONW50:2J2 R MEXIT */ 06338603 */*ERR0010:1E2 P (,%1G3) MNOTE ERROR, ERRBIT=1, CMZELOG = B'01' */ 06388603 */*ERR0020:1F4 P (,%1G3) MNOTE ERROR, ERRBIT=1 */ 06438603 */*ERR0030:2C1 P (,ONW40) MNOTE ERROR, ERRBIT=1 */ 06488603 */*ERR0040:2F2 P (,ONW40) MNOTE ERROR, ERRBIT=1 */ 06538603 */*ERR0050:2J4 P (,ONW30:RT) MNOTE ERROR, ERRBIT=1 */ 06588603 */*INTAB: END */ 06638603 .* IF BOTH GLOBAL BITS ARE NOT OFF, THE INTAB MACRO WAS CALLED 06688603 .* IN IN AN IMPROPER SEQUENCE OF MACRO CALLS. WHEN A ERROR IN 06738603 .* SEQUENCING IS FOUND, THE BITS ARE SET TO 0,1. 06788603 .ONW00 AIF (&CMZELOG(1) NE 0 ).ERR0010 06838603 AIF (&CMZELOG(2) NE 0 ).ERR0010 06888603 .* IF BOTH BITS ARE OFF, SET THE FIRST ONE ON TO INDICATE INTAB CALLED 06938603 &CMZELOG(1) SETB 1 06988603 .* IF A CSECT, DSECT, OR START CARD WAS USED, ISSUE ERROR MESSAGE 07038603 .ONW10 AIF ('&SYSECT' NE '' ).ERR0020 07088603 .* IF A NAME WAS NOT SPECIFIED, ISSUE ERROR MESSAGE 07138603 .ONW20 AIF ('&NAME' EQ '' ).ERR0030 07188603 .* CHECK THAT THE NAME IS LESS TAHN EIGHT CHARACTERS AND VALID EBCDIC 07238603 .ONW30 ANOP 07288603 &IN1 SETA &IN1+1 POINT TO NEXT CHARACTER 07338603 AIF (&IN1 GT K'&NAME ).ONW40 07388603 AIF (&IN1 GT 8 ).ERR0040 07438603 AIF ('&NAME'(&IN1,1) LT 'A' ).ERR0050 07488603 AIF ('&NAME'(&IN1,1) LE 'I' ).ONW30 07538603 AIF ('&NAME'(&IN1,1) LT 'J' ).ERR0050 07588603 AIF ('&NAME'(&IN1,1) LE 'R' ).ONW30 07638603 AIF ('&NAME'(&IN1,1) LT 'S' ).ERR0050 07688603 AIF ('&NAME'(&IN1,1) LE 'Z' ).ONW30 07738603 AIF (&IN1 EQ 1 ).ERR0050 07788603 AIF ('&NAME'(&IN1,1) LT '0' ).ERR0050 07838603 AIF ('&NAME'(&IN1,1) GT '9' ).ERR0050 07888603 AGO .ONW30 07938603 .* IF THE ERROR BIT IS SET, SKIP CSECT CARD 07988603 .ONW40 AIF (&ERRBIT EQ 1).ONW50 08038603 &NAME CSECT 08088603 .ONW50 ANOP 08138603 MEXIT 08188603 .ERR0010 MNOTE 8,'CARDS OUT OF SEQUENCE' 08238603 &ERRBIT SETB 1 08288603 &CMZELOG(1) SETB 0 08338603 &CMZELOG(2) SETB 1 08388603 AGO .ONW20 08438603 .ERR0020 MNOTE 8,'NO STARTS,CSECTS,OR DSECTS ALLOWED IN THIS ASSEMBLY' 08488603 &ERRBIT SETB 1 08538603 AGO .ONW20 08588603 .ERR0030 MNOTE 8,'NAME WAS NOT SPECIFIED' 08638603 &ERRBIT SETB 1 08688603 AGO .ONW40 08738603 .ERR0040 MNOTE 8,'NAME ''&NAME'' IS LONGER THAN EIGHT CHARACTERS' 08788603 &ERRBIT SETB 1 08838603 AGO .ONW40 08888603 .ERR0050 ANOP 08938603 &ERRCHAR SETC '&NAME'(&IN1,1) 08988603 MNOTE 8,'''&ERRCHAR'' IS INVALID CHARACTER IN NAME ''&NAME''' 09038603 &ERRBIT SETB 1 09088603 AGO .ONW30 09138603 MEND 09188603