MACRO 00600020 &NAME LABEL &UNIT,&DDNAME,&LABEL,&NO,&LNGTH,&CNTRL,&LABELA, X01200020 &UNLOAD,&MF=I 01800020 LCLA &A 02400020 LCLB &BB,&B(8) 03000020 LCLC &C 03600020 &BB SETB ('&UNLOAD' EQ 'UNLOAD') 04200020 AIF ('&MF(1)' EQ 'E').EROUT 04800020 AIF ('&MF' NE 'L').CNOP 05400020 &NAME DS 0F BUILD LIST ON FULL WORD BDY 06000020 AGO .UNL 06600020 .CNOP CNOP 0,4 07200020 &NAME BAL 1,*+24 BRANCH AROUND PARM LIST 07800020 .UNL DC AL1(192) CONSTANT OF X'C0' 08400020 DC BL2'1&BB.0' REWIND OR UNLOAD OPTION 09000020 AIF ('&UNIT' EQ '' AND '&MF' EQ 'L').ZERUN 09600020 AIF ('&UNIT' EQ '').E1 10200020 AIF ('&UNIT'(1,1) EQ '(').ZERUN 10800020 DC AL1(&UNIT) UNIT NUMBER 11400020 AGO .DD 12000020 .ZERUN DC AL1(0) UNIT NUMBER 12600020 .DD AIF ('&DDNAME' EQ '' AND '&MF' EQ 'L').ZERDD 13200020 AIF ('&DDNAME' EQ '').E2 13800020 AIF ('&DDNAME'(1,1) EQ '(').ZERDD 14400020 DC A(&DDNAME) DDNAME ADDRESS 15000020 AGO .LAB 15600020 .ZERDD DC A(0) DDNAME ADDRESS 16200020 .LAB AIF ('&LABEL' EQ '' AND '&MF' EQ 'L').ZERLB 16800020 AIF ('&LABEL' EQ '').E3 17400020 AIF ('&LABEL'(1,1) EQ '(').ZERLB 18000020 DC A(&LABEL) LABEL ADDRESS 18600020 AGO .LEN 19200020 .ZERLB DC A(0) LABEL ADDRESS 19800020 .LEN AIF ('&LNGTH' EQ '' AND '&MF' EQ 'L').ZERLN 20400020 AIF ('&LNGTH' EQ '').E5 21000020 AIF ('&LNGTH'(1,1) EQ '(').ZERLN 21600020 DC AL2(&LNGTH) LABEL LENGTH 22200020 AGO .NUM 22800020 .ZERLN DC AL2(0) LABEL LENGTH 23400020 .NUM AIF ('&NO' EQ '' AND '&MF' EQ 'L').ZERNO 24000020 AIF ('&NO' EQ '').E4 24600020 AIF ('&NO'(1,1) EQ '(').ZERNO 25200020 DC AL1(&NO) NUMBER OF LABELS 25800020 AGO .CODE 26400020 .ZERNO DC AL1(0) NUMBER OF LABELS 27000020 .CODE AIF ('&CNTRL' EQ '').E6 27300020 &A SETA K'&CNTRL 28200020 &C SETC '&CNTRL'(&A,1) 28800020 &A SETA &C 29400020 AIF ('&CNTRL'(1,1) EQ '9').NINE 30000020 AIF (&A GE 3).E7 30600020 &B(1) SETB (&A EQ 2) 31200020 &B(2) SETB (&A EQ 1) 31800020 AIF ('&CNTRL'(1,1) NE '7').E7 32400020 AIF ('&CNTRL'(2,1) NE 'C' AND '&CNTRL'(2,1) NE 'E' AND '&CNTX33000020 RL'(2,1) NE 'T').E7 33600020 AIF ('&CNTRL'(2,1) EQ 'C').CONV 34200020 &B(3) SETB 1 34800020 &B(5) SETB ('&CNTRL'(2,1) EQ 'T') 35400020 AIF (NOT &B(5)).PUT 36000020 AIF (K'&CNTRL NE 3).PUT 36100020 &B(4) SETB 1 37200020 .PUT AIF ('&MF(1)' NE 'E').DCCD 37800020 &A SETA 128*&B(1)+64*&B(2)+32*&B(3)+16*&B(4)+8*&B(5)+3 38400020 MVI 15(1),&A MOVE MODE TO PARM LIST 39000020 AGO .SVC 39600020 .DCCD DC BL1'&B(1)&B(2)&B(3)&B(4)&B(5).011' MODE 40200020 AIF ('&LABELA' NE '').VAL PM0051 40250020 AIF ('&LABEL' EQ '' AND '&MF' EQ 'L').ZERVAL PM0051 40300020 AIF ('&LABEL' EQ '').E3 PM0051 40350020 AIF ('&LABEL'(1,1) EQ '(').ZERVAL PM0051 40400020 DC A(&LABEL) ADDRESS OF EBCDIC LABEL PM0051 40450020 AGO .PASSA PM0051 40500020 .VAL AIF ('&LABELA'(1,1) EQ '(').ZERVAL PM0051 40550020 DC A(&LABELA) ADDRESS OF EBCDIC LABEL PM0051 40600020 AGO .PASSA PM0051 40650020 .ZERVAL DC A(0) ADDRESS OF EBCDIC LABEL PM0051 40700020 .PASSA ANOP PM0051 40750020 AIF ('&MF' EQ 'L').MEXIT 40800020 AIF ('&UNIT' EQ '').NORUN 41400020 AIF ('&UNIT'(1,1) NE '(').NORUN 42000020 STC &UNIT(1),3(0,1) UNIT NUMBER MOVED TO LIST 42600020 .NORUN AIF ('&DDNAME' EQ '').NORDD 43200020 AIF ('&DDNAME'(1,1) NE '(').NORDD 43800020 ST &DDNAME(1),4(0,1) STORE DDNAME ADDRESS 44400020 .NORDD AIF ('&LABEL' EQ '').NORLB 45000020 AIF ('&LABEL'(1,1) NE '(').NORLB 45600020 ST &LABEL(1),8(0,1) STORE VOLUME SET LABEL ADDR 46200020 .NORLB AIF ('&LNGTH' EQ '').NORLN 46800020 AIF ('&LNGTH'(1,1) NE '(').NORLN 47400020 STH &LNGTH(1),12(0,1) STORE LABEL LENGTH 48000020 .NORLN AIF ('&NO' EQ '').NORNO PM0051 48050020 AIF ('&NO'(1,1) NE '(').NORNO PM0051 48100020 STC &NO(1),14(0,1) STORE NUMBER OF LABELS PM0051 48150020 .NORNO AIF ('&LABELA' NE '').CKLAB PM0051 48200020 AIF ('&LABEL' EQ '').SVC PM0051 48250020 AIF ('&LABEL'(1,1) NE '(').SVC PM0051 48300020 ST &LABEL(1),16(0,1) STORE VOL PRINT LABEL PM0051 48350020 AGO .SVC PM0051 48400020 .CKLAB AIF ('&LABELA'(1,1) NE '(').SVC PM0051 48450020 ST &LABELA(1),16(0,1) STORE VOL PRINT LABEL PM0051 48500020 .SVC SVC 39 LABEL SVC 48600020 .MEXIT MEXIT 49200020 .NINE ANOP 49800020 AIF (K'&CNTRL EQ 1).BNINE 50400020 AIF ('&CNTRL'(2,1) NE 'D').E7 51000020 AIF (&A LT 2 OR &A GT 3).E7 51600020 &B(1) SETB 1 52200020 &B(2) SETB 1 52800020 &B(5) SETB (&A EQ 2) 53400020 AGO .PUT 54000020 .BNINE ANOP 54600020 &B(5) SETB 1 55200020 .CONV ANOP 55800020 &B(4) SETB 1 56400020 AGO .PUT 57000020 .BOTH AIF ('&LNGTH'(1,1) EQ '(' OR '&NO'(1,1) EQ '(').ELN 57600020 B *+8 BRANCH AROUND CONSTANTS 58200020 DC AL2(&LNGTH) LABEL LENGTH 58800020 DC AL1(&NO) NUMBER OF LABELS 59400020 MVC 12(3,1),*-4 MOVE CONSTANTS TO LIST 60000020 AGO .EUNLR PM0051 60300020 .EROUT ANOP 61200020 AIF (N'&MF NE 2).E 61800020 &NAME IHBINNRA &MF(2) 62400020 AIF ('&UNIT' EQ '').EDD 63000020 AIF ('&UNIT'(1,1) EQ '(').EUREG 63600020 LA 14,&UNIT.(0,0) GET UNIT NUMBER 64200020 STC 14,3(0,1) STORE UNIT NUMBER 64800020 AGO .EDD 65400020 .EUREG ST &UNIT(1),3(0,1) STORE UNIT NUMBER 66000020 .EDD AIF ('&DDNAME' EQ '').ELAB 66600020 AIF ('&DDNAME'(1,1) EQ '(').EDDREG 67200020 LA 14,&DDNAME GET DDNAME ADDRESS 67800020 ST 14,4(0,1) STORE ADDRESS IN LIST 68400020 AGO .ELAB 69000020 .EDDREG ST &DDNAME(1),4(0,1) STORE DDNAME ADDRESS 69600020 .ELAB AIF ('&LABEL' EQ '').ELNO 70200020 AIF ('&LABEL'(1,1) EQ '(').ELBREG 70800020 LA 14,&LABEL LOAD LABEL ADDRESS 71400020 ST 14,8(0,1) STORE ADDRESS IN LIST 72000020 AGO .ELNO 72600020 .ELBREG ST &LABEL(1),8(0,1) STORE VOLUME LABEL ADDRESS 73200020 .ELNO AIF ('&LNGTH' NE '' AND '&NO' NE '').BOTH 73800020 .ELN AIF ('&LNGTH' EQ '').ENO 74400020 AIF ('&LNGTH'(1,1) EQ '(').ELNREG 75000020 B *+6 BRANCH AROUND CONSTANTS 75600020 DC AL2(&LNGTH) LABEL LENGTH 76200020 MVC 12(2,1),*-2 MOVE LENGTH TO LIST 76800020 AGO .ENO 77400020 .ELNREG STH &LNGTH(1),12(0,1) STORE LABEL LENGTH 78000020 .ENO AIF ('&NO' EQ '').EUNL 78600020 AIF ('&NO'(1,1) EQ '(').ENOREG 79200020 B *+6 BRANCH AROUND CONSTANTS 79800020 DC AL1(&NO) NUMBER OF LABELS 80400020 MVC 14(1,1),*-2 MOVE NUMBER OF LABELS TO LIST 81000020 AGO .EUNL 81600020 .ENOREG STC &NO(1),14(0,1) STORE NUMBER OF LABELS 82200020 .EUNL AIF ('&LABELA' EQ '').EUNLR PM0051 82270020 AIF ('&LABELA'(1,1) EQ '(').EUNLOD PM0051 82340020 LA 14,&LABELA LOAD LABEL ADDRESS PM0051 82410020 ST 14,16(0,1) STORE LABEL ADDRESS PM0051 82480020 AGO .EUNLR PM0051 82550020 .EUNLOD ST &LABELA(1),16(0,1) STORE LABEL ADDRESS PM0051 82620020 .EUNLR AIF ('&UNLOAD' EQ '').ECODE PM0051 82690020 AIF (&BB).EOK 82800020 AIF ('&UNLOAD' EQ 'REWIND').EREW 83400020 IHBERMAC 157,UNLOAD,&UNLOAD 84000020 AGO .ECODE 84600020 .EREW MVI 2(1),4 INDICATE REWIND 85200020 AGO .ECODE 85800020 .EOK OI 2(1),2 INDICATE UNLOAD 86400020 .ECODE AIF ('&CNTRL' EQ '').SVC 87000020 AGO .CODE 87600020 .E1 IHBERMAC 2 FIRST OPERAND MISSING 88200020 MEXIT 88800020 .E2 IHBERMAC 3 FIRST OPERAND MISSING 89400020 MEXIT 90000020 .E3 IHBERMAC 4 FIRST OPERAND MISSING 90600020 MEXIT 91200020 .E4 IHBERMAC 5 FIRST OPERAND MISSING 91800020 MEXIT 92400020 .E5 IHBERMAC 14 FIRST OPERAND MISSING 93000020 MEXIT 93600020 .E6 IHBERMAC 17 MODE OPERAND MISSING 94200020 MEXIT 94800020 .E7 IHBERMAC 45,,&CNTRL 95400020 MEXIT 96000020 .E IHBERMAC 35,,&MF 96600020 MEND 97200020