./ ADD SSI=21090342,NAME=IFCST00B,SOURCE=0 MACRO 00050021 SPECIAL &ROUTINE,&PARAM,&SPACE= 00100021 .* THIS MACRO GENERATES A SPECIAL ROUTINE 00150021 .* ENTRY TO BE PROCESSED BY THE SUM. M. 00200021 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 00250021 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 00300021 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 00350021 .* INTERPRETED AS AN ARGUMENT OF THE 00400021 .* SPECIAL ROUTINE. 00450021 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 00500021 .* ALLOCATE FOR REQUIRED PROCESSING. 00550021 GBLC &CSECT 00600021 GBLA &COUNTR 00650021 LCLA &ADD 00700021 DC AL1(128) 00750021 DC BL.8'&PARAM' 00800021 DC AL2(&ROUTINE-&CSECT) 00850021 DC AL2(&COUNTR) 00900021 &ADD SETA 1 00950021 AIF ('&SPACE' EQ '').NORM 01000021 &ADD SETA &SPACE 01050021 .NORM ANOP 01100021 &COUNTR SETA &COUNTR+&ADD 01150021 MEND 01200021 EJECT 01250021 MACRO 01300021 CONVT 01350021 GBLC &ITEM(1000),&DSECT 01400021 GBLA &INITIAL 01450021 GBLA &BITS(1000),&ITEMNBR,&SHIFT(1000) 01500021 GBLA &NRENTS 01550021 GBLB &DIAGTST,&DIAGSET,&DIAGLIN 01600021 LCLB &SUB 01650021 LCLA &OP 01700021 LCLA &OFFSET,&OUT,&IN,&IND,&IBITS,&ISHIFT 01750021 .* 01800021 .* CONVERT BINARY TO DECIMAL 01850021 .* &NAME IS THE REFERENCE INTO THE DSECT RECORD 01900021 .* &OUT IS THE NUMBER OF CHARS TO BE PUT ONTO PRINT LINE 01950021 .* DEFAULT IS FOUR MAXIMUM IS 8 02000021 .* &IN IS THE NUMBER OF BYTES AS INPUT 02050021 .* ERROR DEFAULT IS 2 MAXIMUM IS 4 02100021 .* 02150021 AIF (&DIAGTST EQ 0).NOMSG 02200021 AIF (&INITIAL EQ 0).NOMSG 02250021 AIF (&DIAGLIN EQ 1).NOMSG 02300021 MNOTE '**NO LINE ASSOCIATED WITH THIS DATA**' 02350021 *****THE FOLLOWING GENERATED FOR TEST PURPOSES***** 02400021 * LINE 02450021 LINE 02500021 .NOMSG ANOP 02550021 AIF (K'&SYSLIST(1) EQ K'&SYSLIST(1,1)).LLOP 02600021 &SUB SETB 1 02650021 .LLOP ANOP 02700021 &OP SETA &OP+1 02750021 &OUT SETA 4 .BR NOT NULL ELSE SET TO 4 02800021 AIF (&SUB EQ 1).SUBA 02850021 AIF ('&SYSLIST(3)' EQ '').B TEST FOR NULL INPUT 02900021 &OUT SETA &SYSLIST(3) SET &OUT FROM INPUT 02950021 AGO .A 03000021 .SUBA AIF ('&SYSLIST(&OP,3)' EQ '').B 03050021 &OUT SETA &SYSLIST(&OP,3) SET &OUT FROM INPUT 03100021 .A AIF (&OUT GT 0 AND &OUT LT 9).B TEST RANGE 03150021 .AERR MNOTE '*** BYTES OUT INCORRECTLY SPECIFIED DEFAULT USED ***' 03200021 &OUT SETA 4 03250021 .B AIF (&SUB EQ 1).SUBB 03300021 AIF ('&SYSLIST(2)' EQ '').LOOP BRANCH IF NULL 03350021 &IN SETA &SYSLIST(2) .SET &IN FROM INPUT 03400021 AGO .BB 03450021 .SUBB AIF ('&SYSLIST(&OP,2)' EQ '').LOOP 03500021 &IN SETA &SYSLIST(&OP,2) .SET &IN FROM INPUT 03550021 .BB AIF (&IN GT 0 AND &IN LT 5).D TEST RANGE 03600021 .BERR MNOTE '*** BYTES IN INCORRECTLY SPECIFIED DEFAULT USED ***' 03650021 &IN SETA 2 03700021 AGO .D 03750021 .LOOP ANOP .LOOP TO FIND &NAME IN DSECT 03800021 &IND SETA &IND+1 .SET UP LOOP COUNTER 03850021 AIF ('&ITEM(&IND)' EQ '&SYSLIST(&OP,1)').FOUND 03900021 AIF (&IND LT &ITEMNBR).LOOP .TEST FOR END OF DSECT 03950021 MNOTE '*** LOG ITEM NOT DEFINED ***' 04000021 MEXIT 04050021 .FOUND ANOP 04100021 &IBITS SETA &BITS(&IND) .SET UP NUMBER OF BITS SPEC 04150021 AIF (&IBITS-((&IBITS/8)*8) EQ 0).C .TEST FOR MULTIPLE OF 8 04200021 MNOTE '*** DATA NOT DEFINED A MULTIPLE OF 8 BITS ***' 04250021 MEXIT 04300021 .C ANOP 04350021 &IN SETA &IBITS/8 .COMPUTE NUMBER OF BYTES 04400021 AIF (&IN LT 1 OR &IN GT 4).BERR .TEST RANGE B IF IN ERROR 04450021 &ISHIFT SETA &SHIFT(&IND) .SET UP FOR TEST OF BYTE BNDR 04500021 AIF (&ISHIFT EQ 0).D .TEST FOR BYTE BNDRY !R IF YES 04550021 MNOTE '*** DATA NOT ALIGNED ON A BYTE BOUNDARY ***' 04600021 MEXIT 04650021 .* 04700021 .D ANOP 04750021 &NRENTS SETA &NRENTS+1 04800021 DC AL.12(&SYSLIST(&OP,1)-&DSECT),AL.4(9) 04850021 DC X'&IN',X'&OUT' 04900021 &IND SETA 0 04950021 AIF (&SUB EQ 0).OUTA 05000021 AIF (&OP LT N'&SYSLIST).LLOP 05050021 .OUTA ANOP 05100021 * 05150021 MEND 05200021 MACRO 05250021 LINEND 05300021 .* THIS MACRO IS USED ONLY BY THE LINE 05350021 .* MACRO TO SET THE NUMBER OF ENTRIES 05400021 .* ASSOCIATED WITH EACH LINE. 05450021 GBLA &NRENTS 05500021 GBLC &NRENTSX 05550021 AIF (&NRENTS EQ 0).NORENTS TEST FOR NO COUNT 05600021 ORG &NRENTSX 05650021 DC FL1'&NRENTS' 05700021 ORG 05750021 &NRENTS SETA 0 05800021 .NORENTS ANOP 05850021 B&SYSNDX EQU * 05900021 &NRENTSX SETC 'B&SYSNDX' 05950021 MEND 06000021 * 06050021 MACRO 06100021 BIN 06150021 .* &SYSLIST(&OP,1) - NAME OF LOG ITEM 06200021 .* RECORD DSECT 06250021 .* $SYSLIST(&OP,2) - NBR OF SPACES 06300021 .* TO SKIP ON MULTIPLE 06350021 .* PRINT OR NBR OF SPACES 06400021 .* TO BACK UP FROM COLUMN FOR 06450021 .* START OF PRINTING. THE LETTER 06500021 .* B PRECEEDS THE NUMBER (B5) IF 06550021 .* THE LATTER IS DESIRED. OMISSION 06600021 .* OF THIS OPERAND FORCES OPTION 2 06650021 .* WITH BACKUP SPACING EQUAL TO 06700021 .* THE NUMBER OF BITS IN THE ITEM 06750021 .* DEFINITION (VIA MACRO 'DSGEN'). 06800021 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 06850021 .* TOTAL NUMBER OF BITS TO PRINT. 06900021 GBLA &INITIAL 06950021 GBLB &DIAGTST,&DIAGSET,&DIAGLIN 07000021 GBLC &ITEM(1000) 07050021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 07100021 GBLC &DSECT 07150021 LCLB &B,&SUB 07200021 LCLA &IBITS,&NDX,&ISHIFT,&K 07250021 LCLA &TEMP,&T,&OP 07300021 LCLC &S 07350021 AIF (&DIAGTST EQ 0).NOMSG 07400021 AIF (&INITIAL EQ 0).NOMSG 07450021 AIF (&DIAGLIN EQ 1).NOMSG 07500021 MNOTE '**NO LINE ASSOCIATED WITH THIS DATA**' 07550021 *****THE FOLLOWING GENERATED FOR TEST PURPOSES***** 07600021 * LINE 07650021 LINE 07700021 .NOMSG ANOP 07750021 AIF (K'&SYSLIST(1) EQ K'&SYSLIST(1,1)).LOOP 07800021 &SUB SETB 1 07850021 .LOOP ANOP 07900021 &OP SETA &OP+1 07950021 .LOOP1 ANOP 08000021 &NDX SETA &NDX+1 08050021 AIF ('&ITEM(&NDX)' EQ '&SYSLIST(&OP,1)').FOUND 08100021 AIF (&NDX LT &ITEMNBR).LOOP1 08150021 MNOTE '**LOG ITEM NOT DEFINED**' 08200021 MEXIT 08250021 .FOUND ANOP 08300021 &ISHIFT SETA &SHIFT(&NDX) 08350021 &IBITS SETA &BITS(&NDX) 08400021 &T SETA &IBITS-1 08450021 &B SETB 0 08500021 AIF (&IBITS GT 0 AND &IBITS LT 16).SUB0 08550021 MNOTE '**NO. OF BITS OUTSIDE RANGE OF 1-15**' 08600021 MEXIT 08650021 .SUB0 AIF (&SUB EQ 1).SUBA 08700021 AIF ('&SYSLIST(2)' EQ '').BACKUP 08750021 &K SETA K'&SYSLIST(2) 08800021 &B SETB ('&SYSLIST(2)'(1,1) EQ 'B') 08850021 &S SETC '&SYSLIST(2)'(&B+1,&K-&B) 08900021 AGO .SUBB 08950021 .SUBA ANOP 09000021 AIF ('&SYSLIST(&OP,2)' EQ '').BACKUP 09050021 &K SETA K'&SYSLIST(&OP,2) 09100021 &B SETB ('&SYSLIST(&OP,2)'(1,1) EQ 'B') 09150021 &S SETC '&SYSLIST(&OP,2)'(&B+1,&K-&B) 09200021 .SUBB ANOP 09250021 &T SETA &S 09300021 .BACKUP ANOP 09350021 &NRENTS SETA &NRENTS+1 09400021 &TEMP SETA &ISHIFT 09450021 AIF (&IBITS NE 1 OR &B NE 0).BIN2 09500021 DC AL.12(&SYSLIST(&OP,1)-&DSECT),XL.4'&TEMP' 09550021 AGO .OUT 09600021 .BIN2 AIF ('&SYSLIST(&OP,2)' NE '').BIN3 09650021 &B SETB 1 09700021 .BIN3 ANOP 09750021 DC AL.12(&SYSLIST(&OP,1)-&DSECT),XL.4'C' 09800021 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 09850021 .OUT ANOP 09900021 &NDX SETA 0 09950021 AIF (&SUB EQ 0).OUTA 10000021 AIF (&OP LT N'&SYSLIST).LOOP 10050021 .OUTA ANOP 10100021 MEND 10150021 MACRO 10200021 HEX 10250021 .* THIS MACRO FACILITATES GENERATION OF THE 10300021 .* TABLE ENTRIES SPECIFYING HEX TYPE 10350021 .* CONVERSIONS. 10400021 .* &SYSLIST(&OP,1) - NAME OF DATA ITEM TO BE 10450021 .* CONVERTED 10500021 .* &SYSLIST(&OP,2) - # OF SPACES TO SKIP ON 10550021 .* MULTIPLE PRINT OR NBR OF SPACES TO 10600021 .* BACK UP FROM COLUMN FOR START OF 10650021 .* PRINTING. THE LETTER B PRECEEDS THE 10700021 .* NUMBER (B8) IF THE LATTER OPTION IS 10750021 .* DESIRED. OMISSION OF THIS OPERAND 10800021 .* FORCES OPTION 2 WITH BACKUP SPACING 10850021 .* EQUAL TO THE NUMBER OF BYTES SPECI- 10900021 .* FIED BY THE NEXT OPERAND (TWICE THIS 10950021 .* NUMBER IF SUFFIX IS EXPLICITLY OR 11000021 .* IMPLICITLY B). 11050021 .* &SYSLIST(&OP,3) - NUMBER OF BYTES TO 11100021 .* PROCESS. THIS NUMBER IS SUFFIXED 11150021 .* WITH AN L,R, OR B TO STIPULATE 11200021 .* PRINTING OF THE LEFT HALF, RIGHT 11250021 .* HALF, OR BOTH HALVES OF THE BYTE 11300021 .* RESPECTIVELY. OMISSION OF THIS 11350021 .* OPERAND DEFAULTS TO B WITH THE NUM- 11400021 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 11450021 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 11500021 .* SARY. THIS MACRO MUST BE THE FIRST 11550021 .* MACRO INSTRUCTION ISSUED FOR THE 11600021 .* SUBJECT LINE(S). 11650021 GBLC &ITEM(1000),&DSECT 11700021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 11750021 GBLA &INITIAL 11800021 GBLB &DIAGTST,&DIAGSET,&DIAGLIN 11850021 LCLB &B,&SUB 11900021 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP,&OP 11950021 LCLC &S,&LETTER 12000021 AIF (&DIAGTST EQ 0).NOMSG 12050021 AIF (&INITIAL EQ 0).NOMSG 12100021 AIF (&DIAGLIN EQ 1).NOMSG 12150021 MNOTE '**NO LINE ASSOCIATED WITH THIS DATA**' 12200021 *****THE FOLLOWING GENERATED FOR TEST PURPOSES***** 12250021 * LINE 12300021 LINE 12350021 .NOMSG ANOP 12400021 AIF (K'&SYSLIST(1) EQ K'&SYSLIST(1,1)).LOOP 12450021 &SUB SETB 1 12500021 .LOOP ANOP 12550021 &OP SETA &OP+1 12600021 .LOOP1 ANOP 12650021 &NDX SETA &NDX+1 12700021 AIF ('&ITEM(&NDX)' EQ '&SYSLIST(&OP,1)').FOUND 12750021 AIF (&NDX LT &ITEMNBR).LOOP1 12800021 MNOTE '**LOG ITEM NOT DEFINED**' 12850021 MEXIT 12900021 .FOUND ANOP 12950021 &ISHIFT SETA &SHIFT(&NDX) 13000021 &IBITS SETA &BITS(&NDX) 13050021 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).ALIGN 13100021 .ERR MNOTE '**DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY**' 13150021 MEXIT 13200021 .ALIGN ANOP 13250021 &CODE SETA 1 13300021 AIF (&SUB EQ 1).SUBA 13350021 &K SETA K'&SYSLIST(3) 13400021 AGO .SUBB 13450021 .SUBA ANOP 13500021 &K SETA K'&SYSLIST(&OP,3) 13550021 .SUBB ANOP 13600021 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 13650021 MNOTE '**BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL**' 13700021 MEXIT 13750021 .OK AIF (&SUB EQ 1).SUBC 13800021 AIF ('&SYSLIST(3)' EQ '').USEDEFN 13850021 &LETTER SETC '&SYSLIST(3)'(&K,1) 13900021 &S SETC '&SYSLIST(3)'(1,&K-1) 13950021 AGO .SUBD 14000021 .SUBC ANOP 14050021 AIF ('&SYSLIST(&OP,3)' EQ '').USEDEFN 14100021 &LETTER SETC '&SYSLIST(&OP,3)'(&K,1) 14150021 &S SETC '&SYSLIST(&OP,3)'(1,&K-1) 14200021 .SUBD ANOP 14250021 &BYTESP SETA &S 14300021 AIF ('&LETTER' EQ 'B').BOTH 14350021 AIF ('&LETTER' EQ 'L').LEFT 14400021 &CODE SETA 2 14450021 AGO .L 14500021 .LEFT ANOP 14550021 &CODE SETA 1 14600021 AGO .L 14650021 .USEDEFN ANOP 14700021 &BYTESP SETA &IBITS/8 14750021 .BOTH AIF (&ISHIFT NE 0).ERR 14800021 &CODE SETA 3 14850021 &T SETA &BYTESP*2-1 14900021 &S SETC '&T' 14950021 .OK2 AIF (&ISHIFT EQ 0).L 15000021 &CODE SETA 2 15050021 .L ANOP 15100021 &B SETB 1 15150021 AIF (&SUB EQ 1).SUBE 15200021 AIF ('&SYSLIST(2)' EQ '').BACKUP 15250021 &K SETA K'&SYSLIST(2) 15300021 &B SETB ('&SYSLIST(2)'(1,1) EQ 'B') 15350021 &S SETC '&SYSLIST(2)'(&B+1,&K-&B) 15400021 AGO .SUBF 15450021 .SUBE ANOP 15500021 AIF ('&SYSLIST(&OP,2)' EQ '').BACKUP 15550021 &K SETA K'&SYSLIST(&OP,2) 15600021 &B SETB ('&SYSLIST(&OP,2)'(1,1) EQ 'B') 15650021 &S SETC '&SYSLIST(&OP,2)'(&B+1,&K-&B) 15700021 .SUBF ANOP 15750021 .BACKUP ANOP 15800021 &NRENTS SETA &NRENTS+1 15850021 AIF (&BYTESP GT 0 AND &BYTESP LT 16).SUB0 15900021 MNOTE '**NO. OF BYTES OUTSIDE RANGE OF 1-15**' 15950021 MEXIT 16000021 .SUB0 AIF (&SUB EQ 1).SUBG 16050021 DC AL.12(&SYSLIST(1)-&DSECT),XL.4'A' 16100021 AGO .SUBH 16150021 .SUBG ANOP 16200021 DC AL.12(&SYSLIST(&OP,1)-&DSECT),XL.4'A' 16250021 .SUBH ANOP 16300021 DC BL.1'&B',FL.7'&S',AL.4(&BYTESP),FL.4'&CODE' 16350021 .OUT ANOP 16400021 &NDX SETA 0 16450021 AIF (&SUB EQ 0).OUTA 16500021 AIF (&OP LT N'&SYSLIST).LOOP 16550021 .OUTA ANOP 16600021 MEND 16650021 MACRO 16700021 LSTART 16750021 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 16800021 .* OF THE TABLE IS TO BEGIN. 16850021 GBLA &LABELNR 16900021 GBLC &LBL(100) 16950021 GBLC &LABELS(2000) 17000021 GBLA &LBLCTR(100) 17050021 GBLB &DIAGTST,&DIAGSET,&DIAGLIN 17100021 LCLA &NDX,&CTR 17150021 AIF (&DIAGTST EQ 0).NODIAG 17200021 AIF (&DIAGSET EQ 0).NODIAG 17250021 MNOTE '**NO LABEL ASSOCIATED WITH LAST SET**' 17300021 ***** THE FOLLOWING GENERATED FOR TEST PURPOSES ***** 17350021 * LABEL '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' 17400021 LABEL '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' 17450021 .NODIAG ANOP 17500021 LINEND 17550021 &CTR SETA 1 17600021 .LOOP ANOP 17650021 &NDX SETA &NDX+1 17700021 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 17750021 &LBL(&CTR) DC C'&LABELS(&NDX)' 17800021 &CTR SETA &CTR+1 17850021 AGO .LOOPCTL 17900021 .NOLBL ANOP 17950021 DC C'&LABELS(&NDX)' 18000021 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 18050021 MEND 18100021 MACRO 18150021 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C18200021 &LABEL7,&LABEL8 18250021 .* THIS MACRO ALLOWS LABELS TO 18300021 .* BE SPECIFIED FOR A GIVEN LINE. THE 18350021 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 18400021 .* TION MARKS. THE COLUMN AND LINE END 18450021 .* CONTROLS WILL BE INSERTED BY THE 18500021 .* MACRO. OMITTED OPERANDS MEAN NO 18550021 .* LABEL REQUIRED FOR RESPECTIVE 18600021 .* COLUMN. 18650021 GBLC &LABELS(2000) 18700021 GBLC &LBL(100) 18750021 GBLA &LBLCTR(100) 18800021 GBLA &LABELNR 18850021 GBLA &NRENTS,&LPTR,&INITIAL 18900021 GBLB &DIAGTST,&DIAGSET,&DIAGLIN 18950021 LCLC &MARGIN,&TACK 19000021 LCLC &TEXT 19050021 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 19100021 AIF (&INITIAL EQ 0).DIAGCLR 19150021 AIF (&DIAGTST EQ 0).DIAGCLR 19200021 AIF (&DIAGLIN EQ 1).DIAGCLR 19250021 MNOTE '**NO LINE ASSOCIATED WITH PREVIOUS LABEL**' 19300021 ***** THE FOLLOWING GENERATED FOR TEST PURPOSES ***** 19350021 * LINE 19400021 LINE 19450021 .DIAGCLR ANOP 19500021 &DIAGSET SETB 0 19550021 &DIAGLIN SETB 0 19600021 &MARGIN SETC '*' 19650021 AIF ('&NAME' EQ '').LOOPOUT 19700021 &LPTR SETA &LPTR+1 19750021 &LBL(&LPTR) SETC '&NAME' 19800021 &LBLCTR(&LPTR) SETA &LABELNR+1 19850021 .LOOPOUT ANOP 19900021 &OP SETA &OP+1 19950021 &K SETA K'&SYSLIST(&OP) 20000021 AIF (&K GE 2).NORM 20050021 &K SETA 2 20100021 .NORM ANOP 20150021 &START SETA 2 20200021 AIF (&OP LT N'&SYSLIST).NOTLAST 20250021 &MARGIN SETC '$' 20300021 .NOTLAST ANOP 20350021 &NRCHAR SETA 8 20400021 &TACK SETC '' 20450021 .LOOPIN ANOP 20500021 &REMAIN SETA &K-&START 20550021 AIF (&REMAIN GE 8).MORE 20600021 &TACK SETC '&MARGIN' 20650021 &NRCHAR SETA &REMAIN 20700021 .MORE ANOP 20750021 &TEXT SETC '' 20800021 AIF (&REMAIN EQ 0).ENDTEXT 20850021 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 20900021 .ENDTEXT ANOP 20950021 &LABELNR SETA &LABELNR+1 21000021 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 21050021 &START SETA &START+8 21100021 AIF ('&TACK' EQ '').LOOPIN 21150021 AIF ('&TACK' EQ '*').LOOPOUT 21200021 MEND 21250021 MACRO 21300021 &NAME LINE &DATA,&LABEL,&SKIP= 21350021 .* THIS MACRO ESTABLISHES THE MARGINS OR 21400021 .* COLUMN SETTINGS FOR EACH LINE. IT 21450021 .* GENERATES NECESSARY CARRIAGE CONTROL 21500021 .* ENTRIES. LASTLY IT DETERMINES THE 21550021 .* NUMBER OF ENTRIES ASSOCIATED WITH 21600021 .* THE PREVIOUS LINE AND STORES THAT # 21650021 .* INTO THE APPROPRIATE BYTE. 21700021 .* &DATA(1) - CHARACTER POSITION TO BEGIN 21750021 .* DATA. 21800021 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 21850021 .* DATA COLUMN STARTING CHARACTERS. 21900021 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 21950021 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 22000021 .* STARTING CHARACTERS. 22050021 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 22100021 .* TO BEGIN NEXT PRINTED LINE. 22150021 .* NEW ENTRIES ARE GENERATED ONLY WHEN 22200021 .* NECESSARY. OMISSION OF ITEMS MEANS 22250021 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 22300021 .* SETTINGS. A LINE MACRO IS REQUIRED 22350021 .* FOR EACH PRINTED LINE. IF NO SETTING 22400021 .* CHANGES ARE REQUIRED ALL OPERANDS 22450021 .* ARE OMITTED IN WHICH CASE ONLY THE 22500021 .* # OF ENTRIES FOR THE PREVIOUS LINE 22550021 .* IS COMPUTED. THIS MACRO MUST BE THE 22600021 .* FIRST MACRO INSTRUCTION ISSUED FOR 22650021 .* THE SUBJECT LINE 22700021 GBLA &DB,&DT,&LB,<,&NRENTS 22750021 GBLA &LASTCC,&INITIAL 22800021 GBLC &NRENTSX 22850021 GBLC &CARRCON 22900021 GBLB &TEST 22950021 GBLB &DIAGTST,&DIAGSET,&DIAGLIN 23000021 LCLA &S 23050021 AIF (&INITIAL EQ 0 OR &DIAGTST EQ 0).DIAGSET 23100021 AIF (&DIAGSET EQ 0).DIAGSET 23150021 MNOTE '**NO LABEL ASSOCIATED WITH LAST SET**' 23200021 ***** THE FOLLOWING GENERATED FOR TEST PURPOSES ***** 23250021 * LABEL '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' 23300021 LABEL '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' 23350021 .DIAGSET ANOP 23400021 &DIAGSET SETB 1 23450021 &DIAGLIN SETB 1 23500021 &NAME DS 0C 23550021 AIF (&INITIAL EQ 0).FIRSTLN 23600021 LINEND 23650021 AGO .NTFIRST 23700021 .FIRSTLN ANOP 23750021 &NRENTSX SETC 'N&SYSNDX' 23800021 &INITIAL SETA 1 23850021 N&SYSNDX EQU * 23900021 .NTFIRST ANOP 23950021 DC AL1(0) 24000021 AIF ('&DATA(1)' EQ '').CKDTABS 24050021 AIF (&DATA(1) EQ &DB).CKDTABS 24100021 &DB SETA &DATA(1) 24150021 AGO .AA 24200021 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 24250021 AIF (&DATA(2) EQ &DT).NCDATA 24300021 AGO .CC 24350021 .AA AIF ('&DATA(2)' EQ '').BB 24400021 AIF (&DATA(2) EQ &DT).BB 24450021 .CC ANOP 24500021 &DT SETA &DATA(2) 24550021 .BB DC XL2'FFFE' 24600021 DC FL1'&DB' 24650021 DC FL1'&DT' 24700021 &NRENTS SETA &NRENTS+1 24750021 .NCDATA ANOP 24800021 AIF ('&LABEL(1)' EQ '').CKLTABS 24850021 AIF (&LABEL(1) EQ &LB).CKLTABS 24900021 &LB SETA &LABEL(1) 24950021 AGO .AAA 25000021 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 25050021 AIF (&LABEL(2) EQ <).NCLABEL 25100021 AGO .CCC 25150021 .AAA AIF ('&LABEL(2)' EQ '').BBB 25200021 AIF (&LABEL(2) EQ <).BBB 25250021 .CCC ANOP 25300021 < SETA &LABEL(2) 25350021 .BBB DC XL2'FFFF' 25400021 DC FL1'&LB' 25450021 DC FL1'<' 25500021 &NRENTS SETA &NRENTS+1 25550021 .NCLABEL ANOP 25600021 AIF ('&SKIP' NE '').CONT 25650021 AIF (&TEST EQ 0).NOCHANG 25700021 AGO .DEFALTA 25750021 .CONT ANOP 25800021 AIF (&TEST EQ 0).AB 25850021 AIF ('&SKIP' EQ 'E').AB 25900021 &S SETA &SKIP 25950021 .DEFAULT ANOP 26000021 AIF (&SKIP EQ &LASTCC).DEFALTA 26050021 ORG &CARRCON+3 26100021 DC AL.3(0),AL.2(&S),AL.3(1) 26150021 ORG 26200021 &LASTCC SETA &S 26250021 .DEFALTA ANOP 26300021 &TEST SETB 0 26350021 AGO .DD 26400021 .AB AIF ('&SKIP' NE 'E').ABB 26450021 A&SYSNDX DC X'FFFB8B00' EJECT 26500021 AGO .ABC 26550021 .ABB AIF (&SKIP EQ &LASTCC).NOCHANG 26600021 A&SYSNDX DC XL2'FFFB' 26650021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 26700021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 26750021 &LASTCC SETA &SKIP 26800021 &TEST SETB 1 26850021 .ABC ANOP 26900021 &CARRCON SETC 'A&SYSNDX' 26950021 &NRENTS SETA &NRENTS+1 27000021 .DD ANOP 27050021 .NOCHANG ANOP 27100021 MEND 27150021 MACRO 27200021 &NAME ROUTINE &LOGITEM,&RNAME 27250021 GBLA &NRENTS 27300021 GBLC &DSECT,&CSECT 27350021 GBLA &INITIAL 27400021 GBLB &DIAGTST,&DIAGSET,&DIAGLIN 27450021 AIF (&DIAGTST EQ 0).NOMSG 27500021 AIF (&INITIAL EQ 0).NOMSG 27550021 AIF (&DIAGLIN EQ 1).NOMSG 27600021 MNOTE '**NO LINE ASSOCIATED WITH THIS ROUTINE**' 27650021 *****THE FOLLOWING GENERATED FOR TEST PURPOSES***** 27700021 * LINE 27750021 LINE 27800021 .NOMSG ANOP 27850021 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 27900021 DC AL2(&RNAME-&CSECT) 27950021 &NRENTS SETA &NRENTS+1 28000021 MEND 28050021 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 28100021 SPACE 2 28150021 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 28200021 SPACE 2 28250021 MACRO 28300021 &NAME DSGEN 28350021 .* THIS MACRO GENERATES ONE DSECT WORD 28400021 .* FORMATTED FOR THE SUBJECT LOG RECORD 28450021 .* EACH OPERAND HAS TWO SUB LISTS. THE 28500021 .* FIRST IS THE NAME OF THE LOG ITEM 28550021 .* WHILE THE SECOND IS THE # OF BITS TO 28600021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 28650021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 28700021 .* UNUSED BIT GROUPS MUST BE GIVEN 28750021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 28800021 .* THE LOG ITEMS MAY THEN BE USED IN 28850021 .* THE CONVERSION MACRO INSTRUCTIONS. 28900021 GBLC &ITEM(1000) 28950021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 29000021 LCLB &ONLY1,&CTIND 29050021 LCLA &START1,&START2,&END1,&END2 29100021 LCLC &SYMBOL,&EQUSYM 29150021 LCLA &OP,&COUNT,&BYTE,&EQUCNT 29200021 ACTR 100000 29250021 .START AIF (N'&SYSLIST(&OP+1) LT 3).LOOP 29300021 AIF ('&SYSLIST(&OP+1,3)' EQ 'EQU').LOOP TEST FOR EQU 29350021 AIF ('&SYSLIST(&OP+1,3)' EQ '' OR '&SYSLIST(&OP+1,4)' EQ '').ERR1 29400021 AIF ('&SYSLIST(&OP+1,3)' GT '&SYSLIST(&OP+1,4)').ERR3 29450021 &START1 SETA &SYSLIST(&OP+1,3) GET START COUNT OF 1 29500021 &START2 SETA &SYSLIST(&OP+1,4) GET FIRST END COUNT 29550021 AGO .SET2A BRANCH AROUND 29600021 .ERR1 MNOTE '**FIRST SYMBOL CONCATENATION INCOMPLETE**' 29650021 MEXIT 29700021 .SET2A AIF ('&SYSLIST(&OP+1,5)' EQ ''AND '&SYSLIST(&OP+1,6)' EQ '' X29750021 ).SET2 TEST FOR NO SECOND 29800021 AIF ('&SYSLIST(&OP+1,5)' EQ '' OR '&SYSLIST(&OP+1,6)' EQ '').ERR2 29850021 AIF ('&SYSLIST(&OP+1,5)' GT '&SYSLIST(&OP+1,6)').ERR3 29900021 &END1 SETA &SYSLIST(&OP+1,5) GET START COUNT OF 2 29950021 &END2 SETA &SYSLIST(&OP+1,6) GET END COUNT OF 2 30000021 AGO .LOOP 30050021 .SET2 ANOP 30100021 &ONLY1 SETB 1 INDICATE ONLY ONE CONCATENATION 30150021 AGO .LOOP 30200021 .ERR2 MNOTE '**SECOND SYMBOL CONCATENATION INCOMPLETE**' 30250021 MEXIT 30300021 .ERR3 MNOTE '**START GREATER THAN END CONCATENATION**' 30350021 MEXIT 30400021 .LOOP ANOP 30450021 &OP SETA &OP+1 30500021 AIF (&OP GT N'&SYSLIST).DONE TEST IF ALL DONE 30550021 &ITEMNBR SETA &ITEMNBR+1 30600021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 30650021 MNOTE '**NULL BIT COUNT FIELD**' 30700021 MEXIT 30750021 .OK1 ANOP 30800021 &SYMBOL SETC '&SYSLIST(&OP,1)' 30850021 AIF ('&SYMBOL' NE '').OK 30900021 * ***** LOG ITEM SYMBOL NOT PROVIDED ***** 30950021 AIF ('&SYSLIST(&OP,3)' NE 'EQU').CNT 31000021 AGO .START GET NEXT 31050021 .OK AIF (N'&SYSLIST(&OP) LT 3).NO3 TEST FOR OLD FORMAT 31100021 AIF ('&SYSLIST(&OP,3)' EQ 'EQU').EQU TEST FOR EQU 31150021 AIF (&ONLY1).OK2 TEST FOR ONLY ONE CONCAT 31200021 &SYMBOL SETC '&SYMBOL.&START1.&END1' GET 1 AND 2 CONCAT 31250021 AGO .NO3 BRANCH AROUND 31300021 .OK2 ANOP 31350021 &SYMBOL SETC '&SYMBOL.&START1' GET 1 CONCATENATED 31400021 .NO3 ANOP 31450021 &SYMBOL EQU *+&BYTE 31500021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL IN GLOBAL 31550021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 31600021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 31650021 .CNT ANOP 31700021 &CTIND SETB 1 SET COUNT INDICATOR 31750021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 31800021 &BYTE SETA &COUNT/8 31850021 AIF (N'&SYSLIST(&OP) LT 3).START TEST FOR OLD FORMAT 31900021 AIF (&ONLY1).TSTST TEST FOR ONLY ONE CONCAT 31950021 AIF (&END1 EQ &END2).TSTST TEST FOR SECOND END 32000021 &END1 SETA &END1+1 INCREMENT COUNT 32050021 &OP SETA &OP-1 DECREMENT INCREMENT 32100021 AGO .LOOP GENERATE NEXT 32150021 .TSTST ANOP 32200021 AIF (&START1 EQ &START2).LPDONE TEST FOR END 32250021 AIF (&ONLY1).NSET1 TEST FOR ONLY ONE CONCAT 32300021 &END1 SETA &SYSLIST(&OP,5) RE-INIT SECOND START COUNT 32350021 .NSET1 ANOP 32400021 &OP SETA &OP-1 DECREMENT INDEX 32450021 &START1 SETA &START1+1 INCREMENT FIRST COUNT 32500021 AGO .LOOP GO DO NEXT 32550021 .LPDONE ANOP 32600021 &ONLY1 SETB 0 CLEAR INDICATOR 32650021 AGO .START GO TEST FOR MORE SUB-LISTS 32700021 .DONE AIF (&COUNT-&COUNT/8*8 NE 0).ERR TEST FOR MULTIPLE OF EIGHT 32750021 AIF (&CTIND EQ 0).END NO DS IF NO COUNT 32800021 &COUNT SETA &COUNT/8 GET NUMBER OF BYTES 32850021 &NAME DS &COUNT.C 32900021 .END MEXIT 32950021 .ERR MNOTE '**BIT COUNT FLDS DO NOT TOTAL MULTIPLE OF 8**' 33000021 MEXIT 33050021 .EQU AIF ('&SYSLIST(&OP,4)' NE '').EQU1 TEST FOR NULL LABEL 33100021 .ERR4 MNOTE '**EQU OPERAND OMITTED OR NOT FOUND**' 33150021 MEXIT 33200021 .EQU1 AIF (&SYSLIST(&OP,2) LT 16).EQU2 COUNT OVER FIFTEEN 33250021 ***** THE FOLLOWING STATEMENT ***** 33300021 ***** NUMBER OF BITS EXCEED 15 - DO NOT USE AS BIN ***** 33350021 .EQU2 ANOP 33400021 &EQUCNT SETA 0 CLEAR COUNTER 33450021 &EQUSYM SETC '&SYSLIST(&OP,4)' GET EQU OPERAND 33500021 .EQULOP ANOP 33550021 &EQUCNT SETA &EQUCNT+1 INCREMENT INDEX 33600021 AIF ('&ITEM(&EQUCNT)' EQ '&EQUSYM').EQUOUT LABEL FOUND? 33650021 AIF (&EQUCNT EQ &ITEMNBR).ERR4 ALL TESTED? 33700021 AGO .EQULOP NO-GET NEXT 33750021 .EQUOUT ANOP 33800021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL NAME 33850021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) GET NUMBER OF BITS 33900021 &SHIFT(&ITEMNBR) SETA &SHIFT(&EQUCNT) GET SHIFT COUNT 33950021 &SYMBOL EQU &EQUSYM THIS SYMBOL EQUATED 34000021 AGO .START RETURN FOR NEXT 34050021 MEND 34100021 GBLC &DSECT,&CSECT 34150021 GBLB &DIAGTST,&DIAGSET,&DIAGLIN 34200021 &DIAGTST SETB 1 34250021 &CSECT SETC 'IFCST00B' 34300021 &DSECT SETC 'T00B' 34350021 IFCST00B CSECT 34400021 TITLE 'IFCST00B 3270-DIAL SUPPORT SUM TABLE' 34450021 **************************************************************** 34500021 * * 34550021 * 3270 SR DIAL FEATURE SUMMARY TABLE * 34600021 * * 34650021 **************************************************************** 34700021 EQUAL EQU 8 34750021 END EQU X'FF' 34800021 L0 EQU 0 34850021 L1 EQU 1 34900021 L2 EQU 2 34950021 L3 EQU 3 35000021 L4 EQU 4 35050021 L5 EQU 5 35100021 L6 EQU 6 35150021 L7 EQU 7 35200021 L8 EQU 8 35250021 L9 EQU 9 35300021 L10 EQU 10 35350021 L12 EQU 12 35400021 L28 EQU 28 35450021 * 35500021 R0 EQU 0 35550021 R1 EQU 1 35600021 R2 EQU 2 35650021 R3 EQU 3 35700021 R4 EQU 4 35750021 R5 EQU 5 35800021 R6 EQU 6 35850021 R7 EQU 7 35900021 R8 EQU 8 35950021 R9 EQU 9 36000021 R10 EQU 10 36050021 R11 EQU 11 36100021 R12 EQU 12 36150021 R13 EQU 13 36200021 R14 EQU 14 36250021 R15 EQU 15 36300021 * 36350021 * 36400021 T00B DSECT 36450021 DSGEN (KEY,8),(RELNO,8),(SWS,48) 36500021 DSGEN (DATE,32),(TIME,32) 36550021 DSGEN (SPR,8),(SERIAL,24),(MODEL,16),(SPRE,16) 36600021 DSGEN (CUA,16),(ID,32),(STAT,16) 36650021 * 36700021 IFCST00B CSECT 36750021 USING *,R9 BASE REG FOR TABLE 36800021 USING T00B,R2 BASE REG FOR RECORD 36850021 DC A(ENTRIES) PTR TO SUMMARY ENTRIES 36900021 DC A(PENTRY) PTR TO EDIT SECTION 36950021 DC F'0' 37000021 SCSIZE DC H'30' NO. OF COUNTERS NEEDED 37050021 EJECT 37100021 **************************************************************** 37150021 * SPECIAL ROUTINE FOR SUMMARY SECTION * 37200021 **************************************************************** 37250021 * 37300021 SAVEDATE CLC DATE(L4),ZEROS IS REC DATE ZERO 37350021 BCR EQUAL,R14 BR-YES 37400021 CLC L0(L4,R3),ZEROS IS THIS FIRST TIME 37450021 BNE SVEDTE1 BR NOT 1ST TIME 37500021 MVC L0(L4,R3),DATE MOVE IN LO DATE 37550021 SVEDTE1 CLC DATE(L4),L0(R3) IS THIS DATE LOWER 37600021 BL SAVELOW BR-YES 37650021 CLC DATE(L4),L4(R3) TEST FOR THIS DATE HI 37700021 BNH DATESVD BR THIS DATE NOT HI 37750021 SAVEHI MVC L4(L4,R3),DATE SAVE HI DATE 37800021 DATESVD BR R14 RETURN 37850021 SAVELOW MVC L0(L4,R3),DATE SAVE LOW DATE 37900021 BR R14 & RETURN 37950021 * 38000021 SETERR STM R5,R8,XSAVE SAVE REGS 38050021 LH R5,STAT PICK UP ERROR STATS 38100021 N R5,STATMASK MASK OFF UNUSED BITS 38150021 LA R6,ERRLIST SET PTR TO ERROR LIST 38200021 LR R7,R3 SET LOOP REGISTER 38250021 LOOP TM L0(R6),END LOOP DONE 38300021 BO RETURNB BR-YES 38350021 CH R5,L0(R6) IS THIS THE ERROR 38400021 BE ADDONE BR-YES 38450021 LA R7,L2(R7) BUMP POINTERS TO NXT CNT› 38500021 LA R6,L2(R6) BUMP POINTER TO NEXT ERR3R CODE 38550021 B LOOP 38600021 ADDONE LH R5,L0(R7) PICK UP COUNTER 38650021 LA R5,L1(R5) ADD ONE TO IT 38700021 STH R5,L0(R7) PUT IT BACK 38750021 RETURNB LM R5,R8,XSAVE RESTORE REGS 38800021 BR R14 38850021 * 38900021 * 38950021 ZEROS DC F'0' 39000021 STATMASK DC X'00000D3F' 39050021 ERRLIST DS 0H 39100021 DC X'0C00' DB,US 39150021 DC X'0002' CC 39200021 DC X'0003' CC,OC 39250021 DC X'0020' CR 39300021 DC X'0004' DC 39350021 DC X'0005' DC,OC 39400021 DC X'0404' DC,US 39450021 DC X'0405' DC,US,OC 39500021 DC X'0008' EC 39550021 DC X'0408' EC,US 39600021 DC X'0010' IR 39650021 DC X'0018' IR,EC 39700021 DC X'0418' IR,EC,US 39750021 DC X'0011' IR,OC 39800021 DC X'0410' IR,US 39850021 DC X'0001' OC 39900021 DC X'0401' OC,US 39950021 DC X'0100' TC 40000021 DC X'FFFF' END OF ERR LIST 40050021 EJECT 40100021 **************************************************************** 40150021 * SUMMARY ENTRIES * 40200021 **************************************************************** 40250021 ENTRIES DS 0F 40300021 SPECIAL SAVEDATE,00000000,SPACE=4 40350021 SPECIAL SETERR,00000000,SPACE=60 40400021 DC X'FF' END OF SUM SECTION 40450021 EJECT 40500021 **************************************************************** 40550021 * SUMMARY COUNTER DSECT * 40600021 **************************************************************** 40650021 S00B DSECT 40700021 DSGEN (TBLPTR,32),(FWDPTR,32) 40750021 DSGEN (TOTALREC,16),(TYPE,8),(CHAN,8),(YCUA,24),(YSER,8) 40800021 DSGEN (YSER1,16),(YCPU,16) 40850021 DSGEN (YSWS,16),(YID,32),(YSPARE,16) 40900021 DS 10C UNREFERENCED 40950021 DSGEN (YLOW,32),(YHI,32) 41000021 DSGEN (STAT,16,1,20) 41050021 * 41100021 EJECT 41150021 IFCST00B CSECT 41200021 &DSECT SETC 'S00B' 41250021 &CSECT SETC 'PENTRY' 41300021 PENTRY DS 0F 41350021 USING *,R9 BASE REG FOR THIS SECT 41400021 USING S00B,R2 BASE REG FOR CNTRS 41450021 DC A(PEDIT) 41500021 DC C'IFCST00B' 41550021 YR9PTR DC F'0' 41600021 YLABELP DC F'0' 41650021 EJECT 41700021 **************************************************************** 41750021 * SPECIAL ROUTINE SECTION FOR EDIT * 41800021 **************************************************************** 41850021 * 41900021 SETDATE UNPK WORK(L8),L0(L4,R4) UNPACK DATE 41950021 MVZ WORK+L7(L1),WORK MOVE ON PRINTABLE ZONE 42000021 MVC L0(L3,R3),WORK+L5 MOVE IN DAY 42050021 MVC L5(L2,R3),WORK+L3 MOVE ON YEAR 42100021 SKIPPER BR R14 RETURN 42150021 * 42200021 MOVE4 MVC L0(L4,R3),L0(R4) MOVE 4 CHARS TO BUFFER 42250021 BR R14 42300021 * 42350021 FREECORE STM R14,R12,L12(R13) SAVE REGS 42400021 LR R12,R13 SET CHAINS 42450021 LA R13,MYSAVE IN SAVE AREAS 42500021 ST R12,L4(R13) 42550021 ST R13,L8(R12) 42600021 L R3,L4(R2) PISK UP FWRD POINTER 42650021 ST R3,L28(R12) SAVE PTR IN SAVE AREA 42700021 LH R0,SIZE PICK UP FREEMAIN SIZE 42750021 LR R1,R2 SET FREEMAIN ADDR 42800021 FREEMAIN R,LV=(0),A=(1) 42850021 LTR R3,R3 42900021 BZ RETURN0 NO MORE WORK 42950021 LA R5,PEDIT+L10 SET UP TABLE PTRS 43000021 LA R6,LABELS-L1 TO LOOP THROUGH EDIT 43050021 STM R5,R6,YR9PTR 43100021 RETURN0 L R13,L4(R13) 43150021 LM R14,R12,L12(R13) RESTORE REGS 43200021 BR R14 43250021 * 43300021 WORK DC D'0' 43350021 XSAVE EQU * 43400021 MYSAVE DS 18F 43450021 SIZE DC H'98' 43500021 EJECT 43550021 **************************************************************** 43600021 * SUMMARY EDIT ENTRIES * 43650021 **************************************************************** 43700021 PEDIT DS 0F 43750021 DC 2H'1' FORMAT 1 43800021 DC 2H'1' FORMAT 2 43850021 DC A(LABELS) 43900021 DC H'0' UNUSED 43950021 * 44000021 LINE (57,32),(23,26),SKIP=E 44050021 LABEL '' 44100021 LINE ,,SKIP=1 44150021 HEX YCPU,0,2B 44200021 HEX YSER,0,3B 44250021 LABEL 'DAY YEAR DAY YEAR','MODEL -','SERIAL NO.' 44300021 LINE (23,11),(1,30) 44350021 ROUTINE YLOW,SETDATE 44400021 ROUTINE YHI,SETDATE 44450021 LABEL 'MISC REC DATE RANGE -','TO' 44500021 * 44550021 LINE (53,26),(1,65) 44600021 HEX YCUA,0,3B 44650021 ROUTINE YID,MOVE4 44700021 LABEL 'SUMMARY OF I/O MISCELLANEOUS RECORDS FOR DEVICE', C44750021 'TERMINAL ID' 44800021 * 44850021 LINE (29,18),,SKIP=2 44900021 CONVT TOTALREC 44950021 LABEL 'TOTAL NUMBER OF RECORDS' 45000021 * 45050021 LINE 45100021 LABEL 'STATISTICAL SUMMARY' 45150021 * 45200021 LINE (25,40),(5,40),SKIP=1 45250021 CONVT STAT1 45300021 CONVT STAT2 45350021 LABEL 'DB,US','CC' 45400021 LINE 45450021 CONVT STAT3 45500021 CONVT STAT4 45550021 LABEL 'CC,OC','CR' 45600021 LINE 45650021 CONVT STAT5 45700021 CONVT STAT6 45750021 LABEL 'DC','DC,OC' 45800021 LINE 45850021 CONVT STAT7 45900021 CONVT STAT8 45950021 LABEL 'DC,US','DC,US,OC' 46000021 LINE 46050021 CONVT STAT9 46100021 CONVT STAT10 46150021 LABEL 'EC','EC,US' 46200021 LINE 46250021 CONVT STAT11 46300021 CONVT STAT12 46350021 LABEL 'IR','IR,EC' 46400021 LINE 46450021 CONVT STAT13 46500021 CONVT STAT14 46550021 LABEL 'IR,EC,US','IR,OC' 46600021 LINE 46650021 CONVT STAT15 46700021 CONVT STAT16 46750021 LABEL 'IR,US','OC' 46800021 LINE 46850021 CONVT STAT17 46900021 CONVT STAT18 46950021 LABEL 'OC,US','TC' 47000021 * 47050021 LINE 47100021 ROUTINE TBLPTR,FREECORE 47150021 LABEL '' 47200021 * 47250021 DC X'FF' 47300021 DC XL6'00' 47350021 EJECT 47400021 **************************************************************** 47450021 * LABEL SECTION X * 47500021 **************************************************************** 47550021 DC C'$' 47600021 LABELS DS 0C 47650021 LSTART 47700021 END 47750021 ./ ADD SSI=21090345,NAME=IFCST003,SOURCE=0 TITLE 'IFCST003 3270 REMOTE BUFFER LOG SUMMARY' 00100021 SPACE 2 00200021 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 00300021 MACRO 00400021 &NAME LINE &DATA,&LABEL,&SKIP= 00500021 .* THIS MACRO ESTABLISHES THE MARGINS OR 00600021 .* COLUMN SETTINGS FOR EACH LINE. IT 00700021 .* GENERATES NECESSARY CARRIAGE CONTROL 00800021 .* ENTRIES. LASTLY IT DETERMINES THE 00900021 .* NUMBER OF ENTRIES ASSOCIATED WITH 01000021 .* THE PREVIOUS LINE AND STORES THAT # 01100021 .* INTO THE APPROPRIATE BYTE. 01200021 .* &DATA(1) - CHARACTER POSITION TO 01300021 .* BEGIN DATA. 01400021 .* 01500021 .* &DATA(2) - # OF SPACES BETWEEN 01600021 .* SUCCESSIVE DATA COLUMN STARTING 01700021 .* CHARACTERS. 01800021 .* 01900021 .* &LABEL(1) - CHARACTER POSITION 02000021 .* TO BEGIN LABELS. 02100021 .* 02200021 .* &LABEL(2) - # OF SPACES BETWEEN 02300021 .* LINE'S LABEL STARTING CHARACTERS. 02400021 .* 02500021 .* &SKIP= - # OF LINES TO ADVANCE 02600021 .* CARRIAGE TO BEGIN NEXT PRINTED LINE. 02700021 .* 02800021 .* NEW ENTRIES ARE GENERATED ONLY WHEN 02900021 .* NECESSARY. OMISSION OF ITEMS MEANS 03000021 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 03100021 .* SETTINGS. A LINE MACRO IS REQUIRED 03200021 .* FOR EACH PRINTED LINE. IF NO SETTING 03300021 .* CHANGES ARE REQUIRED ALL OPERANDS 03400021 .* ARE OMITTED IN WHICH CASE ONLY THE 03500021 .* # OF ENTRIES FOR THE PREVIOUS LINE 03600021 .* FIRST MACRO INSTRUCTION ISSUED FOR 03700021 .* THE SUBJECT LINE. 03800021 GBLA &DB,&DT,&LB,<,&NRENTS 03900021 GBLA &LASTCC,&INITIAL 04000021 GBLC &NRENTSX 04100021 GBLC &CARRCON 04200021 GBLB &TEST 04300021 LCLA &S 04400021 &NAME DS 0C 04500021 AIF (&INITIAL EQ 0).FIRSTLN 04600021 LINEND 04700021 AGO .NTFIRST 04800021 .FIRSTLN ANOP 04900021 &NRENTSX SETC 'N&SYSNDX' 05000021 &INITIAL SETA 1 05100021 &LASTCC SETA 1 05200021 N&SYSNDX EQU * 05300021 .NTFIRST ANOP 05400021 DC AL1(0) 05500021 AIF ('&DATA(1)' EQ '').CKDTABS 05600021 AIF ('&DATA'(1,1) NE '(').SLABEL 05700021 AIF (&DATA(1) EQ &DB).CKDTABS 05800021 &DB SETA &DATA(1) 05900021 AGO .AA 06000021 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 06100021 AIF (&DATA(2) EQ &DT).NCDATA 06200021 AGO .CC 06300021 .AA AIF ('&DATA(2)' EQ '').BB 06400021 AIF (&DATA(2) EQ &DT).BB 06500021 .CC ANOP 06600021 &DT SETA &DATA(2) 06700021 .BB DC XL2'FFFE' 06800021 DC FL1'&DB' 06900021 DC FL1'&DT' 07000021 &NRENTS SETA &NRENTS+1 07100021 .NCDATA ANOP 07200021 AIF ('&LABEL(1)' EQ '').CKLTABS 07300021 AIF ('&LABEL'(1,1) NE '(').SLABEL 07400021 AIF (&LABEL(1) EQ &LB).CKLTABS 07500021 &LB SETA &LABEL(1) 07600021 AGO .AAA 07700021 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 07800021 AIF (&LABEL(2) EQ <).NCLABEL 07900021 AGO .CCC 08000021 .AAA AIF ('&LABEL(2)' EQ '').BBB 08100021 AIF (&LABEL(2) EQ <).BBB 08200021 .CCC ANOP 08300021 < SETA &LABEL(2) 08400021 .BBB DC XL2'FFFF' 08500021 DC FL1'&LB' 08600021 DC FL1'<' 08700021 &NRENTS SETA &NRENTS+1 08800021 .NCLABEL ANOP 08900021 AIF ('&SKIP' EQ 'E').EJECT 09000021 AIF ('&SKIP' EQ '').TESTOFF 09100021 .CONT ANOP 09200021 AIF (&TEST EQ 0).AB 09300021 AIF (&SKIP EQ &LASTCC).TESTOFF 09400021 &S SETA &SKIP 09500021 ORG &CARRCON+3 09600021 DC AL.3(0),AL.2(&S),AL.3(1) 09700021 ORG 09800021 &LASTCC SETA &S 09900021 .SLABEL ANOP 10000021 .TESTOFF ANOP 10100021 &TEST SETB 0 10200021 AGO .DD 10300021 .EJECT DC XL2'FFFB' 10400021 &NRENTS SETA &NRENTS+1 10500021 DC X'8B' SKIP TO CHANNEL 1 10600021 DC AL.3(0),AL.2(&LASTCC),AL.3(1) 10700021 &TEST SETB 1 10800021 AGO .DD 10900021 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 11000021 A&SYSNDX DC XL2'FFFB' 11100021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 11200021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 11300021 &LASTCC SETA &SKIP 11400021 &TEST SETB 1 11500021 &CARRCON SETC 'A&SYSNDX' 11600021 &NRENTS SETA &NRENTS+1 11700021 .DD ANOP 11800021 .NOCHANG ANOP 11900021 MEND 12000021 EJECT 12100021 SPACE 2 12200021 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 12300021 MACRO 12400021 &NAME ROUTINE &LOGITEM,&RNAME 12500021 GBLC &DSECT,&CSECT 12600021 GBLC &ITEM(1000) 12700021 GBLA &SHIFT(1000),&ITEMNBR 12800021 GBLA &NRENTS 12900021 LCLA &ISHIFT,&NDX 13000021 .LOOP ANOP 13100021 &NDX SETA &NDX+1 13200021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 13300021 AIF (&NDX LT &ITEMNBR).LOOP 13400021 MNOTE *,'LOG ITEM NOT DEFINED' 13500021 MEXIT 13600021 .FOUND ANOP 13700021 &ISHIFT SETA &SHIFT(&NDX) 13800021 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 13900021 DC AL.4(&ISHIFT),AL.12(&RNAME-&CSECT) 14000021 &NRENTS SETA &NRENTS+1 14100021 MEND 14200021 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 14300021 SPACE 2 14400021 MACRO 14500021 &NAME DSGEN &X1,&X2,&X3,&X4,&X5,&X6,&X7,&X8,&X9,&X10,&X11,&X12,&X13,X14600021 &X14,&X15,&X16,&X17,&X18,&X19,&X20,&X21,&X22,&X23,&X24, X14700021 &X25,&X26,&X27,&X28,&X29,&X30,&X31,&X32 14800021 .* THIS MACRO GENERATES ONE DSECT WORD 14900021 .* FORMATTED FOR THE SUBJECT LOG RECORD 15000021 .* EACH OPERAND HAS TWO SUB LISTS. THE 15100021 .* FIRST IS THE NAME OF THE LOG ITEM 15200021 .* WHILE THE SECOND IS THE # OF BITS TO 15300021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 15400021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 15500021 .* UNUSED BIT GROUPS MUST BE GIVEN 15600021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 15700021 .* THE LOG ITEMS MAY THEN BE USED IN 15800021 .* THE CONVERSION MACRO INSTRUCTIONS. 15900021 GBLC &ITEM(1000) 16000021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 16100021 LCLC &SYMBOL 16200021 LCLA &OP,&COUNT,&BYTE 16300021 .LOOP ANOP 16400021 &OP SETA &OP+1 16500021 &ITEMNBR SETA &ITEMNBR+1 16600021 &SYMBOL SETC '&SYSLIST(&OP,1)' 16700021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 16800021 MNOTE *,'NULL BIT COUNT FIELD' 16900021 MEXIT 17000021 .OK1 ANOP 17100021 AIF ('&SYMBOL' NE '').OK 17200021 MNOTE 'LOG ITEM SYMBOL NOT PROVIDED' 17300021 AGO .CNT 17400021 .OK ANOP 17500021 AIF ('&SYMBOL'(1,1) EQ '''').CNT *TEMP* 17600021 &SYMBOL EQU *+&BYTE 17700021 &ITEM(&ITEMNBR) SETC '&SYSLIST(&OP,1)' 17800021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 17900021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 18000021 .CNT ANOP 18100021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 18200021 &BYTE SETA &COUNT/8 18300021 AIF (&OP LT N'&SYSLIST).LOOP 18400021 AIF (&COUNT NE 32).NOT32 18500021 &NAME DS 4C 18600021 MEXIT 18700021 .NOT32 AIF (&COUNT NE 64).ERR 18800021 &NAME DS 8C 18900021 MEXIT 19000021 .ERR MNOTE '**BIT COUNT FIELDS DO NOT TOTAL 32 OR 64**' 19100021 MEND 19200021 MACRO 19300021 LINEND 19400021 .* THIS MACRO IS USED ONLY BY THE LINE 19500021 .* MACRO TO SET THE NUMBER OF ENTRIES 19600021 .* ASSOCIATED WITH EACH LINE. 19700021 GBLA &NRENTS 19800021 GBLC &NRENTSX 19900021 ORG &NRENTSX 20000021 DC FL1'&NRENTS' 20100021 ORG 20200021 &NRENTS SETA 0 20300021 B&SYSNDX EQU * 20400021 &NRENTSX SETC 'B&SYSNDX' 20500021 MEND 20600021 SPACE 2 20700021 EJECT 20800021 * LABEL MACRO LABEL MACRO LABEL MACRO LABEL MACRO * 20900021 SPACE 2 21000021 MACRO 21100021 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C21200021 &LABEL7,&LABEL8 21300021 .* THIS MACRO ALLOWS UP TO ACHT LABELS TO 21400021 .* BE SPECIFIED FOR A GIVEN LINE. THE 21500021 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 21600021 .* TION MARKS. THE COLUMN AND LINE END 21700021 .* CONTROLS WILL BE INSERTED BY THE 21800021 .* MACRO. OMITTED OPERANDS MEAN NO 21900021 .* LABEL REQUIRED FOR RESPECTIVE 22000021 .* COLUMN. THIS MACRO WILL ALSO ALERT 22100021 .* THE PROGRAMMER TO EXACTLY WHERE THE 22200021 .* TABLE MUST BE BROKEN IF NECESSARY 22300021 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 22400021 GBLC &LABELS(2000) 22500021 GBLC &LBL(100) 22600021 GBLA &LBLCTR(100) 22700021 GBLA &LABELNR 22800021 GBLA &NRENTS,&LPTR 22900021 LCLC &MARGIN,&TACK 23000021 LCLC &TEXT 23100021 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 23200021 &MARGIN SETC '*' 23300021 AIF ('&NAME' EQ '').LOOPOUT 23400021 &LPTR SETA &LPTR+1 23500021 &LBL(&LPTR) SETC '&NAME' 23600021 &LBLCTR(&LPTR) SETA &LABELNR+1 23700021 .LOOPOUT ANOP 23800021 &OP SETA &OP+1 23900021 &K SETA K'&SYSLIST(&OP) 24000021 AIF (&K GE 2).NORM 24100021 &K SETA 2 24200021 .NORM ANOP 24300021 &START SETA 2 24400021 AIF (&OP LT N'&SYSLIST).NOTLAST 24500021 &MARGIN SETC '$' 24600021 .NOTLAST ANOP 24700021 &NRCHAR SETA 8 24800021 &TACK SETC '' 24900021 .LOOPIN ANOP 25000021 &REMAIN SETA &K-&START 25100021 AIF (&REMAIN GE 8).MORE 25200021 &TACK SETC '&MARGIN' 25300021 &NRCHAR SETA &REMAIN 25400021 .MORE ANOP 25500021 &TEXT SETC '' 25600021 AIF (&REMAIN EQ 0).ENDTEXT 25700021 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 25800021 .ENDTEXT ANOP 25900021 &LABELNR SETA &LABELNR+1 26000021 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 26100021 &START SETA &START+8 26200021 AIF ('&TACK' EQ '').LOOPIN 26300021 AIF ('&TACK' EQ '*').LOOPOUT 26400021 MEND 26500021 SPACE 2 26600021 MACRO 26700021 LSTART 26800021 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 26900021 .* OF THE TABLE IS TO BEGIN. 27000021 GBLC &LABELS(2000) 27100021 GBLA &LABELNR 27200021 GBLC &LBL(100) 27300021 GBLA &LBLCTR(100) 27400021 LCLA &NDX,&CTR 27500021 LINEND 27600021 &CTR SETA 1 27700021 .LOOP ANOP 27800021 &NDX SETA &NDX+1 27900021 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 28000021 &LBL(&CTR) DC C'&LABELS(&NDX)' 28100021 &CTR SETA &CTR+1 28200021 AGO .LOOPCTL 28300021 .NOLBL ANOP 28400021 DC C'&LABELS(&NDX)' 28500021 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 28600021 MEND 28700021 SPACE 2 28800021 * BIN MACRO BIN MACRO BIN MACRO BIN MACRO BIN MACRO * 28900021 SPACE 2 29000021 MACRO 29100021 BIN &LOGITEM,&SKIP$OR 29200021 .* &LOGITEM - NAME OF ITEM IN LOG 29300021 .* RECORD DSECT 29400021 .* &SKIP$OR - NBR OF SPACES TO SKIP ON 29500021 .* MULTIPLE PRINT OR NBR OF SPACES 29600021 .* TO BACK UP FROM COLUMN FOR 29700021 .* START OF PRINTING. THE LETTER 29800021 .* B PRECEEDS THE NUMBER (B5) IF 29900021 .* THE LATTER IS DESIRED. OMISSION 30000021 .* OF THIS OPERAND FORCES OPTION 2 30100021 .* WITH BACKUP SPACING EQUAL TO 30200021 .* THE NUMBER OF BITS IN THE ITEM 30300021 .* DEFINITION (VIA MACRO 'DSGEN'). 30400021 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 30500021 .* TOTAL NUMBER OF BITS TO PRINT. 30600021 GBLC &ITEM(1000) 30700021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 30800021 GBLC &DSECT 30900021 LCLB &B 31000021 LCLA &IBITS,&NDX,&ISHIFT,&K 31100021 LCLA &TEMP,&T 31200021 LCLC &S 31300021 .LOOP ANOP 31400021 &NDX SETA &NDX+1 31500021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 31600021 AIF (&NDX LT &ITEMNBR).LOOP 31700021 MNOTE *,'YOU BLEW IT' 31800021 ROUTINE DUM,SKIPPER 31900021 MEXIT 32000021 .FOUND ANOP 32100021 &ISHIFT SETA &SHIFT(&NDX) 32200021 &IBITS SETA &BITS(&NDX) 32300021 &T SETA &IBITS-1 32400021 &B SETB 0 32500021 AIF ('&SKIP$OR' EQ '').BACKUP 32600021 &K SETA K'&SKIP$OR 32700021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 32800021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 32900021 &T SETA &S 33000021 .BACKUP ANOP 33100021 &NRENTS SETA &NRENTS+1 33200021 &TEMP SETA &ISHIFT 33300021 A&SYSNDX DC AL.12(&LOGITEM-&DSECT),XL.4'&TEMP' 33400021 AIF (&IBITS EQ 1 AND &B EQ 0).OUT 33500021 ORG A&SYSNDX 33600021 &B SETB 1 33700021 DC AL.12(&LOGITEM-&DSECT),XL.4'C' 33800021 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 33900021 .OUT ANOP 34000021 MEND 34100021 EJECT 34200021 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 34300021 SPACE 2 34400021 MACRO 34500021 HEX &LOGITEM,&SKIP$OR,&BYTES 34600021 .* THIS MACRO FACILITATES GENERATION OF THE 34700021 .* TABLE ENTRIES SPECIFYING HEX TYPE 34800021 .* CONVERSIONS. 34900021 .* &LOGITEM - NAME OF DATA ITEM TO BE 35000021 .* CONVERTED 35100021 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 35200021 .* MULTIPLE PRINT OR NBR OF SPACES TO 35300021 .* BACK UP FROM COLUMN FOR START OF 35400021 .* PRINTING. THE LETTER B PRECEEDS THE 35500021 .* NUMBER (B8) IF THE LATTER OPTION IS 35600021 .* DESIRED. OMISSION OF THIS OPERAND 35700021 .* FORCES OPTION 2 WITH BACKUP SPACING 35800021 .* EQUAL TO THE NUMBER OF BYTES SPECI- 35900021 .* FIED BY THE NEXT OPERAND (TWICE THIS 36000021 .* NUMBER IF SUFFIX IS EXPLICITLY OR 36100021 .* IMPLICITLY B). 36200021 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 36300021 .* PROCESS. THIS NUMBER IS SUFFIXED 36400021 .* WITH AN L,R, OR B TO STIPULATE 36500021 .* PRINTING OF THE LEFT HALF, RIGHT 36600021 .* HALF, OR BOTH HALVES OF THE BYTE 36700021 .* RESPECTIVELY. OMISSION OF THIS 36800021 .* OPERAND DEFAULTS TO B WITH THE NUM- 36900021 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 37000021 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 37100021 .* SARY. THIS MACRO MUST BE THE FIRST 37200021 .* MACRO INSTRUCTION ISSUED FOR THE 37300021 .* SUBJECT LINE(S). 37400021 GBLC &ITEM(1000),&DSECT 37500021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 37600021 LCLB &B 37700021 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 37800021 LCLC &S,&LETTER 37900021 .LOOP ANOP 38000021 &NDX SETA &NDX+1 38100021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 38200021 AIF (&NDX LT &ITEMNBR).LOOP 38300021 MNOTE *,'LOG ITEM NOT DEFINED' 38400021 MEXIT 38500021 .FOUND ANOP 38600021 &ISHIFT SETA &SHIFT(&NDX) 38700021 &IBITS SETA &BITS(&NDX) 38800021 &CODE SETA 1 38900021 &K SETA K'&BYTES 39000021 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 39100021 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 39200021 MEXIT 39300021 .OK AIF ('&BYTES' EQ '').USEDEFN 39400021 &LETTER SETC '&BYTES'(&K,1) 39500021 &S SETC '&BYTES'(1,&K-1) 39600021 &BYTESP SETA &S 39700021 AIF ('&LETTER' EQ 'B').BOTH 39800021 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 39900021 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 40000021 MEXIT 40100021 .USEDEFN ANOP 40200021 &BYTESP SETA &IBITS/8 40300021 .BOTH AIF (&ISHIFT NE 0).ERR 40400021 &CODE SETA 3 40500021 &T SETA &BYTESP*2-1 40600021 &S SETC '&T' 40700021 .OK2 AIF (&ISHIFT EQ 0).L 40800021 &CODE SETA 2 40900021 .L ANOP 41000021 &B SETB 1 41100021 AIF ('&SKIP$OR' EQ '').BACKUP 41200021 &K SETA K'&SKIP$OR 41300021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 41400021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 41500021 .BACKUP ANOP 41600021 &NRENTS SETA &NRENTS+1 41700021 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 41800021 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 41900021 .OUT ANOP 42000021 MEND 42100021 MACRO 42200021 SPECIAL &ROUTINE,&PARAM,&SPACE= 42300021 .* THIS MACRO GENERATES A SPECIAL ROUTINE 42400021 .* ENTRY TO BE PROCESSED BY THE SUM. M. 42500021 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 42600021 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 42700021 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 42800021 .* INTERPRETED AS AN ARGUMENT OF THE 42900021 .* SPECIAL ROUTINE. 43000021 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 43100021 .* ALLOCATE FOR REQUIRED PROCESSING. 43200021 GBLC &CSECT 43300021 GBLA &COUNTR 43400021 LCLA &ADD 43500021 DC AL1(128) 43600021 DC BL.8'&PARAM' 43700021 DC AL2(&ROUTINE-&CSECT) 43800021 DC AL2(&COUNTR) 43900021 &ADD SETA 1 44000021 AIF ('&SPACE' EQ '').NORM 44100021 &ADD SETA &SPACE 44200021 .NORM ANOP 44300021 &COUNTR SETA &COUNTR+&ADD 44400021 MEND 44500021 MACRO 44600021 SUM &LOGITEM,&MASK 44700021 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 44800021 .* FOR PROCESSING BY THE SUMMARY MODULE 44900021 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 45000021 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 45100021 .* THIS OPERAND SHOULD BE OMITTED FOR 45200021 .* SINGLE BIT ITEMS IN WHICH CASE THE 45300021 .* MASK WILL BE SET ACCORDING TO THE 45400021 .* OFF BYTE BIT DISPLACEMENT OF THE 45500021 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 45600021 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 45700021 GBLC &ITEM(1000),&DSECT 45800021 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 45900021 .LOOP ANOP 46000021 &NDX SETA &NDX+1 46100021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 46200021 AIF (&NDX LT &ITEMNBR).LOOP 46300021 MNOTE *,'LOGITEM NOT FOUND' 46400021 MEXIT 46500021 .FOUND ANOP 46600021 DC AL1(0) 46700021 &ISHIFT SETA &SHIFT(&NDX) 46800021 &IBITS SETA &BITS(&NDX) 46900021 AIF ('&MASK' EQ '').FORM 47000021 DC B'&MASK' 47100021 AGO .ITEM 47200021 .FORM ANOP 47300021 &BITNBR SETA &ISHIFT-7 47400021 &BITNBR SETA 0-&BITNBR 47500021 &M SETA 1 47600021 .LOOP2 ANOP 47700021 AIF (&BITNBR EQ 0).GOTIT 47800021 &M SETA &M*2 47900021 &BITNBR SETA &BITNBR-1 48000021 AGO .LOOP2 48100021 .GOTIT ANOP 48200021 DC AL1(&M) 48300021 .ITEM DC AL2(&LOGITEM-&DSECT) 48400021 DC AL2(&COUNTR) 48500021 &COUNTR SETA &COUNTR+1 48600021 MEND 48700021 GBLC &DSECT,&CSECT 48800021 &CSECT SETC 'IFCST003' 48900021 &DSECT SETC 'T003' 49000021 IFCST003 CSECT 49100021 T003 DSECT 49200021 DSGEN (KEY,16),(TSWS,16),(TID,8),(TDUM1,16),(TCHAR,8) 49300021 DSGEN (XDATE,32),(TIME,32) 49400021 DSGEN (TDUM2,8),(TSER,24),(TMOD,16),(TDUM3,16) 49500021 DSGEN (TCUA,16),(TSID,16) 49600021 DSGEN (TSTAT,16),(TDUM4,16) 49700021 IFCST003 CSECT 49800021 USING T003,R2 49900021 USING *,R9 50000021 DC A(ENTRIES) PTR TO ENTRIES 50100021 DC A(PENTRY) 50200021 REG8 DC F'0' CURRENT ENTRY 50300021 SCSIZE DC H'30' NO OF 2BYTE CNTRS FOR SUM 50400021 XDATE1 STM R14,R12,L12(R13) SAVE REGS 50500021 CLC XDATE(L4),HEX00 IS DATE ZERO 50600021 BE RETURN BR-ZERO 50700021 CLC L0(L4,R3),HEX00 IS LOW DATE ZERO 50800021 BNE XDATE2 BR-NO 50900021 MVC L0(L4,R3),XDATE MOVE IN DATE 51000021 XDATE2 EQU * 51100021 CLC XDATE(L4),L0(R3) CHECK FOR LOW DATE 51200021 BL SAVELOW LOWER SAVE IT 51300021 CLC XDATE(L4),L4(R3) CHECK FOR HI 51400021 BNH RETURN BR-NOT HI 51500021 SAVEHI MVC L4(L4,R3),XDATE MOVE HI DATE 51600021 B RETURN 51700021 SAVELOW MVC L0(L4,R3),XDATE MOVE LOW DATE 51800021 B RETURN 51900021 * 52000021 RETURN LM R14,R12,L12(R13) RESTORE REGS 52100021 BR R14 RETURN 52200021 SETERR DS 0H 52300021 ST R5,XSAVE SAVE REG 52400021 MVC SAVE1(L2),TSTAT SAVE STATS 52500021 NC SAVE1,STATMASK TURN OFF UNUSED BITS 52600021 LA R5,ERLIST PICK UP LIST POINTER 52700021 LOOP DS 0H 52800021 TM 0(R5),HEXFF IS THIS LAST ENTRY 52900021 BO RETURNB YES,RETURN 53000021 CLC SAVE1(L2),0(R5) IS THIS THE ERROR COMBO 53100021 LA R3,L2(R3) BUMP TO NEXT COUNTER 53200021 BE ADDONE YES, ADD TO COUNTER 53300021 LA R5,L2(R5) BUMP TO NEXT 53400021 B LOOP TRY NEXT 53500021 ADDONE DS 0H 53600021 LH R5,0(R3) GET COUNTER 53700021 LA R5,L1(R5) ADD ONE 53800021 STH R5,0(R3) RESTORE COUNTER 53900021 B RETURNB RETURN 54000021 RETURNB L R5,XSAVE RESTORE REG 54100021 BR R14 54200021 ERLIST DS 0C 54300021 DC X'0C00' DB,US 54400021 DC X'0002' CC 54500021 DC X'0003' CC,OC 54600021 DC X'0020' CR 54700021 DC X'0004' DC 54800021 DC X'0005' DC,OC 54900021 DC X'0404' DC,US 55000021 DC X'0405' DC,US,OC 55100021 DC X'0008' EC 55200021 DC X'0408' EC,US 55300021 DC X'0010' IR 55400021 DC X'0018' IR,EC 55500021 DC X'0418' IR,EC,US 55600021 DC X'0011' IR,OC 55700021 DC X'0410' IR,OC 55800021 DC X'0001' OC 55900021 DC X'0401' OC,US 56000021 DC X'0100' TC 56100021 DC X'FFFF' 56200021 HEX00 DC XL4'00' 56300021 SAVE1 DC XL2'0000' 56400021 STATMASK DC X'0D3F' 56500021 BDEUSCON DC X'0E00' 56600021 ENTRIES DS 0F 56700021 SPECIAL XDATE1,00000000,SPACE=4 56800021 SPECIAL SETERR,0,SPACE=60 56900021 DC X'FF' 57000021 R0 EQU 0 57100021 R1 EQU 1 57200021 R2 EQU 2 57300021 R3 EQU 3 57400021 R4 EQU 4 57500021 R5 EQU 5 57600021 R6 EQU 6 57700021 R7 EQU 7 57800021 R8 EQU 8 57900021 R9 EQU 9 58000021 R10 EQU 10 58100021 R11 EQU 11 58200021 R12 EQU 12 58300021 R13 EQU 13 58400021 R14 EQU 14 58500021 R15 EQU 15 58600021 L0 EQU 0 58700021 L1 EQU 1 58800021 L2 EQU 2 58900021 L3 EQU 3 59000021 L4 EQU 4 59100021 L5 EQU 5 59200021 L6 EQU 6 59300021 L7 EQU 7 59400021 L8 EQU 8 59500021 L9 EQU 9 59600021 L12 EQU 12 59700021 L20 EQU 20 59800021 L28 EQU 28 59900021 L30 EQU 30 60000021 L32 EQU 32 60100021 L34 EQU 34 60200021 L64 EQU 64 60300021 L100 EQU 100 60400021 HEXI28 EQU X'28' 60500021 HEXFF EQU X'FF' 60600021 CUDISP EQU X'17' 60700021 NOT EQU X'FF' 60800021 Y3270 DSECT 60900021 DSGEN (YDUMA,32),(FWDPTR,32) 61000021 DSGEN (TOTALREC,16),(YTYPE,8),(YCHAN,8),(YCUA,24),(YSER1,8) 61100021 DSGEN (YSER2,16),(YCPU,16),(YSMSW,16),(YDUMB,8),(CU,8) 61200021 DSGEN (DS,8),(YDUMC,8),(YDUMD,16) 61300021 DS 2C 61400021 DSGEN (YLOWD,32) LOW DATE 61500021 DSGEN (YHID,32) HI DATE 61600021 DS 2C 61700021 DSGEN (YERR01,16),(YERR02,16),(YERR03,16),(YERR04,16) 61800021 DSGEN (YERR05,16),(YERR06,16),(YERR07,16),(YERR08,16) 61900021 DSGEN (YERR09,16),(YERR10,16),(YERR11,16),(YERR12,16) 62000021 DSGEN (YERR13,16),(YERR14,16),(YERR15,16),(YERR16,16) 62100021 DSGEN (YERR17,16),(YERR18,16),(YERR19,16),(YERR20,16) 62200021 IFCST003 CSECT 62300021 PENTRY DS 0F 62400021 &DSECT SETC 'Y3270' 62500021 &CSECT SETC 'PENTRY' 62600021 USING *,R9 62700021 DC A(PEDIT) 62800021 DC C'IFCST003' 62900021 YR9PTR DS F 63000021 YLABELP DS F 63100021 * 63200021 SKIPPER BR R14 NO-OP FOR EDIT 63300021 SORTDATE DS 0H 63400021 STM R5,R8,XSAVE 63500021 LR R5,R2 SET R5 FOR FIRST LOOP 63600021 LOOPDATE L R5,L4(R5) GET NEXT AREA 63700021 LTR R5,R5 ZERO POINTER? 63800021 BZ RETURNA YES, DONE 63900021 CLC L30(L4,R5),L30(R2) IS NEW DATE LOWER 64000021 BNL DATEHI NO, SEE IF HIGH HIGHER 64100021 MVC L30(L4,R2),L30(R5) YES, MOVE IN NEW LOWER 64200021 DATEHI CLC L34(L4,R5),L34(R2) IS HIGH HIGHER? 64300021 BNH LOOPDATE NO, CHECK NEXT AREA 64400021 MVC L34(L4,R2),L34(R5) YES, MOVE IN 64500021 B LOOPDATE CHECK NEXT AREA 64600021 SETCPUNO STM R5,R8,XSAVE SAVE REGS 64700021 SR R5,R5 CLEAR R5 64800021 IC R5,0(R4) PICK UP 64900021 SLL R5,L8 CPU TYPE 65000021 IC R5,L1(R4) FIELD 65100021 LTR R5,R5 IS IT ZERO? 65200021 BNZ RETURNA NO, HEX IS GOOD, RETURN 65300021 LA R6,L64 ELSE, BACK UP DATA PTR 65400021 SR R3,R6 TO PUT IN NEW INFO 65500021 MVC 0(L9,R3),UNIVERS SAY MODEL UNIVERSAL 65600021 MVC L32(L6,R3),NONE SAY SERIAL NO. NONE 65700021 B RETURNA RETURN 65800021 * 65900021 SETDATE UNPK WORK(L8),L0(L4,R4) PACK DATE 66000021 MVZ WORK+L7(L1),WORK MOVE ON ZONE 66100021 MVC L0(L3,R3),WORK+L5 MOVE DATE TO PRINT LINE 66200021 MVC L5(L2,R3),WORK+L3 MOVE YEAR TO PRINT LINE 66300021 BR R14 66400021 * 66500021 RETURNA LM R5,R8,XSAVE RESTORE REGS 66600021 BR R14 66700021 NONE DC C'NONE ' 66800021 UNIVERS DC C'UNIVERSAL' 66900021 NODVPRT DS 0H 67000021 TM CU2,FLGEDTCU IS THIS A CU EDIT 67100021 BO NOPRT YES, DON'T PRINT LINE 67200021 TM CU2,FLGCUAPT IS CUA EDIT OCCURRING 67300021 BO NOPRT YES, DON'T PRINT LINE 67400021 BR R14 ELSE, PRINT 67500021 NOCUPRT DS 0H 67600021 TM CU2,FLGCUAPT IS CUA EDIT OCCURRING 67700021 BO NOPRT YES, DON'T PRINT THIS LINE 67800021 BR R14 ELSE PRINT 67900021 NOCUAPRT DS 0H 68000021 TM CU2,FLGCUAPT IS CUA EDIT OCCURRING 68100021 BNO NOPRT NO, DON'T PRINT LINE 68200021 BR R14 RETURN 68300021 NOPRT SR R15,R15 SHOW EREP TO NOT PRINT 68400021 BR R14 RETURN 68500021 LOOPDS DS 0H EDIT NEXT SECTIONS 68600021 STM R5,R10,YSAVE SAVE REGS 68700021 L R5,L4(R2) GET NEXT DS 68800021 LTR R5,R5 ALL DONE? 68900021 BE EDITCUA YES, EDIT CUA SUMMARY 69000021 CLC CUDISP(L1,R2),CUDISP(R5) SAME CU? 69100021 BNE CHNGCU NO, CHANGE CU 69200021 BAL R10,FREEMAIN GO FREE CORE 69300021 L R6,CUSAVE GET CURRENT CU AREA 69400021 BAL R7,ADDCU ADD COUNTERS TO CU 69500021 TM CU2,FLGCU2 IS THIS 2ND CU 69600021 BNO N2CU NO, DON'T ADD TO CUA 69700021 L R6,CUASAVE SET UP FOR ADD 69800021 BAL R7,ADDCU ADD COUNTERS TO CUA 69900021 N2CU DS 0H 70000021 LR R2,R5 UPDATE R2 70100021 MVC RELABELS(L100),DEVCHAR SET LABEL TO SHOW DEVICE 70200021 SETEDIT DS 0H 70300021 LA R5,REDIT-4 POINT TO RE-EDIT AREA 70400021 ST R5,YR9PTR TELL EREP 70500021 LA R5,RELABELS GET NEXT LABELS 70600021 ST R5,YLABELP TELL EREP 70700021 EDITEND DS 0H 70800021 LM R5,R10,YSAVE RESTORE REGS 70900021 BR R14 RETURN 71000021 ADDCU DS 0H ADD R5 COUNTERS TO R6 71100021 LH R8,L8(R6) GET NUMBER OF RECORDS 71200021 AH R8,L8(R5) ADD NUMBER IN NEXT SLOT 71300021 STH R8,L8(R6) STORE IN CU OR CUA 71400021 LA R10,HEXI28 POINT TO 1ST ERR SLOT 71500021 ADDLOOP DS 0H 71600021 LH R8,L0(R10,R6) GET CU OR CUA ERROR COUNT 71700021 AH R8,L0(R10,R5) ADD ERROR COUNT OF NEXT 71800021 STH R8,L0(R10,R6) STORE IN CU OR CUA SUM 71900021 LA R10,L2(R10) BUMP R10 72000021 CH R10,HEX4C PAST LAST COUNTER 72100021 BNE ADDLOOP NO, LOOP 72200021 BR R7 YES, RETURN 72300021 CHNGCU DS 0H EDIT SUMS FOR CU 72400021 OI CU2,FLGCU2 SHOW MORE THAN ONE CU 72500021 BAL R10,FREEMAIN GO FREE CORE 72600021 TM CU2,FLGEDTCU JUST EDITED CU? 72700021 BO CHNGCU2 YES, START NEXT CU 72800021 CUEDIT L R2,CUSAVE SET TO EDIT CU 72900021 ST R5,CUSAVE SHOW NEW CU SUM AREA 73000021 ST R5,L4(R2) RELINK CHAIN 73100021 OI CU2,FLGEDTCU SHOW CU EDIT OCCURRING 73200021 MVC RELABELS(L100),CUCHAR SET LABEL TO SHOW CU SUM 73300021 B SETEDIT 73400021 CHNGCU2 DS 0H 73500021 NI CU2,NOT-FLGEDTCU TURN OFF CU FLAG 73600021 LR R2,R5 SET TO EDIT FIRST OF NEXT 73700021 L R6,CUASAVE ADD THIS TO CUA (COMB SUM 73800021 BAL R7,ADDCU 73900021 MVC RELABELS(L100),DEVCHAR SET LABEL TO SHOW DEVICE 74000021 B SETEDIT GO EDIT IT 74100021 EDITCUA DS 0H LAST RECORD IN CHAIN 74200021 BAL R10,FREEMAIN GO FREE CORE 74300021 TM CU2,FLGCUAPT ALL DONE? 74400021 BO EDITEND YES, END EDIT 74500021 TM CU2,FLGCUA BEEN HERE BEFORE? 74600021 BO LASTEDIT YES, DO CUA SUMS, END 74700021 OI CU2,FLGCUA SHOW CUA TO BE PRINTED 74800021 B CUEDIT SET UP TO EDIT CU 74900021 LASTEDIT DS 0H 75000021 L R2,CUASAVE POINT TO CUA TOTALS 75100021 OI CU2,FLGCUAPT TELL THAT CUA IS PRINTING 75200021 ST R5,CUASAVE SET TO FREE CUA NXT ENTRY 75300021 ST R5,L4(R2) SET TO RETURN TO EDITCUA 75400021 MVC RELABELS(L100),COMCHAR SET LABEL TO SHOW XCU SUM 75500021 B SETEDIT 75600021 FREEMAIN DS 0H 75700021 C R2,CUSAVE WAS THIS CU TO BE SAVED 75800021 BE SKIPFREE YES, DON'T FREE IT 75900021 C R2,CUASAVE IS THIS CUA SUM AREA? 76000021 BE SKIPFREE YES, DON'T FREE 76100021 LR R1,R2 SET UP FOR FREEMAIN 76200021 FREEMAIN R,LV=96,A=(1) FREE THE SORE 76300021 SKIPFREE DS 0H 76400021 BR R10 RETURN 76500021 CONVERT DS 0H 76600021 STM R14,R12,L12(R13) SAVE REGS 76700021 LH R5,L0(R4) 76800021 CONV1 CVD R5,WORK CONVERT TO DECIMAL 76900021 UNPK L0(L3,R3),WORK+L5(L3) UNPACK TO PRINT BUFFER 77000021 MVZ L2(L1,R3),L0(R3) PUT ON PRINTABLE ZONE 77100021 LM R14,R12,L12(R13) RESTORE REGS 77200021 BR R14 77300021 SORT DS 0H 77400021 STM R14,R12,L12(R13) SAVE REGS 77500021 L R3,L4(R2) GET 2ND AREA 77600021 LA R8,0 77700021 ST R8,L4(R2) SET NEW POINTER TO ZERO 77800021 LOOP1 DS 0H 77900021 LTR R3,R3 NO MORE AREAS? 78000021 BZ ENDSORT YES, STOP SORT 78100021 LR R4,R2 INITIALIZE R4 78200021 L R7,L4(R4) UPDATE R7 78300021 L R5,L4(R3) R5 HOLDS NEXT IN OLD CHAIN 78400021 CLC CUDISP(L2,R3),CUDISP(R2) 78500021 BL FIRST 78600021 LOOP2 DS 0H 78700021 * COMPARE ON CU AND DS 78800021 LTR R7,R7 END OF NEW CHAIN? 78900021 BZ EOCHAIN YES, ADD TO END 79000021 CLC CUDISP(L2,R3),CUDISP(R7) B> OR = TO A? 79100021 BH BHIGH 79200021 ST R3,L4(R4) INSERT AFTER LAST LOWER 79300021 ST R7,L4(R3) POINT TO NEXT HIGHER 79400021 LR R3,R5 SET TO NEXT TO CHECK 79500021 B LOOP1 GO GET NEXT AREA 79600021 BHIGH DS 0H 79700021 LR R4,R7 UPDATE R4 79800021 L R7,L4(R4) SETUP R7 79900021 B LOOP2 CHECK NEXT SLOT 80000021 EOCHAIN DS 0H 80100021 ST R3,L4(R4) PT OLD LAST TO NEW LAST 80200021 ST R8,L4(R3) POINT NEW LAST TO ZERO 80300021 LR R3,R5 SET TO NEXT OLD AREA 80400021 B LOOP1 INSERT IT IN NEW CHAIN 80500021 FIRST DS 0H 80600021 ST R2,L4(R3) POINT THIS NEW AT NEXT 80700021 LR R2,R3 START AT THIS NEW 80800021 LR R3,R5 CHECK NEXT AREA 80900021 B LOOP1 81000021 ENDSORT DS 0H 81100021 ST R2,L28(R13) SET R2 FOR EREP 81200021 ST R2,CUSAVE SET FIRST CU SUM AREA 81300021 ST R2,CUASAVE SET CUA SUM AREA 81400021 LM R14,R12,L12(R13) RESTORE REGS 81500021 BR R14 RETURN 81600021 HEX4C DC H'76' 81700021 YSAVE DS 6F SAVE AREA FOR WORK REGS 81800021 CUSAVE DS F POINTER TO CURRENT CU SUM 81900021 CUASAVE DS F PTR TO CURR CUA SUM AREA 82000021 CU2 DC X'00' FLAGS FOR LOOPDS 82100021 FLGCU2 EQU X'80' SET FOR 2ND CU 82200021 FLGEDTCU EQU X'40' SHOWS CU EDIT OCCURRING 82300021 FLGCUAPT EQU X'20' SHOWS CUA EDIT OCCURRING 82400021 FLGCUA EQU X'10' SHOWS LAST RECORD REACHED 82500021 WORK DC D'0' 82600021 XSAVE DS 4F 82700021 COMCHAR DC CL100'TRANSMISSION CONTROL UNIT TRANSMISSION CONTROLX82800021 UNIT TRANSMISSION CONTROL UNIT ' 82900021 CUCHAR DC CL100'CONTROL UNIT CONTROL UNIT CONTROL UNIT CONTROL X83000021 UNIT CONTROL UNIT CONTROL UNIT CONTROL UNIT ' 83100021 DEVCHAR DC CL100'DEVICE DEVICE DEVICE DEVICE DEVICE DEVICE DEVICE DX83200021 EVICE DEVICE DEVICE DEVICE DEVICE DEVICE DEVICE ' 83300021 PEDIT DC 2F'0' 83400021 DC A(LABELS) LABEL PTR 83500021 DC H'0' DISP 83600021 LINE ,,SKIP=E EJECT 83700021 LINE (57,32),(23,26) 83800021 HEX YCPU,0,2B 83900021 HEX YSER1,0,3B 84000021 ROUTINE YCPU,SETCPUNO 84100021 ROUTINE YDUMA,SORT 84200021 ROUTINE YLOWD,SORTDATE 84300021 LABEL 'DAY YEAR DAY YEAR','MODEL-','SERIAL NO.' 84400021 LINE (23,11),(1,30) 84500021 ROUTINE YLOWD,SETDATE 84600021 ROUTINE YHID,SETDATE 84700021 LABEL 'OUTBOARD DATE RANGE -','TO' 84800021 * 84900021 LINE (55,1),(1,65),SKIP=2 85000021 HEX YCUA 85100021 LABEL 'SUMMARY OF MISCELLANEOUS RECORDS FOR DEVICE','DEVICE TYX85200021 PE 3270 REMOTE' 85300021 LINE ,,SKIP=2 85400021 ROUTINE YDUMA,SKIPPER 85500021 RELABELS LABEL 'DEVICE DEVICE DEVICE DEVICE DEVICE DEVICE DEVICE DEVICEX85600021 DEVICE DEVICE DEVICE DEVICE DEVICE DEVICE ' 85700021 REDIT LINE (30,1),(1,1),SKIP=1 85800021 HEX YCUA 85900021 ROUTINE YDUMA,NOCUAPRT 86000021 LABEL 'CHANNEL UNIT ADDRESS' 86100021 LINE 86200021 HEX CU 86300021 ROUTINE YDUMA,NOCUPRT 86400021 LABEL 'CONTROL UNIT ADDRESS' 86500021 LINE 86600021 HEX DS 86700021 ROUTINE YDUMA,NODVPRT 86800021 LABEL 'DEVICE ADDRESS' 86900021 LINE (28,1),,SKIP=3 87000021 ROUTINE TOTALREC,CONVERT 87100021 LABEL 'NUMBER OF RECORDS' 87200021 LINE ,,SKIP=2 87300021 ROUTINE YDUMA,SKIPPER 87400021 LABEL 'STATISTICS SUMMARY' 87500021 LINE (25,40),(5,40),SKIP=1 87600021 ROUTINE YERR01,CONVERT 87700021 ROUTINE YERR02,CONVERT 87800021 LABEL 'DB,US','CC' 87900021 LINE 88000021 ROUTINE YERR03,CONVERT 88100021 ROUTINE YERR04,CONVERT 88200021 LABEL 'CC,OC','CR' 88300021 LINE 88400021 ROUTINE YERR05,CONVERT 88500021 ROUTINE YERR06,CONVERT 88600021 LABEL 'DC','DC,OC' 88700021 LINE 88800021 ROUTINE YERR07,CONVERT 88900021 ROUTINE YERR08,CONVERT 89000021 LABEL 'DC,US','DC,US,OC' 89100021 LINE 89200021 ROUTINE YERR09,CONVERT 89300021 ROUTINE YERR10,CONVERT 89400021 LABEL 'EC','EC,US' 89500021 LINE 89600021 ROUTINE YERR11,CONVERT 89700021 ROUTINE YERR12,CONVERT 89800021 LABEL 'IR','IR,EC' 89900021 LINE 90000021 ROUTINE YERR13,CONVERT 90100021 ROUTINE YERR14,CONVERT 90200021 LABEL 'IR,EC,US','IR,OC' 90300021 LINE 90400021 ROUTINE YERR15,CONVERT 90500021 ROUTINE YERR16,CONVERT 90600021 LABEL 'IR,US','OC' 90700021 LINE ,,SKIP=3 90800021 ROUTINE YERR17,CONVERT 90900021 ROUTINE YERR18,CONVERT 91000021 LABEL 'OC,US','TC' 91100021 LINE (27,1),(1,1),SKIP=2 91200021 ROUTINE YDUMA,LOOPDS 91300021 LABEL '' 91400021 DC X'FF' 91500021 DC X'0000' 91600021 DC X'0000' 91700021 DC X'0000' 91800021 LABELS DS 0F 91900021 DC C'$' 92000021 LSTART 92100021 END 92200021 ./ ADD SSI=01010732,NAME=IFCST005,SOURCE=0 TITLE 'IFCST005 SUMMARY FOR TCAM 3705 27RN' 00050021 MACRO 00100021 &NAME DSGEN &X1,&X2,&X3,&X4,&X5,&X6,&X7,&X8,&X9,&X10,&X11,&X12,&X13,X00150021 &X14,&X15,&X16,&X17,&X18,&X19,&X20,&X21,&X22,&X23,&X24, X00200021 &X25,&X26,&X27,&X28,&X29,&X30,&X31,&X32 00250021 .* THIS MACRO GENERATES ONE DSECT WORD 00300021 .* FORMATTED FOR THE SUBJECT LOG RECORD 00350021 .* EACH OPERAND HAS TWO SUB LISTS. THE 00400021 .* FIRST IS THE NAME OF THE LOG ITEM 00450021 .* WHILE THE SECOND IS THE # OF BITS TO 00500021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 00550021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 00600021 .* UNUSED BIT GROUPS MUST BE GIVEN 00650021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 00700021 .* THE LOG ITEMS MAY THEN BE USED IN 00750021 .* THE CONVERSION MACRO INSTRUCTIONS. 00800021 GBLC &ITEM(1000) 00850021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 00900021 LCLC &SYMBOL 00950021 LCLA &OP,&COUNT,&BYTE 01000021 .LOOP ANOP 01050021 &OP SETA &OP+1 01100021 &ITEMNBR SETA &ITEMNBR+1 01150021 &SYMBOL SETC '&SYSLIST(&OP,1)' 01200021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 01250021 MNOTE *,'NULL BIT COUNT FIELD' 01300021 MEXIT 01350021 .OK1 ANOP 01400021 AIF ('&SYMBOL' NE '').OK 01450021 MNOTE 'LOG ITEM SYMBOL NOT PROVIDED' 01500021 AGO .CNT 01550021 .OK ANOP 01600021 AIF ('&SYMBOL'(1,1) EQ '''').CNT *TEMP* 01650021 &SYMBOL EQU *+&BYTE 01700021 &ITEM(&ITEMNBR) SETC '&SYSLIST(&OP,1)' 01750021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 01800021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 01850021 .CNT ANOP 01900021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 01950021 &BYTE SETA &COUNT/8 02000021 AIF (&OP LT N'&SYSLIST).LOOP 02050021 AIF (&COUNT NE 32).NOT32 02100021 &NAME DS 4C 02150021 MEXIT 02200021 .NOT32 AIF (&COUNT NE 64).ERR 02250021 &NAME DS 8C 02300021 MEXIT 02350021 .ERR MNOTE '**BIT COUNT FIELDS DO NOT TOTAL 32 OR 64**' 02400021 MEND 02450021 EJECT 02500021 MACRO 02550021 &NAME LINE &DATA,&LABEL,&SKIP= 02600021 .* THIS MACRO ESTABLISHES THE MARGINS OR 02650021 .* COLUMN SETTINGS FOR EACH LINE. IT 02700021 .* GENERATES NECESSARY CARRIAGE CONTROL 02750021 .* ENTRIES. LASTLY IT DETERMINES THE 02800021 .* NUMBER OF ENTRIES ASSOCIATED WITH 02850021 .* THE PREVIOUS LINE AND STORES THAT # 02900021 .* INTO THE APPROPRIATE BYTE. 02950021 .* &DATA(1) - CHARACTER POSITION TO BEGIN 03000021 .* DATA. 03050021 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 03100021 .* DATA COLUMN STARTING CHARACTERS. 03150021 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 03200021 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 03250021 .* STARTING CHARACTERS. 03300021 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 03350021 .* TO BEGIN NEXT PRINTED LINE. 03400021 .* NEW ENTRIES ARE GENERATED ONLY WHEN 03450021 .* NECESSARY. OMISSION OF ITEMS MEANS 03500021 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 03550021 .* SETTINGS. A LINE MACRO IS REQUIRED 03600021 .* FOR EACH PRINTED LINE. IF NO SETTING 03650021 .* CHANGES ARE REQUIRED ALL OPERANDS 03700021 .* ARE OMITTED IN WHICH CASE ONLY THE 03750021 .* # OF ENTRIES FOR THE PREVIOUS LINE 03800021 .* IS COMPUTED. THIS MACRO MUST BE THE 03850021 .* FIRST MACRO INSTRUCTION ISSUED FOR 03900021 .* THE SUBJECT LINE 03950021 GBLA &DB,&DT,&LB,<,&NRENTS 04000021 GBLA &LASTCC,&INITIAL 04050021 GBLC &NRENTSX 04100021 GBLC &CARRCON 04150021 GBLB &TEST 04200021 LCLA &S 04250021 &NAME DS 0C 04300021 AIF (&INITIAL EQ 0).FIRSTLN 04350021 LINEND 04400021 AGO .NTFIRST 04450021 .FIRSTLN ANOP 04500021 &NRENTSX SETC 'N&SYSNDX' 04550021 &INITIAL SETA 1 04600021 N&SYSNDX EQU * 04650021 .NTFIRST ANOP 04700021 DC AL1(0) 04750021 AIF ('&DATA(1)' EQ '').CKDTABS 04800021 AIF (&DATA(1) EQ &DB).CKDTABS 04850021 &DB SETA &DATA(1) 04900021 AGO .AA 04950021 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 05000021 AIF (&DATA(2) EQ &DT).NCDATA 05050021 AGO .CC 05100021 .AA AIF ('&DATA(2)' EQ '').BB 05150021 AIF (&DATA(2) EQ &DT).BB 05200021 .CC ANOP 05250021 &DT SETA &DATA(2) 05300021 .BB DC XL2'FFFE' 05350021 DC FL1'&DB' 05400021 DC FL1'&DT' 05450021 &NRENTS SETA &NRENTS+1 05500021 .NCDATA ANOP 05550021 AIF ('&LABEL(1)' EQ '').CKLTABS 05600021 AIF (&LABEL(1) EQ &LB).CKLTABS 05650021 &LB SETA &LABEL(1) 05700021 AGO .AAA 05750021 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 05800021 AIF (&LABEL(2) EQ <).NCLABEL 05850021 AGO .CCC 05900021 .AAA AIF ('&LABEL(2)' EQ '').BBB 05950021 AIF (&LABEL(2) EQ <).BBB 06000021 .CCC ANOP 06050021 < SETA &LABEL(2) 06100021 .BBB DC XL2'FFFF' 06150021 DC FL1'&LB' 06200021 DC FL1'<' 06250021 &NRENTS SETA &NRENTS+1 06300021 .NCLABEL ANOP 06350021 AIF ('&SKIP' NE '').CONT 06400021 AIF (&TEST EQ 0).NOCHANG 06450021 &S SETA &LASTCC 06500021 AGO .DEFAULT 06550021 .CONT ANOP 06600021 AIF (&TEST EQ 0).AB 06650021 &S SETA &SKIP 06700021 .DEFAULT ANOP 06750021 ORG &CARRCON+3 06800021 DC AL.3(0),AL.2(&S),AL.3(1) 06850021 ORG 06900021 &LASTCC SETA &S 06950021 &TEST SETB 0 07000021 AGO .DD 07050021 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 07100021 A&SYSNDX DC XL2'FFFB' 07150021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 07200021 DC FL1'9' 07250021 &LASTCC SETA &SKIP 07300021 &TEST SETB 1 07350021 &CARRCON SETC 'A&SYSNDX' 07400021 &NRENTS SETA &NRENTS+1 07450021 .DD ANOP 07500021 .NOCHANG ANOP 07550021 MEND 07600021 MACRO 07650021 &NAME ROUTINE &LOGITEM,&RNAME 07700021 GBLA &NRENTS 07750021 GBLC &DSECT,&CSECT 07800021 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 07850021 DC AL2(&RNAME-&CSECT) 07900021 &NRENTS SETA &NRENTS+1 07950021 MEND 08000021 EJECT 08050021 MACRO 08100021 LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4 08150021 .* THIS MACRO ALLOWS UP TO FOUR LABELS TO 08200021 .* BE SPECIFIED FOR A GIVEN LINE. THE 08250021 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 08300021 .* TION MARKS. THE COLUMN AND LINE END 08350021 .* CONTROLS WILL BE INSERTED BY THE 08400021 .* MACRO. OMITTED OPERANDS MEAN NO 08450021 .* LABEL REQUIRED FOR RESPECTIVE 08500021 .* COLUMN. THIS MACRO WILL ALSO ALERT 08550021 .* THE PROGRAMMER TO EXACTLY WHERE THE 08600021 .* TABLE MUST BE BROKEN IF NECESSARY 08650021 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 08700021 GBLC &LABELS(1000) 08750021 GBLA &LABELNR 08800021 GBLA &NRENTS 08850021 LCLC &MARGIN,&TACK 08900021 LCLC &TEXT 08950021 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 09000021 &MARGIN SETC '*' 09050021 .LOOPOUT ANOP 09100021 &OP SETA &OP+1 09150021 &K SETA K'&SYSLIST(&OP) 09200021 AIF (&K GE 2).NORM 09250021 &K SETA 2 09300021 .NORM ANOP 09350021 &START SETA 2 09400021 AIF (&OP LT N'&SYSLIST).NOTLAST 09450021 &MARGIN SETC '$' 09500021 .NOTLAST ANOP 09550021 &NRCHAR SETA 8 09600021 &TACK SETC '' 09650021 .LOOPIN ANOP 09700021 &REMAIN SETA &K-&START 09750021 AIF (&REMAIN GE 8).MORE 09800021 &TACK SETC '&MARGIN' 09850021 &NRCHAR SETA &REMAIN 09900021 .MORE ANOP 09950021 &TEXT SETC '' 10000021 AIF (&REMAIN EQ 0).ENDTEXT 10050021 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 10100021 .ENDTEXT ANOP 10150021 &LABELNR SETA &LABELNR+1 10200021 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 10250021 &START SETA &START+8 10300021 AIF ('&TACK' EQ '').LOOPIN 10350021 AIF ('&TACK' EQ '*').LOOPOUT 10400021 MEND 10450021 MACRO 10500021 LSTART 10550021 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 10600021 .* OF THE TABLE IS TO BEGIN. 10650021 GBLC &LABELS(1000) 10700021 GBLA &LABELNR 10750021 LCLA &NDX 10800021 LINEND 10850021 .LOOP ANOP 10900021 &NDX SETA &NDX+1 10950021 DC C'&LABELS(&NDX)' 11000021 AIF (&NDX LT &LABELNR).LOOP 11050021 MEND 11100021 MACRO 11150021 LINEND 11200021 .* THIS MACRO IS USED ONLY BY THE LINE 11250021 .* MACRO TO SET THE NUMBER OF ENTRIES 11300021 .* ASSOCIATED WITH EACH LINE. 11350021 GBLA &NRENTS 11400021 GBLC &NRENTSX 11450021 ORG &NRENTSX 11500021 DC FL1'&NRENTS' 11550021 ORG 11600021 &NRENTS SETA 0 11650021 B&SYSNDX EQU * 11700021 &NRENTSX SETC 'B&SYSNDX' 11750021 MEND 11800021 EJECT 11850021 MACRO 11900021 SUM &LOGITEM,&MASK 11950021 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 12000021 .* FOR PROCESSING BY THE SUMMARY MODULE 12050021 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 12100021 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 12150021 .* THIS OPERAND SHOULD BE OMITTED FOR 12200021 .* SINGLE BIT ITEMS IN WHICH CASE THE 12250021 .* MASK WILL BE SET ACCORDING TO THE 12300021 .* OFF BYTE BIT DISPLACEMENT OF THE 12350021 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 12400021 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 12450021 GBLC &ITEM(1000),&DSECT 12500021 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 12550021 .LOOP ANOP 12600021 &NDX SETA &NDX+1 12650021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 12700021 AIF (&NDX LT &ITEMNBR).LOOP 12750021 MNOTE *,'LOGITEM NOT FOUND' 12800021 MEXIT 12850021 .FOUND ANOP 12900021 DC AL1(0) 12950021 &ISHIFT SETA &SHIFT(&NDX) 13000021 &IBITS SETA &BITS(&NDX) 13050021 AIF ('&MASK' EQ '').FORM 13100021 DC B'&MASK' 13150021 AGO .ITEM 13200021 .FORM ANOP 13250021 &BITNBR SETA &ISHIFT-7 13300021 &BITNBR SETA 0-&BITNBR 13350021 &M SETA 1 13400021 .LOOP2 ANOP 13450021 AIF (&BITNBR EQ 0).GOTIT 13500021 &M SETA &M*2 13550021 &BITNBR SETA &BITNBR-1 13600021 AGO .LOOP2 13650021 .GOTIT ANOP 13700021 DC AL1(&M) 13750021 .ITEM DC AL2(&LOGITEM-&DSECT) 13800021 DC AL2(&COUNTR) 13850021 &COUNTR SETA &COUNTR+1 13900021 MEND 13950021 MACRO 14000021 SPECIAL &ROUTINE,&PARAM,&SPACE= 14050021 .* THIS MACRO GENERATES A SPECIAL ROUTINE 14100021 .* ENTRY TO BE PROCESSED BY THE SUM. M. 14150021 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 14200021 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 14250021 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 14300021 .* INTERPRETED AS AN ARGUMENT OF THE 14350021 .* SPECIAL ROUTINE. 14400021 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 14450021 .* ALLOCATE FOR REQUIRED PROCESSING. 14500021 GBLC &CSECT 14550021 GBLA &COUNTR 14600021 LCLA &ADD 14650021 DC AL1(128) 14700021 DC BL.8'&PARAM' 14750021 DC AL2(&ROUTINE-&CSECT) 14800021 DC AL2(&COUNTR) 14850021 &ADD SETA 1 14900021 AIF ('&SPACE' EQ '').NORM 14950021 &ADD SETA &SPACE 15000021 .NORM ANOP 15050021 &COUNTR SETA &COUNTR+&ADD 15100021 MEND 15150021 EJECT 15200021 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 15250021 SPACE 2 15300021 MACRO 15350021 HEX &LOGITEM,&SKIP$OR,&BYTES 15400021 .* THIS MACRO FACILITATES GENERATION OF THE 15450021 .* TABLE ENTRIES SPECIFYING HEX TYPE 15500021 .* CONVERSIONS. 15550021 .* &LOGITEM - NAME OF DATA ITEM TO BE 15600021 .* CONVERTED 15650021 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 15700021 .* MULTIPLE PRINT OR NBR OF SPACES TO 15750021 .* BACK UP FROM COLUMN FOR START OF 15800021 .* PRINTING. THE LETTER B PRECEEDS THE 15850021 .* NUMBER (B8) IF THE LATTER OPTION IS 15900021 .* DESIRED. OMISSION OF THIS OPERAND 15950021 .* FORCES OPTION 2 WITH BACKUP SPACING 16000021 .* EQUAL TO THE NUMBER OF BYTES SPECI- 16050021 .* FIED BY THE NEXT OPERAND (TWICE THIS 16100021 .* NUMBER IF SUFFIX IS EXPLICITLY OR 16150021 .* IMPLICITLY B). 16200021 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 16250021 .* PROCESS. THIS NUMBER IS SUFFIXED 16300021 .* WITH AN L,R, OR B TO STIPULATE 16350021 .* PRINTING OF THE LEFT HALF, RIGHT 16400021 .* HALF, OR BOTH HALVES OF THE BYTE 16450021 .* RESPECTIVELY. OMISSION OF THIS 16500021 .* OPERAND DEFAULTS TO B WITH THE NUM- 16550021 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 16600021 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 16650021 .* SARY. THIS MACRO MUST BE THE FIRST 16700021 .* MACRO INSTRUCTION ISSUED FOR THE 16750021 .* SUBJECT LINE(S). 16800021 GBLC &ITEM(1000),&DSECT 16850021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 16900021 LCLB &B 16950021 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 17000021 LCLC &S,&LETTER 17050021 .LOOP ANOP 17100021 &NDX SETA &NDX+1 17150021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 17200021 AIF (&NDX LT &ITEMNBR).LOOP 17250021 MNOTE *,'LOG ITEM NOT DEFINED' 17300021 MEXIT 17350021 .FOUND ANOP 17400021 &ISHIFT SETA &SHIFT(&NDX) 17450021 &IBITS SETA &BITS(&NDX) 17500021 &CODE SETA 1 17550021 &K SETA K'&BYTES 17600021 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 17650021 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 17700021 MEXIT 17750021 .OK AIF ('&BYTES' EQ '').USEDEFN 17800021 &LETTER SETC '&BYTES'(&K,1) 17850021 &S SETC '&BYTES'(1,&K-1) 17900021 &BYTESP SETA &S 17950021 AIF ('&LETTER' EQ 'B').BOTH 18000021 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 18050021 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 18100021 MEXIT 18150021 .USEDEFN ANOP 18200021 &BYTESP SETA &IBITS/8 18250021 .BOTH AIF (&ISHIFT NE 0).ERR 18300021 &CODE SETA 3 18350021 &T SETA &BYTESP*2-1 18400021 &S SETC '&T' 18450021 .OK2 AIF (&ISHIFT EQ 0).L 18500021 &CODE SETA 2 18550021 .L ANOP 18600021 &B SETB 1 18650021 AIF ('&SKIP$OR' EQ '').BACKUP 18700021 &K SETA K'&SKIP$OR 18750021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 18800021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 18850021 .BACKUP ANOP 18900021 &NRENTS SETA &NRENTS+1 18950021 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 19000021 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 19050021 .OUT ANOP 19100021 MEND 19150021 MACRO 19200021 CONVT 19250021 GBLC &ITEM(1000),&DSECT 19300021 GBLA &INITIAL 19350021 GBLA &BITS(1000),&ITEMNBR,&SHIFT(1000) 19400021 GBLA &NRENTS 19450021 GBLB &DIAGTST,&DIAGSET,&DIAGLIN 19500021 LCLB &SUB 19550021 LCLA &OP 19600021 LCLA &OFFSET,&OUT,&IN,&IND,&IBITS,&ISHIFT 19650021 .* 19700021 .* CONVERT BINARY TO DECIMAL 19750021 .* &NAME IS THE REFERENCE INTO THE DSECT RECORD 19800021 .* &OUT IS THE NUMBER OF CHARS TO BE PUT ONTO PRINT LINE 19850021 .* DEFAULT IS FOUR MAXIMUM IS 8 19900021 .* &IN IS THE NUMBER OF BYTES AS INPUT 19950021 .* ERROR DEFAULT IS 2 MAXIMUM IS 4 20000021 .* 20050021 AIF (&DIAGTST EQ 0).NOMSG 20100021 AIF (&INITIAL EQ 0).NOMSG 20150021 AIF (&DIAGLIN EQ 1).NOMSG 20200021 MNOTE '**NO LINE ASSOCIATED WITH THIS DATA**' 20250021 *****THE FOLLOWING GENERATED FOR TEST PURPOSES***** 20300021 * LINE 20350021 LINE 20400021 .NOMSG ANOP 20450021 AIF (K'&SYSLIST(1) EQ K'&SYSLIST(1,1)).LLOP 20500021 &SUB SETB 1 20550021 .LLOP ANOP 20600021 &OP SETA &OP+1 20650021 &OUT SETA 4 .BR NOT NULL ELSE SET TO 4 20700021 AIF (&SUB EQ 1).SUBA 20750021 AIF ('&SYSLIST(3)' EQ '').B TEST FOR NULL INPUT 20800021 &OUT SETA &SYSLIST(3) SET &OUT FROM INPUT 20850021 AGO .A 20900021 .SUBA AIF ('&SYSLIST(&OP,3)' EQ '').B 20950021 &OUT SETA &SYSLIST(&OP,3) SET &OUT FROM INPUT 21000021 .A AIF (&OUT GT 0 AND &OUT LT 9).B TEST RANGE 21050021 .AERR MNOTE '*** BYTES OUT INCORRECTLY SPECIFIED DEFAULT USED ***' 21100021 &OUT SETA 4 21150021 .B AIF (&SUB EQ 1).SUBB 21200021 AIF ('&SYSLIST(2)' EQ '').LOOP BRANCH IF NULL 21250021 &IN SETA &SYSLIST(2) .SET &IN FROM INPUT 21300021 AGO .BB 21350021 .SUBB AIF ('&SYSLIST(&OP,2)' EQ '').LOOP 21400021 &IN SETA &SYSLIST(&OP,2) .SET &IN FROM INPUT 21450021 .BB AIF (&IN GT 0 AND &IN LT 5).D TEST RANGE 21500021 .BERR MNOTE '*** BYTES IN INCORRECTLY SPECIFIED DEFAULT USED ***' 21550021 &IN SETA 2 21600021 AGO .D 21650021 .LOOP ANOP .LOOP TO FIND &NAME IN DSECT 21700021 &IND SETA &IND+1 .SET UP LOOP COUNTER 21750021 AIF ('&ITEM(&IND)' EQ '&SYSLIST(&OP,1)').FOUND 21800021 AIF (&IND LT &ITEMNBR).LOOP .TEST FOR END OF DSECT 21850021 MNOTE '*** LOG ITEM NOT DEFINED ***' 21900021 MEXIT 21950021 .FOUND ANOP 22000021 &IBITS SETA &BITS(&IND) .SET UP NUMBER OF BITS SPEC 22050021 AIF (&IBITS-((&IBITS/8)*8) EQ 0).C .TEST FOR MULTIPLE OF 8 22100021 MNOTE '*** DATA NOT DEFINED A MULTIPLE OF 8 BITS ***' 22150021 MEXIT 22200021 .C ANOP 22250021 &IN SETA &IBITS/8 .COMPUTE NUMBER OF BYTES 22300021 AIF (&IN LT 1 OR &IN GT 4).BERR .TEST RANGE B IF IN ERROR 22350021 &ISHIFT SETA &SHIFT(&IND) .SET UP FOR TEST OF BYTE BNDR 22400021 AIF (&ISHIFT EQ 0).D .TEST FOR BYTE BNDRY !R IF YES 22450021 MNOTE '*** DATA NOT ALIGNED ON A BYTE BOUNDARY ***' 22500021 MEXIT 22550021 .* 22600021 .D ANOP 22650021 &NRENTS SETA &NRENTS+1 22700021 DC AL.12(&SYSLIST(&OP,1)-&DSECT),AL.4(9) 22750021 DC X'&IN',X'&OUT' 22800021 &IND SETA 0 22850021 AIF (&SUB EQ 0).OUTA 22900021 AIF (&OP LT N'&SYSLIST).LLOP 22950021 .OUTA ANOP 23000021 MEND 23050021 * 23100021 GBLC &DSECT,&CSECT 23150021 IFCST005 CSECT 23200021 &CSECT SETC 'IFCST005' 23250021 &DSECT SETC 'S3705' 23300021 S3705 DSECT 23350021 DS 0F 23400021 * 23450021 DSGEN (RECT,8),(OPSYS,8),(SWITCH,24),(RCDID,8),(SPARE1,16) 23500021 DSGEN (DATE,32),(TIME,32) 23550021 DSGEN (SPARE2,8),(CPUSER,24),(MODEL,16),(SPARE3,16) 23600021 DSGEN (CUA,16),(TERMN1,16),(TERMN2,32) 23650021 DSGEN (TERMN3,16),(RESID,16),(LINEADD,16),(RECMD,8),(RECID,8) 23700021 DSGEN (ISBOX,8),(BTUMOD,8),(REG100,8),(REG108,8), C23750021 (REG200,8),(REG208,8),(REG300,8),(REG308,8) 23800021 DSGEN (REG400,32),(REG500,32) 23850021 DSGEN (REG600,32) 23900021 IFCST005 CSECT 23950021 USING S3705,R2 24000021 USING *,R9 24050021 DC A(ENTRIES) 24100021 DC A(PEDIT) 24150021 REG8 DC F'0' 24200021 SCSIZE DC H'40' 24250021 * 24300021 * 24350021 R0 EQU 0 24400021 R1 EQU 1 24450021 R2 EQU 2 24500021 R3 EQU 3 24550021 R4 EQU 4 24600021 R5 EQU 5 24650021 R6 EQU 6 24700021 R7 EQU 7 24750021 R8 EQU 8 24800021 R9 EQU 9 24850021 R10 EQU 10 24900021 R11 EQU 11 24950021 R12 EQU 12 25000021 R13 EQU 13 25050021 R14 EQU 14 25100021 R15 EQU 15 25150021 * 25200021 L0 EQU 0 25250021 L1 EQU 1 25300021 L2 EQU 2 25350021 L3 EQU 3 25400021 L4 EQU 4 25450021 L5 EQU 5 25500021 L6 EQU 6 25550021 L7 EQU 7 25600021 L8 EQU 8 25650021 L9 EQU 9 25700021 L10 EQU 10 25750021 L12 EQU 12 25800021 L14 EQU 14 25850021 L16 EQU 16 25900021 L18 EQU 18 25950021 L20 EQU 20 26000021 L22 EQU 22 26050021 L23 EQU 23 26100021 L24 EQU 24 26150021 L26 EQU 26 26200021 L28 EQU 28 26250021 L46 EQU 46 26300021 H00 EQU X'00' 26350021 H01 EQU X'01' 26400021 H10 EQU X'10' 26450021 HEX01 EQU X'01' 26500021 HEX02 EQU X'02' 26550021 HEX03 EQU X'03' 26600021 HEX04 EQU X'04' 26650021 HEX08 EQU X'08' 26700021 HEX10 EQU X'10' 26750021 HEX11 EQU X'11' 26800021 HEX12 EQU X'12' 26850021 HEX13 EQU X'13' 26900021 HEX20 EQU X'20' 26950021 HEX40 EQU X'40' 27000021 HEX84 EQU X'84' 27050021 HEXC0 EQU X'C0' 27100021 DS 0D 27150021 XSAVE1 DC 5F'0' 27200021 HEX00 DC F'0' 27250021 * 27300021 * SET UP FROM - TO DATE 27350021 * 27400021 XDATE1 STM R5,R8,XSAVE1 27450021 CLC DATE(L4),HEX00 27500021 BE RETURN1 27550021 CLC L0(L4,R3),HEX00 27600021 BNE XDATE2 27650021 MVC L0(L4,R3),DATE 27700021 XDATE2 CLC DATE(L4),L0(R3) CK FOR LO DATE SM5193 27710021 BL SAVELOW LOWER SAVE IT SM5193 27720021 CLC DATE(L4),L4(R3) SM5193 27730021 BNH RETURN1 SM5193 27740021 SAVEHI MVC L4(L4,R3),DATE 27750021 B RETURN1 OM5193 27800021 SAVELOW MVC L0(L4,R3),DATE MOVE LOW DATE OM5193 27850021 B RETURN1 28100021 * 28150021 RETURN1 LM R5,R8,XSAVE1 28200021 BR R14 28250021 * 28300021 * THIS ROUTINE TEST FOR LINE ERRORS AND ADDS THEM 28350021 * TO SUMMARY COUNTER 28400021 * 28450021 ISLINE STM R5,R8,XSAVE1 SAVE THE REGISTERS 28500021 TM RECMD,H10 TEST FOR OTHER THAN LINE ERROR 28550021 BO RETURN1 YES, RETURN TO MAIN STREAM 28600021 TM RECMD,H01 NO, TEST FOR LINE ERROR 28650021 BO GOADDTL YES GO ADD TO SUMMARY COUNTER 28700021 TM RECMD,H00 TEST FOR LINE ERROR SECOND TYPE 28750021 BZ GOADDTL YES GO ADD TO SUMMARY COUNTER 28800021 B RETURN1 RETURN TO MAIN STREAM 28850021 * 28900021 GOADDTL SR R6,R6 SET REGISTERS TO ZERO 28950021 SR R8,R8 29000021 LR R5,R3 OM5193 29020021 BAL R8,ADDUP GO ADD TO COUNTERS 29050021 B RETURN1 RETURN TO MAIN STREAM 29100021 * 29150021 ADDUP LH R6,L0(R5) 29200021 LA R6,L1(R6) 29250021 STH R6,L0(R5) 29300021 BR R8 29350021 * 29400021 * THIS ROUTINE TESTS FOR BOX TYPE ERRORS.THEN ADDS TO 29450021 * THE SUMMARY COUNTERS FOR CHANNEL ADAPTER TYPE ERRORS 29500021 * OTHER ERROR COUNTERS SERVICED ARE FOR -ADDRESS EXCEPTION, 29550021 * IN/OUT CHECK,PROTECT CHECK,AND INVALID OP. 29600021 * 29650021 CHAN1 STM R5,R8,XSAVE1 SAVE THE REGISTERS 29700021 SR R5,R5 ZERO REGS 29750021 SR R6,R6 29800021 SR R8,R8 29850021 LR R5,R3 LOAD POINTER TO SUMMARY COUNTERS 29900021 TM RECMD,H10 IS THIS A BOX ERROR 29950021 BZ RETURN1 NO RETURN TO MAIN STREAM 30000021 CLI RECMD,HEX10 IS THIS A CHANNEL ADAPTER ERROR 30050021 BE CAT1 YES GO PROCESS COUNTERS 30100021 CLI RECMD,HEX12 IS THIS PROGRAM CHECK 30150021 BE PROGCK1 YES GO PROCESS COUNTERS 30200021 CLI RECMD,HEX11 IS THIS COMMUNICATIONS SCANNER 30250021 BE COMM1 YES GO PROCESS COUNTERS 30300021 CLI RECMD,HEX13 IS THIS MISCELLANEOUS PGM LVL1/3 30350021 BE MISC1 YES GO PROCESS COUNTERS 30400021 * 30450021 * PROCESS A CHANNEL ADAPTER TYPE ERROR 30500021 * 30550021 CAT1 CLI ISBOX,HEX84 IS THIS CHANN ADAPTER TYPE1 30600021 BE CHADT1 YES GO ADD TO PROPER COUNTERS 30650021 CLI ISBOX,HEX04 IS THIS CHANN ADAPTR TYPE2 PORT2 30700021 BE CHADT2P1 YES GO ADD TO PROPER COUNTERS 30750021 CLI ISBOX,HEX02 IS THIS CHANN ADAPTR TYPE2 PORT2 30800021 BE CHADT2P2 YES GO ADD TO PROPER COUNTERS 30850021 B RETURN1 NONE OF THE ABOVE RETURN 30900021 * 30950021 CHADT1 BAL R8,ADDUP GO ADD TO COUNTER 31000021 B RETURN1 RETURN TO MAIN STREAM 31050021 * 31100021 CHADT2P1 LA R5,L4(R5) POINT TO PROPER COUNTER 31150021 BAL R8,ADDUP GO ADD TO COUNTER 31200021 B RETURN1 RETURN TO MAIN STREAM 31250021 * 31300021 CHADT2P2 LA R5,L8(R5) POINT TO PROPER COUNTER 31350021 BAL R8,ADDUP GO ADD TO COUNTER 31400021 B RETURN1 RETURN TO MAIN STREAM 31450021 * 31500021 * PROCESS A PROGRAM CHECK 31550021 * 31600021 PROGCK1 CLI ISBOX,HEX40 IS THIS AN ADDRESS EXCEPTION CHK 31650021 BE ADDECK YES GO ADD TO PROPER COUNTERS 31700021 CLI ISBOX,HEX20 IS THIS IN/OUT INSTRUCTION RETRY 31750021 BE INOUT YES GO ADD TO PROPER COUNTERS 31800021 CLI ISBOX,HEX10 IS THIS PROTECTION CHECK 31850021 BE PROTCK YES GO ADD TO PROPER COUNTERS 31900021 CLI ISBOX,HEX08 IS THIS AN INVALID OP 31950021 BE INVOP YES GO ADD TO PROPER COUNTERS 32000021 B RETURN1 NONE OF THE ABOVE RETURN 32050021 * 32100021 ADDECK LA R5,L2(R5) POINT TO PROPER COUNTER 32150021 BAL R8,ADDUP GO ADD TO COUNTER 32200021 B RETURN1 RETURN TO MAIN STREAM 32250021 * 32300021 INOUT LA R5,L6(R5) POINT TO PROPER COUNTER 32350021 BAL R8,ADDUP GO ADD TO COUNTER 32400021 B RETURN1 RETURN TO MAIN STREAM 32450021 * 32500021 PROTCK LA R5,L10(R5) POINT TO PROPER COUNTER 32550021 BAL R8,ADDUP GO ADD TO COUNTER 32600021 B RETURN1 RETURN TO MAIN STREAM 32650021 * 32700021 INVOP LA R5,L12(R5) POINT TO PROPER COUNTER 32750021 BAL R8,ADDUP GO ADD TO COUNTER 32800021 B RETURN1 RETURN TO MAIN STREAM 32850021 * 32900021 * PROCESS COMMUNICATIONS SCANNER TYPE ERRORS 32950021 * 33000021 COMM1 CLI ISBOX,HEXC0 IS THE COMMUNICATIONS SCANNER 33050021 BE COMST1 YES, BRANCH TO ADD TO COUNTERS 33100021 CLI ISBOX,HEX40 IS THIS COMM SCANNER TYPE2CSB1 33150021 BE COMST2C1 YES, BRANCH TO ADD TO COUNTERS 33200021 CLI ISBOX,HEX20 IS THIS COMM SCAN TYPE2 CSB2 33250021 BE COMST2C2 YES BRANCH TO ADD 33300021 CLI ISBOX,HEX10 IS THIS SCANNER TYPE2 CSB3 33350021 BE COMST2C3 YES BRANCH TO ADD 33400021 CLI ISBOX,HEX08 IS THIS SCANNER TYPE2 CSB4 33450021 BE COMST2C4 YES BRANCH TO ADD TO COUNTERS 33500021 B RETURN1 THIS IS AN UNKNOWN TYPE 33550021 COMST1 LA R5,L14(R5) 33600021 BAL R8,ADDUP GO ADD TO SUMMARY COUNTER 33650021 B RETURN1 RETURN TO MAIN STREAM 33700021 COMST2C1 LA R5,L16(R5) ADJUST POINTER TO COUNTER 33750021 BAL R8,ADDUP GO ADD TO SUMMARY COUNTER 33800021 B RETURN1 RETURN TO MAIN STREAM 33850021 COMST2C2 LA R5,L20(R5) ADJUST POINTER TO COUNTER 33900021 BAL R8,ADDUP GO ADD TO SUMMARY COUNTER 33950021 B RETURN1 RETURN TO MAIN STREAM 34000021 COMST2C3 LA R5,L24(R5) ADJUST POINTER TO COUNTER 34050021 BAL R8,ADDUP GO ADD TO SUMMARY COUNTER 34100021 B RETURN1 RETURN TO MAIN STREAM 34150021 COMST2C4 LA R5,L26(R5) ADJUST POINTER TO COUNTER 34200021 BAL R8,ADDUP GO ADD TO SUMMARY COUNTER 34250021 B RETURN1 RETURN TO MAIN STREAM 34300021 * 34350021 * PROCESS MISCELLANEOUS PROGRAM ERRORS 34400021 * 34450021 MISC1 CLI ISBOX,HEX01 IS THIS MISCELLANEOUS PROGRAM 34500021 BE LEVEL1 YES GO PROCESS FOR SUMMARY 34550021 CLI ISBOX,HEX03 IS THIS MISCELLANEOUS LEVEL 2 34600021 BE LEVEL2 YES GO PROCESS FOR SUMMARY 34650021 B RETURN1 RETURN TO MAIN STREAM 34700021 * 34750021 LEVEL1 LA R5,L18(R5) ADJUST POINTER TO COUNTER 34800021 BAL R8,ADDUP GO ADD TO SUMMARY COUNTER 34850021 B RETURN1 RETURN 34900021 LEVEL2 LA R5,L22(R5) ADJUST POINTER TO COUNTER 34950021 BAL R8,ADDUP GO ADD TO SUMMARY COUNTER 35000021 B RETURN1 RETURN 35050021 ENTRIES DS 0F 35100021 SPECIAL XDATE1,00000000,SPACE=4 FROM - TO DAY AND YEAR 35150021 SPECIAL ISLINE,00000000,SPACE=1 COUNT LINE ERRORS 35200021 SPECIAL CHAN1,00000000,SPACE=28 35250021 DC X'FF' 35300021 * 35350021 PEDIT DS 0F 35400021 * 35450021 &DSECT SETC 'T3705' 35500021 &CSECT SETC 'PEDIT' 35550021 USING *,9 35600021 USING T3705,R2 35650021 DC A(PENTRY) 35700021 DC C'IFCST005' 35750021 YR9PTR DS F 35800021 YLABEL DS F 35850021 T3705 DSECT 35900021 DS 3H 35950021 DSGEN (YDUMA,16),(YNOREC,16) 36000021 DSGEN (YTYPE,8),(YCHAN,8),(YCUA,24),(YSER,24) 36050021 DSGEN (YCPU,16),(YSMSW,16) 36100021 DSGEN (YDID,8),(SUBID,16),(XXTRA,8),(YXTRA,32) OM5193 36120021 DSGEN (TDAY1,32),(TDAY2,32) 36150021 DSGEN (TTPLE,16),(TCATIE,16) 36200021 DSGEN (TAEC,16),(TCAT2P1,16) 36250021 DSGEN (TIOC,16),(TCAT2P2,16) 36300021 DSGEN (TPC,16),(TIOCC,16) 36350021 DSGEN (TCST1,16),(TCST2C1,16) 36400021 DSGEN (TMPL1,16),(TCST2C2,16) 36450021 DSGEN (TMPL3,16),(TCST2C3,16) 36500021 DSGEN (TCST2C4,16),(TSPARE1,16) 36550021 IFCST005 CSECT 36600021 XR9PTR DC F'0' 36650021 XLABELP DC F'0' 36700021 * 36750021 * NOP RETURN 36800021 * 36850021 SKIPPER BR R14 36900021 * 36950021 RETURN LM R5,R8,XSAVE 37000021 BR R14 37050021 * 37100021 * CHECK FOR CPU AND SERIAL NUMBER 37150021 * 37200021 SETCPUNO STM R5,R8,XSAVE SAVE REGS 37250021 SR R5,R5 CLEAR REG 5 37300021 IC R5,L0(R4) PICK UP MODEL NUMBER 37350021 SLL R5,L8 INTO 37400021 IC R5,L1(R4) R5 37450021 LTR R5,R5 TEST FOR ZERO 37500021 BNZ RETURN RETURN 37550021 LR R5,R3 PUT LINE ADDRESS IN R5 37600021 LA R6,L46 OFFSET IN REG 6 37650021 SR R5,R6 SUBTRACT OFFSET FROM POINTER 37700021 MVC L0(L9,R5),UNIVERS PUT IN UNIVARSAL 37750021 MVC L23(L6,R5),NONE PUT NONE 37800021 B RETURN RETURN 37850021 * 37900021 * SET THE DATE READY FOR PRINT 37950021 * 38000021 SETDATE UNPK XSAVE(L8),L1(L3,R4) UNPACK THE DATE 38050021 MVC L0(L3,R3),XSAVE+L5 MOVE DAY 38100021 MVC L6(L2,R3),XSAVE+L3 MOVE YEAR 38150021 BR R14 38200021 THEEND STM R14,R12,L12(R13) SAVE ALL REGISTERS 38250021 LR R12,R13 SAVE THE SAVE ADDRESS 38300021 LA R13,FSAVE POINT TO MY SAVE 38350021 ST R12,L4(R13) SET CHAINING POINTERS 38400021 ST R13,L8(R12) 38450021 L R3,L4(R2) PICK UP POINTER TO NEXT COUNTER 38500021 ST R3,L28(R12) SAVE POINTER IN REG SAVE 38550021 LH R0,SIZE PICK UP SIZE OF AREA 38600021 LR R1,R2 SET ADDRESS 38650021 FREEMAIN R,LV=(0),A=(1) 38700021 LTR R3,R3 ANY MORE COUNTERS 38750021 BZ RETURNO NO RETURN 38800021 LA R5,PENTRY+L10 POINT TO TOP ENTRY LESS 4 38850021 ST R5,YR9PTR 38900021 LA R5,LABELS-L1 POINT TO FIRST LABEL LESS 1 38950021 ST R5,YLABEL STORE IT IN TABLE 39000021 RETURNO L R13,L4(R13) PICK UP & 39050021 LM R14,R12,L12(R13) RESTORE REGS 39100021 BR R14 39150021 UNIVERS DC C'UNIVERSAL' 39200021 NONE DC C'NONE ' 39250021 * 39300021 DS 0D 39350021 XSAVE DC 5F'0' 39400021 FSAVE DS 18F 39450021 SIZE DC H'102' 39500021 PENTRY DS 0F 39550021 DC X'00010001' 39600021 DC X'00010001' 39650021 DC A(LABELS) 39700021 DC H'0' 39750021 DC X'01' 39800021 DC X'000B8B00' 39850021 LABEL ' ' 39900021 LINE (77,23),(1,88),SKIP=2 39950021 HEX YCPU,0,2B 40000021 HEX YSER,0,3B 40050021 ROUTINE YCPU,SETCPUNO 40100021 LABEL '---SUMMARY OF ENTRY TYPE - TCAM MDR DEVICE TYPE C40150021 3705 MODEL-','SERIAL NO.' 40200021 LINE (16,38),(16,13),SKIP=1 OM5193 40250021 ROUTINE YDUMA,SKIPPER 40450021 LABEL 'DAY YEAR','DAY YEAR' 40500021 LINE (16,13),(4,21),SKIP=2 40550021 ROUTINE TDAY1,SETDATE 40600021 ROUTINE TDAY2,SETDATE 40650021 LABEL 'DATE RANGE-','TO' OM5193 40700021 LINE (26,49),(5,46) 40750021 HEX YCUA,0,3B 40800021 CONVT YNOREC 40850021 LABEL 'CHANNEL UNIT ADDRESS','TOTAL NUMBER OF RECORDS' 40900021 LINE (20,1),(3,1) 40950021 CONVT TTPLE 41000021 LABEL 'T.P.LINE ERRORS' 41050021 LINE (33,49),(3,49),SKIP=1 41100021 CONVT TCATIE 41150021 CONVT TAEC 41200021 LABEL 'CHANNEL ADAPTER TYPE1 ERRORS','ADDRESS EXECPTION CHECK' 41250021 LINE 41300021 CONVT TCAT2P1 41350021 CONVT TIOC 41400021 LABEL 'CHANNEL ADAPTER TYPE2 PORT1','IN/OUT CHECK' 41450021 LINE 41500021 CONVT TCAT2P2 41550021 CONVT TPC 41600021 LABEL 'CHANNEL ADAPTER TYPE2 PORT2','PROTECTION CHECK' 41650021 LINE (82,1),(51,1) 41700021 CONVT TIOCC 41750021 LABEL 'INVALID OP CODE CHECK' 41800021 LINE (38,1),(3,1) 41850021 CONVT TCST1 41900021 LABEL 'COMMUNICATIONS SCANNER TYPE1' 41950021 LINE (38,44),(3,49) 42000021 CONVT TCST2C1 42050021 CONVT TMPL1 42100021 LABEL 'COMMUNICATIONS SCANNER TYPE2 CSB1','MISCELLANEOUS PROGRC42150021 AM LEVEL 1' 42200021 LINE 42250021 CONVT TCST2C2 42300021 CONVT TMPL3 42350021 LABEL 'COMMUNICATIONS SCANNER TYPE2 CSB2','MISCELLANEOUS PROGRC42400021 AM LEVEL 3' 42450021 LINE 42500021 CONVT TCST2C3 42550021 LABEL 'COMMUNICATIONS SCANNER TYPE2 CSB3' 42600021 LINE ,,SKIP=3 42650021 CONVT TCST2C4 42700021 LABEL 'COMMUNICATIONS SCANNER TYPE2 CSB4' 42750021 LINE ,(1,1) 42800021 ROUTINE TSPARE1,THEEND 42850021 LABEL ' ' 42900021 DC X'FF' 42950021 DC XL2'0000' 43000021 DC XL2'0018' 43050021 DC XL2'0000' 43100021 * 43150021 DC C'$' 43200021 LABELS EQU * 43250021 LSTART 43300021 END 43350021 ./ ADD SSI=01013330,NAME=IFCST006,SOURCE=0 TITLE 'IFCST006 - SUM TABLE - LINKNAME=IFCST006' 00050021 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 00100021 SPACE 2 00150021 MACRO 00200021 &NAME DSGEN 00250021 .* THIS MACRO GENERATES ONE DSECT WORD 00300021 .* FORMATTED FOR THE SUBJECT LOG RECORD 00350021 .* EACH OPERAND HAS TWO SUB LISTS. THE 00400021 .* FIRST IS THE NAME OF THE LOG ITEM 00450021 .* WHILE THE SECOND IS THE # OF BITS TO 00500021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 00550021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 00600021 .* UNUSED BIT GROUPS MUST BE GIVEN 00650021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 00700021 .* THE LOG ITEMS MAY THEN BE USED IN 00750021 .* THE CONVERSION MACRO INSTRUCTIONS. 00800021 GBLC &ITEM(1000) 00850021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 00900021 LCLB &ONLY1,&CTIND 00950021 LCLA &START1,&START2,&END1,&END2 01000021 LCLC &SYMBOL,&EQUSYM 01050021 LCLA &OP,&COUNT,&BYTE,&EQUCNT 01100021 ACTR 100000 01150021 .START AIF (N'&SYSLIST(&OP+1) LT 3).LOOP 01200021 AIF ('&SYSLIST(&OP+1,3)' EQ 'EQU').LOOP TEST FOR EQU 01250021 AIF ('&SYSLIST(&OP+1,3)' EQ '' AND '&SYSLIST(&OP+1,4)' EQ '').ERR1 01300021 AIF ('&SYSLIST(&OP+1,3)' EQ '' OR '&SYSLIST(&OP+1,4)' EQ '').ERR1 01350021 AIF ('&SYSLIST(&OP+1,3)' GT '&SYSLIST(&OP+1,4)').ERR3 01400021 &START1 SETA &SYSLIST(&OP+1,3) GET START COUNT OF 1 01450021 &START2 SETA &SYSLIST(&OP+1,4) GET FIRST END COUNT 01500021 AGO .SET2A BRANCH AROUND 01550021 .ERR1 MNOTE '**FIRST SYMBOL CONCATENATION INCOMPLETE**' 01600021 MEXIT 01650021 .SET2A AIF ('&SYSLIST(&OP+1,5)' EQ ''AND '&SYSLIST(&OP+1,6)' EQ '' X01700021 ).SET2 TEST FOR NO SECOND 01750021 AIF ('&SYSLIST(&OP+1,5)' EQ '' OR '&SYSLIST(&OP+1,6)' EQ '').ERR2 01800021 AIF ('&SYSLIST(&OP+1,5)' GT '&SYSLIST(&OP+1,6)').ERR3 01850021 &END1 SETA &SYSLIST(&OP+1,5) GET START COUNT OF 2 01900021 &END2 SETA &SYSLIST(&OP+1,6) GET END COUNT OF 2 01950021 AGO .LOOP 02000021 .SET2 ANOP 02050021 &ONLY1 SETB 1 INDICATE ONLY ONE CONCATENATION 02100021 AGO .LOOP 02150021 .ERR2 MNOTE '**SECOND SYMBOL CONCATENATION INCOMPLETE**' 02200021 MEXIT 02250021 .ERR3 MNOTE '**START GREATER THAN END CONCATENATION**' 02300021 MEXIT 02350021 .LOOP ANOP 02400021 &OP SETA &OP+1 02450021 AIF (&OP GT N'&SYSLIST).DONE TEST IF ALL DONE 02500021 &ITEMNBR SETA &ITEMNBR+1 02550021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 02600021 MNOTE '**NULL BIT COUNT FIELD**' 02650021 MEXIT 02700021 .OK1 ANOP 02750021 &SYMBOL SETC '&SYSLIST(&OP,1)' 02800021 AIF ('&SYMBOL' NE '').OK 02850021 * ***** LOG ITEM SYMBOL NOT PROVIDED ***** 02900021 AIF ('&SYSLIST(&OP,3)' NE 'EQU').CNT 02950021 AGO .START GET NEXT 03000021 .OK AIF (N'&SYSLIST(&OP) LT 3).NO3 TEST FOR OLD FORMAT 03050021 AIF ('&SYSLIST(&OP,3)' EQ 'EQU').EQU TEST FOR EQU 03100021 AIF (&ONLY1).OK2 TEST FOR ONLY ONE CONCAT 03150021 &SYMBOL SETC '&SYMBOL.&START1.&END1' GET 1 AND 2 CONCAT 03200021 AGO .NO3 BRANCH AROUND 03250021 .OK2 ANOP 03300021 &SYMBOL SETC '&SYMBOL.&START1' GET 1 CONCATENATED 03350021 .NO3 ANOP 03400021 &SYMBOL EQU *+&BYTE 03450021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL IN GLOBAL 03500021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 03550021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 03600021 .CNT ANOP 03650021 &CTIND SETB 1 SET COUNT INDICATOR 03700021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 03750021 &BYTE SETA &COUNT/8 03800021 AIF (N'&SYSLIST(&OP) LT 3).START TEST FOR OLD FORMAT 03850021 AIF (&ONLY1).TSTST TEST FOR ONLY ONE CONCAT 03900021 AIF (&END1 EQ &END2).TSTST TEST FOR SECOND END 03950021 &END1 SETA &END1+1 INCREMENT COUNT 04000021 &OP SETA &OP-1 DECREMENT INCREMENT 04050021 AGO .LOOP GENERATE NEXT 04100021 .TSTST ANOP 04150021 AIF (&START1 EQ &START2).LPDONE TEST FOR END 04200021 AIF (&ONLY1).NSET1 TEST FOR ONLY ONE CONCAT 04250021 &END1 SETA &SYSLIST(&OP,5) RE-INIT SECOND START COUNT 04300021 .NSET1 ANOP 04350021 &OP SETA &OP-1 DECREMENT INDEX 04400021 &START1 SETA &START1+1 INCREMENT FIRST COUNT 04450021 AGO .LOOP GO DO NEXT 04500021 .LPDONE ANOP 04550021 &ONLY1 SETB 0 CLEAR INDICATOR 04600021 AGO .START GO TEST FOR MORE SUB-LISTS 04650021 .DONE AIF (&COUNT-&COUNT/8*8 NE 0).ERR TEST FOR MULTIPLE OF EIGHT 04700021 AIF (&CTIND EQ 0).END NO DS IF NO COUNT 04750021 &COUNT SETA &COUNT/8 GET NUMBER OF BYTES 04800021 &NAME DS &COUNT.C 04850021 .END MEXIT 04900021 .ERR MNOTE '**BIT COUNT FLDS DO NOT TOTAL MULTIPLE OF 8**' 04950021 MEXIT 05000021 .EQU AIF ('&SYSLIST(&OP,4)' NE '').EQU1 TEST FOR NULL LABEL 05050021 .ERR4 MNOTE '**EQU OPERAND OMITTED OR NOT FOUND**' 05100021 MEXIT 05150021 .EQU1 AIF (&SYSLIST(&OP,2) LT 16).EQU2 COUNT OVER FIFTEEN 05200021 ***** THE FOLLOWING STATEMENT ***** 05250021 ***** NUMBER OF BITS EXCEED 15 - DO NOT USE AS BIN ***** 05300021 .EQU2 ANOP 05350021 &EQUCNT SETA 0 CLEAR COUNTER 05400021 &EQUSYM SETC '&SYSLIST(&OP,4)' GET EQU OPERAND 05450021 .EQULOP ANOP 05500021 &EQUCNT SETA &EQUCNT+1 INCREMENT INDEX 05550021 AIF ('&ITEM(&EQUCNT)' EQ '&EQUSYM').EQUOUT LABEL FOUND? 05600021 AIF (&EQUCNT EQ &ITEMNBR).ERR4 ALL TESTED? 05650021 AGO .EQULOP NO-GET NEXT 05700021 .EQUOUT ANOP 05750021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL NAME 05800021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) GET NUMBER OF BITS 05850021 &SHIFT(&ITEMNBR) SETA &SHIFT(&EQUCNT) GET SHIFT COUNT 05900021 &SYMBOL EQU &EQUSYM THIS SYMBOL EQUATED 05950021 AGO .START RETURN FOR NEXT 06000021 MEND 06050021 EJECT 06100021 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 06150021 SPACE 2 06200021 MACRO 06250021 &NAME LINE &DATA,&LABEL,&SKIP= 06300021 .* THIS MACRO ESTABLISHES THE MARGINS OR 06350021 .* COLUMN SETTINGS FOR EACH LINE. IT 06400021 .* GENERATES NECESSARY CARRIAGE CONTROL 06450021 .* ENTRIES. LASTLY IT DETERMINES THE 06500021 .* NUMBER OF ENTRIES ASSOCIATED WITH 06550021 .* THE PREVIOUS LINE AND STORES THAT # 06600021 .* INTO THE APPROPRIATE BYTE. 06650021 .* &DATA(1) - CHARACTER POSITION TO BEGIN 06700021 .* DATA. 06750021 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 06800021 .* DATA COLUMN STARTING CHARACTERS. 06850021 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 06900021 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 06950021 .* STARTING CHARACTERS. 07000021 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 07050021 .* TO BEGIN NEXT PRINTED LINE. 07100021 .* NEW ENTRIES ARE GENERATED ONLY WHEN 07150021 .* NECESSARY. OMISSION OF ITEMS MEANS 07200021 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 07250021 .* SETTINGS. A LINE MACRO IS REQUIRED 07300021 .* FOR EACH PRINTED LINE. IF NO SETTING 07350021 .* CHANGES ARE REQUIRED ALL OPERANDS 07400021 .* ARE OMITTED IN WHICH CASE ONLY THE 07450021 .* # OF ENTRIES FOR THE PREVIOUS LINE 07500021 .* IS COMPUTED. THIS MACRO MUST BE THE 07550021 .* FIRST MACRO INSTRUCTION ISSUED FOR 07600021 .* THE SUBJECT LINE 07650021 GBLA &DB,&DT,&LB,<,&NRENTS 07700021 GBLA &LASTCC,&INITIAL 07750021 GBLC &NRENTSX 07800021 GBLC &CARRCON 07850021 GBLB &TEST 07900021 LCLA &S 07950021 &NAME DS 0C 08000021 AIF (&INITIAL EQ 0).FIRSTLN 08050021 LINEND 08100021 AGO .NTFIRST 08150021 .FIRSTLN ANOP 08200021 &NRENTSX SETC 'N&SYSNDX' 08250021 &INITIAL SETA 1 08300021 N&SYSNDX EQU * 08350021 .NTFIRST ANOP 08400021 DC AL1(0) 08450021 AIF ('&DATA(1)' EQ '').CKDTABS 08500021 AIF (&DATA(1) EQ &DB).CKDTABS 08550021 &DB SETA &DATA(1) 08600021 AGO .AA 08650021 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 08700021 AIF (&DATA(2) EQ &DT).NCDATA 08750021 AGO .CC 08800021 .AA AIF ('&DATA(2)' EQ '').BB 08850021 AIF (&DATA(2) EQ &DT).BB 08900021 .CC ANOP 08950021 &DT SETA &DATA(2) 09000021 .BB DC XL2'FFFE' 09050021 DC FL1'&DB' 09100021 DC FL1'&DT' 09150021 &NRENTS SETA &NRENTS+1 09200021 .NCDATA ANOP 09250021 AIF ('&LABEL(1)' EQ '').CKLTABS 09300021 AIF (&LABEL(1) EQ &LB).CKLTABS 09350021 &LB SETA &LABEL(1) 09400021 AGO .AAA 09450021 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 09500021 AIF (&LABEL(2) EQ <).NCLABEL 09550021 AGO .CCC 09600021 .AAA AIF ('&LABEL(2)' EQ '').BBB 09650021 AIF (&LABEL(2) EQ <).BBB 09700021 .CCC ANOP 09750021 < SETA &LABEL(2) 09800021 .BBB DC XL2'FFFF' 09850021 DC FL1'&LB' 09900021 DC FL1'<' 09950021 &NRENTS SETA &NRENTS+1 10000021 .NCLABEL ANOP 10050021 AIF ('&SKIP' NE '').CONT 10100021 AIF (&TEST EQ 0).NOCHANG 10150021 &S SETA &LASTCC 10200021 AGO .DEFAULT 10250021 .CONT ANOP 10300021 AIF (&TEST EQ 0).AB 10350021 &S SETA &SKIP 10400021 .DEFAULT ANOP 10450021 ORG &CARRCON+3 10500021 DC AL.3(0),AL.2(&S),AL.3(1) 10550021 ORG 10600021 &LASTCC SETA &S 10650021 &TEST SETB 0 10700021 AGO .DD 10750021 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 10800021 A&SYSNDX DC XL2'FFFB' 10850021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 10900021 DC FL1'9' 10950021 &LASTCC SETA &SKIP 11000021 &TEST SETB 1 11050021 &CARRCON SETC 'A&SYSNDX' 11100021 &NRENTS SETA &NRENTS+1 11150021 .DD ANOP 11200021 .NOCHANG ANOP 11250021 MEND 11300021 EJECT 11350021 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 11400021 SPACE 2 11450021 MACRO 11500021 &NAME ROUTINE &LOGITEM,&RNAME 11550021 GBLA &NRENTS 11600021 GBLC &DSECT,&CSECT 11650021 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 11700021 DC AL2(&RNAME-&CSECT) 11750021 &NRENTS SETA &NRENTS+1 11800021 MEND 11850021 EJECT 11900021 * LABEL MACRO LABEL MACRO LABEL MACRO LABEL MACRO * 11950021 SPACE 2 12000021 MACRO 12050021 LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4 12100021 .* THIS MACRO ALLOWS UP TO FOUR LABELS TO 12150021 .* BE SPECIFIED FOR A GIVEN LINE. THE 12200021 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 12250021 .* TION MARKS. THE COLUMN AND LINE END 12300021 .* CONTROLS WILL BE INSERTED BY THE 12350021 .* MACRO. OMITTED OPERANDS MEAN NO 12400021 .* LABEL REQUIRED FOR RESPECTIVE 12450021 .* COLUMN. THIS MACRO WILL ALSO ALERT 12500021 .* THE PROGRAMMER TO EXACTLY WHERE THE 12550021 .* TABLE MUST BE BROKEN IF NECESSARY 12600021 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 12650021 GBLC &LABELS(1000) 12700021 GBLA &LABELNR 12750021 GBLA &NRENTS 12800021 LCLC &MARGIN,&TACK 12850021 LCLC &TEXT 12900021 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 12950021 &MARGIN SETC '*' 13000021 .LOOPOUT ANOP 13050021 &OP SETA &OP+1 13100021 &K SETA K'&SYSLIST(&OP) 13150021 AIF (&K GE 2).NORM 13200021 &K SETA 2 13250021 .NORM ANOP 13300021 &START SETA 2 13350021 AIF (&OP LT N'&SYSLIST).NOTLAST 13400021 &MARGIN SETC '$' 13450021 .NOTLAST ANOP 13500021 &NRCHAR SETA 8 13550021 &TACK SETC '' 13600021 .LOOPIN ANOP 13650021 &REMAIN SETA &K-&START 13700021 AIF (&REMAIN GE 8).MORE 13750021 &TACK SETC '&MARGIN' 13800021 &NRCHAR SETA &REMAIN 13850021 .MORE ANOP 13900021 &TEXT SETC '' 13950021 AIF (&REMAIN EQ 0).ENDTEXT 14000021 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 14050021 .ENDTEXT ANOP 14100021 &LABELNR SETA &LABELNR+1 14150021 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 14200021 &START SETA &START+8 14250021 AIF ('&TACK' EQ '').LOOPIN 14300021 AIF ('&TACK' EQ '*').LOOPOUT 14350021 MEND 14400021 MACRO 14450021 LSTART 14500021 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 14550021 .* OF THE TABLE IS TO BEGIN. 14600021 GBLC &LABELS(1000) 14650021 GBLA &LABELNR 14700021 LCLA &NDX 14750021 LINEND 14800021 .LOOP ANOP 14850021 &NDX SETA &NDX+1 14900021 DC C'&LABELS(&NDX)' 14950021 AIF (&NDX LT &LABELNR).LOOP 15000021 MEND 15050021 MACRO 15100021 LINEND 15150021 .* THIS MACRO IS USED ONLY BY THE LINE 15200021 .* MACRO TO SET THE NUMBER OF ENTRIES 15250021 .* ASSOCIATED WITH EACH LINE. 15300021 GBLA &NRENTS 15350021 GBLC &NRENTSX 15400021 ORG &NRENTSX 15450021 DC FL1'&NRENTS' 15500021 ORG 15550021 &NRENTS SETA 0 15600021 B&SYSNDX EQU * 15650021 &NRENTSX SETC 'B&SYSNDX' 15700021 MEND 15750021 SPACE 2 15800021 MACRO 15850021 SUM &LOGITEM,&MASK 15900021 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 15950021 .* FOR PROCESSING BY THE SUMMARY MODULE 16000021 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 16050021 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 16100021 .* THIS OPERAND SHOULD BE OMITTED FOR 16150021 .* SINGLE BIT ITEMS IN WHICH CASE THE 16200021 .* MASK WILL BE SET ACCORDING TO THE 16250021 .* OFF BYTE BIT DISPLACEMENT OF THE 16300021 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 16350021 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 16400021 GBLC &ITEM(1000),&DSECT 16450021 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 16500021 .LOOP ANOP 16550021 &NDX SETA &NDX+1 16600021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 16650021 AIF (&NDX LT &ITEMNBR).LOOP 16700021 MNOTE *,'LOGITEM NOT FOUND' 16750021 MEXIT 16800021 .FOUND ANOP 16850021 DC AL1(0) 16900021 &ISHIFT SETA &SHIFT(&NDX) 16950021 &IBITS SETA &BITS(&NDX) 17000021 AIF ('&MASK' EQ '').FORM 17050021 DC B'&MASK' 17100021 AGO .ITEM 17150021 .FORM ANOP 17200021 &BITNBR SETA &ISHIFT-7 17250021 &BITNBR SETA 0-&BITNBR 17300021 &M SETA 1 17350021 .LOOP2 ANOP 17400021 AIF (&BITNBR EQ 0).GOTIT 17450021 &M SETA &M*2 17500021 &BITNBR SETA &BITNBR-1 17550021 AGO .LOOP2 17600021 .GOTIT ANOP 17650021 DC AL1(&M) 17700021 .ITEM DC AL2(&LOGITEM-&DSECT) 17750021 DC AL2(&COUNTR) 17800021 &COUNTR SETA &COUNTR+1 17850021 MEND 17900021 MACRO 17950021 SPECIAL &ROUTINE,&PARAM,&SPACE= 18000021 .* THIS MACRO GENERATES A SPECIAL ROUTINE 18050021 .* ENTRY TO BE PROCESSED BY THE SUM. M. 18100021 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 18150021 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 18200021 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 18250021 .* INTERPRETED AS AN ARGUMENT OF THE 18300021 .* SPECIAL ROUTINE. 18350021 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 18400021 .* ALLOCATE FOR REQUIRED PROCESSING. 18450021 GBLC &CSECT 18500021 GBLA &COUNTR 18550021 LCLA &ADD 18600021 DC AL1(128) 18650021 DC BL.8'&PARAM' 18700021 DC AL2(&ROUTINE-&CSECT) 18750021 DC AL2(&COUNTR) 18800021 &ADD SETA 1 18850021 AIF ('&SPACE' EQ '').NORM 18900021 &ADD SETA &SPACE 18950021 .NORM ANOP 19000021 &COUNTR SETA &COUNTR+&ADD 19050021 MEND 19100021 EJECT 19150021 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 19200021 SPACE 2 19250021 MACRO 19300021 HEX &LOGITEM,&SKIP$OR,&BYTES 19350021 .* THIS MACRO FACILITATES GENERATION OF THE 19400021 .* TABLE ENTRIES SPECIFYING HEX TYPE 19450021 .* CONVERSIONS. 19500021 .* &LOGITEM - NAME OF DATA ITEM TO BE 19550021 .* CONVERTED 19600021 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 19650021 .* MULTIPLE PRINT OR NBR OF SPACES TO 19700021 .* BACK UP FROM COLUMN FOR START OF 19750021 .* PRINTING. THE LETTER B PRECEEDS THE 19800021 .* NUMBER (B8) IF THE LATTER OPTION IS 19850021 .* DESIRED. OMISSION OF THIS OPERAND 19900021 .* FORCES OPTION 2 WITH BACKUP SPACING 19950021 .* EQUAL TO THE NUMBER OF BYTES SPECI- 20000021 .* FIED BY THE NEXT OPERAND (TWICE THIS 20050021 .* NUMBER IF SUFFIX IS EXPLICITLY OR 20100021 .* IMPLICITLY B). 20150021 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 20200021 .* PROCESS. THIS NUMBER IS SUFFIXED 20250021 .* WITH AN L,R, OR B TO STIPULATE 20300021 .* PRINTING OF THE LEFT HALF, RIGHT 20350021 .* HALF, OR BOTH HALVES OF THE BYTE 20400021 .* RESPECTIVELY. OMISSION OF THIS 20450021 .* OPERAND DEFAULTS TO B WITH THE NUM- 20500021 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 20550021 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 20600021 .* SARY. THIS MACRO MUST BE THE FIRST 20650021 .* MACRO INSTRUCTION ISSUED FOR THE 20700021 .* SUBJECT LINE(S). 20750021 GBLC &ITEM(1000),&DSECT 20800021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 20850021 LCLB &B 20900021 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 20950021 LCLC &S,&LETTER 21000021 .LOOP ANOP 21050021 &NDX SETA &NDX+1 21100021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 21150021 AIF (&NDX LT &ITEMNBR).LOOP 21200021 MNOTE *,'LOG ITEM NOT DEFINED' 21250021 MEXIT 21300021 .FOUND ANOP 21350021 &ISHIFT SETA &SHIFT(&NDX) 21400021 &IBITS SETA &BITS(&NDX) 21450021 &CODE SETA 1 21500021 &K SETA K'&BYTES 21550021 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 21600021 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 21650021 MEXIT 21700021 .OK AIF ('&BYTES' EQ '').USEDEFN 21750021 &LETTER SETC '&BYTES'(&K,1) 21800021 &S SETC '&BYTES'(1,&K-1) 21850021 &BYTESP SETA &S 21900021 AIF ('&LETTER' EQ 'B').BOTH 21950021 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 22000021 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 22050021 MEXIT 22100021 .USEDEFN ANOP 22150021 &BYTESP SETA &IBITS/8 22200021 .BOTH AIF (&ISHIFT NE 0).ERR 22250021 &CODE SETA 3 22300021 &T SETA &BYTESP*2-1 22350021 &S SETC '&T' 22400021 .OK2 AIF (&ISHIFT EQ 0).L 22450021 &CODE SETA 2 22500021 .L ANOP 22550021 &B SETB 1 22600021 AIF ('&SKIP$OR' EQ '').BACKUP 22650021 &K SETA K'&SKIP$OR 22700021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 22750021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 22800021 .BACKUP ANOP 22850021 &NRENTS SETA &NRENTS+1 22900021 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 22950021 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 23000021 .OUT ANOP 23050021 MEND 23100021 SPACE 2 23150021 GBLC &DSECT 23200021 GBLC &CSECT 23250021 &DSECT SETC 'C3670' 23300021 &CSECT SETC 'IFCST006' 23350021 IFCST006 CSECT 23400021 C3670 DSECT 23450021 DSGEN (XDUM1,8),(XRELN,8),(XDUM2,8),(XDMSW,1),(XSHRT,1), X23500021 (XSWS,6) 23550021 DSGEN (TID,8),(TDUM1,16),(TCHAR,8) 23600021 DSGEN (XDATE,32),(XTIME,32) 23650021 DSGEN (TDUM2,8),(XSER,24),(XMODEL,16),(TDUM3,16) 23700021 DSGEN (TCUA,16),(DEVSER,16) 23750021 DATA EQU * 23800021 DSGEN (STAT1,8),(STAT2,8),(STAT3,8),(STAT4,8) 23850021 DSGEN (STAT5,8),(STAT6,8),(STAT7,8),(STAT8,8) 23900021 DSGEN (STAT9,8),(XDUMX,24) 23950021 IFCST006 CSECT 24000021 ENTRYPTR DC A(EDIT) 24050021 DC A(PEDIT) POINTER TO EDIT SECTION 24100021 REG9 DS F 24150021 SCSIZE DC H'23' 24200021 ROUTINES EQU * 24250021 LOGREG EQU 2 24300021 @FAILCCW EQU * 24350021 USING *,15 24400021 STM 14,12,12(13) 24450021 SR 7,7 24500021 IC 7,FCCW(LOGREG) 24550021 FCCW EQU 48 24600021 B COMMON 24650021 @UNIT EQU * 24700021 USING *,15 24750021 STM 14,12,12(13) 24800021 SR 7,7 24850021 IC 7,91(LOGREG) 24900021 B COMMON 24950021 @DEVADR EQU * 25000021 USING *,15 25050021 STM 14,12,12(13) 25100021 SR 7,7 LOAD DEVICE ADDRESS 25150021 IC 7,74(LOGREG) 25200021 SLL 7,8 25250021 IC 7,75(LOGREG) 25300021 COMMON EQU * 25350021 BALR 12,0 25400021 USING *,12 25450021 L 1,R9ADR 25500021 L 9,0(1) 25550021 SR 1,1 25600021 IC 1,1(9) ITERATIONS 25650021 LR 5,1 25700021 SLL 5,2 25750021 AR 5,3 COMPUTE COUNTER ADDRESS PAST TEXT 25800021 LH 4,=X'FFFF' 25850021 LOOP1 CH 4,0(3) TEST FOR EMPTY/FULL 25900021 BNE STORE 25950021 CH 7,2(3) FULL - COMPARE WITH STORED DATA 26000021 BE BUMP 26050021 LA 3,4(3) NOT SAME - GO TO NEXT TEXT CELL 26100021 LA 5,2(5) 26150021 BCT 1,LOOP1 26200021 B FULL ALL CELLS FULL - NO MATCH 26250021 STORE EQU * 26300021 STH 4,0(3) STORE NEW TEXT DATA 26350021 STH 7,2(3) 26400021 BUMP EQU * 26450021 LH 6,0(5) BUMP COUNTER BY ONE 26500021 AH 6,=H'1' 26550021 STH 6,0(5) 26600021 FULL EQU * 26650021 LM 14,12,12(13) 26700021 BR 14 26750021 * 26800021 * SAVE DATE RANGE 26850021 * 26900021 DROP 15 26950021 DROP 12 27000021 USING C3670,R2 27050021 USING IFCST006,R9 27100021 * 27150021 XDATE1 CLC XDATE(L4),HEX00 IS DATE ZERO 27200021 BE EXIT 27250021 CLC L0(L4,R3),HEX00 IS LOW DATE = ZERO ? 27300021 BNE XDATE2 27350021 MVC L0(L4,R3),XDATE IF YES MOVE IN DATE 27400021 XDATE2 EQU * 27450021 CLC XDATE(L4),L0(R3) CHECK AGAINST LOW DATE 27500021 BL SAVELO BR-THIS IS LOWER 27550021 CLC XDATE(L4),L4(R3) CHECK AGAIN HI 27600021 BH SAVEHI 27650021 EXIT BR R14 RETURN 27700021 SAVEHI MVC L4(L4,R3),XDATE SAVE HI DATE IN COUNTER 27750021 B EXIT 27800021 SAVELO MVC L0(L4,R3),XDATE SAVE LO 27850021 B EXIT 27900021 ALLFFF STM R5,R8,SSAVE SAVE REGS 43068 27950021 LA R4,DATA POINT TO DATA 43068 28000021 AG CLC L0(L4,R4),HFFF IS WORD ALL FF"S 43068 28050021 BNE OK BR - NO 43068 28100021 LA R5,QUIT-L6 POINT TO END 43068 28150021 ST R5,REG9 STORE IN LIST 43068 28200021 OK LM R5,R8,SSAVE RESTORE REGS 43068 28250021 BR R14 EXIT 43068 28300021 SUMST1 ST R5,SAVE SAVE REGS 28350021 SR R5,R5 CLEAR R5 28400021 IC R5,STAT1 MOVE COUNTER TO R5 28450021 B ADDSUM GO SUMMARIZE 28500021 SUMST2 ST R5,SAVE SAVE REGS 28550021 SR R5,R5 CLEAR R5 28600021 IC R5,STAT2 MOVE COUNTER TO R5 28650021 B ADDSUM GO SUMMARIZE 28700021 SUMST3 ST R5,SAVE SAVE REGS 28750021 SR R5,R5 CLEAR R5 28800021 IC R5,STAT3 MOVE COUNTER TO R5 28850021 B ADDSUM GO SUMMARIZE 28900021 SUMST4 ST R5,SAVE SAVE REGS 28950021 SR R5,R5 CLEAR R5 29000021 IC R5,STAT4 MOVE COUNTER TO R5 29050021 B ADDSUM GO SUMMARIZE 29100021 SUMST5 ST R5,SAVE SAVE REGS 29150021 SR R5,R5 CLEAR R5 29200021 IC R5,STAT5 MOVE COUNTER TO R5 29250021 B ADDSUM GO SUMMARIZE 29300021 SUMST6 ST R5,SAVE SAVE REGS 29350021 SR R5,R5 CLEAR R5 29400021 IC R5,STAT6 MOVE COUNTER TO R5 29450021 B ADDSUM GO SUMMARIZE 29500021 SUMST7 ST R5,SAVE SAVE REGS 29550021 SR R5,R5 CLEAR R5 29600021 IC R5,STAT7 MOVE COUNTER TO R5 29650021 B ADDSUM GO SUMMARIZE 29700021 SUMST8 ST R5,SAVE SAVE REGS 29750021 SR R5,R5 CLEAR R5 29800021 IC R5,STAT8 MOVE COUNTER TO R5 29850021 B ADDSUM GO SUMMARIZE 29900021 SUMST9 ST R5,SAVE SAV& R&GS 29950021 SR R5,R5 CLEAR R5 30000021 IC R5,STAT9 MOVE COUNTER TO R5 30050021 B ADDSUM GO SUMMARIZE 30100021 ADDSUM MVC SAVCOUNT(L4),L0(R3) MOVE TO WORD BOUNDRY 30150021 A R5,SAVCOUNT ADD TO SUMMARIZE 30200021 ST R5,SAVCOUNT PUT BACK IN WORD 30250021 MVC L0(L4,R3),SAVCOUNT PUT BACK IN SUMMARY CTR 30300021 L R5,SAVE RESTORE REG 30350021 BR R14 RETURN TO FLOW 30400021 CHKSHORT STM R6,R7,SAVE SAVE REGS 30450021 TM XDMSW,SHORT Q/ IS RECORD SHORT FORM 30500021 BNO GOBACK NO--RETURN 30550021 LA R6,QUIT-L6 ADDR TO END ON 30600021 ST R6,REG9 STORE IN REG9 30650021 GOBACK LM R6,R7,SAVE RESTORE REGS 30700021 BR R14 RETURN 30750021 SSAVE DC 4F'0' SMALL SAVE AREA 43068 30800021 HFFF DC X'FFFFFFFF' 43068 30850021 HEX00 DC F'0' 30900021 R9ADR DC A(REG9) 30950021 * SPECIAL ROUTINES REQUIRED 31000021 SAVE DC 5F'0' SAVE AREA 31050021 SAVCOUNT DC 1F'0' WORD TO ALIGN COUNTERS 31100021 SHORT EQU X'40' 31150021 EDIT EQU * 31200021 SPECIAL XDATE1,0,SPACE=4 31250021 SUM XSHRT 31300021 SPECIAL CHKSHORT,0,SPACE=0 31350021 SPECIAL SUMST1,0,SPACE=2 31400021 SPECIAL SUMST2,0,SPACE=2 31450021 SPECIAL SUMST3,0,SPACE=2 31500021 SPECIAL SUMST4,0,SPACE=2 31550021 SPECIAL SUMST5,0,SPACE=2 31600021 SPECIAL SUMST6,0,SPACE=2 31650021 SPECIAL SUMST7,0,SPACE=2 31700021 SPECIAL SUMST8,0,SPACE=2 31750021 QUIT DC XL1'FF' 31800021 * 31850021 D3670 DSECT 31900021 DS 3H 31950021 DSGEN (YDUMA,16),(YNOREC,16) 32000021 DSGEN (YTYPE,8),(YCHAN,8),(YCUA,24),(YSER,24) 32050021 DSGEN (YCPU,16),(YSMSW,16) 32100021 DSGEN (YDID,8),(SUBID,16),(XXTRA,8),(YXTRA,32) 32150021 DSGEN (YLOD,32),(YHID,32) 32200021 DSGEN (YSHST,16) 32250021 DSGEN (YSTAT1,32),(YSTAT2,32) 32300021 DSGEN (YSTAT3,32),(YSTAT4,32) 32350021 DSGEN (YSTAT5,32),(YSTAT6,32) 32400021 DSGEN (YSTAT7,32),(YSTAT8,32) 32450021 DSGEN (YSTAT9,32) 32500021 IFCST006 CSECT 32550021 PEDIT DS 0F 32600021 &DSECT SETC 'D3670' 32650021 &CSECT SETC 'PEDIT' 32700021 USING *,R9 32750021 DC A(PENTRY) 32800021 DC C'IFCST006' 32850021 YR9PTR DC F'0' 32900021 YLABELP DC F'0' 32950021 DS 0F 33000021 CONVERT STM R5,R8,XSAVE SAVE REGS 33050021 MVC CONVWORD(L4),L0(R4) MOVE COUNTER 33100021 L R5,CONVWORD LOAD COUNTER 33150021 CONVX CVD R5,WORK CONVERT IT 33200021 UNPK L0(L5,R3),WORK+L5(L3) UNPACK 33250021 MVZ L4(L1,R3),L0(R3) MOVE ZONES 33300021 RETURNA LM R5,R8,XSAVE RESTORE 33350021 RETURNB BR R14 RETURN 33400021 CONV2 STM R5,R8,XSAVE SAVE REGS 33450021 SR R5,R5 33500021 IC R5,L0(R4) FETCH 33550021 SLL R5,L8 33600021 IC R5,L1(R4) DATA 33650021 B CONVX 33700021 * 33750021 SKIPPER BR R14 33800021 * 33850021 SETCPUNO STM R5,R8,XSAVE SAVE REGS 33900021 SR R5,R5 CLEAR R5 33950021 IC R5,0(R4) PICK UP 34000021 SLL R5,L8 CPU TYPE 34050021 IC R5,L1(R4) FIELD 34100021 LTR R5,R5 IS IT ZERO? 34150021 BNZ RETURNA NO, HEX IS GOOD, RETURN 34200021 LA R6,L64 ELSE, BACK UP DATA PTR 34250021 SR R3,R6 TO PUT IN NEW INFO 34300021 MVC 0(L9,R3),UNIVERS SAY MODEL UNIVERSAL 34350021 MVC L32(L6,R3),NONE SAY SERIAL NO. NONE 34400021 B RETURNA RETURN 34450021 * 34500021 SETDATE OI L3(R4),HEX0F PUT ON PROPER SIGN 34550021 UNPK WORK(L8),L0(L4,R4) UNPACK DATE 34600021 MVZ WORK+L7(L1),WORK SET ZONE 34650021 MVC L0(L3,R3),WORK+L5 MOVE DAY 34700021 MVC L5(L2,R3),WORK+L3 MOVE YEAR 34750021 BR R14 34800021 * 34850021 * FREE COUNTERS 34900021 * 34950021 FREECORE STM R14,R12,L12(R13) SAVE REGS 35000021 LR R12,R13 SAVE SAVE PTR 35050021 LA R13,FSAVE SET ADDRESS MYSAVE 35100021 ST R12,L4(R13) CHAIN SAVE AREAS TOGETHER 35150021 ST R13,L8(R12) 35200021 L R3,L4(R2) PICK UP NXT COUNTER PTR 35250021 ST R3,L28(R12) PRESET REG IN CALLERS AREA 35300021 LH R0,SIZE PICK UP COUNTER LENGTH 35350021 LR R1,R2 SET ADDRESS TO COUNTER 35400021 * 35450021 FREEMAIN R,LV=(0),A=(1) FREE COUNTER 35500021 * 35550021 LTR R3,R3 TEST FOR LAST COUNTER IN 35600021 BZ RETURN0 BR-LAST 35650021 LA R5,PENTRY+L10 RESET R9 & 35700021 LA R6,LABLAREA-L1 LABEL POINTER TO START 35750021 ST R5,YR9PTR 35800021 ST R6,YLABELP 35850021 RETURN0 L R13,L4(R13) RESET TO CALLERS REGS 35900021 LM R14,R12,L12(R13) RESTORE REGS 35950021 BR R14 RETURN 36000021 WORK DS D 36050021 XSAVE DS 4F 36100021 * 36150021 FSAVE DS 18F 36200021 NONE DC C'NONE ' 36250021 UNIVERS DC C'UNIVERSAL' 36300021 CONVWORD DC 1F'0' 36350021 HEXFFFF DC X'FFFF' 36400021 SIZE DC H'76' 36450021 HEX0F EQU X'0F' 36500021 L0 EQU 0 36550021 L1 EQU 1 36600021 L2 EQU 2 36650021 L3 EQU 3 36700021 L4 EQU 4 36750021 L5 EQU 5 36800021 L6 EQU 6 36850021 L7 EQU 7 36900021 L8 EQU 8 36950021 L9 EQU 9 37000021 L10 EQU 10 37050021 L12 EQU 12 37100021 * 37150021 * 37200021 R0 EQU 0 37250021 R1 EQU 1 37300021 R2 EQU 2 37350021 R3 EQU 3 37400021 R4 EQU 4 37450021 R5 EQU 5 37500021 R6 EQU 6 37550021 R7 EQU 7 37600021 R8 EQU 8 37650021 R9 EQU 9 37700021 R10 EQU 10 37750021 R11 EQU 11 37800021 R12 EQU 12 37850021 R13 EQU 13 37900021 R14 EQU 14 37950021 R15 EQU 15 38000021 L28 EQU 28 38050021 L32 EQU 32 38100021 L64 EQU 64 38150021 * 38200021 * 38250021 PENTRY DS 0F 38300021 DC X'00010001' 38350021 DC X'00010001' 38400021 DC A(LABLAREA) 38450021 DC H'0' 38500021 * 38550021 DC X'01' 38600021 DC X'000B8B00' SKIP TO CHANNEL 1 38650021 * 38700021 LABEL ' ' 38750021 LINE (57,32),(23,26),SKIP=1 38800021 HEX YCPU,0,2B 38850021 HEX YSER,0,3B 38900021 ROUTINE YCPU,SETCPUNO 38950021 LABEL 'DAY YEAR DAY YEAR','MODEL-','SERIAL NO.' 39000021 LINE (23,11),(1,30),SKIP=1 39050021 ROUTINE YLOD,SETDATE 39100021 ROUTINE YHID,SETDATE 39150021 LABEL 'OUTBOARD DATE RANGE -','TO' 39200021 * 39250021 LINE (53,50),(1,59),SKIP=1 39300021 ROUTINE SUBID,CONV2 39350021 LABEL 'SUMMARY OF MISCELLANEOUS RECORDS FOR DEVICE SERIAL', C39400021 'DEVICE 3670 REMOTE' 39450021 LINE (19,50),(1,25) 39500021 ROUTINE YNOREC,CONV2 39550021 LABEL 'SUMMARY INCLUDES','TOTAL RECORDS' 39600021 LINE ,,SKIP=2 39650021 ROUTINE YSHST,CONV2 39700021 LABEL 'SUMMARY INCLUDES','SHORT FORMAT RECORDS' 39750021 LINE (28,41),(1,40),SKIP=2 39800021 LABEL 'COMMUNICATIONS ADAPTER','DESK CONSOLE' 39850021 LINE ,,SKIP=1 39900021 ROUTINE YSTAT1,CONVERT 39950021 ROUTINE YSTAT4,CONVERT 40000021 LABEL 'PARITY ERROR COUNTER','PARITY ERROR COUNTER' 40050021 LINE 40100021 ROUTINE YSTAT2,CONVERT 40150021 ROUTINE YSTAT5,CONVERT 40200021 LABEL 'RECEIVE OVERRUN COUNTER','SERIAL XMIT ERROR COUNTER' 40250021 LINE ,,SKIP=2 40300021 ROUTINE YSTAT3,CONVERT 40350021 ROUTINE YSTAT6,CONVERT 40400021 LABEL 'TIMEOUT ERROR COUNTER','NO RELEASE ERROR COUNTER' 40450021 LINE ,(30,60),SKIP=2 40500021 LABEL 'PRINTER/KEYBOARD' 40550021 LINE ,(1,40),SKIP=1 40600021 ROUTINE YSTAT7,CONVERT 40650021 ROUTINE YSTAT8,CONVERT 40700021 LABEL 'ATTACHMENT ERROR COUNTER','DEVICE ERROR COUNTER' 40750021 LINE ,,SKIP=1 40800021 ROUTINE YDUMA,FREECORE 40850021 LABEL ' ' 40900021 DC X'FF0000000000' 40950021 DC C'$' 41000021 LABLAREA EQU * 41050021 LSTART 41100021 END 41150021 ./ ADD SSI=01010208,NAME=IFCST008,SOURCE=0 SPACE 2 00060020 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 00120020 MACRO 00180020 &NAME LINE &DATA,&LABEL,&SKIP= 00240020 .* THIS MACRO ESTABLISHES THE MARGINS OR 00300020 .* COLUMN SETTINGS FOR EACH LINE. IT 00360020 .* GENERATES NECESSARY CARRIAGE CONTROL 00420020 .* ENTRIES. LASTLY IT DETERMINES THE 00480020 .* NUMBER OF ENTRIES ASSOCIATED WITH 00540020 .* THE PREVIOUS LINE AND STORES THAT # 00600020 .* INTO THE APPROPRIATE BYTE. 00660020 .* &DATA(1) - CHARACTER POSITION TO BEGIN 00720020 .* DATA. 00780020 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 00840020 .* DATA COLUMN STARTING CHARACTERS. 00900020 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 00960020 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 01020020 .* STARTING CHARACTERS. 01080020 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 01140020 .* TO BEGIN NEXT PRINTED LINE. 01200020 .* NEW ENTRIES ARE GENERATED ONLY WHEN 01260020 .* NECESSARY. OMISSION OF ITEMS MEANS 01320020 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 01380020 .* SETTINGS. A LINE MACRO IS REQUIRED 01440020 .* FOR EACH PRINTED LINE. IF NO SETTING 01500020 .* CHANGES ARE REQUIRED ALL OPERANDS 01560020 .* ARE OMITTED IN WHICH CASE ONLY THE 01620020 .* # OF ENTRIES FOR THE PREVIOUS LINE 01680020 .* IS COMPUTED. THIS MACRO MUST BE THE 01740020 .* FIRST MACRO INSTRUCTION ISSUED FOR 01800020 .* THE SUBJECT LINE 01860020 GBLA &DB,&DT,&LB,<,&NRENTS 01920020 GBLA &LASTCC,&INITIAL 01980020 GBLC &NRENTSX 02040020 GBLC &CARRCON 02100020 GBLB &TEST 02160020 LCLA &S 02220020 &NAME DS 0C 02280020 AIF (&INITIAL EQ 0).FIRSTLN 02340020 LINEND 02400020 AGO .NTFIRST 02460020 .FIRSTLN ANOP 02520020 &NRENTSX SETC 'N&SYSNDX' 02580020 &INITIAL SETA 1 02640020 N&SYSNDX EQU * 02700020 .NTFIRST ANOP 02760020 DC AL1(0) 02820020 AIF ('&DATA(1)' EQ '').CKDTABS 02880020 AIF (&DATA(1) EQ &DB).CKDTABS 02940020 &DB SETA &DATA(1) 03000020 AGO .AA 03060020 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 03120020 AIF (&DATA(2) EQ &DT).NCDATA 03180020 AGO .CC 03240020 .AA AIF ('&DATA(2)' EQ '').BB 03300020 AIF (&DATA(2) EQ &DT).BB 03360020 .CC ANOP 03420020 &DT SETA &DATA(2) 03480020 .BB DC XL2'FFFE' 03540020 DC FL1'&DB' 03600020 DC FL1'&DT' 03660020 &NRENTS SETA &NRENTS+1 03720020 .NCDATA ANOP 03780020 AIF ('&LABEL(1)' EQ '').CKLTABS 03840020 AIF (&LABEL(1) EQ &LB).CKLTABS 03900020 &LB SETA &LABEL(1) 03960020 AGO .AAA 04020020 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 04080020 AIF (&LABEL(2) EQ <).NCLABEL 04140020 AGO .CCC 04200020 .AAA AIF ('&LABEL(2)' EQ '').BBB 04260020 AIF (&LABEL(2) EQ <).BBB 04320020 .CCC ANOP 04380020 < SETA &LABEL(2) 04440020 .BBB DC XL2'FFFF' 04500020 DC FL1'&LB' 04560020 DC FL1'<' 04620020 &NRENTS SETA &NRENTS+1 04680020 .NCLABEL ANOP 04740020 AIF ('&SKIP' NE '').CONT 04800020 AIF (&TEST EQ 0).NOCHANG 04860020 &S SETA &LASTCC 04920020 AGO .DEFAULT 04980020 .CONT ANOP 05040020 AIF (&TEST EQ 0).AB 05100020 &S SETA &SKIP 05160020 .DEFAULT ANOP 05220020 ORG &CARRCON+3 05280020 DC AL.3(0),AL.2(&S),AL.3(1) 05340020 ORG 05400020 &LASTCC SETA &S 05460020 &TEST SETB 0 05520020 AGO .DD 05580020 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 05640020 A&SYSNDX DC XL2'FFFB' 05700020 DC AL.3(0),AL.2(&SKIP),AL.3(1) 05760020 DC FL1'9' 05820020 &LASTCC SETA &SKIP 05880020 &TEST SETB 1 05940020 &CARRCON SETC 'A&SYSNDX' 06000020 &NRENTS SETA &NRENTS+1 06060020 .DD ANOP 06120020 .NOCHANG ANOP 06180020 MEND 06240020 EJECT 06300020 SPACE 2 06360020 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 06420020 MACRO 06480020 &NAME ROUTINE &LOGITEM,&RNAME 06540020 GBLC &DSECT,&CSECT 06600020 GBLC &ITEM(1000) 06660020 GBLA &SHIFT(1000),&ITEMNBR 06720020 GBLA &NRENTS 06780020 LCLA &ISHIFT,&NDX 06840020 .LOOP ANOP 06900020 &NDX SETA &NDX+1 06960020 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 07020020 AIF (&NDX LT &ITEMNBR).LOOP 07080020 MNOTE *,'LOG ITEM NOT DEFINED' 07140020 MEXIT 07200020 .FOUND ANOP 07260020 &ISHIFT SETA &SHIFT(&NDX) 07320020 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 07380020 DC AL.4(&ISHIFT),AL.12(&RNAME-&CSECT) 07440020 &NRENTS SETA &NRENTS+1 07500020 MEND 07560020 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 07620020 SPACE 2 07680020 MACRO 07740020 &NAME DSGEN &X1,&X2,&X3,&X4,&X5,&X6,&X7,&X8,&X9,&X10,&X11,&X12,&X13,X07800020 &X14,&X15,&X16,&X17,&X18,&X19,&X20,&X21,&X22,&X23,&X24, X07860020 &X25,&X26,&X27,&X28,&X29,&X30,&X31,&X32 07920020 .* THIS MACRO GENERATES ONE DSECT WORD 07980020 .* FORMATTED FOR THE SUBJECT LOG RECORD 08040020 .* EACH OPERAND HAS TWO SUB LISTS. THE 08100020 .* FIRST IS THE NAME OF THE LOG ITEM 08160020 .* WHILE THE SECOND IS THE # OF BITS TO 08220020 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 08280020 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 08340020 .* UNUSED BIT GROUPS MUST BE GIVEN 08400020 .* DUMMY NAMES. THE NAMES PROVIDED FOR 08460020 .* THE LOG ITEMS MAY THEN BE USED IN 08520020 .* THE CONVERSION MACRO INSTRUCTIONS. 08580020 GBLC &ITEM(1000) 08640020 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 08700020 LCLC &SYMBOL 08760020 LCLA &OP,&COUNT,&BYTE 08820020 .LOOP ANOP 08880020 &OP SETA &OP+1 08940020 &ITEMNBR SETA &ITEMNBR+1 09000020 &SYMBOL SETC '&SYSLIST(&OP,1)' 09060020 AIF ('&SYSLIST(&OP,2)' NE '').OK1 09120020 MNOTE *,'NULL BIT COUNT FIELD' 09180020 MEXIT 09240020 .OK1 ANOP 09300020 AIF ('&SYMBOL' NE '').OK 09360020 MNOTE 'LOG ITEM SYMBOL NOT PROVIDED' 09420020 AGO .CNT 09480020 .OK ANOP 09540020 AIF ('&SYMBOL'(1,1) EQ '''').CNT *TEMP* 09600020 &SYMBOL EQU *+&BYTE 09660020 &ITEM(&ITEMNBR) SETC '&SYSLIST(&OP,1)' 09720020 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 09780020 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 09840020 .CNT ANOP 09900020 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 09960020 &BYTE SETA &COUNT/8 10020020 AIF (&OP LT N'&SYSLIST).LOOP 10080020 AIF (&COUNT NE 32).NOT32 10140020 &NAME DS 4C 10200020 MEXIT 10260020 .NOT32 AIF (&COUNT NE 64).ERR 10320020 &NAME DS 8C 10380020 MEXIT 10440020 .ERR MNOTE '**BIT COUNT FIELDS DO NOT TOTAL 32 OR 64**' 10500020 MEND 10560020 MACRO 10620020 LINEND 10680020 .* THIS MACRO IS USED ONLY BY THE LINE 10740020 .* MACRO TO SET THE NUMBER OF ENTRIES 10800020 .* ASSOCIATED WITH EACH LINE. 10860020 GBLA &NRENTS 10920020 GBLC &NRENTSX 10980020 ORG &NRENTSX 11040020 DC FL1'&NRENTS' 11100020 ORG 11160020 &NRENTS SETA 0 11220020 B&SYSNDX EQU * 11280020 &NRENTSX SETC 'B&SYSNDX' 11340020 MEND 11400020 SPACE 2 11460020 EJECT 11520020 * LABEL MACRO LABEL MACRO LABEL MACRO LABEL MACRO * 11580020 SPACE 2 11640020 MACRO 11700020 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C11760020 &LABEL7,&LABEL8 11820020 .* THIS MACRO ALLOWS UP TO ACHT LABELS TO 11880020 .* BE SPECIFIED FOR A GIVEN LINE. THE 11940020 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 12000020 .* TION MARKS. THE COLUMN AND LINE END 12060020 .* CONTROLS WILL BE INSERTED BY THE 12120020 .* MACRO. OMITTED OPERANDS MEAN NO 12180020 .* LABEL REQUIRED FOR RESPECTIVE 12240020 .* COLUMN. THIS MACRO WILL ALSO ALERT 12300020 .* THE PROGRAMMER TO EXACTLY WHERE THE 12360020 .* TABLE MUST BE BROKEN IF NECESSARY 12420020 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 12480020 GBLC &LABELS(2000) 12540020 GBLC &LBL(100) 12600020 GBLA &LBLCTR(100) 12660020 GBLA &LABELNR 12720020 GBLA &NRENTS,&LPTR 12780020 LCLC &MARGIN,&TACK 12840020 LCLC &TEXT 12900020 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 12960020 &MARGIN SETC '*' 13020020 AIF ('&NAME' EQ '').LOOPOUT 13080020 &LPTR SETA &LPTR+1 13140020 &LBL(&LPTR) SETC '&NAME' 13200020 &LBLCTR(&LPTR) SETA &LABELNR+1 13260020 .LOOPOUT ANOP 13320020 &OP SETA &OP+1 13380020 &K SETA K'&SYSLIST(&OP) 13440020 AIF (&K GE 2).NORM 13500020 &K SETA 2 13560020 .NORM ANOP 13620020 &START SETA 2 13680020 AIF (&OP LT N'&SYSLIST).NOTLAST 13740020 &MARGIN SETC '$' 13800020 .NOTLAST ANOP 13860020 &NRCHAR SETA 8 13920020 &TACK SETC '' 13980020 .LOOPIN ANOP 14040020 &REMAIN SETA &K-&START 14100020 AIF (&REMAIN GE 8).MORE 14160020 &TACK SETC '&MARGIN' 14220020 &NRCHAR SETA &REMAIN 14280020 .MORE ANOP 14340020 &TEXT SETC '' 14400020 AIF (&REMAIN EQ 0).ENDTEXT 14460020 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 14520020 .ENDTEXT ANOP 14580020 &LABELNR SETA &LABELNR+1 14640020 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 14700020 &START SETA &START+8 14760020 AIF ('&TACK' EQ '').LOOPIN 14820020 AIF ('&TACK' EQ '*').LOOPOUT 14880020 MEND 14940020 SPACE 2 15000020 MACRO 15060020 LSTART 15120020 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 15180020 .* OF THE TABLE IS TO BEGIN. 15240020 GBLC &LABELS(2000) 15300020 GBLA &LABELNR 15360020 GBLC &LBL(100) 15420020 GBLA &LBLCTR(100) 15480020 LCLA &NDX,&CTR 15540020 LINEND 15600020 &CTR SETA 1 15660020 .LOOP ANOP 15720020 &NDX SETA &NDX+1 15780020 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 15840020 &LBL(&CTR) DC C'&LABELS(&NDX)' 15900020 &CTR SETA &CTR+1 15960020 AGO .LOOPCTL 16020020 .NOLBL ANOP 16080020 DC C'&LABELS(&NDX)' 16140020 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 16200020 MEND 16260020 SPACE 2 16320020 * BIN MACRO BIN MACRO BIN MACRO BIN MACRO BIN MACRO * 16380020 SPACE 2 16440020 MACRO 16500020 BIN &LOGITEM,&SKIP$OR 16560020 .* &LOGITEM - NAME OF ITEM IN LOG 16620020 .* RECORD DSECT 16680020 .* &SKIP$OR - NBR OF SPACES TO SKIP ON 16740020 .* MULTIPLE PRINT OR NBR OF SPACES 16800020 .* TO BACK UP FROM COLUMN FOR 16860020 .* START OF PRINTING. THE LETTER 16920020 .* B PRECEEDS THE NUMBER (B5) IF 16980020 .* THE LATTER IS DESIRED. OMISSION 17040020 .* OF THIS OPERAND FORCES OPTION 2 17100020 .* WITH BACKUP SPACING EQUAL TO 17160020 .* THE NUMBER OF BITS IN THE ITEM 17220020 .* DEFINITION (VIA MACRO 'DSGEN'). 17280020 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 17340020 .* TOTAL NUMBER OF BITS TO PRINT. 17400020 GBLC &ITEM(1000) 17460020 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 17520020 GBLC &DSECT 17580020 LCLB &B 17640020 LCLA &IBITS,&NDX,&ISHIFT,&K 17700020 LCLA &TEMP,&T 17760020 LCLC &S 17820020 .LOOP ANOP 17880020 &NDX SETA &NDX+1 17940020 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 18000020 AIF (&NDX LT &ITEMNBR).LOOP 18060020 MNOTE *,'YOU BLEW IT' 18120020 ROUTINE DUM,SKIPPER 18180020 MEXIT 18240020 .FOUND ANOP 18300020 &ISHIFT SETA &SHIFT(&NDX) 18360020 &IBITS SETA &BITS(&NDX) 18420020 &T SETA &IBITS-1 18480020 &B SETB 0 18540020 AIF ('&SKIP$OR' EQ '').BACKUP 18600020 &K SETA K'&SKIP$OR 18660020 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 18720020 &S SETC '&SKIP$OR'(&B+1,&K-&B) 18780020 &T SETA &S 18840020 .BACKUP ANOP 18900020 &NRENTS SETA &NRENTS+1 18960020 &TEMP SETA &ISHIFT 19020020 A&SYSNDX DC AL.12(&LOGITEM-&DSECT),XL.4'&TEMP' 19080020 AIF (&IBITS EQ 1 AND &B EQ 0).OUT 19140020 ORG A&SYSNDX 19200020 &B SETB 1 19260020 DC AL.12(&LOGITEM-&DSECT),XL.4'C' 19320020 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 19380020 .OUT ANOP 19440020 MEND 19500020 EJECT 19560020 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 19620020 SPACE 2 19680020 MACRO 19740020 HEX &LOGITEM,&SKIP$OR,&BYTES 19800020 .* THIS MACRO FACILITATES GENERATION OF THE 19860020 .* TABLE ENTRIES SPECIFYING HEX TYPE 19920020 .* CONVERSIONS. 19980020 .* &LOGITEM - NAME OF DATA ITEM TO BE 20040020 .* CONVERTED 20100020 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 20160020 .* MULTIPLE PRINT OR NBR OF SPACES TO 20220020 .* BACK UP FROM COLUMN FOR START OF 20280020 .* PRINTING. THE LETTER B PRECEEDS THE 20340020 .* NUMBER (B8) IF THE LATTER OPTION IS 20400020 .* DESIRED. OMISSION OF THIS OPERAND 20460020 .* FORCES OPTION 2 WITH BACKUP SPACING 20520020 .* EQUAL TO THE NUMBER OF BYTES SPECI- 20580020 .* FIED BY THE NEXT OPERAND (TWICE THIS 20640020 .* NUMBER IF SUFFIX IS EXPLICITLY OR 20700020 .* IMPLICITLY B). 20760020 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 20820020 .* PROCESS. THIS NUMBER IS SUFFIXED 20880020 .* WITH AN L,R, OR B TO STIPULATE 20940020 .* PRINTING OF THE LEFT HALF, RIGHT 21000020 .* HALF, OR BOTH HALVES OF THE BYTE 21060020 .* RESPECTIVELY. OMISSION OF THIS 21120020 .* OPERAND DEFAULTS TO B WITH THE NUM- 21180020 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 21240020 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 21300020 .* SARY. THIS MACRO MUST BE THE FIRST 21360020 .* MACRO INSTRUCTION ISSUED FOR THE 21420020 .* SUBJECT LINE(S). 21480020 GBLC &ITEM(1000),&DSECT 21540020 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 21600020 LCLB &B 21660020 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 21720020 LCLC &S,&LETTER 21780020 .LOOP ANOP 21840020 &NDX SETA &NDX+1 21900020 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 21960020 AIF (&NDX LT &ITEMNBR).LOOP 22020020 MNOTE *,'LOG ITEM NOT DEFINED' 22080020 MEXIT 22140020 .FOUND ANOP 22200020 &ISHIFT SETA &SHIFT(&NDX) 22260020 &IBITS SETA &BITS(&NDX) 22320020 &CODE SETA 1 22380020 &K SETA K'&BYTES 22440020 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 22500020 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 22560020 MEXIT 22620020 .OK AIF ('&BYTES' EQ '').USEDEFN 22680020 &LETTER SETC '&BYTES'(&K,1) 22740020 &S SETC '&BYTES'(1,&K-1) 22800020 &BYTESP SETA &S 22860020 AIF ('&LETTER' EQ 'B').BOTH 22920020 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 22980020 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 23040020 MEXIT 23100020 .USEDEFN ANOP 23160020 &BYTESP SETA &IBITS/8 23220020 .BOTH AIF (&ISHIFT NE 0).ERR 23280020 &CODE SETA 3 23340020 &T SETA &BYTESP*2-1 23400020 &S SETC '&T' 23460020 .OK2 AIF (&ISHIFT EQ 0).L 23520020 &CODE SETA 2 23580020 .L ANOP 23640020 &B SETB 1 23700020 AIF ('&SKIP$OR' EQ '').BACKUP 23760020 &K SETA K'&SKIP$OR 23820020 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 23880020 &S SETC '&SKIP$OR'(&B+1,&K-&B) 23940020 .BACKUP ANOP 24000020 &NRENTS SETA &NRENTS+1 24060020 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 24120020 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 24180020 .OUT ANOP 24240020 MEND 24300020 MACRO 24360020 SPECIAL &ROUTINE,&PARAM,&SPACE= 24420020 .* THIS MACRO GENERATES A SPECIAL ROUTINE 24480020 .* ENTRY TO BE PROCESSED BY THE SUM. M. 24540020 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 24600020 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 24660020 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 24720020 .* INTERPRETED AS AN ARGUMENT OF THE 24780020 .* SPECIAL ROUTINE. 24840020 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 24900020 .* ALLOCATE FOR REQUIRED PROCESSING. 24960020 GBLC &CSECT 25020020 GBLA &COUNTR 25080020 LCLA &ADD 25140020 DC AL1(128) 25200020 DC BL.8'&PARAM' 25260020 DC AL2(&ROUTINE-&CSECT) 25320020 DC AL2(&COUNTR) 25380020 &ADD SETA 1 25440020 AIF ('&SPACE' EQ '').NORM 25500020 &ADD SETA &SPACE 25560020 .NORM ANOP 25620020 &COUNTR SETA &COUNTR+&ADD 25680020 MEND 25740020 MACRO 25800020 SUM &LOGITEM,&MASK 25860020 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 25920020 .* FOR PROCESSING BY THE SUMMARY MODULE 25980020 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 26040020 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 26100020 .* THIS OPERAND SHOULD BE OMITTED FOR 26160020 .* SINGLE BIT ITEMS IN WHICH CASE THE 26220020 .* MASK WILL BE SET ACCORDING TO THE 26280020 .* OFF BYTE BIT DISPLACEMENT OF THE 26340020 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 26400020 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 26460020 GBLC &ITEM(1000),&DSECT 26520020 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 26580020 .LOOP ANOP 26640020 &NDX SETA &NDX+1 26700020 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 26760020 AIF (&NDX LT &ITEMNBR).LOOP 26820020 MNOTE *,'LOGITEM NOT FOUND' 26880020 MEXIT 26940020 .FOUND ANOP 27000020 DC AL1(0) 27060020 &ISHIFT SETA &SHIFT(&NDX) 27120020 &IBITS SETA &BITS(&NDX) 27180020 AIF ('&MASK' EQ '').FORM 27240020 DC B'&MASK' 27300020 AGO .ITEM 27360020 .FORM ANOP 27420020 &BITNBR SETA &ISHIFT-7 27480020 &BITNBR SETA 0-&BITNBR 27540020 &M SETA 1 27600020 .LOOP2 ANOP 27660020 AIF (&BITNBR EQ 0).GOTIT 27720020 &M SETA &M*2 27780020 &BITNBR SETA &BITNBR-1 27840020 AGO .LOOP2 27900020 .GOTIT ANOP 27960020 DC AL1(&M) 28020020 .ITEM DC AL2(&LOGITEM-&DSECT) 28080020 DC AL2(&COUNTR) 28140020 &COUNTR SETA &COUNTR+1 28200020 MEND 28260020 GBLC &DSECT,&CSECT 28320020 &CSECT SETC 'IFCST008' 28380020 &DSECT SETC 'X2715' 28440020 TITLE 'IFCST008 - SUM MODULE - LINKNAME=IFCST008' 28500020 IFCST008 CSECT 28560020 USING *,R9 28620020 DC A(ENTRIES) 28680020 DC A(PENTRY) 28740020 REG8 DS F 28800020 SCSIZE DC H'1591' A48716 28860021 * 28920020 * DSGEN & DSECT FOR RECORD 28980020 * 29040020 X2715 DSECT 29100020 DSGEN (KEY,16),(TSWS,16),(TID,8),(TDUM1,16),(TCHAR,8) 29160020 DSGEN (DATE,32),(TIME,32) 29220020 DSGEN (TDUM2,8),(TSER,24),(TMOD,16),(TDUM3,16) 29280020 DSGEN (TCUA,16),(TSID,16) 29340020 * 29400020 * TABLE DSGEN & DSECT 29460020 * 29520020 YDSECT DSECT 29580020 DSGEN (RECDATE,24),(RECTIME,32),(B0BIT0,1),(B0BIT1,1), C29640020 (B0BIT2,1),(B0BIT3,1),(B0BIT4,1),(B0BIT5,1),(B0BIT6,1), C29700020 (B0BIT7,1) 29760020 DSGEN (B1BIT0,1),(B1BIT1,1),(B1BIT2,1),(B1BIT3,1), C29820020 (B1BIT4,1),(B1BIT5,1),(B1BIT6,1),(B1BIT7,1), C29880020 (B2BIT0,1),(B2BIT1,1),(B2BIT2,1),(B2BIT3,1), C29940020 (B2BIT4,1),(B2BIT5,1),(B2BIT6,1),(B2BIT7,1), C30000020 (B3BIT0,1),(B3BIT1,1),(B3BIT2,1),(B3BIT3,1), C30060020 (B3BIT4,1),(B3BIT5,1),(B3BIT6,1),(B3BIT7,1),(DUM5,8) 30120020 * 30180020 * COUNTER DSGEN & CSECT 30240020 * 30300020 Y2715 DSECT 30360020 DSGEN (DUM1,32),(FWDPTR,32) 30420020 DSGEN (TOTALREC,16),(TYPE,8),(CHAN,8),(CUA,24),(YSER1,8) 30480020 DSGEN (YSER2,16),(CPU,16),(SMSW,16),(XSWTCH,8),(DUM2,8) 30540020 DS 6C 30600020 DSGEN (DUM3,64) 30660020 DSGEN (DUMM3,64) 30720020 * 30780020 * DISK ADPT COUNTERS 18 CNTRS 1 DUMMY 30840020 * 30900020 DSGEN (DALOW,32),(DAHIGH,32) 30960020 DSGEN (DATOTAL,16),(DB2BIT0,16),(DB2BIT1,16),(DB2BIT2,16) 31020020 DSGEN (DB2BIT3,16),(DB2BIT4,16),(DB2BIT5,16),(DB2BIT6,16) 31080020 DSGEN (DB2BIT7,16),(DB3BIT0,16),(DB3BIT1,16),(DB3BIT2,16) 31140020 DSGEN (DB3BIT3,16),(DB3BIT4,16) 31200020 * 31260020 * 2790 ADPT 20 CNTRS 31320020 * 31380020 DSGEN (MALOW,32),(MAHIGH,32) 31440020 DSGEN (MATOTAL,16),(MB1BIT0,16),(MB1BIT1,16),(MB1BIT2,16) 31500020 DSGEN (MB1BIT3,16),(MB1BIT4,16),(MB1BIT5,16),(MB1BIT6,16) 31560020 DSGEN (MB1BIT7,16),(MB2BIT0,16),(MB2BIT1,16),(MB2BIT2,16) 31620020 DSGEN (MB2BIT3,16),(MB2BIT4,16),(MB2BIT5,16),(MB2BIT6,16) 31680020 DSGEN (MB2BIT7,16),(MB3BIT0,16),(MB3BIT1,16),(MB3BIT4,16) 31740020 DSGEN (MB3BIT5,16),(MB3BIT6,16),(MB3BIT7,16),(MB3BIT2,16) 31800020 * 31860020 * MPX SECTION 12 COUNTERS 31920020 * 31980020 DSGEN (MPLODATE,32),(MPHIDATE,32) 32040020 DSGEN (MPTOTAL,16),(PB3BIT0,16),(PB3BIT2,16),(PB3BIT3,16) 32100020 DSGEN (PB3BIT5,16),(PB3BIT7,16),(PB3BIT1,16),(PB3BIT4,16) 32160020 * 32220020 * 2740AOPTER SECTION 10 CTRS 32280020 * 32340020 DSGEN (ADLODATE,32),(ADHIDATE,32) 32400020 DSGEN (ADTOTAL,16),(AB2BIT3,16),(AB2BIT5,16),(AB2BIT6,16) 32460020 DSGEN (AB2BIT4,16),(AB2BIT7,16) 32520020 * 32580020 * BSC ADAPTER 28 CTRS 32640020 * 32700020 DSGEN (BSLODATE,32),(BSHIDATE,32) 32760020 DSGEN (BSTOTAL,16),(BB0BIT5,16),(BB0BIT6,16),(BB0BIT7,16) 32820020 DSGEN (BB1BIT0,16),(BB1BIT3,16),(BB1BIT4,16),(BB1BIT5,16) 32880020 DSGEN (BB1BIT6,16),(BB1BIT7,16),(BB2BIT3,16),(BB2BIT4,16) 32940020 DSGEN (BB2BIT5,16),(BB2BIT6,16),(BB3BIT0,16),(BB3BIT1,16) 33000020 DSGEN (BB3BIT2,16),(BB3BIT3,16),(BB3BIT4,16),(BB3BIT5,16) 33060020 DSGEN (BB3BIT6,16),(BB3BIT7,16),(BB0BIT0,16),(BB0BIT1,16) 33120020 * 33180020 * 70 0 SPECIAL CODES 257 CTRS 33240020 * 33300020 * 33360020 * 33420020 DSGEN (SPLODATE,32),(SPHIDATE,32) 33480020 DSGEN (SPTOTAL,16),(SP70,16),(SP75,16),(SP78,16) A48716 33540021 DSGEN (SP79,16),(SP7A,16),(SP7X,16),(SP,16) A48716 33541021 DS CL500 33600020 SPFFFF DS CL10 33630020 * 33660020 * AREA STATIONS 1200 COUNTERS 33720020 * 33780020 DSGEN (ASLODATE,32),(ASHIDATE,32) 33840020 DSGEN (ASTOTAL,16),(ASF0,16),(ASF1,16),(AS,16) 33900020 DS CL2400 33960020 ASFFFF DS CL24 33990020 * 34020020 IFCST008 CSECT 34080020 * 34140020 USING YDSECT,R2 34200020 * 34260020 * 34320020 R0 EQU 0 34380020 R1 EQU 1 34440020 R2 EQU 2 34500020 R3 EQU 3 34560020 R4 EQU 4 34620020 R5 EQU 5 34680020 R6 EQU 6 34740020 R7 EQU 7 34800020 R8 EQU 8 34860020 R9 EQU 9 34920020 R10 EQU 10 34980020 R11 EQU 11 35040020 R12 EQU 12 35100020 R13 EQU 13 35160020 R14 EQU 14 35220020 R15 EQU 15 35280020 * 35340020 * 35400020 * SPECIAL ROUTINES FOR SUMMARY MODULE 35460020 * 35520020 LOOPER LA R2,L11(R2) BUMP TO NXT ENTRY 35580020 STM R14,R12,L12(R13) SAVE REGS 35640020 CLI L0(R2),HEXFF DONE WITH TABLE 35700020 BE DONE YES- 35760020 CLI L7(R2),HEX80 IS IT AREA STATIONS 35820020 BL REGULAR BR-NO 35880020 LA R5,AREASTAT-L6 POINT TO NEXT TO DO 35940020 LOOPRTN ST R5,REG8 PUT PTR INTO SAVE AREA 36000020 B RETURN RETURN 36060020 REGULAR CLI L7(R2),HEX70 TEST FOR SPECIAL ERRS 36120020 BL NOTSPEC BR-NO 36180020 LA R5,SPECERR-L6 SET TO DO PTR 36240020 B LOOPRTN 36300020 NOTSPEC CLI L7(R2),HEX4F TEST FOR ILLEGAL CODE 36360020 BH LOOPER LOOP IF YES 36420020 SR R5,R5 CLEAR REG 36480020 IC R5,L7(R2) PICK UP CODE 36540020 SRL R5,L4 DROP OFF UNUSED BITS 36600020 SLL R5,L2 MULTI BY 4 36660020 L R5,ADCONS(R5) PICK UP PROPER ADDRESS 36720020 B LOOPRTN 36780020 * 36840020 ADCONS DC A(DISKADPT-L6) CODE=00 36900020 DC A(D2790ADP-L6) 10 36960020 DC A(MPXADPT-L6) 20 37020020 DC A(ADPT2740-L6) 30 37080020 DC A(BSCADPT-L6) 40 37140020 DONE LA R5,ALLDONE-L6 37200020 B LOOPRTN 37260020 XDATE STM R14,R12,L12(R13) SAVE REGS 37320020 CLC RECDATE(L3),ZEROS IS INPUT DATE 0'S 37380020 BE ADDONE BR-YES 37440020 CLC L1(R3,R3),ZEROS IS LOW DATE FILLED IN 37500020 BNE CHKLOW BR-YES 37560020 MVC L1(L3,R3),RECDATE PUT IN DATE 37620020 CHKLOW CLC L1(L3,R3),RECDATE IS LOW DATE LOWER THAN REC 37680020 BNH CHKHI BR-YES 37740020 MVC L1(L3,R3),RECDATE PUT IN LOWER DATE 37800020 CHKHI CLC L5(L3,R3),RECDATE IS HI DATE HGHR THAN REC 37860020 BNL ADDONE BR-YES 37920020 MVC L5(L3,R3),RECDATE PUT IN HI DATE 37980020 ADDONE LH R5,L8(R3) ADD 38040020 LA R5,L1(R5) ONE TO 38100020 STH R5,L8(R3) COUNTER 38160020 B RETURN RETURN 38220020 * 38280020 * SPECIAL ERRORS 70-75 38340020 * 38400020 DO7075 STM R14,R12,L12(R13) 38460020 CLI L7(R2),HEX70 IS IT CODE 70 38520020 BE ADD70 BR-YES 38580020 CLI L7(R2),HEX75 IS IT CODE 75 38640020 BL ADD7174 BR CODES 71-74 A48716 38700021 LR R5,R3 SET COUNTER POINTER A48716 38701021 BE ADD75 A48716 38702021 CLI L7(R2),HEX78 TEST CODE FOR 78 A48716 38703021 BL ADD7X BR CODES 76 77 A48716 38704021 BE ADD78 BR CODES 78 A48716 38705021 CLI L7(R2),HEX7A TEST CODE FOR 7A A48716 38706021 BL ADD79 BR CODE 79 A48716 38707021 BE ADD7A BR CODES 7A A48716 38708021 ADD7X LA R5,L2(R5) BUMP POINTER TO COUNTER A48716 38709021 ADD7A LA R5,L2(R5) A48716 38710021 ADD79 LA R5,L2(R5) A48716 38711021 ADD78 LA R5,L2(R5) A48716 38712021 ADD75 LA R5,L2(R5) A48716 38713021 B ADDER BR-TO ADD 1 38820020 ADD70 LR R5,R3 POINT TO 1ST CTR 38880020 B ADDER BR-TO ADD 38940020 ADD7174 LA R5,L12(R3) BUMP UP TO 71-74 CNTRS A47816 39000021 LA R7,L50 # OF AREA STATIONS 39060020 ADD7174A CLI L0(R5),HEXFF IS AREA FREE 39120020 BE ADD7174B YES 39180020 CLC L1(L1,R5),L8(R2) AREA STA EQUAL 39240020 BE ADD7174C 39300020 LA R5,L10(R5) BUMP TO NXT CTRS 39360020 BCT R7,ADD7174A LOOP 39420020 B RETURN 39480020 ADD7174B MVI L0(R5),HEX00 SET TO ZERO 39540020 MVC L1(L1,R5),L8(R2) MOVE IN AREA CODE 39600020 ADD7174C IC R8,L7(R2) 39660020 SLL R8,L28 PICK UP AREA STA 39720020 SRL R8,L27 DROP OFF HIGHER 4 BITS X BY 2 39780020 AR R5,R8 COMPUTE CNTR TO ADD TO 39840020 ADDER LH R6,L0(R5) ADD 39900020 LA R6,L1(R6) ONE TO 39960020 STH R6,L0(R5) COUNTER 40020020 B RETURN RETURN 40080020 * 40140020 * 40200020 * 40260020 * 40320020 * 40380020 * 40440020 DOAREA STM R14,R12,L12(R13) 40500020 CLI L7(R2),HEXF0 IS IT F0 40560020 BE ADD70 BR-YES ADD TO 1ST CTR 40620020 CLI L7(R2),HEXF1 IS IT F1 40680020 BE ADD75 BR-YES ADD TO 2ND 40740020 LA R5,L4(R3) SET PTR TO AREA STATIONS 40800020 LA R6,L100 SET LOOP CTR 40860020 DOAREAA CLI L0(R5),HEXFF IS CTRS FREE 40920020 BE DOAREAB BR-YES 40980020 CLC L0(L2,R5),L7(R2) ARE AREA STATIONS EQUAL 41040020 BE DOAREAC BR-YES 41100020 LA R5,L24(R5) BUMP TO NXT SET 41160020 BCT R6,DOAREAA LOOP 41220020 B RETURN 41280020 DOAREAB MVC L0(L2,R5),L7(R2) MOVE IN AREA STATION 41340020 DOAREAC LH R6,L2(R5) ADD 41400020 LA R6,L1(R6) ONE TO 41460020 STH R6,L2(R5) CNTR 41520020 LA R5,L4(R5) BUMP OVER TOTAL COUNTER 41580020 SR R8,R8 41640020 IC R8,L9(R2) PICK UP ERROR CODE 41700020 SRL R8,L4 DROP OFF LOW BITS 41760020 CH R8,H9 CHK FOR 9 41820020 BH RETURN BR-HI 41880020 SLL R8,L1 41940020 AR R5,R8 ADD TO 5 TO POINT TO CNTR 42000020 B ADDER ADD TO CRTR 42060020 * 42120020 * 42180020 * 42240020 * 42300020 * 42360020 * 42420020 SETUP STM R14,R12,L12(R13) SAVE REGS 42480020 LA R6,L4095 TO FFFF IN FIRST SET 42540020 CLI L0(R3),HEXFF TEST SET UP SWITCH 42600020 BE SETTABLE DONE 42660020 MVI L0(R3),HEXFF SET SWITCH 42720020 SH R3,H30 SET DSECT BASE 42780020 USING Y2715,R3 42840020 MVC SPFFFF(L2),CHARFFFF 42860020 MVC ASFFFF(L2),CHARFFFF 42880020 LA R4,SP SET SPECIAL CNTRS 42900020 LA R5,L50 AND AREA STATION CTRS 42960020 LA R7,L10 TO INDICATE EMPTY CNTRS 43020020 BAL R8,STOREFF 43080020 LA R4,AS 43140020 LA R5,L100 43200020 LA R7,L24 43260020 BAL R8,STOREFF 43320020 SETTABLE LA R4,TABLE SET TABLE TO FFFF 43380020 LA R5,L234 PRIOR TO BRINGING IN ENTRIES 43440020 LA R7,L2 43500020 BAL R8,STOREFF 43560020 * 43620020 LA R6,TABLE 43680020 LR R5,R2 PICK 43740020 SH R5,H2 UP 43800020 LH R5,L0(R5) REC SIZE 43860020 SH R5,H26 SUBTRACT REC SIZE 43920020 SR R4,R4 43980020 D R4,F35 GET NUMBER OF 35BYTE FLDS IN R5 44040020 LTR R5,R5 CHK FOR ZERO 44100020 BZ RETURN BR-NONE TO DO 44160020 LA R4,L28(R2) SET PTR TO ERROR SECTION 44220020 SETTBL01 MVC DAYTIME(L7),L0(R4) SAVE DATE & TIME 44280020 LA R4,L7(R4) BUMP OVER DAY&TIME 44340020 LA R8,L7 LOOP CNTR 44400020 SETTBL02 CLC L0(L4,R4),CHARFFFF DUMMY ENTRY 44460020 BE SETTBL03 BR-YES 44520020 CLC L0(L4,R4),ZEROS DUMMY ENTRY 44580020 BE SETTBL03 BR-YES 44640020 MVC L0(L7,R6),DAYTIME MOVE DAY TIME 44700020 MVC L7(L4,R6),L0(R4) MOVE ENTRY 44760020 LA R6,L11(R6) BUMP OVER ENTRY 44820020 SETTBL03 LA R4,L4(R4) BUMP TO NXT ENTRY 44880020 BCT R8,SETTBL02 LOOP 44940020 BCT R5,SETTBL01 LOOP TILL ALL 35 BYTE ENTRY DONE 45000020 * 45060020 LA R4,TABLE-L11 SET PTR 45120020 SORTTBL1 LA R4,L11(R4) UP PTR A TABLE SORT 45180020 LA R5,L11(R4) UP PTR B TO A+11 45240020 CR R4,R6 PTR A = PTR C---TABLE SORTED 45300020 BE RETURN BR-YES 45360020 SORTTBL2 CLC L7(L1,R4),L7(R5) COMPARE ENTRY CODES 45420020 BL SORTTBL3 LOW NO SWAP 45480020 BH SWAP HI SWAP 45540020 CLC L0(L7,R4),L0(R5) COMPARE DATES 45600020 BNH SORTTBL3 BR-NO SWAP 45660020 SWAP XC L0(L11,R4),L0(R5) SWAP 45720020 XC L0(L11,R5),L0(R4) ENTRIES 45780020 XC L0(L11,R4),L0(R5) 45840020 SORTTBL3 LA R5,L11(R5) BUMP PTR B 45900020 CR R5,R6 PTR B= A 45960020 BL SORTTBL2 BR-NO 46020020 B SORTTBL1 BR-YES 46080020 * 46140020 * 46200020 STOREFF STC R6,L0(R4) STORE FFFF 46260020 STC R6,L1(R4) 46320020 AR R4,R7 BUMP PTR BY SET AMOUNT 46380020 BCT R5,STOREFF LOOP TILL DONE 46440020 BR R8 RTN 46500020 * 46560020 DROP R3 46620020 * 46680020 * 46740020 * 46800020 SETR2 ST R2,SAVE2 SAVE R2 46860020 LA R2,TABLE-L11 SET PTR TO TABLE 46920020 STM R14,R12,L12(R13) SAVE REGS 46980020 LR R14,R3 SAVE FOR LATER 47010020 L R3,SAVE2 SET DSECT BASE 47040020 USING X2715,R3 47100020 IC R7,TCUA PICK UP 47160020 SLL R7,L8 CUA TO CONVERT 47220020 IC R7,TCUA+L1 47280020 SLL R7,L16 MOVE IT TO HI ORDER 47340020 LA R4,CUAFLD OF R7 FOR CONVERSION 47400020 BAL R8,SETUPA SET AREA 47460020 IC R7,TSID 47520020 SLL R7,L8 PICK 47580020 IC R7,TSID+L1 UP ID & 47640020 SLL R7,L16 MOVE TO HI POS 47700020 LR R4,R14 RESET ADDR OF COUNTER 47760020 LA R8,RETURN 47820020 SETUPA LA R5,L4 LOOP CNT 47880020 SETUPB SR R6,R6 CLEAR R6 47940020 SLDL R6,L4 MOVE OVER 4 BITS 48000020 LA R6,CHARS(R6) INDEX TO CHAR 48060020 MVC L0(L1,R4),L0(R6) MOVE CHAR 48120020 LA R4,L1(R4) BUMP PTR 48180020 BCT R5,SETUPB LOOP 48240020 BR R8 RETURN 48300020 * 48360020 RESETR2 L R2,SAVE2 PICK UP R2 48420020 BR R14 RETURN 48480020 DAYTIME DS CL7 48540020 TABLE DS CL464 48600020 DC 11X'FF' 48660020 DROP R3 48720020 ENTRIES DS 0F 48780020 ** 48840020 * SUMMARY MODULE FOR 2715 48900020 ** 48960020 STARTPT EQU * 49020020 STARTPT SPECIAL SETUP,0,SPACE=2 SET TABLE 49080020 SPECIAL SETR2,0,SPACE=2 49140020 * 49200020 * 49260020 &DSECT SETC 'YDSECT' 49320020 * 49380020 * 49440020 SPECIAL LOOPER,0,SPACE=2 49500020 ALLDONE EQU * 49560020 ALLDONE SPECIAL RESETR2,0,SPACE=2 49620020 * 49680020 * 49740020 DC X'FF' END OF SUMMARY SECTION IND. 49800020 * 49860020 * 49920020 &DSECT SETC 'YDSECT' 49980020 EJECT 50040020 * DISK ADAPTER CODE=00 50100020 * 50160020 DS 0H 50220020 DISKADPT EQU * 50280020 DISKADPT SPECIAL XDATE,0,SPACE=5 50340020 SUM B2BIT0 50400020 SUM B2BIT1 50460020 SUM B2BIT2 50520020 SUM B2BIT3 50580020 SUM B2BIT4 50640020 SUM B2BIT5 50700020 SUM B2BIT6 50760020 SUM B2BIT7 50820020 SUM B3BIT0 50880020 SUM B3BIT1 50940020 SUM B3BIT2 51000020 SUM B3BIT3 51060020 SPECIAL LOOPER,0,SPACE=1 51120020 EJECT 51180020 * 51240020 * 2790 ADAPTER CODE=10 51300020 * 51360020 DS 0H 51420020 D2790ADP EQU * 51480020 D2790ADP SPECIAL XDATE,0,SPACE=5 51540020 SUM B1BIT0 51600020 SUM B1BIT1 51660020 SUM B1BIT2 51720020 SUM B1BIT3 51780020 SUM B1BIT4 51840020 SUM B1BIT5 51900020 SUM B1BIT6 51960020 SUM B1BIT7 52020020 SUM B2BIT0 52080020 SUM B2BIT1 52140020 SUM B2BIT2 52200020 SUM B2BIT3 52260020 SUM B2BIT4 52320020 SUM B2BIT5 52380020 SUM B2BIT6 52440020 SUM B2BIT7 52500020 SUM B3BIT0 52560020 SUM B3BIT1 52620020 SUM B3BIT4 52680020 SUM B3BIT5 52740020 SUM B3BIT6 52800020 SUM B3BIT7 52860020 SPECIAL LOOPER,0,SPACE=1 52920020 EJECT 52980020 * 53040020 * MPX SUMMARY CODE=20 53100020 * 53160020 DS 0H 53220020 MPXADPT EQU * 53280020 MPXADPT SPECIAL XDATE,0,SPACE=5 53340020 SUM B3BIT0 53400020 SUM B3BIT2 53460020 SUM B3BIT3 53520020 SUM B3BIT5 53580020 SUM B3BIT7 53640020 SPECIAL LOOPER,0,SPACE=2 53700020 EJECT 53760020 * 53820020 * 2740 ADAPTER CODE=30 53880020 * 53940020 DS 0H 54000020 ADPT2740 EQU * 54060020 ADPT2740 SPECIAL XDATE,0,SPACE=5 54120020 SUM B2BIT3 54180020 SUM B2BIT5 54240020 SUM B2BIT6 54300020 SPECIAL LOOPER,0,SPACE=2 54360020 EJECT 54420020 * 54480020 * BSC ADAPTER CODE=40 54540020 * 54600020 DS 0H 54660020 BSCADPT EQU * 54720020 BSCADPT SPECIAL XDATE,0,SPACE=5 54780020 SUM B0BIT5 54840020 SUM B0BIT6 54900020 SUM B0BIT7 54960020 SUM B1BIT0 55020020 SUM B1BIT3 55080020 SUM B1BIT4 55140020 SUM B1BIT5 55200020 SUM B1BIT6 55260020 SUM B1BIT7 55320020 SUM B2BIT3 55380020 SUM B2BIT4 55440020 SUM B2BIT5 55500020 SUM B2BIT6 55560020 SUM B3BIT0 55620020 SUM B3BIT1 55680020 SUM B3BIT2 55740020 SUM B3BIT3 55800020 SUM B3BIT4 55860020 SUM B3BIT5 55920020 SUM B3BIT6 55980020 SUM B3BIT7 56040020 SPECIAL LOOPER,0,SPACE=2 56100020 EJECT 56160020 * 56220020 * SPECIAL CODES 70--75 56280020 * 56340020 DS 0H 56400020 SPECERR EQU * 56460020 SPECERR SPECIAL XDATE,0,SPACE=5 56520020 SPECIAL DO7075,0,SPACE=261 A48716 56580021 SPECIAL LOOPER,0,SPACE=1 56640020 * 56700020 * AREA STATIONS 56760020 * 56820020 DS 0H 56880020 AREASTAT EQU * 56940020 AREASTA SPECIAL XDATE,0,SPACE=5 57000020 SPECIAL DOAREA,0,SPACE=1214 57060020 SPECIAL LOOPER,0,SPACE=1 57120020 EJECT 57180020 &DSECT SETC 'Y2715' 57240020 &CSECT SETC 'PENTRY' 57300020 * 57360020 PENTRY DS 0F 57420020 USING *,R9 57480020 USING Y2715,R2 57510020 DC A(PEDIT) 57540020 DC CL8'IFCST008' 57600020 R9PTR DS F 57660020 LABELPTR DS F 57720020 * 57780020 * 57840020 * 57900020 * 57960020 * SPECIAL ROUTINES FOR EDIT SECTION 58020020 * 58080020 * 58140020 FREECORE STM R14,R12,L12(R13) 58200020 LR R12,R13 SAVE POINTERS 58260020 LA R13,FSAVE SET UP LINK CONVS 58320020 ST R12,L4(R13) 58380020 ST R13,L8(R12) 58440020 L R3,L4(R2) PICK UP POSS PTR 58500020 ST R3,L28(R12) SAVE IT IN SAVE AREA 58560020 LH R0,SIZE SET UP TO FREE CNTRS 58620020 LR R1,R2 SET ADDRESS 58680020 FREEMAIN R,LV=(0),A=(1) 58740020 LTR R3,R3 IS THERE ANOTHER COUNTER BUFF 58800020 BZ RETURN0 BR-NO 58860020 LA R5,PEDIT+L10 SET UP POINTERS 58920020 LA R6,LABELS-L1 TO RESTART TABLE 58980020 STM R5,R6,R9PTR STORE THEM 59040020 RETURN0 L R13,L4(R13) PICK UP HI SAVE AREA 59100020 LM R14,R12,L12(R13) 59160020 BR R14 RETRUN 59220020 * 59280020 * 59340020 * 59400020 SETADCON LM R5,R6,RTNADDRS POINT TO NXT SECTION 59460020 STM R5,R6,R9PTR BY PUTTING ADCONS INTO TBL PTRS 59520020 STM R14,R15,L12(R13) STORE 0 INTO RRIB STOP PRINT 59580020 B SWAPADCN BR 59640020 * 59700020 CONVERT STM R14,R12,L12(R13) SAVE REGS 59760020 LH R5,L0(R4) PICK UP NUMBER 59820020 CVD R5,DBLWORD CONVERT TO PACKED DEC 59880020 UNPK L0(L5,R3),DBLWORD+L3(L5) UNPK IT INTO PR BUFF 59940020 MVZ L4(L1,R3),L0(R3) MOVE ON PROPER ZONE 60000020 B RETURN RETURN 60060020 * 60120020 * 60180020 * 60240020 CONVERT1 ST R4,SAVE4 60300020 CONVERT3 LH R2,L0(R4) PICK UP COUNTER 60360020 CVD R2,DBLWORD CONVERT IT 60420020 UNPK L0(L5,R3),DBLWORD+L3(L5) UNPACK IT 60480020 MVZ L4(L1,R3),L0(R3) PUT ON PROPER ZONE 60540020 AR R3,R6 UP TO NXT COLUMN 60600020 LA R4,L2(R4) UP TO NXT COUNTER 60660020 BCT R5,CONVERT3 LOOP TILL DONE 60720020 STM R7,R8,R9PTR 60780020 L R5,SAVE4 60840020 SH R5,H2 BACK UP TO START OF CNTRS 60900020 CONVERT2 MVC L0(L100,R5),L0(R4) SHIFT COUNTERS OCER TOP 60960020 LA R4,L100(R4) THE COUNTERS JUST USED 61020020 LA R5,L100(R5) 61080020 BCT R10,CONVERT2 LOOP TILL ALL DONE 61140020 B RETURN RETURN 61200020 * 61260020 * 61320020 * 61380020 SETSPEC STM R14,R12,L12(R13) SAVE REGS 61440020 LH R7,L0(R4) PICK UP AREA STA 61500020 LTR R7,R7 END OF LIST 61560020 BZ RETURN BR END 61590020 CLC L0(L2,R4),CHARFFFF IS IT END 61620020 BE RETURN 61650020 SLL R7,L24 SHIFT TO HI SIDE 61680020 LA R5,L1 LOOP COUNT 61740020 BAL R8,AREAHEX CONVERT AREA STA 61800020 LA R3,L12(R3) SET BUFF PTR 61860020 LA R4,L2(R4) SET CTR PTR 61920020 LA R5,L4 COUNTER # 61980020 LA R6,L10 BUFFER SPACE VALUE 62040020 LM R7,R8,SPECADS SET RTN PTRS 62100020 LA R10,L5 NUMBER OF 100 BYTE MOVES 62160020 B CONVERT1 62220020 * 62280020 AREAHEX LR R2,R3 SET WORK REG 62340020 AREAHEX1 SR R6,R6 62400020 SLDL R6,L4 MOVE 4 BITS TO R6 62460020 LA R6,CHARS(R6) INDEX INTO CHARS 62520020 MVC L0(L1,R2),L0(R6) MOVE INDEXED CHAR TO BUFF 62580020 SR R6,R6 CLEAR 6 62640020 SLDL R6,L4 MOVE NXT 4 BYTS 62700020 LA R6,CHARS(R6) INDEX AGAIN 62760020 MVC L1(L1,R2),L0(R6) MOVE INDEXED CHAR 62820020 LA R2,L4(R2) BUMP PTR 62880020 BCT R5,AREAHEX1 LOOP 62940020 BR R8 RETURN 63000020 * 63060020 * 63120020 * 63180020 SETAREA STM R14,R12,L12(R13) SAVE REGS 63240020 LH R7,L0(R4) PICK UP CNTR 63300020 LTR R7,R7 TEST FOR END 63360020 BZ RETURN BR-YES 63420020 CLC L0(L2,R4),CHARFFFF IS IT FF'S 63480020 BE RETURN BR-YES 63540020 SLL R7,L16 MOVE TO HI 63600020 LA R5,L2 SET LOOP CNT 63660020 BAL R8,AREAHEX CONVERT AREA STA 63720020 LA R3,L12(R3) SET BUFF PTR 63780020 LA R4,L2(R4) SET COUNTER POINTER 63840020 LA R5,L11 #OF CNTRS 63900020 LA R6,L9 BUFFER SPACE 63960020 LM R7,R8,AREAADS SET RTN PTS 64020020 LA R10,L24 #OF 100 BYTE MOVES 64080020 B CONVERT1 1 64140020 * 64200020 * 64260020 * 64320020 SORTSPEC STM R14,R12,L12(R13) 64380020 LA R5,L500(R4) SET PTR TO END OF TABLE 64440020 LA R6,L10 SET SIZE OF AREA 64500020 B SORTIT 64560020 * 64620020 * 64680020 * 64740020 SORTAREA STM R14,R12,L12(R13) 64800020 LA R5,L2400(R4) SET PTR TO END OF TABLE 64860020 LA R6,L24 SET SIZE OF AREA 64920020 B SORTIT 64980020 SORTIT0 AR R4,R6 BUMP R4 TO NEXT ENTRY 65040020 SORTIT CR R4,R5 AT END OF TABLE 65100020 BNL RETURN BR-YES 65160020 LR R7,R4 65220020 SORTIT1 AR R7,R6 POINT TO NXT ENTRY 65280020 CR R7,R5 IS ONE PASS DONE 65340020 BNL SORTIT0 BR-YES 65400020 CLC L0(L2,R4),L0(R7) 65460020 BL SORTIT1 65520020 BCTR R6,R0 65580020 EX R6,SWAP1 65640020 EX R6,SWAP2 65700020 EX R6,SWAP1 65760020 LA R6,L1(R6) 65820020 B SORTIT1 65880020 SWAP1 XC L0(L0,R4),L0(R7) 65940020 SWAP2 XC L0(L0,R7),L0(R4) 66000020 * 66060020 * 66120020 SETHEAD STM R14,R12,L12(R13) SAVE REGS 66180020 LH R15,L8(R4) CHECK COUNT 66240020 LTR R15,R15 IS IT ZERO 66300020 BZ SETADCON BR-YES SKIP SECTION 66360020 MVC IDFLD(L4),DUM3+L4 MOVE IN REC ID 66390020 MVC L0(L30,R3),HEADER1 SET 66430020 MVC FROMDAY(L3),L1(R4) UP 66480020 MVC TODAY(L3),L5(R4) HEADER 66540020 MVC L33(L33,R3),HEADER2 IF NOT ZERO 66600020 SWAPADCN LM R5,R6,RTNADDRS 66660020 MVC RTNADDRS(L48),RTNADDRS+L8 ADDJUST PTRS TO NXT DECT 66720020 STM R5,R6,RTNADDRS+L48 66780020 RETURN LM R14,R12,L12(R13) 66840020 SKIPPER BR R14 66900020 * 66960020 L0 EQU 0 67020020 L1 EQU 1 67080020 L2 EQU 2 67140020 L3 EQU 3 67200020 L4 EQU 4 67260020 L5 EQU 5 67320020 L6 EQU 6 67380020 L7 EQU 7 67440020 L8 EQU 8 67500020 L9 EQU 9 67560020 L10 EQU 10 67620020 L11 EQU 11 67680020 L12 EQU 12 67740020 L13 EQU 13 67800020 L16 EQU 16 67860020 L24 EQU 24 67920020 L27 EQU 27 67980020 L28 EQU 28 68040020 L30 EQU 30 68100020 L33 EQU 33 68160020 L48 EQU 48 68220020 L50 EQU 50 68280020 L64 EQU 64 68340020 L100 EQU 100 68400020 L234 EQU 234 68460020 L500 EQU 500 68520020 L2400 EQU 2400 68580020 L4095 EQU 4095 68640020 HEX00 EQU X'00' 68700020 HEXFF EQU X'FF' 68760020 HEX80 EQU X'80' 68820020 HEX78 EQU X'78' A48716 68821021 HEX7A EQU X'7A' A48716 68822021 HEX70 EQU X'70' 68880020 HEX4F EQU X'4F' 68940020 HEX75 EQU X'75' 69000020 HEXF0 EQU X'F0' 69060020 HEXF1 EQU X'F1' 69120020 * 69180020 DBLWORD DS D 69240020 * 69300020 FSAVE DS 18F 69360020 SAVE2 DS F 69420020 SAVE4 DS F 69480020 F35 DC F'35' 69540020 SPECADS DC A(SPECIALR-L4) 69600020 DC A(ASSTARTL-L2) 69660020 AREAADS DC A(AREASTA-L4) 69720020 DC A(AREASTAL-L1) 69780020 RTNADDRS DC A(MASTART-L4) 69840020 DC A(MASTARTL) 69900020 DC A(MPSTART-L4) 69960020 DC A(MPSTARTL) 70020020 DC A(ADSTART-L4) 70080020 DC A(ADSTARTL) 70140020 DC A(BSSTART-L4) 70200020 DC A(BSSTARTL) 70260020 DC A(SPSTART-L4) 70320020 DC A(SPSTARTL) 70380020 DC A(ASSTART-L4) 70440020 DC A(ASSTARTL) 70500020 DC A(FRBUFF-L4) 70560020 DC A(FRBUFFL) 70620020 H2 DC H'2' 70680020 H9 DC H'9' 70740020 H26 DC H'26' 70800020 SIZE DC H'3212' A48716 70860021 H30 DC H'30' 70920020 ZEROS DC XL4'00' 70980020 CHARFFFF DC 4X'FF' 71040020 CHARS DC C'0123456789ABCDEF' 71100020 HEADER1 DS 0CL30 71160020 DC CL5'CUA' 71220020 CUAFLD DC CL10' ' 71280020 DC CL10'2715 ID' 71340020 IDFLD DC CL5' ' 71400020 HEADER2 DS 0CL33 71460020 DC C'DATE RANGE - FROM - ' 71520020 FROMDAY DC C'XX TO - ' 71580020 TODAY DC C'XXX' 71640020 * 71700020 &DSECT SETC 'Y2715' 71760020 &CSECT SETC 'PENTRY' 71820020 PEDIT DC 2F'0' 71880020 DC A(LABELS) 71940020 DC H'0' 72000020 * 72060020 RESTART DC X'01' 72120020 DC X'000B8B00' SKIP TO CHAN 1 72180020 LABEL '' 72240020 * 72300020 LINE (1,1),(1,1),SKIP=2 72360020 ROUTINE DUM1,SKIPPER 72420020 LABEL '2715 ERROR LOG DATA SUMMARY' 72480020 * 72540020 LINE (8,24),(1,20) S21021 72590021 HEX CPU,0,2B S21021 72592021 HEX YSER1,0,3B S21021 72594021 LABEL 'MODEL -','SERIAL NO' S21021 72596021 LINE (40,1),(5,1) 72600020 ROUTINE TOTALREC,CONVERT 72660020 LABEL 'TOTAL NUMBER OF RECORDS PROCESSED' 72720020 * 72780020 LINE (29,35),(2,35) 72840020 ROUTINE DUM1,SKIPPER 72900020 LABEL '' 72960020 * 73020020 EJECT 73050020 LINE 73080020 ROUTINE DALOW,SETHEAD 73140020 LABEL 'DISK ADAPTER ERROR SUMMARY' 73200020 * 73260020 LINE ,(4,35),SKIP=1 73320020 ROUTINE DUM1,SKIPPER 73380020 ROUTINE DATOTAL,CONVERT 73440020 LABEL 'ERROR STATUS','TOTAL RECORDS PROCESSED' 73500020 * 73560020 LINE ,(5,35) 73620020 ROUTINE DB2BIT0,CONVERT 73680020 LABEL 'READ CHECK' 73740020 * 73800020 LINE 73860020 ROUTINE DB2BIT1,CONVERT 73920020 LABEL 'CSBI PTY ERROR - DATA' 73980020 * 74040020 LINE ,(5,34) 74100020 ROUTINE DB2BIT2,CONVERT 74160020 LABEL 'CSBI PTY ERROR - ADDR','READ/WRITE OP CODE STATUS' 74220020 * 74280020 LINE ,(5,35) 74340020 ROUTINE DB2BIT3,CONVERT 74400020 ROUTINE DB3BIT0,CONVERT 74460020 LABEL 'DATA REG PARITY CK','READ LABEL' 74520020 * 74580020 LINE 74640020 ROUTINE DB2BIT4,CONVERT 74700020 ROUTINE DB3BIT1,CONVERT 74760020 LABEL 'ADDR REG PARITY CX','WRITE' 74820020 * 74880020 LINE 74940020 ROUTINE DB2BIT5,CONVERT 75000020 ROUTINE DB3BIT2,CONVERT 75060020 LABEL 'OVERRUN','READ CHECK' 75120020 * 75180020 LINE 75240020 ROUTINE DB2BIT6,CONVERT 75300020 ROUTINE DB3BIT3,CONVERT 75360020 LABEL 'WRITE SELECT CHECK','READ' 75420020 * 75480020 LINE ,,SKIP=2 75540020 ROUTINE DB2BIT7,CONVERT 75600020 MASTARTL LABEL 'MODULO 4/LENGTH CK' 75660020 * 75720020 EJECT 75750020 MASTART LINE (29,35),(2,35),SKIP=2 75780020 ROUTINE MALOW,SETHEAD 75840020 LABEL '2790 ADAPTER ERROR SUMMARY' 75900020 * 75960020 LINE ,(4,35),SKIP=1 76020020 ROUTINE DUM1,SKIPPER 76080020 ROUTINE MATOTAL,CONVERT 76140020 LABEL '','TOTAL ERROR RECORDS' 76200020 * 76260020 LINE 76320020 ROUTINE DUM1,SKIPPER 76380020 LABEL 'PC ADAPTER STATUS' 76440020 * 76500020 LINE ,(5,34) 76560020 ROUTINE MB1BIT0,CONVERT 76620020 LABEL 'TRANSMFT ACTIVE FRAME','PARITY ERRORS' 76680020 * 76740020 LINE 76800020 ROUTINE MB1BIT1,CONVERT 76860020 ROUTINE MB2BIT0,CONVERT 76920020 LABEL 'RECEIVE CHARACTER SYNC',' ACCUMULATOR HIGH', C76980020 'SERVICE REQUESTS' 77040020 * 77100020 LINE ,(5,35) 77160020 ROUTINE MB1BIT2,CONVERT 77220020 ROUTINE MB2BIT1,CONVERT 77280020 ROUTINE MB3BIT0,CONVERT 77340020 LABEL 'LOOP ACTIVE','ACCUMULATOR LOW','RECEIVE' 77400020 LINE 77460020 ROUTINE MB1BIT3,CONVERT 77520020 ROUTINE MB2BIT2,CONVERT 77580020 ROUTINE MB3BIT1,CONVERT 77640020 LABEL 'RECEIVE ACTIVE FRAME','TRANSMIT SHIFT REGISTER', X77700020 'TRANSMIT' 77760020 * 77820020 LINE 77880020 ROUTINE DUM1,SKIPPER 77940020 ROUTINE MB2BIT3,CONVERT 78000020 LABEL ' ','RECEIVE SHIFT REGISTER' 78060020 * 78120020 LINE ,(4,35) 78180020 ROUTINE DUM1,SKIPPER 78240020 ROUTINE MB2BIT7,CONVERT 78300020 ROUTINE MB3BIT4,CONVERT 78360020 LABEL 'SEGMENT STATUS',' CONTROL REGISTER 2', *78420020 'PC NOT RECEIVING FRAME' 78480020 * 78540020 LINE 78600020 ROUTINE MB1BIT4,CONVERT 78660020 ROUTINE DUM1,SKIPPER 78720020 ROUTINE MB2BIT4,CONVERT 78780020 LABEL ' SEGMENT A ACTIVE',' ','TRANSMIT FRAME OVERRUN' 78840020 LINE 78900020 ROUTINE MB1BIT5,CONVERT 78960020 ROUTINE DUM1,SKIPPER 79020020 ROUTINE MB2BIT5,CONVERT 79080020 LABEL ' SEGMENT B ACTIVE',' ','RECEIVE FRAME OVERRUN' 79140020 * 79200020 LINE 79260020 ROUTINE MB1BIT6,CONVERT 79320020 ROUTINE MB3BIT6,CONVERT 79380020 ROUTINE MB2BIT6,CONVERT 79440020 LABEL ' SEGMENT C ACTIVE','RECEIVE RESET ERROR', X79500020 'RECEIVE RE-SYNC ERROR' 79560020 LINE ,,SKIP=2 79620020 ROUTINE MB1BIT7,CONVERT 79680020 ROUTINE MB3BIT7,CONVERT 79740020 ROUTINE MB3BIT5,CONVERT 79800020 MPSTARTL LABEL ' SEGMENT D ACTIVE','TRANSMIT RESET ERROR', X79860020 'LOST LOOP SYNC' 79920020 * 79980020 EJECT 80010020 MPSTART LINE (29,35),(2,35),SKIP=2 80040020 ROUTINE MPLODATE,SETHEAD 80100020 LABEL 'MPX ADAPTER ERROR SUMMARY' 80160020 * 80220020 LINE ,(4,35),SKIP=1 80280020 ROUTINE DUM1,SKIPPER 80340020 ROUTINE MPTOTAL,CONVERT 80400020 LABEL 'ERROR STATUS','TOTAL RECORDS PROCESSED' 80460020 * 80520020 LINE ,(5,35) 80580020 ROUTINE PB3BIT0,CONVERT 80640020 LABEL 'PROGRAM CHECK' 80700020 * 80760020 LINE 80820020 ROUTINE PB3BIT2,CONVERT 80880020 LABEL 'I/O BUS OUT CHECK' 80940020 * 81000020 LINE 81060020 ROUTINE PB3BIT3,CONVERT 81120020 LABEL 'EQUIPMENT CHECK' 81180020 * 81240020 LINE 81300020 ROUTINE PB3BIT3,CONVERT 81360020 LABEL 'XFER CHECK' 81420020 * 81480020 LINE ,,SKIP=2 81540020 ROUTINE PB3BIT7,CONVERT 81600020 ADSTARTL LABEL 'I/O BUS IN CHECK' 81660020 * 81720020 EJECT 81750020 ADSTART LINE (29,35),(2,35),SKIP=2 81780020 ROUTINE ADLODATE,SETHEAD 81840020 LABEL '2740 ADAPTER ERROR SUMMARY' 81900020 * 81960020 LINE ,(4,35),SKIP=1 82020020 ROUTINE DUM1,SKIPPER 82080020 ROUTINE ADTOTAL,CONVERT 82140020 LABEL 'HARDWARE ERROR','TOTAL RECORDS PROCESSED' 82200020 * 82260020 LINE ,(5,35) 82320020 ROUTINE AB2BIT3,CONVERT 82380020 LABEL 'KEYBOARD BIT OVERRUN' 82440020 * 82500020 LINE 82560020 ROUTINE AB2BIT5,CONVERT 82620020 LABEL 'ADAPTER INPUT PRTY ERR' 82680020 * 82740020 LINE ,,SKIP=2 82800020 ROUTINE AB2BIT6,CONVERT 82860020 BSSTARTL LABEL 'CSBO PARITY ERROR' 82920020 * 82980020 EJECT 83010020 BSSTART LINE (29,35),(2,35),SKIP=2 83040020 ROUTINE BSLODATE,SETHEAD 83100020 LABEL 'BSC ADAPTER ERROR SUMMARY' 83160020 * 83220020 LINE ,(4,35) 83280020 ROUTINE BSTOTAL,CONVERT 83340020 LABEL 'TOTAL RECORDS PROCESSED' 83400020 * 83460020 LINE ,,SKIP=1 83520020 ROUTINE DUM1,SKIPPER 83580020 LABEL 'MODE OF OPERATION','BSC STATUS','BSC ADAPTER STATUX83640020 S' 83700020 * 83760020 LINE ,(5,35) 83820020 ROUTINE BB0BIT5,CONVERT 83880020 ROUTINE BB1BIT0,CONVERT 83940020 ROUTINE BB3BIT0,CONVERT 84000020 LABEL 'INITIALIZATION','LOST OPERATIONAL COND', C84060020 'DATA SET READY OFF' 84120020 * 84180020 LINE 84240020 ROUTINE BB0BIT6,CONVERT 84300020 ROUTINE BB1BIT3,CONVERT 84360020 ROUTINE BB3BIT1,CONVERT 84420020 LABEL 'TRANSMIT TEXT','TEXT TIMEOUT','CLEAR TO SEND OFF' 84480020 * 84540020 LINE 84600020 ROUTINE BB0BIT7,CONVERT 84660020 ROUTINE BB1BIT4,CONVERT 84720020 ROUTINE BB3BIT2,CONVERT 84780020 LABEL 'RECEIVE TEXT','N - RETRYS','OVERRUN' 84840020 * 84900020 LINE 84960020 ROUTINE BB0BIT7,SKIPPER 85020020 ROUTINE BB1BIT5,CONVERT 85080020 ROUTINE BB3BIT3,CONVERT 85140020 LABEL '','INVALID CHARACTER','LOST BIT SERVICE' 85200020 * 85260020 LINE ,(4,35) 85320020 ROUTINE BB0BIT7,SKIPPER 85380020 ROUTINE BB1BIT6,CONVERT 85440020 ROUTINE BB3BIT4,CONVERT 85500020 LABEL 'HARDWARE ERROR',' DATA CHECK',' TRANSMIT' 85560020 * 85620020 LINE ,(5,35) 85680020 ROUTINE BB2BIT3,CONVERT 85740020 ROUTINE BB1BIT7,CONVERT 85800020 ROUTINE BB3BIT5,CONVERT 85860020 LABEL 'XFER ADAPT WORD LATCH','RESPONSE TIMEOUT', C85920020 'DATA TERMINAL READY' 85980020 * 86040020 LINE 86100020 ROUTINE BB2BIT4,CONVERT 86160020 ROUTINE BB2BIT4,SKIPPER 86220020 ROUTINE BB3BIT6,CONVERT 86280020 LABEL 'BSC CHARACTER OVERRUN','','REQUEST TO SEND' 86340020 * 86400020 LINE 86460020 ROUTINE BB2BIT5,CONVERT 86520020 ROUTINE BB2BIT5,SKIPPER 86580020 ROUTINE BB3BIT7,CONVERT 86640020 LABEL 'ADAPTER IN PARITY ERROR','','DATA CARRIER OFF' 86700020 * 86760020 LINE ,,SKIP=2 86820020 ROUTINE BB2BIT6,CONVERT 86880020 SPSTARTL LABEL 'CSBO PARITY ERROR' 86940020 * 87000020 EJECT 87030020 SPSTART LINE (29,35),(2,35),SKIP=2 87060020 ROUTINE SPLODATE,SETHEAD 87120020 LABEL 'SPECIAL ERROR LOG SUMMARY' 87180020 * 87240020 LINE ,(4,35) 87300020 ROUTINE SPTOTAL,CONVERT 87360020 LABEL 'TOTAL RECORDS PROCESSED' 87420020 * 87480020 LINE (46,35),(5,35),SKIP=1 87540020 ROUTINE SP70,CONVERT 87600020 LABEL 'ERROR CODE 70 TOTAL RECORDS PROCESSED -' 87660020 * 87720020 LINE 87780021 ROUTINE SP75,CONVERT 87840020 LABEL 'ERROR CODE 75 TOTAL RECORDS PROCESSED -' 87900020 * 87960020 LINE 87961021 ROUTINE SP78,CONVERT A48716 87962021 LABEL 'ERROR CODE 78 TOTAL RECORDS PROCESSED -' A48716 87963021 LINE 87964021 ROUTINE SP79,CONVERT A48716 87965021 LABEL 'ERROR CODE 79 TOTAL RECORDS PROCESSED -' A48716 87966021 LINE 87967021 ROUTINE SP7A,CONVERT A48716 87968021 LABEL 'ERROR CODE 7A TOTAL RECORDS PROCESSED -' A48716 87969021 LINE ,,SKIP=2 A48716 87970021 ROUTINE SP7X,CONVERT A48716 87971021 LABEL 'ERROR CODE 7X TOTAL RECORDS PROCESSED -' A48716 87972021 LINE ,,SKIP=1 88020020 ROUTINE DUM1,SKIPPER 88080020 LABEL 'AREA STA. ERROR ERROR ERROR ERRORX88140020 ' 88200020 LINE 88260020 ROUTINE DUM1,SKIPPER 88320020 LABEL ' ADDRESS CODE 71 CODE 72 CODE 73 CODE 7X88380020 4' 88440020 LINE ,,SKIP=1 88500020 ROUTINE DUM3,SKIPPER 88560020 LABEL ' ----- ----- ----- ----- -----X88620020 ' 88680020 LINE ,,SKIP=1 88740020 ROUTINE SP,SORTSPEC 88800020 LABEL '' 88860020 SPECIALR LINE (8,11),(1,1),SKIP=1 88920020 ROUTINE SP,SETSPEC 88980020 LABEL '' 89000020 LINE 89020020 ROUTINE SP,SKIPPER 89040020 ASSTARTL LABEL '' 89060020 * 89100020 EJECT 89130020 * 89160020 ASSTART LINE (29,35),(2,35),SKIP=2 89220020 ROUTINE ASLODATE,SETHEAD 89280020 LABEL 'AREA STATION ERROR SUMMARY' 89340020 * 89400020 LINE 89460020 ROUTINE ASTOTAL,CONVERT 89520020 LABEL 'TOTAL RECORDS PROCESSED' 89580020 * 89640020 LINE ,(5,1),SKIP=1 89700020 ROUTINE DUM1,SKIPPER 89760020 LABEL 'ERROR TYPE---------(0)------(1)------(2)------(3)-X89820020 -----(4)------(5)------(6)------(7)------(8)------(9)' 89880020 * 89940020 LINE ,(14,1) 90000020 ROUTINE DUM1,SKIPPER 90060020 LABEL 'TOTAL AREA STA DEVICE INVALID CHANGE CHANGEX90120020 - END REQST RECEIVE NULL RECORD VALID' 90180020 * 90240020 LINE ,(1,1) 90300020 ROUTINE DUM1,SKIPPER 90360020 LABEL 'AREA DEV. RECORDS ADDRESS ADDRESS AREA STA INX90420020 -DATA IN STATUS STATUS DATA ACKNWLDG LGTH CHK CHAR *90480020 CK' 90540020 * 90600020 LINE (2,1),,SKIP=1 90660020 ROUTINE DUM1,SKIPPER 90840020 LABEL 'STA. ADDR PROCESSED ERROR ERROR RESPONSE *90900020 BYTE BYTE ERROR OVERRUN OVERRUN ERROR ERR*90960020 OR' 91020020 * 91080020 LINE ,,SKIP=1 91140020 ROUTINE AS,SORTAREA 91200020 LABEL '' 91260020 AREASTA LINE 91320020 ROUTINE AS,SETAREA 91380020 AREASTAL LABEL '' 91440020 * 91500020 LINE (15,1),(3,1) 91560020 ROUTINE ASF0,CONVERT 91620020 LABEL 'F0' 91680020 * 91740020 LINE 91800020 ROUTINE ASF1,CONVERT 91860020 FRBUFFL LABEL 'F1' 91920020 * 91980020 * 92040020 EJECT 92070020 FRBUFF LINE 92100020 ROUTINE DUM1,FREECORE 92160020 LABEL '' 92220020 DC X'FF' 92280020 DC XL6'00' 92340020 DC C'$' 92400020 LABELS EQU * 92460020 LSTART 92520020 END 92580020 ./ ADD SSI=02013609,NAME=IFCSUKNO,SOURCE=0 *************************************************************** S21021 00050021 * 00100021 ************ ENTIRE MODULE REPLACED UNDER CODE S21021 00150021 SPACE 2 00200021 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 00250021 MACRO 00300021 &NAME LINE &DATA,&LABEL,&SKIP= 00350021 .* THIS MACRO ESTABLISHES THE MARGINS OR 00400021 .* COLUMN SETTINGS FOR EACH LINE. IT 00450021 .* GENERATES NECESSARY CARRIAGE CONTROL 00500021 .* ENTRIES. LASTLY IT DETERMINES THE 00550021 .* NUMBER OF ENTRIES ASSOCIATED WITH 00600021 .* THE PREVIOUS LINE AND STORES THAT # 00650021 .* INTO THE APPROPRIATE BYTE. 00700021 .* &DATA(1) - CHARACTER POSITION TO BEGIN 00750021 .* DATA. 00800021 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 00850021 .* DATA COLUMN STARTING CHARACTERS. 00900021 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 00950021 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 01000021 .* STARTING CHARACTERS. 01050021 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 01100021 .* TO BEGIN NEXT PRINTED LINE. 01150021 .* NEW ENTRIES ARE GENERATED ONLY WHEN 01200021 .* NECESSARY. OMISSION OF ITEMS MEANS 01250021 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 01300021 .* SETTINGS. A LINE MACRO IS REQUIRED 01350021 .* FOR EACH PRINTED LINE. IF NO SETTING 01400021 .* CHANGES ARE REQUIRED ALL OPERANDS 01450021 .* ARE OMITTED IN WHICH CASE ONLY THE 01500021 .* # OF ENTRIES FOR THE PREVIOUS LINE 01550021 .* IS COMPUTED. THIS MACRO MUST BE THE 01600021 .* FIRST MACRO INSTRUCTION ISSUED FOR 01650021 .* THE SUBJECT LINE 01700021 GBLA &DB,&DT,&LB,<,&NRENTS 01750021 GBLA &LASTCC,&INITIAL 01800021 GBLC &NRENTSX 01850021 GBLC &CARRCON 01900021 GBLB &TEST 01950021 LCLA &S 02000021 &NAME DS 0C 02050021 AIF (&INITIAL EQ 0).FIRSTLN 02100021 LINEND 02150021 AGO .NTFIRST 02200021 .FIRSTLN ANOP 02250021 &NRENTSX SETC 'N&SYSNDX' 02300021 &INITIAL SETA 1 02350021 N&SYSNDX EQU * 02400021 .NTFIRST ANOP 02450021 DC AL1(0) 02500021 AIF ('&DATA(1)' EQ '').CKDTABS 02550021 AIF (&DATA(1) EQ &DB).CKDTABS 02600021 &DB SETA &DATA(1) 02650021 AGO .AA 02700021 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 02750021 AIF (&DATA(2) EQ &DT).NCDATA 02800021 AGO .CC 02850021 .AA AIF ('&DATA(2)' EQ '').BB 02900021 AIF (&DATA(2) EQ &DT).BB 02950021 .CC ANOP 03000021 &DT SETA &DATA(2) 03050021 .BB DC XL2'FFFE' 03100021 DC FL1'&DB' 03150021 DC FL1'&DT' 03200021 &NRENTS SETA &NRENTS+1 03250021 .NCDATA ANOP 03300021 AIF ('&LABEL(1)' EQ '').CKLTABS 03350021 AIF (&LABEL(1) EQ &LB).CKLTABS 03400021 &LB SETA &LABEL(1) 03450021 AGO .AAA 03500021 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 03550021 AIF (&LABEL(2) EQ <).NCLABEL 03600021 AGO .CCC 03650021 .AAA AIF ('&LABEL(2)' EQ '').BBB 03700021 AIF (&LABEL(2) EQ <).BBB 03750021 .CCC ANOP 03800021 < SETA &LABEL(2) 03850021 .BBB DC XL2'FFFF' 03900021 DC FL1'&LB' 03950021 DC FL1'<' 04000021 &NRENTS SETA &NRENTS+1 04050021 .NCLABEL ANOP 04100021 AIF ('&SKIP' NE '').CONT 04150021 AIF (&TEST EQ 0).NOCHANG 04200021 &S SETA &LASTCC 04250021 AGO .DEFAULT 04300021 .CONT ANOP 04350021 AIF (&TEST EQ 0).AB 04400021 &S SETA &SKIP 04450021 .DEFAULT ANOP 04500021 ORG &CARRCON+3 04550021 DC AL.3(0),AL.2(&S),AL.3(1) 04600021 ORG 04650021 &LASTCC SETA &S 04700021 &TEST SETB 0 04750021 AGO .DD 04800021 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 04850021 A&SYSNDX DC XL2'FFFB' 04900021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 04950021 DC FL1'9' 05000021 &LASTCC SETA &SKIP 05050021 &TEST SETB 1 05100021 &CARRCON SETC 'A&SYSNDX' 05150021 &NRENTS SETA &NRENTS+1 05200021 .DD ANOP 05250021 .NOCHANG ANOP 05300021 MEND 05350021 EJECT 05400021 SPACE 2 05450021 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 05500021 MACRO 05550021 &NAME ROUTINE &LOGITEM,&RNAME 05600021 GBLC &DSECT,&CSECT 05650021 GBLC &ITEM(1000) 05700021 GBLA &SHIFT(1000),&ITEMNBR 05750021 GBLA &NRENTS 05800021 LCLA &ISHIFT,&NDX 05850021 .LOOP ANOP 05900021 &NDX SETA &NDX+1 05950021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 06000021 AIF (&NDX LT &ITEMNBR).LOOP 06050021 MNOTE *,'LOG ITEM NOT DEFINED' 06100021 MEXIT 06150021 .FOUND ANOP 06200021 &ISHIFT SETA &SHIFT(&NDX) 06250021 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 06300021 DC AL.4(&ISHIFT),AL.12(&RNAME-&CSECT) 06350021 &NRENTS SETA &NRENTS+1 06400021 MEND 06450021 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 06500021 SPACE 2 06550021 MACRO 06600021 &NAME DSGEN &X1,&X2,&X3,&X4,&X5,&X6,&X7,&X8,&X9,&X10,&X11,&X12,&X13,X06650021 &X14,&X15,&X16,&X17,&X18,&X19,&X20,&X21,&X22,&X23,&X24, X06700021 &X25,&X26,&X27,&X28,&X29,&X30,&X31,&X32 06750021 .* THIS MACRO GENERATES ONE DSECT WORD 06800021 .* FORMATTED FOR THE SUBJECT LOG RECORD 06850021 .* EACH OPERAND HAS TWO SUB LISTS. THE 06900021 .* FIRST IS THE NAME OF THE LOG ITEM 06950021 .* WHILE THE SECOND IS THE # OF BITS TO 07000021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 07050021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 07100021 .* UNUSED BIT GROUPS MUST BE GIVEN 07150021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 07200021 .* THE LOG ITEMS MAY THEN BE USED IN 07250021 .* THE CONVERSION MACRO INSTRUCTIONS. 07300021 GBLC &ITEM(1000) 07350021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 07400021 LCLC &SYMBOL 07450021 LCLA &OP,&COUNT,&BYTE 07500021 .LOOP ANOP 07550021 &OP SETA &OP+1 07600021 &ITEMNBR SETA &ITEMNBR+1 07650021 &SYMBOL SETC '&SYSLIST(&OP,1)' 07700021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 07750021 MNOTE *,'NULL BIT COUNT FIELD' 07800021 MEXIT 07850021 .OK1 ANOP 07900021 AIF ('&SYMBOL' NE '').OK 07950021 MNOTE 'LOG ITEM SYMBOL NOT PROVIDED' 08000021 AGO .CNT 08050021 .OK ANOP 08100021 AIF ('&SYMBOL'(1,1) EQ '''').CNT *TEMP* 08150021 &SYMBOL EQU *+&BYTE 08200021 &ITEM(&ITEMNBR) SETC '&SYSLIST(&OP,1)' 08250021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 08300021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 08350021 .CNT ANOP 08400021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 08450021 &BYTE SETA &COUNT/8 08500021 AIF (&OP LT N'&SYSLIST).LOOP 08550021 AIF (&COUNT NE 32).NOT32 08600021 &NAME DS 4C 08650021 MEXIT 08700021 .NOT32 AIF (&COUNT NE 64).ERR 08750021 &NAME DS 8C 08800021 MEXIT 08850021 .ERR MNOTE '**BIT COUNT FIELDS DO NOT TOTAL 32 OR 64**' 08900021 MEND 08950021 MACRO 09000021 LINEND 09050021 .* THIS MACRO IS USED ONLY BY THE LINE 09100021 .* MACRO TO SET THE NUMBER OF ENTRIES 09150021 .* ASSOCIATED WITH EACH LINE. 09200021 GBLA &NRENTS 09250021 GBLC &NRENTSX 09300021 ORG &NRENTSX 09350021 DC FL1'&NRENTS' 09400021 ORG 09450021 &NRENTS SETA 0 09500021 B&SYSNDX EQU * 09550021 &NRENTSX SETC 'B&SYSNDX' 09600021 MEND 09650021 SPACE 2 09700021 EJECT 09750021 * LABEL MACRO LABEL MACRO LABEL MACRO LABEL MACRO * 09800021 SPACE 2 09850021 MACRO 09900021 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C09950021 &LABEL7,&LABEL8 10000021 .* THIS MACRO ALLOWS UP TO ACHT LABELS TO 10050021 .* BE SPECIFIED FOR A GIVEN LINE. THE 10100021 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 10150021 .* TION MARKS. THE COLUMN AND LINE END 10200021 .* CONTROLS WILL BE INSERTED BY THE 10250021 .* MACRO. OMITTED OPERANDS MEAN NO 10300021 .* LABEL REQUIRED FOR RESPECTIVE 10350021 .* COLUMN. THIS MACRO WILL ALSO ALERT 10400021 .* THE PROGRAMMER TO EXACTLY WHERE THE 10450021 .* TABLE MUST BE BROKEN IF NECESSARY 10500021 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 10550021 GBLC &LABELS(2000) 10600021 GBLC &LBL(100) 10650021 GBLA &LBLCTR(100) 10700021 GBLA &LABELNR 10750021 GBLA &NRENTS,&LPTR 10800021 LCLC &MARGIN,&TACK 10850021 LCLC &TEXT 10900021 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 10950021 &MARGIN SETC '*' 11000021 AIF ('&NAME' EQ '').LOOPOUT 11050021 &LPTR SETA &LPTR+1 11100021 &LBL(&LPTR) SETC '&NAME' 11150021 &LBLCTR(&LPTR) SETA &LABELNR+1 11200021 .LOOPOUT ANOP 11250021 &OP SETA &OP+1 11300021 &K SETA K'&SYSLIST(&OP) 11350021 AIF (&K GE 2).NORM 11400021 &K SETA 2 11450021 .NORM ANOP 11500021 &START SETA 2 11550021 AIF (&OP LT N'&SYSLIST).NOTLAST 11600021 &MARGIN SETC '$' 11650021 .NOTLAST ANOP 11700021 &NRCHAR SETA 8 11750021 &TACK SETC '' 11800021 .LOOPIN ANOP 11850021 &REMAIN SETA &K-&START 11900021 AIF (&REMAIN GE 8).MORE 11950021 &TACK SETC '&MARGIN' 12000021 &NRCHAR SETA &REMAIN 12050021 .MORE ANOP 12100021 &TEXT SETC '' 12150021 AIF (&REMAIN EQ 0).ENDTEXT 12200021 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 12250021 .ENDTEXT ANOP 12300021 &LABELNR SETA &LABELNR+1 12350021 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 12400021 &START SETA &START+8 12450021 AIF ('&TACK' EQ '').LOOPIN 12500021 AIF ('&TACK' EQ '*').LOOPOUT 12550021 MEND 12600021 SPACE 2 12650021 MACRO 12700021 LSTART 12750021 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 12800021 .* OF THE TABLE IS TO BEGIN. 12850021 GBLC &LABELS(2000) 12900021 GBLA &LABELNR 12950021 GBLC &LBL(100) 13000021 GBLA &LBLCTR(100) 13050021 LCLA &NDX,&CTR 13100021 LINEND 13150021 &CTR SETA 1 13200021 .LOOP ANOP 13250021 &NDX SETA &NDX+1 13300021 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 13350021 &LBL(&CTR) DC C'&LABELS(&NDX)' 13400021 &CTR SETA &CTR+1 13450021 AGO .LOOPCTL 13500021 .NOLBL ANOP 13550021 DC C'&LABELS(&NDX)' 13600021 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 13650021 MEND 13700021 SPACE 2 13750021 * BIN MACRO BIN MACRO BIN MACRO BIN MACRO BIN MACRO * 13800021 SPACE 2 13850021 MACRO 13900021 BIN &LOGITEM,&SKIP$OR 13950021 .* &LOGITEM - NAME OF ITEM IN LOG 14000021 .* RECORD DSECT 14050021 .* &SKIP$OR - NBR OF SPACES TO SKIP ON 14100021 .* MULTIPLE PRINT OR NBR OF SPACES 14150021 .* TO BACK UP FROM COLUMN FOR 14200021 .* START OF PRINTING. THE LETTER 14250021 .* B PRECEEDS THE NUMBER (B5) IF 14300021 .* THE LATTER IS DESIRED. OMISSION 14350021 .* OF THIS OPERAND FORCES OPTION 2 14400021 .* WITH BACKUP SPACING EQUAL TO 14450021 .* THE NUMBER OF BITS IN THE ITEM 14500021 .* DEFINITION (VIA MACRO 'DSGEN'). 14550021 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 14600021 .* TOTAL NUMBER OF BITS TO PRINT. 14650021 GBLC &ITEM(1000) 14700021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 14750021 GBLC &DSECT 14800021 LCLB &B 14850021 LCLA &IBITS,&NDX,&ISHIFT,&K 14900021 LCLA &TEMP,&T 14950021 LCLC &S 15000021 .LOOP ANOP 15050021 &NDX SETA &NDX+1 15100021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 15150021 AIF (&NDX LT &ITEMNBR).LOOP 15200021 MNOTE *,'YOU BLEW IT' 15250021 ROUTINE DUM,SKIPPER 15300021 MEXIT 15350021 .FOUND ANOP 15400021 &ISHIFT SETA &SHIFT(&NDX) 15450021 &IBITS SETA &BITS(&NDX) 15500021 &T SETA &IBITS-1 15550021 &B SETB 0 15600021 AIF ('&SKIP$OR' EQ '').BACKUP 15650021 &K SETA K'&SKIP$OR 15700021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 15750021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 15800021 &T SETA &S 15850021 .BACKUP ANOP 15900021 &NRENTS SETA &NRENTS+1 15950021 &TEMP SETA &ISHIFT 16000021 A&SYSNDX DC AL.12(&LOGITEM-&DSECT),XL.4'&TEMP' 16050021 AIF (&IBITS EQ 1 AND &B EQ 0).OUT 16100021 ORG A&SYSNDX 16150021 &B SETB 1 16200021 DC AL.12(&LOGITEM-&DSECT),XL.4'C' 16250021 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 16300021 .OUT ANOP 16350021 MEND 16400021 EJECT 16450021 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 16500021 SPACE 2 16550021 MACRO 16600021 HEX &LOGITEM,&SKIP$OR,&BYTES 16650021 .* THIS MACRO FACILITATES GENERATION OF THE 16700021 .* TABLE ENTRIES SPECIFYING HEX TYPE 16750021 .* CONVERSIONS. 16800021 .* &LOGITEM - NAME OF DATA ITEM TO BE 16850021 .* CONVERTED 16900021 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 16950021 .* MULTIPLE PRINT OR NBR OF SPACES TO 17000021 .* BACK UP FROM COLUMN FOR START OF 17050021 .* PRINTING. THE LETTER B PRECEEDS THE 17100021 .* NUMBER (B8) IF THE LATTER OPTION IS 17150021 .* DESIRED. OMISSION OF THIS OPERAND 17200021 .* FORCES OPTION 2 WITH BACKUP SPACING 17250021 .* EQUAL TO THE NUMBER OF BYTES SPECI- 17300021 .* FIED BY THE NEXT OPERAND (TWICE THIS 17350021 .* NUMBER IF SUFFIX IS EXPLICITLY OR 17400021 .* IMPLICITLY B). 17450021 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 17500021 .* PROCESS. THIS NUMBER IS SUFFIXED 17550021 .* WITH AN L,R, OR B TO STIPULATE 17600021 .* PRINTING OF THE LEFT HALF, RIGHT 17650021 .* HALF, OR BOTH HALVES OF THE BYTE 17700021 .* RESPECTIVELY. OMISSION OF THIS 17750021 .* OPERAND DEFAULTS TO B WITH THE NUM- 17800021 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 17850021 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 17900021 .* SARY. THIS MACRO MUST BE THE FIRST 17950021 .* MACRO INSTRUCTION ISSUED FOR THE 18000021 .* SUBJECT LINE(S). 18050021 GBLC &ITEM(1000),&DSECT 18100021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 18150021 LCLB &B 18200021 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 18250021 LCLC &S,&LETTER 18300021 .LOOP ANOP 18350021 &NDX SETA &NDX+1 18400021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 18450021 AIF (&NDX LT &ITEMNBR).LOOP 18500021 MNOTE *,'LOG ITEM NOT DEFINED' 18550021 MEXIT 18600021 .FOUND ANOP 18650021 &ISHIFT SETA &SHIFT(&NDX) 18700021 &IBITS SETA &BITS(&NDX) 18750021 &CODE SETA 1 18800021 &K SETA K'&BYTES 18850021 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 18900021 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 18950021 MEXIT 19000021 .OK AIF ('&BYTES' EQ '').USEDEFN 19050021 &LETTER SETC '&BYTES'(&K,1) 19100021 &S SETC '&BYTES'(1,&K-1) 19150021 &BYTESP SETA &S 19200021 AIF ('&LETTER' EQ 'B').BOTH 19250021 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 19300021 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 19350021 MEXIT 19400021 .USEDEFN ANOP 19450021 &BYTESP SETA &IBITS/8 19500021 .BOTH AIF (&ISHIFT NE 0).ERR 19550021 &CODE SETA 3 19600021 &T SETA &BYTESP*2-1 19650021 &S SETC '&T' 19700021 .OK2 AIF (&ISHIFT EQ 0).L 19750021 &CODE SETA 2 19800021 .L ANOP 19850021 &B SETB 1 19900021 AIF ('&SKIP$OR' EQ '').BACKUP 19950021 &K SETA K'&SKIP$OR 20000021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 20050021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 20100021 .BACKUP ANOP 20150021 &NRENTS SETA &NRENTS+1 20200021 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 20250021 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 20300021 .OUT ANOP 20350021 MEND 20400021 MACRO 20450021 SPECIAL &ROUTINE,&PARAM,&SPACE= 20500021 .* THIS MACRO GENERATES A SPECIAL ROUTINE 20550021 .* ENTRY TO BE PROCESSED BY THE SUM. M. 20600021 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 20650021 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 20700021 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 20750021 .* INTERPRETED AS AN ARGUMENT OF THE 20800021 .* SPECIAL ROUTINE. 20850021 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 20900021 .* ALLOCATE FOR REQUIRED PROCESSING. 20950021 GBLC &CSECT 21000021 GBLA &COUNTR 21050021 LCLA &ADD 21100021 DC AL1(128) 21150021 DC BL.8'&PARAM' 21200021 DC AL2(&ROUTINE-&CSECT) 21250021 DC AL2(&COUNTR) 21300021 &ADD SETA 1 21350021 AIF ('&SPACE' EQ '').NORM 21400021 &ADD SETA &SPACE 21450021 .NORM ANOP 21500021 &COUNTR SETA &COUNTR+&ADD 21550021 MEND 21600021 MACRO 21650021 SUM &LOGITEM,&MASK 21700021 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 21750021 .* FOR PROCESSING BY THE SUMMARY MODULE 21800021 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 21850021 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 21900021 .* THIS OPERAND SHOULD BE OMITTED FOR 21950021 .* SINGLE BIT ITEMS IN WHICH CASE THE 22000021 .* MASK WILL BE SET ACCORDING TO THE 22050021 .* OFF BYTE BIT DISPLACEMENT OF THE 22100021 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 22150021 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 22200021 GBLC &ITEM(1000),&DSECT 22250021 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 22300021 .LOOP ANOP 22350021 &NDX SETA &NDX+1 22400021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 22450021 AIF (&NDX LT &ITEMNBR).LOOP 22500021 MNOTE *,'LOGITEM NOT FOUND' 22550021 MEXIT 22600021 .FOUND ANOP 22650021 DC AL1(0) 22700021 &ISHIFT SETA &SHIFT(&NDX) 22750021 &IBITS SETA &BITS(&NDX) 22800021 AIF ('&MASK' EQ '').FORM 22850021 DC B'&MASK' 22900021 AGO .ITEM 22950021 .FORM ANOP 23000021 &BITNBR SETA &ISHIFT-7 23050021 &BITNBR SETA 0-&BITNBR 23100021 &M SETA 1 23150021 .LOOP2 ANOP 23200021 AIF (&BITNBR EQ 0).GOTIT 23250021 &M SETA &M*2 23300021 &BITNBR SETA &BITNBR-1 23350021 AGO .LOOP2 23400021 .GOTIT ANOP 23450021 DC AL1(&M) 23500021 .ITEM DC AL2(&LOGITEM-&DSECT) 23550021 DC AL2(&COUNTR) 23600021 &COUNTR SETA &COUNTR+1 23650021 MEND 23700021 GBLC &DSECT,&CSECT 23750021 * 23800021 &CSECT SETC 'IFCSUKNO' 23850021 &DSECT SETC 'COMMON' 23900021 TITLE 'IFCSUKNO-SUM TABLE-LINKNAME IFCSUKNO' 23950021 IFCSUKNO CSECT 24000021 * 24050021 USING *,R9 24100021 USING COMMON,R2 24150021 * 24200021 * 24250021 COMMON DSECT 24300021 DSGEN (CLASS,8),(DUM,24) 24350021 DSGEN (DUMA,32),(DATE,32) 24400021 * 24450021 CLASSARE DSECT 24500021 DS CL22 HEADER ALWAYS PRESENT 24550021 DS CL8 NOT ALWAYS PRESENT 24600021 DS CL8 24601021 CLASSCTR DS CL40 ALWAYS PRESENT 24650021 LODATE DS CL4 24700021 HIDATE DS CL4 24750021 RECTYPE DS CL2 @SF02909 24770021 IFCSUKNO CSECT 24800021 * 24850021 DC A(SUM) 24900021 DC A(EDIT) 24950021 DS F 25000021 SCSIZE DC H'33' @SF02909 25050021 EJECT 25100021 * 25150021 * SPECIAL ROUTINES FOR SUMM SECTION 25200021 * 25250021 USING CLASSARE,R6 25300021 SAVEDATE CLC DATE(L4),ZERO IS DATE IN ZERO 25350021 BE EXIT YES 25400021 CLC LODATE(L4),ZERO IS THIS FIRST DATE 25450021 BNE CHKLOW BR-NO 25500021 SAVELOW MVC LODATE(L4),DATE MOVE IN LOW DATE 25550021 CHKLOW CLC DATE(L4),DATE IS THIS DATE LOWER 25600021 BL SAVELOW YES 25650021 CHKHI CLC DATE(L4),HIDATE IS THIS DATE HI 25700021 BL EXIT BR-NO 25750021 SAVEHI MVC HIDATE(L4),DATE MOVE IN HIDATE 25800021 EXIT BR R14 25850021 SAVECLAS STM R5,R6,WORK SAVE WORK REGS 25900021 LA R5,CLASSCTR PICK UP ADDRESS OF COUNTERS 25950021 LA R6,L10 SET LOOP COUNTER 26000021 LOOP CLI L0(R5),HEXFF IS COUNTER IN USE 26050021 BNE EMPTY BR NOT USED 26100021 CLC L1(L1,R5),CLASS IS CLASS EQUAL 26150021 BE ADD1 BR YES 26200021 LA R5,L4(R5) BUMP TO NEXT SLOT 26250021 BCT R6,LOOP LOOP TEN TIMES 26300021 DONE LM R5,R6,WORK RESET REGS 26350021 DONEA BR R14 RETURN 26400021 EMPTY MVI L0(R5),HEXFF MOVE IN IN USE FLAG 26450021 MVC L1(L1,R5),CLASS MOVE IN CLASS 26500021 ADD1 LH R6,L2(R5) PICK UP COUNTER 26550021 LA R6,L1(R6) ADD 1 TO IT 26600021 STH R6,L2(R5) PUT IT BACK 26650021 B DONE 26700021 SAVETYPE MVC RECTYPE(L1),DUMA MOVE SUB ID TO SUM AREA 26710021 BR R14 @SF02909 26720021 * 26750021 * 26800021 EJECT 26850021 SUM DS 0F 26900021 SPECIAL SAVECLAS,0,SPACE=1 26950021 SPECIAL SAVEDATE,0,SPACE=4 27000021 SPECIAL SAVETYPE,0,SPACE=1 @SF02909 27020021 DC X'FF' 27050021 * 27100021 EJECT 27150021 &DSECT SETC 'SUMDSECT' 27200021 &CSECT SETC 'EDIT' 27250021 EDIT DS 0F 27300021 USING EDIT,R9 27350021 USING SUMDSECT,R2 27400021 DC A(ENTRIES) 27450021 DC C'IFCSUKNO' 27500021 R9PTR DS 2F 27550021 * 27600021 SUMDSECT DSECT 27650021 DSGEN (TBLPTR,32),(FWDPTR,32) 27700021 DSGEN (NOREC,16),(TYPE,8),(DUMM,8) 27750021 DSGEN (YCUA,24),(YSER,24),(YCPU,16) 27800021 DS 9H 27850021 DSGEN (FF1,8),(TYP1,8),(CNT1,16) 27950021 DSGEN (FF2,8),(TYP2,8),(CNT2,16) 28000021 DSGEN (FF3,8),(TYP3,8),(CNT3,16) 28050021 DSGEN (FF4,8),(TYP4,8),(CNT4,16) 28100021 DSGEN (FF5,8),(TYP5,8),(CNT5,16) 28150021 DSGEN (FF6,8),(TYP6,8),(CNT6,16) 28200021 DSGEN (FF7,8),(TYP7,8),(CNT7,16) 28250021 DSGEN (FF8,8),(TYP8,8),(CNT8,16) 28300021 DSGEN (FF9,8),(TYP9,8),(CNT9,16) 28301021 DSGEN (FFA,8),(TYPA,8),(CNTA,16) 28350021 DSGEN (LO,32),(HI,32) 28400021 DSGEN (SUBID,8),(FLAG,8) @SF02909 28410021 BNE BLNKOUT NOT 3211-CHK FOR SOFTWARE 28420021 * 28450021 IFCSUKNO CSECT 28500021 * 28550021 R0 EQU 0 28600021 R1 EQU 1 28650021 R2 EQU 2 28700021 R3 EQU 3 28750021 R4 EQU 4 28800021 R5 EQU 5 28850021 R6 EQU 6 28900021 R7 EQU 7 28950021 R8 EQU 8 29000021 R9 EQU 9 29050021 R10 EQU 10 29100021 R11 EQU 11 29150021 R12 EQU 12 29200021 R13 EQU 13 29250021 R14 EQU 14 29300021 R15 EQU 15 29350021 L0 EQU 0 29400021 L1 EQU 1 29450021 L2 EQU 2 29500021 L3 EQU 3 29550021 L4 EQU 4 29600021 L5 EQU 5 29650021 L6 EQU 6 29700021 L7 EQU 7 29750021 L8 EQU 8 29800021 L9 EQU 9 29850021 L10 EQU 10 29900021 L11 EQU 11 29950021 L12 EQU 12 30000021 L15 EQU 15 @SF02909 30010021 L16 EQU 16 @SF02909 30020021 L20 EQU 20 @SF02909 30030021 L24 EQU 24 30050021 L28 EQU 28 30100021 L30 EQU 30 @SF02909 30110021 L37 EQU 37 @SF02909 30120021 L41 EQU 41 @SF02909 30130021 L42 EQU 42 @SF02909 30140021 HEXFF EQU X'FF' 30150021 HEX0F EQU X'0F' 30200021 * 30250021 * SPECIAL ROUTINES EDIT SECTION 30300021 CONVERT ST R5,SAVE5 30350021 LH R5,L0(R4) PICK UP NUMBER TO CONVERT 30400021 CVD R5,WORK CONVERT IT 30450021 UNPK L0(L4,R3),WORK+L4(L4) UNPACK IT INTO PRINT LINE 30500021 MVZ L3(L1,R3),L0(R3) MOVE ON PROPER ZONE 30550021 L R5,SAVE5 RESET REG 30600021 SKIPPER BR R14 30650021 * 30700021 SETTYP CLI L0(R4),HEXFF IS COUNTER IN USE 30750021 BE SKIPPER 30800021 SR R15,R15 NO STOP PRINT 30850021 BR R14 RETURN 30900021 * 30950021 FREECORE STM R14,R12,L12(R13) 31000021 LR R12,R13 CHAIN SAVE AREAS 31050021 LA R13,FSAVE 31100021 ST R12,L4(R13) 31150021 ST R13,L8(R12) 31200021 L R3,FWDPTR PICK UP FORWARD PTR 31250021 ST R3,L28(R12) SET IT IN SAVED REG 2 31300021 LH R0,SIZE PICK UP SEZE 31350021 LR R1,R2 SET POINTER 31400021 FREEMAIN R,LV=(0),A=(1) 31450021 LTR R3,R3 ANY MORE AREAS TO PRINT 31500021 BZ RETURN BR-NO 31550021 LA R5,ENTRIES+L10 SET POINTERS 31600021 LA R6,LABELS-L1 TO RELLOOP 31650021 STM R5,R6,R9PTR SET THEM 31700021 RETURN LR R13,R12 31750021 LM R14,R12,L12(R13) RESET REGS 31800021 SR R15,R15 CLEAR REG FOR NO PRINT @SF02909 31820021 BR R14 31850021 * 31900021 SETDATE OI L3(R4),HEX0F SET UP SIGN TO PACK 31950021 UNPK WORKA(L8),L0(L4,R4) UNPACK VALUE 32000021 MVZ WORKA+L7(L1),WORKA SET UP ZONE TO PRINT 32050021 MVC L0(L3,R3),WORKA+L5 MOVE DAY 32100021 MVC L5(L2,R3),WORKA+L3 MOVE YEAR 32150021 BR R14 32200021 WHATYPE ST R5,SAVE5 SAVE REG @SF02909 32201021 L R5,R9PTR+L4 GET POINTER TO CURRENT LABEL 32202021 CHK3211 MVC TYPE1(L1),TYPE CHK TYPE FOR A 90 @SF02909 32203021 NI TYPE1,X'90' CHK FOR AN MDR RECORD @SF02909 32204021 CLI TYPE1,X'90' IS THIS A POSSIBLE MDR @SF02909 32205021 CLI SUBID,X'04' CHK SUB ID FOR A 3211 @SF02909 32206021 BNE BLNKOUT NO-GO TO BLANKOUT CUA @SF02909 32207021 MVI FLAG,X'FF' PUT IN FLAG TO SKIP TYPES 32208021 MVC L11(L30,R5),L10(R5) BLANK OUT LABEL @SF02909 32209021 MVC L11(L4,R5),HDR3211 MOVE IN 3211 @SF02909 32210021 MVC L16(L7,R5),HDR1 MOVE IN 'RECORD' @SF02909 32211021 MVC L37(L3,R5),CUAHDR MOVE IN 'CUA' @SF02909 32212021 B BACKB GO TO RETURN @SF02909 32213021 BLNKOUT BCTR R3,0 REDUCE PRINT POSITION @SF02909 32214021 MVC L0(L6,R3),L6(R3) BLANK OUT CUA @SF02909 32215021 BACKB L R5,SAVE5 RELOAD REG5 @SF02909 32216021 BR R14 RETURN @SF02909 32217021 CUAHDR DC CL3'CUA' @SF02909 32218021 HDR1 DC CL7'RECORDS' @SF02909 32219021 HDR3211 DC CL4'3211' @SF02909 32220021 TYPE1 DC X'00' @SF02909 32221021 WHERETO ST R5,SAVE5 SAVE REG @SF02909 32222021 CLI FLAG,X'FF' IS THIS MIH OR DDR @SF02909 32223021 BCR 7,R14 RETURN TO PRINT CLASSES 32224021 SR R15,R15 CLEAR FOR NO PRINT @SF02909 32225021 LA R5,LASTENT-4 NO RECORD TYPE COUNTERS PRINTED 32226021 ST R5,R9PTR UPDATE ENTRY TO END OF TABLE 32227021 L R5,SAVE5 RELOAD REG @SF02909 32228021 BR R14 RETURN @SF02909 32229021 EJECT 32250021 * 32300021 ENTRIES DS 0F 32350021 DC X'00010001' 32400021 DC X'00010001' 32450021 DC A(LABELS) 32500021 DC H'0' 32550021 * 32600021 DC X'01' 32650021 DC X'000B8B00' 32700021 LABEL '' 32750021 * 32800021 LINE (42,1),(1,1),SKIP=2 @SF02909 32850021 HEX YCUA,0,3B @SF02909 32900021 ROUTINE DUMM,WHATYPE @SF02909 32920021 LABEL 'SUMMARY OF UNKNOWN OR UNSUPPORTED RECORDS' 32950021 * 33000021 LINE ,(23,11),SKIP=1 33050021 ROUTINE DUMM,SKIPPER 33100021 LABEL 'DAY YEAR DAY YEAR' 33150021 LINE (23,11),(1,30),SKIP=2 33200021 ROUTINE LO,SETDATE 33250021 ROUTINE HI,SETDATE 33300021 LABEL 'RECORD DATE RANGE' 33350021 * 33400021 LINE (9,21),(1,17) 33450021 HEX YCPU,0,2B 33500021 HEX YSER,0,3B 33550021 LABEL 'MODEL -','SERIAL NO -' 33600021 * 33650021 LINE (25,1) 33700021 ROUTINE NOREC,CONVERT 33750021 LABEL 'TOTAL NUMBER OF RECORDS=' 33800021 * 33850021 LINE 33900021 ROUTINE DUMM,WHERETO @SF02909 33950021 LABEL 'CLASSES ENCOUNTERED(MAXIMUM OF 10)' 34000021 LINE (15,5),(1,1),SKIP=1 34050021 HEX TYP1,0,1B 34100021 ROUTINE CNT1,CONVERT 34150021 ROUTINE FF1,SETTYP 34200021 LABEL 'RECORD CLASS -' 34250021 LINE 34300021 HEX TYP2,0,1B 34350021 ROUTINE CNT2,CONVERT 34400021 ROUTINE FF2,SETTYP 34450021 LABEL 'RECORD CLASS -' 34500021 LINE 34550021 HEX TYP3,0,1B 34600021 ROUTINE CNT3,CONVERT 34650021 ROUTINE FF3,SETTYP 34700021 LABEL 'RECORD CLASS -' 34750021 LINE 34800021 HEX TYP4,0,1B 34850021 ROUTINE CNT4,CONVERT 34900021 ROUTINE FF4,SETTYP 34950021 LABEL 'RECORD CLASS -' 35000021 LINE 35050021 HEX TYP5,0,1B 35100021 ROUTINE CNT5,CONVERT 35150021 ROUTINE FF5,SETTYP 35200021 LABEL 'RECORD CLASS -' 35250021 LINE 35300021 HEX TYP6,0,1B 35350021 ROUTINE CNT6,CONVERT 35400021 ROUTINE FF6,SETTYP 35450021 LABEL 'RECORD CLASS -' 35500021 LINE 35550021 HEX TYP7,0,1B 35600021 ROUTINE CNT7,CONVERT 35650021 ROUTINE FF7,SETTYP 35700021 LABEL 'RECORD CLASS -' 35750021 LINE 35800021 HEX TYP8,0,1B 35850021 ROUTINE CNT8,CONVERT 35900021 ROUTINE FF8,SETTYP 35950021 LABEL 'RECORD CLASS -' 36000021 LINE 36050021 HEX TYP9,0,1B 36100021 ROUTINE CNT9,CONVERT 36150021 ROUTINE FF9,SETTYP 36200021 LABEL 'RECORD CLASS -' 36250021 LINE 36300021 HEX TYPA,0,1B 36350021 ROUTINE CNTA,CONVERT 36400021 ROUTINE FFA,SETTYP 36450021 LABEL 'RECORD CLASS -' 36500021 LABEL '' 36550021 LASTENT LINE , @SF02909 36600021 ROUTINE TBLPTR,FREECORE 36650021 LABEL '' 36700021 DC X'FF' 36750021 DC X'000000000000' 36800021 * 36850021 WORK DS D 36900021 FSAVE DS 18F 36950021 SAVE5 DS F 37000021 SIZE DC H'87' @SF02909 37050021 WORKA DC D'0' 37100021 ZERO DC F'0' 37150021 DC C'$' 37200021 LABELS EQU * 37250021 LSTART 37300021 END 37350021 ENTRIES EQU * 38000020 DC X'FF00' END OF TABLE FLAG 40000020 PEDIT DS 0F 42000020 DC A(PENTRY) 44000020 DC CL8'IFCSUKNO' 46000020 DC F'0' 48000020 DC F'0' 50000020 PENTRY EQU * 52000020 DC X'00010001' 54000020 DC X'00010001' 56000020 DC A(LABELS) 58000020 DC H'0' 60000020 DC X'FF' END OF TABLE 62000020 DC XL6'00' 64000020 LABELS EQU * 66000020 R9 EQU 9 68000020 END 70000020 ./ ADD SSI=03011367,NAME=IFCSVOL0,SOURCE=0 TITLE 'IFCSVOL0 MES DATA SUMMARY BY VOLUME' 00100021 MACRO 00200021 &NAME DSGEN 00300021 .* THIS MACRO GENERATES ONE DSECT WORD 00400021 .* FORMATTED FOR THE SUBJECT LOG RECORD 00500021 .* EACH OPERAND HAS TWO SUB LISTS. THE 00600021 .* FIRST IS THE NAME OF THE LOG ITEM 00700021 .* WHILE THE SECOND IS THE # OF BITS TO 00800021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 00900021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 01000021 .* UNUSED BIT GROUPS MUST BE GIVEN 01100021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 01200021 .* THE LOG ITEMS MAY THEN BE USED IN 01300021 .* THE CONVERSION MACRO INSTRUCTIONS. 01400021 GBLC &ITEM(1000) 01500021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 01600021 LCLB &ONLY1,&CTIND 01700021 LCLA &START1,&START2,&END1,&END2 01800021 LCLC &SYMBOL,&EQUSYM 01900021 LCLA &OP,&COUNT,&BYTE,&EQUCNT 02000021 ACTR 100000 02100021 .START AIF (N'&SYSLIST(&OP+1) LT 3).LOOP 02200021 AIF ('&SYSLIST(&OP+1,3)' EQ 'EQU').LOOP TEST FOR EQU 02300021 AIF ('&SYSLIST(&OP+1,3)' EQ '' AND '&SYSLIST(&OP+1,4)' EQ '').ERR1 02400021 AIF ('&SYSLIST(&OP+1,3)' EQ '' OR '&SYSLIST(&OP+1,4)' EQ '').ERR1 02500021 AIF ('&SYSLIST(&OP+1,3)' GT '&SYSLIST(&OP+1,4)').ERR3 02600021 &START1 SETA &SYSLIST(&OP+1,3) GET START COUNT OF 1 02700021 &START2 SETA &SYSLIST(&OP+1,4) GET FIRST END COUNT 02800021 AGO .SET2A BRANCH AROUND 02900021 .ERR1 MNOTE '**FIRST SYMBOL CONCATENATION INCOMPLETE**' 03000021 MEXIT 03100021 .SET2A AIF ('&SYSLIST(&OP+1,5)' EQ ''AND '&SYSLIST(&OP+1,6)' EQ '' X03200021 ).SET2 TEST FOR NO SECOND 03300021 AIF ('&SYSLIST(&OP+1,5)' EQ '' OR '&SYSLIST(&OP+1,6)' EQ '').ERR2 03400021 AIF ('&SYSLIST(&OP+1,5)' GT '&SYSLIST(&OP+1,6)').ERR3 03500021 &END1 SETA &SYSLIST(&OP+1,5) GET START COUNT OF 2 03600021 &END2 SETA &SYSLIST(&OP+1,6) GET END COUNT OF 2 03700021 AGO .LOOP 03800021 .SET2 ANOP 03900021 &ONLY1 SETB 1 INDICATE ONLY ONE CONCATENATION 04000021 AGO .LOOP 04100021 .ERR2 MNOTE '**SECOND SYMBOL CONCATENATION INCOMPLETE**' 04200021 MEXIT 04300021 .ERR3 MNOTE '**START GREATER THAN END CONCATENATION**' 04400021 MEXIT 04500021 .LOOP ANOP 04600021 &OP SETA &OP+1 04700021 AIF (&OP GT N'&SYSLIST).DONE TEST IF ALL DONE 04800021 &ITEMNBR SETA &ITEMNBR+1 04900021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 05000021 MNOTE '**NULL BIT COUNT FIELD**' 05100021 MEXIT 05200021 .OK1 ANOP 05300021 &SYMBOL SETC '&SYSLIST(&OP,1)' 05400021 AIF ('&SYMBOL' NE '').OK 05500021 * ***** LOG ITEM SYMBOL NOT PROVIDED ***** 05600021 AIF ('&SYSLIST(&OP,3)' NE 'EQU').CNT 05700021 AGO .START GET NEXT 05800021 .OK AIF (N'&SYSLIST(&OP) LT 3).NO3 TEST FOR OLD FORMAT 05900021 AIF ('&SYSLIST(&OP,3)' EQ 'EQU').EQU TEST FOR EQU 06000021 AIF (&ONLY1).OK2 TEST FOR ONLY ONE CONCAT 06100021 &SYMBOL SETC '&SYMBOL.&START1.&END1' GET 1 AND 2 CONCAT 06200021 AGO .NO3 BRANCH AROUND 06300021 .OK2 ANOP 06400021 &SYMBOL SETC '&SYMBOL.&START1' GET 1 CONCATENATED 06500021 .NO3 ANOP 06600021 &SYMBOL EQU *+&BYTE 06700021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL IN GLOBAL 06800021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 06900021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 07000021 .CNT ANOP 07100021 &CTIND SETB 1 SET COUNT INDICATOR 07200021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 07300021 &BYTE SETA &COUNT/8 07400021 AIF (N'&SYSLIST(&OP) LT 3).START TEST FOR OLD FORMAT 07500021 AIF (&ONLY1).TSTST TEST FOR ONLY ONE CONCAT 07600021 AIF (&END1 EQ &END2).TSTST TEST FOR SECOND END 07700021 &END1 SETA &END1+1 INCREMENT COUNT 07800021 &OP SETA &OP-1 DECREMENT INCREMENT 07900021 AGO .LOOP GENERATE NEXT 08000021 .TSTST ANOP 08100021 AIF (&START1 EQ &START2).LPDONE TEST FOR END 08200021 AIF (&ONLY1).NSET1 TEST FOR ONLY ONE CONCAT 08300021 &END1 SETA &SYSLIST(&OP,5) RE-INIT SECOND START COUNT 08400021 .NSET1 ANOP 08500021 &OP SETA &OP-1 DECREMENT INDEX 08600021 &START1 SETA &START1+1 INCREMENT FIRST COUNT 08700021 AGO .LOOP GO DO NEXT 08800021 .LPDONE ANOP 08900021 &ONLY1 SETB 0 CLEAR INDICATOR 09000021 AGO .START GO TEST FOR MORE SUB-LISTS 09100021 .DONE AIF (&COUNT-&COUNT/8*8 NE 0).ERR TEST FOR MULTIPLE OF EIGHT 09200021 AIF (&CTIND EQ 0).END NO DS IF NO COUNT 09300021 &COUNT SETA &COUNT/8 GET NUMBER OF BYTES 09400021 &NAME DS &COUNT.C 09500021 .END MEXIT 09600021 .ERR MNOTE '**BIT COUNT FLDS DO NOT TOTAL MULTIPLE OF 8**' 09700021 MEXIT 09800021 .EQU AIF ('&SYSLIST(&OP,4)' NE '').EQU1 TEST FOR NULL LABEL 09900021 .ERR4 MNOTE '**EQU OPERAND OMITTED OR NOT FOUND**' 10000021 MEXIT 10100021 .EQU1 AIF (&SYSLIST(&OP,2) LT 16).EQU2 COUNT OVER FIFTEEN 10200021 ***** THE FOLLOWING STATEMENT ***** 10300021 ***** NUMBER OF BITS EXCEED 15 - DO NOT USE AS BIN ***** 10400021 .EQU2 ANOP 10500021 &EQUCNT SETA 0 CLEAR COUNTER 10600021 &EQUSYM SETC '&SYSLIST(&OP,4)' GET EQU OPERAND 10700021 .EQULOP ANOP 10800021 &EQUCNT SETA &EQUCNT+1 INCREMENT INDEX 10900021 AIF ('&ITEM(&EQUCNT)' EQ '&EQUSYM').EQUOUT LABEL FOUND? 11000021 AIF (&EQUCNT EQ &ITEMNBR).ERR3 ALL TESTED? 11100021 AGO .EQULOP NO-GET NEXT 11200021 .EQUOUT ANOP 11300021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL NAME 11400021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) GET NUMBER OF BITS 11500021 &SHIFT(&ITEMNBR) SETA &SHIFT(&EQUCNT) GET SHIFT COUNT 11600021 &SYMBOL EQU &EQUSYM THIS SYMBOL EQUATED 11700021 AGO .START RETURN FOR NEXT 11800021 MEND 11900021 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 12000021 SPACE 2 12100021 MACRO 12200021 &NAME LINE &DATA,&LABEL,&SKIP= 12300021 .* THIS MACRO ESTABLISHES THE MARGINS OR 12400021 .* COLUMN SETTINGS FOR EACH LINE. IT 12500021 .* GENERATES NECESSARY CARRIAGE CONTROL 12600021 .* ENTRIES. LASTLY IT DETERMINES THE 12700021 .* NUMBER OF ENTRIES ASSOCIATED WITH 12800021 .* THE PREVIOUS LINE AND STORES THAT # 12900021 .* INTO THE APPROPRIATE BYTE. 13000021 .* &DATA(1) - CHARACTER POSITION TO BEGIN 13100021 .* DATA. 13200021 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 13300021 .* DATA COLUMN STARTING CHARACTERS. 13400021 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 13500021 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 13600021 .* STARTING CHARACTERS. 13700021 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 13800021 .* TO BEGIN NEXT PRINTED LINE. 13900021 .* NEW ENTRIES ARE GENERATED ONLY WHEN 14000021 .* NECESSARY. OMISSION OF ITEMS MEANS 14100021 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 14200021 .* SETTINGS. A LINE MACRO IS REQUIRED 14300021 .* FOR EACH PRINTED LINE. IF NO SETTING 14400021 .* CHANGES ARE REQUIRED ALL OPERANDS 14500021 .* ARE OMITTED IN WHICH CASE ONLY THE 14600021 .* # OF ENTRIES FOR THE PREVIOUS LINE 14700021 .* IS COMPUTED. THIS MACRO MUST BE THE 14800021 .* FIRST MACRO INSTRUCTION ISSUED FOR 14900021 .* THE SUBJECT LINE 15000021 GBLA &DB,&DT,&LB,<,&NRENTS 15100021 GBLA &LASTCC,&INITIAL 15200021 GBLC &NRENTSX 15300021 GBLC &CARRCON 15400021 GBLB &TEST 15500021 LCLA &S 15600021 &NAME DS 0C 15700021 AIF (&INITIAL EQ 0).FIRSTLN 15800021 LINEND 15900021 AGO .NTFIRST 16000021 .FIRSTLN ANOP 16100021 &NRENTSX SETC 'N&SYSNDX' 16200021 &INITIAL SETA 1 16300021 N&SYSNDX EQU * 16400021 .NTFIRST ANOP 16500021 DC AL1(0) 16600021 AIF ('&DATA(1)' EQ '').CKDTABS 16700021 AIF (&DATA(1) EQ &DB).CKDTABS 16800021 &DB SETA &DATA(1) 16900021 AGO .AA 17000021 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 17100021 AIF (&DATA(2) EQ &DT).NCDATA 17200021 AGO .CC 17300021 .AA AIF ('&DATA(2)' EQ '').BB 17400021 AIF (&DATA(2) EQ &DT).BB 17500021 .CC ANOP 17600021 &DT SETA &DATA(2) 17700021 .BB DC XL2'FFFE' 17800021 DC FL1'&DB' 17900021 DC FL1'&DT' 18000021 &NRENTS SETA &NRENTS+1 18100021 .NCDATA ANOP 18200021 AIF ('&LABEL(1)' EQ '').CKLTABS 18300021 AIF (&LABEL(1) EQ &LB).CKLTABS 18400021 &LB SETA &LABEL(1) 18500021 AGO .AAA 18600021 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 18700021 AIF (&LABEL(2) EQ <).NCLABEL 18800021 AGO .CCC 18900021 .AAA AIF ('&LABEL(2)' EQ '').BBB 19000021 AIF (&LABEL(2) EQ <).BBB 19100021 .CCC ANOP 19200021 < SETA &LABEL(2) 19300021 .BBB DC XL2'FFFF' 19400021 DC FL1'&LB' 19500021 DC FL1'<' 19600021 &NRENTS SETA &NRENTS+1 19700021 .NCLABEL ANOP 19800021 AIF ('&SKIP' NE '').CONT 19900021 AIF (&TEST EQ 0).NOCHANG 20000021 &S SETA &LASTCC 20100021 AGO .DEFAULT 20200021 .CONT ANOP 20300021 AIF (&TEST EQ 0).AB 20400021 &S SETA &SKIP 20500021 .DEFAULT ANOP 20600021 ORG &CARRCON+3 20700021 DC AL.3(0),AL.2(&S),AL.3(1) 20800021 ORG 20900021 &LASTCC SETA &S 21000021 &TEST SETB 0 21100021 AGO .DD 21200021 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 21300021 A&SYSNDX DC XL2'FFFB' 21400021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 21500021 DC FL1'9' 21600021 &LASTCC SETA &SKIP 21700021 &TEST SETB 1 21800021 &CARRCON SETC 'A&SYSNDX' 21900021 &NRENTS SETA &NRENTS+1 22000021 .DD ANOP 22100021 .NOCHANG ANOP 22200021 MEND 22300021 EJECT 22400021 * BIN MACRO BIN MACRO BIN MACRO BIN MACRO BIN MACRO * 22500021 SPACE 2 22600021 MACRO 22700021 BIN &LOGITEM,&SKIP$OR 22800021 .* &LOGITEM - NAME OF ITEM IN LOG 22900021 .* RECORD DSECT 23000021 .* &SKIP$OR - NBR OF SPACES TO SKIP ON 23100021 .* MULTIPLE PRINT OR NBR OF SPACES 23200021 .* TO BACK UP FROM COLUMN FOR 23300021 .* START OF PRINTING. THE LETTER 23400021 .* B PRECEEDS THE NUMBER (B5) IF 23500021 .* THE LATTER IS DESIRED. OMISSION 23600021 .* OF THIS OPERAND FORCES OPTION 2 23700021 .* WITH BACKUP SPACING EQUAL TO 23800021 .* THE NUMBER OF BITS IN THE ITEM 23900021 .* DEFINITION (VIA MACRO 'DSGEN'). 24000021 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 24100021 .* TOTAL NUMBER OF BITS TO PRINT. 24200021 GBLC &ITEM(1000) 24300021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 24400021 GBLC &DSECT 24500021 LCLB &B 24600021 LCLA &IBITS,&NDX,&ISHIFT,&K 24700021 LCLA &TEMP,&T 24800021 LCLC &S 24900021 .LOOP ANOP 25000021 &NDX SETA &NDX+1 25100021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 25200021 AIF (&NDX LT &ITEMNBR).LOOP 25300021 MNOTE *,'YOU BLEW IT' 25400021 ROUTINE DUM,SKIPPER 25500021 MEXIT 25600021 .FOUND ANOP 25700021 &ISHIFT SETA &SHIFT(&NDX) 25800021 &IBITS SETA &BITS(&NDX) 25900021 &T SETA &IBITS-1 26000021 &B SETB 0 26100021 AIF ('&SKIP$OR' EQ '').BACKUP 26200021 &K SETA K'&SKIP$OR 26300021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 26400021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 26500021 &T SETA &S 26600021 .BACKUP ANOP 26700021 &NRENTS SETA &NRENTS+1 26800021 &TEMP SETA &ISHIFT 26900021 A&SYSNDX DC AL.12(&LOGITEM-&DSECT),XL.4'&TEMP' 27000021 AIF (&IBITS EQ 1 AND &B EQ 0).OUT 27100021 ORG A&SYSNDX 27200021 &B SETB 1 27300021 DC AL.12(&LOGITEM-&DSECT),XL.4'C' 27400021 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 27500021 .OUT ANOP 27600021 MEND 27700021 EJECT 27800021 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 27900021 SPACE 2 28000021 MACRO 28100021 HEX &LOGITEM,&SKIP$OR,&BYTES 28200021 .* THIS MACRO FACILITATES GENERATION OF THE 28300021 .* TABLE ENTRIES SPECIFYING HEX TYPE 28400021 .* CONVERSIONS. 28500021 .* &LOGITEM - NAME OF DATA ITEM TO BE 28600021 .* CONVERTED 28700021 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 28800021 .* MULTIPLE PRINT OR NBR OF SPACES TO 28900021 .* BACK UP FROM COLUMN FOR START OF 29000021 .* PRINTING. THE LETTER B PRECEEDS THE 29100021 .* NUMBER (B8) IF THE LATTER OPTION IS 29200021 .* DESIRED. OMISSION OF THIS OPERAND 29300021 .* FORCES OPTION 2 WITH BACKUP SPACING 29400021 .* EQUAL TO THE NUMBER OF BYTES SPECI- 29500021 .* FIED BY THE NEXT OPERAND (TWICE THIS 29600021 .* NUMBER IF SUFFIX IS EXPLICITLY OR 29700021 .* IMPLICITLY B). 29800021 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 29900021 .* PROCESS. THIS NUMBER IS SUFFIXED 30000021 .* WITH AN L,R, OR B TO STIPULATE 30100021 .* PRINTING OF THE LEFT HALF, RIGHT 30200021 .* HALF, OR BOTH HALVES OF THE BYTE 30300021 .* RESPECTIVELY. OMISSION OF THIS 30400021 .* OPERAND DEFAULTS TO B WITH THE NUM- 30500021 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 30600021 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 30700021 .* SARY. THIS MACRO MUST BE THE FIRST 30800021 .* MACRO INSTRUCTION ISSUED FOR THE 30900021 .* SUBJECT LINE(S). 31000021 GBLC &ITEM(1000),&DSECT 31100021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 31200021 LCLB &B 31300021 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 31400021 LCLC &S,&LETTER 31500021 .LOOP ANOP 31600021 &NDX SETA &NDX+1 31700021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 31800021 AIF (&NDX LT &ITEMNBR).LOOP 31900021 MNOTE *,'LOG ITEM NOT DEFINED' 32000021 MEXIT 32100021 .FOUND ANOP 32200021 &ISHIFT SETA &SHIFT(&NDX) 32300021 &IBITS SETA &BITS(&NDX) 32400021 &CODE SETA 1 32500021 &K SETA K'&BYTES 32600021 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 32700021 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 32800021 MEXIT 32900021 .OK AIF ('&BYTES' EQ '').USEDEFN 33000021 &LETTER SETC '&BYTES'(&K,1) 33100021 &S SETC '&BYTES'(1,&K-1) 33200021 &BYTESP SETA &S 33300021 AIF ('&LETTER' EQ 'B').BOTH 33400021 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 33500021 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 33600021 MEXIT 33700021 .USEDEFN ANOP 33800021 &BYTESP SETA &IBITS/8 33900021 .BOTH AIF (&ISHIFT NE 0).ERR 34000021 &CODE SETA 3 34100021 &T SETA &BYTESP*2-1 34200021 &S SETC '&T' 34300021 .OK2 AIF (&ISHIFT EQ 0).L 34400021 &CODE SETA 2 34500021 .L ANOP 34600021 &B SETB 1 34700021 AIF ('&SKIP$OR' EQ '').BACKUP 34800021 &K SETA K'&SKIP$OR 34900021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 35000021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 35100021 .BACKUP ANOP 35200021 &NRENTS SETA &NRENTS+1 35300021 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 35400021 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 35500021 .OUT ANOP 35600021 MEND 35700021 SPACE 2 35800021 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 35900021 SPACE 2 36000021 MACRO 36100021 &NAME ROUTINE &LOGITEM,&RNAME 36200021 GBLC &DSECT,&CSECT 36300021 GBLC &ITEM(1000) 36400021 GBLA &SHIFT(1000),&ITEMNBR 36500021 GBLA &NRENTS 36600021 LCLA &ISHIFT,&NDX 36700021 .LOOP ANOP 36800021 &NDX SETA &NDX+1 36900021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 37000021 AIF (&NDX LT &ITEMNBR).LOOP 37100021 MNOTE *,'LOG ITEM NOT DEFINED' 37200021 MEXIT 37300021 .FOUND ANOP 37400021 &ISHIFT SETA &SHIFT(&NDX) 37500021 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 37600021 DC AL.4(&ISHIFT),AL.12(&RNAME-&CSECT) 37700021 &NRENTS SETA &NRENTS+1 37800021 MEND 37900021 EJECT 38000021 * LABEL MACRO LABEL MACRO LABEL MACRO LABEL MACRO * 38100021 SPACE 2 38200021 MACRO 38300021 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C38400021 &LABEL7,&LABEL8 38500021 .* THIS MACRO ALLOWS UP TO ACHT LABELS TO 38600021 .* BE SPECIFIED FOR A GIVEN LINE. THE 38700021 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 38800021 .* TION MARKS. THE COLUMN AND LINE END 38900021 .* CONTROLS WILL BE INSERTED BY THE 39000021 .* MACRO. OMITTED OPERANDS MEAN NO 39100021 .* LABEL REQUIRED FOR RESPECTIVE 39200021 .* COLUMN. THIS MACRO WILL ALSO ALERT 39300021 .* THE PROGRAMMER TO EXACTLY WHERE THE 39400021 .* TABLE MUST BE BROKEN IF NECESSARY 39500021 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 39600021 GBLC &LABELS(2000) 39700021 GBLC &LBL(100) 39800021 GBLA &LBLCTR(100) 39900021 GBLA &LABELNR 40000021 GBLA &NRENTS,&LPTR 40100021 LCLC &MARGIN,&TACK 40200021 LCLC &TEXT 40300021 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 40400021 &MARGIN SETC '*' 40500021 AIF ('&NAME' EQ '').LOOPOUT 40600021 &LPTR SETA &LPTR+1 40700021 &LBL(&LPTR) SETC '&NAME' 40800021 &LBLCTR(&LPTR) SETA &LABELNR+1 40900021 .LOOPOUT ANOP 41000021 &OP SETA &OP+1 41100021 &K SETA K'&SYSLIST(&OP) 41200021 AIF (&K GE 2).NORM 41300021 &K SETA 2 41400021 .NORM ANOP 41500021 &START SETA 2 41600021 AIF (&OP LT N'&SYSLIST).NOTLAST 41700021 &MARGIN SETC '$' 41800021 .NOTLAST ANOP 41900021 &NRCHAR SETA 8 42000021 &TACK SETC '' 42100021 .LOOPIN ANOP 42200021 &REMAIN SETA &K-&START 42300021 AIF (&REMAIN GE 8).MORE 42400021 &TACK SETC '&MARGIN' 42500021 &NRCHAR SETA &REMAIN 42600021 .MORE ANOP 42700021 &TEXT SETC '' 42800021 AIF (&REMAIN EQ 0).ENDTEXT 42900021 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 43000021 .ENDTEXT ANOP 43100021 &LABELNR SETA &LABELNR+1 43200021 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 43300021 &START SETA &START+8 43400021 AIF ('&TACK' EQ '').LOOPIN 43500021 AIF ('&TACK' EQ '*').LOOPOUT 43600021 MEND 43700021 SPACE 2 43800021 MACRO 43900021 LSTART 44000021 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 44100021 .* OF THE TABLE IS TO BEGIN. 44200021 GBLC &LABELS(2000) 44300021 GBLA &LABELNR 44400021 GBLC &LBL(100) 44500021 GBLA &LBLCTR(100) 44600021 LCLA &NDX,&CTR 44700021 LINEND 44800021 &CTR SETA 1 44900021 .LOOP ANOP 45000021 &NDX SETA &NDX+1 45100021 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 45200021 &LBL(&CTR) DC C'&LABELS(&NDX)' 45300021 &CTR SETA &CTR+1 45400021 AGO .LOOPCTL 45500021 .NOLBL ANOP 45600021 DC C'&LABELS(&NDX)' 45700021 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 45800021 MEND 45900021 SPACE 2 46000021 MACRO 46100021 LINEND 46200021 .* THIS MACRO IS USED ONLY BY THE LINE 46300021 .* MACRO TO SET THE NUMBER OF ENTRIES 46400021 .* ASSOCIATED WITH EACH LINE. 46500021 GBLA &NRENTS 46600021 GBLC &NRENTSX 46700021 ORG &NRENTSX 46800021 DC FL1'&NRENTS' 46900021 ORG 47000021 &NRENTS SETA 0 47100021 B&SYSNDX EQU * 47200021 &NRENTSX SETC 'B&SYSNDX' 47300021 MEND 47400021 MACRO 47500021 SPECIAL &ROUTINE,&PARAM,&SPACE= 47600021 .* THIS MACRO GENERATES A SPECIAL ROUTINE 47700021 .* ENTRY TO BE PROCESSED BY THE SUM. M. 47800021 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 47900021 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 48000021 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 48100021 .* INTERPRETED AS AN ARGUMENT OF THE 48200021 .* SPECIAL ROUTINE. 48300021 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 48400021 .* ALLOCATE FOR REQUIRED PROCESSING. 48500021 GBLC &CSECT 48600021 GBLA &COUNTR 48700021 LCLA &ADD 48800021 DC AL1(128) 48900021 DC BL.8'&PARAM' 49000021 DC AL2(&ROUTINE-&CSECT) 49100021 DC AL2(&COUNTR) 49200021 &ADD SETA 1 49300021 AIF ('&SPACE' EQ '').NORM 49400021 &ADD SETA &SPACE 49500021 .NORM ANOP 49600021 &COUNTR SETA &COUNTR+&ADD 49700021 MEND 49800021 MACRO 49900021 SUM &LOGITEM,&MASK 50000021 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 50100021 .* FOR PROCESSING BY THE SUMMARY MODULE 50200021 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 50300021 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 50400021 .* THIS OPERAND SHOULD BE OMITTED FOR 50500021 .* SINGLE BIT ITEMS IN WHICH CASE THE 50600021 .* MASK WILL BE SET ACCORDING TO THE 50700021 .* OFF BYTE BIT DISPLACEMENT OF THE 50800021 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 50900021 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 51000021 GBLC &ITEM(1000),&DSECT 51100021 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 51200021 .LOOP ANOP 51300021 &NDX SETA &NDX+1 51400021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 51500021 AIF (&NDX LT &ITEMNBR).LOOP 51600021 MNOTE *,'LOGITEM NOT FOUND' 51700021 MEXIT 51800021 .FOUND ANOP 51900021 DC AL1(0) 52000021 &ISHIFT SETA &SHIFT(&NDX) 52100021 &IBITS SETA &BITS(&NDX) 52200021 AIF ('&MASK' EQ '').FORM 52300021 DC B'&MASK' 52400021 AGO .ITEM 52500021 .FORM ANOP 52600021 &BITNBR SETA &ISHIFT-7 52700021 &BITNBR SETA 0-&BITNBR 52800021 &M SETA 1 52900021 .LOOP2 ANOP 53000021 AIF (&BITNBR EQ 0).GOTIT 53100021 &M SETA &M*2 53200021 &BITNBR SETA &BITNBR-1 53300021 AGO .LOOP2 53400021 .GOTIT ANOP 53500021 DC AL1(&M) 53600021 .ITEM DC AL2(&LOGITEM-&DSECT) 53700021 DC AL2(&COUNTR) 53800021 &COUNTR SETA &COUNTR+1 53900021 MEND 54000021 GBLC &DSECT,&CSECT 54100021 IFCSVOL0 CSECT 54200021 &CSECT SETC 'IFCSVOL0' 54300021 &DSECT SETC 'M3420' 54400021 M3420 DSECT 54500021 DSGEN (CLASSRC,8),(SYSREL,8),(SWITCHES,16), C54600021 (SPARES,32) 54700021 DSGEN (DATE,32),(TIME,32) 54800021 DSGEN (DUM2,8),(CPUSER,24),(CPUID,16),(DUM3,16) 54900021 DSGEN (,264) 55000021 DSGEN (PRIMCUA,8,0,2),(IORETRY,16),(,16) 55100021 DSGEN (VOLID,48),(BLKLENG,16),(,32),(TEMPRDS,8),(TEMPWRTS,8), C55200021 (SIOCNT,16),(PERMRDS,8),(PERMWRTS,8),(NOISEBLK,8), C55300021 (,8),(ERASEGPS,16),(CLNRACTS,16) 55400021 DSGEN (SPAR,8),(NOISE,8),(RWVRC,8),(MTELRCR,8) 55500021 DSGEN (EDCCRC,8),(ENVCKVRC,8),(OVERRUN,4),(SKEWCHK,4), C55600021 (CCOMPARE,4),(WRTTRVRC,4) 55700021 DSGEN (PEIDCHK,1),(MASKEXP,6),(PARITY,1),(TRKINERR,8), C55800021 (WRTTMCHK,4),(STRDCHK,4),(PARTREC,4),(EXCPAMB,4) 55900021 DSGEN (ORDROP,4),(FEEDTHRU,4),(EXP,4),(EARLBGRD,4), C56000021 (EARLNDRD,4),(SLBGRD,4),(SLWNDRD,4),(VELRETRY,4), C56100021 (EXP2,4),(VELCHNG,4),(EXP3A,4),(EXP3,4),(BACKWARD,8), ,56200021 (BUSOCHK,4),(ALUHRDER,4) 56300021 DSGEN (SNB,1,0,23,0,7) 56400021 DSGEN (TUSERIAL,16,EQU,SNB150) 56500021 IFCSVOL0 CSECT 56600021 USING M3420,R2 56700021 USING *,R9 56800021 DC A(ENTRIES) 56900021 DC A(EDIT) 57000021 REG8 DC F'0' 57100021 SCSIZE DC H'18' 57200021 R2 EQU 2 57300021 R3 EQU 3 57400021 R4 EQU 4 57500021 R5 EQU 5 57600021 R6 EQU 6 57700021 R7 EQU 7 57800021 R9 EQU 9 57900021 R14 EQU 14 58000021 R15 EQU 15 58100021 L0 EQU 0 58200021 L1 EQU 1 58300021 L2 EQU 2 58400021 L3 EQU 3 58500021 L4 EQU 4 58600021 L5 EQU 5 58700021 L6 EQU 6 58800021 L8 EQU 8 59000021 L28 EQU 28 59200021 L73 EQU 73 59300021 DISMOUNT EQU X'84' 59400021 F0 EQU X'F0' 59500021 FF EQU X'FF' 59600021 * * 59700021 * THIS ROUTINE WILL PUT A HIGH AND LOW DATE INTO THE COUNTER AREA. * 59800021 * THE FIRST TIME IT PUTS THE SAME DATE IN BOTH AREAS. WITH EACH NEW * 59900021 * RECORD A COMPARE IS DONE FOR A LOWER AND HIGHER DATE. * 60000021 * * 60100021 SETDATES CLC L0(L4,R3),ZEROES IS DATE IN COUNTER AREAS ZEROES 60200021 ST R5,SAVE5 SAVE REGISTER 60300021 BNE CHKLO 60400021 MVC L0(L4,R3),DATE MOVE DATE TO LO AREA 60500021 MVC L4(L4,R3),DATE MOVE DATE TO HI AREA 60600021 B RETURN 60700021 CHKLO CLC L0(L4,R3),DATE IS LOW DATE LOWER THAN RECORD DATE 60800021 BL CHKHI YES CHECK HIGH 60900021 MVC L0(L4,R3),DATE NO - MOVE IN RECORD DATE 61000021 CHKHI CLC L4(L4,R3),DATE IS HIGH DATE HIGHER THAN RECORD DATE 61100021 BH RETURN YES- RETURN 61200021 MVC L4(L4,R3),DATE NO- MOVE IN RECORD DATE 61300021 RETURN BR R14 RETURN 61400021 * * 61500021 * THIS ROUTINE WILL CHECK THE MODEL BITS IN THE LAST HALF OF BYTE SIX * 61600021 * AND PUT THE EBCDIC VALUE ON THE PRINT BUFFER. * 61700021 * 3410 MODEL BITS 3420 MODEL BITS * 61800021 * 0000 MODEL 1 0011 MODEL 3 * 61900021 * 0001 MODEL 2 0100 MODEL 5 * 62000021 * 0010 MODEL 3 0101 MODEL 7 * 62100021 * 1011 MODEL 4 S99223 62200021 * 1100 MODEL 6 S99223 62220021 * 1101 MODEL 8 S99223 62240021 * S99223 62260021 MODEL TM SWITCHES+L1,DISMOUNT IS THIS DISMOUNT RECORD XM9111 62300021 BCR 4,R14 IF YES NO SENSE INFO XM9111 62330021 STM R6,R7,STOREREG+L4 SAVE REGISTERS XM9111 62360021 SR R7,R7 CLEAR REGISTER 62400021 IC R7,SNB60 GET THE MODEL BITS 62500021 SLL R7,L28 SHIFT OUT UNNEEDED BITS 62600021 SRL R7,L28 MOVE BACK INTO POSITION 62700021 LA R6,MODNO(R7) GET THE ADDRESS OF EBCDIC NUMBER 62800021 MVC L0(L1,R3),L0(R6) MOVE THE DIGIT TO THE PRINT BUFFER 62900021 LM R6,R7,STOREREG+L4 GET SAVED REGISTERS 63000021 BR R14 RETURN CONTROL 63100021 MODNO DC X'F1F2F3F3F5F76060606060F4F6F8' S99223 63200021 CPUIDENT MVC L0(L5,R3),CPUSER MOVE CPU INFO TO SAVE AREA 63300021 BR R14 RETURN CONTROL 63400021 * THE NEXT ROUTINES WILL TAKE THE COUNTERS FROM THE RECORD AND * 63500021 * ADD THEM TO THE COUNTER AREAS. HALF BYTE COUNTERS ARE ISOLATED AND * 63600021 * THEM ADDED. DEVICE DEPENDENT COUNTERS ARE ADDED ONLY FOR DISMOUNT * 63700021 * RECORDS. * 63800021 * * 63900021 DENS16 EQU X'04' 64000021 NOISERTN SR R5,R5 CLEAR REGISTER 64100021 TM SNB30,DENS16 IS THIS A 1600 BPI DRIVE 64200021 BZ GOON IF NOT ADD COUNTER 64300021 MVI L0(R3),X'7C' MOVE IN NOT VALID INDICATOR 64400021 BR R14 64500021 GOON IC R5,NOISE GET QUANTITY TO BE ADDED 64600021 ADD AH R5,L0(R3) ADD HALFWORD COUNTER TO IT 64700021 STH R5,L0(R3) STORE SUM BACK IN COUNTER AREA 64800021 L R5,SAVE5 RELOAD REGISTER FIVE 64900021 BR R14 RETURN 65000021 TRDSRTN TM SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD 65100021 BCR 8,R14 NO-DO NOT ADD TO COUNTER 65200021 SR R5,R5 CLEAR REGISTER 65300021 IC R5,TEMPRDS GET NUMBER OF TEMP READ ERRORS 65400021 B ADD GO TO ADD TO COUNTER 65500021 TWRTSRTN TM SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD 65600021 BCR 8,R14 NO-DO NOT ADD TO COUNTER 65700021 SR R5,R5 CLEAR REGISTER 65800021 IC R5,TEMPWRTS GET NUMBER OF TEMPORARY WRITE ERRORS 65900021 B ADD GO TO ADD THEM TO COUNTER 66000021 PRDSRTN TM SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD 66100021 BCR 8,R14 NO-DO NOT ADD TO COUNTER 66200021 SR R5,R5 CLEAR REGISTER 66300021 IC R5,PERMRDS GET NUMBER OF PERM READ ERRORS 66400021 B ADD GO TO ADD TO COUNTER 66500021 PWRTSRTN TM SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD 66600021 BCR 8,R14 NO-DO NOT ADD TO COUNTER 66700021 SR R5,R5 CLEAR REGISTER 66800021 IC R5,PERMWRTS GET NUMBER OF PERMANENT WRITE ERRORS 66900021 B ADD GO TO ADD THEM TO COUNTER 67000021 CLNRRTN TM SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD 67100021 BCR 8,R14 NO-DO NOT ADD TO COUNTER 67200021 MVC STOREREG+L2(L2),CLNRACTS GET COUNT FROM RECORD 67300021 L R5,STOREREG PUT IT IN REGISTER 67350021 B ADD RETURN 67400021 ERASERTN TM SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD 67500021 BCR 8,R14 NO-DO NOT ADD COUNTERS 67600021 MVC STOREREG+L2(L2),ERASEGPS GET COUNT FROM RECORD 67700021 L R5,STOREREG 67750021 B ADD GO TO ADD TO COUNTER 67800021 SIORTN STM R5,R6,STOREREG+4 SAVE REGISTERS 67900021 TM SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD 68000021 BCR 8,R14 NO-DO NO ADD TO COUNTER 68100021 MVC STOREREG+L2(L2),SIOCNT GET THE SIO COUNT FROM THE RECORD 68200021 L R5,STOREREG PUT IT INTO A REGISTER 68280021 MVC STOREREG(L4),L0(R3) GET COUNTER ON BOUNDARY 68360021 L R6,STOREREG PUT IT INTO A REGISTER 68440021 AR R5,R6 ADD THE COUNTS 68520021 ST R5,STOREREG PUT COUNTER BACK ON BOUNDARY 68600021 MVC L0(L4,R3),STOREREG PUT IT BACK IN COUNTER AREA 68680021 XC STOREREG(4),STOREREG CLEAR AREA @SL21926 68740021 LM R5,R6,STOREREG+4 RELOAD REGISTERS 68800021 BR R14 RETURN 68900021 STOREREG DC 3F'0' 69000021 SAVE5 DC F'0' 69100021 ZEROES DC 4X'00' 69400021 ENTRIES DS 0F 69500021 SPECIAL SETDATES,0,SPACE=4 69600021 SPECIAL PRDSRTN,0,SPACE=1 69700021 SPECIAL PWRTSRTN,0,SPACE=1 69800021 SPECIAL TRDSRTN,0,SPACE=1 69900021 SPECIAL TWRTSRTN,0,SPACE=1 70000021 SPECIAL SIORTN,0,SPACE=2 70100021 SPECIAL NOISERTN,0,SPACE=1 70200021 SPECIAL CPUIDENT,0,SPACE=3 70300021 SPECIAL MODEL,0,SPACE=1 70400021 SPECIAL ERASERTN,0,SPACE=1 70500021 SPECIAL CLNRRTN,0,SPACE=1 70600021 DC X'FF' 70700021 EDIT DS 0F 70800021 &DSECT SETC 'CNTRAREA' 70900021 &CSECT SETC 'EDIT' 71000021 USING *,R9 71100021 USING CNTRAREA,R2 71200021 DC A(SUMEDIT) 71300021 DC CL8'IFCSVOL0' 71400021 NINE DC F'0' 71500021 LABELPTR DC F'0' 71600021 CNTRAREA DSECT 71700021 DS 2H 71800021 DSGEN (VOLIDA,48),(,96) 71900021 DSGEN (LOWDATE,32),(HIDATE,32) 72000021 DSGEN (PRDSCTR,16),(PWRTSCTR,16),(TRDSCTR,16),(TWRTSCTR,16) 72100021 DSGEN (SIOCTR,32),(NOISECTR,16),(SERIAL,24),(ID,24), C72200021 (TAPEMOD,16) 72300021 DSGEN (ERASECTR,16),(CLNRCTR,16) 72400021 IFCSVOL0 CSECT 72500021 * * 72600021 * THE CONVERT ROUTINES WILL TAKE A COUNTER AND CONVERT IT TO * 72700021 * PRINTABLE EBCDIC CHARACTERS. THEY ALL CONVERT INTO A DIFFERENT * 72800021 * NUMBER OF DIGITS. * 72900021 * CONVERT-3 DIGITS CONVERT1-4 DIGITS CONVERT2-5 DIGITS * 73000021 * CONVERT3-6 DIGITS * 73100021 * * 73200021 * * 73300021 CONVERT1 ST R5,SAVE SAVE REGISTER 73400021 LH R5,L0(R4) LOAD COUNTER TO BE CONVERTED 73500021 CVD R5,DECAREA CONVERT THE COUNTER 73600021 UNPK L0(L4,R3),DECAREA(L8) UNPACK AND PLACE IN PRINT BUFFER 73700021 OI L3(R3),F0 MAKE LAST DIGIT PRINTABLE 73800021 L R5,SAVE RESTORE REGISTER 73900021 ADD4 LA R3,4(R3) CHANGE PRINT BUFFER POINTER S99223 73950021 DONOTHNG BR R14 RETURN 74000021 CONVERT2 ST R5,SAVE SAVE REGISTER 74100021 LH R5,L0(R4) GET COUNTER TO BE CONVERTED 74200021 CVD R5,DECAREA CONVERT THE COUNTER 74300021 UNPK L0(L5,R3),DECAREA(L8) UNPACK INTO PRINT BUFFER 74400021 OI L4(R3),F0 MAKE LAST DIGIT PRINTABLE 74500021 L R5,SAVE RESTORE REGISTER 74600021 LA R3,6(R3) CHANGE PRINT BUFFER POINTER S99223 74650021 BR R14 RETURN 74700021 CONVERT3 ST R5,SAVE SAVE THE REGISTER 74800021 MVC DECAREA(4),L0(R4) MOVE NUMBER TO INTEGRAL BOUNDARY 74900021 L R5,DECAREA PUT NUMBER IN A REGISTER 75000021 CVD R5,DECAREA CONVERT COUNTER TO DECIMAL 75100021 UNPK L0(L6,R3),DECAREA(L8) UNPACK THE COUNTER 75200021 OI L5(R3),F0 MAKE LAST DIGIT PRINTABLE 75300021 L R5,SAVE RESTORE THE REFISTER 75400021 ADD6 LA R3,6(R3) CHANGE PRINT BUFFER POINTER S99223 75450021 BR R14 RETURN 75500021 MOVEVOL MVC L0(L6,R3),L0(R4) MOVE VOLID TO PRINT BUFFER 75600021 CLI TAPEMOD,X'00' IS TAPE MODEL AVAILABLE XM9111 75700021 BNE PUTMOD PUT MODEL NBR IN PRINT BUFFER XM9111 75710021 MVC L72(L3,R3),NA MOVE N/A TO PRINT BUFFER XM9111 75720021 B UPDATE GO UPDATE POINTER PI00001 75730021 L72 EQU 72 75740021 PUTMOD MVC L73(L1,R3),TAPEMOD PUT IN TAPE MODEL NBR XM9111 75750021 UPDATE LA R3,12(R3) UPDATE PRINT BUFFER POINTER PI00001 75800021 LA R4,LOWDATE GET ADDRESS OF LOW DATE S99223 75850021 * * 75900021 * THIS ROUTINE WILL TAKE THE DATES FROM THE HIGH AND LOW DATE ARES * 76000021 * AND PUT THEM INTO THE PRINT BUFFER IN UNPACKED FORMAT. * 76100021 * * 76200021 GETDATE UNPK DECAREA(L5),L1(L3,R4) UNPACK THE DATE 76300021 OI DECAREA+L4,F0 MAKE LAST DIGIT PRINTABLE 76400021 MVC L0(L3,R3),DECAREA+L2 MOVE DAY TO PRINT LINE 76500021 MVC L4(L2,R3),DECAREA MOVE YEAR TO PRINT LINE 76600021 LA R3,6(R3) CHANGE PRINT BUFFER POINTER S99223 76650021 BR R14 RETURN 76700021 * * 76800021 FIRSTIME ST R7,SAVE SAVE REGISTER 76900021 TM FIRST,FF IS THIS FIRST TIME THRU CODE 77000021 MVI FIRST,FF MOVE FF TO FIRST TIME SWITCH 77100021 BCR 8,R14 FIRST TIME GO TO SKIP LABELS 77200021 LA R7,CNTLAB GET ADDRESS TO UPDATE 77300021 ST R7,LABELPTR STORE ADDRESS 77400021 LA R7,CNTENT-4 GET ADDRESS 77500021 ST R7,NINE STORE THE POINTER 77600021 L R7,SAVE RESTORE SAVED REGISTER 77700021 SR R15,R15 77800021 BR R14 77900021 CHKNRZI CLI L0(R4),X'7C' IS THIS A PE DRIVE 78000021 BNE CONVERT1 NO IT IS NRZI 78100021 PUTNA MVC L1(L3,R3),NA MOVE N/A TO PRINT BUFFER 78200021 LA R3,4(R3) CHANGE PRINT BUFFER POINTER S99223 78250021 BR R14 78300021 NA DC C'N/A' 78400021 FIRST DC X'00' 78500021 * * 78600021 * * 78700021 * * 78800021 * * 78900021 ADD3 LA R3,3(R3) CHANGE PRINT BUFFER POINTER S99223 78920021 BR R14 RETURN S99223 78940021 ADD14 LA R3,14(R3) CHANGE PRINT BUFFER POINTER S99223 78960021 BR R14 RETURN S99223 78980021 * * 79000021 * * 79100021 * * 79200021 DECAREA DC D'0' 79300021 SAVE DC F'0' 79400021 SUMEDIT DS 0F 79500021 DC X'00010001' 79600021 DC X'00010001' 79700021 DC A(LABELS) 79800021 DC H'0' 79900021 LINE ,,SKIP=1 80000021 ROUTINE VOLIDA,FIRSTIME 80100021 LABEL '' 80200021 DC X'01000B8B00' 80300021 LABEL '' 80400021 LINE ,(35,),SKIP=1 80500021 ROUTINE VOLIDA,DONOTHNG 80600021 LABEL 'SUMMARY--MAGNETIC TAPE ERROR STATISTICS BY VOLUME' 80700021 LINE ,(1,53) 80800021 ROUTINE VOLIDA,DONOTHNG 80900021 LABEL 'VOLUME DATE-FROM- -TO- --PERM-- --TEMP-- SIO', C81000021 'NRZI --- CPU --- MOD ERASE CLEANER' 81100021 LINE ,(1,53) 81200021 ROUTINE VOLIDA,DONOTHNG 81300021 CNTLAB LABEL 'SERIAL DAY YR DAY YR RDS WRTS RDS WRTS COUNT', C81400021 'NOISE ID NUMBER NO GAPS ACTIONS' 81500021 CNTENT LINE (1,1),,SKIP=2 S99223 81600021 ROUTINE VOLIDA,MOVEVOL S99223 81900021 ROUTINE HIDATE,GETDATE S99223 82200021 ROUTINE PRDSCTR,CONVERT1 82500021 ROUTINE PWRTSCTR,CONVERT1 82600021 ROUTINE TRDSCTR,CONVERT1 82700021 ROUTINE TWRTSCTR,CONVERT1 82800021 ROUTINE SIOCTR,CONVERT3 82900021 ROUTINE NOISECTR,CHKNRZI S99223 83000021 ROUTINE ID,DONOTHNG S99223 83100021 HEX ID,0,2B S99223 83200021 ROUTINE ID,ADD3 S99223 83300021 HEX SERIAL,0,3B S99223 83400021 ROUTINE ID,ADD14 S99223 83500021 ROUTINE ERASECTR,CONVERT2 S99223 83600021 ROUTINE CLNRCTR,CONVERT2 S99223 83700021 LABEL '' 83800021 DC X'FF' 83900021 DC 6X'00' 84000021 DC C'$' 84100021 LABELS EQU * 84200021 LSTART 84300021 END 84400021 ./ ADD SSI=04010151,NAME=IFCSXXXA,SOURCE=0 TITLE 'IFCSXXXA - SUM TABLE - LINKNAME=IFCS2400' 00080020 SPACE 2 00160021 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 00210021 MACRO 00220021 &NAME LINE &DATA,&LABEL,&SKIP= 00230021 .* THIS MACRO ESTABLISHES THE MARGINS OR 00240021 .* COLUMN SETTINGS FOR EACH LINE. IT 00290021 .* GENERATES NECESSARY CARRIAGE CONTROL 00300021 .* ENTRIES. LASTLY IT DETERMINES THE 00310021 .* NUMBER OF ENTRIES ASSOCIATED WITH 00320021 .* THE PREVIOUS LINE AND STORES THAT # 00370021 .* INTO THE APPROPRIATE BYTE. 00380021 .* &DATA(1) - CHARACTER POSITION TO 00390021 .* BEGIN DATA. 00400021 .* 00450021 .* &DATA(2) - # OF SPACES BETWEEN 00460021 .* SUCCESSIVE DATA COLUMN STARTING 00470021 .* CHARACTERS. 00480021 .* 00530021 .* &LABEL(1) - CHARACTER POSITION 00540021 .* TO BEGIN LABELS. 00550021 .* 00560021 .* &LABEL(2) - # OF SPACES BETWEEN 00610021 .* LINE'S LABEL STARTING CHARACTERS. 00620021 .* 00630021 .* &SKIP= - # OF LINES TO ADVANCE 00640021 .* CARRIAGE TO BEGIN NEXT PRINTED LINE. 00690021 .* 00700021 .* NEW ENTRIES ARE GENERATED ONLY WHEN 00710021 .* NECESSARY. OMISSION OF ITEMS MEANS 00720021 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 00770021 .* SETTINGS. A LINE MACRO IS REQUIRED 00780021 .* FOR EACH PRINTED LINE. IF NO SETTING 00790021 .* CHANGES ARE REQUIRED ALL OPERANDS 00800021 .* ARE OMITTED IN WHICH CASE ONLY THE 00850021 .* # OF ENTRIES FOR THE PREVIOUS LINE 00860021 .* FIRST MACRO INSTRUCTION ISSUED FOR 00870021 .* THE SUBJECT LINE. 00880021 GBLA &DB,&DT,&LB,<,&NRENTS 00930021 GBLA &LASTCC,&INITIAL 00940021 GBLC &NRENTSX 00950021 GBLC &CARRCON 00960021 GBLB &TEST 01010021 LCLA &S 01020021 &NAME DS 0C 01030021 AIF (&INITIAL EQ 0).FIRSTLN 01040021 LINEND 01090021 AGO .NTFIRST 01100021 .FIRSTLN ANOP 01110021 &NRENTSX SETC 'N&SYSNDX' 01120021 &INITIAL SETA 1 01170021 &LASTCC SETA 1 01180021 N&SYSNDX EQU * 01190021 .NTFIRST ANOP 01200021 DC AL1(0) 01250021 AIF ('&DATA(1)' EQ '').CKDTABS 01260021 AIF ('&DATA'(1,1) NE '(').SLABEL 01270021 AIF (&DATA(1) EQ &DB).CKDTABS 01280021 &DB SETA &DATA(1) 01330021 AGO .AA 01340021 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 01350021 AIF (&DATA(2) EQ &DT).NCDATA 01360021 AGO .CC 01410021 .AA AIF ('&DATA(2)' EQ '').BB 01420021 AIF (&DATA(2) EQ &DT).BB 01430021 .CC ANOP 01440021 &DT SETA &DATA(2) 01490021 .BB DC XL2'FFFE' 01500021 DC FL1'&DB' 01510021 DC FL1'&DT' 01520021 &NRENTS SETA &NRENTS+1 01570021 .NCDATA ANOP 01580021 AIF ('&LABEL(1)' EQ '').CKLTABS 01590021 AIF ('&LABEL'(1,1) NE '(').SLABEL 01600021 AIF (&LABEL(1) EQ &LB).CKLTABS 01650021 &LB SETA &LABEL(1) 01660021 AGO .AAA 01670021 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 01680021 AIF (&LABEL(2) EQ <).NCLABEL 01730021 AGO .CCC 01740021 .AAA AIF ('&LABEL(2)' EQ '').BBB 01750021 AIF (&LABEL(2) EQ <).BBB 01760021 .CCC ANOP 01810021 < SETA &LABEL(2) 01820021 .BBB DC XL2'FFFF' 01830021 DC FL1'&LB' 01840021 DC FL1'<' 01890021 &NRENTS SETA &NRENTS+1 01900021 .NCLABEL ANOP 01910021 AIF ('&SKIP' EQ 'E').EJECT 01920021 AIF ('&SKIP' EQ '').TESTOFF 01970021 .CONT ANOP 01980021 AIF (&TEST EQ 0).AB 01990021 AIF (&SKIP EQ &LASTCC).TESTOFF 02000021 &S SETA &SKIP 02050021 ORG &CARRCON+3 02060021 DC AL.3(0),AL.2(&S),AL.3(1) 02070021 ORG 02080021 &LASTCC SETA &S 02130021 .SLABEL ANOP 02140021 .TESTOFF ANOP 02150021 &TEST SETB 0 02160021 AGO .DD 02210021 .EJECT DC XL2'FFFB' 02220021 &NRENTS SETA &NRENTS+1 02230021 DC X'8B' SKIP TO CHANNEL 1 02240021 DC AL.3(0),AL.2(&LASTCC),AL.3(1) 02290021 &TEST SETB 1 02300021 AGO .DD 02310021 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 02320021 A&SYSNDX DC XL2'FFFB' 02370021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 02380021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 02390021 &LASTCC SETA &SKIP 02400021 &TEST SETB 1 02450021 &CARRCON SETC 'A&SYSNDX' 02460021 &NRENTS SETA &NRENTS+1 02470021 .DD ANOP 02480021 .NOCHANG ANOP 02530021 MEND 02540021 EJECT 02550021 SPACE 2 02560021 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 02610021 MACRO 02620021 &NAME ROUTINE &LOGITEM,&RNAME 02630021 GBLC &DSECT,&CSECT 02640021 GBLC &ITEM(1000) 02690021 GBLA &SHIFT(1000),&ITEMNBR 02700021 GBLA &NRENTS 02710021 LCLA &ISHIFT,&NDX 02720021 .LOOP ANOP 02770021 &NDX SETA &NDX+1 02780021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 02790021 AIF (&NDX LT &ITEMNBR).LOOP 02800021 MNOTE *,'LOG ITEM NOT DEFINED' 02850021 MEXIT 02860021 .FOUND ANOP 02870021 &ISHIFT SETA &SHIFT(&NDX) 02880021 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 02930021 DC AL.4(&ISHIFT),AL.12(&RNAME-&CSECT) 02940021 &NRENTS SETA &NRENTS+1 02950021 MEND 02960021 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 03010021 SPACE 2 03020021 MACRO 03030021 &NAME DSGEN &X1,&X2,&X3,&X4,&X5,&X6,&X7,&X8,&X9,&X10,&X11,&X12,&X13,X03040021 &X14,&X15,&X16,&X17,&X18,&X19,&X20,&X21,&X22,&X23,&X24, X03090021 &X25,&X26,&X27,&X28,&X29,&X30,&X31,&X32 03100021 .* THIS MACRO GENERATES ONE DSECT WORD 03110021 .* FORMATTED FOR THE SUBJECT LOG RECORD 03120021 .* EACH OPERAND HAS TWO SUB LISTS. THE 03170021 .* FIRST IS THE NAME OF THE LOG ITEM 03180021 .* WHILE THE SECOND IS THE # OF BITS TO 03190021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 03200021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 03250021 .* UNUSED BIT GROUPS MUST BE GIVEN 03260021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 03270021 .* THE LOG ITEMS MAY THEN BE USED IN 03280021 .* THE CONVERSION MACRO INSTRUCTIONS. 03330021 GBLC &ITEM(1000) 03340021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 03350021 LCLC &SYMBOL 03360021 LCLA &OP,&COUNT,&BYTE 03410021 .LOOP ANOP 03420021 &OP SETA &OP+1 03430021 &ITEMNBR SETA &ITEMNBR+1 03440021 &SYMBOL SETC '&SYSLIST(&OP,1)' 03490021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 03500021 MNOTE *,'NULL BIT COUNT FIELD' 03510021 MEXIT 03520021 .OK1 ANOP 03570021 AIF ('&SYMBOL' NE '').OK 03580021 MNOTE 'LOG ITEM SYMBOL NOT PROVIDED' 03590021 AGO .CNT 03600021 .OK ANOP 03650021 AIF ('&SYMBOL'(1,1) EQ '''').CNT *TEMP* 03660021 &SYMBOL EQU *+&BYTE 03670021 &ITEM(&ITEMNBR) SETC '&SYSLIST(&OP,1)' 03680021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 03730021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 03740021 .CNT ANOP 03750021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 03760021 &BYTE SETA &COUNT/8 03810021 AIF (&OP LT N'&SYSLIST).LOOP 03820021 AIF (&COUNT NE 32).NOT32 03830021 &NAME DS 4C 03840021 MEXIT 03890021 .NOT32 AIF (&COUNT NE 64).ERR 03900021 &NAME DS 8C 03910021 MEXIT 03920021 .ERR MNOTE '**BIT COUNT FIELDS DO NOT TOTAL 32 OR 64**' 03970021 MEND 03980021 MACRO 03990021 LINEND 04000021 .* THIS MACRO IS USED ONLY BY THE LINE 04050021 .* MACRO TO SET THE NUMBER OF ENTRIES 04060021 .* ASSOCIATED WITH EACH LINE. 04070021 GBLA &NRENTS 04080021 GBLC &NRENTSX 04130021 ORG &NRENTSX 04140021 DC FL1'&NRENTS' 04150021 ORG 04160021 &NRENTS SETA 0 04210021 B&SYSNDX EQU * 04220021 &NRENTSX SETC 'B&SYSNDX' 04230021 MEND 04240021 SPACE 2 04290021 EJECT 04300021 * LABEL MACRO LABEL MACRO LABEL MACRO LABEL MACRO * 04310021 SPACE 2 04320021 MACRO 04370021 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C04380021 &LABEL7,&LABEL8 04390021 .* THIS MACRO ALLOWS UP TO ACHT LABELS TO 04400021 .* BE SPECIFIED FOR A GIVEN LINE. THE 04450021 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 04460021 .* TION MARKS. THE COLUMN AND LINE END 04470021 .* CONTROLS WILL BE INSERTED BY THE 04480021 .* MACRO. OMITTED OPERANDS MEAN NO 04530021 .* LABEL REQUIRED FOR RESPECTIVE 04540021 .* COLUMN. THIS MACRO WILL ALSO ALERT 04550021 .* THE PROGRAMMER TO EXACTLY WHERE THE 04560021 .* TABLE MUST BE BROKEN IF NECESSARY 04610021 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 04620021 GBLC &LABELS(2000) 04630021 GBLC &LBL(100) 04640021 GBLA &LBLCTR(100) 04690021 GBLA &LABELNR 04700021 GBLA &NRENTS,&LPTR 04710021 LCLC &MARGIN,&TACK 04720021 LCLC &TEXT 04770021 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 04780021 &MARGIN SETC '*' 04790021 AIF ('&NAME' EQ '').LOOPOUT 04800021 &LPTR SETA &LPTR+1 04850021 &LBL(&LPTR) SETC '&NAME' 04860021 &LBLCTR(&LPTR) SETA &LABELNR+1 04870021 .LOOPOUT ANOP 04880021 &OP SETA &OP+1 04930021 &K SETA K'&SYSLIST(&OP) 04940021 AIF (&K GE 2).NORM 04950021 &K SETA 2 04960021 .NORM ANOP 05010021 &START SETA 2 05020021 AIF (&OP LT N'&SYSLIST).NOTLAST 05030021 &MARGIN SETC '$' 05040021 .NOTLAST ANOP 05090021 &NRCHAR SETA 8 05100021 &TACK SETC '' 05110021 .LOOPIN ANOP 05120021 &REMAIN SETA &K-&START 05170021 AIF (&REMAIN GE 8).MORE 05180021 &TACK SETC '&MARGIN' 05190021 &NRCHAR SETA &REMAIN 05200021 .MORE ANOP 05250021 &TEXT SETC '' 05260021 AIF (&REMAIN EQ 0).ENDTEXT 05270021 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 05280021 .ENDTEXT ANOP 05330021 &LABELNR SETA &LABELNR+1 05340021 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 05350021 &START SETA &START+8 05360021 AIF ('&TACK' EQ '').LOOPIN 05410021 AIF ('&TACK' EQ '*').LOOPOUT 05420021 MEND 05430021 SPACE 2 05440021 MACRO 05490021 LSTART 05500021 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 05510021 .* OF THE TABLE IS TO BEGIN. 05520021 GBLC &LABELS(2000) 05570021 GBLA &LABELNR 05580021 GBLC &LBL(100) 05590021 GBLA &LBLCTR(100) 05600021 LCLA &NDX,&CTR 05650021 LINEND 05660021 &CTR SETA 1 05670021 .LOOP ANOP 05680021 &NDX SETA &NDX+1 05730021 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 05740021 &LBL(&CTR) DC C'&LABELS(&NDX)' 05750021 &CTR SETA &CTR+1 05760021 AGO .LOOPCTL 05810021 .NOLBL ANOP 05820021 DC C'&LABELS(&NDX)' 05830021 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 05840021 MEND 05890021 SPACE 2 05900021 * BIN MACRO BIN MACRO BIN MACRO BIN MACRO BIN MACRO * 05910021 SPACE 2 05920021 MACRO 05970021 BIN &LOGITEM,&SKIP$OR 05980021 .* &LOGITEM - NAME OF ITEM IN LOG 05990021 .* RECORD DSECT 06000021 .* &SKIP$OR - NBR OF SPACES TO SKIP ON 06050021 .* MULTIPLE PRINT OR NBR OF SPACES 06060021 .* TO BACK UP FROM COLUMN FOR 06070021 .* START OF PRINTING. THE LETTER 06080021 .* B PRECEEDS THE NUMBER (B5) IF 06130021 .* THE LATTER IS DESIRED. OMISSION 06140021 .* OF THIS OPERAND FORCES OPTION 2 06150021 .* WITH BACKUP SPACING EQUAL TO 06160021 .* THE NUMBER OF BITS IN THE ITEM 06210021 .* DEFINITION (VIA MACRO 'DSGEN'). 06220021 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 06230021 .* TOTAL NUMBER OF BITS TO PRINT. 06240021 GBLC &ITEM(1000) 06290021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 06300021 GBLC &DSECT 06310021 LCLB &B 06320021 LCLA &IBITS,&NDX,&ISHIFT,&K 06370021 LCLA &TEMP,&T 06380021 LCLC &S 06390021 .LOOP ANOP 06400021 &NDX SETA &NDX+1 06450021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 06460021 AIF (&NDX LT &ITEMNBR).LOOP 06470021 MNOTE *,'YOU BLEW IT' 06480021 ROUTINE DUM,SKIPPER 06530021 MEXIT 06540021 .FOUND ANOP 06550021 &ISHIFT SETA &SHIFT(&NDX) 06560021 &IBITS SETA &BITS(&NDX) 06610021 &T SETA &IBITS-1 06620021 &B SETB 0 06630021 AIF ('&SKIP$OR' EQ '').BACKUP 06640021 &K SETA K'&SKIP$OR 06690021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 06700021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 06710021 &T SETA &S 06720021 .BACKUP ANOP 06770021 &NRENTS SETA &NRENTS+1 06780021 &TEMP SETA &ISHIFT 06790021 A&SYSNDX DC AL.12(&LOGITEM-&DSECT),XL.4'&TEMP' 06800021 AIF (&IBITS EQ 1 AND &B EQ 0).OUT 06850021 ORG A&SYSNDX 06860021 &B SETB 1 06870021 DC AL.12(&LOGITEM-&DSECT),XL.4'C' 06880021 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 06930021 .OUT ANOP 06940021 MEND 06950021 EJECT 06960021 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 07010021 SPACE 2 07020021 MACRO 07030021 HEX &LOGITEM,&SKIP$OR,&BYTES 07040021 .* THIS MACRO FACILITATES GENERATION OF THE 07090021 .* TABLE ENTRIES SPECIFYING HEX TYPE 07100021 .* CONVERSIONS. 07110021 .* &LOGITEM - NAME OF DATA ITEM TO BE 07120021 .* CONVERTED 07170021 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 07180021 .* MULTIPLE PRINT OR NBR OF SPACES TO 07190021 .* BACK UP FROM COLUMN FOR START OF 07200021 .* PRINTING. THE LETTER B PRECEEDS THE 07250021 .* NUMBER (B8) IF THE LATTER OPTION IS 07260021 .* DESIRED. OMISSION OF THIS OPERAND 07270021 .* FORCES OPTION 2 WITH BACKUP SPACING 07280021 .* EQUAL TO THE NUMBER OF BYTES SPECI- 07330021 .* FIED BY THE NEXT OPERAND (TWICE THIS 07340021 .* NUMBER IF SUFFIX IS EXPLICITLY OR 07350021 .* IMPLICITLY B). 07360021 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 07410021 .* PROCESS. THIS NUMBER IS SUFFIXED 07420021 .* WITH AN L,R, OR B TO STIPULATE 07430021 .* PRINTING OF THE LEFT HALF, RIGHT 07440021 .* HALF, OR BOTH HALVES OF THE BYTE 07490021 .* RESPECTIVELY. OMISSION OF THIS 07500021 .* OPERAND DEFAULTS TO B WITH THE NUM- 07510021 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 07520021 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 07570021 .* SARY. THIS MACRO MUST BE THE FIRST 07580021 .* MACRO INSTRUCTION ISSUED FOR THE 07590021 .* SUBJECT LINE(S). 07600021 GBLC &ITEM(1000),&DSECT 07650021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 07660021 LCLB &B 07670021 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 07680021 LCLC &S,&LETTER 07730021 .LOOP ANOP 07740021 &NDX SETA &NDX+1 07750021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 07760021 AIF (&NDX LT &ITEMNBR).LOOP 07810021 MNOTE *,'LOG ITEM NOT DEFINED' 07820021 MEXIT 07830021 .FOUND ANOP 07840021 &ISHIFT SETA &SHIFT(&NDX) 07890021 &IBITS SETA &BITS(&NDX) 07900021 &CODE SETA 1 07910021 &K SETA K'&BYTES 07920021 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 07970021 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 07980021 MEXIT 07990021 .OK AIF ('&BYTES' EQ '').USEDEFN 08000021 &LETTER SETC '&BYTES'(&K,1) 08050021 &S SETC '&BYTES'(1,&K-1) 08060021 &BYTESP SETA &S 08070021 AIF ('&LETTER' EQ 'B').BOTH 08080021 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 08130021 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 08140021 MEXIT 08150021 .USEDEFN ANOP 08160021 &BYTESP SETA &IBITS/8 08210021 .BOTH AIF (&ISHIFT NE 0).ERR 08220021 &CODE SETA 3 08230021 &T SETA &BYTESP*2-1 08240021 &S SETC '&T' 08290021 .OK2 AIF (&ISHIFT EQ 0).L 08300021 &CODE SETA 2 08310021 .L ANOP 08320021 &B SETB 1 08370021 AIF ('&SKIP$OR' EQ '').BACKUP 08380021 &K SETA K'&SKIP$OR 08390021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 08400021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 08450021 .BACKUP ANOP 08460021 &NRENTS SETA &NRENTS+1 08470021 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 08480021 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 08530021 .OUT ANOP 08540021 MEND 08550021 MACRO 08560021 SPECIAL &ROUTINE,&PARAM,&SPACE= 08610021 .* THIS MACRO GENERATES A SPECIAL ROUTINE 08620021 .* ENTRY TO BE PROCESSED BY THE SUM. M. 08630021 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 08640021 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 08690021 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 08700021 .* INTERPRETED AS AN ARGUMENT OF THE 08710021 .* SPECIAL ROUTINE. 08720021 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 08770021 .* ALLOCATE FOR REQUIRED PROCESSING. 08780021 GBLC &CSECT 08790021 GBLA &COUNTR 08800021 LCLA &ADD 08850021 DC AL1(128) 08860021 DC BL.8'&PARAM' 08870021 DC AL2(&ROUTINE-&CSECT) 08880021 DC AL2(&COUNTR) 08930021 &ADD SETA 1 08940021 AIF ('&SPACE' EQ '').NORM 08950021 &ADD SETA &SPACE 08960021 .NORM ANOP 09010021 &COUNTR SETA &COUNTR+&ADD 09020021 MEND 09030021 MACRO 09040021 SUM &LOGITEM,&MASK 09090021 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 09100021 .* FOR PROCESSING BY THE SUMMARY MODULE 09110021 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 09120021 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 09170021 .* THIS OPERAND SHOULD BE OMITTED FOR 09180021 .* SINGLE BIT ITEMS IN WHICH CASE THE 09190021 .* MASK WILL BE SET ACCORDING TO THE 09200021 .* OFF BYTE BIT DISPLACEMENT OF THE 09250021 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 09260021 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 09270021 GBLC &ITEM(1000),&DSECT 09280021 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 09330021 .LOOP ANOP 09340021 &NDX SETA &NDX+1 09350021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 09360021 AIF (&NDX LT &ITEMNBR).LOOP 09410021 MNOTE *,'LOGITEM NOT FOUND' 09420021 MEXIT 09430021 .FOUND ANOP 09440021 DC AL1(0) 09490021 &ISHIFT SETA &SHIFT(&NDX) 09500021 &IBITS SETA &BITS(&NDX) 09510021 AIF ('&MASK' EQ '').FORM 09520021 DC B'&MASK' 09570021 AGO .ITEM 09580021 .FORM ANOP 09590021 &BITNBR SETA &ISHIFT-7 09600021 &BITNBR SETA 0-&BITNBR 09650021 &M SETA 1 09660021 .LOOP2 ANOP 09670021 AIF (&BITNBR EQ 0).GOTIT 09680021 &M SETA &M*2 09730021 &BITNBR SETA &BITNBR-1 09740021 AGO .LOOP2 09750021 .GOTIT ANOP 09760021 DC AL1(&M) 09810021 .ITEM DC AL2(&LOGITEM-&DSECT) 09820021 DC AL2(&COUNTR) 09830021 &COUNTR SETA &COUNTR+1 09840021 MEND 09890021 GBLC &DSECT,&CSECT 09900021 &CSECT SETC 'IFCSXXXA' 30960020 &DSECT SETC 'XXXA' 31040020 IFCSXXXA CSECT 31120020 * OBR SUM TABLE 31200020 * 31280020 * DEVICE CODE=8001 DEVICE TYPE=2400 ALIAS=IFCS2400 31360020 * 31440020 XXXA DSECT 31520020 DSGEN (XKEY1,16),(XDUM1,8),(XSW,1),(SW2B1,1), S21021X31600021 (SHRTSW,1),(SW2B3,1),(SW2B4,1),(SW2B5,1), S21021X31650021 (SW2B6,1),(SW2B7,1) S21021 31660021 DSGEN (XDUM2,32) SPARES 31680020 DSGEN (XDATE,32) DATE 31760020 DSGEN (XTIME,32) TIME 31840020 DSGEN (XDUM3,8),(XSER,24) SERIAL NO 31920020 DSGEN (XMODEL,16),(XDUM8,16) MODEL NUMBER 32000020 DSGEN (XPGN1,32) JOB 32080020 DSGEN (XPGN2,32) NAME 32160020 DSGEN (XFCCWCC,8),(XFCCWDA,24) FAILING 32240020 DSGEN (XFCCWFL,8),(XZERO,8),(XFCCWCT,16) FAILING CCW 32320020 DSGEN (XCSWK,8),(XCSWCA,24) CSW 32400020 DSGEN (XCSWATTN,1),(XCSWSM,1),(XCSWUA,1),(XCSWBSY,1), C32480020 (XCSWCE,1),(XCSWDE,1),(XCSWUC,1),(XCSWUE,1), C32560020 (XCSWPCI,1),(XCSWSILI,1),(XCSWPC,1),(XCSWPCHK,1), C32640020 (XCSWCDC,1),(XCSWCCC,1),(XCSWICC,1),(XCSWCH,1), C32720020 (XCSWCT,16) 32800020 DSGEN (XECSW,32) ECSW 32880020 DSGEN (XDEVT1,16),(XDEVT2,16) 32960020 DSGEN (XDUM6,8),(XCUA,24) CUA 33040020 DSGEN (XDUM7,32) VOLUME 33120020 DSGEN (XVOL1,32) SERIAL 33200020 DSGEN (XVOL2,16),(XDUMP,16) NO 33280020 DSGEN (XDUM11,32) 33360020 DSGEN (XDUM12,32) 33440020 DSGEN (XDUM13,32) 33520020 DSGEN (XDUM14,32) 33600020 DSGEN (SDR1,8),(SDR2,8),(SDR3,8),(SDR4,8), S21021C33680021 (SDR5,8),(SDR6,8),(SDR7,8),(SDR8,8) S21021 33730021 DSGEN (XDUM17,16), C33840020 (XB0CMDR,1),(XB0INTRQ,1),(XB0BUSC,1),(XB0ECHK,1), C33920020 (XB0DCHK,1),(XB0OVRN,1),(XB0WRD,1),(XB0DTC,1), C34000020 (XB1NOISE,1),(XB1STATA,1),(XB1STATB,1),(XB17TRCK,1), C34080020 (XB1LOADP,1),(XB1WTSTA,1),(XB1FLPRT,1),(XB1NCOMP,1) 34160020 DSGEN (XB2TE0,1),(XB2TE1,1),(XB2TE2,1),(XB2TE3,1), C34240020 (XB2TE4,1),(XB2TE5,1),(XB2TE6,1),(XB2TE7,1), C34320020 (XB3RUN,1),(XB3LRC,1),(XB3SKW,1),(XB3CRC,1), C34400020 (XB3SKV,1),(XB3PDE,1),(XB3BKW,1),(XB3CCM,1), C34480020 (XB4ECH,1),(XB4REJ,1),(XB4RDC,1),(XB4WRC,1), C34560020 (XB4DLY,1),(XB4CSQ,1),(XB4BSQ,1),(XB4ASQ,1), C34640020 (XB5BT0,1),(XB5BT1,1),(XB5BT2,1),(XB5BT3,1), C34720020 (XB5BT4,1),(XB5BT5,1),(XB5BT6,1),(XB5BT7,1) 34800020 * S21021 34850021 EXPNOBR DSECT S21021 34860021 EXPNHDRA DS CL52 S21021 34870021 EXPNDEVA DS CL12 S21021 34872021 EXPNDA DS CL24 S21021 34874021 EXPNSDRA DS CL10 S21021 34876021 EXPNSNSA DS CL6 S21021 34878021 * S21021 34878421 SHRTOBR DSECT S21021 34878821 SHRTHDRA DS CL24 S21021 34879221 SHRTDEVA DS CL8 S21021 34879621 SHRTSDRA DS CL10 S21021 34879721 * S21021 34879821 NORMOBR DSECT S21021 34879921 NORMHDRA DS CL64 S21021 34906621 NORMDA DS CL8 S21021 34916621 NORMSDRA DS CL10 S21021 34926621 NORMSNSA DS CL6 S21021 34928621 * S21021 34930621 IFCSXXXA CSECT 34951121 USING XXXA,R2 34960020 USING *,R9 35040020 DC A(ENTRIES) PTR TO ENTRIES 35120020 DC A(PEDIT) PTR TO EDIT SECTION OF SUM TBL 35200020 REG8 DC F'0' R8 SAVE AREA CURRENT ENTRY 35280020 SCSIZE DC H'190' NO OF 2 BYTE CNTRS TO GETS21021 35360021 R0 EQU 0 35440020 R1 EQU 1 35520020 R2 EQU 2 35600020 R3 EQU 3 35680020 R4 EQU 4 35760020 R5 EQU 5 35840020 R6 EQU 6 35920020 R7 EQU 7 36000020 R8 EQU 8 36080020 R9 EQU 9 36160020 R10 EQU 10 36240020 R11 EQU 11 36320020 R12 EQU 12 36400020 R13 EQU 13 36480020 R14 EQU 14 36560020 R15 EQU 15 36640020 * 36720020 * SPECIAL ROUTINE SECTION R2=PTR TO LOGREC R9=BASE ADDR 36800020 * R3=PTR TO BUM COUNTER 36880020 * 36960020 * VOLUME SER 3 CNTRS ARE VOL SER 1 COUNTER THE NUMBER 37040020 * R3 POINTS TO COUNTER 37120020 SETVOLS TM XSW,HEX20 IS THIS A SHORT RECORD? S21021 37200021 BCR 1,R14 YES, NO VOLSER, RETURN S21021 37250021 STM R5,R8,XSAVE SAVE REGS S21021 37260021 CLC XDEVT2(L2),H3211 TEST FOR 3211 S20202 37280020 BE RETURNV BRANCH S20202 37360020 LA R5,L10 LOOP COUNT 37440020 LR R6,L3 SET COUNTER PTR 37520020 SETVOL1 CLC L0(L6,R6),ZEROS IS COUNTER EMPTY 37600020 BE SETVOL2 BR-YES 37680020 CLC L0(L6,R6),XVOL1 DOES THIS SER MATCH 37760020 BE SETVOL3 YES 37840020 LA R6,L8(R6) BUMP TO NEXT SLOT 37920020 BCT R5,SETVOL1 LOOP 38000020 B RETURNV ALL FULL IGNORE 38080020 SETVOL2 MVC L0(L6,R6),XVOL1 STORE NEW VOLUME SER 38160020 SETVOL3 LH R7,L6(R6) ADD 38240020 LA R7,L1(R7) 1 38320020 STH R7,L6(R6) TO COUNTER 38400020 RETURNV LM R5,R6,XSAVE AND 38480020 BR R14 RETURN 38560020 XFAILCCW EQU * 38640020 TM XSW,HEX20 IS THIS A SHORT RECORD? S21021 38690021 BCR 1,R14 YES, NO CCW, RETURN S21021 38700021 * 38720020 STM R14,R12,L12(R13) SAVE REGS 38800020 SR R7,R7 38880020 IC R7,XFCCWCC PICK UP FAILING CCW CODE 38960020 B COMMON 39040020 * 39120020 * 39200020 XDATE1 STM R14,R15,L12(R13) SAVE R14 & R 15 S21021 39280021 BAL R14,EXPANDER BAL TO EXPAND REC S21021 39330021 STM R0,R12,L20(R13) SAVE REMAINDER OF REGS S21021 39340021 CLC XDATE(L4),HEX00 IS DATE ZERO 39360020 BE RETURN BR-ZERO 39440020 CLC L0(L4,R3),HEX00 IS LOW DATE ZERO 39520020 BNE XDATE2 BR-NO 39600020 MVC L0(L4,R3),XDATE MOVE IN DATE 39680020 XDATE2 EQU * 39760020 CLC XDATE(L4),L0(R3) CHECK FOR LOW DATE 39840020 BL SAVELOW LOWER SAVE IT 39920020 CLC XDATE(L4),L4(R3) CHECK FOR HI 40000020 BNH RETURN BR-NOT HI 40080020 SAVEHI MVC L4(L4,R3),XDATE MOVE HI DATE 40160020 B RETURN 40240020 SAVELOW MVC L0(L4,R3),XDATE MOVE LOW DATE 40320020 B RETURN 40400020 * S21021 40450021 * ROUTINE TO SUM SDR CNTRS S21021 40460021 * S21021 40470021 SDR1L IC R15,SDR1 S21021 40472021 SDRLEFT SLL R15,L24 SHIFT OFF UNUSED BITS S21021 40474021 SDRADD SRL R15,L28 MOVE IT BACK FOR ADD S21021 40476021 AH R15,L0(R3) ADD IN COUNTER S21021 40478021 STH R15,L0(R3) SAVE RESULT S21021 40478421 BR R14 RETURN S21021 40478821 SDR1R IC R15,SDR1 PICK UP COUNTER S21021 40479221 SDRRIGHT SLL R15,L28 SHIFT OFF UNUSED BITS S21021 40479621 B SDRADD S21021 40479721 SDR2L IC R15,SDR2 S21021 40479821 B SDRLEFT S21021 40479921 SDR3L IC R15,SDR3 S21021 40506621 B SDRLEFT S21021 40516621 SDR4L IC R15,SDR4 S21021 40526621 B SDRLEFT S21021 40528621 SDR5L IC R15,SDR5 S21021 40530621 B SDRLEFT S21021 40532621 SDR6L IC R15,SDR6 S21021 40533021 B SDRLEFT S21021 40533121 SDR7L IC R15,SDR7 S21021 40533221 B SDRLEFT S21021 40542121 SDR8L IC R15,SDR8 S21021 40544121 B SDRLEFT S21021 40546121 SDR2R IC R15,SDR2 S21021 40548121 B SDRRIGHT S21021 40550121 SDR3R IC R15,SDR3 S21021 40550521 B SDRRIGHT S21021 40550921 SDR4R IC R15,SDR4 S21021 40551021 B SDRRIGHT S21021 40573221 SDR5R IC R15,SDR5 S21021 40583221 B SDRRIGHT S21021 40593221 SDR6R IC R15,SDR6 S21021 40595221 B SDRRIGHT S21021 40595321 SDR7R IC R15,SDR7 S21021 40595421 B SDRRIGHT S21021 40595521 SDR8R IC R15,SDR8 S21021 40602921 B SDRRIGHT S21021 40604921 * S21021 40606921 EXPANDER STM R5,R6,XSAVE SAVE WORK REGS S21021 40608921 LA R5,OBRAREA GET EXP AREA S21021 40609321 LR R6,R2 SWAP ADDRESSES S21021 40609721 USING EXPNOBR,R5 SET DSECT ADDRESSABILITY S21021 40610121 USING NORMOBR,R6 S21021 40610221 XC OBRAREA(L104),OBRAREA CLEAR AREA S21021 40610321 TM XKEY1,HEX02 IS IT A CONVERTED REC S21021 40617721 BO MOVEALL YES S21021 40617821 TM XSW,HEX20 IS IT A SHORT HEC S21021 40619821 BO MOVESHRT YES S21021 40621821 MVC EXPNHDRA(L72),NORMHDRA MOVE HEADER AND VOLSER S21021 40624621 MVC EXPNSDRA(L10),NORMSDRA MOVE SDR'S S21021 40625021 MVC EXPNSNSA(L6),NORMSNSA MOVE SENSE S21021 40625121 EXPNDRET ST R2,SAVE2 SAVE R2 S21021 40644021 LR R2,R5 SWAP REG POINTERS S21021 40654021 LM R5,R6,XSAVE RESET REGS S21021 40656021 BR R14 RETURN S21021 40658021 MOVEALL MVC EXPNOBR(L104),NORMOBR MOVE ALL REC S21021 40660021 B EXPNDRET S21021 40662021 USING SHRTOBR,R6 S21021 40662421 MOVESHRT MVC EXPNHDRA(L24),SHRTHDRA S21021 40662821 MVC EXPNDEVA(L8),SHRTDEVA S21021 40663221 MVC EXPNSDRA(L10),SHRTSDRA S21021 40669521 B EXPNDRET S21021 40671521 * S21021 40673521 RESETR2 L R2,SAVE2 RESET R2 S21021 40682221 BR R14 S21021 40684221 * S21021 40686221 * 40688521 * 40694821 L0 EQU 0 40701121 L1 EQU 1 40720020 L2 EQU 2 40800020 L3 EQU 3 40880020 L4 EQU 4 40960020 L5 EQU 5 41040020 L6 EQU 6 S21021 41090021 L7 EQU 7 41120020 L8 EQU 8 41200020 L9 EQU 9 S21021 41250021 L10 EQU 10 41280020 L12 EQU 12 41360020 L13 EQU 13 S21021 41410021 L14 EQU 14 S21021 41420021 L16 EQU 16 S21021 41430021 L17 EQU 17 S21021 41432021 L18 EQU 18 S21021 41434021 L20 EQU 20 S21021 41436021 L24 EQU 24 S21021 41438021 L28 EQU 28 S21021 41438421 L32 EQU 32 S21021 41438821 L64 EQU 64 S21021 41439221 L72 EQU 72 S21021 41439621 L104 EQU 104 S21021 41439721 HEX20 EQU X'20' S21021 41439821 SAVE2 DS F S21021 41439921 OBRAREA DS CL104 S21021 41466621 DS 0H 41493321 HEXFF DC X'FFFF' 41520020 HEX00 DC XL4'00' 41600020 COMMON SR R1,R1 41680020 L R8,REG8 GET CURRENT PTR 41760020 IC R1,L1(R8) PICK UP NUMBER OF ITERATIONS 41840020 LR R5,R1 PLACE VALUE IN R5 41920020 SLL R5,L2 MULTIPLY BY 2 42000020 AR R5,R3 SET PTR TO POS PAST CTRS HOLDING 42080020 * DATA - SUM COUNTER 42160020 LH R4,HEXFF PICK UP FULL FLG 42240020 LOOP1 CH R4,L0(R3) IS THIS COUNT EMPTY 42320020 BNE STORE BR-YES NOT FFFF 42400020 CH R7,L2(R3) IS DATE EQUAL TO STORED 42480020 BE BUMP YES 42560020 LA R3,L4(R3) BUMP DATA PTR 42640020 LA R5,L2(R5) BUMP SUM PTR 42720020 BCT R1,LOOP1 LOOP TILL DONE 42800020 B RETURN FULL RETURN 42880020 STORE STH R4,L0(R3) STORE FFFF FLAG 42960020 BUMP LH R6,L0(R5) PICK UP COUNTER 43040020 STH R7,L2(R3) STORE DATA 43120020 LA R6,L1(R6) BASED ON R5 43200020 STH R6,L0(R5) 43280020 * 43360020 RETURN LM R14,R12,L12(R13) RESTORE REGS 43440020 BR R14 RETURN 43520020 * 43600020 XDEVT MVC L0(L4,R3),XDEVT1 MOVE INTO SUM AREA DEVTYPE 43680020 BR R14 RETURN 43760020 ZEROS DC XL6'00' 43840020 ENTRIES DS 0F 43920020 SPECIAL XDATE1,00000000,SPACE=4 44000020 SPECIAL XDEVT,00000000,SPACE=2 44080020 SPECIAL XFAILCCW,00011000,SPACE=72 44160020 SPECIAL SETVOLS,00000000,SPACE=40 44240020 * SAVED 2 CNTRS SAVE 44320020 * CCW & 1 CNTER FOR SUM 44400020 * 44480020 SUM XB0CMDR 44560020 SUM XB0INTRQ 44640020 SUM XB0BUSC 44720020 SUM XB0ECHK 44800020 SUM XB0DCHK 44880020 SUM XB0OVRN 44960020 SUM XB0WRD 45040020 SUM XB0DTC 45120020 SUM XB1NOISE 45200020 SUM XB1STATA 45280020 SUM XB1STATB 45360020 SUM XB17TRCK 45440020 SUM XB1LOADP 45520020 SUM XB1WTSTA 45600020 SUM XB1FLPRT 45680020 SUM XB1NCOMP 45760020 SUM XB2TE0 45840020 SUM XB2TE1 45920020 SUM XB2TE2 46000020 SUM XB2TE3 46080020 SUM XB2TE4 46160020 SUM XB2TE5 46240020 SUM XB2TE6 46320020 SUM XB2TE7 46400020 SUM XB3RUN 46480020 SUM XB3LRC 46560020 SUM XB3SKW 46640020 SUM XB3CRC 46720020 SUM XB3SKV 46800020 SUM XB3PDE 46880020 SUM XB3BKW 46960020 SUM XB3CCM 47040020 SUM XB4ECH 47120020 SUM XB4REJ 47200020 SUM XB4RDC 47280020 SUM XB4WRC 47360020 SUM XB4DLY 47440020 SUM XB4CSQ 47520020 SUM XB4BSQ 47600020 SUM XB4ASQ 47680020 SUM XB5BT0 47760020 SUM XB5BT1 47840020 SUM XB5BT2 47920020 SUM XB5BT3 48000020 SUM XB5BT4 48080020 SUM XB5BT5 48160020 SUM XB5BT6 48240020 SUM XB5BT7 48320020 SPECIAL SDR1L,0,SPACE=1 S21021 48370021 SPECIAL SDR1R,0,SPACE=1 S21021 48380021 SPECIAL SDR2L,0,SPACE=1 S21021 48390021 SPECIAL SDR2R,0,SPACE=1 S21021 48392021 SPECIAL SDR3L,0,SPACE=1 S21021 48394021 SPECIAL SDR3R,0,SPACE=1 S21021 48396021 SPECIAL SDR4L,0,SPACE=1 S21021 48398021 SPECIAL SDR4R,0,SPACE=1 S21021 48398421 SPECIAL SDR5L,0,SPACE=1 S21021 48398821 SPECIAL SDR5R,0,SPACE=1 S21021 48399221 SPECIAL SDR6L,0,SPACE=1 S21021 48399621 SPECIAL SDR6R,0,SPACE=1 S21021 48399721 SPECIAL SDR7L,0,SPACE=1 S21021 48399821 SPECIAL SDR7R,0,SPACE=1 S21021 48399921 SPECIAL SDR8L,0,SPACE=1 S21021 48426621 SPECIAL SDR8R,0,SPACE=1 S21021 48436621 SUM SHRTSW S21021 48446621 SPECIAL RESETR2,0,SPACE=1 S21021 48448621 DC X'FF' 48453321 PEDIT DS 0F 48480020 &DSECT SETC 'YYYA' 48560020 &CSECT SETC 'PEDIT' 48640020 USING *,R9 48720020 USING YYYA,R2 S20202 48800020 * 48880020 * EDIT AND PRINT SECTION 48960020 * 49040020 DC A(PENTRY) ADDRESS OF EDIT ENTRIES 49120020 DC CL8'IFCSXXXA' 49200020 YR9PTR DS F 49280020 YLABELP DS F 49360020 * 49440020 YYYA DSECT 49520020 DS 3H 49600020 DSGEN (YDUMA,16),(YNOREC,16) 49680020 DSGEN (YTYPE,8),(YCHAN,8),(YCUA,24),(YSER,24) 49760020 DSGEN (YCPU,16),(YSMSW,16) 49840020 DSGEN (YLOWD,32) LOW DATE 49920020 DSGEN (YHID,32) HI DATE 50000020 DSGEN (YDEVT1,16),(YDEVT2,16) 50080020 DSGEN (YFFF01,16),(YNC01,8),(YCC01,8) 50160020 DSGEN (YFFF02,16),(YNC02,8),(YCC02,8) 50240020 DSGEN (YFFF03,16),(YNC03,8),(YCC03,8) 50320020 DSGEN (YFFF04,16),(YNC04,8),(YCC04,8) 50400020 DSGEN (YFFF05,16),(YNC05,8),(YCC05,8) 50480020 DSGEN (YFFF06,16),(YNC06,8),(YCC06,8) 50560020 DSGEN (YFFF07,16),(YNC07,8),(YCC07,8) 50640020 DSGEN (YFFF08,16),(YNC08,8),(YCC08,8) 50720020 DSGEN (YFFF09,16),(YNC09,8),(YCC09,8) 50800020 DSGEN (YFFF10,16),(YNC10,8),(YCC10,8) 50880020 DSGEN (YFFF11,16),(YNC11,8),(YCC11,8) 50960020 DSGEN (YFFF12,16),(YNC12,8),(YCC12,8) 51040020 DSGEN (YFFF13,16),(YNC13,8),(YCC13,8) 51120020 DSGEN (YFFF14,16),(YNC14,8),(YCC14,8) 51200020 DSGEN (YFFF15,16),(YNC15,8),(YCC15,8) 51280020 DSGEN (YFFF16,16),(YNC16,8),(YCC16,8) 51360020 DSGEN (YFFF17,16),(YNC17,8),(YCC17,8) 51440020 DSGEN (YFFF18,16),(YNC18,8),(YCC18,8) 51520020 DSGEN (YFFF19,16),(YNC19,8),(YCC19,8) 51600020 DSGEN (YFFF20,16),(YNC20,8),(YCC20,8) 51680020 DSGEN (YFFF21,16),(YNC21,8),(YCC21,8) 51760020 DSGEN (YFFF22,16),(YNC22,8),(YCC22,8) 51840020 DSGEN (YFFF23,16),(YNC23,8),(YCC23,8) 51920020 DSGEN (YFFF24,16),(YNC24,8),(YCC24,8) 52000020 DSGEN (YSC01,16),(YSC02,16) 52080020 DSGEN (YSC03,16),(YSC04,16) 52160020 DSGEN (YSC05,16),(YSC06,16) 52240020 DSGEN (YSC07,16),(YSC08,16) 52320020 DSGEN (YSC09,16),(YSC10,16) 52400020 DSGEN (YSC11,16),(YSC12,16) 52480020 DSGEN (YSC13,16),(YSC14,16) 52560020 DSGEN (YSC15,16),(YSC16,16) 52640020 DSGEN (YSC17,16),(YSC18,16) 52720020 DSGEN (YSC19,16),(YSC20,16) 52800020 DSGEN (YSC21,16),(YSC22,16) 52880020 DSGEN (YSC23,16),(YSC24,16) 52960020 DSGEN (YVOL1,48),(YVOL1C,16) 53040020 DSGEN (YVOL2,48),(YVOL2C,16) 53120020 DSGEN (YVOL3,48),(YVOL3C,16) 53200020 DSGEN (YVOL4,48),(YVOL4C,16) 53280020 DSGEN (YVOL5,48),(YVOL5C,16) 53360020 DSGEN (YVOL6,48),(YVOL6C,16) 53440020 DSGEN (YVOL7,48),(YVOL7C,16) 53520020 DSGEN (YVOL8,48),(YVOL8C,16) 53600020 DSGEN (YVOL9,48),(YVOL9C,16) 53680020 DSGEN (YVOLA,48),(YVOLAC,16) 53760020 DSGEN (YB0CMDR,16),(YB0INTV,16),(YB0BOCHK,16),(YB0ECHK,16) 53840020 DSGEN (YB0DCHK,16),(YB0OVRN,16),(YB0WRD,16),(YB0DTC,16) 53920020 DSGEN (YB1NOISE,16),(YB1STATA,16) 54000020 DSGEN (YB1STATB,16),(YB17TRCK,16) 54080020 DSGEN (YB1LOADP,16),(YB1WTSTA,16) 54160020 DSGEN (YB1FLPRT,16),(YB1NCOMP,16) 54240020 DSGEN (YB2TE0,16),(YB2TE1,16),(YB2TE2,16),(YB2TE3,16) 54320020 DSGEN (YB2TE4,16),(YB2TE5,16),(YB2TE6,16),(YB2TE7,16) 54400020 DSGEN (YB3WRN,16),(YB3LRC,16),(YB3SKW,16),(YB3CRC,16) 54480020 DSGEN (YB3SKV,16),(YB3PED,16),(YB3BKW,16),(YB3CCM,16) 54560020 DSGEN (YB4ECH,16),(YB4REJ,16),(YB4RDC,16),(YB4WRC,16) 54640020 DSGEN (YB4DLY,16),(YB4CSQ,16),(YB4BSQ,16),(YB4ASQ,16) 54720020 DSGEN (YB5BT0,16),(YB5BT1,16),(YB5BT2,16),(YB5BT3,16) 54800020 DSGEN (YB5BT4,16),(YB5BT5,16),(YB5BT6,16),(YB5BT7,16) 54880020 DSGEN (YSDR1L,16),(YSDR1R,16) S21021 54960021 DSGEN (YSDR2L,16),(YSDR2R,16) S21021 55010021 DSGEN (YSDR3L,16),(YSDR3R,16) S21021 55020021 DSGEN (YSDR4L,16),(YSDR4R,16) S21021 55030021 DSGEN (YSDR5L,16),(YSDR5R,16) S21021 55032021 DSGEN (YSDR6L,16),(YSDR6R,16) S21021 55034021 DSGEN (YSDR7L,16),(YSDR7R,16) S21021 55036021 DSGEN (YSDR8L,16),(YSDR8R,16) S21021 55038021 DSGEN (YSHRT,16),(YDUM1,16) S21021 55038421 IFCSXXXA CSECT 55040020 * 55120020 * SPECIAL ROUTINE SECTION 55200020 SETST1 STM R5,R8,XSAVE SAVE S20202 55280020 CLC L0(L2,R4),H3211 TEST FOR 3211 S20202 55360020 BNE RETURNA NO, RETURN S21021 55440021 LA R5,SENS3211 POINT AT SENSE LABELS S21021 55490021 ST R5,YLABELP S20202 56080020 B RETURNA S20202 56160020 * S20202 56240020 * 56320020 SETVOL MVC L0(L6,R3),L0(R4) MOV VOL LABEL TO LINE 56400020 BR R14 56480020 CHKVOL CLC L0(L6,R4),YZERO IS COUNTER IN USE 56560020 BCR L7,R14 BR YES 56640020 SR R15,R15 DON'T PRINT LINE S21021 56720021 BR R14 RETURN S21021 56770021 CONVERT STM R5,R8,XSAVE SAVE REGS 56880020 LH R5,L0(R4) PICK UP COUNT 56960020 CONV1 CVD R5,WORK CONVERT IT TO DEVIMALP 57040020 UNPK L0(L4,R3),WORK+L5(L3) UNPACK IT SA64329 57120021 MVZ L3(L1,R3),L0(R3) CORRECT ZONE SA64329 57200021 RETURNA LM R5,R8,XSAVE RESTORE REGS 57280020 BR R14 57360020 * 57440020 SKIPPER BR R14 RETURN 57520020 * 57600020 SETDATE UNPK WORK(L8),L0(L4,R4) PACK DATE 57680020 MVZ WORK+L7(L1),WORK MOVE ON ZONE 57760020 MVC L0(L3,R3),WORK+L5 MOVE DATE TO PRINT LINE 57840020 MVC L5(L2,R3),WORK+L3 MOVE YEAR TO PRINT LINE 57920020 BR R14 58000020 * 58080020 CONVCC1 CLC L0(L2,R4),HEXFFFF IS THIS COUNTER EMPYT 58160020 BCR L8,R14 NO TI IS FULL 58240020 SR R15,R15 STOP LINE PRINTING 58320020 BR R14 RETURN 58400020 * 58480020 * FREEE COUNTERS AREA LAST THING DONE 58560020 * 58640020 FREECTR STM R14,R12,L12(R13) SAVE ALL REGS 58720020 LR R12,R13 SAVE SAVE AREA ADDR 58800020 LA R13,FSAVE POINT TO MY SAVE 58880020 ST R12,L4(R13) SET CHAINING POINTERS 58960020 ST R13,L8(R12) 59040020 L R3,L4(R2) PICK UP POINTER TO NEXT COUNTER 59120020 ST R3,L28(R12) SAVE POINTER IN REG SAVE 59200020 LH R0,SIZE PICK UP SIZE OF AREA 59280020 LR R1,R2 SET ADDRESS 59360020 FREEMAIN R,LV=(0),A=(1) 59440020 LTR R3,R3 ANY MORE COUNTERS 59520020 BZ RETURN0 NO RETURN 59600020 LA R5,PENTRY+L10 POINT TO TOP ENTRY - 4 59680020 ST R5,YR9PTR 59760020 LA R5,LABELS-L1 POINT TO FIRST LABEL - 1 59840020 ST R5,YLABELP STORE IT IN TABLE 59920020 RETURN0 L R13,L4(R13) PICK UP & 60000020 LM R14,R12,L12(R13) RESTOR E REGS 60080020 BR R14 60160020 SETDEV STM R5,R8,XSAVE SAVE REGS S21021 60240021 LA R6,DEVTABLE S20202 60800020 LA R5,L2 NUMBER OF ENTRIES S20202 60880020 SETDEVT CLC L0(L2,R4),L0(R6) S20202 60960020 BE SDEVFND S20202 61040020 LA R6,L6(R6) S20202 61120020 BCT R5,SETDEVT S20202 61200020 MVC L0(L4,R3),NONE S20202 61280020 B RETURNA S20202 61360020 SDEVFND MVC L0(L4,R3),L2(R6) S20202 61440020 B RETURNA S20202 61520020 XFF EQU X'FF' S21021 61600021 SETCPUNO STM R5,R8,XSAVE SAVE REGS S21021 61650021 SR R5,R5 CLEAAR R5 S21021 61660021 IC R5,0(R4) PICK UP S21021 61670021 SLL R5,R8 CPU TYPE S21021 61680021 IC R5,L1(R4) FIELD S21021 61730021 LTR R5,R5 IS TI ZERO? S21021 61740021 BNZ RETURNA NO, LINE IS GOOD, RETURN S21021 61750021 LA R6,L64 ELSE, BACK UP DATA PTR S21021 61760021 SR R3,R6 TO PUT IN NEW INFO S21021 61810021 MVC 0(L9,R3),UNIVERS SAY MODEL UNIVERSAL S21021 61820021 MVC L32(L6,R3),NONE SAY SERIAL NO. NONE S21021 61830021 B RETURNA RETURN S21021 61840021 * S21021 61890021 SETSTAT DS 0H S21021 61900021 STM R5,R8,XSAVE SAVE REGS S21021 61910021 LA R5,STATSECT-4 PNT TO EDITS FOR STATS S21021 61920021 ST R5,YR9PTR LET EREP KNOW S21021 61970021 LA R5,STATLABS+1 PNTR FOR STAT LABELS S21021 61980021 ST R5,YLABELP SET FOR EREP S21021 61990021 LA R5,L17(R5) BUMP PAST FIRST LABEL S21021 61992021 LA R6,L5 NUMBER OF ENTRIES S21021 61994021 LA R8,STLBLIST POINT TO FIRST LABEL ENTRS21021 61996021 STLBCOMP CLC 0(L2,R4),0(R8) IS THIS THE DEVICE TYPE S21021 61998021 BE STLBLTFD YES, GO MOVE LABELS S21021 61998421 LA R8,L18(R8) NO, BUMP TO NEXT S21021 61998821 BCT R6,STLBCOMP NOT DONE, GO BACK S21021 61999221 LA R8,STLBDFLT DONE, USE DEFAULT S21021 61999621 STLBLTFD DS 0H LABELS FOUND S21021 61999721 LA R8,L2(R8) USE LABELS S21021 61999821 LA R7,L16(R8) DETERMINE END POINT S21021 61999921 ST R7,STLBLEND SAVE FOR COMPARE S21021 62026621 STLABLP DS 0H S21021 62036621 CLI 0(R8),XFF IS THIS 'NOT USED' S21021 62046621 BE STLBLNUS YES, LABEL = 'NOT USED' S21021 62048621 SR R7,R7 CLEAR R7 S21021 62050621 IC R7,0(R8) GET INDEX TO LABEL S21021 62052621 MH R7,HW13 MULTIPLY TO GET LABEL S21021 62053021 A R7,STLBTBAD SET TO LABEL S21021 62053121 MVC L0(L13,R5),L0(R7) MOVE IN LABEL S21021 62053221 B STLBL001 S21021 62062121 STLBLNUS DS 0H S21021 62064121 MVC L0(L13,R5),STLBNTUS 'NOT USED' LABEL S21021 62066121 STLBL001 DS 0H S21021 62068121 LA R5,L14(R5) BUMP R5 S21021 62070121 LA R7,STLBTABL GET PROPER LABEL S21021 62070521 LA R8,L1(R8) POINT TO NEXT INDEX S21021 62070921 C R8,STLBLEND AT END OF LIST? S21021 62071021 BNE STLABLP NO, CONTINUE S21021 62093221 B RETURNA S21021 62103221 * S21021 62113221 STLBNTUS DC C'NOT USED ' S21021 62115221 STLBLIST DS 0C S21021 62115321 DC X'8001' S21021 62115421 DC X'000102030405060708090A0B0C0D0E0F' 2400 STAT LABES21021 62115521 STLBDFLT DS 0C S21021 62122921 DC X'0809' S21021 62124921 DC X'0001FF03041011FF12131415FF16FF0F' 3211 STAT LABES21021 62126921 STLBTBAD DC A(STLBTABL) S21021 62128921 STLBTABL DS 0C S21021 62129321 DC C'TEMPY READS ' 00 S21021 62129721 DC C'TEMPY WRITES ' 01 S21021 62130121 DC C'INTRVN REQD ' 02 S21021 62130221 DC C'BUS OUT CHK ' 03 S21021 62130321 DC C'EQUIP CHK ' 04 S21021 62137721 DC C'OVERRUN ' 05 S21021 62137821 DC C'WD CT 0 ' 06 S21021 62139821 DC C'DATA CONV CHK' 07 S21021 62141821 DC C'R/W VRC ' 08 S21021 62143821 DC C'LRCR ' 09 S21021 62144221 DC C'SKEW ' 0A S21021 62144621 DC C'CRC ' 0B S21021 62145021 DC C'SKEW REG VRC ' 0C S21021 62145121 DC C'NOISE ' 0D S21021 62164021 DC C'RD OPP RECVY ' 0E S21021 62174021 DC C'CHAN DATA CHK' 0F S21021 62176021 DC C'BUFF PTY CHK ' 10 S21021 62178021 DC C'LOAD CHECK ' 11 S21021 62180021 DC C'CMND RETRY ' 12 S21021 62182021 DC C'PRINT CHECK ' 13 S21021 62182421 DC C'PRNT QUALITY ' 14 S21021 62182821 DC C'LINE POS ' 15 S21021 62183221 DC C'CMND SUPPRESS' 16 S21021 62189521 STLBLEND DC F'0' S21021 62191521 HW13 DC H'13' S21021 62193521 UNIVERS DC C'UNIVERSAL' S21021 62195521 NONE DC C'NONE ' S21021 62195621 DEVTABLE DC X'0809' S20202 62195921 DC C'3211' S20202 62202221 DC X'8001' S20202 62221121 DC C'2400' S20202 62240020 H3211 DC X'0809' S20202 62320020 DEVCODE DC X'8001' S20202 62400020 * 62480021 SENS3211 DC C'CMND REJ*CMD RETRY*CAR F MOV*UCB PRTY*' 62580021 DC C'XTRA SCAN*BIT 0$' 62680021 DC C'INTV REQ*PRT CHECK*CAR SQ CK*PLB PRTY*' 62780021 DC C'PRT TRIG *BIT 1$' 62880021 DC C'BUS O CK*PRT QLTY *CAR SP CK*FCB PRTY*' 62980021 DC C'BLK PRINT*BIT 2$' 63080021 DC C'EQUIP CK*LINE POS *PLT F ADV*COIL PRO*' 63180021 DC C'PLAT INLK*BIT 3$' 63280021 DC C'DATA CHK*FRM CHECK*PLT F RET*H FIR CK*' 63380021 DC C'CAR GO *BIT 4$' 63480021 DC C'B PAR CK*CMND SUPP*FORMS JAM*SERV AID*' PT1403 63580021 DC C'CAR SETTL*BIT 5$' 63680021 DC C'LD CHECK*MECH MOTN*RIB MOT *UCSAR S C*' 63780021 DC C'CAR COMPR*BIT 6$' 63880021 DC C'CHAN 9 *UNASSIGN*TRN OVLD *PSE S CHK*' 63980021 DC C'FWD DRIVE*BIT 7$' 64080021 DC C'$$$$$$' 64180021 * 64720020 HEX02 EQU X'02' 64800020 * 65040020 WORK DS D 65120020 XSAVE DS 4F 65200020 FSAVE DS 18F 65280020 SIZE DC H'402' NO OF BYTES TO BE FREED S21021 65360021 HEXFFFF DC X'FFFF' 65440020 YZERO DC XL6'00' 65520020 PENTRY DS 0F 65760020 DC X'00010001' 65840020 DC X'00010001' 65920020 DC A(LABELS) 66000020 DC H'0' 66080020 * 66160020 DC X'01' 66240020 DC X'000B8B00' 66320020 LABEL ' ' 66400020 LINE (57,32),(23,26) S21021 66480021 HEX YCPU,0,2B S21021 66530021 HEX YSER,0,3B S21021 66540021 ROUTINE YCPU,SETCPUNO S21021 66550021 LABEL 'DAY YEAR DAY YEAR','MODEL-','SERIAL NO.' S21021 66560021 LINE (23,11),(1,30) 66720020 ROUTINE YLOWD,SETDATE 66800020 ROUTINE YHID,SETDATE 66880020 LABEL 'OUTBOARD DATE RANGE -','TO' 66960020 * 67040020 LINE (61,16),(1,62) 67120020 HEX YCUA 67200020 ROUTINE YDEVT2,SETDEV GO DETERMINE DEVICE TYPE S20202 67280020 LABEL 'SUMMARY OF I/O OUTBOARD ENVIRONMENT RECORDS FOR DEVICE'C67360020 ,'DEVICE TYPE' S20202 67440020 * 67520020 LINE (29,),,SKIP=1 S21021 67600021 ROUTINE YNOREC,CONVERT 67680020 LABEL 'TOTAL NUMBER OF RECORDS' 67760020 LINE ,,SKIP=2 S21021 67810021 ROUTINE YSHRT,CONVERT S21021 67820021 LABEL 'TOTAL OF OVERFLOW RECORDS' S21021 67830021 * 67840020 LINE ,(1,1) 67920020 ROUTINE YDUM1,SKIPPER 68000020 LABEL 'CCW COMMAND CODES ENCOUNTERED(MAXIMUM OF 24)' 68080020 * 68160020 LINE ,(3,6),SKIP=1 68240020 ROUTINE YDUM1,SKIPPER 68320020 LABEL 'CMND','TOTAL' 68400020 LINE (4,6),(1,1) 68480020 HEX YCC01 68560020 ROUTINE YSC01,CONVERT 68640020 ROUTINE YFFF01,CONVCC1 68720020 LABEL ' ' 68800020 LINE 68880020 HEX YCC02 68960020 ROUTINE YSC02,CONVERT 69040020 ROUTINE YFFF02,CONVCC1 69120020 LABEL ' ' 69200020 LINE 69280020 HEX YCC03 69360020 ROUTINE YSC03,CONVERT 69440020 ROUTINE YFFF03,CONVCC1 69520020 LABEL ' ' 69600020 LINE 69680020 HEX YCC04 69760020 ROUTINE YSC04,CONVERT 69840020 ROUTINE YFFF04,CONVCC1 69920020 LABEL ' ' 70000020 LINE 70080020 HEX YCC05 70160020 ROUTINE YSC05,CONVERT 70240020 ROUTINE YFFF05,CONVCC1 70320020 LABEL ' ' 70400020 LINE 70480020 HEX YCC06 70560020 ROUTINE YSC06,CONVERT 70640020 ROUTINE YFFF06,CONVCC1 70720020 LABEL ' ' 70800020 LINE 70880020 HEX YCC07 70960020 ROUTINE YSC07,CONVERT 71040020 ROUTINE YFFF07,CONVCC1 71120020 LABEL ' ' 71200020 LINE 71280020 HEX YCC08 71360020 ROUTINE YSC08,CONVERT 71440020 ROUTINE YFFF08,CONVCC1 71520020 LABEL ' ' 71600020 LINE 71680020 HEX YCC09 71760020 ROUTINE YSC09,CONVERT 71840020 ROUTINE YFFF09,CONVCC1 71920020 LABEL ' ' 72000020 LINE 72080020 HEX YCC10 72160020 ROUTINE YSC10,CONVERT 72240020 ROUTINE YFFF10,CONVCC1 72320020 LABEL ' ' 72400020 LINE 72480020 HEX YCC11 72560020 ROUTINE YSC11,CONVERT 72640020 ROUTINE YFFF11,CONVCC1 72720020 LABEL ' ' 72800020 LINE 72880020 HEX YCC12 72960020 ROUTINE YSC12,CONVERT 73040020 ROUTINE YFFF12,CONVCC1 73120020 LABEL ' ' 73200020 LINE 73280020 HEX YCC13 73360020 ROUTINE YSC13,CONVERT 73440020 ROUTINE YFFF13,CONVCC1 73520020 LABEL ' ' 73600020 LINE 73680020 HEX YCC14 73760020 ROUTINE YSC14,CONVERT 73840020 ROUTINE YFFF14,CONVCC1 73920020 LABEL ' ' 74000020 LINE 74080020 HEX YCC15 74160020 ROUTINE YSC15,CONVERT 74240020 ROUTINE YFFF15,CONVCC1 74320020 LABEL ' ' 74400020 LINE 74480020 HEX YCC16 74560020 ROUTINE YSC16,CONVERT 74640020 ROUTINE YFFF16,CONVCC1 74720020 LABEL ' ' 74800020 LINE 74880020 HEX YCC17 74960020 ROUTINE YSC17,CONVERT 75040020 ROUTINE YFFF17,CONVCC1 75120020 LABEL ' ' 75200020 LINE 75280020 HEX YCC18 75360020 ROUTINE YSC18,CONVERT 75440020 ROUTINE YFFF18,CONVCC1 75520020 LABEL ' ' 75600020 LINE 75680020 HEX YCC19 75760020 ROUTINE YSC19,CONVERT 75840020 ROUTINE YFFF19,CONVCC1 75920020 LABEL ' ' 76000020 LINE 76080020 HEX YCC20 76160020 ROUTINE YSC20,CONVERT 76240020 ROUTINE YFFF20,CONVCC1 76320020 LABEL ' ' 76400020 LINE 76480020 HEX YCC21 76560020 ROUTINE YSC21,CONVERT 76640020 ROUTINE YFFF21,CONVCC1 76720020 LABEL ' ' 76800020 LINE 76880020 HEX YCC22 76960020 ROUTINE YSC22,CONVERT 77040020 ROUTINE YFFF22,CONVCC1 77120020 LABEL ' ' 77200020 LINE 77280020 HEX YCC23 77360020 ROUTINE YSC23,CONVERT 77440020 ROUTINE YFFF23,CONVCC1 77520020 LABEL ' ' 77600020 LINE ,,SKIP=1 77680020 HEX YCC24 77760020 ROUTINE YSC24,CONVERT 77840020 ROUTINE YFFF24,CONVCC1 77920020 LABEL ' ' 78000020 LINE (12,12),(1,1),SKIP=1 78080020 LABEL '' S21021 78130021 LINE S21021 78140021 ROUTINE YDUM1,SKIPPER 78160020 LABEL 'VOLUME LABELS ENCOUNTERED (MAXIMUM OF 10)' 78240020 LINE 78320020 ROUTINE YVOL1,SETVOL 78400020 ROUTINE YVOL1C,CONVERT 78480020 LABEL 'VOL. LABEL' 78560020 ROUTINE YVOL1,CHKVOL 78640020 LINE 78720020 ROUTINE YVOL2,SETVOL 78800020 ROUTINE YVOL2C,CONVERT 78880020 ROUTINE YVOL2,CHKVOL 78960020 LABEL ' ' 79040020 LINE 79120020 ROUTINE YVOL3,SETVOL 79200020 ROUTINE YVOL3C,CONVERT 79280020 ROUTINE YVOL3,CHKVOL 79360020 LABEL ' ' 79440020 LINE 79520020 ROUTINE YVOL4,SETVOL 79600020 ROUTINE YVOL4C,CONVERT 79680020 ROUTINE YVOL4,CHKVOL 79760020 LABEL ' ' 79840020 LINE 79920020 ROUTINE YVOL5,SETVOL 80000020 ROUTINE YVOL5C,CONVERT 80080020 ROUTINE YVOL5,CHKVOL 80160020 LABEL ' ' 80240020 LINE 80320020 ROUTINE YVOL6,SETVOL 80400020 ROUTINE YVOL6C,CONVERT 80480020 ROUTINE YVOL6,CHKVOL 80560020 LABEL ' ' 80640020 LINE 80720020 ROUTINE YVOL7,SETVOL 80800020 ROUTINE YVOL7C,CONVERT 80880020 ROUTINE YVOL7,CHKVOL 80960020 LABEL ' ' 81040020 LINE 81120020 ROUTINE YVOL8,SETVOL 81200020 ROUTINE YVOL8C,CONVERT 81280020 ROUTINE YVOL8,CHKVOL 81360020 LABEL ' ' 81440020 LINE 81520020 ROUTINE YVOL9,SETVOL 81600020 ROUTINE YVOL9C,CONVERT 81680020 ROUTINE YVOL9,CHKVOL 81760020 LABEL ' ' 81840020 LINE ,,SKIP=2 81920020 ROUTINE YVOLA,SETVOL 82000020 ROUTINE YVOLAC,CONVERT 82080020 ROUTINE YVOLA,CHKVOL 82160020 LABEL ' ' 82240020 LINE 82320020 LABEL '' S21021 82370021 LINE S21021 82380021 LABEL 'SENSE BYTE SUMMARY' 82400020 LINE (12,19),(1,19) 82480020 LABEL 'BYTE 0','BYTE 1','BYTE 2','BYTE 3','BYTE 4','BYTE 5' 82560020 LINE (12,19),(1,19),SKIP=1 82640020 ROUTINE YB0CMDR,CONVERT 82720020 ROUTINE YB1NOISE,CONVERT 82800020 ROUTINE YB2TE0,CONVERT 82880020 ROUTINE YB3WRN,CONVERT 82960020 ROUTINE YB4ECH,CONVERT 83040020 ROUTINE YB5BT0,CONVERT 83120020 ROUTINE YDEVT2,SETST1 S20202 83200020 LABEL 'CMNP REJ','NOISE','TRK ERR 0','R/W VRC','ECHO ERR', C83280020 'BIT 0' 83360020 * 83440020 LINE 83520020 ROUTINE YB0INTV,CONVERT 83600020 ROUTINE YB1STATA,CONVERT 83680020 ROUTINE YB2TE1,CONVERT 83760020 ROUTINE YB3LRC,CONVERT 83840020 ROUTINE YB4REJ,CONVERT 83920020 ROUTINE YB5BT1,CONVERT 84000020 LABEL 'INTV REQD','TU STAT A','TRK ERR 1','LRCR','REJECT TU', *84080020 'BIT 1' 84160020 LINE 84240020 ROUTINE YB0BOCHK,CONVERT 84320020 ROUTINE YB1STATB,CONVERT 84400020 ROUTINE YB2TE2,CONVERT 84480020 ROUTINE YB3SKW,CONVERT 84560020 ROUTINE YB4RDC,CONVERT 84640020 ROUTINE YB5BT2,CONVERT 84720020 LABEL 'BUS O CHK','TU STAT B','TRK ERR 2','SKEW','READ CLCK', C84800020 'BIT 2' 84880020 LINE 84960020 ROUTINE YB0ECHK,CONVERT 85040020 ROUTINE YB17TRCK,CONVERT 85120020 ROUTINE YB2TE3,CONVERT 85200020 ROUTINE YB3CRC,CONVERT 85280020 ROUTINE YB4WRC,CONVERT 85360020 ROUTINE YB5BT3,CONVERT 85440020 LABEL 'EQUIP CHK','7 TRACK','TRK ERR 3','CRC/DT CH','WRITE CLCC85520020 ','BIT 3' 85600020 LINE 85680020 ROUTINE YB0DCHK,CONVERT 85760020 ROUTINE YB1LOADP,CONVERT 85840020 ROUTINE YB2TE4,CONVERT 85920020 ROUTINE YB3SKV,CONVERT 86000020 ROUTINE YB4DLY,CONVERT 86080020 ROUTINE YB5BT4,CONVERT 86160020 LABEL 'DATA CHK','LOAD PT','TRK ERR 4','SKEW VRC', SA59663C86240021 'ST RD CHK','BIT 4' SA59663 86320021 LINE 86400020 ROUTINE YB0OVRN,CONVERT 86480020 ROUTINE YB1WTSTA,CONVERT 86560020 ROUTINE YB2TE5,CONVERT 86640020 ROUTINE YB3PED,CONVERT 86720020 ROUTINE YB4CSQ,CONVERT 86800020 ROUTINE YB5BT5,CONVERT 86880020 LABEL 'OVERRUN','WRITE STA','TRK ERR 5','PE DRIVE','C SEQUENC'C86960020 ,'BIT 5' 87040020 LINE 87120020 ROUTINE YB0WRD,CONVERT 87200020 ROUTINE YB1FLPRT,CONVERT 87280020 ROUTINE YB2TE6,CONVERT 87360020 ROUTINE YB3BKW,CONVERT 87440020 ROUTINE YB4BSQ,CONVERT 87520020 ROUTINE YB5BT6,CONVERT 87600020 LABEL 'WTD CNT 0','FL PROT','TRK ERR 6','BACKWARD','B SEQUENC'C87680020 ,'BIT 6' 87760020 LINE ,,SKIP=2 S21021 87840021 ROUTINE YB0DTC,CONVERT 87920020 ROUTINE YB1NCOMP,CONVERT 88000020 ROUTINE YB2TE7,CONVERT 88080020 ROUTINE YB3CCM,CONVERT 88160020 ROUTINE YB4ASQ,CONVERT 88240020 ROUTINE YB5BT7,CONVERT 88320020 LABEL 'DT CNVRT','NOT COMP','TRK ERR 7','C COMPARE','A-SEQUENCC88400020 ','BIT 7' 88480020 LINE 88560020 ROUTINE YDEVT2,SETSTAT GO SET STAT LABELS S21021 88610021 STATLABS LABEL '' S21021 88620021 LABEL 'STATISTICAL DATA' S21021 88630021 STATSECT DS 0C S21021 88632021 LINE (20,30),(1,30),SKIP=1 S21021 88634021 ROUTINE YSDR1L,CONVERT S21021 88636021 ROUTINE YSDR1R,CONVERT S21021 88638021 LABEL ' ',' ' S21021 88638421 LINE S21021 88638821 ROUTINE YSDR2L,CONVERT S21021 88639221 ROUTINE YSDR2R,CONVERT S21021 88639621 LABEL ' ',' ' S21021 88639721 LINE S21021 88639821 ROUTINE YSDR3L,CONVERT S21021 88639921 ROUTINE YSDR3R,CONVERT S21021 88666621 LABEL ' ',' ' S21021 88676621 LINE S21021 88686621 ROUTINE YSDR4L,CONVERT S21021 88688621 ROUTINE YSDR4R,CONVERT S21021 88690621 LABEL ' ',' ' S21021 88692621 LINE S21021 88693021 ROUTINE YSDR5L,CONVERT S21021 88693121 ROUTINE YSDR5R,CONVERT S21021 88693221 LABEL ' ',' ' S21021 88702121 LINE S21021 88704121 ROUTINE YSDR6L,CONVERT S21021 88706121 ROUTINE YSDR6R,CONVERT S21021 88708121 LABEL ' ',' ' S21021 88710121 LINE S21021 88710521 ROUTINE YSDR7L,CONVERT S21021 88710921 ROUTINE YSDR7R,CONVERT S21021 88711021 LABEL ' ',' ' S21021 88733221 LINE S21021 88743221 ROUTINE YSDR8L,CONVERT S21021 88753221 ROUTINE YSDR8R,CONVERT S21021 88755221 LABEL ' ',' ' S21021 88755321 LINE S21021 88755421 ROUTINE YDUM1,FREECTR 88755621 LABEL ' ' 88777821 DC X'FF' 88800020 DC XL6'00' 88880020 DC C'$' 88960020 LABELS EQU * 89040020 LSTART 89120020 END 89200020 ./ ADD SSI=04010860,NAME=IFCSXXXB,SOURCE=0 SPACE 2 00030021 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 00060021 MACRO 00090021 &NAME LINE &DATA,&LABEL,&SKIP= 00120021 .* THIS MACRO ESTABLISHES THE MARGINS OR 00150021 .* COLUMN SETTINGS FOR EACH LINE. IT 00180021 .* GENERATES NECESSARY CARRIAGE CONTROL 00210021 .* ENTRIES. LASTLY IT DETERMINES THE 00240021 .* NUMBER OF ENTRIES ASSOCIATED WITH 00270021 .* THE PREVIOUS LINE AND STORES THAT # 00300021 .* INTO THE APPROPRIATE BYTE. 00330021 .* &DATA(1) - CHARACTER POSITION TO BEGIN 00360021 .* DATA. 00390021 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 00420021 .* DATA COLUMN STARTING CHARACTERS. 00450021 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 00480021 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 00510021 .* STARTING CHARACTERS. 00540021 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 00570021 .* TO BEGIN NEXT PRINTED LINE. 00600021 .* NEW ENTRIES ARE GENERATED ONLY WHEN 00630021 .* NECESSARY. OMISSION OF ITEMS MEANS 00660021 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 00690021 .* SETTINGS. A LINE MACRO IS REQUIRED 00720021 .* FOR EACH PRINTED LINE. IF NO SETTING 00750021 .* CHANGES ARE REQUIRED ALL OPERANDS 00780021 .* ARE OMITTED IN WHICH CASE ONLY THE 00810021 .* # OF ENTRIES FOR THE PREVIOUS LINE 00840021 .* IS COMPUTED. THIS MACRO MUST BE THE 00870021 .* FIRST MACRO INSTRUCTION ISSUED FOR 00900021 .* THE SUBJECT LINE 00930021 GBLA &DB,&DT,&LB,<,&NRENTS 00960021 GBLA &LASTCC,&INITIAL 00990021 GBLC &NRENTSX 01020021 GBLC &CARRCON 01050021 GBLB &TEST 01080021 LCLA &S 01110021 &NAME DS 0C 01140021 AIF (&INITIAL EQ 0).FIRSTLN 01170021 LINEND 01200021 AGO .NTFIRST 01230021 .FIRSTLN ANOP 01260021 &NRENTSX SETC 'N&SYSNDX' 01290021 &INITIAL SETA 1 01320021 N&SYSNDX EQU * 01350021 .NTFIRST ANOP 01380021 DC AL1(0) 01410021 AIF ('&DATA(1)' EQ '').CKDTABS 01440021 AIF (&DATA(1) EQ &DB).CKDTABS 01470021 &DB SETA &DATA(1) 01500021 AGO .AA 01530021 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 01560021 AIF (&DATA(2) EQ &DT).NCDATA 01590021 AGO .CC 01620021 .AA AIF ('&DATA(2)' EQ '').BB 01650021 AIF (&DATA(2) EQ &DT).BB 01680021 .CC ANOP 01710021 &DT SETA &DATA(2) 01740021 .BB DC XL2'FFFE' 01770021 DC FL1'&DB' 01800021 DC FL1'&DT' 01830021 &NRENTS SETA &NRENTS+1 01860021 .NCDATA ANOP 01890021 AIF ('&LABEL(1)' EQ '').CKLTABS 01920021 AIF (&LABEL(1) EQ &LB).CKLTABS 01950021 &LB SETA &LABEL(1) 01980021 AGO .AAA 02010021 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 02040021 AIF (&LABEL(2) EQ <).NCLABEL 02070021 AGO .CCC 02100021 .AAA AIF ('&LABEL(2)' EQ '').BBB 02130021 AIF (&LABEL(2) EQ <).BBB 02160021 .CCC ANOP 02190021 < SETA &LABEL(2) 02220021 .BBB DC XL2'FFFF' 02250021 DC FL1'&LB' 02280021 DC FL1'<' 02310021 &NRENTS SETA &NRENTS+1 02340021 .NCLABEL ANOP 02370021 AIF ('&SKIP' NE '').CONT 02400021 AIF (&TEST EQ 0).NOCHANG 02430021 &S SETA &LASTCC 02460021 AGO .DEFAULT 02490021 .CONT ANOP 02520021 AIF (&TEST EQ 0).AB 02550021 &S SETA &SKIP 02580021 .DEFAULT ANOP 02610021 ORG &CARRCON+3 02640021 DC AL.3(0),AL.2(&S),AL.3(1) 02670021 ORG 02700021 &LASTCC SETA &S 02730021 &TEST SETB 0 02760021 AGO .DD 02790021 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 02820021 A&SYSNDX DC XL2'FFFB' 02850021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 02880021 DC FL1'9' 02910021 &LASTCC SETA &SKIP 02940021 &TEST SETB 1 02970021 &CARRCON SETC 'A&SYSNDX' 03000021 &NRENTS SETA &NRENTS+1 03030021 .DD ANOP 03060021 .NOCHANG ANOP 03090021 MEND 03120021 EJECT 03150021 SPACE 2 03180021 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 03210021 MACRO 03240021 &NAME ROUTINE &LOGITEM,&RNAME 03270021 GBLC &DSECT,&CSECT 03300021 GBLC &ITEM(1000) 03330021 GBLA &SHIFT(1000),&ITEMNBR 03360021 GBLA &NRENTS 03390021 LCLA &ISHIFT,&NDX 03420021 .LOOP ANOP 03450021 &NDX SETA &NDX+1 03480021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 03510021 AIF (&NDX LT &ITEMNBR).LOOP 03540021 MNOTE *,'LOG ITEM NOT DEFINED' 03570021 MEXIT 03600021 .FOUND ANOP 03630021 &ISHIFT SETA &SHIFT(&NDX) 03660021 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 03690021 DC AL.4(&ISHIFT),AL.12(&RNAME-&CSECT) 03720021 &NRENTS SETA &NRENTS+1 03750021 MEND 03780021 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 03810021 SPACE 2 03840021 MACRO 03870021 &NAME DSGEN 03880021 .* THIS MACRO GENERATES ONE DSECT WORD 03890021 .* FORMATTED FOR THE SUBJECT LOG RECORD 03900021 .* EACH OPERAND HAS TWO SUB LISTS. THE 03910021 .* FIRST IS THE NAME OF THE LOG ITEM 03920021 .* WHILE THE SECOND IS THE # OF BITS TO 03930021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 03940021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 03950021 .* UNUSED BIT GROUPS MUST BE GIVEN 03960021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 03970021 .* THE LOG ITEMS MAY THEN BE USED IN 03980021 .* THE CONVERSION MACRO INSTRUCTIONS. 03990021 GBLC &ITEM(1000) 04000021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 04010021 LCLB &ONLY1,&CTIND 04020021 LCLA &START1,&START2,&END1,&END2 04030021 LCLC &SYMBOL,&EQUSYM 04040021 LCLA &OP,&COUNT,&BYTE,&EQUCNT 04050021 ACTR 100000 04060021 .START AIF (N'&SYSLIST(&OP+1) LT 3).LOOP 04070021 AIF ('&SYSLIST(&OP+1,3)' EQ 'EQU').LOOP TEST FOR EQU 04080021 AIF ('&SYSLIST(&OP+1,3)' EQ '' AND '&SYSLIST(&OP+1,4)' EQ '').ERR1 04090021 AIF ('&SYSLIST(&OP+1,3)' EQ '' OR '&SYSLIST(&OP+1,4)' EQ '').ERR1 04100021 AIF ('&SYSLIST(&OP+1,3)' GT '&SYSLIST(&OP+1,4)').ERR3 04110021 &START1 SETA &SYSLIST(&OP+1,3) GET START COUNT OF 1 04120021 &START2 SETA &SYSLIST(&OP+1,4) GET FIRST END COUNT 04130021 AGO .SET2A BRANCH AROUND 04140021 .ERR1 MNOTE '**FIRST SYMBOL CONCATENATION INCOMPLETE**' 04150021 MEXIT 04160021 .SET2A AIF ('&SYSLIST(&OP+1,5)' EQ ''AND '&SYSLIST(&OP+1,6)' EQ '' X04170021 ).SET2 TEST FOR NO SECOND 04180021 AIF ('&SYSLIST(&OP+1,5)' EQ '' OR '&SYSLIST(&OP+1,6)' EQ '').ERR2 04190021 AIF ('&SYSLIST(&OP+1,5)' GT '&SYSLIST(&OP+1,6)').ERR3 04200021 &END1 SETA &SYSLIST(&OP+1,5) GET START COUNT OF 2 04210021 &END2 SETA &SYSLIST(&OP+1,6) GET END COUNT OF 2 04220021 AGO .LOOP 04230021 .SET2 ANOP 04240021 &ONLY1 SETB 1 INDICATE ONLY ONE CONCATENATION 04250021 AGO .LOOP 04260021 .ERR2 MNOTE '**SECOND SYMBOL CONCATENATION INCOMPLETE**' 04270021 MEXIT 04280021 .ERR3 MNOTE '**START GREATER THAN END CONCATENATION**' 04290021 MEXIT 04300021 .LOOP ANOP 04310021 &OP SETA &OP+1 04320021 AIF (&OP GT N'&SYSLIST).DONE TEST IF ALL DONE 04330021 &ITEMNBR SETA &ITEMNBR+1 04340021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 04350021 MNOTE '**NULL BIT COUNT FIELD**' 04360021 MEXIT 04370021 .OK1 ANOP 04380021 &SYMBOL SETC '&SYSLIST(&OP,1)' 04390021 AIF ('&SYMBOL' NE '').OK 04400021 * ***** LOG ITEM SYMBOL NOT PROVIDED ***** 04410021 AIF ('&SYSLIST(&OP,3)' NE 'EQU').CNT 04420021 AGO .START GET NEXT 04430021 .OK AIF (N'&SYSLIST(&OP) LT 3).NO3 TEST FOR OLD FORMAT 04440021 AIF ('&SYSLIST(&OP,3)' EQ 'EQU').EQU TEST FOR EQU 04450021 AIF (&ONLY1).OK2 TEST FOR ONLY ONE CONCAT 04460021 &SYMBOL SETC '&SYMBOL.&START1.&END1' GET 1 AND 2 CONCAT 04470021 AGO .NO3 BRANCH AROUND 04480021 .OK2 ANOP 04490021 &SYMBOL SETC '&SYMBOL.&START1' GET 1 CONCATENATED 04500021 .NO3 ANOP 04510021 &SYMBOL EQU *+&BYTE 04520021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL IN GLOBAL 04530021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 04540021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 04550021 .CNT ANOP 04560021 &CTIND SETB 1 SET COUNT INDICATOR 04570021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 04580021 &BYTE SETA &COUNT/8 04590021 AIF (N'&SYSLIST(&OP) LT 3).START TEST FOR OLD FORMAT 04600021 AIF (&ONLY1).TSTST TEST FOR ONLY ONE CONCAT 04610021 AIF (&END1 EQ &END2).TSTST TEST FOR SECOND END 04620021 &END1 SETA &END1+1 INCREMENT COUNT 04630021 &OP SETA &OP-1 DECREMENT INCREMENT 04640021 AGO .LOOP GENERATE NEXT 04650021 .TSTST ANOP 04660021 AIF (&START1 EQ &START2).LPDONE TEST FOR END 04670021 AIF (&ONLY1).NSET1 TEST FOR ONLY ONE CONCAT 04680021 &END1 SETA &SYSLIST(&OP,5) RE-INIT SECOND START COUNT 04690021 .NSET1 ANOP 04700021 &OP SETA &OP-1 DECREMENT INDEX 04710021 &START1 SETA &START1+1 INCREMENT FIRST COUNT 04720021 AGO .LOOP GO DO NEXT 04730021 .LPDONE ANOP 04740021 &ONLY1 SETB 0 CLEAR INDICATOR 04750021 AGO .START GO TEST FOR MORE SUB-LISTS 04760021 .DONE AIF (&COUNT-&COUNT/8*8 NE 0).ERR TEST FOR MULTIPLE OF EIGHT 04770021 AIF (&CTIND EQ 0).END NO DS IF NO COUNT 04780021 &COUNT SETA &COUNT/8 GET NUMBER OF BYTES 04790021 &NAME DS &COUNT.C 04800021 .END MEXIT 04810021 .ERR MNOTE '**BIT COUNT FLDS DO NOT TOTAL MULTIPLE OF 8**' 04820021 MEXIT 04830021 .EQU AIF ('&SYSLIST(&OP,4)' NE '').EQU1 TEST FOR NULL LABEL 04840021 .ERR4 MNOTE '**EQU OPERAND OMITTED OR NOT FOUND**' 04850021 MEXIT 04860021 .EQU1 AIF (&SYSLIST(&OP,2) LT 16).EQU2 COUNT OVER FIFTEEN 04870021 ***** THE FOLLOWING STATEMENT ***** 04880021 ***** NUMBER OF BITS EXCEED 15 - DO NOT USE AS BIN ***** 04890021 .EQU2 ANOP 04900021 &EQUCNT SETA 0 CLEAR COUNTER 04910021 &EQUSYM SETC '&SYSLIST(&OP,4)' GET EQU OPERAND 04920021 .EQULOP ANOP 04930021 &EQUCNT SETA &EQUCNT+1 INCREMENT INDEX 04940021 AIF ('&ITEM(&EQUCNT)' EQ '&EQUSYM').EQUOUT LABEL FOUND? 04950021 AIF (&EQUCNT EQ &ITEMNBR).ERR4 ALL TESTED? 04960021 AGO .EQULOP NO-GET NEXT 04970021 .EQUOUT ANOP 04980021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL NAME 04990021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) GET NUMBER OF BITS 05000021 &SHIFT(&ITEMNBR) SETA &SHIFT(&EQUCNT) GET SHIFT COUNT 05010021 &SYMBOL EQU &EQUSYM THIS SYMBOL EQUATED 05020021 AGO .START RETURN FOR NEXT 05030021 MEND 05040021 MACRO 05310021 LINEND 05340021 .* THIS MACRO IS USED ONLY BY THE LINE 05370021 .* MACRO TO SET THE NUMBER OF ENTRIES 05400021 .* ASSOCIATED WITH EACH LINE. 05430021 GBLA &NRENTS 05460021 GBLC &NRENTSX 05490021 ORG &NRENTSX 05520021 DC FL1'&NRENTS' 05550021 ORG 05580021 &NRENTS SETA 0 05610021 B&SYSNDX EQU * 05640021 &NRENTSX SETC 'B&SYSNDX' 05670021 MEND 05700021 SPACE 2 05730021 EJECT 05760021 * LABEL MACRO LABEL MACRO LABEL MACRO LABEL MACRO * 05790021 SPACE 2 05820021 MACRO 05850021 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C05880021 &LABEL7,&LABEL8 05910021 .* THIS MACRO ALLOWS UP TO ACHT LABELS TO 05940021 .* BE SPECIFIED FOR A GIVEN LINE. THE 05970021 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 06000021 .* TION MARKS. THE COLUMN AND LINE END 06030021 .* CONTROLS WILL BE INSERTED BY THE 06060021 .* MACRO. OMITTED OPERANDS MEAN NO 06090021 .* LABEL REQUIRED FOR RESPECTIVE 06120021 .* COLUMN. THIS MACRO WILL ALSO ALERT 06150021 .* THE PROGRAMMER TO EXACTLY WHERE THE 06180021 .* TABLE MUST BE BROKEN IF NECESSARY 06210021 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 06240021 GBLC &LABELS(2000) 06270021 GBLC &LBL(100) 06300021 GBLA &LBLCTR(100) 06330021 GBLA &LABELNR 06360021 GBLA &NRENTS,&LPTR 06390021 LCLC &MARGIN,&TACK 06420021 LCLC &TEXT 06450021 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 06480021 &MARGIN SETC '*' 06510021 AIF ('&NAME' EQ '').LOOPOUT 06540021 &LPTR SETA &LPTR+1 06570021 &LBL(&LPTR) SETC '&NAME' 06600021 &LBLCTR(&LPTR) SETA &LABELNR+1 06630021 .LOOPOUT ANOP 06660021 &OP SETA &OP+1 06690021 &K SETA K'&SYSLIST(&OP) 06720021 AIF (&K GE 2).NORM 06750021 &K SETA 2 06780021 .NORM ANOP 06810021 &START SETA 2 06840021 AIF (&OP LT N'&SYSLIST).NOTLAST 06870021 &MARGIN SETC '$' 06900021 .NOTLAST ANOP 06930021 &NRCHAR SETA 8 06960021 &TACK SETC '' 06990021 .LOOPIN ANOP 07020021 &REMAIN SETA &K-&START 07050021 AIF (&REMAIN GE 8).MORE 07080021 &TACK SETC '&MARGIN' 07110021 &NRCHAR SETA &REMAIN 07140021 .MORE ANOP 07170021 &TEXT SETC '' 07200021 AIF (&REMAIN EQ 0).ENDTEXT 07230021 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 07260021 .ENDTEXT ANOP 07290021 &LABELNR SETA &LABELNR+1 07320021 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 07350021 &START SETA &START+8 07380021 AIF ('&TACK' EQ '').LOOPIN 07410021 AIF ('&TACK' EQ '*').LOOPOUT 07440021 MEND 07470021 SPACE 2 07500021 MACRO 07530021 LSTART 07560021 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 07590021 .* OF THE TABLE IS TO BEGIN. 07620021 GBLC &LABELS(2000) 07650021 GBLA &LABELNR 07680021 GBLC &LBL(100) 07710021 GBLA &LBLCTR(100) 07740021 LCLA &NDX,&CTR 07770021 LINEND 07800021 &CTR SETA 1 07830021 .LOOP ANOP 07860021 &NDX SETA &NDX+1 07890021 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 07920021 &LBL(&CTR) DC C'&LABELS(&NDX)' 07950021 &CTR SETA &CTR+1 07980021 AGO .LOOPCTL 08010021 .NOLBL ANOP 08040021 DC C'&LABELS(&NDX)' 08070021 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 08100021 MEND 08130021 SPACE 2 08160021 * BIN MACRO BIN MACRO BIN MACRO BIN MACRO BIN MACRO * 08190021 SPACE 2 08220021 MACRO 08250021 BIN &LOGITEM,&SKIP$OR 08280021 .* &LOGITEM - NAME OF ITEM IN LOG 08310021 .* RECORD DSECT 08340021 .* &SKIP$OR - NBR OF SPACES TO SKIP ON 08370021 .* MULTIPLE PRINT OR NBR OF SPACES 08400021 .* TO BACK UP FROM COLUMN FOR 08430021 .* START OF PRINTING. THE LETTER 08460021 .* B PRECEEDS THE NUMBER (B5) IF 08490021 .* THE LATTER IS DESIRED. OMISSION 08520021 .* OF THIS OPERAND FORCES OPTION 2 08550021 .* WITH BACKUP SPACING EQUAL TO 08580021 .* THE NUMBER OF BITS IN THE ITEM 08610021 .* DEFINITION (VIA MACRO 'DSGEN'). 08640021 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 08670021 .* TOTAL NUMBER OF BITS TO PRINT. 08700021 GBLC &ITEM(1000) 08730021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 08760021 GBLC &DSECT 08790021 LCLB &B 08820021 LCLA &IBITS,&NDX,&ISHIFT,&K 08850021 LCLA &TEMP,&T 08880021 LCLC &S 08910021 .LOOP ANOP 08940021 &NDX SETA &NDX+1 08970021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 09000021 AIF (&NDX LT &ITEMNBR).LOOP 09030021 MNOTE *,'YOU BLEW IT' 09060021 ROUTINE DUM,SKIPPER 09090021 MEXIT 09120021 .FOUND ANOP 09150021 &ISHIFT SETA &SHIFT(&NDX) 09180021 &IBITS SETA &BITS(&NDX) 09210021 &T SETA &IBITS-1 09240021 &B SETB 0 09270021 AIF ('&SKIP$OR' EQ '').BACKUP 09300021 &K SETA K'&SKIP$OR 09330021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 09360021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 09390021 &T SETA &S 09420021 .BACKUP ANOP 09450021 &NRENTS SETA &NRENTS+1 09480021 &TEMP SETA &ISHIFT 09510021 A&SYSNDX DC AL.12(&LOGITEM-&DSECT),XL.4'&TEMP' 09540021 AIF (&IBITS EQ 1 AND &B EQ 0).OUT 09570021 ORG A&SYSNDX 09600021 &B SETB 1 09630021 DC AL.12(&LOGITEM-&DSECT),XL.4'C' 09660021 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 09690021 .OUT ANOP 09720021 MEND 09750021 EJECT 09780021 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 09810021 SPACE 2 09840021 MACRO 09870021 HEX &LOGITEM,&SKIP$OR,&BYTES 09900021 .* THIS MACRO FACILITATES GENERATION OF THE 09930021 .* TABLE ENTRIES SPECIFYING HEX TYPE 09960021 .* CONVERSIONS. 09990021 .* &LOGITEM - NAME OF DATA ITEM TO BE 10020021 .* CONVERTED 10050021 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 10080021 .* MULTIPLE PRINT OR NBR OF SPACES TO 10110021 .* BACK UP FROM COLUMN FOR START OF 10140021 .* PRINTING. THE LETTER B PRECEEDS THE 10170021 .* NUMBER (B8) IF THE LATTER OPTION IS 10200021 .* DESIRED. OMISSION OF THIS OPERAND 10230021 .* FORCES OPTION 2 WITH BACKUP SPACING 10260021 .* EQUAL TO THE NUMBER OF BYTES SPECI- 10290021 .* FIED BY THE NEXT OPERAND (TWICE THIS 10320021 .* NUMBER IF SUFFIX IS EXPLICITLY OR 10350021 .* IMPLICITLY B). 10380021 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 10410021 .* PROCESS. THIS NUMBER IS SUFFIXED 10440021 .* WITH AN L,R, OR B TO STIPULATE 10470021 .* PRINTING OF THE LEFT HALF, RIGHT 10500021 .* HALF, OR BOTH HALVES OF THE BYTE 10530021 .* RESPECTIVELY. OMISSION OF THIS 10560021 .* OPERAND DEFAULTS TO B WITH THE NUM- 10590021 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 10620021 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 10650021 .* SARY. THIS MACRO MUST BE THE FIRST 10680021 .* MACRO INSTRUCTION ISSUED FOR THE 10710021 .* SUBJECT LINE(S). 10740021 GBLC &ITEM(1000),&DSECT 10770021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 10800021 LCLB &B 10830021 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 10860021 LCLC &S,&LETTER 10890021 .LOOP ANOP 10920021 &NDX SETA &NDX+1 10950021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 10980021 AIF (&NDX LT &ITEMNBR).LOOP 11010021 MNOTE *,'LOG ITEM NOT DEFINED' 11040021 MEXIT 11070021 .FOUND ANOP 11100021 &ISHIFT SETA &SHIFT(&NDX) 11130021 &IBITS SETA &BITS(&NDX) 11160021 &CODE SETA 1 11190021 &K SETA K'&BYTES 11220021 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 11250021 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 11280021 MEXIT 11310021 .OK AIF ('&BYTES' EQ '').USEDEFN 11340021 &LETTER SETC '&BYTES'(&K,1) 11370021 &S SETC '&BYTES'(1,&K-1) 11400021 &BYTESP SETA &S 11430021 AIF ('&LETTER' EQ 'B').BOTH 11460021 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 11490021 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 11520021 MEXIT 11550021 .USEDEFN ANOP 11580021 &BYTESP SETA &IBITS/8 11610021 .BOTH AIF (&ISHIFT NE 0).ERR 11640021 &CODE SETA 3 11670021 &T SETA &BYTESP*2-1 11700021 &S SETC '&T' 11730021 .OK2 AIF (&ISHIFT EQ 0).L 11760021 &CODE SETA 2 11790021 .L ANOP 11820021 &B SETB 1 11850021 AIF ('&SKIP$OR' EQ '').BACKUP 11880021 &K SETA K'&SKIP$OR 11910021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 11940021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 11970021 .BACKUP ANOP 12000021 &NRENTS SETA &NRENTS+1 12030021 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 12060021 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 12090021 .OUT ANOP 12120021 MEND 12150021 MACRO 12180021 &NAME SPECIAL &ROUTINE,&PARAM,&SPACE= XM9111 12210021 .* THIS MACRO GENERATES A SPECIAL ROUTINE 12240021 .* ENTRY TO BE PROCESSED BY THE SUM. M. 12270021 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 12300021 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 12330021 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 12360021 .* INTERPRETED AS AN ARGUMENT OF THE 12390021 .* SPECIAL ROUTINE. 12420021 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 12450021 .* ALLOCATE FOR REQUIRED PROCESSING. 12480021 GBLC &CSECT 12510021 GBLA &COUNTR 12540021 LCLA &ADD 12570021 &NAME DC AL1(128) XM9111 12600021 DC BL.8'&PARAM' 12630021 DC AL2(&ROUTINE-&CSECT) 12660021 DC AL2(&COUNTR) 12690021 &ADD SETA 1 12720021 AIF ('&SPACE' EQ '').NORM 12750021 &ADD SETA &SPACE 12780021 .NORM ANOP 12810021 &COUNTR SETA &COUNTR+&ADD 12840021 MEND 12870021 MACRO 12900021 SUM &LOGITEM,&MASK 12930021 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 12960021 .* FOR PROCESSING BY THE SUMMARY MODULE 12990021 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 13020021 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 13050021 .* THIS OPERAND SHOULD BE OMITTED FOR 13080021 .* SINGLE BIT ITEMS IN WHICH CASE THE 13110021 .* MASK WILL BE SET ACCORDING TO THE 13140021 .* OFF BYTE BIT DISPLACEMENT OF THE 13170021 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 13200021 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 13230021 GBLC &ITEM(1000),&DSECT 13260021 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 13290021 .LOOP ANOP 13320021 &NDX SETA &NDX+1 13350021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 13380021 AIF (&NDX LT &ITEMNBR).LOOP 13410021 MNOTE *,'LOGITEM NOT FOUND' 13440021 MEXIT 13470021 .FOUND ANOP 13500021 DC AL1(0) 13530021 &ISHIFT SETA &SHIFT(&NDX) 13560021 &IBITS SETA &BITS(&NDX) 13590021 AIF ('&MASK' EQ '').FORM 13620021 DC B'&MASK' 13650021 AGO .ITEM 13680021 .FORM ANOP 13710021 &BITNBR SETA &ISHIFT-7 13740021 &BITNBR SETA 0-&BITNBR 13770021 &M SETA 1 13800021 .LOOP2 ANOP 13830021 AIF (&BITNBR EQ 0).GOTIT 13860021 &M SETA &M*2 13890021 &BITNBR SETA &BITNBR-1 13920021 AGO .LOOP2 13950021 .GOTIT ANOP 13980021 DC AL1(&M) 14010021 .ITEM DC AL2(&LOGITEM-&DSECT) 14040021 DC AL2(&COUNTR) 14070021 &COUNTR SETA &COUNTR+1 14100021 MEND 14130021 GBLC &DSECT 14160021 GBLC &CSECT 14190021 &CSECT SETC 'IFCSXXXB' 14220021 &DSECT SETC 'XXXB' 14250021 TITLE 'IFCSXXXB-SUMMARY TABLE FOR 3420 TAPES' 14280021 IFCSXXXB CSECT 14310021 XXXB DSECT 14340021 DSGEN (CLASSRC,8),(SYSREL,8),(SWITCHES,16),(SPARES,32) 14370021 DSGEN (DATE,32),(TIME,32) 14400021 DSGEN (SPARE1,8),(CPUSER,24),(CPUID,16),(SPARE2,16) 14430021 DSGEN (JOBID,64) 14460021 DSGEN (COMMCODE,8),(DATAADDR,24),(FLAGS,8),(RESERVED,8), C14490021 (CCWCOUNT,16) 14520021 DSGEN (CSWKEY,8),(COMMADDR,24),(ATTEN,1),(STATMOD,1), C14550021 (CONTUEND,1),(BUSY,1),(CHANEND,1),(DEVEND,1), C14580021 (UNITCHK,1),(UNITEXEP,1),(PCI,1),(WRNGLENG,1), C14610021 (PROGCHK,1),(PROTCHK,1),(DATACHK,1),(CNTLCHK,1), C14640021 (IFCTLCHK,1),(CHAINCHK,1),(CSWCOUNT,16) 14670021 DSGEN (DDCOUNT,8),(SECONCUA,24),(DEVTYPE,32) 14700021 DSGEN (SDRCOUNT,8),(PRIMCUA,24),(IORETRYS,16),(SNSBYTES,16) 14730021 DSGEN (VOLID,48),(BLKLENG,16) 14760021 DSGEN (DUM2,32),(TEMPRDS,8),(TEMPWRTS,8),(SIOCNT,16) 14790021 DSGEN (PERMRDS,8),(PERMWRTS,8),(NOISEBLK,8),(MODESET,8) 14820021 DSGEN (ERASEGPS,16),(CLNRACTS,16) 14850021 DSGEN (DUM3,8),(NOISE,8),(RWVRC,8),(MTELRCR,8) 14880021 DSGEN (EDCCRC,8),(ENVCKVRC,8),(OVERRUN,4),(SKEWCHK,4), C14910021 (CCOMPARE,4),(WRTTRVRC,4) 14940021 DSGEN (PEIDCHK,1),(MASKEXP,6),(PARITY,1),(TRKINERR,8), C14970021 (WRTTMCHK,4),(STRDCHK,4),(PARTREC,4),(EXCPAMB,4) 15000021 DSGEN (ORDROP,4),(FEEDTHRU,4),(EXP,4),(EARLBGRD,4), C15030021 (EARLNDRD,4),(SLBGRD,4),(SLWNDRD,4),(VELRETRY,4), C15060021 (EXP2,4),(VELCHNG,4),(EXP3,8),(BACKWARD,8), C15090021 (BUSOCHK,4),(ALUHRDER,4) 15120021 DSGEN (SNB000,1),(SNB001,1),(SNB002,1),(SNB003,1),(SNB004,1), C15150021 (SNB005,1),(SNB006,1),(SNB007,1),(SNB010,1),(SNB011,1), C15180021 (SNB012,1),(SNB013,1),(SNB014,1),(SNB015,1),(SNB016,1), C15210021 (SNB017,1),(SNB020,1),(SNB021,1),(SNB022,1),(SNB023,1), C15240021 (SNB024,1),(SNB025,1),(SNB026,1),(SNB027,1),(SNB030,1), C15270021 (SNB031,1),(SNB032,1),(SNB033,1),(SNB034,1),(SNB035,1), C15300021 (SNB036,1),(SNB037,1) 15330021 DSGEN (SNB040,1),(SNB041,1),(SNB042,1),(SNB043,1),(SNB044,1), C15360021 (SNB045,1),(SNB046,1),(SNB047,1),(SNB050,1),(SNB051,1), C15390021 (SNB052,1),(SNB053,1),(SNB054,1),(SNB055,1),(SNB056,1), C15420021 (SNB057,1),(SNB060,1),(SNB061,1),(SNB062,1),(SNB063,1), C15450021 (SNB064,1),(SNB065,1),(SNB066,1),(SNB067,1),(SNB070,1), C15480021 (SNB071,1),(SNB072,1),(SNB073,1),(SNB074,1),(SNB075,1), C15510021 (SNB076,1),(SNB077,1) 15540021 DSGEN (SNB080,1), C15570021 (SNB081,1),(SNB082,1),(SNB083,1),(SNB084,1),(SNB085,1), C15600021 (SNB086,1),(SNB087,1),(SNB090,1),(SNB091,1),(SNB092,1), C15630021 (SNB093,1),(SNB094,1),(SNB095,1),(SNB096,1),(SNB097,1), C15660021 (SNB100,1),(SNB101,1),(SNB102,1),(SNB103,1),(SNB104,1), C15690021 (SNB105,1),(SNB106,1),(SNB107,1),(SNB110,1),(SNB111,1), C15720021 (SNB112,1),(SNB113,1),(SNB114,1),(SNB115,1),(SNB116,1), C15750021 (SNB117,1) 15780021 DSGEN (SNB120,1),(SNB121,1),(SNB122,1),(SNB123,1),(SNB124,1), C15810021 (SNB125,1),(SNB126,1),(SNB127,1),(TCSERIAL,16), C15840021 (TUSERIAL,16),(SNB170,1),(SNB171,1), C15870021 (SNB172,1),(SNB173,1),(SNB174,1),(SNB175,1),(SNB176,1), C15900021 (SNB177,1),(SNB180,1),(SNB181,1),(SNB182,1),(SNB183,1), C15930021 (SNB184,1),(SNB185,1),(SNB186,1),(SNB187,1),(SNB190,1), C15960021 (SNB191,1),(SNB192,1),(SNB193,1),(SNB194,1),(SNB195,1), C15990021 (SNB196,1),(SNB197,1) 16020021 DSGEN (SNB200,1),(SNB201,1),(SNB202,1),(SNB203,1),(SNB204,1), C16050021 (SNB205,1),(SNB206,1),(SNB207,1),(SNB210,1),(SNB211,1), C16080021 (SNB212,1),(SNB213,1),(SNB214,1),(SNB215,1),(SNB216,1), C16110021 (SNB217,1),(SNB220,1),(SNB221,1),(SNB222,1),(SNB223,1), C16140021 (SNB224,1),(SNB225,1),(SNB226,1),(SNB227,1),(SNB230,1), C16170021 (SNB231,1),(SNB232,1),(SNB233,1),(SNB234,1),(SNB235,1), C16200021 (SNB236,1),(SNB237,1) 16230021 IFCSXXXB CSECT 16260021 USING XXXB,R2 16290021 USING *,R9 16320021 * * 16350021 * SUMMARY MODULE FOR DEVICE 3420 * 16380021 * * 16410021 DC A(ENTRIES) 16440021 DC A(PEDIT) 16470021 REG8 DC F'0' 16500021 SCSIZE DC H'280' 16530021 R0 EQU 0 16560021 R1 EQU 1 16590021 R2 EQU 2 16620021 R3 EQU 3 16650021 R4 EQU 4 16680021 R5 EQU 5 16710021 R6 EQU 6 16740021 R7 EQU 7 16770021 R9 EQU 9 16800021 R12 EQU 12 16830021 R13 EQU 13 16860021 R14 EQU 14 16890021 R15 EQU 15 16920021 L0 EQU 0 16950021 L1 EQU 1 16980021 L2 EQU 2 17010021 L3 EQU 3 17040021 L4 EQU 4 17070021 L5 EQU 5 17100021 L6 EQU 6 17130021 L8 EQU 8 17160021 L10 EQU 10 17190021 L12 EQU 12 17220021 L16 EQU 16 17250021 L24 EQU 24 17280021 L28 EQU 28 17310021 DISMOUNT EQU X'84' 17340021 F0 EQU X'F0' 17370021 FF EQU X'FF' 17400021 * * 17430021 * THIS ROUTINE WILL PUT A HIGH AND LOW DATE INTO THE COUNTER AREA. * 17460021 * THE FIRST TIME IT PUTS THE SAME DATE IN BOTH AREAS. WITH EACH NEW * 17490021 * RECORD A COMPARE IS DONE FOR A LOWER AND HIGHER DATE. * 17520021 * * 17550021 SETDATES CLC L0(L4,R3),ZEROES IS DATE IN COUNTER AREAS ZEROES 17580021 BNE CHKLO 17610021 MVC L0(L4,R3),DATE MOVE DATE TO LO AREA 17640021 MVC L4(L4,R3),DATE MOVE DATE TO HI AREA 17670021 B RETURN 17700021 CHKLO CLC L0(L4,R3),DATE IS LOW DATE LOWER THAN RECORD DATE 17730021 BL CHKHI YES CHECK HIGH 17760021 MVC L0(L4,R3),DATE NO - MOVE IN RECORD DATE 17790021 CHKHI CLC L4(L4,R3),DATE IS HIGH DATE HIGHER THAN RECORD DATE 17820021 BH RETURN YES- RETURN 17850021 MVC L4(L4,R3),DATE NO- MOVE IN RECORD DATE 17880021 RETURN BR R14 RETURN 17910021 DEVICE MVC L0(L4,R3),DEV3420 MOVE IN DEVICE TYPE 17940021 ST R5,SAVE5 SAVE REGISTER FOR CALLING PGM 17970021 BR R14 18000021 SAVE5 DC F'0' 18030021 DEV3420 DC CL4'3420' 18060021 * * 18090021 * THIS ROUTINE WILL KEEP TRACK OF UP TO 10 VOLUME LABELS AND THE * 18120021 * NUMBER OF OCCURRENCES . EACH ENTRY CONSISTS OF 8 BYTES-6 BYTES FOR * 18150021 * THE VOLUME LABEL AND 2 BYTES FOR THE COUNTER. * 18180021 * * 18210021 VOLUMES STM R5,R7,STOREREG SAVE REGISTERS XM9111 18240021 MVC L2(L2,R3),SNSBYTES PUT SENSE COUNT IN SUM AREA XM9111 18280021 LR R5,R3 GET BUFFER POINTER SA58784 18320021 TM SWITCHES+L1,DISMOUNT IS THIS A DISMOUNT RECORD XM9111 18360021 BZ SETUP NO CHK FOR TU SERIAL NUMBER XM9111 18400021 OI SHORTSW,FF TURN ON DISMOUNT INDICATOR XM9111 18440021 B UPPTR DO NOT MOVE TU SERIAL XM9111 18480021 SETUP CLC SNSBYTES(L2),NINER ARE THERE NINE SENSE BYTES SA58784 18520021 BNH UPPTR IF NINE SENSE BYTES NO TU SER SA58784 18560021 MVC L0(L2,R5),TUSERIAL MOVE THE TAPE UNIT SERIAL TO CNTR 18660021 UPPTR LA R5,L4(R5) INCREMENT PAST CURRENT COUNTER XM9111 18690021 LA R6,L10 PUT # OF VOLUME ENTRIES IN REG 18720021 VOLZERO CLC VOLID(L6),ZEROES IS VOLID IN RECORD HEX ZEROES SA58469 18750021 BE GOBACK YES DO NOT PUT IN TABLE SA58469 18760021 CLC L0(L6,R5),ZEROES IS CURRENT VOL POSITION ZERO SA58469 18770021 BNE COMPVOL NO GO TO COMPARE VOLUME LABELS 18780021 MVC L0(L6,R5),VOLID PUT IN NEW LABEL 18810021 UPCOUNT LH R7,L6(R5) GET COUNTER FOR LABEL 18840021 LA R7,L1(R7) INCREMENT COUNTER 18870021 STH R7,L6(R5) PUT UPDATED COUNTER BACK 18900021 B GOBACK 18930021 COMPVOL CLC L0(L6,R5),VOLID DOES VOLID = RECORD VOLID 18960021 BE UPCOUNT YES GO TO INCREMENT COUNT 18990021 LA R5,L8(R5) NO GO TO NEW LABEL ENTRY 19020021 BCT R6,VOLZERO ARE 10 ENTRIES EXHAUSTED 19050021 GOBACK LM R5,R7,STOREREG RESTORE REGISTERS 19080021 BR R14 RETURN 19110021 * * 19140021 * THIS ROUTINE WILL PUT FAILING CCW'S INTO A COUNTER AREA AND KEEP * 19170021 * ACCOUNT OF THE NUMBER OF OCCURRENCES. THE MAXIMUM NUMBER OF CCW'S * 19200021 * IS 24. EACH ENTRY IS 4 BYTES LONG-FIRST BYTE IS THE CCW, SECOND * 19230021 * BYTE IS UNUSED AND THE LAST TWO BYTES ARE THE COUNTER. * 19260021 * * 19290021 FAILCCW STM R5,R7,STOREREG SACE REGISTERS XM9111 19320021 TM SWITCHES+L1,DISMOUNT CHK FOR DISMOUNT RECORD XM9111 19330021 BZ LDPTR NO CCW FOR DISMOUNT RECORD XM9111 19340021 LA R5,SKIPDIS-6 DO NOT SUM SENSE INFO XM9111 19350021 ST R5,REG8 UPDATE SUM ENTRY POINTER XM9111 19360021 B RETURN2 RETURN CONTROL XM9111 19370021 LDPTR LR R5,R3 GET POINTER TO SUM AREA XM9111 19380021 LA R6,L24 PUT # OF CCW ENTRIES IN REG 19440021 CCWZERO CLI L0(R5),L0 IS CCW ENTRY ZERO 19470021 BNE COMPCCW NO GO TO COMPARE CCW'S 19500021 MVC L0(L1,R5),COMMCODE MOVE CCW TO CCW TABLE 19530021 CCWCNT LH R7,L2(R5) GET COUNT FROM CCW TABLE 19560021 LA R7,L1(R7) INCREMENT THE COUNT 19590021 STH R7,L2(R5) PUT NEW COUNT BACK IN TABLE 19620021 B RETURN2 GO BACK TO PROCESSING 19650021 COMPCCW CLC L0(L1,R5),COMMCODE DOES CCW IN TABLE=RECORD CCW 19680021 BE CCWCNT YES INCREASE COUNT 19710021 LA R5,L4(R5) NO INCREMENT TABLE ENTRY POINTER 19740021 BCT R6,CCWZERO ARE 24 ENTRIES EXHAUSTED 19770021 RETURN2 LM R5,R7,STOREREG RESTORE REGISTERS 19800021 BR R14 RETURN 19830021 * * 19860021 * THE NEXT ROUTINES WILL TAKE THE COUNTERS FROM THE RECORD AND * 19890021 * ADD THEM TO THE COUNTER AREAS. HALF BYTE COUNTERS ARE ISOLATED AND * 19920021 * THEM ADDED. DEVICE DEPENDENT COUNTERS ARE ADDED ONLY FOR DISMOUNT * 19950021 * RECORDS. * 19980021 * * 20010021 NOISERTN SR R5,R5 CLEAR REGISTER 20040021 GOON IC R5,NOISE GET QUANTITY TO BE ADDED 20070021 ADD AH R5,L0(R3) ADD HALFWORD COUNTER TO IT 20100021 STH R5,L0(R3) STORE SUM BACK IN COUNTER AREA 20130021 L R5,SAVE5 RELOAD REGISTER FIVE 20160021 BR R14 RETURN 20190021 RWVRCRTN SR R5,R5 CLEAR REGISTER 20220021 IC R5,RWVRC GET QUANTIT TO BE ADDED 20250021 B ADD GO TO ADD THE COUNTER 20280021 MTERTN SR R5,R5 CLEAR REGISTER 20310021 IC R5,MTELRCR GET QUANTITY TO BE ADDED 20340021 B ADD GO TO ADD THE COUNTER 20370021 EDCRTN SR R5,R5 CLEAR REGISTER 20400021 IC R5,EDCCRC GET QUANTITY TO BE ADDED 20430021 B ADD GO TO ADD THE COUNTER 20460021 ENVRTN SR R5,R5 CLEAR REGISTER 20490021 IC R5,ENVCKVRC GET QUANTITY TO BE ADDED 20520021 B ADD GO TO ADD THE COUNTER 20550021 LEFTHALF SRL R5,L4 ISOLATE THE LOW ORDER BITS OF HI BYTE 20580021 B ADD GO TO ADD THE COUNTER 20610021 RGHTHALF SLL R5,L28 SHIFT OUT LOW BITS OF HIGH BYTE 20640021 SRL R5,L28 SHIFT BYTE BACK TO HIGH POSITION 20670021 B ADD GO TO ADD COUNTER 20700021 OVERRTN SR R5,R5 CLEAR REGISTER 20730021 IC R5,OVERRUN GET QUANTITY TO BE ADDED 20760021 B LEFTHALF GO TO ISOLATE THE LEFT HALF BYTE 20790021 SKEWRTN SR R5,R5 CLEAR REGISTER 20820021 IC R5,OVERRUN GET QUANTITY TO BE ADDED 20850021 B RGHTHALF GO TO ISOLATE RIGHT HALF OF BYTE 20880021 CCOMPRTN SR R5,R5 CLEAR REGISTER 20910021 IC R5,CCOMPARE GET QUANTITY TO BE ADDED 20940021 B LEFTHALF GO TO ISOLATE THE LEFT HALF BYTE 20970021 WRTTRRTN SR R5,R5 CLEAR REGISTER 21000021 IC R5,CCOMPARE GET QUANTITY TO BE ADDED 21030021 B RGHTHALF GO TO ISOLATE THE RIGHT HALF BYTE 21060021 WRTTMRTN SR R5,R5 CLEAR REGISTER 21090021 IC R5,WRTTMCHK GET QUANTITY TO BE ADDED 21120021 B LEFTHALF GO TO ISOLATE THE LEFT HALF BYTE 21150021 STRDRTN SR R5,R5 CLEAR REGISTER 21180021 IC R5,WRTTMCHK GET QUANTITY TO BE ADDED 21210021 B RGHTHALF GO TO ISOLATE THE RIGHT HALF BYTE 21240021 PARTRTN SR R5,R5 CLEAR REGISTER 21270021 IC R5,PARTREC GET QUANTITY TO BE ADDED 21300021 B LEFTHALF GO TO ISOLATE THE LEFT HALF BYTE 21330021 EXCRTN SR R5,R5 CLEAR REGISTER 21360021 IC R5,PARTREC GET QUANTITY TO BE ADDED 21390021 B RGHTHALF GO TO ISOLATE RIGHT HALF BYTE 21420021 IBGRTN SR R5,R5 CLEAR REGISTER 21450021 IC R5,ORDROP GET QUANTITY TO BE ADDED 21480021 B LEFTHALF GO TO ISOLATE LEFT HALF BYTE 21510021 FEEDRTN SR R5,R5 CLEAR REGISTER 21540021 IC R5,ORDROP GET QUANTITY TO BE ADDED 21570021 B RGHTHALF GO TO ISOLATE RIGHT HALF BYTE 21600021 CRCCKRTN SR R5,R5 CLEAR REGISTER S99223 21607021 IC R5,EXP GET QUANTITY TO BE ADDED S99223 21614021 B LEFTHALF GO TO ISOLATE LEFT HALF BYTE S99223 21621021 EARLBRTN SR R5,R5 CLEAR REGISTER 21630021 IC R5,EXP GET QUANTITY TO BE ADDED 21660021 B RGHTHALF GO TO ISOLATE RIGHT HALF BYTE 21690021 EARLERTN SR R5,R5 CLEAR REGISTER 21720021 IC R5,EARLNDRD GET QUANTITY TO BE ADDED 21750021 B LEFTHALF GO TO ISOLATE LEFT HALF BYTE 21780021 SLWBRTN SR R5,R5 CLEAR REGISTER 21810021 IC R5,EARLNDRD GET QUANTITY TO BE ADDED 21840021 B RGHTHALF GO TO ISOLATE RIGHT HALF BYTE 21870021 SLWERTN SR R5,R5 CLEAR REGISTER 21900021 IC R5,SLWNDRD GET QUANTITY TO BE ADDED 21930021 B LEFTHALF GO TO ISOLATE LEFTHALF BYTE 21960021 VELRRTN SR R5,R5 CLEAR REGISTER 21990021 IC R5,SLWNDRD GET QUANTITY TO BE ADDED 22020021 B RGHTHALF GO TO ISOLATE RIGHT HALF BYTE 22050021 CRECTRTN SR R5,R5 CLEAR REGISTER S99223 22057021 IC R5,EXP2 GET QUANTITY TO BE ADDED S99223 22064021 B LEFTHALF GO TO ISOLATE LEFT HALF BYTE S99223 22071021 VELCRTN SR R5,R5 CLEAR REGISTER 22080021 IC R5,EXP2 GET QUANTITY TO BE ADDED 22110021 B RGHTHALF GO TO ISOLATE RIGHT HALF BYTE 22140021 CBCRTN SR R5,R5 CLEAR REGISTER S99223 22144021 IC R5,EXP3 GET QUANTITY TO BE ADDED S99223 22148021 B LEFTHALF GO TO ISOLATE LEFT HALF BYTE S99223 22152021 CRCIRTN SR R5,R5 CLEAR REGISTER S99223 22156021 IC R5,EXP3 GET QUANTITY TO BE ADDED S99223 22160021 B RGHTHALF GO TO ISOLATE RIGHT HALF BYTE S99223 22164021 TRDSRTN TM SHORTSW,FF IS THIS A DISMOUNT ENTRY 22170021 BCR 8,R14 NO-DO NOT ADD TO COUNTER 22200021 SR R5,R5 CLEAR REGISTER 22230021 IC R5,TEMPRDS GET NUMBER OF TEMP READ ERRORS 22260021 B ADD GO TO ADD TO COUNTER 22290021 TWRTSRTN TM SHORTSW,FF IS THIS A DISMOUNT RECORD 22320021 BCR 8,R14 NO-DO NOT ADD TO COUNTER 22350021 SR R5,R5 CLEAR REGISTER 22380021 IC R5,TEMPWRTS GET NUMBER OF TEMPORARY WRITE ERRORS 22410021 B ADD GO TO ADD THEM TO COUNTER 22440021 SIORTN STM R5,R6,STOREREG+4 SAVE REGISTERS 22470021 TM SHORTSW,FF IS THIS A DISMOUNT ENTRY 22500021 BCR 8,R14 NO-DO NO ADD TO COUNTER 22530021 XC STOREREG(L4),STOREREG ZERO AREA 22560021 MVC STOREREG+L2(L2),SIOCNT GET SIO COUNT FROM RECORD 22580021 L R5,STOREREG PUT IT INTO A REGISTER 22600021 MVC STOREREG(L4),L0(R3) GET COUNTER ON BOUNDARY 22620021 L R6,STOREREG GET COUNTER INTO REGISTER 22640021 AR R5,R6 ADD THE QUANTITIES 22660021 ST R5,STOREREG PUT COUNTER BACK ON BOUNDARY 22680021 MVC L0(L4,R3),STOREREG PUT IT BACK IN COUNTER AREA 22700021 LM R5,R6,STOREREG+4 RELOAD REGISTERS 22740021 BR R14 RETURN 22770021 DDNOISER TM SHORTSW,FF IS THIS A DISMOUNT RECORD 22800021 BCR 8,R14 NO- DO NO ADD COUNTERS 22830021 SR R5,R5 CLEAR REGISTER 22860021 IC R5,NOISEBLK GET NOISE COUNTER 22890021 B ADD GO TO ADD TO COUNTER AREA 22920021 ERASERTN TM SHORTSW,FF IS THIS A DISMOUNT ENTRY 22950021 BCR 8,R14 NO-DO NOT ADD COUNTERS 22980021 XC STOREREG(L4),STOREREG CLEAR AREA 23010021 MVC STOREREG+L2(L2),ERASEGPS SA69618 23020021 L R5,STOREREG PUT NUMBER INTO REG 23030021 B ADD GO TO ADD TO COUNTER 23040021 CLNRRTN TM SHORTSW,FF IS THIS A DISMOUNT ENTRY 23070021 BCR 8,R14 NO-DO NOT ADD TO COUNTER 23100021 XC STOREREG(L4),STOREREG CLEAR AREA 23130021 MVC STOREREG+L2(L2),CLNRACTS GET QUANTITY TO BE ADDED 23140021 L R5,STOREREG PUT QUANTITY INTO REG 23150021 NI SHORTSW,L0 TURN OFF DISMOUNT RECORD SWITCH 23160021 B ADD RETURN 23190021 BACKRTN SR R5,R5 CLEAR REGISTER 23220021 IC R5,BACKWARD GET COUNTER TO ADD 23250021 B ADD GO TO ADD THE COUNTER 23280021 BUSRTN SR R5,R5 CLEAR REGISTER 23310021 IC R5,BUSOCHK GET COUNTER TO ADD 23340021 B LEFTHALF GO ISOLATE COUNTER AND ADD 23370021 ALURTN SR R5,R5 CLEAR REGISTER 23400021 IC R5,BUSOCHK GET COUNTER TO ADD 23430021 B RGHTHALF GO TO ISOLATE THE COUNTER AND ADD 23460021 STOREREG DC 3F'0' 23490021 NINER DC H'9' SA58784 23520021 ZEROES DC 6X'00' SA58469 23530021 SHORTSW DC X'00' 23550021 ENTRIES DS 0F 23580021 SPECIAL SETDATES,0,SPACE=4 23610021 SPECIAL DEVICE,0,SPACE=2 23640021 SPECIAL VOLUMES,0,SPACE=42 23670021 SPECIAL FAILCCW,0,SPACE=48 23700021 SUM SNB000 23730021 SUM SNB001 23760021 SUM SNB002 23790021 SUM SNB003 23820021 SUM SNB004 23850021 SUM SNB005 23880021 SUM SNB006 23910021 SUM SNB007 23940021 SUM SNB010 23970021 SUM SNB011 24000021 SUM SNB012 24030021 SUM SNB013 24060021 SUM SNB014 24090021 SUM SNB015 24120021 SUM SNB016 24150021 SUM SNB017 24180021 SUM SNB020 24210021 SUM SNB021 24240021 SUM SNB022 24270021 SUM SNB023 24300021 SUM SNB024 24330021 SUM SNB025 24360021 SUM SNB026 24390021 SUM SNB027 24420021 SUM SNB030 24450021 SUM SNB031 24480021 SUM SNB032 24510021 SUM SNB033 24540021 SUM SNB034 24570021 SUM SNB035 24600021 SUM SNB036 24630021 SUM SNB037 24660021 SUM SNB040 24690021 SUM SNB041 24720021 SUM SNB042 24750021 SUM SNB043 24780021 SUM SNB044 24810021 SUM SNB045 24840021 SUM SNB046 24870021 SUM SNB047 24900021 SUM SNB050 24930021 SUM SNB051 24960021 SUM SNB052 24990021 SUM SNB053 25020021 SUM SNB054 25050021 SUM SNB055 25080021 SUM SNB056 25110021 SUM SNB057 25140021 SUM SNB060 25170021 SUM SNB061 25200021 SUM SNB062 25230021 SUM SNB063 25260021 SUM SNB070 25290021 SUM SNB071 25320021 SUM SNB072 25350021 SUM SNB073 25380021 SUM SNB074 25410021 SUM SNB075 25440021 SUM SNB076 25470021 SUM SNB077 25500021 SUM SNB080 25530021 SUM SNB081 25560021 SUM SNB082 25590021 SUM SNB083 25620021 SUM SNB084 25650021 SUM SNB085 25680021 SUM SNB086 25710021 SUM SNB087 25740021 SUM SNB090 25770021 SUM SNB091 25800021 SUM SNB092 25830021 SUM SNB093 25860021 SUM SNB094 25890021 SUM SNB095 25920021 SUM SNB096 25950021 SUM SNB097 25980021 SUM SNB100 26010021 SUM SNB101 26040021 SUM SNB102 26070021 SUM SNB103 26100021 SUM SNB104 26130021 SUM SNB105 26160021 SUM SNB106 26190021 SUM SNB107 26220021 SUM SNB110 26250021 SUM SNB111 26280021 SUM SNB112 26310021 SUM SNB113 26340021 SUM SNB114 26370021 SUM SNB115 26400021 SUM SNB116 26430021 SUM SNB117 26460021 SUM SNB120 26490021 SUM SNB121 26520021 SUM SNB122 26550021 SUM SNB123 26580021 SUM SNB124 26610021 SUM SNB125 26640021 SUM SNB126 26670021 SUM SNB127 26700021 SUM SNB180 26730021 SUM SNB181 26760021 SUM SNB182 26790021 SUM SNB183 26820021 SUM SNB184 26850021 SUM SNB185 26880021 SUM SNB186 26910021 SUM SNB187 26940021 SUM SNB190 26970021 SUM SNB191 27000021 SUM SNB192 27030021 SUM SNB193 27060021 SUM SNB194 27090021 SUM SNB195 27120021 SUM SNB196 27150021 SUM SNB197 27180021 SUM SNB200 27210021 SUM SNB201 27240021 SUM SNB202 27270021 SUM SNB203 27300021 SUM SNB204 27330021 SUM SNB205 27360021 SUM SNB206 27390021 SUM SNB207 27420021 SUM SNB210 27450021 SUM SNB211 27480021 SUM SNB212 27510021 SUM SNB213 27540021 SUM SNB214 27570021 SUM SNB215 27600021 SUM SNB216 27630021 SUM SNB217 27660021 SKIPDIS SPECIAL NOISERTN,0,SPACE=1 XM9111 27690021 SPECIAL RWVRCRTN,0,SPACE=1 27720021 SPECIAL MTERTN,0,SPACE=1 27750021 SPECIAL EDCRTN,0,SPACE=1 27780021 SPECIAL ENVRTN,0,SPACE=1 27810021 SPECIAL OVERRTN,0,SPACE=1 27840021 SPECIAL SKEWRTN,0,SPACE=1 27870021 SPECIAL CCOMPRTN,0,SPACE=1 27900021 SPECIAL WRTTRRTN,0,SPACE=1 27930021 SUM PEIDCHK 27960021 SPECIAL WRTTMRTN,0,SPACE=1 27990021 SPECIAL STRDRTN,0,SPACE=1 28020021 SPECIAL PARTRTN,0,SPACE=1 28050021 SPECIAL EXCRTN,0,SPACE=1 28080021 SPECIAL IBGRTN,0,SPACE=1 28110021 SPECIAL FEEDRTN,0,SPACE=1 28140021 SPECIAL CRCCKRTN,0,SPACE=1 S99223 28150021 * SPARE COUNTER FOR SENSE BYTE 8 BIT 2 S99223 28160021 SPECIAL EARLBRTN,0,SPACE=1 28170021 SPECIAL EARLERTN,0,SPACE=1 28200021 SPECIAL SLWBRTN,0,SPACE=1 28230021 SPECIAL SLWERTN,0,SPACE=1 28260021 SPECIAL VELRRTN,0,SPACE=1 28290021 SPECIAL CRECTRTN,0,1 S99223 28300021 SPECIAL VELCRTN,0,SPACE=1 28320021 SPECIAL CBCRTN,0,1 S99223 28330021 SPECIAL CRCIRTN,0,1 S99223 28340021 SPECIAL TRDSRTN,0,SPACE=1 28350021 SPECIAL TWRTSRTN,0,SPACE=1 28380021 SPECIAL DDNOISER,0,SPACE=1 28410021 SPECIAL SIORTN,0,SPACE=2 28440021 SPECIAL ERASERTN,0,SPACE=1 28470021 SPECIAL BACKRTN,0,SPACE=1 28500021 SPECIAL BUSRTN,0,SPACE=1 28530021 SPECIAL ALURTN,0,SPACE=1 28560021 SPECIAL CLNRRTN,0,SPACE=1 28590021 DC X'FF' 28620021 PEDIT DS 0F 28650021 &DSECT SETC 'CNTRAREA' 28680021 &CSECT SETC 'PEDIT' 28710021 USING *,R9 28740021 USING CNTRAREA,R2 28770021 DC A(SUMENTRS) 28800021 DC CL8'IFCSXXXB' 28830021 NINE DC F'0' 28860021 LABELPTR DC F'0' 28890021 CNTRAREA DSECT 28920021 DS 3H 28950021 DSGEN (DUM1,16),(NBROFREC,16) 28980021 DSGEN (TYPE,8),(CHAN,8),(CUA,24),(SER,24) 29010021 DSGEN (CPU,16),(SMSW,16) 29040021 DSGEN (LOWDATE,32),(HIDATE,32) 29070021 DSGEN (DEV,32) 29100021 DSGEN (TUSER,16),(SNSCNT,16) 29130021 DSGEN (VOL1,48),(VOL1CTR,16) 29160021 DSGEN (VOL2,48),(VOL2CTR,16) 29190021 DSGEN (VOL3,48),(VOL3CTR,16) 29220021 DSGEN (VOL4,48),(VOL4CTR,16) 29250021 DSGEN (VOL5,48),(VOL5CTR,16) 29280021 DSGEN (VOL6,48),(VOL6CTR,16) 29310021 DSGEN (VOL7,48),(VOL7CTR,16) 29340021 DSGEN (VOL8,48),(VOL8CTR,16) 29370021 DSGEN (VOL9,48),(VOL9CTR,16) 29400021 DSGEN (VOL10,48),(VOL10CTR,16) 29430021 DSGEN (CC01,16),(CCTR01,16),(CC02,16),(CCTR02,16) 29460021 DSGEN (CC03,16),(CCTR03,16),(CC04,16),(CCTR04,16) 29490021 DSGEN (CC05,16),(CCTR05,16),(CC06,16),(CCTR06,16) 29520021 DSGEN (CC07,16),(CCTR07,16),(CC08,16),(CCTR08,16) 29550021 DSGEN (CC09,16),(CCTR09,16),(CC10,16),(CCTR10,16) 29580021 DSGEN (CC11,16),(CCTR11,16),(CC12,16),(CCTR12,16) 29610021 DSGEN (CC13,16),(CCTR13,16),(CC14,16),(CCTR14,16) 29640021 DSGEN (CC15,16),(CCTR15,16),(CC16,16),(CCTR16,16) 29670021 DSGEN (CC17,16),(CCTR17,16),(CC18,16),(CCTR18,16) 29700021 DSGEN (CC19,16),(CCTR19,16),(CC20,16),(CCTR20,16) 29730021 DSGEN (CC21,16),(CCTR21,16),(CC22,16),(CCTR22,16) 29760021 DSGEN (CC23,16),(CCTR23,16),(CC24,16),(CCTR24,16) 29790021 DSGEN (SNB000CT,16),(SNB001CT,16),(SNB002CT,16),(SNB003CT,16) 29820021 DSGEN (SNB004CT,16),(SNB005CT,16),(SNB006CT,16),(SNB007CT,16) 29850021 DSGEN (SNB010CT,16),(SNB011CT,16),(SNB012CT,16),(SNB013CT,16) 29880021 DSGEN (SNB014CT,16),(SNB015CT,16),(SNB016CT,16),(SNB017CT,16) 29910021 DSGEN (SNB020CT,16),(SNB021CT,16),(SNB022CT,16),(SNB023CT,16) 29940021 DSGEN (SNB024CT,16),(SNB025CT,16),(SNB026CT,16),(SNB027CT,16) 29970021 DSGEN (SNB030CT,16),(SNB031CT,16),(SNB032CT,16),(SNB033CT,16) 30000021 DSGEN (SNB034CT,16),(SNB035CT,16),(SNB036CT,16),(SNB037CT,16) 30030021 DSGEN (SNB040CT,16),(SNB041CT,16),(SNB042CT,16),(SNB043CT,16) 30060021 DSGEN (SNB044CT,16),(SNB045CT,16),(SNB046CT,16),(SNB047CT,16) 30090021 DSGEN (SNB050CT,16),(SNB051CT,16),(SNB052CT,16),(SNB053CT,16) 30120021 DSGEN (SNB054CT,16),(SNB055CT,16),(SNB056CT,16),(SNB057CT,16) 30150021 DSGEN (SNB060CT,16),(SNB061CT,16),(SNB062CT,16),(SNB063CT,16) 30180021 DSGEN (SNB070CT,16),(SNB071CT,16),(SNB072CT,16),(SNB073CT,16) 30210021 DSGEN (SNB074CT,16),(SNB075CT,16),(SNB076CT,16),(SNB077CT,16) 30240021 DSGEN (SNB080CT,16),(SNB081CT,16),(SNB082CT,16),(SNB083CT,16) 30270021 DSGEN (SNB084CT,16),(SNB085CT,16),(SNB086CT,16),(SNB087CT,16) 30300021 DSGEN (SNB090CT,16),(SNB091CT,16),(SNB092CT,16),(SNB093CT,16) 30330021 DSGEN (SNB094CT,16),(SNB095CT,16),(SNB096CT,16),(SNB097CT,16) 30360021 DSGEN (SNB100CT,16),(SNB101CT,16),(SNB102CT,16),(SNB103CT,16) 30390021 DSGEN (SNB104CT,16),(SNB105CT,16),(SNB106CT,16),(SNB107CT,16) 30420021 DSGEN (SNB110CT,16),(SNB111CT,16),(SNB112CT,16),(SNB113CT,16) 30450021 DSGEN (SNB114CT,16),(SNB115CT,16),(SNB116CT,16),(SNB117CT,16) 30480021 DSGEN (SNB120CT,16),(SNB121CT,16),(SNB122CT,16),(SNB123CT,16) 30510021 DSGEN (SNB124CT,16),(SNB125CT,16),(SNB126CT,16),(SNB127CT,16) 30540021 DSGEN (SNB180CT,16),(SNB181CT,16),(SNB182CT,16),(SNB183CT,16) 30570021 DSGEN (SNB184CT,16),(SNB185CT,16),(SNB186CT,16),(SNB187CT,16) 30600021 DSGEN (SNB190CT,16),(SNB191CT,16),(SNB192CT,16),(SNB193CT,16) 30630021 DSGEN (SNB194CT,16),(SNB195CT,16),(SNB196CT,16),(SNB197CT,16) 30660021 DSGEN (SNB200CT,16),(SNB201CT,16),(SNB202CT,16),(SNB203CT,16) 30690021 DSGEN (SNB204CT,16),(SNB205CT,16),(SNB206CT,16),(SNB207CT,16) 30720021 DSGEN (SNB210CT,16),(SNB211CT,16),(SNB212CT,16),(SNB213CT,16) 30750021 DSGEN (SNB214CT,16),(SNB215CT,16),(SNB216CT,16),(SNB217CT,16) 30780021 DSGEN (NOISECTR,16),(RWVRCCTR,16),(MTECTR,16),(EDCCTR,16) 30810021 DSGEN (ENVCTR,16),(OVERCTR,16),(SKEWCTR,16),(CCOMPCTR,16) 30840021 DSGEN (WRTTRCTR,16),(PEIDCTR,16),(WRTTMCTR,16),(STRDCTR,16) 30870021 DSGEN (PARTCTR,16),(EXCCTR,16),(IBGCTR,16),(FEEDCTR,16) 30900021 DSGEN (CRCCTR,16) S99223 30910021 DSGEN (EARLBCTR,16),(EARLECTR,16),(SLWBCTR,16),(SLWECTR,16) 30930021 DSGEN (VELRCTR,16),(CRECTCTR,16),(VELCCTR,16), S99223C30960021 (CBCCTR,16) 30970021 DSGEN (CRCICTR,16),(TRDSCTR,16),(TWRTSCTR,16) S99223 30980021 DSGEN (DDNOISE,16),(SIOCTR,32),(ERASECTR,16) 30990021 DSGEN (BACKCTR,16),(BUSCTR,16),(ALUCTR,16),(CLNRCTR,16) 31020021 IFCSXXXB CSECT 31050021 * * 31080021 * THE CONVERT ROUTINES WILL TAKE A COUNTER AND CONVERT IT TO * 31110021 * PRINTABLE EBCDIC CHARACTERS. THEY ALL CONVERT INTO A DIFFERENT * 31140021 * NUMBER OF DIGITS. * 31170021 * CONVERT-3 DIGITS CONVERT1-4 DIGITS CONVERT2-5 DIGITS * 31200021 * CONVERT3-6 DIGITS * 31230021 * * 31260021 CONVERT ST R5,SAVE SAVE REGISTER 31290021 MVC SAVENBR+L2(L2),L0(R4) GET NBR TO BE CONVERTED 31320021 L R5,SAVENBR PUT NUMBER INTO CONVERT REG 31350021 CONVERTA CVD R5,DECAREA CONVERT THE NUMBER 31380021 UNPK L0(L3,R3),DECAREA(L8) UNPACK AND PLACE IN PRINT BUFFER 31410021 OI L2(R3),F0 MAKE LAST DIGIT PRINTABLE 31440021 L R5,SAVE RESTORE REGISTER 31470021 DONOTHNG BR R14 RETURN 31500021 * * 31530021 CONVERT1 ST R5,SAVE SAVE REGISTER 31560021 MVC SAVENBR+L2(L2),L0(R4) GET NBR TO BE CONVERTED 31590021 L R5,SAVENBR PUT NUMBER INTO CONVERT REG 31620021 CVD R5,DECAREA CONVERT THE COUNTER 31650021 UNPK L0(L4,R3),DECAREA(L8) UNPACK AND PLACE IN PRINT BUFFER 31680021 OI L3(R3),F0 MAKE LAST DIGIT PRINTABLE 31710021 L R5,SAVE RESTORE REGISTER 31740021 BR R14 RETURN 31770021 CONVERT2 ST R5,SAVE SAVE REGISTER 31800021 MVC SAVENBR+L2(L2),L0(R4) GET NBR TO BE CONVERTED 31830021 L R5,SAVENBR PUT NUMBER INTO CONVERT REG 31860021 CVD R5,DECAREA CONVERT THE COUNTER 31890021 UNPK L0(L5,R3),DECAREA(L8) UNPACK INTO PRINT BUFFER 31920021 OI L4(R3),F0 MAKE LAST DIGIT PRINTABLE 31950021 L R5,SAVE RESTORE REGISTER 31980021 BR R14 RETURN 32010021 CONVERT3 ST R5,SAVE SAVE THE REGISTER 32040021 MVC DECAREA(4),L0(R4) MOVE NUMBER TO INTEGRAL BOUNDARY 32070021 L R5,DECAREA PUT NUMBER IN A REGISTER 32100021 CVD R5,DECAREA CONVERT COUNTER TO DECIMAL 32130021 UNPK L0(L6,R3),DECAREA(L8) UNPACK THE COUNTER 32160021 OI L5(R3),F0 MAKE LAST DIGIT PRINTABLE 32190021 L R5,SAVE RESTORE THE REFISTER 32220021 BR R14 RETURN 32250021 * * 32280021 * THIS ROUTINE WILL TAKE THE DATES FROM THE HIGH AND LOW DATE ARES * 32310021 * AND PUT THEM INTO THE PRINT BUFFER IN UNPACKED FORMAT. * 32340021 * * 32370021 GETDATE UNPK DECAREA(L5),L1(L3,R4) UNPACK THE DATE 32400021 OI DECAREA+L4,F0 MAKE LAST DIGIT PRINTABLE 32430021 MVC L0(L3,R3),DECAREA+L2 MOVE DAY TO PRINT LINE 32460021 MVC L5(L2,R3),DECAREA MOVE YEAR TO PRINT LINE 32490021 BR R14 RETURN 32520021 * * 32550021 * THIS ROUTINE MOVES THE VOLUME LABEL TO THE PRINT BUFFER. * 32580021 * * 32610021 VOLLAB MVC L0(L6,R3),L0(R4) MOVE VOLUME LABEL TO PRINT BUFFER 32640021 BR R14 RETURN 32670021 * * 32700021 * CHECKS IF THERE WAS ANOTHER CCW TO GO TO THE PRINT BUFFER- IF IT * 32730021 * WAS ZERO THE LINE IS NOT PRINTED, * 32760021 * * 32790021 EMPTY CLI L0(R4),L0 IS THERE A COMMAND 32820021 BCR 7,R14 YES- RETURN 32850021 SR R15,R15 NO- SET R15 FOR NO PRINT 32880021 BR R14 RETURN 32910021 CHKFIR CLI SNSCNT+L1,X'09' NINE SENSE BYTES XM9111 32940021 BC 13,NOTAPP1 GO TO PRINT N/A XM9111 32950021 CLC L0(L2,R4),SAVENBR IS THERE A TU SERIAL SA58784 32960021 BNE CONVERT2 32970021 NOTAPP1 MVC L0(L3,R3),NOTAPP NO SERIAL NBR FOR 3410 XM9111 33000021 BR R14 RETURN CONTROL 33030021 NOTAPP DC CL3'N/A' 33060021 WHERETO ST R7,SAVE SAVE THE REGISTER 33090021 CLI SNSCNT+L1,X'09' NINE SENSE BYTES? XM9111 33120021 BE NOPRINT YES RETURN TO PROCESS 33150021 LA R7,LAB1 UPDATE THE LABEL POINTER 33180021 ST R7,LABELPTR STORE THE LABEL POINTER 33210021 LA R7,DEVICE1-4 GET ADDRESS OF TABLE ENTRY 33240021 ST R7,NINE SAVE THE ENTRY POINTER 33270021 L R7,SAVE RELOAD THE SAVED REGISTER 33300021 NOPRINT SR R15,R15 CLEAR REGISTER FOR NO PRINT 33330021 BR R14 RETURN 33360021 CHKDEV CLI SNSCNT+L1,X'09' IS THERE A TU SERIAL SA58784 33390021 BE MOVEFIR YES 33420021 MVC L0(L4,R3),DEV2 MOVE 3420 TO BUFFER 33450021 BR R14 RETURN 33480021 MOVEFIR MVC L0(L4,R3),DEV1 MOVE 3410 TO BUFFER 33510021 BR R14 RETURN 33540021 DEV1 DC C'3410' 33570021 DEV2 DC C'3420' 33600021 * * 33630021 * * 33660021 * THIS ROUTINE CHECKS IF THERE WAS ANOTHER VOLUME LABEL- IF NOT THE * 33690021 * LINE WILL NOT BE PRINTED. * 33720021 * * 33750021 * * 33780021 * * 33810021 CHKVOL CLC L0(L2,R4),ZERO IS THERE A VOLUME LABEL 33840021 BCR 7,R14 YES- RETURN TO PRINT 33870021 SR R15,R15 NO- SET R15 FOR NO PRINT 33900021 BR R14 RETURN 33930021 * * 33960021 * * 33990021 * THIS ROUTINE IS USED TO FREE THE CORE USED FOR THE COUNTERS AND IT * 34020021 * ALSO CHECKS IF THERE IS ANOTHER COUNTER AREA TO BE PRINTED. IF * 34050021 * THERE IS THE POINTERS TO THE TABLE ENTRIES AND LABELS ARE RESET * 34080021 * AND THE ROUTINE BEGINS AGAIN. * 34110021 * * 34140021 FREE STM R14,R12,L12(R13) SAVE ALL REGISTERS 34170021 LR R12,R13 SAVE SAVE AREA ADDRESS 34200021 LA R13,REGSAVE GET THIS SAVE AREA ADDRESS 34230021 ST R12,L4(R13) SET SAVE AREA CHAIN POINTERS 34260021 ST R13,L8(R12) 34290021 L R3,L4(R2) GET POINTER TO NEXT COUNTER SAVE 34320021 ST R3,L28(R12) SAVE IT IN REGISTER SAVE 34350021 LH R0,SIZE GET SIZE OF AREA TO BE FREED 34380021 LR R1,R2 GET ADDRESS OF AREA 34410021 FREEMAIN R,LV=(0),A=(1) FREE THE CORE 34440021 LTR R3,R3 IS THERE ANOTHER COUNTER AREA 34470021 BZ RETURN0 NO RETURN 34500021 LA R5,SUMENTRS+L10 YES RESET POINTERS TO PRINT SUMMARY 34530021 ST R5,NINE 34560021 LA R5,LABELS-L1 34590021 ST R5,LABELPTR 34620021 RETURN0 L R13,L4(R13) 34650021 LM R14,R12,L12(R12) RELOAD REGISTERS 34680021 BR R14 RETURN 34710021 DECAREA DC D'0' 34740021 SAVE DC F'0' 34770021 REGSAVE DC 18F'0' 34800021 ZERO DC 6X'00' 34830021 SIZE DC H'582' 34860021 SAVENBR DC F'0' 34890021 SUMENTRS DS 0F 34920021 DC X'00010001' 34950021 DC X'00010001' 34980021 DC A(LABELS) 35010021 DC H'0' 35040021 DC X'01000B8B00' 35070021 LABEL ' ' 35100021 LINE (56,20),(1,21),SKIP=1 35130021 HEX CUA,0,3B 35160021 ROUTINE TUSER,CHKDEV 35190021 ROUTINE TUSER,CHKFIR 35220021 LABEL 'SUMMARY OF I/O OUTBOA','RD ENVIRONMENT RECORD', C35250021 'S FOR DEVICE','DEVICE TYPE','TU SERIAL' 35280021 LINE (115,),(104,) 35310021 HEX CPU,0,2B 35340021 LABEL 'CPU MODEL' 35370021 LINE (115,),(104,) 35400021 HEX SER,0,3B 35430021 LABEL 'CPU SERIAL' 35460021 LINE ,(23,14),SKIP=1 35490021 ROUTINE DUM1,DONOTHNG 35520021 LABEL 'DAY YEAR','DAY YEAR' 35550021 LINE (23,14),(1,32),SKIP=2 35580021 ROUTINE LOWDATE,GETDATE 35610021 ROUTINE HIDATE,GETDATE 35640021 LABEL 'OUTBOARD DATE RANGE -','TO' 35670021 LINE (27,),(1,) 35700021 ROUTINE NBROFREC,CONVERT 35730021 LABEL 'TOTAL NUMBER OF RECORDS' 35760021 LINE ,(1,) 35790021 ROUTINE DUM1,DONOTHNG 35820021 LABEL 'VOLUME LABELS ENCOUNTERED(MAXIMUM OF 10 ENTRIES)' 35850021 LINE (13,11),(1,),SKIP=1 35880021 ROUTINE VOL1,VOLLAB 35910021 ROUTINE VOL1CTR,CONVERT 35940021 ROUTINE VOL1CTR,CHKVOL 35970021 LABEL 'VOL. LABEL' 36000021 LINE 36030021 ROUTINE VOL2,VOLLAB 36060021 ROUTINE VOL2CTR,CONVERT 36090021 ROUTINE VOL2CTR,CHKVOL 36120021 LABEL 'VOL. LABEL' 36150021 LINE 36180021 ROUTINE VOL3,VOLLAB 36210021 ROUTINE VOL3CTR,CONVERT 36240021 ROUTINE VOL3CTR,CHKVOL 36270021 LABEL 'VOL. LABEL' 36300021 LINE 36330021 ROUTINE VOL4,VOLLAB 36360021 ROUTINE VOL4CTR,CONVERT 36390021 ROUTINE VOL4CTR,CHKVOL 36420021 LABEL 'VOL. LABEL' 36450021 LINE 36480021 ROUTINE VOL5,VOLLAB 36510021 ROUTINE VOL5CTR,CONVERT 36540021 ROUTINE VOL5CTR,CHKVOL 36570021 LABEL 'VOL. LABEL' 36600021 LINE 36630021 ROUTINE VOL6,VOLLAB 36660021 ROUTINE VOL6CTR,CONVERT 36690021 ROUTINE VOL6CTR,CHKVOL 36720021 LABEL 'VOL. LABEL' 36750021 LINE 36780021 ROUTINE VOL7,VOLLAB 36810021 ROUTINE VOL7CTR,CONVERT 36840021 ROUTINE VOL7CTR,CHKVOL 36870021 LABEL 'VOL. LABEL' 36900021 LINE 36930021 ROUTINE VOL8,VOLLAB 36960021 ROUTINE VOL8CTR,CONVERT 36990021 ROUTINE VOL8CTR,CHKVOL 37020021 LABEL 'VOL. LABEL' 37050021 LINE 37080021 ROUTINE VOL9,VOLLAB 37110021 ROUTINE VOL9CTR,CONVERT 37140021 ROUTINE VOL9CTR,CHKVOL 37170021 LABEL 'VOL. LABEL' 37200021 LINE 37230021 ROUTINE VOL10,VOLLAB 37260021 ROUTINE VOL10CTR,CONVERT 37290021 ROUTINE VOL10CTR,CHKVOL 37320021 LABEL 'VOL. LABEL' 37350021 LINE 37380021 LABEL '' 37410021 LINE 37440021 ROUTINE DUM1,DONOTHNG 37470021 LABEL 'CCW COMMAND CODES ENCOUNTERED(MAXIMUM OF 24 ENTRIES)' 37500021 LINE 37530021 ROUTINE DUM1,DONOTHNG 37560021 LABEL 'CMND TOTAL' 37590021 LINE (2,7),(1,) 37620021 HEX CC01,0,1B 37650021 ROUTINE CCTR01,CONVERT 37680021 ROUTINE CC01,EMPTY 37710021 LABEL ' ' 37740021 LINE 37770021 HEX CC02,0,1B 37800021 ROUTINE CCTR02,CONVERT 37830021 ROUTINE CC02,EMPTY 37860021 LABEL ' ' 37890021 LINE 37920021 HEX CC03,0,1B 37950021 ROUTINE CCTR03,CONVERT 37980021 ROUTINE CC03,EMPTY 38010021 LABEL ' ' 38040021 LINE 38070021 HEX CC04,0,1B 38100021 ROUTINE CCTR04,CONVERT 38130021 ROUTINE CC04,EMPTY 38160021 LABEL ' ' 38190021 LINE 38220021 HEX CC05,0,1B 38250021 ROUTINE CCTR05,CONVERT 38280021 ROUTINE CC05,EMPTY 38310021 LABEL ' ' 38340021 LINE 38370021 HEX CC06,0,1B 38400021 ROUTINE CCTR06,CONVERT 38430021 ROUTINE CC06,EMPTY 38460021 LABEL ' ' 38490021 LINE 38520021 HEX CC07,0,1B 38550021 ROUTINE CCTR07,CONVERT 38580021 ROUTINE CC07,EMPTY 38610021 LABEL ' ' 38640021 LINE 38670021 HEX CC08,0,1B 38700021 ROUTINE CCTR08,CONVERT 38730021 ROUTINE CC08,EMPTY 38760021 LABEL ' ' 38790021 LINE 38820021 HEX CC09,0,1B 38850021 ROUTINE CCTR09,CONVERT 38880021 ROUTINE CC09,EMPTY 38910021 LABEL ' ' 38940021 LINE 38970021 HEX CC10,0,1B 39000021 ROUTINE CCTR10,CONVERT 39030021 ROUTINE CC10,EMPTY 39060021 LABEL ' ' 39090021 LINE 39120021 HEX CC11,0,1B 39150021 ROUTINE CCTR11,CONVERT 39180021 ROUTINE CC11,EMPTY 39210021 LABEL ' ' 39240021 LINE 39270021 HEX CC12,0,1B 39300021 ROUTINE CCTR12,CONVERT 39330021 ROUTINE CC12,EMPTY 39360021 LABEL ' ' 39390021 LINE 39420021 HEX CC13,0,1B 39450021 ROUTINE CCTR13,CONVERT 39480021 ROUTINE CC13,EMPTY 39510021 LABEL ' ' 39540021 LINE 39570021 HEX CC14,0,1B 39600021 ROUTINE CCTR14,CONVERT 39630021 ROUTINE CC14,EMPTY 39660021 LABEL ' ' 39690021 LINE 39720021 HEX CC15,0,1B 39750021 ROUTINE CCTR15,CONVERT 39780021 ROUTINE CC15,EMPTY 39810021 LABEL ' ' 39840021 LINE 39870021 HEX CC16,0,1B 39900021 ROUTINE CCTR16,CONVERT 39930021 ROUTINE CC16,EMPTY 39960021 LABEL ' ' 39990021 LINE 40020021 HEX CC17,0,1B 40050021 ROUTINE CCTR17,CONVERT 40080021 ROUTINE CC17,EMPTY 40110021 LABEL ' ' 40140021 LINE 40170021 HEX CC18,0,1B 40200021 ROUTINE CCTR18,CONVERT 40230021 ROUTINE CC18,EMPTY 40260021 LABEL ' ' 40290021 LINE 40320021 HEX CC19,0,1B 40350021 ROUTINE CCTR19,CONVERT 40380021 ROUTINE CC19,EMPTY 40410021 LABEL ' ' 40440021 LINE 40470021 HEX CC20,0,1B 40500021 ROUTINE CCTR20,CONVERT 40530021 ROUTINE CC20,EMPTY 40560021 LABEL ' ' 40590021 LINE 40620021 HEX CC21,0,1B 40650021 ROUTINE CCTR21,CONVERT 40680021 ROUTINE CC21,EMPTY 40710021 LABEL ' ' 40740021 LINE 40770021 HEX CC22,0,1B 40800021 ROUTINE CCTR22,CONVERT 40830021 ROUTINE CC22,EMPTY 40860021 LABEL ' ' 40890021 LINE 40920021 HEX CC23,0,1B 40950021 ROUTINE CCTR23,CONVERT 40980021 ROUTINE CC23,EMPTY 41010021 LABEL ' ' 41040021 LINE 41070021 HEX CC24,0,1B 41100021 ROUTINE CCTR24,CONVERT 41130021 ROUTINE CC24,EMPTY 41160021 LABEL ' ' 41190021 LINE ,,SKIP=2 41220021 ROUTINE DUM1,DONOTHNG 41250021 LABEL 'SENSE BYTES SUMMARY' 41280021 LINE (15,19),(1,19),SKIP=1 S99223 41310021 ROUTINE DUM1,DONOTHNG 41340021 LABEL 'BYTE 0','BYTE 1','BYTE 2','BYTE 3','BYTE 4','BYTE 5' 41370021 LINE 41400021 ROUTINE TUSER,WHERETO 41430021 LABEL '' 41460021 LINE (15,19),(1,19) S99223 41490021 ROUTINE SNB000CT,CONVERT 41520021 ROUTINE SNB010CT,CONVERT 41550021 ROUTINE SNB020CT,CONVERT 41580021 ROUTINE SNB030CT,CONVERT 41610021 ROUTINE SNB040CT,CONVERT 41640021 ROUTINE SNB050CT,CONVERT 41670021 LABEL 'CMND REJ','NOISE','TRK ERR 0','VRC','TU POS CHK', C41700021 'NEW SUBSY XXX' S99223 41730021 LINE 41760021 ROUTINE SNB001CT,CONVERT 41790021 ROUTINE SNB011CT,CONVERT 41820021 ROUTINE SNB021CT,CONVERT 41850021 ROUTINE SNB031CT,CONVERT 41880021 ROUTINE SNB041CT,CONVERT 41910021 ROUTINE SNB051CT,CONVERT 41940021 LABEL 'INTV REQ','TU STAT A','TRK ERR 1','MTE/LRCR', C41970021 'TU REJECT','NEW SUBSY XXX' S99223 42000021 LINE 42030021 ROUTINE SNB002CT,CONVERT 42060021 ROUTINE SNB012CT,CONVERT 42090021 ROUTINE SNB022CT,CONVERT 42120021 ROUTINE SNB032CT,CONVERT 42150021 ROUTINE SNB042CT,CONVERT 42180021 ROUTINE SNB052CT,CONVERT 42210021 LABEL 'BUS O CHK','TU STAT B','TRK ERR 2','SKEW', SM5191C42240021 'TAPE IND','WRT TM CHK' SM5191 42270021 LINE 42300021 ROUTINE SNB003CT,CONVERT 42330021 ROUTINE SNB013CT,CONVERT 42360021 ROUTINE SNB023CT,CONVERT 42390021 ROUTINE SNB033CT,CONVERT 42420021 ROUTINE SNB043CT,CONVERT 42450021 ROUTINE SNB053CT,CONVERT 42480021 LABEL 'EQUIP CHK','7 TRACK','TRK ERR 3','EDC/CRCR', S99231C42510021 'RESERVED','PE ID BUR' 42540021 LINE 42570021 ROUTINE SNB004CT,CONVERT 42600021 ROUTINE SNB014CT,CONVERT 42630021 ROUTINE SNB024CT,CONVERT 42660021 ROUTINE SNB034CT,CONVERT 42690021 ROUTINE SNB044CT,CONVERT 42720021 ROUTINE SNB054CT,CONVERT 42750021 LABEL 'DATA CHK','LOAD PT','TRK ERR 4','ENV CHECK','RESERVED',C42780021 'P COMP' SM5191 42810021 LINE 42840021 ROUTINE SNB005CT,CONVERT 42870021 ROUTINE SNB015CT,CONVERT 42900021 ROUTINE SNB025CT,CONVERT 42930021 ROUTINE SNB035CT,CONVERT 42960021 ROUTINE SNB045CT,CONVERT 42990021 ROUTINE SNB055CT,CONVERT 43020021 LABEL 'OVERRUN','WRT STA','TRK ERR 5','1600 BPI','D TRK ERR', C43050021 'TACH CHK' SM5191 43080021 LINE 43110021 ROUTINE SNB006CT,CONVERT 43140021 ROUTINE SNB016CT,CONVERT 43170021 ROUTINE SNB026CT,CONVERT 43200021 ROUTINE SNB036CT,CONVERT 43230021 ROUTINE SNB046CT,CONVERT 43260021 ROUTINE SNB056CT,CONVERT 43290021 LABEL 'WRD CNT','FILE PROT','TRK ERR 6','BACKWARD','TU CHECK',C43320021 'FALSE END' 43350021 LINE ,,SKIP=2 43380021 ROUTINE SNB007CT,CONVERT 43410021 ROUTINE SNB017CT,CONVERT 43440021 ROUTINE SNB027CT,CONVERT 43470021 ROUTINE SNB037CT,CONVERT 43500021 ROUTINE SNB047CT,CONVERT 43530021 ROUTINE SNB057CT,CONVERT 43560021 LABEL 'DT CNVTT','NOT CAP','TRK ERR 7','RESERVED', S99231C43590021 'ILL CMND','RPQ' 43620021 LINE ,,SKIP=1 43650021 ROUTINE DUM1,DONOTHNG 43680021 LABEL 'BYTE 6','BYTE 7','BYTE 8' 43710021 LINE 43740021 ROUTINE SNB060CT,CONVERT 43770021 ROUTINE SNB070CT,CONVERT 43800021 ROUTINE SNB080CT,CONVERT 43830021 LABEL '7 TRACK XXX','LAMP FAIL','RESERVED' S99223 43860021 LINE 43890021 ROUTINE SNB061CT,CONVERT 43920021 ROUTINE SNB071CT,CONVERT 43950021 ROUTINE SNB081CT,CONVERT 43980021 LABEL 'SHORT GAP','LFT CL CHK','FEED THRU' 44010021 LINE 44040021 ROUTINE SNB062CT,CONVERT 44070021 ROUTINE SNB072CT,CONVERT 44100021 ROUTINE SNB082CT,CONVERT 44130021 LABEL 'DUAL DEN XXX','RHT CL CHK','RESERVED' S99223 44160021 LINE 44190021 ROUTINE SNB063CT,CONVERT 44220021 ROUTINE SNB073CT,CONVERT 44250021 ROUTINE SNB083CT,CONVERT 44280021 LABEL 'ALT DEN XXX','READY RES','END V CHK' SM5191 44310021 LINE (34,19),(20,19) S99223 44340021 ROUTINE SNB074CT,CONVERT 44370021 ROUTINE SNB084CT,CONVERT 44400021 LABEL 'DSE','RDBK N DET' SM5191 44430021 LINE 44460021 ROUTINE SNB075CT,CONVERT 44490021 ROUTINE SNB085CT,CONVERT 44520021 LABEL 'RESERVED','ST VEL CHK' 44550021 LINE 44580021 ROUTINE SNB076CT,CONVERT 44610021 ROUTINE SNB086CT,CONVERT 44640021 LABEL 'RESERVED','RESERVED' 44670021 LINE ,,SKIP=2 44700021 ROUTINE SNB077CT,CONVERT 44730021 ROUTINE SNB087CT,CONVERT 44760021 LABEL 'RESERVED','RESERVED' SM5191 44790021 LINE ,(1,76),SKIP=1 44820021 ROUTINE DUM1,DONOTHNG 44850021 LABEL 'SDR AREA','DEVICE DEPENDENT COUNTERS' 44880021 LINE (15,19),(1,19) S99223 44910021 ROUTINE NOISECTR,CONVERT1 44940021 ROUTINE WRTTRCTR,CONVERT1 44970021 ROUTINE EARLBCTR,CONVERT1 45000021 ROUTINE BACKCTR,CONVERT1 45030021 ROUTINE TRDSCTR,CONVERT2 45060021 LABEL 'NOISE','RESERVED','END V CHK','BACKWARD','TEMP RDS' 45090021 LINE 45120021 ROUTINE RWVRCCTR,CONVERT1 45150021 ROUTINE WRTTMCTR,CONVERT1 45180021 ROUTINE EARLECTR,CONVERT1 45210021 ROUTINE BUSCTR,CONVERT1 45240021 ROUTINE TWRTSCTR,CONVERT2 45270021 LABEL 'VRC','WRT TM CHK','RDBK N DET','BUS O CHK', SM5191C45300021 'TEMP WRTS' 45330021 LINE 45360021 ROUTINE MTECTR,CONVERT1 45390021 ROUTINE STRDCTR,CONVERT1 45420021 ROUTINE SLWBCTR,CONVERT1 45450021 ROUTINE ALUCTR,CONVERT1 45480021 ROUTINE SIOCTR,CONVERT3 45510021 LABEL 'MTE/LRCR','P COMP','ST VEL CHK','TU POS CHK', SM5191C45540021 'SIO COUNT' 45570021 LINE 45600021 ROUTINE EDCCTR,CONVERT1 45630021 ROUTINE PARTCTR,CONVERT1 45660021 ROUTINE SLWECTR,CONVERT1 45690021 ROUTINE DUM1,DONOTHNG 45720021 ROUTINE ERASECTR,CONVERT2 45750021 LABEL 'EDC/CRCR','TACH CHK','RESERVED','','ERASE GAPS' 45780021 LINE 45810021 ROUTINE ENVCTR,CONVERT1 45840021 ROUTINE EXCCTR,CONVERT1 45870021 ROUTINE VELRCTR,CONVERT1 45900021 ROUTINE DUM1,DONOTHNG 45930021 ROUTINE CLNRCTR,CONVERT2 45960021 LABEL 'ENV CHECK','FALSE END','RESERVED','', SM5191C45990021 'CLEAN ACTS' 46000021 LINE 46020021 ROUTINE OVERCTR,CONVERT1 46050021 ROUTINE IBGCTR,CONVERT1 46080021 ROUTINE VELCCTR,CONVERT1 46110021 ROUTINE DUM1,DONOTHNG 46140021 ROUTINE DDNOISE,CONVERT2 46170021 LABEL 'OVERRUN','RESERVED','RESERVED','','NOISE RCD' 46200021 LINE 46230021 ROUTINE SKEWCTR,CONVERT1 46260021 ROUTINE FEEDCTR,CONVERT1 46290021 ROUTINE PEIDCTR,CONVERT1 46320021 LABEL 'SKEW','FEED THRU','PE ID CHK' 46350021 LINE 46380021 ROUTINE CCOMPCTR,CONVERT1 46410021 LABEL 'RESERVED' 46440021 LINE 46470021 ROUTINE DUM1,FREE 46500021 LABEL ' ' 46530021 DC X'FF' 46560021 DC X'000000000000' 46590021 DS 0F 46620021 DC C'$' 46650021 LINE 46680021 ROUTINE TUSER,DONOTHNG 46710021 LAB1 LABEL '' 46740021 DEVICE1 LINE (15,19),(1,19) S99223 46770021 ROUTINE SNB000CT,CONVERT 46800021 ROUTINE SNB010CT,CONVERT 46830021 ROUTINE SNB020CT,CONVERT 46860021 ROUTINE SNB030CT,CONVERT 46890021 ROUTINE SNB040CT,CONVERT 46920021 ROUTINE SNB050CT,CONVERT 46950021 LABEL 'CMND REJECT','NOISE','TRK ERR 0','R/W VRC', S99223C46980021 'ALU CK/MP ERR','NEW SUBSY XXX' S99223 47010021 LINE 47040021 ROUTINE SNB001CT,CONVERT 47070021 ROUTINE SNB011CT,CONVERT 47100021 ROUTINE SNB021CT,CONVERT 47130021 ROUTINE SNB031CT,CONVERT 47160021 ROUTINE SNB041CT,CONVERT 47190021 ROUTINE SNB051CT,CONVERT 47220021 LABEL 'INTV REQUIRED','TU STAT A','TRK ERR 1', S99223C47250021 'MTE/LRCR','REJECT TU','NEW SUBSY XXX' S99223 47280021 LINE 47310021 ROUTINE SNB002CT,CONVERT 47340021 ROUTINE SNB012CT,CONVERT 47370021 ROUTINE SNB022CT,CONVERT 47400021 ROUTINE SNB032CT,CONVERT 47430021 ROUTINE SNB042CT,CONVERT 47460021 ROUTINE SNB052CT,CONVERT 47490021 LABEL 'BUS OUT CHK','TU STAT B','TRK ERR 2','SKEW', S99223C47520021 'TAPE INDICATE','WRT TM CHK' S99223 47550021 LINE 47580021 ROUTINE SNB003CT,CONVERT 47610021 ROUTINE SNB013CT,CONVERT 47640021 ROUTINE SNB023CT,CONVERT 47670021 ROUTINE SNB033CT,CONVERT 47700021 ROUTINE SNB043CT,CONVERT 47730021 ROUTINE SNB053CT,CONVERT 47760021 LABEL 'EQUIP CHK','7 TRACK','TRK ERR 3','EDC/CRCR', C47790021 'WRT TR VRC','ID BURST CHK' S99223 47820021 LINE 47850021 ROUTINE SNB004CT,CONVERT 47880021 ROUTINE SNB014CT,CONVERT 47910021 ROUTINE SNB024CT,CONVERT 47940021 ROUTINE SNB034CT,CONVERT 47970021 ROUTINE SNB044CT,CONVERT 48000021 ROUTINE SNB054CT,CONVERT 48030021 LABEL 'DATA CHK','LOAD POINT','TRK ERR 4','ENV/ECC', S99223C48060021 'U-PGM DET/RES','ST RD CHK' S99223 48090021 LINE 48120021 ROUTINE SNB005CT,CONVERT 48150021 ROUTINE SNB015CT,CONVERT 48180021 ROUTINE SNB025CT,CONVERT 48210021 ROUTINE SNB035CT,CONVERT 48240021 ROUTINE SNB045CT,CONVERT 48270021 ROUTINE SNB055CT,CONVERT 48300021 LABEL 'OVERRUN','WRITE STATUS','TRK ERR 5', S99223C48330021 '1600 BPI TU','LOOP W/R','PARTIAL REC' S99223 48360021 LINE 48390021 ROUTINE SNB006CT,CONVERT 48420021 ROUTINE SNB016CT,CONVERT 48450021 ROUTINE SNB026CT,CONVERT 48480021 ROUTINE SNB036CT,CONVERT 48510021 ROUTINE SNB046CT,CONVERT 48540021 ROUTINE SNB056CT,CONVERT 48570021 LABEL 'WORD COUNT','FILE PROTECT','TRK ERR 6', S99223C48600021 'BACKWARD','TU CHECK','EXC POST OR TM' S99223 48630021 LINE ,,SKIP=2 48660021 ROUTINE SNB007CT,CONVERT 48690021 ROUTINE SNB017CT,CONVERT 48720021 ROUTINE SNB027CT,CONVERT 48750021 ROUTINE SNB037CT,CONVERT 48780021 ROUTINE SNB047CT,CONVERT 48810021 ROUTINE SNB057CT,CONVERT 48840021 LABEL 'DT CNVTT','NOT CAPABLE','TRK ERR 7', S99223C48870021 'C/P COMPARE','RES FOR RPQ','RES FOR RPQ' S99223 48900021 LINE ,,SKIP=1 48930021 ROUTINE DUM1,DONOTHNG 48960021 LABEL 'BYTE 6','BYTE 7','BYTE 8','BYTE 9','BYTE 10','BYTE 11' 48990021 LINE 49020021 ROUTINE SNB060CT,CONVERT 49050021 ROUTINE SNB070CT,CONVERT 49080021 ROUTINE SNB080CT,CONVERT 49110021 ROUTINE SNB090CT,CONVERT 49140021 ROUTINE SNB100CT,CONVERT 49170021 ROUTINE SNB110CT,CONVERT 49200021 LABEL '7 TRACK XXX','LAMP FAIL','IBG DROP', S99223C49230021 '6250 CORRECTN','CMD ST REJ','B BUS LSR/MP1' S99223 49260021 LINE 49290021 ROUTINE SNB061CT,CONVERT 49320021 ROUTINE SNB071CT,CONVERT 49350021 ROUTINE SNB081CT,CONVERT 49380021 ROUTINE SNB091CT,CONVERT 49410021 ROUTINE SNB101CT,CONVERT 49440021 ROUTINE SNB111CT,CONVERT 49470021 LABEL 'WRT HD CR','TP BOTTOM LF','FEED THRU/RES', S99223C49500021 'VEL CHG','RESERVED','SPARE' S99223 49530021 LINE 49560021 ROUTINE SNB062CT,CONVERT 49590021 ROUTINE SNB072CT,CONVERT 49620021 ROUTINE SNB082CT,CONVERT 49650021 ROUTINE SNB092CT,CONVERT 49680021 ROUTINE SNB102CT,CONVERT 49710021 ROUTINE SNB112CT,CONVERT 49740021 LABEL 'DUAL DEN XXX','TP BOTTOM RH','RESERVED', S99223C49770021 'CBC','CTL ST REJ','XFER/LOIC' S99223 49800021 LINE 49830021 ROUTINE SNB063CT,CONVERT 49860021 ROUTINE SNB073CT,CONVERT 49890021 ROUTINE SNB083CT,CONVERT 49920021 ROUTINE SNB093CT,CONVERT 49950021 ROUTINE SNB103CT,CONVERT 49980021 ROUTINE SNB113CT,CONVERT 50010021 LABEL 'NOT 1600 XXX','RES-DOOR','EARLY BOR', S99223C50040021 'CRC III','NO BOR/WTM','INST/HIIC' S99223 50070021 LINE (34,19),(20,19) S99223 50100021 ROUTINE SNB074CT,CONVERT 50130021 ROUTINE SNB084CT,CONVERT 50160021 ROUTINE SNB094CT,CONVERT 50190021 ROUTINE SNB104CT,CONVERT 50220021 ROUTINE SNB114CT,CONVERT 50250021 LABEL 'DSE','E END/SAGC CK','RLC/3803-2', S99223C50280021 'WTM/DRC','U-PGM ERR' S99223 50290021 LINE 50310021 ROUTINE SNB075CT,CONVERT 50340021 ROUTINE SNB085CT,CONVERT 50370021 ROUTINE SNB095CT,CONVERT 50400021 ROUTINE SNB105CT,CONVERT 50430021 ROUTINE SNB115CT,CONVERT 50460021 LABEL 'ERASE HD','SLOW BOR','RESERVED','TACH FAIL', C50490021 'D BUS PTY' 50520021 LINE 50550021 ROUTINE SNB076CT,CONVERT 50580021 ROUTINE SNB086CT,CONVERT 50610021 ROUTINE SNB096CT,CONVERT 50640021 ROUTINE SNB106CT,CONVERT 50670021 ROUTINE SNB116CT,CONVERT 50700021 LABEL 'AIR PRES','SLOW END','RESERVED','RESERVED', C50730021 'RESERVED' 50760021 LINE ,,SKIP=2 50790021 ROUTINE SNB077CT,CONVERT 50820021 ROUTINE SNB087CT,CONVERT 50850021 ROUTINE SNB097CT,CONVERT 50880021 ROUTINE SNB107CT,CONVERT 50910021 ROUTINE SNB117CT,CONVERT 50940021 LABEL 'LOAD FAIL','VEL RETRY','CNTL UNIT RES', S99223C50970021 'VEL CHK','BOC ALU1/MP1' S99223 51000021 LINE (15,19),(1,19),SKIP=1 S99223 51030021 ROUTINE DUM1,DONOTHNG 51060021 LABEL 'BYTE 12','BYTE 18','BYTE 19','BYTE 20','BYTE 21' 51090021 LINE 51120021 ROUTINE SNB120CT,CONVERT 51150021 ROUTINE SNB180CT,CONVERT 51180021 ROUTINE SNB190CT,CONVERT 51210021 ROUTINE SNB200CT,CONVERT 51240021 ROUTINE SNB210CT,CONVERT 51270021 LABEL 'B BUS LSR/MP2','PWRCHK/AIRFLW','DE DR 7', S99223C51300021 'DE DR F','LD BUTTON' S99223 51310021 LINE 51330021 ROUTINE SNB121CT,CONVERT 51360021 ROUTINE SNB181CT,CONVERT 51390021 ROUTINE SNB191CT,CONVERT 51420021 ROUTINE SNB201CT,CONVERT 51450021 ROUTINE SNB211CT,CONVERT 51480021 LABEL 'SPARE','RESERVED','DE DR 6','DE DR E','LFT REEL' 51510021 LINE 51540021 ROUTINE SNB122CT,CONVERT 51570021 ROUTINE SNB182CT,CONVERT 51600021 ROUTINE SNB192CT,CONVERT 51630021 ROUTINE SNB202CT,CONVERT 51660021 ROUTINE SNB212CT,CONVERT 51690021 LABEL 'XFER/LOIC','RESERVED','DE DR 5','DE DR D','RHT REEL' 51720021 LINE 51750021 ROUTINE SNB123CT,CONVERT 51780021 ROUTINE SNB183CT,CONVERT 51810021 ROUTINE SNB193CT,CONVERT 51840021 ROUTINE SNB203CT,CONVERT 51870021 ROUTINE SNB213CT,CONVERT 51900021 LABEL 'INST/HIIC','RESERVED','DE DR 4','DE DR C','TAPE PRES' 51930021 LINE 51960021 ROUTINE SNB124CT,CONVERT 51990021 ROUTINE SNB184CT,CONVERT 52020021 ROUTINE SNB194CT,CONVERT 52050021 ROUTINE SNB204CT,CONVERT 52080021 ROUTINE SNB214CT,CONVERT 52110021 LABEL 'U-PGM ERR','EC OF DRV','DE DR 3','DE DR B','REELS LDD' 52140021 LINE 52170021 ROUTINE SNB125CT,CONVERT 52200021 ROUTINE SNB185CT,CONVERT 52230021 ROUTINE SNB195CT,CONVERT 52260021 ROUTINE SNB205CT,CONVERT 52290021 ROUTINE SNB215CT,CONVERT 52320021 LABEL 'D BUS PTY','EC OF DRV','DE DR 2','DE DR A','LD RWD' 52350021 LINE 52380021 ROUTINE SNB126CT,CONVERT 52410021 ROUTINE SNB186CT,CONVERT 52440021 ROUTINE SNB196CT,CONVERT 52470021 ROUTINE SNB206CT,CONVERT 52500021 ROUTINE SNB216CT,CONVERT 52530021 LABEL 'RESERVED','EC OF DRV','DE DR 1','DE DR 9','LD COMPL' 52560021 LINE ,,SKIP=2 52590021 ROUTINE SNB127CT,CONVERT 52620021 ROUTINE SNB187CT,CONVERT 52650021 ROUTINE SNB197CT,CONVERT 52680021 ROUTINE SNB207CT,CONVERT 52710021 ROUTINE SNB217CT,CONVERT 52740021 LABEL 'BOC ALU2/MP2','EC OF DRV','DE DR 0','DE DR 8', S99223C52770021 'LD CHK' S99223 52780021 LINE ,(1,76),SKIP=1 52800021 ROUTINE DUM1,DONOTHNG 52830021 LABEL 'SDR AREA','DEVICE DEPENDENT COUNTERS' 52860021 LINE (15,19),(1,19) S99223 52890021 ROUTINE NOISECTR,CONVERT1 52920021 ROUTINE WRTTRCTR,CONVERT1 52950021 ROUTINE EARLBCTR,CONVERT1 52980021 ROUTINE CRCICTR,CONVERT1 S99223 53010021 ROUTINE TRDSCTR,CONVERT2 53040021 LABEL 'NOISE','WRT TR VRC','EARLY BOR','CRC III', S99223C53070021 'TEMP RDS' S99223 53080021 LINE 53100021 ROUTINE RWVRCCTR,CONVERT1 53130021 ROUTINE WRTTMCTR,CONVERT1 53160021 ROUTINE EARLECTR,CONVERT1 53190021 ROUTINE BACKCTR,CONVERT1 S99223 53220021 ROUTINE TWRTSCTR,CONVERT2 53250021 LABEL 'R/W VRC','WRT TM CHK','E END/SAGC CK', S99223C53280021 'BACKWARD','TEMP WRTS' S99223 53310021 LINE 53340021 ROUTINE MTECTR,CONVERT1 53370021 ROUTINE STRDCTR,CONVERT1 53400021 ROUTINE SLWBCTR,CONVERT1 53430021 ROUTINE BUSCTR,CONVERT1 S99223 53460021 ROUTINE SIOCTR,CONVERT3 53490021 LABEL 'MTE/LRCR','ST RD CHK','SLOW BOR', S99223C53520021 'BUS OUT CHK','SIO COUNT' S99223 53550021 LINE 53580021 ROUTINE EDCCTR,CONVERT1 53610021 ROUTINE PARTCTR,CONVERT1 53640021 ROUTINE SLWECTR,CONVERT1 53670021 ROUTINE ALUCTR,CONVERT1 S99223 53700021 ROUTINE ERASECTR,CONVERT2 53730021 LABEL 'EDC/CRCR','PARTIAL REC','SLOW END', S99223C53760021 'ALU CK/MP ERR','ERASE GAPS' S99223 53770021 LINE 53790021 ROUTINE ENVCTR,CONVERT1 53820021 ROUTINE EXCCTR,CONVERT1 53850021 ROUTINE VELRCTR,CONVERT1 53880021 ROUTINE PEIDCTR,CONVERT1 S99223 53910021 ROUTINE CLNRCTR,CONVERT2 53940021 LABEL 'ENV/ECC','EXC POST OR TM','VEL RETRY', S99223C53970021 'ID BURST CHK','CLEAN ACTS' S99223 53980021 LINE 54000021 ROUTINE OVERCTR,CONVERT1 54030021 ROUTINE IBGCTR,CONVERT1 54060021 ROUTINE CRECTCTR,CONVERT1 S99223 54090021 ROUTINE DUM1,DONOTHNG 54120021 ROUTINE DDNOISE,CONVERT2 54150021 LABEL 'OVERRUN','IBG DROP','6250 CORRECTN','', S99223C54180021 'NOISE RCD' S99223 54190021 LINE 54210021 ROUTINE SKEWCTR,CONVERT1 54240021 ROUTINE FEEDCTR,CONVERT1 54270021 ROUTINE VELCCTR,CONVERT1 S99223 54300021 LABEL 'SKEW','FEED THRU/RES','VEL CHG' S99223 54330021 LINE 54360021 ROUTINE CCOMPCTR,CONVERT1 54390021 ROUTINE CRCCTR,CONVERT1 S99223 54420021 ROUTINE CBCCTR,CONVERT1 S99223 54430021 LABEL 'C/P COMPARE','RESERVED','CBC' S99223 54440021 LINE 54450021 ROUTINE DUM1,FREE 54480021 LABEL ' ' 54510021 DC X'FF' 54540021 DC X'000000000000' 54570021 DS 0F 54600021 DC C'$' 54630021 LABELS EQU * 54660021 LSTART 54690021 END 54720021 ./ ADD SSI=03011368,NAME=IFCSXXXC,SOURCE=0 SPACE 2 00060020 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 00120020 MACRO 00180020 &NAME LINE &DATA,&LABEL,&SKIP= 00240020 .* THIS MACRO ESTABLISHES THE MARGINS OR 00300020 .* COLUMN SETTINGS FOR EACH LINE. IT 00360020 .* GENERATES NECESSARY CARRIAGE CONTROL 00420020 .* ENTRIES. LASTLY IT DETERMINES THE 00480020 .* NUMBER OF ENTRIES ASSOCIATED WITH 00540020 .* THE PREVIOUS LINE AND STORES THAT # 00600020 .* INTO THE APPROPRIATE BYTE. 00660020 .* &DATA(1) - CHARACTER POSITION TO BEGIN 00720020 .* DATA. 00780020 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 00840020 .* DATA COLUMN STARTING CHARACTERS. 00900020 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 00960020 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 01020020 .* STARTING CHARACTERS. 01080020 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 01140020 .* TO BEGIN NEXT PRINTED LINE. 01200020 .* NEW ENTRIES ARE GENERATED ONLY WHEN 01260020 .* NECESSARY. OMISSION OF ITEMS MEANS 01320020 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 01380020 .* SETTINGS. A LINE MACRO IS REQUIRED 01440020 .* FOR EACH PRINTED LINE. IF NO SETTING 01500020 .* CHANGES ARE REQUIRED ALL OPERANDS 01560020 .* ARE OMITTED IN WHICH CASE ONLY THE 01620020 .* # OF ENTRIES FOR THE PREVIOUS LINE 01680020 .* IS COMPUTED. THIS MACRO MUST BE THE 01740020 .* FIRST MACRO INSTRUCTION ISSUED FOR 01800020 .* THE SUBJECT LINE 01860020 GBLA &DB,&DT,&LB,<,&NRENTS 01920020 GBLA &LASTCC,&INITIAL 01980020 GBLC &NRENTSX 02040020 GBLC &CARRCON 02100020 GBLB &TEST 02160020 LCLA &S 02220020 &NAME DS 0C 02280020 AIF (&INITIAL EQ 0).FIRSTLN 02340020 LINEND 02400020 AGO .NTFIRST 02460020 .FIRSTLN ANOP 02520020 &NRENTSX SETC 'N&SYSNDX' 02580020 &INITIAL SETA 1 02640020 N&SYSNDX EQU * 02700020 .NTFIRST ANOP 02760020 DC AL1(0) 02820020 AIF ('&DATA(1)' EQ '').CKDTABS 02880020 AIF (&DATA(1) EQ &DB).CKDTABS 02940020 &DB SETA &DATA(1) 03000020 AGO .AA 03060020 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 03120020 AIF (&DATA(2) EQ &DT).NCDATA 03180020 AGO .CC 03240020 .AA AIF ('&DATA(2)' EQ '').BB 03300020 AIF (&DATA(2) EQ &DT).BB 03360020 .CC ANOP 03420020 &DT SETA &DATA(2) 03480020 .BB DC XL2'FFFE' 03540020 DC FL1'&DB' 03600020 DC FL1'&DT' 03660020 &NRENTS SETA &NRENTS+1 03720020 .NCDATA ANOP 03780020 AIF ('&LABEL(1)' EQ '').CKLTABS 03840020 AIF (&LABEL(1) EQ &LB).CKLTABS 03900020 &LB SETA &LABEL(1) 03960020 AGO .AAA 04020020 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 04080020 AIF (&LABEL(2) EQ <).NCLABEL 04140020 AGO .CCC 04200020 .AAA AIF ('&LABEL(2)' EQ '').BBB 04260020 AIF (&LABEL(2) EQ <).BBB 04320020 .CCC ANOP 04380020 < SETA &LABEL(2) 04440020 .BBB DC XL2'FFFF' 04500020 DC FL1'&LB' 04560020 DC FL1'<' 04620020 &NRENTS SETA &NRENTS+1 04680020 .NCLABEL ANOP 04740020 AIF ('&SKIP' NE '').CONT 04800020 AIF (&TEST EQ 0).NOCHANG 04860020 &S SETA &LASTCC 04920020 AGO .DEFAULT 04980020 .CONT ANOP 05040020 AIF (&TEST EQ 0).AB 05100020 &S SETA &SKIP 05160020 .DEFAULT ANOP 05220020 ORG &CARRCON+3 05280020 DC AL.3(0),AL.2(&S),AL.3(1) 05340020 ORG 05400020 &LASTCC SETA &S 05460020 &TEST SETB 0 05520020 AGO .DD 05580020 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 05640020 A&SYSNDX DC XL2'FFFB' 05700020 DC AL.3(0),AL.2(&SKIP),AL.3(1) 05760020 DC FL1'9' 05820020 &LASTCC SETA &SKIP 05880020 &TEST SETB 1 05940020 &CARRCON SETC 'A&SYSNDX' 06000020 &NRENTS SETA &NRENTS+1 06060020 .DD ANOP 06120020 .NOCHANG ANOP 06180020 MEND 06240020 EJECT 06300020 SPACE 2 06360020 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 06420020 MACRO 06480020 &NAME ROUTINE &LOGITEM,&RNAME 06540020 GBLC &DSECT,&CSECT 06600020 GBLC &ITEM(1000) 06660020 GBLA &SHIFT(1000),&ITEMNBR 06720020 GBLA &NRENTS 06780020 LCLA &ISHIFT,&NDX 06840020 .LOOP ANOP 06900020 &NDX SETA &NDX+1 06960020 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 07020020 AIF (&NDX LT &ITEMNBR).LOOP 07080020 MNOTE *,'LOG ITEM NOT DEFINED' 07140020 MEXIT 07200020 .FOUND ANOP 07260020 &ISHIFT SETA &SHIFT(&NDX) 07320020 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 07380020 DC AL.4(&ISHIFT),AL.12(&RNAME-&CSECT) 07440020 &NRENTS SETA &NRENTS+1 07500020 MEND 07560020 EJECT @SL21926 07620021 * DSGEN MACRO D S G E N M A C R O DSGEN MACRO 07640021 MACRO @SL21926 07660021 &NAME DSGEN , @SL21926 07680021 .* THIS MACRO GENERATES ONE DSECT WORD 07700021 .* FORMATTED FOR THE SUBJECT LOG RECORD 07720021 .* EACH OPERAND HAS TWO SUB LISTS. THE 07740021 .* FIRST IS THE NAME OF THE LOG ITEM 07760021 .* WHILE THE SECOND IS THE # OF BITS TO 07780021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 07800021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 07820021 .* UNUSED BIT GROUPS MUST BE GIVEN 07840021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 07860021 .* THE LOG ITEMS MAY THEN BE USED IN 07880021 .* THE CONVERSION MACRO INSTRUCTIONS. 07900021 GBLA &BITS(1000),&ITEMNBR,&SHIFT(1000) @SL21926 07920021 GBLC &ITEM(1000) @SL21926 07940021 LCLB &ONLY1,&CTIND @SL21926 07960021 LCLA &START1,&START2,&END1,&END2 @SL21926 07980021 LCLC &SYMBOL,&EQUSYM @SL21926 08000021 LCLA &OP,&COUNT,&BYTE,&EQUCNT @SL21926 08020021 ACTR 500000 @SL21926 08040021 .START AIF (N'&SYSLIST(&OP+1) LT 3).LOOP @SL21926 08060021 AIF ('&SYSLIST(&OP+1,3)' EQ 'EQU').LOOP TEST FOR EQU 08080021 AIF ('&SYSLIST(&OP+1,3)' EQ '' OR '&SYSLIST(&OP+1,4)' EQ '').ERR1 08100021 AIF ('&SYSLIST(&OP+1,3)' GT '&SYSLIST(&OP+1,4)').ERR3 08120021 &START1 SETA &SYSLIST(&OP+1,3) GET START COUNT OF 1 @SL21926 08140021 &START2 SETA &SYSLIST(&OP+1,4) GET FIRST END COUNT @SL21926 08160021 AGO .SET2A BRANCH AROUND @SL21926 08180021 .ERR1 MNOTE '**FIRST SYMBOL CONCATENATION INCOMPLETE**' @SL21926 08200021 MEXIT @SL21926 08220021 .SET2A AIF ('&SYSLIST(&OP+1,5)' EQ ''AND '&SYSLIST(&OP+1,6)' EQ '' X08240021 ).SET2 TEST FOR NO SECOND @SL21926 08260021 AIF ('&SYSLIST(&OP+1,5)' EQ '' OR '&SYSLIST(&OP+1,6)' EQ '').ERR2 08280021 AIF ('&SYSLIST(&OP+1,5)' GT '&SYSLIST(&OP+1,6)').ERR3 08300021 &END1 SETA &SYSLIST(&OP+1,5) GET START COUNT OF 2 @SL21926 08320021 &END2 SETA &SYSLIST(&OP+1,6) GET END COUNT OF 2 @SL21926 08340021 AGO .LOOP @SL21926 08360021 .SET2 ANOP @SL21926 08380021 &ONLY1 SETB 1 INDICATE ONLY ONE CONCATENATION 08400021 AGO .LOOP @SL21926 08420021 .ERR2 MNOTE '**SECOND SYMBOL CONCATENATION INCOMPLETE**' @SL21926 08440021 MEXIT @SL21926 08460021 .ERR3 MNOTE '**START GREATER THAN END CONCATENATION**' @SL21926 08480021 MEXIT @SL21926 08500021 .LOOP ANOP @SL21926 08520021 &OP SETA &OP+1 @SL21926 08540021 AIF (&OP GT N'&SYSLIST).DONE TEST IF ALL DONE @SL21926 08560021 &ITEMNBR SETA &ITEMNBR+1 @SL21926 08580021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 @SL21926 08600021 MNOTE '**NULL BIT COUNT FIELD**' @SL21926 08620021 MEXIT @SL21926 08640021 .OK1 ANOP @SL21926 08660021 &SYMBOL SETC '&SYSLIST(&OP,1)' @SL21926 08680021 AIF ('&SYMBOL' NE '').OK @SL21926 08700021 * ***** LOG ITEM SYMBOL NOT PROVIDED ***** 08720021 AIF ('&SYSLIST(&OP,3)' NE 'EQU').CNT @SL21926 08740021 AGO .START GET NEXT @SL21926 08760021 .OK AIF (N'&SYSLIST(&OP) LT 3).NO3 TEST FOR OLD FORMAT 08780021 AIF ('&SYSLIST(&OP,3)' EQ 'EQU').EQU TEST FOR EQU @SL21926 08800021 AIF (&ONLY1).OK2 TEST FOR ONLY ONE CONCAT 08820021 &SYMBOL SETC '&SYMBOL.&START1.&END1' GET 1 AND 2 CONCAT 08840021 AGO .NO3 BRANCH AROUND @SL21926 08860021 .OK2 ANOP @SL21926 08880021 &SYMBOL SETC '&SYMBOL.&START1' GET 1 CONCATENATED @SL21926 08900021 .NO3 ANOP @SL21926 08920021 &SYMBOL EQU *+&BYTE @SL21926 08940021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL IN GLOBAL @SL21926 08960021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) @SL21926 08980021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 @SL21926 09000021 .CNT ANOP @SL21926 09020021 &CTIND SETB 1 SET COUNT INDICATOR @SL21926 09040021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) @SL21926 09060021 &BYTE SETA &COUNT/8 @SL21926 09080021 AIF (N'&SYSLIST(&OP) LT 3).START TEST FOR OLD FORMAT 09100021 AIF (&ONLY1).TSTST TEST FOR ONLY ONE CONCAT 09120021 AIF (&END1 EQ &END2).TSTST TEST FOR SECOND END @SL21926 09140021 &END1 SETA &END1+1 INCREMENT COUNT @SL21926 09160021 &OP SETA &OP-1 DECREMENT INCREMENT @SL21926 09180021 AGO .LOOP GENERATE NEXT @SL21926 09200021 .TSTST ANOP @SL21926 09220021 AIF (&START1 EQ &START2).LPDONE TEST FOR END @SL21926 09240021 AIF (&ONLY1).NSET1 TEST FOR ONLY ONE CONCAT 09260021 &END1 SETA &SYSLIST(&OP,5) RE-INIT SECOND START COUNT 09280021 .NSET1 ANOP @SL21926 09300021 &OP SETA &OP-1 DECREMENT INDEX @SL21926 09320021 &START1 SETA &START1+1 INCREMENT FIRST COUNT @SL21926 09340021 AGO .LOOP GO DO NEXT @SL21926 09360021 .LPDONE ANOP @SL21926 09380021 &ONLY1 SETB 0 CLEAR INDICATOR @SL21926 09400021 AGO .START GO TEST FOR MORE SUB-LISTS 09420021 .DONE AIF (&COUNT-&COUNT/8*8 NE 0).ERR TEST FOR MULTIPLE OF EIGHT 09440021 AIF (&CTIND EQ 0).END NO DS IF NO COUNT @SL21926 09460021 &COUNT SETA &COUNT/8 GET NUMBER OF BYTES @SL21926 09480021 &NAME DS &COUNT.C @SL21926 09500021 .END MEXIT @SL21926 09520021 .ERR MNOTE '**BIT COUNT FLDS DO NOT TOTAL MULTIPLE OF 8**' @SL21926 09540021 MEXIT @SL21926 09560021 .EQU AIF ('&SYSLIST(&OP,4)' NE '').EQU1 TEST FOR NULL LABEL 09580021 .ERR4 MNOTE '**EQU OPERAND OMITTED OR NOT FOUND**' @SL21926 09600021 MEXIT @SL21926 09620021 .EQU1 AIF (&SYSLIST(&OP,2) LT 16).EQU2 COUNT OVER FIFTEEN 09640021 ***** THE FOLLOWING STATEMENT ***** 09660021 ***** NUMBER OF BITS EXCEED 15 - DO NOT USE AS BIN ***** 09680021 .EQU2 ANOP @SL21926 09700021 &EQUCNT SETA 0 CLEAR COUNTER @SL21926 09720021 &EQUSYM SETC '&SYSLIST(&OP,4)' GET EQU OPERAND @SL21926 09740021 .EQULOP ANOP @SL21926 09760021 &EQUCNT SETA &EQUCNT+1 INCREMENT INDEX @SL21926 09780021 AIF ('&ITEM(&EQUCNT)' EQ '&EQUSYM').EQUOUT LABEL FOUND? 09800021 AIF (&EQUCNT EQ &ITEMNBR).ERR4 ALL TESTED? @SL21926 09820021 AGO .EQULOP NO-GET NEXT @SL21926 09840021 .EQUOUT ANOP @SL21926 09860021 &ITEM(&ITEMNBR) SETC '&SYMBOL' GET LABEL NAME @SL21926 09880021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) GET NUMBER OF BITS @SL21926 09900021 &SHIFT(&ITEMNBR) SETA &SHIFT(&EQUCNT) GET SHIFT COUNT @SL21926 09920021 &SYMBOL EQU &EQUSYM THIS SYMBOL EQUATED @SL21926 09940021 AGO .START RETURN FOR NEXT @SL21926 09960021 MEND @SL21926 09980021 EJECT @SL21926 10000021 MACRO 10620020 LINEND 10680020 .* THIS MACRO IS USED ONLY BY THE LINE 10740020 .* MACRO TO SET THE NUMBER OF ENTRIES 10800020 .* ASSOCIATED WITH EACH LINE. 10860020 GBLA &NRENTS 10920020 GBLC &NRENTSX 10980020 ORG &NRENTSX 11040020 DC FL1'&NRENTS' 11100020 ORG 11160020 &NRENTS SETA 0 11220020 B&SYSNDX EQU * 11280020 &NRENTSX SETC 'B&SYSNDX' 11340020 MEND 11400020 SPACE 2 11460020 EJECT 11520020 * LABEL MACRO LABEL MACRO LABEL MACRO LABEL MACRO * 11580020 SPACE 2 11640020 MACRO 11700020 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C11760020 &LABEL7,&LABEL8 11820020 .* THIS MACRO ALLOWS UP TO ACHT LABELS TO 11880020 .* BE SPECIFIED FOR A GIVEN LINE. THE 11940020 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 12000020 .* TION MARKS. THE COLUMN AND LINE END 12060020 .* CONTROLS WILL BE INSERTED BY THE 12120020 .* MACRO. OMITTED OPERANDS MEAN NO 12180020 .* LABEL REQUIRED FOR RESPECTIVE 12240020 .* COLUMN. THIS MACRO WILL ALSO ALERT 12300020 .* THE PROGRAMMER TO EXACTLY WHERE THE 12360020 .* TABLE MUST BE BROKEN IF NECESSARY 12420020 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 12480020 GBLC &LABELS(2000) 12540020 GBLC &LBL(100) 12600020 GBLA &LBLCTR(100) 12660020 GBLA &LABELNR 12720020 GBLA &NRENTS,&LPTR 12780020 LCLC &MARGIN,&TACK 12840020 LCLC &TEXT 12900020 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 12960020 &MARGIN SETC '*' 13020020 AIF ('&NAME' EQ '').LOOPOUT 13080020 &LPTR SETA &LPTR+1 13140020 &LBL(&LPTR) SETC '&NAME' 13200020 &LBLCTR(&LPTR) SETA &LABELNR+1 13260020 .LOOPOUT ANOP 13320020 &OP SETA &OP+1 13380020 &K SETA K'&SYSLIST(&OP) 13440020 AIF (&K GE 2).NORM 13500020 &K SETA 2 13560020 .NORM ANOP 13620020 &START SETA 2 13680020 AIF (&OP LT N'&SYSLIST).NOTLAST 13740020 &MARGIN SETC '$' 13800020 .NOTLAST ANOP 13860020 &NRCHAR SETA 8 13920020 &TACK SETC '' 13980020 .LOOPIN ANOP 14040020 &REMAIN SETA &K-&START 14100020 AIF (&REMAIN GE 8).MORE 14160020 &TACK SETC '&MARGIN' 14220020 &NRCHAR SETA &REMAIN 14280020 .MORE ANOP 14340020 &TEXT SETC '' 14400020 AIF (&REMAIN EQ 0).ENDTEXT 14460020 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 14520020 .ENDTEXT ANOP 14580020 &LABELNR SETA &LABELNR+1 14640020 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 14700020 &START SETA &START+8 14760020 AIF ('&TACK' EQ '').LOOPIN 14820020 AIF ('&TACK' EQ '*').LOOPOUT 14880020 MEND 14940020 SPACE 2 15000020 MACRO 15060020 LSTART 15120020 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 15180020 .* OF THE TABLE IS TO BEGIN. 15240020 GBLC &LABELS(2000) 15300020 GBLA &LABELNR 15360020 GBLC &LBL(100) 15420020 GBLA &LBLCTR(100) 15480020 LCLA &NDX,&CTR 15540020 LINEND 15600020 &CTR SETA 1 15660020 .LOOP ANOP 15720020 &NDX SETA &NDX+1 15780020 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 15840020 &LBL(&CTR) DC C'&LABELS(&NDX)' 15900020 &CTR SETA &CTR+1 15960020 AGO .LOOPCTL 16020020 .NOLBL ANOP 16080020 DC C'&LABELS(&NDX)' 16140020 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 16200020 MEND 16260020 SPACE 2 16320020 * BIN MACRO BIN MACRO BIN MACRO BIN MACRO BIN MACRO * 16380020 SPACE 2 16440020 MACRO 16500020 BIN &LOGITEM,&SKIP$OR 16560020 .* &LOGITEM - NAME OF ITEM IN LOG 16620020 .* RECORD DSECT 16680020 .* &SKIP$OR - NBR OF SPACES TO SKIP ON 16740020 .* MULTIPLE PRINT OR NBR OF SPACES 16800020 .* TO BACK UP FROM COLUMN FOR 16860020 .* START OF PRINTING. THE LETTER 16920020 .* B PRECEEDS THE NUMBER (B5) IF 16980020 .* THE LATTER IS DESIRED. OMISSION 17040020 .* OF THIS OPERAND FORCES OPTION 2 17100020 .* WITH BACKUP SPACING EQUAL TO 17160020 .* THE NUMBER OF BITS IN THE ITEM 17220020 .* DEFINITION (VIA MACRO 'DSGEN'). 17280020 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 17340020 .* TOTAL NUMBER OF BITS TO PRINT. 17400020 GBLC &ITEM(1000) 17460020 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 17520020 GBLC &DSECT 17580020 LCLB &B 17640020 LCLA &IBITS,&NDX,&ISHIFT,&K 17700020 LCLA &TEMP,&T 17760020 LCLC &S 17820020 .LOOP ANOP 17880020 &NDX SETA &NDX+1 17940020 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 18000020 AIF (&NDX LT &ITEMNBR).LOOP 18060020 MNOTE *,'YOU BLEW IT' 18120020 ROUTINE DUM,SKIPPER 18180020 MEXIT 18240020 .FOUND ANOP 18300020 &ISHIFT SETA &SHIFT(&NDX) 18360020 &IBITS SETA &BITS(&NDX) 18420020 &T SETA &IBITS-1 18480020 &B SETB 0 18540020 AIF ('&SKIP$OR' EQ '').BACKUP 18600020 &K SETA K'&SKIP$OR 18660020 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 18720020 &S SETC '&SKIP$OR'(&B+1,&K-&B) 18780020 &T SETA &S 18840020 .BACKUP ANOP 18900020 &NRENTS SETA &NRENTS+1 18960020 &TEMP SETA &ISHIFT 19020020 A&SYSNDX DC AL.12(&LOGITEM-&DSECT),XL.4'&TEMP' 19080020 AIF (&IBITS EQ 1 AND &B EQ 0).OUT 19140020 ORG A&SYSNDX 19200020 &B SETB 1 19260020 DC AL.12(&LOGITEM-&DSECT),XL.4'C' 19320020 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 19380020 .OUT ANOP 19440020 MEND 19500020 EJECT 19560020 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 19620020 SPACE 2 19680020 MACRO 19740020 HEX &LOGITEM,&SKIP$OR,&BYTES 19800020 .* THIS MACRO FACILITATES GENERATION OF THE 19860020 .* TABLE ENTRIES SPECIFYING HEX TYPE 19920020 .* CONVERSIONS. 19980020 .* &LOGITEM - NAME OF DATA ITEM TO BE 20040020 .* CONVERTED 20100020 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 20160020 .* MULTIPLE PRINT OR NBR OF SPACES TO 20220020 .* BACK UP FROM COLUMN FOR START OF 20280020 .* PRINTING. THE LETTER B PRECEEDS THE 20340020 .* NUMBER (B8) IF THE LATTER OPTION IS 20400020 .* DESIRED. OMISSION OF THIS OPERAND 20460020 .* FORCES OPTION 2 WITH BACKUP SPACING 20520020 .* EQUAL TO THE NUMBER OF BYTES SPECI- 20580020 .* FIED BY THE NEXT OPERAND (TWICE THIS 20640020 .* NUMBER IF SUFFIX IS EXPLICITLY OR 20700020 .* IMPLICITLY B). 20760020 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 20820020 .* PROCESS. THIS NUMBER IS SUFFIXED 20880020 .* WITH AN L,R, OR B TO STIPULATE 20940020 .* PRINTING OF THE LEFT HALF, RIGHT 21000020 .* HALF, OR BOTH HALVES OF THE BYTE 21060020 .* RESPECTIVELY. OMISSION OF THIS 21120020 .* OPERAND DEFAULTS TO B WITH THE NUM- 21180020 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 21240020 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 21300020 .* SARY. THIS MACRO MUST BE THE FIRST 21360020 .* MACRO INSTRUCTION ISSUED FOR THE 21420020 .* SUBJECT LINE(S). 21480020 GBLC &ITEM(1000),&DSECT 21540020 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 21600020 LCLB &B 21660020 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 21720020 LCLC &S,&LETTER 21780020 .LOOP ANOP 21840020 &NDX SETA &NDX+1 21900020 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 21960020 AIF (&NDX LT &ITEMNBR).LOOP 22020020 MNOTE *,'LOG ITEM NOT DEFINED' 22080020 MEXIT 22140020 .FOUND ANOP 22200020 &ISHIFT SETA &SHIFT(&NDX) 22260020 &IBITS SETA &BITS(&NDX) 22320020 &CODE SETA 1 22380020 &K SETA K'&BYTES 22440020 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 22500020 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 22560020 MEXIT 22620020 .OK AIF ('&BYTES' EQ '').USEDEFN 22680020 &LETTER SETC '&BYTES'(&K,1) 22740020 &S SETC '&BYTES'(1,&K-1) 22800020 &BYTESP SETA &S 22860020 AIF ('&LETTER' EQ 'B').BOTH 22920020 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 22980020 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 23040020 MEXIT 23100020 .USEDEFN ANOP 23160020 &BYTESP SETA &IBITS/8 23220020 .BOTH AIF (&ISHIFT NE 0).ERR 23280020 &CODE SETA 3 23340020 &T SETA &BYTESP*2-1 23400020 &S SETC '&T' 23460020 .OK2 AIF (&ISHIFT EQ 0).L 23520020 &CODE SETA 2 23580020 .L ANOP 23640020 &B SETB 1 23700020 AIF ('&SKIP$OR' EQ '').BACKUP 23760020 &K SETA K'&SKIP$OR 23820020 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 23880020 &S SETC '&SKIP$OR'(&B+1,&K-&B) 23940020 .BACKUP ANOP 24000020 &NRENTS SETA &NRENTS+1 24060020 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 24120020 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 24180020 .OUT ANOP 24240020 MEND 24300020 MACRO 24360020 SPECIAL &ROUTINE,&PARAM,&SPACE= 24420020 .* THIS MACRO GENERATES A SPECIAL ROUTINE 24480020 .* ENTRY TO BE PROCESSED BY THE SUM. M. 24540020 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 24600020 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 24660020 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 24720020 .* INTERPRETED AS AN ARGUMENT OF THE 24780020 .* SPECIAL ROUTINE. 24840020 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 24900020 .* ALLOCATE FOR REQUIRED PROCESSING. 24960020 GBLC &CSECT 25020020 GBLA &COUNTR 25080020 LCLA &ADD 25140020 DC AL1(128) 25200020 DC BL.8'&PARAM' 25260020 DC AL2(&ROUTINE-&CSECT) 25320020 DC AL2(&COUNTR) 25380020 &ADD SETA 1 25440020 AIF ('&SPACE' EQ '').NORM 25500020 &ADD SETA &SPACE 25560020 .NORM ANOP 25620020 &COUNTR SETA &COUNTR+&ADD 25680020 MEND 25740020 MACRO 25800020 SUM &LOGITEM,&MASK 25860020 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 25920020 .* FOR PROCESSING BY THE SUMMARY MODULE 25980020 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 26040020 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 26100020 .* THIS OPERAND SHOULD BE OMITTED FOR 26160020 .* SINGLE BIT ITEMS IN WHICH CASE THE 26220020 .* MASK WILL BE SET ACCORDING TO THE 26280020 .* OFF BYTE BIT DISPLACEMENT OF THE 26340020 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 26400020 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 26460020 GBLC &ITEM(1000),&DSECT 26520020 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 26580020 .LOOP ANOP 26640020 &NDX SETA &NDX+1 26700020 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 26760020 AIF (&NDX LT &ITEMNBR).LOOP 26820020 MNOTE *,'LOGITEM NOT FOUND' 26880020 MEXIT 26940020 .FOUND ANOP 27000020 DC AL1(0) 27060020 &ISHIFT SETA &SHIFT(&NDX) 27120020 &IBITS SETA &BITS(&NDX) 27180020 AIF ('&MASK' EQ '').FORM 27240020 DC B'&MASK' 27300020 AGO .ITEM 27360020 .FORM ANOP 27420020 &BITNBR SETA &ISHIFT-7 27480020 &BITNBR SETA 0-&BITNBR 27540020 &M SETA 1 27600020 .LOOP2 ANOP 27660020 AIF (&BITNBR EQ 0).GOTIT 27720020 &M SETA &M*2 27780020 &BITNBR SETA &BITNBR-1 27840020 AGO .LOOP2 27900020 .GOTIT ANOP 27960020 DC AL1(&M) 28020020 .ITEM DC AL2(&LOGITEM-&DSECT) 28080020 DC AL2(&COUNTR) 28140020 &COUNTR SETA &COUNTR+1 28200020 MEND 28260020 GBLC &DSECT,&CSECT 28320020 &CSECT SETC 'IFCS3330' 28380020 &DSECT SETC 'S3330' 28440020 IFCS3330 CSECT 28500020 S3330 DSECT 28560020 DSGEN (CLASRC,8),(SYSREL,8),(SWITCHES,16) 28620020 DSGEN (RECID,8),(SPARE1,16),(TYPE,8) 28680020 DSGEN (DAY,32) 28740020 DSGEN (HOUR,32) 28800020 DSGEN (SPARE2,8),(CPUSERL,24) 28860020 DSGEN (CPUID,16),(SPARE3,16) 28920020 DSGEN (JCUAID,16),(JVOLID1,16) 28980020 DSGEN (JVOLID2,32) 29040020 DSGEN (TSNB00,2),(TSNB02,1),(TSNB03,2),(TSNB05,1),(TSNB06,2), C29100020 (TSNB10,1),(TSNB11,1),(TSNB12,6),(TSNB20,8),(TSNB30,8) 29160020 DSGEN (TSNB40,8),(TSNB50,8),(TSNB60,8),(TSNB70,8) 29220020 DSGEN (TSNB80,8),(TSNB90,8),(TSNB100,8),(TSNB110,8) 29280020 DSGEN (TSNB120,8),(TSNB130,8),(TSNB140,8),(TSNB150,8) 29340020 DSGEN (TSNB160,8),(TSNB170,8),(TSNB180,8),(TSNB190,8) 29400020 DSGEN (TSNB200,8),(TSNB210,8),(TSNB220,8),(TSNB230,8) 29460020 DSGEN (SPARE4,8),(CUA,24) 29520020 DSGEN (IORET,24),(SBCNT,8) S21021 29580000 DSGEN (VOLID1,32) 29640020 DSGEN (VOLID2,16),(SPARE5,16) 29700020 DSGEN (LSKAD1,64) 29760020 DSGEN (AHA1,32) 29820020 DSGEN (AHA2,16),(SPARE6,16) 29880020 DSGEN (SNB00,2),(SNB02,1),(SNB03,2),(SNB05,1),(SNB06,2), C29940000 (SNB10,1),(SNB11,1),(SNB12,6),(SNB20,8),(SNB30,8) 29970000 DSGEN (SNB40,8),(SNB50,8),(SNB60,8),(SNB70,8) S21926 30000000 DSGEN (SNB80,8),(SNB90,8),(SNB100,8),(SNB110,8) S21926 30030000 DSGEN (SNB120,8),(SNB130,8),(SNB140,8),(SNB150,8) S21926 30060000 DSGEN (SNB160,8),(SNB170,8),(SNB180,8),(SNB190,8) S21926 30090000 DSGEN (SNB200,8),(SNB210,8),(SNB220,8),(SNB230,8) S21926 30120000 * 30540020 IFCS3330 CSECT 30600020 USING S3330,R2 30660020 USING *,R9 30720020 DC A(ENTRIES) 30780020 DC A(PEDIT) 30840020 * 30900020 REG8 DC F'0' 30960020 SCSIZE DC H'320' 31020020 * 31080020 R0 EQU 0 31140020 R1 EQU 1 31200020 R2 EQU 2 31260020 R3 EQU 3 31320020 R4 EQU 4 31380020 R5 EQU 5 31440020 R6 EQU 6 31500020 R7 EQU 7 31560020 R8 EQU 8 31620020 R9 EQU 9 31680020 R10 EQU 10 31740020 R11 EQU 11 31800020 R12 EQU 12 31860020 R13 EQU 13 31920020 R14 EQU 14 31980020 R15 EQU 15 32040020 * 32100020 L0 EQU 0 32160020 L1 EQU 1 32220020 L2 EQU 2 32280020 L3 EQU 3 32340020 L4 EQU 4 32400020 L5 EQU 5 32460020 L6 EQU 6 32520020 L7 EQU 7 32580020 L8 EQU 8 32640020 L9 EQU 9 32700020 L10 EQU 10 32760020 L11 EQU 11 32820020 L12 EQU 12 32880020 L13 EQU 13 32940020 L14 EQU 14 33000020 L15 EQU 15 33060020 L16 EQU 16 33120020 L17 EQU 17 33180020 L18 EQU 18 33240020 L19 EQU 19 33300020 L20 EQU 20 33360020 L22 EQU 22 33420020 L23 EQU 23 33480020 L24 EQU 24 33540020 L26 EQU 26 33600020 L28 EQU 28 33660020 L29 EQU 29 S99237 33690021 L31 EQU 31 33720020 L32 EQU 32 33780020 L36 EQU 36 33840020 L39 EQU 39 33900020 L44 EQU 44 33960020 L46 EQU 46 S21021 33990000 H0F EQU X'0F' 34020020 HE0 EQU X'E0' 34080020 HF0 EQU X'F0' 34140020 H00 EQU X'00' 34260020 H01 EQU X'01' 34320020 H02 EQU X'02' 34380020 H04 EQU X'04' 34440020 H08 EQU X'08' 34500020 HC0 EQU X'C0' 34560020 H80 EQU X'80' 34620020 H50 EQU X'50' 34680020 H40 EQU X'40' 34740020 H30 EQU X'30' 34800020 H20 EQU X'20' 34860020 H10 EQU X'10' 34920020 H21 EQU X'21' 34980020 H23 EQU X'23' 35040020 H25 EQU X'25' 35100020 H29 EQU X'29' 35160020 H18 EQU X'18' S21926 35170000 H32 EQU X'32' 35180000 H90 EQU X'90' 35190000 CHART EQU C'T' 35220020 CLRSGN EQU X'F0' 35280020 LOGMODE EQU X'10' 35340020 NOLOG EQU X'7F' 35400020 NOCARRY EQU 12 COND CODE AFTER 'AL' = @SL21926 35410021 * NO CARRY(OVERFLOW) INTO 35420021 * BIT POSITION 32 @SL21926 35430021 XDATE1 STM R5,R8,XSAVE1 SAVE REGS 35460020 CLC DAY(L4),HEX00 IS DATE ZERO 35580020 BE RETURN1 BR-ZERO 35640020 CLC L0(L4,R3),HEX00 IS LOW DATE ZERO 35700020 BNE XDATE2 BR-NO 35760020 MVC L0(L4,R3),DAY MOVE IN DATE 35820020 XDATE2 CLC DAY(L4),L0(R3) CHECK FOR LOW DATE 35880020 BL SAVELOW LOWER SAVE IT 35940020 CLC DAY(L4),L4(R3) CHECK FOR HI 36000020 BNH RETURN1 36060020 SAVEHI MVC L4(L4,R3),DAY MOVE HI DATE 36120020 B RETURN1 36180020 SAVELOW MVC L0(L4,R3),DAY MOVE LOW DATE 36240020 B RETURN1 36300020 ISTPER STM R5,R8,XSAVE1 SAVE REGISTERS 36360020 SR R6,R6 ZERO 36420020 SR R8,R8 REGS 36480020 LR R5,R3 GET ADDRESS OF SUMMARY COUNTER 36540020 TM CLASRC,H90 TEST FOR A TPER RECORD S21021 36600000 BO TYPTPER YES S21021 36630000 B RETURN1 NO, DO NOT ADD TO COUNT,RETURN 36720020 TYPTPER BAL R8,ADDUP GO ADD TO COUNT OF TPER RECORDS 36780020 LA R8,DOVOL-L6 MOVE POINTER TO ADD VOL ID 36840020 ST R8,REG8 36900020 B RETURN1 36960020 ISLOG STM R5,R8,XSAVE1 SAVE REGISTERS 37020020 SR R6,R6 ZERO 37080020 SR R8,R8 REGS 37140020 TM CLASRC,H32 IS THIS A CONVERTED OBR S21021 37147000 BO TESTCONV YES S21021 37154000 B NEWREC NO S21021 37161000 TESTCONV TM SBCNT,H18 HAS THIS RECORD BEEN CONDENSED 37168000 BO NEWREC YES S21021 37175000 MVC SNB00(L24),SNB100 NO,MOVE SENSE OVER SDR S21021 37182000 NEWREC LR R5,R3 GET ADDRESS OF SUMMARY COUNTERS 37189000 LR R5,R3 GET ADDRES OF SUMMARY COUNTERS 37200020 TM SNB20,H10 WAS THIS RECORDED IN LOGGING MOD 37260020 BO LOGMOD YES 37320020 B RETURN1 37380020 LOGMOD TM SNB70,H50 IS THIS DATA CHECK CORRECTABLE 37440020 BO LOGMOD1 YES,FORMAT 5 INDICATES DCC 37500020 LA R5,L2(R5) NO,BUMP POINTER RO DATA CHK RTRY 37560020 TM SNB70,H40 IS THIS DATA CHECK RETRY 37620020 BO LOGMOD1 YES,FORMAT 4 INDICATES DCR 37680020 LA R5,L2(R5) NO,BUMP POINTER TO SEEK CHECK 37740020 TM SNB70,H10 IS THIS SEEK CHECK 37800020 BO LOGMOD1 YES,FORMAT 1 INDICATES SK CHK 37860020 LOGRET LA R8,ENDLOG-L6 LOG MOD ENDS,DO NOT ADD FURTHER 37920020 ST R8,REG8 37980020 B RETURN1 38040020 LOGMOD1 BAL R8,ADDUP GO ADD TO SUMMARY COUNTER 38100020 B LOGRET RETURN 38160020 * 38220020 EQUIP STM R5,R8,XSAVE1 SAVE REGISTERS 38280020 SR R6,R6 ZERO 38340020 SR R8,R8 REGS 38400020 LR R5,R3 GET ADDRESS OF SUMMARY COUNTERS 38460020 TM SNB00,H10 IS THIS EQUIPMET CHECK 38520020 BO EQUIPON YES 38580020 B RETURN1 NO RETURN,DO NOT ADD TO COUNTERS 38640020 EQUIPON TM SNB70,H30 IS THIS FORMAT 3 38700020 BO EQUIPON1 YES 38760020 TM SNB70,H20 FORMAT 2 38820020 BO EQUIPON1 YES 38880020 TM SNB70,HF0 FORMAT 0 38940020 BZ EQUIPON1 YES 39000020 TM SNB70,H50 IS THIS FORMAT 5 39020020 BO RETURN1 YES,DO NOT ADD TO COUNTERS 39040020 TM SNB70,H10 FORMAT 1 39060020 BO EQUIPON3 YES 39120020 B RETURN1 NO DO NOT ADD TO COUNTERS 39180020 EQUIPON1 TM SNB10,H80 IS THIS PERMANENT ERROR 39240020 BO EQUIPON2 YES 39300020 BAL R8,ADDUP GO ADD TO TOTAL EQ CONT TEMP 39360020 B RETURN1 39420020 EQUIPON2 LA R5,L2(R5) BUMP POINTER TO COUNTER 39480020 BAL R8,ADDUP GO ADD TO TOTAL EQ CONT PERM 39540020 B RETURN1 39600020 EQUIPON3 LA R5,L4(R5) POINT TO PROPER COUNTER 39660020 TM SNB10,H80 IS THIS PERMANENT ERROR 39720020 BO EQUIPON4 YES 39780020 BAL R8,ADDUP GO ADD TO TOTAL EQ DRIVE TEMP 39840020 B RETURN1 39900020 EQUIPON4 LA R5,L2(R5) BUMP POINTER TO COUNTER 39960020 BAL R8,ADDUP GO ADD TO TOTAL EQ DRIVE PERM 40020020 B RETURN1 40080020 DATACKP STM R5,R8,XSAVE1 SAVE REGISTERS 40140020 SR R6,R6 ZERO 40200020 SR R8,R8 REGS 40260020 LR R5,R3 GET ADDRESS OF SUMMARY COUNTER 40320020 TM SNB00,H08 TEST FOR DATA CHECK OBR 40380020 BO DATACKP1 YES 40440020 B RETURN1 NO RETURN 40500020 DATACKP1 TM SNB10,H80 IS THIS DATA CHECK PERMANENT 40560020 BO DATACKP2 YES,GO ADD TO DATA CHECK,PERM 40620020 B RETURN1 RETURN 40680020 DATACKP2 BAL R8,ADDUP GO OUT TO ADD 40740020 B RETURN1 40800020 TVOLID STM R5,R8,XSAVE1 SAVE THE REGS 40860020 SR R6,R6 40920020 SR R7,R7 40980020 SR R8,R8 41040020 LR R5,R3 GET POINTER TO COUNTERS 41100020 TM CLASRC,H90 IS THIS AN MDR RECORD 41160021 BO TVOLID1A YES - PROCESS 41220021 B RETURN1 NO RETURN FOR ANOTHER 41280020 TVOLID1A CLC ZEROS(L6),JVOLID1 IS THIS VOL ID ZEROS A44063 41340000 BE RETURN1 YES GO GET ANOTHER A44063 41360000 LA R7,L20 SET NO OF VLO ID'S ALLOWEDA44063 41380000 TVOLID2A CLC L0(L6,R5),JVOLID1 COMPARE VOL ID TO FIRST 41400020 BE TVOLID4A EQUAL, GO ADD TO COUNTERS 41460020 CLC L0(L6,R5),ZEROS NO,IS VOL ID EQUAL TO BLANKS 41520020 BE TVOLID3A YES THEN THIS IS FIRST ONE 41580020 LA R5,L26(R5) BUMP PTR TO NEXT VOLID @SL21926 41640021 BCT R7,TVOLID2A LOOP TO FIRST TEST 41700020 TVOLID3A MVC L0(L6,R5),JVOLID1 MOVE IN VOL ID 41760020 TVOLID4A LA R5,L6(R5) BUMP POINTER TO COUNTERS 41820020 MVC READYA(L2),TSNB160 MOVE IN COUNT OF SEEKS 41880020 LH R6,READYA PUNT COUNT IN R6 41940020 XC READYA(L8),READYA 42000020 MVC READYA(L4),L0(R5) MOVE SEEKS FROM CNTR @SL21926 42060021 A R6,READYA ADD TO THIS COUNT @SL21926 42110021 ST R6,READYA TOTAL ON BOUNDRY @SL21926 42160021 MVC L0(L4,R5),READYA SAVE TOTAL @SL21926 42210021 LA R5,L4(R5) BUMP CNTR PTR @SL21926 42260021 SR R6,R6 CLEAR REG @SL21926 42310021 SPACE 1 @SL21926 42360021 IC R6,TSNB190 GET COUNT OF SEEK ERRORS 42420020 AH R6,L0(R5) ADD TO COUNTER 42480020 STH R6,READYA 42540020 MVC L0(L2,R5),READYA MOVE TOTAL TO COUNTER 42600020 LA R5,L2(R5) BUMP COUNTER POINTER 42660020 SPACE 1 @SL21926 42690021 MVC READYA(L4),TSNB80 MOVE IN NUMBER OF BYTES READ 42720020 L R6,READYA 42780020 XC READYA(L8),READYA 42900020 MVC READYA(L4),L2(R5) PUT CNTR ON BOUNDRY @SL21926 42960021 AL R6,READYA ADD BYTES READ @SL21926 43000021 BC NOCARRY,SAVBTRD BR IF NO OVERFLOW @SL21926 43040021 * IF THERE WAS A CARRY @SL21926 43080021 LH R7,L0(R5) LOAD OVERFLOW CNTR @SL21926 43120021 LA R7,L1(R7) BUMP BY ONE @SL21926 43160021 STH R7,L0(R5) SAVE CNTR @SL21926 43200021 * @SL21926 43240021 SAVBTRD ST R6,READYA COUNT ON BOUNDRY @SL21926 43280021 MVC L2(L4,R5),READYA SAVE BYTES READ @SL21926 43320021 LA R5,L6(R5) BUMP CNTR PTR @SL21926 43360021 SPACE 1 @SL21926 43400021 MVC READYA(L2),TSNB140 UNCORR DATA CKS TO BNDRY 43440021 LH R6,READYA LOAD THIS COUNT @SL21926 43480021 MVC READYA(L4),L0(R5) MOVE CURRENT TOTAL @SL21926 43520021 A R6,READYA ADD TO THIS COUNT @SL21926 43560021 ST R6,READYA NEW TOTAL TO BOUNDRY @SL21926 43600021 MVC L0(L4,R5),READYA SAVE NEW TOTAL @SL21926 43640021 LA R5,L4(R5) BUMP CNTR PTR @SL21926 43680021 SPACE 1 @SL21926 43720021 MVC READYA(L2),TSNB120 MOVE CORR DATA CKS @SL21926 43760021 LH R6,READYA LOAD INTO REG @SL21926 43800021 MVC READYA(L4),L0(R5) PUT CNTR ON BOUNDRY @SL21926 43840021 A R6,READYA ADD TO THIS COUNT @SL21926 43880021 ST R6,READYA TOTAL ON BOUNDRY @SL21926 43920021 MVC L0(L4,R5),READYA PUT TOTAL BACK IN CNTR @SL21926 43960021 SPACE 1 @SL21926 44000021 * THE FOLLOWING ROUTINE DETERMINES IF THE COUNTS ARE MADE 44280021 * FOR CHANNEL 'A' AND 'B' OR CHANNEL 'C' AND 'D'. 44286021 CLI TSNB180,H80 IS THIS REC FOR CHNL C/D S99237 44292021 BE CHANCD YES BRANCH S99237 44298021 LA R5,ABCNTR(R3) NO SET PTR TO A/B CNTRS S99204 44304021 B TVOLID5A BRANCH TO TOTAL COUNTERS S99237 44310021 CHANCD LA R5,CDCNTR(R3) SET POINTER TO C/D CNTRS S99204 44316021 * 44322021 TVOLID5A SR R6,R6 S99237 44328021 IC R6,TSNB200 GET COUNT OVERRUN A/C CMNDS99237 44340021 AH R6,L0(R5) ADD TO COUNTER 44400020 STH R6,READYA 44460020 MVC L0(L2,R5),READYA MOVE TOTAL TO COUNTER 44520020 LA R5,L2(R5) BUMP COUNTER POINTER 44580020 SR R6,R6 44610020 IC R6,TSNB210 GET COUNT OVERRUN A/C DATAS99237 44640021 AH R6,L0(R5) ADD TO COUNTER 44700020 STH R6,READYA 44760020 MVC L0(L2,R5),READYA MOVE TOTAL TO COUNTER 44820020 LA R5,L2(R5) BUMP COUNTER POINTER 44880020 SR R6,R6 44910020 IC R6,TSNB220 GET COUNT OVERRUN B/D CMNDS99237 44940021 AH R6,L0(R5) ADD TO COUNTER 45000020 STH R6,READYA 45060020 MVC L0(L2,R5),READYA MOVE TOTAL TO COUNTER 45120020 LA R5,L2(R5) 45180020 SR R6,R6 45210020 IC R6,TSNB230 GET COUNT OVERRUN B/D DATAS99237 45240021 AH R6,L0(R5) ADD TO COUNTER 45300020 STH R6,READYA 45360020 MVC L0(L2,R5),READYA MOVE TOTAL TO COUNTER 45420020 B RETURN1 45480020 ADDUP LH R6,L0(R5) PUT THE SUMMARY COUNTER IN REG 6 45540020 LA R6,L1(R6) ADD ONE TO THE SUMMARY COUNTER 45600020 STH R6,L0(R5) REPLACE COUNTER 45660020 LA R5,L2(R5) BUMP POINTER TO NEXT COUNTER 45720020 BR R8 RETURN 45780020 RETURN1 LM R5,R8,XSAVE1 RESTORE REGS 45840020 BR R14 45900020 * 45960020 CON3330 DC C'3330' 46020020 DS 0D 46080020 XSAVE1 DC 5F'0' 46140020 SPACE 46160021 HEX00 DC F'0' USED FOR COMPARES - ZERO'S 46180021 DS 0D 46200020 READYA DC 5F'0' 46260020 ENTRIES DS 0F 46320020 SPECIAL XDATE1,00000000,SPACE=4 FROM TO DAY YEAR 46380020 SPECIAL ISTPER,00000000,SPACE=1 IS THIS TPER REC. 46440020 SPECIAL ISLOG,00000000,SPACE=3 46500020 SUM SNB02 ADD TO BUS OUT PARITY 46560020 SPECIAL EQUIP,00000000,SPACE=4 GO CHECK FOR 46620020 * EQUIPMENT CHECK IF ON 46680020 * IS IT CONTROL UNIT 46740020 * PERMANENT OR 46800020 * TEMPORARY 46860020 * OR IS IT DRIVE 46920020 * PERMANENT OR 46980020 * TEMPORARY 47040020 * AND ADD TO COUNTERS 47100020 SPECIAL DATACKP,00000000,SPACE=1 GO ADD TO DATA CHK PRM 47160020 SUM SNB05 ADD TO OVERRN COUNTER 47220020 SUM SNB11 ADD TO INV TRK FMT CNT 47280020 ENDLOG DC XL1'FF' 47340020 DS 0H 47400020 DOVOL EQU * 47460020 SPECIAL TVOLID,00000000,SPACE=13 LOOK FOR CORRECT @SL21926 47520021 DC XL1'FF' VOL ID AND ADD T 47580020 * APPROPRIATE COUNTERS 47640020 PEDIT DS 0F 47700020 * 47760020 &DSECT SETC 'T3330' 47820020 &CSECT SETC 'PEDIT' 47880020 USING *,R9 47940020 USING T3330,R2 48000020 DC A(PENTRY) 48060020 DC C'IFCS3330' 48120020 YR9PTR DS F 48180020 YLABEL DS F 48240020 T3330 DSECT 48300020 *********************************************************************** 48304021 * * 48308021 * THE FOLLOWING DSECT DESCRIBES COUNTERS USED TO TOTAL * 48312021 * INCIDENTS PERTAINING TO ANY ONE PHYSICAL ADDRESS. * 48316021 * INDIVIDUAL ENTRIES ARE MADE FOR UP TO 20 VOLUME LABELS * 48320021 * AFTER 20,THE REMAINING ARE COMPILED IN THE 21ST ENTRY. * 48324021 * ALSO, IN THE 21ST ENTRY THERE ARE COUNTERS FOR TWO AND * 48328021 * FOUR CHANNEL SWITCHES IF A HEX'80' IS FOUND IN BYTE 18 * 48332021 * OF THE INPUT RECORD,COUNTS ARE MADE FOR CHANNEL 'C' AND 'D'.* 48336021 * IF A HEX'00' IS FOUND,COUNTS ARE KEPT FOR CHNL 'A' AND 'B'. * 48340021 * * 48344021 *********************************************************************** 48348021 DS 3H 48360020 DSGEN (YDUMA,16),(YNOREC,16) 48420020 DSGEN (YTYPE,8),(YCHAN,8),(YCUA,24),(YSER,24) 48480020 DSGEN (YCPU,16),(YSMSW,16) 48540020 DSGEN (TDAY1,32),(TDAY2,32) 48600020 DSGEN (TSTAT,16),(TDACHKC,16) 48660020 DSGEN (TDACHKR,16),(TSKCHK,16) 48720020 DSGEN (TBUSOPA,16),(TEQCNT,16) 48780020 DSGEN (TEQCNP,16),(TEQDRT,16) 48840020 DSGEN (TEQDRP,16),(TDATCHP,16) 48900020 DSGEN (TOVERRN,16),(TINVTRKF,16) 48960020 * 49020020 * 49080020 DSGEN (TVOLID1,48),(TSEEK1,32) @SL21926 49140021 DSGEN (TSEEKER1,16),(TBTRDO1,16) @SL21926 49440021 DSGEN (TBYTRD1,32),(TUNCRD1,32) @SL21926 49740021 DSGEN (TCORRD1,32) @SL21926 50040021 DSGEN (TVOLID2,208) @SL21926 50340021 DSGEN (TVOLID3,208) @SL21926 50640021 DSGEN (TVOLID4,208) @SL21926 50940021 DSGEN (TVOLID5,208) @SL21926 51240021 DSGEN (TVOLID6,208) @SL21926 51540021 DSGEN (TVOLID7,208) @SL21926 51840021 DSGEN (TVOLID8,208) @SL21926 52140021 DSGEN (TVOLID9,208) @SL21926 52440021 DSGEN (TVOLID10,208) @SL21926 52740021 DSGEN (TVOLID11,208) @SL21926 53040021 DSGEN (TVOLID12,208) @SL21926 53340021 DSGEN (TVOLID13,208) @SL21926 53640021 DSGEN (TVOLID14,208) @SL21926 53940021 DSGEN (TVOLID15,208) @SL21926 54240021 DSGEN (TVOLID16,208) @SL21926 54540021 DSGEN (TVOLID17,208) @SL21926 54840021 DSGEN (TVOLID18,208) @SL21926 55140021 DSGEN (TVOLID19,208) @SL21926 55440021 DSGEN (TVOLID20,208) @SL21926 55740021 DSGEN (TVOLID21,208) COUNTER FOR ALL OTHERS @SL21926 56040021 DSGEN (TOCACA,16) CNTR FOR 'A' CMD @SL21926 56340021 DSGEN (TOCADA,16),(TOCBCA,16) 'A' DATA AND CHNL 'B' CMD S99237 57750021 DSGEN (TOCBDA,16),(TOCCCA,16) 'B' DATA AND CHNL 'C' CMD S99237 57780021 DSGEN (TOCCDA,16),(TOCDCA,16) 'C' DATA AND CHNL 'D' CMD S99237 57810021 DSGEN (TOCDDA,16) CNTR FOR 'D' DATA @SL21926 57840021 SPACE 1 S99204 57846021 * S99204 57852021 * THE FOLLOWING EQUATES ARE FOR DISPLACEMENTS FROM THE FIRST99204 57858021 * VOL SER COUNTERS TO THE CHANNEL OVERRUN COUNTERS S99204 57864021 * S99204 57870021 ABCNTR EQU TOCACA-TVOLID1 DIS TO A/B COUNTERS S99204 57876021 CDCNTR EQU TOCCCA-TVOLID1 DIS TO C/D COUNTERS S99204 57882021 SPACE 1 S99204 57888021 IFCS3330 CSECT 57900020 XR9PTR DC F'0' 57960020 XLABELP DC F'0' 58020020 * 58080020 TOTALNO1 STM R5,R8,XSAVE SAVE REGS 58140020 SR R6,R6 ZERO REGISTER SIX 58200020 AH R6,TDACHKC ADD TOTAL DATA CHKS CORR 58260020 AH R6,TDACHKR ADD TOTAL DATA CHKS RETRY 58320020 AH R6,TSKCHK ADD TOTAL SEEK CHKS 58380020 AH R6,TSTAT ADD TOTAL STATISTICAL 58440020 XC READYP(L8),READYP CLEAR UNPACK BUFFER 58500020 B CONV2 GO TO CONVERT TO PRINT 58560020 * 58620020 TOTALNO2 STM R5,R8,XSAVE SAVE REGS 58680020 SR R6,R6 ZERO REGISTER SIX 58740020 AH R6,TBUSOPA ADD TOTAL BUS OUT PARITY A44064 58770000 AH R6,TEQCNT ADD TOTAL EQ CHK CNTRL UNTI TEMP 58800020 AH R6,TEQCNP ADD TOTAL EQ CHK CNTRL UNTI PERM 58860020 AH R6,TEQDRT ADD TOTAL EQ CHK DRIVE TEMP 58920020 AH R6,TEQDRP ADD TOTAL EQ CHK DRIVE PERM 58980020 AH R6,TDATCHP ADD TOTAL DATA CHK PERM 59040020 AH R6,TOVERRN ADD TOTAL OVERRUN 59100020 AH R6,TINVTRKF ADD TOTAL INVALID TRACK FORMAT 59160020 XC READYP(L8),READYP CLEAR UNPACK AREA 59220020 B CONV2 GO TO CONVERT TO PRINT 59280020 * 59340020 * SET HEX -PRINTS 1 CHAR HEX 59400020 * 59460020 SETHEX STM R5,R8,XSAVE SAVE REGS 59520020 LA R8,CHARS CHARACTER TABLE POINTER 59580020 IC R7,L0(R4) PICK UP CHARACTER 59640020 SLL R7,L24 MOVE TO HI R7 59700020 SR R6,R6 CLEAR REGS 59760020 SLDL R6,L4 MOVE FOUR BITS 59820020 AR R6,R8 ADD OFFSET AND POINTER 59880020 MVC L0(L1,R3),L0(R6) MOVE CHARACTER TO LINE 59940020 SR R6,R6 CLEAR AGAIN 60000020 SLDL R6,L4 MOVE LAST 4 BITS 60060020 AR R6,R8 COMPUTE OFFSET 60120020 MVC L1(L1,R3),L0(R6) MOVE LAST CHARACTER 60180020 B RETURN 60240020 * 60300020 * TEST TO SEE IF RECORD IS IN AR-149 FORMAT 60360020 * 60420020 SETCONV TM L0(R4),HEX02 HAS RECORD BEEN CONVERTED KEY32 60480020 BCR ON,R14 YES RETURN 60540020 SR R15,R15 NO CLEAR R15 FOR NO PRINT OF 60600020 BR R14 LINE 60660020 ON EQU 1 60720020 HEX02 EQU X'02' 60780020 * 60840020 * NO OP RETURN 60900020 * 60960020 SKIPPER BR R14 61020020 * 61080020 * TO ADD SPACES ON LINE 61140020 * 61200020 * 61260020 * RESTORE REGISTERS USED BY ROUTINES IN THIS MODULE 61320020 * 61380020 RETURN LM R5,R8,XSAVE RESTORE REGS 61440020 BR R14 RETURN 61500020 TEST5 TM L0(R4),H50 61560020 BO TEST5ON 61620020 BR R14 61680020 TEST5ON SR R15,R15 61740020 BR R14 61800020 * 61804000 * CHECK FOR CPU AND SERIAL NUMBER 61808000 * 61812000 SETCPUNO STM R5,R8,XSAVE SAVE REGS S21926 61816000 SR R5,R5 CLEAR REG 5 S21926 61820000 IC R5,L0(R4) PICK UP MODEL NUMBER S21926 61824000 SLL R5,L8 INTO S21926 61828000 IC R5,L1(R4) R5 S21926 61832000 LTR R5,R5 TEST FOR ZERO S21926 61836000 BNZ RETURN RETURN S21926 61840000 LR R5,R3 PUT LINE ADDRESS IN R5 S21926 61844000 LA R6,L46 OFFSET IN REG 6 S21926 61848000 SR R5,R6 SUBTRACT OFFSET FROM POINTER 61860000 MVC L0(L9,R5),UNIVERS PUT IN UNIVERSAL S21926 61870000 MVC L23(L6,R5),NONE PUT IN NONE S21926 61880000 B RETURN RETURN 61890000 * 61900000 * SET THE DATE READY FOR PRINT 61920020 * 61980020 SETDATE UNPK XSAVE(L8),L1(L3,R4) UNPACK THE DATE 62040020 MVC L0(L3,R3),XSAVE+L5 MOVE DAY 62100020 MVC L6(L2,R3),XSAVE+L3 MOVE YEAR 62160020 BR R14 62220020 * 62280020 * 62340020 * SET PROGRAM NAME TO PRINT LINE 62400020 * 62460020 SETPGMN MVC L0(L8,R3),L0(R4) MOVE 8 CHARS TO LINE 62520020 BR R14 RETURN 62580020 * 62640020 * SET BINARY WITH R4 POINTING TO THE CHAR 62700020 * 62760020 SETBIN2 STM R5,R8,XSAVE 62820020 IC R7,L0(R4) 62880020 SLL R7,L24 62940020 LR R8,R3 63000020 LA R5,L8 63060020 S R8,ELEVEN 63120020 B SETBINA 63180020 SETBIN STM R5,R8,XSAVE SAVE REGS 63240020 IC R7,L0(R4) PICK UP CHAR TO PRINT 63300020 SLL R7,L24 MOVE IT TO HI OF R7 63360020 LR R8,R3 PRINT POS POINTER TO REG8 63420020 LA R5,L8 LOOP COUNT 63480020 SETBINA SR R6,R6 CLEAR REG 6 63540020 SLDL R6,L1 MOVE BIT TO R6 63600020 STC R6,L0(R8) PUT IT INTO PRINT LINE 63660020 MVZ L0(L1,R8),CHAR0 63720020 LA R8,L1(R8) MOVE POINTER TO NEXT POS 63780020 BCT R5,SETBINA LOOP TILL 8 PRINTED 63840020 B RETURN 63900020 * CONVERT COUNTERS FROM HEX TO DECIMAL READY FOR PRINT 63960020 * 64020020 CONV1 STM R5,R8,XSAVE SAVE REGISTERS 64080020 XC READYP(L8),READYP CLEAR UNPACK BUFFER 64140020 SR R6,R6 ZERO REG 64200020 LH R6,L0(R4) LOAD DATA TO BE CONVERTED 64260020 CONV2 CVD R6,READYP CONVERT ERRORCNTRTO DECI 64320020 UNPK READYP(L5),READYP+L5(L3) UNPACK DECI COUNT 64380020 OI READYP+L4,CLRSGN CLEAR SIGN 64440020 MVC L0(L4,R3),READYP+L1 MOVE COUNTER READY TO PRINT 64500020 B RETURN 64560020 * 64620020 DRIEPH STM R5,R8,XSAVE SAVE REGISTERS 64680020 LA R5,DRIVTBLE ADDRESS OF TABLE TO IDENT DRIVES 64740020 LA R6,L7 NUMBER OF POSSIBILITIES 64800020 DRIEPH1 CLC L0(L1,R4),L0(R5) IS BYTE4 EQUAL TO DRIVE A, ETC. 64860020 BE DRIEPH2 YES 64920020 LA R5,L2(R5) UP POINTER TO LOOK AT NEXT DRV 64980020 BCT R6,DRIEPH1 LOOP 65040020 MVC L0(L4,R3),NONE NONE MATCH MOVE IN NONE 65100020 B RETURN RETURN 65160020 DRIEPH2 MVC L0(L1,R3),L1(R5) MOVE PHYSICAL DRIVE ID 65220020 B RETURN RETURN 65280020 SETVOL MVC L0(L6,R3),L0(R4) MOVE VOLUME LABEL FOR PRINT 65340020 BR R14 RETURN 65400020 * 65460020 CPUH TM L0(R4),HC0 65520020 BO CPUH3 65580020 BZ CPUH0 65640020 TM L0(R4),H80 IS THIS CONTROL UNIT 2 65700020 BO CPUH2 65760020 TM L0(R4),H40 IS THIS CONTROL UNIT 1 65820020 BO CPUH1 65880020 BR R14 RETURN 65940020 * 66000020 CPUH3 MVC L0(L1,R3),CHARS+L3 66060020 BR R14 66120020 CPUH0 MVC L0(L1,R3),CHARS 66180020 BR R14 66240020 CPUH2 MVC L0(L1,R3),CHARS+L2 66300020 BR R14 66360020 CPUH1 MVC L0(L1,R3),CHARS+L1 66420020 BR R14 66480020 PRVOLS STM R4,R8,XSAVEV 66540020 LR R5,R3 66600020 CLC L0(L6,R4),ZEROS 66660020 BE NORETVOL 66720020 * 66780020 MVC L0(L6,R5),L0(R4) MOVE INTO PRINT VOLID 66840020 LA R4,L6(R4) POINT TO TOTAL SEEKS 66900020 LA R5,L13(R5) 66960020 MVC READYP(L4),L0(R4) MOVE SEEKS TO BOUNDRY @SL21926 67020021 L R6,READYP LOAD INTO REG @SL21926 67110021 SRL R6,L10 REDUCE TO 'X1000' @SL21926 67200021 L R7,TOTSKS LOAD TOTAL SEEKS @SL21926 67290021 AR R7,R6 ADD THIS CNT TO TOTAL @SL21926 67380021 ST R7,TOTSKS SAVE TOTAL @SL21926 67470021 BAL R8,CONVH3 PUT SEEKS IN PRINT LINE @SL21926 67560021 * @SL21926 67650021 LA R4,L4(R4) BUMP CNTR PTR @SL21926 67740021 SPACE 1 @SL21926 67830021 LH R6,L0(R4) LOAD SEEK ERRS @SL21926 67920021 LH R7,TOTSKERS LOAD TOTAL SEEK ERRS @SL21926 68010021 AR R7,R6 ADD THIS VOL TO TOTAL @SL21926 68100021 STH R7,TOTSKERS SAVE NEW TOTAL @SL21926 68190021 BAL R8,CONVH2 PUT SEEK ERRS IN PRINT @SL21926 68280021 * @SL21926 68370021 LA R4,L2(R4) BUMP CNTR PTR @SL21926 68460021 SPACE 1 @SL21926 68550021 LH R6,L0(R4) LOAD BYT RD OVERFLOW CNTR 68640021 MVC READYP(L4),L2(R4) MOVE BYT RD TO BOUNDRY @SL21926 68730021 L R7,READYP LOAD INTO REG @SL21926 68820021 SRDL R6,L20 REDUCE TO MEGABYTES @SL21926 68910021 LR R6,R7 LOAD IN OTHER REG @SL21926 69000021 L R7,TOTMEGRD LOAD TOTAL @SL21926 69090021 AR R7,R6 ADD THIS VOL TO TOTAL @SL21926 69180021 ST R7,TOTMEGRD SAVE NEW TOTAL @SL21926 69270021 ST R6,SAVMEG SAVE MEG READ @SL21926 69360021 BAL R8,CONVH2 PUT MEG READ IN PRINT @SL21926 69450021 * @SL21926 69540021 LA R4,L6(R4) BUMP CNTR PTR @SL21926 69630021 SPACE 1 @SL21926 69720021 MVC READYP(L4),L0(R4) MOVE RETRY READ ERRS @SL21926 69810021 L R6,READYP LOAD COUNT @SL21926 69900021 BAL R8,CONVH2 PUT COUNT IN PRINT @SL21926 69990021 LTR R6,R6 ANY COUNT ?? @SL21926 70080021 BNZ GETRETRD YES - BR @SL21926 70170021 * @SL21926 70260021 MVC L13(L5,R5),NA PUT N/A FOR MEG RD/R.ERR 70350021 LA R5,L13(R5) BUMP PRINT POS PTR @SL21926 70440021 B CHKCORRD BR TO PROCESS CORR READ @SL21926 70530021 * @SL21926 70620021 GETRETRD DS 0H @SL21926 70710021 L R7,TOTRETRD LOAD TOTAL RETRY READ ER 70800021 AR R7,R6 ADD THIS VOL CNT TO TOT @SL21926 70890021 ST R7,TOTRETRD SAVE TOTAL @SL21926 70980021 * @SL21926 71070021 L R7,SAVMEG LOAD MEG READ @SL21926 71160021 LR R8,R6 LOAD RETRY READ ERRS @SL21926 71250021 SR R6,R6 CLEAR REG @SL21926 71340021 DR R6,R8 DIVIDE MEG READ/RET RD @SL21926 71430021 LR R6,R7 LOAD QUOTIENT @SL21926 71520021 BAL R8,CONVH2 PUT RESULT IN PRINT @SL21926 71610021 SPACE 1 @SL21926 71700021 CHKCORRD DS 0H @SL21926 71790021 LA R4,L4(R4) BUMP CNTR PTR @SL21926 71880021 MVC READYP(L4),L0(R4) MOVE CORR RD ERRS @SL21926 71970021 L R6,READYP LOAD COUNT @SL21926 72060021 BAL R8,CONVH2 COUNT TO PRINT @SL21926 72150021 LTR R6,R6 WAS COUNT ZERO ? @SL21926 72240021 BNZ GETCORRD NO - BR TO HANDLE @SL21926 72330021 * @SL21926 72420021 MVC L13(L5,R5),NA MOVE N/A FOR MEG/CORR RD 72510021 B RETVOL BR TO RETURN @SL21926 72600021 * @SL21926 72690021 GETCORRD DS 0H @SL21926 72780021 L R7,TOTCORRD LOAD TOTAL SO FAR @SL21926 72870021 AR R7,R6 ADD THIS VOL TO TOTAL @SL21926 72960021 ST R7,TOTCORRD SAVE NEW TOTAL @SL21926 73050021 * @SL21926 73140021 L R7,SAVMEG LOAD MEG READ @SL21926 73230021 LR R8,R6 LOAD CORR READ ERRS @SL21926 73320021 SR R6,R6 CLEAR REG @SL21926 73410021 DR R6,R8 DIVIDE MEG READ/COR RD @SL21926 73500021 LR R6,R7 LOAD QUOTIENT @SL21926 73590021 BAL R8,CONVH2 PUT IN PRINT LINE @SL21926 73680021 B RETVOL BR TO RETURN @SL21926 73770021 SPACE 2 @SL21926 73860021 * 74160020 CONVH LA R4,L2(R4) BUMP POINTER TO BUFFER 74220020 CONVH1 DS 0H @SL21926 74280021 MVC READYP(L2),L0(R4) 74340020 SR R6,R6 74400020 LH R6,READYP 74460020 CONVH2 DS 0H @SL21926 74480021 LA R5,L13(R5) BUMP PRINT POS PTR @SL21926 74500021 CONVH3 XC READYP(L8),READYP 74520020 CVD R6,READYP 74580020 UNPK READYP(L5),READYP+L5(L3) 74640020 OI READYP+L4,CLRSGN 74700020 MVC L0(L5,R5),READYP 74760020 BR R8 74820020 * 74880020 * 75420020 EJECT @SL21926 75480021 * @SL21926 75520021 * THE FOLLOWING INITIALIZES THE TOTALS FOR THE VOLID SUMMARY 75560021 * @SL21926 75600021 GETTOTS DS 0H @SL21926 75640021 STM R4,R8,XSAVEV SAVE REGS @SL21926 75680021 LR R5,R3 LOAD PRINT POS PTR @SL21926 75720021 SPACE 1 @SL21926 75760021 L R6,TOTSKS LOAD TOTAL SEEKS @SL21926 75800021 BAL R8,CONVH3 PUT IN PRINT LINE @SL21926 75840021 SPACE 1 @SL21926 75880021 LH R6,TOTSKERS LOAD TOTAL SEEK ERRORS @SL21926 75920021 BAL R8,CONVH2 PUT IN PRINT LINE @SL21926 75960021 SPACE 1 @SL21926 76000021 L R6,TOTMEGRD LOAD TOTAL MEG. READ @SL21926 76040021 BAL R8,CONVH2 PUT IN PRINT LINE @SL21926 76080021 SPACE 1 @SL21926 76120021 L R6,TOTRETRD LOAD TOTAL RETRY READ ERS 76160021 BAL R8,CONVH2 PUT IN PRINT LINE @SL21926 76200021 SPACE 1 @SL21926 76240021 LTR R6,R6 WERE THERE RETRY RD ERRS 76280021 BZ NORETRD NO - BR @SL21926 76320021 L R7,TOTMEGRD LOAD TOTAL MEG READ @SL21926 76360021 LR R8,R6 LOAD RETRY READ ERRS @SL21926 76400021 SR R6,R6 CLEAR REG @SL21926 76440021 DR R6,R8 DIVIDE MEG RD/RET RD @SL21926 76480021 LR R6,R7 LOAD QUOTIENT @SL21926 76520021 BAL R8,CONVH2 PUT IN PRINT LINE @SL21926 76560021 B GETCRTOT BR TO CONTINUE @SL21926 76600021 * @SL21926 76640021 NORETRD DS 0H @SL21926 76680021 LA R5,L13(R5) BUMP PRINT POS PTR @SL21926 76720021 MVC L0(L5,R5),NA MOVE N/A TO PRINT LINE @SL21926 76760021 SPACE 1 @SL21926 76800021 GETCRTOT DS 0H @SL21926 76840021 L R6,TOTCORRD LOAD CORR READ ERR TOTAL 76880021 BAL R8,CONVH2 PUT IN PRINT LINE @SL21926 76920021 SPACE 1 @SL21926 76960021 L R8,TOTCORRD LOAD CORR READ TOTAL @SL21926 77000021 LTR R8,R8 IS IT ZERO ? @SL21926 77040021 BZ NOCORRD YES - BR @SL21926 77080021 * @SL21926 77120021 L R7,TOTMEGRD LOAD MEG READ TOTAL @SL21926 77160021 SR R6,R6 CLEAR REG @SL21926 77200021 DR R6,R8 DIVIDE MEG RD/CORR RD @SL21926 77240021 LR R6,R7 LOAD QUOTIENT @SL21926 77280021 BAL R8,CONVH2 PUT IN PRINT LINE @SL21926 77320021 B CLRTOTS BR TO CONTINUE @SL21926 77360021 * @SL21926 77400021 NOCORRD DS 0H @SL21926 77440021 MVC L13(L5,R5),NA MOVE N/A TO PRINT @SL21926 77480021 SPACE 1 @SL21926 77520021 CLRTOTS DS 0H @SL21926 77560021 XC TOTSKS(TLEN),TOTSKS CLEAR ALL TOTAL AREAS @SL21926 77600021 B RETVOL BR TO RETURN @SL21926 77640021 EJECT @SL21926 77680021 * 77820020 GETABCDC STM R4,R8,XSAVEV SAVE REGS S99237 77880021 LR R5,R3 77940020 LA R7,L4 NO. OF POSSIBLE CHANNELS S99237 78000021 SETCHCMD MVC READYP(L2),L0(R4) MOVE IN NO. OF CMD OVERUN S99237 78060021 LH R6,READYP 78120020 BAL R8,CONVH3 78180020 * 78240020 LA R4,L4(R4) BUMP PNTR TO NEXT CMD CNTRS99237 78300021 LA R5,L29(R5) BUMP PNTR TO NEXT PRNT POSS99237 78400021 BCT R7,SETCHCMD BRANCH IF THERE ARE MORE S99237 78500021 * 78600020 B RETVOL 78660020 * 78720020 GETABCDD STM R4,R8,XSAVEV SAVE REGS S99237 78780021 LR R5,R3 78840020 LA R7,L4 NO. OF POSSIBLE CHANNELS S99237 78900021 SETCHDTA MVC READYP(L2),L0(R4) MOVE IN NO OF DATA OVER. S99237 78960021 LH R6,READYP 79020020 BAL R8,CONVH3 79080020 * 79140020 LA R4,L4(R4) BUMP PNTR TO NEXT DTA CTR S99237 79200021 LA R5,L29(R5) BUMP PNTR TO NEXT PRNT POSS99237 79300021 BCT R7,SETCHDTA BRANCH IF THERE ARE MORE S99237 79400021 * 79500020 B RETVOL 79560020 * 79620020 RETVOL LM R4,R8,XSAVEV 80220020 BR R14 80280020 * 80340020 NORETVOL LM R4,R8,XSAVEV 80400020 SR R15,R15 80460020 BR R14 80520020 * 80580020 THEEND STM R14,R12,L12(R13) SAVE ALL REGS S21926 80640000 LR R12,R13 SAVE THE SAVE ADDRESS S21926 80670000 LA R13,FSAVE POINT TO MY SAVE S21926 80700000 ST R12,L4(R13) SET CHAINING POINTERS S21926 80730000 ST R13,L8(R12) S21926 80760000 L R3,L4(R2) PICK UP POINTER TO NEXT COUNTER 80790000 ST R3,L28(R12) SAVE POINTER IN REG SAVE S21926 80820000 LH R0,SIZE PICK UP SIZE OF AREA S21926 80850000 LR R1,R2 SET ADDRESS S21926 80880000 FREEMAIN R,LV=(0),A=(1) S21926 80910000 LTR R3,R3 ANY MORE COUNTERS S21926 80940000 BZ RETURNO NO RETURN S21926 80946000 LA R5,PENTRY+L10 POINT TO TOP ENTRY LESS 4 S21926 80952000 ST R5,YR9PTR S21926 80958000 LA R5,LABELS-L1 POINT TO FIRST LABEL LESS 1 80964000 ST R5,YLABEL STORE IT IN TABLE S21926 80970000 RETURNO L R13,L4(R13) PICK UP & S21926 80976000 LM R14,R12,L12(R13) RESTORE REGS S21926 80982000 BR R14 80988000 * 81000020 DRIVTBLE DC X'38' 81060020 DC C'A' 81120020 DC X'31' 81180020 DC C'B' 81240020 DC X'2A' 81300020 DC C'C' 81360020 DC X'23' 81420020 DC C'D' 81480020 DC X'1C' 81540020 DC C'E' 81600020 DC X'15' S20201 81660021 DC C'F' 81720020 DC X'0E' 81780020 DC C'G' 81840020 DC X'07' 81900020 DC C'H' 81960020 SIZE DC H'662' 82020020 DS 0F 82080020 XSAVE DC 5F'0' 82140020 FSAVE DS 18F 82170000 * 82200020 SPACE 2 @SL21926 82500021 TOTSKS DC F'0' @SL21926 82550021 TOTMEGRD DC F'0' @SL21926 82600021 SAVMEG DC F'0' SAVE AREA FOR MEG READ @SL21926 82650021 TOTRETRD DC F'0' @SL21926 82700021 TOTCORRD DC F'0' @SL21926 82750021 TOTSKERS DC H'0' @SL21926 82800021 * @SL21926 82850021 TLEN EQU *-TOTSKS LENGTH OF TOTALS AREA @SL21926 82900021 SPACE 2 82950021 WORKAREA DS D 82980020 INTERMIX DS F 83040020 SIX DC F'6' 83100020 FOUR DC F'4' 83160020 ZEROS DC 5F'0' 83220020 XSAVEV DC 5F'0' 83280020 XSAVED DC 5F'0' 83340020 NA DC C'N/A ' 83400020 NONE DC CL6'NONE ' 83460020 CHARS DC C'0123456789ABCDEF' 83520020 CHAR0 DC C'0' 83580020 UNIVERS DC C'UNIVERSAL' 83640020 DEVTABLE DC X'2009' 83700020 DC C'3330' 83760020 DS 0D 83820020 READYP DC CL8' ' 83880020 ELEVEN DC F'11' 83940020 TPRLABEL DC XL1'FF' 84000020 DC XL2'0000' 84060020 DC XL2'0000' 84120020 DC XL2'0000' 84180020 PENTRY DS 0F 84240020 DC X'0001001' 84300020 DC X'0001001' 84360020 DC A(LABELS) 84420020 DC H'0' 84480020 DC X'01' 84540020 DC X'000B8B00' 84600020 LABEL ' ' 84660020 LINE (85,23),(1,19),SKIP=2 84720000 LABEL 'SUMMARY OF I/O RECO','RDS TYPE -OBR- ','SOURCE - OUC84750000 TBOARD ',' DEVICE TYPE 3330 ',' MODEL-',' SERIAL NO.' 84780000 HEX YCPU,0,2B 84810000 HEX YSER,0,3B 84840000 ROUTINE YCPU,SETCPUNO 84870000 * 84960020 LINE ,(13,13),SKIP=1 85020020 ROUTINE YDUMA,SKIPPER 85080020 LABEL 'DAY YEAR','DAY YEAR' 85140020 LINE (13,13),(1,21),SKIP=2 85200020 ROUTINE TDAY1,SETDATE 85260020 ROUTINE TDAY2,SETDATE 85320020 LABEL 'DATE RANGE-','TO' 85380020 * 85440020 LINE (41,34),(11,40) 85500020 HEX YCUA,0,3B 85560020 ROUTINE YNOREC,CONV1 85620020 LABEL 'PHYSICAL CHANNEL UNIT ADDRESS','TOTAL NUMBER OF RECORDSC85680020 ' 85740020 LINE ,(2,40) 85800020 ROUTINE YDUMA,SKIPPER 85860020 LABEL 'ERROR RECORD SUMMARY','ENVIRONMENTAL RECORD SUMMARY' 85920020 LINE (23,1),(3,40),SKIP=1 85980020 ROUTINE TBUSOPA,CONV1 86040020 LABEL 'BUS OUT PARITY','LOGGING MODE' 86100020 * 86160020 LINE ,(45,1) 86220020 ROUTINE YDUMA,SKIPPER 86280020 LABEL 'DATA CHECK' 86340020 LINE (60,1),(3,44) 86400020 ROUTINE TDACHKC,CONV1 86460020 LABEL 'EQUIPMENT CHECK','CORRECTABLE' 86520020 LINE (60,1),(5,42) 86580020 ROUTINE TDACHKR,CONV1 86640020 LABEL 'CONTROL UNIT','RETRY' 86700020 LINE (23,1),(7,1) 86760020 ROUTINE TEQCNT,CONV1 86820020 LABEL 'TEMPORARY' 86880020 LINE (23,37),(7,38) 86940020 ROUTINE TEQCNP,CONV1 87000020 ROUTINE TSKCHK,CONV1 87060020 LABEL 'PERMANENT','SEEK CHECK' 87120020 LINE ,(5,1) 87180020 ROUTINE YDUMA,SKIPPER 87240020 LABEL 'DRIVE' 87300020 LINE (23,37),(7,36) 87360020 ROUTINE TEQDRT,CONV1 87420020 ROUTINE TSTAT,CONV1 87480020 LABEL 'TEMPORARY','STATISTICAL' 87540020 LINE (23,1),(7,1) 87600020 ROUTINE TEQDRP,CONV1 87660020 LABEL 'PERMANENT' 87720020 LINE (60,1),(43,1) 87780020 ROUTINE YDUMA,TOTALNO1 87840020 LABEL 'TOTAL' 87900020 LINE (23,1),(3,1),SKIP=2 87960020 ROUTINE TDATCHP,CONV1 88020020 LABEL 'DATA CHK-PERMANENT' 88080020 LINE 88140020 ROUTINE TOVERRN,CONV1 88200020 LABEL 'OVERRUN' 88260020 LINE 88320020 ROUTINE TINVTRKF,CONV1 88380020 LABEL 'INVALID TRACK FMT' 88440020 LINE 88500020 ROUTINE YDUMA,TOTALNO2 88560020 LABEL 'TOTAL' 88620020 LINE ,(1,1) 88680020 ROUTINE YDUMA,SKIPPER 88740020 LABEL 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC88800020 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' 88860020 LINE ,(1,71) 88920020 ROUTINE YDUMA,SKIPPER 88980020 LABEL 'SUMMARY OF I/O STATISTICAL RECORDS BY VOLUME ID','DEVICC89040020 E TYPE 3330' 89100020 LINE (33,42),(11,40),SKIP=2 89160000 HEX YCUA,0,3B 89190000 ROUTINE TSTAT,CONV1 89220000 LABEL 'PHYSICAL DRIVE','TOTAL NUMBER OF RECORDS' 89250000 LINE ,(2,13),SKIP=1 89580020 ROUTINE YDUMA,SKIPPER 89640020 LABEL 'VOLUME ID','TOTAL','ACCESS','TOTAL','RETRY','MEGABYTES'C89700020 ,'CORRECTABLE','MEGABYTES' 89760020 LINE 89820020 ROUTINE YDUMA,SKIPPER 89880020 LABEL ,'ACCESSES','ERRORS','MEGABYTES','READ','READ/RETRY','REC89940020 AD','READ/CORR' 90000020 LINE ,,SKIP=2 90060020 ROUTINE YDUMA,SKIPPER 90120020 LABEL ,'(X1000)',,'READ','ERRORS','ERROR','ERRORS','ERRORS' 90180020 * 90240020 LINE (3,13),(1,1),SKIP=1 90300020 ROUTINE TVOLID1,PRVOLS 90360020 LABEL ' ' 90420020 LINE 90480020 ROUTINE TVOLID2,PRVOLS 90540020 LABEL ' ' 90600020 LINE 90660020 ROUTINE TVOLID3,PRVOLS 90720020 LABEL ' ' 90780020 LINE 90840020 ROUTINE TVOLID4,PRVOLS 90900020 LABEL ' ' 90960020 LINE 91020020 ROUTINE TVOLID5,PRVOLS 91080020 LABEL ' ' 91140020 LINE 91200020 ROUTINE TVOLID6,PRVOLS 91260020 LABEL ' ' 91320020 LINE 91380020 ROUTINE TVOLID7,PRVOLS 91440020 LABEL ' ' 91500020 LINE 91560020 ROUTINE TVOLID8,PRVOLS 91620020 LABEL ' ' 91680020 LINE 91740020 ROUTINE TVOLID9,PRVOLS 91800020 LABEL ' ' 91860020 LINE 91920020 ROUTINE TVOLID10,PRVOLS 91980020 LABEL ' ' 92040020 LINE 92100020 ROUTINE TVOLID11,PRVOLS 92160020 LABEL ' ' 92220020 LINE 92280020 ROUTINE TVOLID12,PRVOLS 92340020 LABEL ' ' 92400020 LINE 92460020 ROUTINE TVOLID13,PRVOLS 92520020 LABEL ' ' 92580020 LINE 92640020 ROUTINE TVOLID14,PRVOLS 92700020 LABEL ' ' 92760020 LINE 92820020 ROUTINE TVOLID15,PRVOLS 92880020 LABEL ' ' 92940020 LINE 93000020 ROUTINE TVOLID16,PRVOLS 93060020 LABEL ' ' 93120020 LINE 93180020 ROUTINE TVOLID17,PRVOLS 93240020 LABEL ' ' 93300020 LINE 93360020 ROUTINE TVOLID18,PRVOLS 93420020 LABEL ' ' 93480020 LINE 93540020 ROUTINE TVOLID19,PRVOLS 93600020 LABEL ' ' 93660020 LINE 93720020 ROUTINE TVOLID20,PRVOLS 93780020 LABEL ' ' 93840020 LINE 93900020 ROUTINE TVOLID21,PRVOLS 93960020 LABEL 'ALL OTHRS' 94020020 LINE 94080020 ROUTINE YDUMA,SKIPPER 94140020 LABEL ' ' 94200020 LINE (16,13),(3,1),SKIP=2 94260020 ROUTINE YDUMA,GETTOTS 94320020 LABEL 'TOTALS' 94380020 * 94440020 LINE ,(2,29),SKIP=1 S99237 94500021 ROUTINE YDUMA,SKIPPER 94560020 LABEL 'TOTAL OVERRUNS CHNL A','TOTAL OVERRUNS CHNL B','TOTALC94620021 OVERRUNS CHNL C','TOTAL OVERRUNS CHNL D' S99237 94660021 LINE (21,29),(12,29) S99237 94700021 ROUTINE TOCACA,GETABCDC S99237 94740021 LABEL 'COMMAND','COMMAND','COMMAND','COMMAND' S99237 94800021 LINE 94860020 ROUTINE TOCADA,GETABCDD S99237 94920021 LABEL 'DATA','DATA','DATA','DATA' S99237 94980021 LINE ,(1,1) 95040020 ROUTINE YDUMA,THEEND 95100020 LABEL ' ' 95160020 DC X'FF' 95220020 DC XL2'0000' 95280020 DC XL2'0018' 95340020 DC XL2'0000' 95400020 * 95460020 DC C'$' 95490000 LABELS EQU * 95520020 LSTART 95580020 END 95640020 ./ ADD SSI=02011368,NAME=IFCSXXXD,SOURCE=0 TITLE 'IFCSXXXD - SUMMARY TABLE - LINKNAME=IFCST002, ALIASES=IC00030021 FCST012,IFCS2305' 00060021 SPACE 2 00090021 * LINE MACRO LINE MACRO LINE MACRO LINE MACRO * 00120021 MACRO 00150021 &NAME LINE &DATA,&LABEL,&SKIP= 00180021 .* THIS MACRO ESTABLISHES THE MARGINS OR 00210021 .* COLUMN SETTINGS FOR EACH LINE. IT 00240021 .* GENERATES NECESSARY CARRIAGE CONTROL 00270021 .* ENTRIES. LASTLY IT DETERMINES THE 00300021 .* NUMBER OF ENTRIES ASSOCIATED WITH 00330021 .* THE PREVIOUS LINE AND STORES THAT # 00360021 .* INTO THE APPROPRIATE BYTE. 00390021 .* &DATA(1) - CHARACTER POSITION TO BEGIN 00420021 .* DATA. 00450021 .* &DATA(2) - # OF SPACES BETWEEN SUCCESSIVE 00480021 .* DATA COLUMN STARTING CHARACTERS. 00510021 .* &LABEL(1) - CHAR. POS. TO BEGIN LABELS. 00540021 .* &LABEL(2) - # SPACES BETWEEN LINE'S LABEL 00570021 .* STARTING CHARACTERS. 00600021 .* &SKIP= - # OF LINES TO ADVANCE CARRIAGE 00630021 .* TO BEGIN NEXT PRINTED LINE. 00660021 .* NEW ENTRIES ARE GENERATED ONLY WHEN 00690021 .* NECESSARY. OMISSION OF ITEMS MEANS 00720021 .* THEY HAVE NOT CHANGED SINCE PREVIOUS 00750021 .* SETTINGS. A LINE MACRO IS REQUIRED 00780021 .* FOR EACH PRINTED LINE. IF NO SETTING 00810021 .* CHANGES ARE REQUIRED ALL OPERANDS 00840021 .* ARE OMITTED IN WHICH CASE ONLY THE 00870021 .* # OF ENTRIES FOR THE PREVIOUS LINE 00900021 .* IS COMPUTED. THIS MACRO MUST BE THE 00930021 .* FIRST MACRO INSTRUCTION ISSUED FOR 00960021 .* THE SUBJECT LINE 00990021 GBLA &DB,&DT,&LB,<,&NRENTS 01020021 GBLA &LASTCC,&INITIAL 01050021 GBLC &NRENTSX 01080021 GBLC &CARRCON 01110021 GBLB &TEST 01140021 LCLA &S 01170021 &NAME DS 0C 01200021 AIF (&INITIAL EQ 0).FIRSTLN 01230021 LINEND 01260021 AGO .NTFIRST 01290021 .FIRSTLN ANOP 01320021 &NRENTSX SETC 'N&SYSNDX' 01350021 &INITIAL SETA 1 01380021 N&SYSNDX EQU * 01410021 .NTFIRST ANOP 01440021 DC AL1(0) 01470021 AIF ('&DATA(1)' EQ '').CKDTABS 01500021 AIF (&DATA(1) EQ &DB).CKDTABS 01530021 &DB SETA &DATA(1) 01560021 AGO .AA 01590021 .CKDTABS AIF ('&DATA(2)' EQ '').NCDATA 01620021 AIF (&DATA(2) EQ &DT).NCDATA 01650021 AGO .CC 01680021 .AA AIF ('&DATA(2)' EQ '').BB 01710021 AIF (&DATA(2) EQ &DT).BB 01740021 .CC ANOP 01770021 &DT SETA &DATA(2) 01800021 .BB DC XL2'FFFE' 01830021 DC FL1'&DB' 01860021 DC FL1'&DT' 01890021 &NRENTS SETA &NRENTS+1 01920021 .NCDATA ANOP 01950021 AIF ('&LABEL(1)' EQ '').CKLTABS 01980021 AIF (&LABEL(1) EQ &LB).CKLTABS 02010021 &LB SETA &LABEL(1) 02040021 AGO .AAA 02070021 .CKLTABS AIF ('&LABEL(2)' EQ '').NCLABEL 02100021 AIF (&LABEL(2) EQ <).NCLABEL 02130021 AGO .CCC 02160021 .AAA AIF ('&LABEL(2)' EQ '').BBB 02190021 AIF (&LABEL(2) EQ <).BBB 02220021 .CCC ANOP 02250021 < SETA &LABEL(2) 02280021 .BBB DC XL2'FFFF' 02310021 DC FL1'&LB' 02340021 DC FL1'<' 02370021 &NRENTS SETA &NRENTS+1 02400021 .NCLABEL ANOP 02430021 AIF ('&SKIP' NE '').CONT 02460021 AIF (&TEST EQ 0).NOCHANG 02490021 &S SETA &LASTCC 02520021 AGO .DEFAULT 02550021 .CONT ANOP 02580021 AIF (&TEST EQ 0).AB 02610021 &S SETA &SKIP 02640021 .DEFAULT ANOP 02670021 ORG &CARRCON+3 02700021 DC AL.3(0),AL.2(&S),AL.3(1) 02730021 ORG 02760021 &LASTCC SETA &S 02790021 &TEST SETB 0 02820021 AGO .DD 02850021 .AB AIF (&SKIP EQ &LASTCC).NOCHANG 02880021 A&SYSNDX DC XL2'FFFB' 02910021 DC AL.3(0),AL.2(&SKIP),AL.3(1) 02940021 DC FL1'9' 02970021 &LASTCC SETA &SKIP 03000021 &TEST SETB 1 03030021 &CARRCON SETC 'A&SYSNDX' 03060021 &NRENTS SETA &NRENTS+1 03090021 .DD ANOP 03120021 .NOCHANG ANOP 03150021 MEND 03180021 EJECT 03210021 SPACE 2 03240021 * ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO ROUTINE MACRO* 03270021 MACRO 03300021 &NAME ROUTINE &LOGITEM,&RNAME 03330021 GBLC &DSECT,&CSECT 03360021 GBLC &ITEM(1000) 03390021 GBLA &SHIFT(1000),&ITEMNBR 03420021 GBLA &NRENTS 03450021 LCLA &ISHIFT,&NDX 03480021 .LOOP ANOP 03510021 &NDX SETA &NDX+1 03540021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 03570021 AIF (&NDX LT &ITEMNBR).LOOP 03600021 MNOTE *,'LOG ITEM NOT DEFINED' 03630021 MEXIT 03660021 .FOUND ANOP 03690021 &ISHIFT SETA &SHIFT(&NDX) 03720021 &NAME DC AL.12(&LOGITEM-&DSECT),XL.4'D' 03750021 DC AL.4(&ISHIFT),AL.12(&RNAME-&CSECT) 03780021 &NRENTS SETA &NRENTS+1 03810021 MEND 03840021 MACRO 03870021 &NAME LABEL &LABEL1,&LABEL2,&LABEL3,&LABEL4,&LABEL5,&LABEL6, C03900021 &LABEL7,&LABEL8 03930021 .* THIS MACRO ALLOWS UP TO ACHT LABELS TO 03960021 .* BE SPECIFIED FOR A GIVEN LINE. THE 03990021 .* LABELS SHOULD BE ENCLOSED IN QUOTA- 04020021 .* TION MARKS. THE COLUMN AND LINE END 04050021 .* CONTROLS WILL BE INSERTED BY THE 04080021 .* MACRO. OMITTED OPERANDS MEAN NO 04110021 .* LABEL REQUIRED FOR RESPECTIVE 04140021 .* COLUMN. THIS MACRO WILL ALSO ALERT 04170021 .* THE PROGRAMMER TO EXACTLY WHERE THE 04200021 .* TABLE MUST BE BROKEN IF NECESSARY 04230021 .* TO AVOID EXCEEDING THE MAXIMUM LIMIT 04260021 GBLC &LABELS(2000) 04290021 GBLC &LBL(100) 04320021 GBLA &LBLCTR(100) 04350021 GBLA &LABELNR 04380021 GBLA &NRENTS,&LPTR 04410021 LCLC &MARGIN,&TACK 04440021 LCLC &TEXT 04470021 LCLA &OP,&K,&START,&NRCHAR,&REMAIN 04500021 &MARGIN SETC '*' 04530021 AIF ('&NAME' EQ '').LOOPOUT 04560021 &LPTR SETA &LPTR+1 04590021 &LBL(&LPTR) SETC '&NAME' 04620021 &LBLCTR(&LPTR) SETA &LABELNR+1 04650021 .LOOPOUT ANOP 04680021 &OP SETA &OP+1 04710021 &K SETA K'&SYSLIST(&OP) 04740021 AIF (&K GE 2).NORM 04770021 &K SETA 2 04800021 .NORM ANOP 04830021 &START SETA 2 04860021 AIF (&OP LT N'&SYSLIST).NOTLAST 04890021 &MARGIN SETC '$' 04920021 .NOTLAST ANOP 04950021 &NRCHAR SETA 8 04980021 &TACK SETC '' 05010021 .LOOPIN ANOP 05040021 &REMAIN SETA &K-&START 05070021 AIF (&REMAIN GE 8).MORE 05100021 &TACK SETC '&MARGIN' 05130021 &NRCHAR SETA &REMAIN 05160021 .MORE ANOP 05190021 &TEXT SETC '' 05220021 AIF (&REMAIN EQ 0).ENDTEXT 05250021 &TEXT SETC '&SYSLIST(&OP)'(&START,&NRCHAR) 05280021 .ENDTEXT ANOP 05310021 &LABELNR SETA &LABELNR+1 05340021 &LABELS(&LABELNR) SETC '&TEXT'.'&TACK' 05370021 &START SETA &START+8 05400021 AIF ('&TACK' EQ '').LOOPIN 05430021 AIF ('&TACK' EQ '*').LOOPOUT 05460021 MEND 05490021 * DSGEN MACRO DSGEN MACRO DSGEN MACRO DSGEN MACRO * 05520021 SPACE 2 05550021 MACRO 05580021 &NAME DSGEN &X1,&X2,&X3,&X4,&X5,&X6,&X7,&X8,&X9,&X10,&X11,&X12,&X13,X05610021 &X14,&X15,&X16,&X17,&X18,&X19,&X20,&X21,&X22,&X23,&X24, X05640021 &X25,&X26,&X27,&X28,&X29,&X30,&X31,&X32 05670021 .* THIS MACRO GENERATES ONE DSECT WORD 05700021 .* FORMATTED FOR THE SUBJECT LOG RECORD 05730021 .* EACH OPERAND HAS TWO SUB LISTS. THE 05760021 .* FIRST IS THE NAME OF THE LOG ITEM 05790021 .* WHILE THE SECOND IS THE # OF BITS TO 05820021 .* ALLOCATE FOR THIS ITEM. ITEMS MUST 05850021 .* BE DEFINED CONTIGUOUSLY WITHOUT GAPS 05880021 .* UNUSED BIT GROUPS MUST BE GIVEN 05910021 .* DUMMY NAMES. THE NAMES PROVIDED FOR 05940021 .* THE LOG ITEMS MAY THEN BE USED IN 05970021 .* THE CONVERSION MACRO INSTRUCTIONS. 06000021 GBLC &ITEM(1000) 06030021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000) 06060021 LCLC &SYMBOL 06090021 LCLA &OP,&COUNT,&BYTE 06120021 .LOOP ANOP 06150021 &OP SETA &OP+1 06180021 &ITEMNBR SETA &ITEMNBR+1 06210021 &SYMBOL SETC '&SYSLIST(&OP,1)' 06240021 AIF ('&SYSLIST(&OP,2)' NE '').OK1 06270021 MNOTE *,'NULL BIT COUNT FIELD' 06300021 MEXIT 06330021 .OK1 ANOP 06360021 AIF ('&SYMBOL' NE '').OK 06390021 MNOTE 'LOG ITEM SYMBOL NOT PROVIDED' 06420021 AGO .CNT 06450021 .OK ANOP 06480021 AIF ('&SYMBOL'(1,1) EQ '''').CNT *TEMP* 06510021 &SYMBOL EQU *+&BYTE 06540021 &ITEM(&ITEMNBR) SETC '&SYSLIST(&OP,1)' 06570021 &BITS(&ITEMNBR) SETA &SYSLIST(&OP,2) 06600021 &SHIFT(&ITEMNBR) SETA &COUNT-&BYTE*8 06630021 .CNT ANOP 06660021 &COUNT SETA &COUNT+&SYSLIST(&OP,2) 06690021 &BYTE SETA &COUNT/8 06720021 AIF (&OP LT N'&SYSLIST).LOOP 06750021 AIF (&COUNT NE 32).NOT32 06780021 &NAME DS 4C 06810021 MEXIT 06840021 .NOT32 AIF (&COUNT NE 64).ERR 06870021 &NAME DS 8C 06900021 MEXIT 06930021 .ERR MNOTE '**BIT COUNT FIELDS DO NOT TOTAL 32 OR 64**' 06960021 MEND 06990021 MACRO 07020021 LINEND 07050021 .* THIS MACRO IS USED ONLY BY THE LINE 07080021 .* MACRO TO SET THE NUMBER OF ENTRIES 07110021 .* ASSOCIATED WITH EACH LINE. 07140021 GBLA &NRENTS 07170021 GBLC &NRENTSX 07200021 ORG &NRENTSX 07230021 DC FL1'&NRENTS' 07260021 ORG 07290021 &NRENTS SETA 0 07320021 B&SYSNDX EQU * 07350021 &NRENTSX SETC 'B&SYSNDX' 07380021 MEND 07410021 MACRO 07440021 LSTART 07470021 .* THIS MACRO IS ISSUED WHEN THE LABEL AREA 07500021 .* OF THE TABLE IS TO BEGIN. 07530021 GBLC &LABELS(2000) 07560021 GBLA &LABELNR 07590021 GBLC &LBL(100) 07620021 GBLA &LBLCTR(100) 07650021 LCLA &NDX,&CTR 07680021 LINEND 07710021 &CTR SETA 1 07740021 .LOOP ANOP 07770021 &NDX SETA &NDX+1 07800021 AIF (&LBLCTR(&CTR) NE &NDX).NOLBL 07830021 &LBL(&CTR) DC C'&LABELS(&NDX)' 07860021 &CTR SETA &CTR+1 07890021 AGO .LOOPCTL 07920021 .NOLBL ANOP 07950021 DC C'&LABELS(&NDX)' 07980021 .LOOPCTL AIF (&NDX LT &LABELNR).LOOP 08010021 MEND 08040021 SPACE 2 08070021 * BIN MACRO BIN MACRO BIN MACRO BIN MACRO BIN MACRO * 08100021 SPACE 2 08130021 MACRO 08160021 BIN &LOGITEM,&SKIP$OR 08190021 .* &LOGITEM - NAME OF ITEM IN LOG 08220021 .* RECORD DSECT 08250021 .* &SKIP$OR - NBR OF SPACES TO SKIP ON 08280021 .* MULTIPLE PRINT OR NBR OF SPACES 08310021 .* TO BACK UP FROM COLUMN FOR 08340021 .* START OF PRINTING. THE LETTER 08370021 .* B PRECEEDS THE NUMBER (B5) IF 08400021 .* THE LATTER IS DESIRED. OMISSION 08430021 .* OF THIS OPERAND FORCES OPTION 2 08460021 .* WITH BACKUP SPACING EQUAL TO 08490021 .* THE NUMBER OF BITS IN THE ITEM 08520021 .* DEFINITION (VIA MACRO 'DSGEN'). 08550021 .* A LIMIT OF 15 BITS IS IMPOSED FOR THE 08580021 .* TOTAL NUMBER OF BITS TO PRINT. 08610021 GBLC &ITEM(1000) 08640021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 08670021 GBLC &DSECT 08700021 LCLB &B 08730021 LCLA &IBITS,&NDX,&ISHIFT,&K 08760021 LCLA &TEMP,&T 08790021 LCLC &S 08820021 .LOOP ANOP 08850021 &NDX SETA &NDX+1 08880021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 08910021 AIF (&NDX LT &ITEMNBR).LOOP 08940021 MNOTE *,'YOU BLEW IT' 08970021 ROUTINE DUM,SKIPPER 09000021 MEXIT 09030021 .FOUND ANOP 09060021 &ISHIFT SETA &SHIFT(&NDX) 09090021 &IBITS SETA &BITS(&NDX) 09120021 &T SETA &IBITS-1 09150021 &B SETB 0 09180021 AIF ('&SKIP$OR' EQ '').BACKUP 09210021 &K SETA K'&SKIP$OR 09240021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 09270021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 09300021 &T SETA &S 09330021 .BACKUP ANOP 09360021 &NRENTS SETA &NRENTS+1 09390021 &TEMP SETA &ISHIFT 09420021 A&SYSNDX DC AL.12(&LOGITEM-&DSECT),XL.4'&TEMP' 09450021 AIF (&IBITS EQ 1 AND &B EQ 0).OUT 09480021 ORG A&SYSNDX 09510021 &B SETB 1 09540021 DC AL.12(&LOGITEM-&DSECT),XL.4'C' 09570021 DC BL.1'&B',AL.7(&T),AL.4(&IBITS),FL.4'&ISHIFT' 09600021 .OUT ANOP 09630021 MEND 09660021 EJECT 09690021 * HEX MACRO HEX MACRO HEX MACRO HEXN MACRO HEX MACRO * 09720021 SPACE 2 09750021 MACRO 09780021 HEX &LOGITEM,&SKIP$OR,&BYTES 09810021 .* THIS MACRO FACILITATES GENERATION OF THE 09840021 .* TABLE ENTRIES SPECIFYING HEX TYPE 09870021 .* CONVERSIONS. 09900021 .* &LOGITEM - NAME OF DATA ITEM TO BE 09930021 .* CONVERTED 09960021 .* &SKIP$OR - NUMBER OF SPACES TO SKIP ON 09990021 .* MULTIPLE PRINT OR NBR OF SPACES TO 10020021 .* BACK UP FROM COLUMN FOR START OF 10050021 .* PRINTING. THE LETTER B PRECEEDS THE 10080021 .* NUMBER (B8) IF THE LATTER OPTION IS 10110021 .* DESIRED. OMISSION OF THIS OPERAND 10140021 .* FORCES OPTION 2 WITH BACKUP SPACING 10170021 .* EQUAL TO THE NUMBER OF BYTES SPECI- 10200021 .* FIED BY THE NEXT OPERAND (TWICE THIS 10230021 .* NUMBER IF SUFFIX IS EXPLICITLY OR 10260021 .* IMPLICITLY B). 10290021 .* &BYTES - NUMBER OF TOTAL INPUT BYTES TO 10320021 .* PROCESS. THIS NUMBER IS SUFFIXED 10350021 .* WITH AN L,R, OR B TO STIPULATE 10380021 .* PRINTING OF THE LEFT HALF, RIGHT 10410021 .* HALF, OR BOTH HALVES OF THE BYTE 10440021 .* RESPECTIVELY. OMISSION OF THIS 10470021 .* OPERAND DEFAULTS TO B WITH THE NUM- 10500021 .* BER OF BYTES EQUAL TO THE ITEM LNGTH 10530021 .* A NEW ENTRY IS GENERATED ONLY WHEN NECES- 10560021 .* SARY. THIS MACRO MUST BE THE FIRST 10590021 .* MACRO INSTRUCTION ISSUED FOR THE 10620021 .* SUBJECT LINE(S). 10650021 GBLC &ITEM(1000),&DSECT 10680021 GBLA &ITEMNBR,&BITS(1000),&SHIFT(1000),&NRENTS 10710021 LCLB &B 10740021 LCLA &IBITS,&NDX,&ISHIFT,&K,&T,&CODE,&BYTESP 10770021 LCLC &S,&LETTER 10800021 .LOOP ANOP 10830021 &NDX SETA &NDX+1 10860021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 10890021 AIF (&NDX LT &ITEMNBR).LOOP 10920021 MNOTE *,'LOG ITEM NOT DEFINED' 10950021 MEXIT 10980021 .FOUND ANOP 11010021 &ISHIFT SETA &SHIFT(&NDX) 11040021 &IBITS SETA &BITS(&NDX) 11070021 &CODE SETA 1 11100021 &K SETA K'&BYTES 11130021 AIF (&IBITS-(&IBITS/4)*4 EQ 0).OK 11160021 MNOTE *,'BIT LENGTH SPECIFICATION INCONSISTENT WITH CONTROL' 11190021 MEXIT 11220021 .OK AIF ('&BYTES' EQ '').USEDEFN 11250021 &LETTER SETC '&BYTES'(&K,1) 11280021 &S SETC '&BYTES'(1,&K-1) 11310021 &BYTESP SETA &S 11340021 AIF ('&LETTER' EQ 'B').BOTH 11370021 AIF (&ISHIFT EQ 0 OR &ISHIFT EQ 4).OK2 11400021 .ERR MNOTE *,'DATA NOT ALLIGNED ON HEX OR BYTE BOUNDARY' 11430021 MEXIT 11460021 .USEDEFN ANOP 11490021 &BYTESP SETA &IBITS/8 11520021 .BOTH AIF (&ISHIFT NE 0).ERR 11550021 &CODE SETA 3 11580021 &T SETA &BYTESP*2-1 11610021 &S SETC '&T' 11640021 .OK2 AIF (&ISHIFT EQ 0).L 11670021 &CODE SETA 2 11700021 .L ANOP 11730021 &B SETB 1 11760021 AIF ('&SKIP$OR' EQ '').BACKUP 11790021 &K SETA K'&SKIP$OR 11820021 &B SETB ('&SKIP$OR'(1,1) EQ 'B') 11850021 &S SETC '&SKIP$OR'(&B+1,&K-&B) 11880021 .BACKUP ANOP 11910021 &NRENTS SETA &NRENTS+1 11940021 DC AL.12(&LOGITEM-&DSECT),XL.4'A' 11970021 DC BL.1'&B',FL.7'&S',FL.4'&BYTESP',FL.4'&CODE' 12000021 .OUT ANOP 12030021 MEND 12060021 MACRO 12090021 SPECIAL &ROUTINE,&PARAM,&SPACE= 12120021 .* THIS MACRO GENERATES A SPECIAL ROUTINE 12150021 .* ENTRY TO BE PROCESSED BY THE SUM. M. 12180021 .* &ROUTINE - SYMBOL ON SPECIAL ROUTINE EWT. 12210021 .* &PARAM - AN 8 BIT BINARY REPRESENTATION 12240021 .* TO OCCUPY THE 'MASK' FIELD BUT TO BE 12270021 .* INTERPRETED AS AN ARGUMENT OF THE 12300021 .* SPECIAL ROUTINE. 12330021 .* &SPACE - THE NUMBER OF 2BYTE COUNTERS TO 12360021 .* ALLOCATE FOR REQUIRED PROCESSING. 12390021 GBLC &CSECT 12420021 GBLA &COUNTR 12450021 LCLA &ADD 12480021 DC AL1(128) 12510021 DC BL.8'&PARAM' 12540021 DC AL2(&ROUTINE-&CSECT) 12570021 DC AL2(&COUNTR) 12600021 &ADD SETA 1 12630021 AIF ('&SPACE' EQ '').NORM 12660021 &ADD SETA &SPACE 12690021 .NORM ANOP 12720021 &COUNTR SETA &COUNTR+&ADD 12750021 MEND 12780021 MACRO 12810021 SUM &LOGITEM,&MASK 12840021 .* THIS MACRO GENERATES A NORMAL EDIT ENTRY 12870021 .* FOR PROCESSING BY THE SUMMARY MODULE 12900021 .* &LOGITEM - NAME OF DATA ITEM TO BE SUMMED 12930021 .* &MASK - BYTE MASK FOR BITS TO BE TESTED. 12960021 .* THIS OPERAND SHOULD BE OMITTED FOR 12990021 .* SINGLE BIT ITEMS IN WHICH CASE THE 13020021 .* MASK WILL BE SET ACCORDING TO THE 13050021 .* OFF BYTE BIT DISPLACEMENT OF THE 13080021 .* ITEM AS DEFINED BY THE MACRO 'DSGEN' 13110021 GBLA &COUNTR,&ITEMNBR,&BITS(1000),&SHIFT(1000) 13140021 GBLC &ITEM(1000),&DSECT 13170021 LCLA &IBITS,&NDX,&ISHIFT,&M,&BITNBR 13200021 .LOOP ANOP 13230021 &NDX SETA &NDX+1 13260021 AIF ('&ITEM(&NDX)' EQ '&LOGITEM').FOUND 13290021 AIF (&NDX LT &ITEMNBR).LOOP 13320021 MNOTE *,'LOGITEM NOT FOUND' 13350021 MEXIT 13380021 .FOUND ANOP 13410021 DC AL1(0) 13440021 &ISHIFT SETA &SHIFT(&NDX) 13470021 &IBITS SETA &BITS(&NDX) 13500021 AIF ('&MASK' EQ '').FORM 13530021 DC B'&MASK' 13560021 AGO .ITEM 13590021 .FORM ANOP 13620021 &BITNBR SETA &ISHIFT-7 13650021 &BITNBR SETA 0-&BITNBR 13680021 &M SETA 1 13710021 .LOOP2 ANOP 13740021 AIF (&BITNBR EQ 0).GOTIT 13770021 &M SETA &M*2 13800021 &BITNBR SETA &BITNBR-1 13830021 AGO .LOOP2 13860021 .GOTIT ANOP 13890021 DC AL1(&M) 13920021 .ITEM DC AL2(&LOGITEM-&DSECT) 13950021 DC AL2(&COUNTR) 13980021 &COUNTR SETA &COUNTR+1 14010021 MEND 14040021 GBLC &DSECT,&CSECT 14070021 &DSECT SETC 'S0002' 14100021 &CSECT SETC 'IFCSXXXD' 14130021 *********************************************************************** 14160021 * * 14190021 * THIS ENTIRE MODULE IS IN SUPPORT OF S20201 * 14220021 * * 14250021 *********************************************************************** 14280021 IFCSXXXD CSECT 14310021 S0002 DSECT 14340021 DSGEN (CLASRC,8),(SYSREL,8),(SWITCH1,8),(SWITCH2,8) 14370021 DSGEN (SPARE1,32) 14400021 DSGEN (DATE,32) 14430021 DSGEN (HOUR,32) 14460021 DSGEN (SPARE2,8),(CPUSERL,24) 14490021 DSGEN (CPUID,16),(SPARE3,16) 14520021 DSGEN (JOBID1,32) 14550021 DSGEN (JOBID2,32) 14580021 DSGEN (FCCWCC,8),(FCCWDA,24) 14610021 DSGEN (FCCWFL,8),(FCCW,8),(FCCWCT,16) 14640021 DSGEN (CSWUS1,8),(CSWUS2,24) 14670021 DSGEN (CSWUS3,8),(CSWUS4,8),(CSWUS5,16) 14700021 DSGEN (ECSW,32) 14730021 DSGEN (DEVTYP1,16),(DEVTYP2,16) 14760021 DSGEN (SPARE4,8),(CUA,24) 14790021 DSGEN (IORET,24),(SBCNT,8) 14820021 DSGEN (VOLLAB1,8),(VOLLAB2,16),(VOLLAB3,8) 14850021 DSGEN (VOLLAB4,8),(VOLLAB5,8),(SPARE5,16) 14880021 DSGEN (LSKAD1,8),(LSKAD2,16),(LSKAD3,8) 14910021 DSGEN (LSKAD4,8),(LSKAD5,16),(LSKAD6,8) 14940021 DSGEN (AHA1,32) 14970021 DSGEN (AHA2,16),(SPARE6,16) 15000021 DSGEN (SPARE7,16),(SPARE8,16) 15030021 DS 6C 15060021 DSGEN (SNB00,1),(SNB01,1),(SNB02,1),(SNB03,1),(SNB04,1), C15090021 (SNB05,1),(SNB06,1),(SNB07,1),(SNB10,1),(SNB11,1), C15120021 (SNB12,1),(SNB13,1),(SNB14,1),(SNB15,1),(SNB16,1), C15150021 (SNB17,1),(SNB20,1),(SNB21,1),(SNB22,1),(SNB23,1), C15180021 (SNB24,1),(SNB25,1),(SNB26,1),(SNB27,1),(SNB30,1), C15210021 (SNB31,1),(SNB32,1),(SNB33,1),(SNB34,1),(SNB35,1), C15240021 (SNB36,1),(SNB37,1) 15270021 DSGEN (SNB40,1),(SNB41,1),(SNB42,1),(SNB43,1),(SNB44,1), C15300021 (SNB45,1),(SNB46,1),(SNB47,1),(SNB50,1),(SNB51,1), C15330021 (SNB52,1),(SNB53,1),(SNB54,1),(SNB55,1),(SNB56,1), C15360021 (SNB57,1),(SNB60,1),(SNB61,1),(SNB62,1),(SNB63,1), C15390021 (SNB64,1),(SNB65,1),(SNB66,1),(SNB67,1),(SNB70,1), C15420021 (SNB71,1),(SNB72,1),(SNB73,1),(SNB74,1),(SNB75,1), C15450021 (SNB76,1),(SNB77,1) 15480021 DSGEN (SNB80,1),(SNB81,1),(SNB82,1),(SNB83,1),(SNB84,1), C15510021 (SNB85,1),(SNB86,1),(SNB87,1),(SNB90,1),(SNB91,1), C15540021 (SNB92,1),(SNB93,1),(SNB94,1),(SNB95,1),(SNB96,1), C15570021 (SNB97,1),(SNB100,1),(SNB101,1),(SNB102,1),(SNB103,1), C15600021 (SNB104,1),(SNB105,1),(SNB106,1),(SNB107,1),(SNB110,1), C15630021 (SNB111,1),(SNB112,1),(SNB113,1),(SNB114,1),(SNB115,1), C15660021 (SNB116,1),(SNB117,1) 15690021 DSGEN (SNB120,1),(SNB121,1),(SNB122,1),(SNB123,1),(SNB124,1), C15720021 (SNB125,1),(SNB126,1),(SNB127,1),(SNB130,1),(SNB131,1), C15750021 (SNB132,1),(SNB133,1),(SNB134,1),(SNB135,1),(SNB136,1), C15780021 (SNB137,1),(SNB140,1),(SNB141,1),(SNB142,1),(SNB143,1), C15810021 (SNB144,1),(SNB145,1),(SNB146,1),(SNB147,1),(SNB150,1), C15840021 (SNB151,1),(SNB152,1),(SNB153,1),(SNB154,1),(SNB155,1), C15870021 (SNB156,1),(SNB157,1) 15900021 DSGEN (SNB160,1),(SNB161,1),(SNB162,1),(SNB163,1),(SNB164,1), C15930021 (SNB165,1),(SNB166,1),(SNB167,1),(SNB170,1),(SNB171,1), C15960021 (SNB172,1),(SNB173,1),(SNB174,1),(SNB175,1),(SNB176,1), C15990021 (SNB177,1),(SNB180,1),(SNB181,1),(SNB182,1),(SNB183,1), C16020021 (SNB184,1),(SNB185,1),(SNB186,1),(SNB187,1),(SNB190,1), C16050021 (SNB191,1),(SNB192,1),(SNB193,1),(SNB194,1),(SNB195,1), C16080021 (SNB196,1),(SNB197,1) 16110021 DSGEN (SNB200,1),(SNB201,1),(SNB202,1),(SNB203,1),(SNB204,1), C16140021 (SNB205,1),(SNB206,1),(SNB207,1),(SNB210,1),(SNB211,1), C16170021 (SNB212,1),(SNB213,1),(SNB214,1),(SNB215,1),(SNB216,1), C16200021 (SNB217,1),(SNB220,1),(SNB221,1),(SNB222,1),(SNB223,1), C16230021 (SNB224,1),(SNB225,1),(SNB226,1),(SNB227,1),(SNB230,1), C16260021 (SNB231,1),(SNB232,1),(SNB233,1),(SNB234,1),(SNB235,1), C16290021 (SNB236,1),(SNB237,1) 16320021 * 16350021 MYDSECT DSECT 16380021 MPLFSCK DS 1H MPL FILE SEEK CHECKS 0 AND 1 16410021 MPLFRCK DS 1H MPL FILE READ CHECKS 0 AND 1 16440021 CTLUSR DS 1H CTL UNIT SET RESET CTR 0 AND 1 16470021 MODEL DS 1H MODEL NUMBER 16500021 DATACKS DS 1H DATA CHECKS MODULE 0 16530021 EQUIPCK DS 1H EQUIPMENT CHECKS MODULE 0 16560021 BUSOUTP DS 1H BUSOUT PARITY CTR MODULE 0 16590021 ORCHANA DS 1H OVERRUNS CHANNEL A MODULE 0 16620021 ORCHANB DS 1H OVERRUNS CHANNEL B MODULE 0 16650021 MISSADM DS 1H MISSING ADDR MARK MODULE 0 16680021 CORR DS 1H 16710021 PERM DS 1H 16740021 CURETRY DS 1H CTL UNIT RETRIES MODULE 0 16770021 RETRYIN DS 1H 16800021 BIG DS 2H NO. OF GIGABYTES MODULE 0 16830021 TABLE DS 46H DATA CHECK TABLE MODULE 0 16860021 TABADDR DS 2H ADDR OF MODULE 0 TABLE ENTRY 16890021 MOD1OUX DS 4H 16920021 DATACKS1 DS 1H DATA CHECKS MODULE 1 16950021 EQUIPCK1 DS 1H EQUIPMENT CHECKS MODULE 1 16980021 BUSOUTP1 DS 1H BUSOUT PARITY CTR MODULE 1 17010021 ORCHANA1 DS 1H OVERRUNS CHANNEL A MODULE 1 17040021 ORCHANB1 DS 1H OVERRUNS CHANNEL B MODULE 1 17070021 MISSADM1 DS 1H MISSING ADDR MARK MODULE 1 17100021 CORR1 DS 1H 17130021 PERM1 DS 1H 17160021 CURETRY1 DS 1H CTL UNIT RETIRES MODULE 1 17190021 RETRYIN1 DS 1H 17220021 BIG1 DS 2H NO. OF GIGABYTES MODULE 1 17250021 TABLE1 DS 46H DATA CHECK TABLE MODULE 1 17280021 TABADDR1 DS 2H ADDR FOR MODULE 1 TABLE ENTRY 17310021 TABDSECT DSECT 17340021 TABYTE0 DS CL1 17370021 TABYTE1 DS CL1 17400021 TABYTE2 DS CL1 17430021 TABYTE3 DS CL1 17460021 SPDSECT DSECT 17490021 BYTE0 DS CL1 17520021 BYTE1 DS CL1 17550021 BYTE2 DS CL1 17580021 BYTE3 DS CL1 17610021 BYTE4 DS CL1 17640021 BYTE5 DS CL1 17670021 BYTE6 DS CL1 17700021 BYTE7 DS CL1 17730021 IFCSXXXD CSECT 17760021 USING S0002,R2 17790021 USING *,R9 17820021 USING SPDSECT,R6 17850021 USING MYDSECT,R5 17880021 USING TABDSECT,R4 17910021 DC A(ENTRIES) 17940021 DC A(PEDIT) 17970021 REG8 DC F'0' 18000021 SCSIZE DC H'280' 18030021 R0 EQU 0 18060021 R1 EQU 1 18090021 R2 EQU 2 18120021 R3 EQU 3 18150021 R4 EQU 4 18180021 R5 EQU 5 18210021 R6 EQU 6 18240021 R7 EQU 7 18270021 R8 EQU 8 18300021 R9 EQU 9 18330021 R10 EQU 10 18360021 R11 EQU 11 18390021 R12 EQU 12 18420021 R13 EQU 13 18450021 R14 EQU 14 18480021 R15 EQU 15 18510021 L0 EQU 0 18540021 L1 EQU 1 18570021 L2 EQU 2 18600021 L3 EQU 3 18630021 L4 EQU 4 18660021 L5 EQU 5 18690021 L6 EQU 6 18720021 L7 EQU 7 18750021 L8 EQU 8 18780021 L10 EQU 10 18810021 L12 EQU 12 18840021 L13 EQU 13 18870021 L15 EQU 15 18900021 L18 EQU 18 18930021 L20 EQU 20 18960021 L25 EQU 25 18990021 L26 EQU 26 19020021 L28 EQU 28 19050021 L29 EQU 29 19080021 L30 EQU 30 19110021 L31 EQU 31 19140021 L32 EQU 32 19170021 L36 EQU 36 19200021 L41 EQU 41 19230021 L46 EQU 46 19260021 L52 EQU 52 19290021 L53 EQU 53 19320021 L64 EQU 64 19350021 L78 EQU 78 19380021 L82 EQU 82 19410021 L92 EQU 92 19440021 L106 EQU 106 19470021 L128 EQU 128 19500021 L136 EQU 136 19530021 L168 EQU 168 19560021 L172 EQU 172 19590021 L266 EQU 266 19620021 H00 EQU X'00' 19650021 H01 EQU X'01' 19680021 H02 EQU X'02' 19710021 H03 EQU X'03' 19740021 H04 EQU X'04' 19770021 H07 EQU X'07' 19800021 H08 EQU X'08' 19830021 H0C EQU X'0C' 19860021 H0F EQU X'0F' 19890021 H10 EQU X'10' 19920021 H1F EQU X'1F' 19950021 H20 EQU X'20' 19980021 H30 EQU X'30' 20010021 H40 EQU X'40' 20040021 H60 EQU X'60' 20070021 H80 EQU X'80' 20100021 HC0 EQU X'C0' 20130021 HE0 EQU X'E0' 20160021 HFF EQU X'FF' 20190021 ONE DC C'1' 20220021 TWO DC C'2' 20250021 PERMCORR DC C'0' 20280021 HEX00 DC F'0' 20310021 ZEROA DC H'0' 20340021 MOVEIT DS F 20370021 XSAVE DS 6F 20400021 XSAVEA DC F'0' 20430021 EOR DC F'0' 20460021 OBR0 DC F'0' 20490021 FORTY DC H'40' 20520021 TWENTY DC H'20' 20550021 IF0 DC F'0' IF MODULE 0 DSECT NEEDED 20580021 * 20610021 * SPECIAL ROUTINES 20640021 * 20670021 XDATE1 STM R4,R8,XSAVE SAVE REGS 20700021 LA R5,L266(R3) POINT TO MPL FILE SEEK CHECKS 20730021 ST R5,IF0 STORE 5 IF MODUE 0 DEFAULT 20760021 CLC DATE(L4),HEX00 IS DATE ZERO 20790021 BE RECORDCK BR-ZERO 20820021 CLC L0(L4,R3),HEX00 IS LOW DATE ZERO 20850021 BNE XDATE2 BR-NO 20880021 MVC L0(L4,R3),DATE MOVE IN DATE 20910021 XDATE2 CLC DATE(L4),L0(R3) CHECK FOR LOW DATE 20940021 BL SAVELOW LOWER SAVE IT 20970021 CLC DATE(L4),L4(R3) CHECK FOR HI 21000021 BNH RECORDCK BR-NOT HI 21030021 SAVEHI MVC L4(L4,R3),DATE MOVE HI DATE 21060021 B RECORDCK SEE WHAT TYPE RECORD 21090021 SAVELOW MVC L0(L4,R3),DATE MOVE LOW DATE 21120021 B RECORDCK SEE WHAT TYPE RECORD 21150021 RECORDCK TM CLASRC,H30 SEE IF IT IS AN OBR RECORD 21180021 BO OBRCKS BRANCH IF IT IS TO CHECK OBR 21210021 MODCHK TM SPARE1,H10 SEE IF MOD-1 21240021 BO MOD1 BR-YES 21270021 MVC MODEL(L1),TWO MOVE IN TWO 21300021 B AROUND BR-AROUND 21330021 MOD1 MVC MODEL(L1),ONE MOVE IN ONE 21360021 AROUND LA R6,L26(R2) GET TO START OF RECORD SENSE 21390021 LA R7,L128(R6) GET ADDR OF END OF RECORD 21420021 ST R7,EOR 21450021 AGAIN L R5,IF0 LOAD AS IF MODULE 0 21480021 TM BYTE0,HE0 TEST FIRST THREE BITS 21510021 BO UDC BR IF 111 21540021 TM BYTE0,HC0 TEST FIRST THREE BITS 21570021 BO CDC BR IF 110 21600021 TM BYTE0,H60 TEST FIRST THREE BITS 21630021 BO MFC BR IF 011 21660021 TM BYTE0,H80 TEST FIRST THREE BITS 21690021 BO UOC BR IF 100 21720021 TM BYTE0,H20 TEST FIRST THREE BITS 21750021 BO CSR BR IF 001 21780021 TEST LA R6,L8(R6) BUMP R4 UP 8 TO NEW ENTRY 21810021 CL R6,EOR COMPARE IT WITH END OF RECORD 21840021 BL AGAIN GO BACK IF LESS 21870021 LA R8,QUIT-L6 21900021 ST R8,REG8 21930021 LM R4,R8,XSAVE RESTORE REGS IF NOT 21960021 BR R14 GO BACK 21990021 MFC SR R7,R7 CLEAR REG 7 22020021 IC R7,BYTE1 GET READS AND SEEKS 22050021 ST R6,XSAVEA STORE R6 TEMP. 22080021 SR R6,R6 22110021 SLDL R6,L28 PUT READS IN 6 22140021 SRL R7,L28 PUT SEEKS IN 7 22170021 AH R6,MPLFRCK ADD TOTAL READ CHECKS 22200021 AH R7,MPLFSCK ADD TOTAL SEEK CHECKS 22230021 STH R6,MPLFRCK STORE TOTAL READ CHECKS 22260021 STH R7,MPLFSCK STORE TOTAL SEEK&CHECKS 22290021 L R6,XSAVEA RELOAD R6 22320021 B TEST GO TEST ANOTHER BLOCK 22350021 CSR LA R8,L1 GET ONE IN R6 22380021 AH R8,CTLUSR ADD TOTAL CTLUSR 22410021 STH R8,CTLUSR STORE TOTAL RESET COUNT 22440021 B TEST GO TEST ANOTHER BLOCK 22470021 UOC TM BYTE0,H08 SEE IF MODULE 0 22500021 BZ MOD0 BRANCH YES 22530021 LA R5,MOD1OUX UPDATE PTR IF ON 22560021 MOD0 SR R8,R8 CLEAR REG 8 22590021 IC R8,BYTE1 GET OVERRUN CHANNEL A 22620021 AH R8,ORCHANA ADD TOTAL OVERRUN A 22650021 STH R8,ORCHANA STORE TOTAL 22680021 SR R8,R8 CLEAR REG 6 22710021 IC R8,BYTE2 GET OVERRUN CHANNEL B 22740021 AH R8,ORCHANB ADD TOTAL OVERRUN B 22770021 STH R8,ORCHANB STORE TOTAL 22800021 SR R8,R8 CLEAR REG6 22830021 IC R8,BYTE3 GET MISSING AM 22860021 AH R8,MISSADM ADD TOTAL MISSING AM'S 22890021 STH R8,MISSADM STORE TOTAL 22920021 MVC MOVEIT(L4),BYTE4 GET BYTES READ ON FWB 22950021 L R8,MOVEIT PUT IN REG 8 22980021 SRL R8,L10 DIVIDE BY 1000 23010021 MVC MOVEIT(L4),BIG 23040021 L R7,MOVEIT 23070021 AR R8,R7 23100021 ST R8,MOVEIT 23130021 MVC BIG(L4),MOVEIT 23160021 B TEST GO TO TEST ROUTINE 23190021 CDC EQU * 23220021 UDC TM BYTE2,H08 SEE IF MODULE 0 23250021 BZ TABSAVE BRANCH YES 23280021 LA R5,MOD1OUX UPDATE PTR IF ON 23310021 TABSAVE L R4,TABADDR LOAD ADDRESS OF NEXT TABLE ENTY 23340021 LTR R4,R4 TEST 4 23370021 BNZ ONWARD BRANCH IF SOMTHING IN 4 23400021 LA R4,TABLE LOAD INITIAL PTR INTO 4 23430021 ONWARD LA R8,L1 GET 1 IN REG 8 23460021 AH R8,DATACKS ADD TOTAL DATA CHECKS 23490021 STH R8,DATACKS STORE TOTAL DATA CHECKS 23520021 LA R8,L1 GET 1 IN REG 8 23550021 AH R8,CURETRY ADD TOTAL CU TIMES 23580021 STH R8,CURETRY STORE TOTAL 23610021 CLC TWENTY(L2),DATACKS SEE IF MORE THAN 20 DATA CHECKS 23640021 BL TEST GO BACK IF MORE THAN 40 23670021 MVC TABYTE0(L1),BYTE0 PUT BYTE 0 IN TABLE BYTE 0 23700021 MVC TABYTE1(L1),BYTE3 PUT BYTE 3 IN TABLE BYTE 1 23730021 MVC TABYTE2(L1),BYTE4 PUT BYTE 4 IN TABLE BYTE 2 23760021 MVC TABYTE3(L1),BYTE5 PUT BYTE 5 IN TABLE BYTE 3 23790021 LA R4,L4(R4) BUMP UP POINTER 4 23820021 ST R4,TABADDR SAVE TABLE ENTRY ADDRESS 23850021 B TEST GO BACK FOR MORE 23880021 OBRCKS TM CUA+L2,H08 SEE IF MODULE 0 23910021 BZ BACKWARD BRANCH YES 23940021 LA R3,NAME-L6 23970021 ST R3,REG8 24000021 LA R5,MOD1OUX UP PTR IF ON SA58216 24010021 BACKWARD TM DEVTYP2+L1,H07 SEE IF MODEL 1 24030021 BO MODEL2 BRANCH AROUND IF NO 24060021 MVC MODEL(L1),ONE MOVE IN ONE 24090021 B NO1X BRANCH AROUND S21021 24120021 MODEL2 MVC MODEL(L1),TWO MOVE IN TWO 24150021 NO1X TM CLASRC,X32 IS IT AN OLD RECORD S21021 24180021 BO NO1 BR-YES S21021 24210021 S R2,TEN NO- SUBTRACT TEN S21021 24240021 NO1 EQU * SA58216 24270021 UPWARD TM SNB00,H10 IS IT AN EQUIPMENT CHECK 24360021 BZ NO2 BRANCH AROUND IF OFF 24390021 LA R8,L1 GET 1 IN REG 8 24420021 AH R8,EQUIPCK ADD EQUIP. CHECK 24450021 STH R8,EQUIPCK STORE TOTAL 24480021 NO2 TM SNB00,H20 IS IT A BUS OUT PARITY 24510021 BZ NO3 BRANCH AROUND IF OFF 24540021 LA R8,L1 GET 1 IN REG 8 24570021 AH R8,BUSOUTP ADD BUS OUTS 24600021 STH R8,BUSOUTP STORE TOTAL 24630021 NO3 TM SNB00,H08 IS IT A DATA CHECK 24660021 BZ RETURN 24690021 LA R8,L1 GET 1 IN REG 8 24720021 AH R8,DATACKS ADD DATA CHECKS 24750021 STH R8,DATACKS STORE TOTAL 24780021 TM SNB10,H80 SEE IF PERM ERROR 24810021 BZ NEXT1 BR IF NO 24840021 LA R8,L1 GET 1 IN R8 24870021 AH R8,PERM ADD TOTAL PERMS SO FAR 24900021 STH R8,PERM STORE NEW TOTAL 24930021 B OVER GO ON OVER CODE 24960021 NEXT1 TM SNB20,H40 SEE IF CORRECTABLE 24990021 BZ INHIBIT BR NO INHIBIT 25020021 B CORECA BR TO CORRECTABLE CODE 25050021 INHIBIT LA R8,L1 GET 1 IN R8 25080021 AH R8,RETRYIN ADD TOTAL RETRY INHIBITS 25110021 STH R8,RETRYIN STORE NEW TOTAL 25140021 B OVER BR OVER CODE 25170021 CORECA LA R8,L1 GET 1 IN R8 25200021 AH R8,CORR ADD TOTAL CORRECTABLES 25230021 STH R8,CORR STORE NEW TOTAL 25260021 OVER EQU * 25290021 CLC TWENTY(L2),DATACKS SEE IF MORE THAN 0 DATA CHECKS 25320021 BL RETURN BR-YES 25350021 L R4,TABADDR LOAD ADDR OF NEXT ENTRY MODULE1 25380021 LTR R4,R4 TEST 4 25410021 BNZ FORWARD BRANCH IF SOMETHING IN 4 25440021 LA R4,TABLE LOAD INITIAL PTR INTO 4 25470021 FORWARD SR R7,R7 CLEAR R7 25500021 IC R7,SNB10 LOAD BYTE 25530021 SRL R7,L7 PERM IN BIT31 25560021 SR R8,R8 CLEAR REG 8 25590021 IC R8,SNB20 LOAD BYTE 25620021 SLL R8,L25 GET RID OF BIT 0 25650021 SRL R8,L31 CORR IN BIT31 25680021 SLL R8,L1 CORR IN BIT 30 25710021 OR R7,R8 COMBINE 25740021 MVC PERMCORR(L1),ZEROA PUT IN ZEROES 25770021 STC R7,PERMCORR PUT IN TABLE CONSTANT 25800021 OI PERMCORR,H20 25830021 MVC TABYTE0(L1),PERMCORR 25860021 MVC TABYTE1(L1),SNB140 PUT BYTE 14 IN TABLE BYTE 1 25890021 MVC TABYTE2(L1),SNB50 PUT BYTE 5 IN TAB BYT 2 SA57543 25920021 MVC TABYTE3(L1),SNB60 PUT BYTE 6 IN TAB BYT 3 SA57543 25950021 LA R4,L4(R4) BUMP UP POINTER 4 25980021 ST R4,TABADDR STOORE TABLE ENTRY ADDR 26010021 B RETURN GO BACK 26040021 ADD2 TM CLASRC,X32 IS IT AN OLD RECORD S21021 26070021 BO BACK BR-YES S21021 26100021 LA R2,L10(R2) NO ADD TEN S21021 26130021 BACK BR R14 GO BACK S21021 26160021 RETURN LM R4,R8,XSAVE RESTORE REGS 26190021 BR R14 GO BACK 26220021 TEN DC F'10' TEN S21021 26250021 X32 EQU X'32' HEX 32 S21021 26280021 ENTRIES EQU * 26310021 SPECIAL XDATE1,00000000,SPACE=4 26340021 * OBR REOCRDS ARE SUMMED BY THE FOLLOWING CODE 26370021 SUM SNB160 26400021 SUM SNB161 26430021 SUM SNB162 26460021 SUM SNB163 26490021 SUM SNB164 26520021 SUM SNB165 26550021 SUM SNB166 26580021 SUM SNB167 26610021 SUM SNB170 26640021 SUM SNB171 26670021 SUM SNB172 26700021 SUM SNB173 26730021 SUM SNB174 26760021 SUM SNB175 26790021 SUM SNB176 26820021 SUM SNB177 26850021 SUM SNB180 26880021 SUM SNB181 26910021 SUM SNB182 26940021 SUM SNB183 26970021 SUM SNB184 27000021 SUM SNB185 27030021 SUM SNB186 27060021 SUM SNB187 27090021 SUM SNB190 27120021 SUM SNB191 27150021 SUM SNB192 27180021 SUM SNB193 27210021 SUM SNB194 27240021 SUM SNB195 27270021 SUM SNB196 27300021 SUM SNB197 27330021 SUM SNB200 27360021 SUM SNB201 27390021 SUM SNB202 27420021 SUM SNB203 27450021 SUM SNB204 27480021 SUM SNB205 27510021 SUM SNB206 27540021 SUM SNB207 27570021 SUM SNB210 27600021 SUM SNB212 27630021 SUM SNB212 27660021 SUM SNB213 27690021 SUM SNB214 27720021 SUM SNB215 27750021 SUM SNB216 27780021 SUM SNB217 27810021 SUM SNB220 27840021 SUM SNB221 27870021 SUM SNB222 27900021 SUM SNB223 27930021 SUM SNB224 27960021 SUM SNB225 27990021 SUM SNB226 28020021 SUM SNB227 28050021 SUM SNB230 28080021 SUM SNB231 28110021 SUM SNB232 28140021 SUM SNB233 28170021 SUM SNB234 28200021 SUM SNB235 28230021 SUM SNB236 28260021 SUM SNB237 28290021 SPECIAL ADD2,0,SPACE=0 28320021 QUIT DC X'FFFF' 28350021 NAME EQU * 28380021 SUM SNB160 28410021 SUM SNB161 28440021 SUM SNB162 28470021 SUM SNB163 28500021 SUM SNB164 28530021 SUM SNB165 28560021 SUM SNB166 28590021 SUM SNB167 28620021 SUM SNB170 28650021 SUM SNB171 28680021 SUM SNB172 28710021 SUM SNB173 28740021 SUM SNB174 28770021 SUM SNB175 28800021 SUM SNB176 28830021 SUM SNB177 28860021 SUM SNB180 28890021 SUM SNB181 28920021 SUM SNB182 28950021 SUM SNB183 28980021 SUM SNB184 29010021 SUM SNB185 29040021 SUM SNB186 29070021 SUM SNB187 29100021 SUM SNB190 29130021 SUM SNB191 29160021 SUM SNB192 29190021 SUM SNB193 29220021 SUM SNB194 29250021 SUM SNB195 29280021 SUM SNB196 29310021 SUM SNB197 29340021 SUM SNB200 29370021 SUM SNB201