*************************************************************** S21021 00130002 * 00260002 ************ ENTIRE MODULE REPLACED UNDER CODE S21021 00390002 SPACE 2 00520002 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 00650002 MACRO 00780002 &NAME LINE &DATA,&LABEL,&SKIP= 00910002 .* THIS MACRO ESTABLISHES THE MARGINS OR 01040002 .* COLUMN SETTINGS FOR EACH LINE. IT 01170002 .* GENERATES NECESSARY CARRIAGE CONTROL 01300002 .* ENTRIES. LASTLY IT DETERMINES THE 01430002 .* NUMBER OF ENTRIES ASSOCIATED WITH 01560002 .* THE PREVIOUS LINE AND STORES THAT # 01690002 .* INTO THE APPROPRIATE BYTE. 01820002 .* &DATA(1) - CHARACTER POSITION TO BEGIN 01950002 .* DATA. 02080002 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 02210002 .* DATA COLUMN STARTING CHARACTERS. 02340002 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 02470002 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 02600002 .* STARTING CHARACTERS. 02730002 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 02860002 .* TO BEGIN NEXT PRINTED LINE. 02990002 .* NEW ENTRIES ARE GENERATED ONLY WHEN 03120002 .* NECESSARY. OMISSION OF ITEMS MEANS 03250002 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 03380002 .* SETTINGS. A LINE MACRO IS REQUIRED 03510002 .* FOR EACH PRINTED LINE. IF NO SETTING 03640002 .* CHANGES ARE REQUIRED ALL OPERANDS 03770002 .* ARE OMITTED IN WHICH CASE ONLY THE 03900002 .* # OF ENTRIES FOR THE PREVIOUS LINE 04030002 .* IS COMPUTED. THIS MACRO MUST BE THE 04160002 .* FIRST MACRO INSTRUCTION ISSUED FOR 04290002 .* THE SUBJECT LINE 04420002 GBLA &DB,&DT,&LB,<,&NRENTS 04550002 GBLA &LASTCC,&INITIAL 04680002 GBLC &NRENTSX 04810002 GBLC &CARRCON 04940002 GBLB &TEST 05070002 LCLA &S 05200002 &NAME DS 0C 05330002 AIF (&INITIAL EQ 0).FIRSTLN 05460002 LINEND 05590002 AGO .NTFIRST 05720002 .FIRSTLN ANOP 05850002 &NRENTSX SETC 'N&SYSNDX' 05980002 &INITIAL SETA 1 06110002 N&SYSNDX EQU * 06240002 .NTFIRST ANOP 06370002 DC AL1(0) 06500002 AIF ('&DATA(1)' EQ '').CKDTABS 06630002 AIF (&DATA(1) EQ &DB).CKDTABS 06760002 &DB SETA &DATA(1) 06890002 AGO .AA 07020002 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 07150002 AIF (&DATA(2) EQ &DT).NCDATA 07280002 AGO .CC 07410002 .AA AIF ('&DATA(2)' EQ '').BB 07540002 AIF (&DATA(2) EQ &DT).BB 07670002 .CC ANOP 07800002 &DT SETA &DATA(2) 07930002 .BB DC XL2'FFFE' 08060002 DC FL1'&DB' 08190002 DC FL1'&DT' 08320002 &NRENTS SETA &NRENTS+1 08450002 .NCDATA ANOP 08580002 AIF ('&LABEL(1)' EQ '').CKLTABS 08710002 AIF (&LABEL(1) EQ &LB).CKLTABS 08840002 &LB SETA &LABEL(1) 08970002 AGO .AAA 09100002 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 09230002 AIF (&LABEL(2) EQ <).NCLABEL 09360002 AGO .CCC 09490002 .AAA AIF ('&LABEL(2)' EQ '').BBB 09620002 AIF (&LABEL(2) EQ <).BBB 09750002 .CCC ANOP 09880002 < SETA &LABEL(2) 10010002 .BBB DC XL2'FFFF' 10140002 DC FL1'&LB' 10270002 DC FL1'<' 10400002 &NRENTS SETA &NRENTS+1 10530002 .NCLABEL ANOP 10660002 AIF ('&SKIP' NE '').CONT 10790002 AIF (&TEST EQ 0).NOCHANG 10920002 &S SETA &LASTCC 11050002 AGO .DEFAULT 11180002 .CONT ANOP 11310002 AIF (&TEST EQ 0).AB 11440002 &S SETA &SKIP 11570002 .DEFAULT ANOP 11700002 ORG &CARRCON+3 11830002 DC AL.3(0),AL.2(&S),AL.3(1) 11960002 ORG 12090002 &LASTCC SETA &S 12220002 &TEST SETB 0 12350002 AGO .DD 12480002 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 12610002 A&SYSNDX DC XL2'FFFB' 12740002 DC AL.3(0),AL.2(&SKIP),AL.3(1) 12870002 DC FL1'9' 13000002 &LASTCC SETA &SKIP 13130002 &TEST SETB 1 13260002 &CARRCON SETC 'A&SYSNDX' 13390002 &NRENTS SETA &NRENTS+1 13520002 .DD ANOP 13650002 .NOCHANG ANOP 13780002 MEND 13910002 EJECT 14040002 SPACE 2 14170002 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 14300002 MACRO 14430002 &NAME ROUTINE &LOGITEM,&RNAME 14560002 GBLC &DSECT,&CSECT 14690002 GBLC &ITEM(1000) 14820002 GBLA &SHIFT(1000),&ITEMNBR 14950002 GBLA &NRENTS 15080002 LCLA &ISHIFT,&NDX 15210002 .LOOP ANOP 15340002 &NDX SETA &NDX+1 15470002 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 15600002 AIF (&NDX LT &ITEMNBR).LOOP 15730002 MNOTE *,'LOG ITEM NOT DEFINED' 15860002 MEXIT 15990002 .FOUND ANOP 16120002 &ISHIFT SETA &SHIFT(&NDX) 16250002 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 16380002 DC AL.4(&ISHIFT),AL.12(&RNAME-&CSECT) 16510002 &NRENTS SETA &NRENTS+1 16640002 MEND 16770002 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 16900002 SPACE 2 17030002 MACRO 17160002 &NAME DSGEN &X1,&X2,&X3,&X4,&X5,&X6,&X7,&X8,&X9,&X10,&X11,&X12,&X13,X17290002 &X14,&X15,&X16,&X17,&X18,&X19,&X20,&X21,&X22,&X23,&X24, X17420002 &X25,&X26,&X27,&X28,&X29,&X30,&X31,&X32 17550002 .* THIS MACRO GENERATES ONE DSECT WORD 17680002 .* FORMATTED FOR THE SUBJECT LOG RECORD 17810002 .* EACH OPERAND HAS TWO SUB LISTS. THE 17940002 .* FIRST IS THE NAME OF THE LOG ITEM 18070002 .* WHILE THE SECOND IS THE # OF BITS TO 18200002 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 18330002 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 18460002 .* UNUSED BIT GROUPS MUST BE GIVEN 18590002 .* DUMMY NAMES. THE NAMES PROVIDED FOR 18720002 .* THE LOG ITEMS MAY THEN BE USED IN 18850002 .* THE CONVERSION MACRO INSTRUCTIONS. 18980002 GBLC &ITEM(1000) 19110002 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 19240002 LCLC &SYMBOL 19370002 LCLA &OP,&COUNT,&BYTE 19500002 .LOOP ANOP 19630002 &OP SETA &OP+1 19760002 &ITEMNBR SETA &ITEMNBR+1 19890002 &SYMBOL SETC '&SYSLIST(&OP,1)' 20020002 AIF ('&SYSLIST(&OP,2)' NE '').OK1 20150002 MNOTE *,'NULL BIT COUNT FIELD' 20280002 MEXIT 20410002 .OK1 ANOP 20540002 AIF ('&SYMBOL' NE '').OK 20670002 MNOTE 'LOG ITEM SYMBOL NOT PROVIDED' 20800002 AGO .CNT 20930002 .OK ANOP 21060002 AIF ('&SYMBOL'(1,1) EQ '''').CNT *TEMP* 21190002 &SYMBOL EQU *+&BYTE 21320002 &ITEM(&ITEMNBR) SETC '&SYSLIST(&OP,1)' 21450002 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 21580002 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 21710002 .CNT ANOP 21840002 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 21970002 &BYTE SETA &COUNT/8 22100002 AIF (&OP LT N'&SYSLIST).LOOP 22230002 AIF (&COUNT NE 32).NOT32 22360002 &NAME DS 4C 22490002 MEXIT 22620002 .NOT32 AIF (&COUNT NE 64).ERR 22750002 &NAME DS 8C 22880002 MEXIT 23010002 .ERR MNOTE '**BIT COUNT FIELDS DO NOT TOTAL 32 OR 64**' 23140002 MEND 23270002 MACRO 23400002 LINEND 23530002 .* THIS MACRO IS USED ONLY BY THE LINE 23660002 .* MACRO TO SET THE NUMBER OF ENTRIES 23790002 .* ASSOCIATED WITH EACH LINE. 23920002 GBLA &NRENTS 24050002 GBLC &NRENTSX 24180002 ORG &NRENTSX 24310002 DC FL1'&NRENTS' 24440002 ORG 24570002 &NRENTS SETA 0 24700002 B&SYSNDX EQU * 24830002 &NRENTSX SETC 'B&SYSNDX' 24960002 MEND 25090002 SPACE 2 25220002 EJECT 25350002 * LABEL MACRO LABEL MACRO LABEL MACRO LABEL MACRO * 25480002 SPACE 2 25610002 MACRO 25740002 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C25870002 &LABEL7,&LABEL8 26000002 .* THIS MACRO ALLOWS UP TO ACHT LABELS TO 26130002 .* BE SPECIFIED FOR A GIVEN LINE. THE 26260002 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 26390002 .* TION MARKS. THE COLUMN AND LINE END 26520002 .* CONTROLS WILL BE INSERTED BY THE 26650002 .* MACRO. OMITTED OPERANDS MEAN NO 26780002 .* LABEL REQUIRED FOR RESPECTIVE 26910002 .* COLUMN. THIS MACRO WILL ALSO ALERT 27040002 .* THE PROGRAMMER TO EXACTLY WHERE THE 27170002 .* TABLE MUST BE BROKEN IF NECESSARY 27300002 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 27430002 GBLC &LABELS(2000) 27560002 GBLC &LBL(100) 27690002 GBLA &LBLCTR(100) 27820002 GBLA &LABELNR 27950002 GBLA &NRENTS,&LPTR 28080002 LCLC &MARGIN,&TACK 28210002 LCLC &TEXT 28340002 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 28470002 &MARGIN SETC '*' 28600002 AIF ('&NAME' EQ '').LOOPOUT 28730002 &LPTR SETA &LPTR+1 28860002 &LBL(&LPTR) SETC '&NAME' 28990002 &LBLCTR(&LPTR) SETA &LABELNR+1 29120002 .LOOPOUT ANOP 29250002 &OP SETA &OP+1 29380002 &K SETA K'&SYSLIST(&OP) 29510002 AIF (&K GE 2).NORM 29640002 &K SETA 2 29770002 .NORM ANOP 29900002 &START SETA 2 30030002 AIF (&OP LT N'&SYSLIST).NOTLAST 30160002 &MARGIN SETC '$' 30290002 .NOTLAST ANOP 30420002 &NRCHAR SETA 8 30550002 &TACK SETC '' 30680002 .LOOPIN ANOP 30810002 &REMAIN SETA &K-&START 30940002 AIF (&REMAIN GE 8).MORE 31070002 &TACK SETC '&MARGIN' 31200002 &NRCHAR SETA &REMAIN 31330002 .MORE ANOP 31460002 &TEXT SETC '' 31590002 AIF (&REMAIN EQ 0).ENDTEXT 31720002 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 31850002 .ENDTEXT ANOP 31980002 &LABELNR SETA &LABELNR+1 32110002 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 32240002 &START SETA &START+8 32370002 AIF ('&TACK' EQ '').LOOPIN 32500002 AIF ('&TACK' EQ '*').LOOPOUT 32630002 MEND 32760002 SPACE 2 32890002 MACRO 33020002 LSTART 33150002 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 33280002 .* OF THE TABLE IS TO BEGIN. 33410002 GBLC &LABELS(2000) 33540002 GBLA &LABELNR 33670002 GBLC &LBL(100) 33800002 GBLA &LBLCTR(100) 33930002 LCLA &NDX,&CTR 34060002 LINEND 34190002 &CTR SETA 1 34320002 .LOOP ANOP 34450002 &NDX SETA &NDX+1 34580002 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 34710002 &LBL(&CTR) DC C'&LABELS(&NDX)' 34840002 &CTR SETA &CTR+1 34970002 AGO .LOOPCTL 35100002 .NOLBL ANOP 35230002 DC C'&LABELS(&NDX)' 35360002 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 35490002 MEND 35620002 SPACE 2 35750002 * BIN MACRO BIN MACRO BIN MACRO BIN MACRO BIN MACRO * 35880002 SPACE 2 36010002 MACRO 36140002 BIN &LOGITEM,&SKIP$OR 36270002 .* &LOGITEM - NAME OF ITEM IN LOG 36400002 .* RECORD DSECT 36530002 .* &SKIP$OR - NBR OF SPACES TO SKIP ON 36660002 .* MULTIPLE PRINT OR NBR OF SPACES 36790002 .* TO BACK UP FROM COLUMN FOR 36920002 .* START OF PRINTING. THE LETTER 37050002 .* B PRECEEDS THE NUMBER (B5) IF 37180002 .* THE LATTER IS DESIRED. OMISSION 37310002 .* OF THIS OPERAND FORCES OPTION 2 37440002 .* WITH BACKUP SPACING EQUAL TO 37570002 .* THE NUMBER OF BITS IN THE ITEM 37700002 .* DEFINITION (VIA MACRO 'DSGEN'). 37830002 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 37960002 .* TOTAL NUMBER OF BITS TO PRINT. 38090002 GBLC &ITEM(1000) 38220002 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 38350002 GBLC &DSECT 38480002 LCLB &B 38610002 LCLA &IBITS,&NDX,&ISHIFT,&K 38740002 LCLA &TEMP,&T 38870002 LCLC &S 39000002 .LOOP ANOP 39130002 &NDX SETA &NDX+1 39260002 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 39390002 AIF (&NDX LT &ITEMNBR).LOOP 39520002 MNOTE *,'YOU BLEW IT' 39650002 ROUTINE DUM,SKIPPER 39780002 MEXIT 39910002 .FOUND ANOP 40040002 &ISHIFT SETA &SHIFT(&NDX) 40170002 &IBITS SETA &BITS(&NDX) 40300002 &T SETA &IBITS-1 40430002 &B SETB 0 40560002 AIF ('&SKIP$OR' EQ '').BACKUP 40690002 &K SETA K'&SKIP$OR 40820002 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 40950002 &S SETC '&SKIP$OR'(&B+1,&K-&B) 41080002 &T SETA &S 41210002 .BACKUP ANOP 41340002 &NRENTS SETA &NRENTS+1 41470002 &TEMP SETA &ISHIFT 41600002 A&SYSNDX DC AL.12(&LOGITEM-&DSECT),XL.4'&TEMP' 41730002 AIF (&IBITS EQ 1 AND &B EQ 0).OUT 41860002 ORG A&SYSNDX 41990002 &B SETB 1 42120002 DC AL.12(&LOGITEM-&DSECT),XL.4'C' 42250002 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 42380002 .OUT ANOP 42510002 MEND 42640002 EJECT 42770002 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 42900002 SPACE 2 43030002 MACRO 43160002 HEX &LOGITEM,&SKIP$OR,&BYTES 43290002 .* THIS MACRO FACILITATES GENERATION OF THE 43420002 .* TABLE ENTRIES SPECIFYING HEX TYPE 43550002 .* CONVERSIONS. 43680002 .* &LOGITEM - NAME OF DATA ITEM TO BE 43810002 .* CONVERTED 43940002 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 44070002 .* MULTIPLE PRINT OR NBR OF SPACES TO 44200002 .* BACK UP FROM COLUMN FOR START OF 44330002 .* PRINTING. THE LETTER B PRECEEDS THE 44460002 .* NUMBER (B8) IF THE LATTER OPTION IS 44590002 .* DESIRED. OMISSION OF THIS OPERAND 44720002 .* FORCES OPTION 2 WITH BACKUP SPACING 44850002 .* EQUAL TO THE NUMBER OF BYTES SPECI- 44980002 .* FIED BY THE NEXT OPERAND (TWICE THIS 45110002 .* NUMBER IF SUFFIX IS EXPLICITLY OR 45240002 .* IMPLICITLY B). 45370002 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 45500002 .* PROCESS. THIS NUMBER IS SUFFIXED 45630002 .* WITH AN L,R, OR B TO STIPULATE 45760002 .* PRINTING OF THE LEFT HALF, RIGHT 45890002 .* HALF, OR BOTH HALVES OF THE BYTE 46020002 .* RESPECTIVELY. OMISSION OF THIS 46150002 .* OPERAND DEFAULTS TO B WITH THE NUM- 46280002 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 46410002 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 46540002 .* SARY. THIS MACRO MUST BE THE FIRST 46670002 .* MACRO INSTRUCTION ISSUED FOR THE 46800002 .* SUBJECT LINE(S). 46930002 GBLC &ITEM(1000),&DSECT 47060002 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 47190002 LCLB &B 47320002 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 47450002 LCLC &S,&LETTER 47580002 .LOOP ANOP 47710002 &NDX SETA &NDX+1 47840002 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 47970002 AIF (&NDX LT &ITEMNBR).LOOP 48100002 MNOTE *,'LOG ITEM NOT DEFINED' 48230002 MEXIT 48360002 .FOUND ANOP 48490002 &ISHIFT SETA &SHIFT(&NDX) 48620002 &IBITS SETA &BITS(&NDX) 48750002 &CODE SETA 1 48880002 &K SETA K'&BYTES 49010002 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 49140002 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 49270002 MEXIT 49400002 .OK AIF ('&BYTES' EQ '').USEDEFN 49530002 &LETTER SETC '&BYTES'(&K,1) 49660002 &S SETC '&BYTES'(1,&K-1) 49790002 &BYTESP SETA &S 49920002 AIF ('&LETTER' EQ 'B').BOTH 50050002 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 50180002 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 50310002 MEXIT 50440002 .USEDEFN ANOP 50570002 &BYTESP SETA &IBITS/8 50700002 .BOTH AIF (&ISHIFT NE 0).ERR 50830002 &CODE SETA 3 50960002 &T SETA &BYTESP*2-1 51090002 &S SETC '&T' 51220002 .OK2 AIF (&ISHIFT EQ 0).L 51350002 &CODE SETA 2 51480002 .L ANOP 51610002 &B SETB 1 51740002 AIF ('&SKIP$OR' EQ '').BACKUP 51870002 &K SETA K'&SKIP$OR 52000002 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 52130002 &S SETC '&SKIP$OR'(&B+1,&K-&B) 52260002 .BACKUP ANOP 52390002 &NRENTS SETA &NRENTS+1 52520002 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 52650002 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 52780002 .OUT ANOP 52910002 MEND 53040002 MACRO 53170002 SPECIAL &ROUTINE,&PARAM,&SPACE= 53300002 .* THIS MACRO GENERATES A SPECIAL ROUTINE 53430002 .* ENTRY TO BE PROCESSED BY THE SUM. M. 53560002 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 53690002 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 53820002 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 53950002 .* INTERPRETED AS AN ARGUMENT OF THE 54080002 .* SPECIAL ROUTINE. 54210002 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 54340002 .* ALLOCATE FOR REQUIRED PROCESSING. 54470002 GBLC &CSECT 54600002 GBLA &COUNTR 54730002 LCLA &ADD 54860002 DC AL1(128) 54990002 DC BL.8'&PARAM' 55120002 DC AL2(&ROUTINE-&CSECT) 55250002 DC AL2(&COUNTR) 55380002 &ADD SETA 1 55510002 AIF ('&SPACE' EQ '').NORM 55640002 &ADD SETA &SPACE 55770002 .NORM ANOP 55900002 &COUNTR SETA &COUNTR+&ADD 56030002 MEND 56160002 MACRO 56290002 SUM &LOGITEM,&MASK 56420002 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 56550002 .* FOR PROCESSING BY THE SUMMARY MODULE 56680002 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 56810002 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 56940002 .* THIS OPERAND SHOULD BE OMITTED FOR 57070002 .* SINGLE BIT ITEMS IN WHICH CASE THE 57200002 .* MASK WILL BE SET ACCORDING TO THE 57330002 .* OFF BYTE BIT DISPLACEMENT OF THE 57460002 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 57590002 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 57720002 GBLC &ITEM(1000),&DSECT 57850002 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 57980002 .LOOP ANOP 58110002 &NDX SETA &NDX+1 58240002 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 58370002 AIF (&NDX LT &ITEMNBR).LOOP 58500002 MNOTE *,'LOGITEM NOT FOUND' 58630002 MEXIT 58760002 .FOUND ANOP 58890002 DC AL1(0) 59020002 &ISHIFT SETA &SHIFT(&NDX) 59150002 &IBITS SETA &BITS(&NDX) 59280002 AIF ('&MASK' EQ '').FORM 59410002 DC B'&MASK' 59540002 AGO .ITEM 59670002 .FORM ANOP 59800002 &BITNBR SETA &ISHIFT-7 59930002 &BITNBR SETA 0-&BITNBR 60060002 &M SETA 1 60190002 .LOOP2 ANOP 60320002 AIF (&BITNBR EQ 0).GOTIT 60450002 &M SETA &M*2 60580002 &BITNBR SETA &BITNBR-1 60710002 AGO .LOOP2 60840002 .GOTIT ANOP 60970002 DC AL1(&M) 61100002 .ITEM DC AL2(&LOGITEM-&DSECT) 61230002 DC AL2(&COUNTR) 61360002 &COUNTR SETA &COUNTR+1 61490002 MEND 61620002 GBLC &DSECT,&CSECT 61750002 * 61880002 &CSECT SETC 'IFCSUKNO' 62010002 &DSECT SETC 'COMMON' 62140002 TITLE 'IFCSUKNO-SUM TABLE-LINKNAME IFCSUKNO' 62270002 IFCSUKNO CSECT 62400002 * 62530002 USING *,R9 62660002 USING COMMON,R2 62790002 * 62920002 * 63050002 COMMON DSECT 63180002 DSGEN (CLASS,8),(DUM,24) 63310002 DSGEN (DUMA,32),(DATE,32) 63440002 * 63570002 CLASSARE DSECT 63700002 DS CL22 HEADER ALWAYS PRESENT 63830002 DS CL8 NOT ALWAYS PRESENT 63960002 DS CL8 64010002 CLASSCTR DS CL40 ALWAYS PRESENT 64090002 LODATE DS CL4 64220002 HIDATE DS CL4 64350002 RECTYPE DS CL2 @XL03162 64410002 IFCSUKNO CSECT 64480002 * 64610002 DC A(SUM) 64740002 DC A(EDIT) 64870002 DS F 65000002 SCSIZE DC H'33' @XL03162 65130002 EJECT 65260002 * 65390002 * SPECIAL ROUTINES FOR SUMM SECTION 65520002 * 65650002 USING CLASSARE,R6 65780002 SAVEDATE CLC DATE(L4),ZERO IS DATE IN ZERO 65910002 BE EXIT YES 66040002 CLC LODATE(L4),ZERO IS THIS FIRST DATE 66170002 BNE CHKLOW BR-NO 66300002 SAVELOW MVC LODATE(L4),DATE MOVE IN LOW DATE 66430002 CHKLOW CLC DATE(L4),DATE IS THIS DATE LOWER 66560002 BL SAVELOW YES 66690002 CHKHI CLC DATE(L4),HIDATE IS THIS DATE HI 66820002 BL EXIT BR-NO 66950002 SAVEHI MVC HIDATE(L4),DATE MOVE IN HIDATE 67080002 EXIT BR R14 67210002 SAVECLAS STM R5,R6,WORK SAVE WORK REGS 67340002 LA R5,CLASSCTR PICK UP ADDRESS OF COUNTERS 67470002 LA R6,L10 SET LOOP COUNTER 67600002 LOOP CLI L0(R5),HEXFF IS COUNTER IN USE 67730002 BNE EMPTY BR NOT USED 67860002 CLC L1(L1,R5),CLASS IS CLASS EQUAL 67990002 BE ADD1 BR YES 68120002 LA R5,L4(R5) BUMP TO NEXT SLOT 68250002 BCT R6,LOOP LOOP TEN TIMES 68380002 DONE LM R5,R6,WORK RESET REGS 68510002 DONEA BR R14 RETURN 68640002 EMPTY MVI L0(R5),HEXFF MOVE IN IN USE FLAG 68770002 MVC L1(L1,R5),CLASS MOVE IN CLASS 68900002 ADD1 LH R6,L2(R5) PICK UP COUNTER 69030002 LA R6,L1(R6) ADD 1 TO IT 69160002 STH R6,L2(R5) PUT IT BACK 69290002 B DONE 69420002 SAVETYPE MVC RECTYPE(L1),DUMA MOVE SUB ID TO SUM AREA 69460002 BR R14 @XL03162 69500002 * 69550002 * 69680002 EJECT 69810002 SUM DS 0F 69940002 SPECIAL SAVECLAS,0,SPACE=1 70070002 SPECIAL SAVEDATE,0,SPACE=4 70200002 SPECIAL SAVETYPE,0,SPACE=1 @XL03162 70260002 DC X'FF' 70330002 * 70460002 EJECT 70590002 &DSECT SETC 'SUMDSECT' 70720002 &CSECT SETC 'EDIT' 70850002 EDIT DS 0F 70980002 USING EDIT,R9 71110002 USING SUMDSECT,R2 71240002 DC A(ENTRIES) 71370002 DC C'IFCSUKNO' 71500002 R9PTR DS 2F 71630002 * 71760002 SUMDSECT DSECT 71890002 DSGEN (TBLPTR,32),(FWDPTR,32) 72020002 DSGEN (NOREC,16),(TYPE,8),(DUMM,8) 72150002 DSGEN (YCUA,24),(YSER,24),(YCPU,16) 72280002 DS 9H 72410002 DSGEN (FF1,8),(TYP1,8),(CNT1,16) 72540002 DSGEN (FF2,8),(TYP2,8),(CNT2,16) 72670002 DSGEN (FF3,8),(TYP3,8),(CNT3,16) 72800002 DSGEN (FF4,8),(TYP4,8),(CNT4,16) 72930002 DSGEN (FF5,8),(TYP5,8),(CNT5,16) 73060002 DSGEN (FF6,8),(TYP6,8),(CNT6,16) 73190002 DSGEN (FF7,8),(TYP7,8),(CNT7,16) 73320002 DSGEN (FF8,8),(TYP8,8),(CNT8,16) 73450002 DSGEN (FF9,8),(TYP9,8),(CNT9,16) 73580002 DSGEN (FFA,8),(TYPA,8),(CNTA,16) 73710002 DSGEN (LO,32),(HI,32) 73840002 DSGEN (SUBID,8),(FLAG,8) @XL03162 73900002 * 73970002 IFCSUKNO CSECT 74100002 * 74230002 R0 EQU 0 74360002 R1 EQU 1 74490002 R2 EQU 2 74620002 R3 EQU 3 74750002 R4 EQU 4 74880002 R5 EQU 5 75010002 R6 EQU 6 75140002 R7 EQU 7 75270002 R8 EQU 8 75400002 R9 EQU 9 75530002 R10 EQU 10 75660002 R11 EQU 11 75790002 R12 EQU 12 75920002 R13 EQU 13 76050002 R14 EQU 14 76180002 R15 EQU 15 76310002 L0 EQU 0 76440002 L1 EQU 1 76570002 L2 EQU 2 76700002 L3 EQU 3 76830002 L4 EQU 4 76960002 L5 EQU 5 77090002 L6 EQU 6 77220002 L7 EQU 7 77350002 L8 EQU 8 77480002 L9 EQU 9 77610002 L10 EQU 10 77740002 L11 EQU 11 77870002 L12 EQU 12 78000002 L15 EQU 15 @XL03162 78030002 L16 EQU 16 @XL03162 78060002 L20 EQU 20 @XL03162 78090002 L24 EQU 24 78130002 L28 EQU 28 78260002 L30 EQU 30 @XL03162 78280002 L37 EQU 37 @XL03162 78300002 L41 EQU 41 @XL03162 78320002 L42 EQU 42 @XL03162 78340002 HEXFF EQU X'FF' 78390002 HEX0F EQU X'0F' 78520002 * 78650002 * SPECIAL ROUTINES EDIT SECTION 78780002 CONVERT ST R5,SAVE5 78910002 LH R5,L0(R4) PICK UP NUMBER TO CONVERT 79040002 CVD R5,WORK CONVERT IT 79170002 UNPK L0(L4,R3),WORK+L4(L4) UNPACK IT INTO PRINT LINE 79300002 MVZ L3(L1,R3),L0(R3) MOVE ON PROPER ZONE 79430002 L R5,SAVE5 RESET REG 79560002 SKIPPER BR R14 79690002 * 79820002 SETTYP CLI L0(R4),HEXFF IS COUNTER IN USE 79950002 BE SKIPPER 80080002 SR R15,R15 NO STOP PRINT 80210002 BR R14 RETURN 80340002 * 80470002 FREECORE STM R14,R12,L12(R13) 80600002 LR R12,R13 CHAIN SAVE AREAS 80730002 LA R13,FSAVE 80860002 ST R12,L4(R13) 80990002 ST R13,L8(R12) 81120002 L R3,FWDPTR PICK UP FORWARD PTR 81250002 ST R3,L28(R12) SET IT IN SAVED REG 2 81380002 LH R0,SIZE PICK UP SEZE 81510002 LR R1,R2 SET POINTER 81640002 FREEMAIN R,LV=(0),A=(1) 81770002 LTR R3,R3 ANY MORE AREAS TO PRINT 81900002 BZ RETURN BR-NO 82030002 LA R5,ENTRIES+L10 SET POINTERS 82160002 LA R6,LABELS-L1 TO RELLOOP 82290002 STM R5,R6,R9PTR SET THEM 82420002 RETURN LR R13,R12 82550002 LM R14,R12,L12(R13) RESET REGS 82680002 SR R15,R15 CLEAR REG FOR NO PRINT @XL03162 82740002 BR R14 82810002 * 82940002 SETDATE OI L3(R4),HEX0F SET UP SIGN TO PACK 83070002 UNPK WORKA(L8),L0(L4,R4) UNPACK VALUE 83200002 MVZ WORKA+L7(L1),WORKA SET UP ZONE TO PRINT 83330002 MVC L0(L3,R3),WORKA+L5 MOVE DAY 83460002 MVC L5(L2,R3),WORKA+L3 MOVE YEAR 83590002 BR R14 83720002 WHATYPE ST R5,SAVE5 SAVE REG @XL03162 83722002 L R5,R9PTR+L4 GET POINTER TO CURRENT LABEL 83724002 CLI TYPE,X'70' IS RECORD A MIH RECORDING 83726002 BNE CHKDDR BRANCH-NO @XL03162 83728002 MVI FLAG,X'FF' PUT IN FLAG TO SKIP TYPES 83730002 MVC L11(L30,R5),L10(R5) BLANK OUT LABEL @XL03162 83732002 MVC L11(L11,R5),MIHHDR MOVE IN MIH LABEL @XL03162 83734002 MVC L37(L3,R5),CUAHDR MOVE IN CUA @XL03162 83736002 B BACKB BRANCH TO RETURN @XL03162 83738002 CHKDDR CLI TYPE,X'60' IS RECORD A DDR RECORDING 83740002 BNE CHK3211 CHK FOR A 3211 @XL03162 83742002 MVI FLAG,X'FF' OUT IN FLAG TO SKIP TYPES 83744002 MVC L11(L30,R5),L10(R5) BLANK LABEL @XL03162 83746002 MVC L11(L3,R5),DDRHDR MOVE IN 'DDR' HEADER @XL03162 83748002 MVC L15(L7,R5),HDR1 @XL03162 83750002 MVC L37(L3,R5),CUAHDR MOVE IN 'CUA' LABEL @XL03162 83752002 B BACKB BRANCH TO RETURN @XL03162 83754002 CHK3211 MVC TYPE1(L1),TYPE CHK TYPE FOR A 90 @XL03162 83756002 NI TYPE1,X'90' CHK FOR AN MDR RECORD @XL03162 83758002 CLI TYPE1,X'90' IS THIS A POSSIBLE MDR @XL03162 83760002 BNE CHKSOFT NOT 3211-CHK FOR SOFTWARE 83762002 CLI SUBID,X'04' CHK SUB ID FOR A 3211 @XL03162 83764002 BNE BLNKOUT NO-GO TO BLANKOUT CUA @XL03162 83766002 MVI FLAG,X'FF' PUT IN FLAG TO SKIP TYPES 83768002 MVC L11(L30,R5),L10(R5) BLANK OUT LABEL @XL03162 83770002 MVC L11(L4,R5),HDR3211 MOVE IN 3211 @XL03162 83772002 MVC L16(L7,R5),HDR1 MOVE IN 'RECORD' @XL03162 83774002 MVC L37(L3,R5),CUAHDR MOVE IN 'CUA' @XL03162 83776002 B BACKB GO TO RETURN @XL03162 83778002 CHKSOFT MVC TYPE1(L1),TYPE @XL03162 83780002 NI TYPE1,X'40' IS RECORD A SOFTWARE @XL03162 83782002 CLI TYPE1,X'40' IS THIS A SOFTWARE RECORD 83784002 BNE BLNKOUT NO-IT IS TRUE UNKNOWN @XL03162 83786002 MVC L11(L30,R5),L10(R5) BLANK LABEL @XL03162 83788002 MVC L11(L8,R5),SOFTHDR PUT IN SOFTWARE HEADER @XL03162 83790002 MVC L20(L7,R5),HDR1 @XL03162 83792002 BLNKOUT BCTR R3,0 REDUCE PRINT BUFFER PTR 83794002 MVC L0(L6,R3),L6(R3) BLANK OUT CUA @XL03162 83796002 BACKB L R5,SAVE5 RELOAD REG5 @XL03162 83798002 BR R14 RETURN @XL03162 83800002 SOFTHDR DC CL8'SOFTWARE' @XL03162 83802002 DDRHDR DC CL3'DDR' @XL03162 83804002 CUAHDR DC CL3'CUA' @XL03162 83806002 MIHHDR DC CL4'MIH ' @XL03162 83808002 HDR1 DC CL7'RECORDS' @XL03162 83810002 HDR3211 DC CL4'3211' @XL03162 83812002 TYPE1 DC X'00' @XL03162 83814002 WHERETO ST R5,SAVE5 SAVE REG @XL03162 83816002 CLI FLAG,X'FF' IS THIS MIH OR DDR @XL03162 83818002 BCR 7,R14 RETURN TO PRINT CLASSES 83820002 SR R15,R15 CLEAR FOR NO PRINT @XL03162 83822002 LA R5,LASTENT-4 NO RECORD TYPE COUNTERS PRINTED 83824002 ST R5,R9PTR UPDATE ENTRY TO END OF TABLE 83826002 L R5,SAVE5 RELOAD REG @XL03162 83828002 BR R14 RETURN @XL03162 83830002 EJECT 83850002 * 83980002 ENTRIES DS 0F 84110002 DC X'00010001' 84240002 DC X'00010001' 84370002 DC A(LABELS) 84500002 DC H'0' 84630002 * 84760002 DC X'01' 84890002 DC X'000B8B00' 85020002 LABEL '' 85150002 * 85280002 LINE (42,1),(1,1),SKIP=2 @XL03162 85410002 HEX YCUA,0,3B @XL03162 85540002 ROUTINE DUMM,WHATYPE @XL03162 85600002 LABEL 'SUMMARY OF UNKNOWN OR UNSUPPORTED RECORDS' 85670002 * 85800002 LINE ,(23,11),SKIP=1 85930002 ROUTINE DUMM,SKIPPER 86060002 LABEL 'DAY YEAR DAY YEAR' 86190002 LINE (23,11),(1,30),SKIP=2 86320002 ROUTINE LO,SETDATE 86450002 ROUTINE HI,SETDATE 86580002 LABEL 'RECORD DATE RANGE' 86710002 * 86840002 LINE (9,21),(1,17) 86970002 HEX YCPU,0,2B 87100002 HEX YSER,0,3B 87230002 LABEL 'MODEL -','SERIAL NO -' 87360002 * 87490002 LINE (25,1) 87620002 ROUTINE NOREC,CONVERT 87750002 LABEL 'TOTAL NUMBER OF RECORDS=' 87880002 * 88010002 LINE 88140002 ROUTINE DUMM,SKIPPER 88270002 ROUTINE DUMM,WHERETO @XL03162 88330002 LABEL 'CLASSES ENCOUNTERED(MAXIMUM OF 10)' 88400002 LINE (15,5),(1,1),SKIP=1 88530002 HEX TYP1,0,1B 88660002 ROUTINE CNT1,CONVERT 88790002 ROUTINE FF1,SETTYP 88920002 LABEL 'RECORD CLASS -' 89050002 LINE 89180002 HEX TYP2,0,1B 89310002 ROUTINE CNT2,CONVERT 89440002 ROUTINE FF2,SETTYP 89570002 LABEL 'RECORD CLASS -' 89700002 LINE 89830002 HEX TYP3,0,1B 89960002 ROUTINE CNT3,CONVERT 90090002 ROUTINE FF3,SETTYP 90220002 LABEL 'RECORD CLASS -' 90350002 LINE 90480002 HEX TYP4,0,1B 90610002 ROUTINE CNT4,CONVERT 90740002 ROUTINE FF4,SETTYP 90870002 LABEL 'RECORD CLASS -' 91000002 LINE 91130002 HEX TYP5,0,1B 91260002 ROUTINE CNT5,CONVERT 91390002 ROUTINE FF5,SETTYP 91520002 LABEL 'RECORD CLASS -' 91650002 LINE 91780002 HEX TYP6,0,1B 91910002 ROUTINE CNT6,CONVERT 92040002 ROUTINE FF6,SETTYP 92170002 LABEL 'RECORD CLASS -' 92300002 LINE 92430002 HEX TYP7,0,1B 92560002 ROUTINE CNT7,CONVERT 92690002 ROUTINE FF7,SETTYP 92820002 LABEL 'RECORD CLASS -' 92950002 LINE 93080002 HEX TYP8,0,1B 93210002 ROUTINE CNT8,CONVERT 93340002 ROUTINE FF8,SETTYP 93470002 LABEL 'RECORD CLASS -' 93600002 LINE 93730002 HEX TYP9,0,1B 93860002 ROUTINE CNT9,CONVERT 93990002 ROUTINE FF9,SETTYP 94120002 LABEL 'RECORD CLASS -' 94250002 LINE 94380002 HEX TYPA,0,1B 94510002 ROUTINE CNTA,CONVERT 94640002 ROUTINE FFA,SETTYP 94770002 LABEL 'RECORD CLASS -' 94900002 LABEL '' 95030002 LASTENT LINE (1,1) @XL03162 95160002 ROUTINE TBLPTR,FREECORE 95290002 LABEL '' 95420002 DC X'FF' 95550002 DC X'000000000000' 95680002 * 95810002 WORK DS D 95940002 FSAVE DS 18F 96070002 SAVE5 DS F 96200002 SIZE DC H'87' @XL03162 96330002 WORKA DC D'0' 96460002 ZERO DC F'0' 96590002 DC C'$' 96720002 LABELS EQU * 96850002 LSTART 96980002 END 97110002