* MACCOMP Y-1 SC1CM/PZD81 00060002 * MACSTAT Y-1 75289/Z40FPXA 00065004 MACRO 00070002 &NAME ESTAE &EXIT,&TYPE,&PARAM=I,&XCTL=NO,&MF=I,&PURGE=,&ASYNCH=, J00100002 &TCB=,&ESTAR=,&TERM=,&RECORD=,&BRANCH=,&SVEAREA=, J00150002 &RELATED=,&KEY= 00152004 * MACDATE Y-1 75302 00160004 LCLA &LENGTH 00200000 LCLA &FLAGS 00250002 LCLA &FLGS 00260002 LCLA &ANDOFF 00300002 LCLA &TESTF 00305004 LCLA &FLAGS2 00310002 LCLA &FLAGS3 00310402 LCLA &TURNOFF 00312002 LCLA &EXITL 00316002 LCLA &KEYVAL 00318004 LCLB &TERMON 00320002 LCLB &RECON 00330002 LCLB &BRNCHON 00340002 LCLB &ASY 00350002 LCLB &ASY1 00360002 LCLB &HALT 00400002 LCLB &NONE 00450002 LCLB &PNONE 00460002 LCLB &TCBON 00500002 LCLB &ASYOFF 00550002 LCLB &PRGOFF 00600002 LCLB &TERMOFF 00610002 LCLB &RECOFF 00620002 LCLB &BRANOFF 00630002 LCLB &STAROFF 00640002 LCLB &ESTARON 00642002 LCLB &ESTA 00644002 LCLC &GNAME 00650000 LCLC &LNAME 00700002 LCLC &EXITR 00705002 &ASY1 SETB ('&ASYNCH' EQ 'YES') 00710002 &ASY SETB ('&ASYNCH' EQ 'YES' OR '&ASYNCH' EQ '') 00750002 &HALT SETB ('&PURGE' EQ 'HALT') 00800002 &NONE SETB ('&PURGE' EQ 'NONE' OR '&PURGE' EQ '') 00850002 &PNONE SETB ('&PURGE' EQ 'NONE') 00860002 &TCBON SETB ('&TCB' NE '') 00900002 &ESTARON SETB ('&ESTAR' EQ 'YES') 00910002 &ESTA SETB 1 ESTAE INDICATOR 00920002 &FLAGS SETA 128*&TCBON+64*&ESTARON+16*&ESTA+4*&ASY+2*&NONE+&HALT 00950002 &FLGS SETA 128*&TCBON+64*&ESTARON+16*&ESTA+4*&ASY1+2*&PNONE+&HALT 00952002 &TERMON SETB ('&TERM' EQ 'YES') 00960002 &RECON SETB ('&RECORD' EQ 'YES') 00970002 &BRNCHON SETB ('&BRANCH' EQ 'YES') 00980002 &FLAGS2 SETA (64*&TERMON+32*&RECON) 00990004 &LENGTH SETA 20 00992002 AIF ('&KEY' NE '' AND '&BRANCH' EQ '').NOKEY 00996004 AIF ('&KEY' NE '' AND '&BRANCH' EQ 'NO').NOKEY 00997004 AIF ('&TCB' EQ '').NOSTAI 01000002 AIF ('&XCTL' EQ 'NO').NIXXCTL 01100000 IHBERMAC 1020,XCTL,TCB 01150000 MEXIT 01200000 .NOKEY MNOTE 8,'**** KEY OPERAND ONLY ALLOWED WITH BRANCH' 01220004 MEXIT 01230004 .NIXXCTL ANOP 01250000 AIF ('&EXIT' EQ '0').ER1 01300000 AIF ('&TYPE' EQ 'OV').ER2 01350000 AIF ('&BRANCH' EQ 'YES').ER4 01410002 AGO .NOSTAI 01450002 .ER1 ANOP 01500000 IHBERMAC 1020,EXIT/0,TCB 01550000 MEXIT 01600000 .ER2 ANOP 01650000 IHBERMAC 1020,TYPE/OV,TCB 01700000 MEXIT 01750000 .ER3 ANOP 01800002 IHBERMAC 1020,XCTL,ESTAR 01850002 MEXIT 01900002 .ER4 ANOP 01910002 IHBERMAC 1020,BRANCH,TCB 01920002 MEXIT 01930002 .NOSTAI ANOP 01950002 AIF ('&TCB' EQ '' AND '&TYPE' EQ 'PROP').ER10 02000002 AIF ('&ESTAR' NE '' AND '&ESTAR' NE 'YES' AND '&ESTAR' J02052002 NE 'NO').ESTARER 02054002 AIF ('&ESTAR' NE 'YES').NOSTAR 02060002 AIF ('&XCTL' NE 'NO').ER3 02062002 AIF ('&TYPE' EQ 'PROP').ER5 02070002 AIF ('&BRANCH' EQ 'YES').ER6 02080002 AIF ('&EXIT' EQ '0').ER7 02090002 AIF ('&TCB' NE '').ER8 02092002 AIF ('&PURGE' NE 'HALT').ER11 02092802 .NOSTAR ANOP 02094002 AIF (('&EXIT' EQ '0') AND ('&TYPE' NE '' OR '&PARAM' NE 'I' J02096002 OR '&XCTL' NE 'NO' OR '&PURGE' NE '' OR '&ASYNCH' NE J02098002 '' OR '&TERM' NE '' OR '&RECORD' NE '')).CANERR 02098402 .RESUME ANOP 02099802 AIF ('&ASYNCH' NE '' AND '&ASYNCH' NE 'NO' AND '&ASYNCH' NE C02100000 'YES').ERRASY 02150002 AIF ('&PURGE' NE '' AND '&PURGE' NE 'HALT' AND '&PURGE' NE C02200000 'NONE' AND '&PURGE' NE 'QUIESCE').PURERR 02250002 AIF ('&TERM' NE '' AND '&TERM' NE 'YES' AND '&TERM' NE J02260002 'NO').TERMERR 02270002 AIF ('&RECORD' NE '' AND '&RECORD' NE 'YES' AND '&RECORD' J02280002 NE 'NO').RECERR 02290002 AIF ('&BRANCH' NE '' AND '&BRANCH' NE 'YES' AND '&BRANCH' J02292002 NE 'NO').BRNERR 02294002 AIF ('&TYPE' NE 'PROP' AND '&TYPE' NE 'CT' AND '&TYPE' J02296002 NE 'OV' AND '&TYPE' NE '').BADOPT 02298002 AIF ('&MF(1)' EQ 'L').LROUT 02350000 AIF ('&BRANCH' EQ 'YES' AND '&SVEAREA' EQ '').SAVERR 02352002 AIF ('&KEY' EQ 'SAVE' OR '&KEY' EQ '').OK1 02354004 AIF ('&KEY' GT '15' OR '&KEY' LT '0').BADKEY 02356004 .OK1 AIF ('&MF(1)' EQ 'I').IROUT 02366004 AIF ('&MF(1)' EQ 'E').EROUTA 02400000 IHBERMAC 35,,&MF(1) INVALID MF= OPERAND 02450000 MEXIT 02500000 .ER5 ANOP 02510002 IHBERMAC 1020,TYPE/PROP,ESTAR 02520002 MEXIT 02530002 .ER6 ANOP 02540002 IHBERMAC 1020,BRANCH,ESTAR 02542002 MEXIT 02544002 .ER7 ANOP 02546002 IHBERMAC 1020,EXIT/0,ESTAR 02548002 MEXIT 02548402 .ER8 ANOP 02548802 IHBERMAC 1020,TCB,ESTAR 02549202 MEXIT 02549602 .ER10 ANOP 02555402 MNOTE 12,'*** TCB MUST BE SPECIFIED WITH TYPE/PROP' 02555802 MEXIT 02556202 .ER11 ANOP 02556602 IHBERMAC 1020,PURGE/QUIESCE/NONE,ESTAR 02562102 MEXIT 02564102 .CANERR ANOP 02567602 MNOTE *,'*** EXCESS PARAMETERS W/ CANCEL REQUEST IGNORED' 02573102 AGO .RESUME 02578602 .SAVERR ANOP 02580602 MNOTE 12,'*** SVEAREA MUST BE SPECIFIED WITH BRANCH/YES' 02582602 MEXIT 02583002 .*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* 02583302 .* 02600002 .* EXECUTE ROUTE MF=E 02650002 .* 02700002 .*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* 02750002 .EROUTA AIF (N'&MF GT 2).EXCESSA 02800000 .EROUT AIF ('&MF(2)' NE '').EXEC 02850000 .NOPARM IHBERMAC 24 REQ'D. PARMS. MISSING 02900000 MEXIT 02950000 .EXEC ANOP 03000000 &ASYOFF SETB ('&ASYNCH' EQ 'NO') 03050002 &PRGOFF SETB ('&PURGE' NE '') 03100002 &STAROFF SETB ('&ESTAR' EQ 'NO') 03110002 &ANDOFF SETA 255-(64*&STAROFF+4*&ASYOFF+3*&PRGOFF) 03150002 &TERMOFF SETB ('&TERM' EQ 'NO') 03160002 &RECOFF SETB ('&RECORD' EQ 'NO') 03170002 &BRANOFF SETB ('&BRANCH' EQ 'NO') 03180002 &TURNOFF SETA 255-(64*&TERMOFF+32*&RECOFF) 03190004 &NAME IHBINNRA &MF(2) LOAD LIST ADDR IN REG 1 03200002 AIF ('&EXIT' EQ '').TSTPX 03250000 AIF ('&EXIT' EQ '0').CANCEL 03350004 AIF ('&EXIT'(1,1) EQ '(').ST1 03400000 IHBINNRA ,&EXIT LOAD NEW EXIT ADDR IN REG 0 03450002 STCM 0,7,1(1) STORE USER EXIT ADDRESS 03500004 AGO .TSTPX 03600000 .ST1 ANOP 03650002 STCM &EXIT(1),7,1(1) STORE USER EXIT ADDRESS 03750004 .TSTPX ANOP 03850002 AIF (&ANDOFF EQ 255).TESTOR 03900002 &TESTF SETA (&FLGS+64*&STAROFF+32+8+4*&ASYOFF+3*&PRGOFF) 03910004 AIF (&TESTF GE 255).MVI1 03920004 NI 0(1),&ANDOFF TURN OFF FLAG BITS 03950004 .TESTOR ANOP 04000002 OI 0(1),&FLGS FLAGS FOR TCB,PURGE,ASYNCH 04100004 AGO .MVISKP1 04170004 .MVI1 MVI 0(1),&FLGS SET FLAGS FOR TCB,PURGE,ASYNCH 04200004 .MVISKP1 AIF ('&PARAM' EQ 'I').ETSTTCB 04250004 AIF ('&PARAM'(1,1) EQ '(').ST2 04300000 IHBINNRA ,&PARAM 04350000 ST 0,4(0,1) MODIFY REMOTE LIST - PARM ADDR 04400004 AGO .ETSTTCB 04450002 .ST2 ST &PARAM(1),4(0,1) MODIFY LIST - PARAM ADDR 04500004 .ETSTTCB AIF ('&TCB' EQ '').TSTPX2 04550002 AIF ('&TCB'(1,1) EQ '(').ST3 04600002 IHBINNRA ,&TCB 04650002 ST 0,8(0,1) MODIFY LIST - TCB ADDR. 04700004 AGO .TSTPX2 04750002 .ST3 ST &TCB(1),8(0,1) MODIFY LIST - TCB ADDR 04800004 .TSTPX2 ANOP 04802002 &TESTF SETA (&FLAGS2+128+64*&TERMOFF+32*&RECOFF+16+4+3) 04802604 AIF (&TESTF GE 255).MVI2 04803204 AIF (&TURNOFF EQ 255).TSTORF 04804002 NI 12(1),&TURNOFF TURN OFF FLAG BITS 04806004 .TSTORF ANOP 04816002 AIF (&FLAGS2 EQ 0).TSTOPT 04826002 OI 12(1),&FLAGS2 FLAGS FOR TERM AND RECORD 04836004 AGO .SKMVI 04839004 .MVI2 MVI 12(1),&FLAGS2 FLAGS FOR TERM AND RECORD 04842004 .TSTOPT ANOP 04846002 .SKMVI AIF ('&EXIT' EQ '0').CANCEL 04850004 AGO .OPTTST 04900000 .EXCESSA MNOTE *,'*** EXCESS PARAMETERS W/MF=E IGNORED' 04950000 AGO .EROUT 05000000 .*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* 05050002 .* 05100002 .* LIST ROUTE MF=L 05150002 .* 05200002 .*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* 05250002 .LROUT AIF (N'&MF GT 1).EXCESS 05300002 .LROUT1 ANOP 05350002 AIF ('&XCTL' EQ 'YES').XCTLIG 05352002 .LROUT3 ANOP 05354002 &FLAGS3 SETA 64*&TERMON+32*&RECON 05360002 AIF ('&BRANCH' NE '' AND '&SVEAREA' NE '').IGNORE 05370002 .LROUT2 ANOP 05380002 DS 0F 05400000 &NAME DC AL1(&FLAGS) FLAGS FOR TCB,PURGE,ASYNCH 05450004 AIF ('&EXIT' NE '').LREGA 05550002 DC AL3(0) EXIT ADDR. NOT SPECIFIED 05600004 AGO .LREGB 05650000 .LREGA AIF ('&EXIT'(1,1) EQ '(').LISTERR 05700000 DC AL3(&EXIT) STAE EXIT ROUTINE ADDR. 05750004 .LREGB AIF ('&PARAM' NE 'I').LREGC 05800000 DC A(0) PARM. LIST ADDR. NOT SPECIFIED 05850004 AGO .LREGD 05900002 .LREGC AIF ('&PARAM'(1,1) EQ '(').LISTERR 05950000 DC A(&PARAM) STAE EXIT PARM. LIST ADDR. 06000004 .LREGD AIF ('&TCB' EQ '').LREGE 06050002 AIF ('&TCB'(1,1) EQ '(').LISTERR 06100002 DC A(&TCB) TCB ADDRESS 06150004 AGO .LREGF 06200002 .LREGE DC A(0) TCB NOT SPECIFIED 06250004 .LREGF DC AL1(&FLAGS3) FLAGS 06270004 DC AL3(0) RESERVED 06310002 MEXIT 06320002 .EXCESS MNOTE *,'*** EXCESS PARAMETERS W/MF=L IGNORED' 06350000 AGO .LROUT1 06400000 .IGNORE ANOP 06410002 MNOTE *,'*** BRANCH/SVEAREA IGNORED W/MF=L' 06420002 AGO .LROUT2 06430002 .XCTLIG ANOP 06440002 MNOTE *,'*** XCTL=YES IGNORED W/MF=L' 06442002 AGO .LROUT3 06444002 .*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* 06450002 .* 06500002 .* REGULAR ROUTE MF=I 06550002 .* 06600002 .*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* 06650002 .IROUT AIF ('&EXIT' EQ '').NOPARM 06700000 AIF ('&EXIT' NE '0').STDA 06750000 &NAME DS 0H 06800000 .CANCEL AIF ('&BRANCH' EQ 'YES').BECAN 06810002 LA 0,132(0,0) INDICATE CANCEL OPTION 06850004 AGO .SVC1 06900000 .BECAN ANOP 06910002 L 15,FLCCVT-PSA(0,0) LOAD CVT ADDRESS 06915004 LA 0,148(0,0) BRANCH ENTRY CANCEL CODE 06920004 AGO .BRENTRY 06930002 .STDA CNOP 0,4 ESTAB. FULL WD. BOUND. ALIGN. 06950004 &LNAME SETC 'IHB'.'&SYSNDX' 07000002 &NAME BAL 1,*+&LENGTH LIST ADDR IN REG1 SKIP LIST 07050004 &LNAME EQU * 07100000 AIF ('&EXIT'(1,1) EQ '(').EREG1 07150000 DC AL1(&FLAGS) FLAGS FOR TCB, PURGE, ASYNCH 07200004 DC AL3(&EXIT) STAE EXIT ROUTINE ADDR. 07250004 AGO .STDB 07350000 .EREG1 DC A(0) SPACE FOR STAE EXIT RTN ADDRESS 07400004 .STDB ANOP 07450002 AIF ('&PARAM' EQ 'I' OR '&PARAM'(1,1) EQ '(').STDC1 07500000 DC A(&PARAM) STAE EXIT PARM. LIST ADDR. 07550004 AGO .TCBTST 07600002 .STDC1 DC A(0) SPACE FOR PARM LIST ADDR 07650004 .TCBTST ANOP 07660002 AIF ('&TCB' EQ '').TCBREG 07710002 AIF ('&TCB'(1,1) EQ '(').TCBREG 07750002 DC A(&TCB) TCB ADDR 07800004 DC AL1(&FLAGS2) FLAGS FOR TERM AND RECORD 07810004 DC AL3(0) RESERVED 07820002 AGO .TSTSW 07850002 .TCBREG DC A(0) SPACE FOR TCB ADDR 07900004 DC AL1(&FLAGS2) FLAGS FOR TERM AND RECORD 07907004 DC AL3(0) RESERVED 07914004 AIF ('&TCB' EQ '').TSTSW 07930002 ST &TCB(1),&LNAME+8 PUT TCB ADDR IN LIST 07950004 .TSTSW ANOP 08000002 AIF ('&EXIT'(1,1) NE '(').CHKPARM 08050002 ST &EXIT(1),&LNAME PUT EXIT ADDR. IN LIST 08100004 MVI &LNAME,&FLAGS FLAGS FOR TCB,PURGE,ASYNCH 08130004 .CHKPARM ANOP 08250002 AIF ('&PARAM'(1,1) NE '(').OPTTST 08300002 ST &PARAM(1),&LNAME+4 PUT PARAM ADDR. IN LIST 08350004 .*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* 08400002 .* 08450002 .* COMMON TO E ROUTE AND I ROUTE 08500002 .* 08550002 .*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* 08600002 .OPTTST ANOP 08650002 AIF ('&BRANCH' NE 'YES').SKBR 08660004 L 15,FLCCVT-PSA(0,0) ACCESS CVT ADDRESS 08670004 .SKBR AIF (('&TYPE' EQ '') OR ('&TYPE' EQ 'CT')).CREATE 08700004 AIF ('&TYPE' EQ 'OV').OVRLAY 08750000 AGO .PROP 08760002 .BADOPT IHBERMAC 49,,&TYPE INVALID OPTION-STD. FORM 08800002 MEXIT 08850000 .CREATE ANOP 08900002 SLR 0,0 INDICATE CREATE OPTION 08950004 AGO .SVC 09000000 .PROP ANOP 09010002 LA 0,2(0,0) INDICATE PROPAGATE OPTION 09020004 AGO .SVC 09030002 .OVRLAY LA 0,8(0,0) INDICATE OVERLAY OPTION 09050004 .SVC AIF ('&XCTL' EQ 'NO').NOXCTL 09100000 AIF ('&XCTL' NE 'YES').BADXCTL 09150000 AIF ('&MF' EQ 'I').SVC1 09200000 &GNAME SETC 'IHB'.'&SYSNDX' 09250002 CNOP 0,4 FORCE FULL WORD ALIGNMENT 09300004 O 1,&GNAME XCTL=YES - MAKE REG 1 NEGATIVE 09350004 B *+8 BRANCH AROUND CONSTANT 09380004 &GNAME DC X'80000000' MASK TO SET REG 1 NEGATIVE 09450004 .SVC1 ANOP 09460002 AIF ('&BRANCH' EQ 'YES').BRENTRY 09470002 SVC 60 ISSUE STAE SVC 09500004 MEXIT 09550000 .BRENTRY ANOP 09560002 L 15,CVTSV60-CVTMAP(0,15) BRANCH ENTRY ADDRESS 09561704 AIF ('&SVEAREA'(1,1) EQ '(').LR13 09562002 LA 13,&SVEAREA(1) ACCESS ADDRESS OF USER SAVE AREA 09564004 AGO .GOBRNCH 09566002 .LR13 ANOP 09568002 AIF ('&SVEAREA(1)' EQ '13').GOBRNCH 09568204 LR 13,&SVEAREA(1) ACCESS ADDRESS OF USER SAVE AREA 09568402 .GOBRNCH ANOP 09568802 AIF ('&KEY' EQ 'SAVE').SAVKEY 09570804 AGO .KEY2 09572804 .SAVKEY IPK SAVE CURRENT KEY IN REG2 09574804 .KEY2 AIF ('&KEY' EQ '').KEY3 09576804 SPKA 0(0) SET KEY 0 FOR BRANCH ENTRY 09578804 .KEY3 ANOP 09580804 BALR 14,15 BRANCH ENTER SVC 60 09590004 AIF ('&KEY' EQ 'SAVE').RESTKEY 09590204 AIF ('&KEY' EQ '').KEYEND 09590404 AIF ('&KEY' EQ '0').KEYEND 09590504 AIF ('&KEY' GT '0' AND '&KEY' LT '16').SETKEY 09590604 .BADKEY MNOTE 8,'**** INVALID KEY VALUE SPECIFIED ' 09590804 .KEYEND MEXIT 09591004 .RESTKEY SPKA 0(2) RESTORE KEY SAVED IN REG2 09591204 AGO .KEYEND 09591404 .SETKEY ANOP 09591504 &KEYVAL SETA (&KEY*16) 09591604 SPKA &KEYVAL.(0) SET SPECIFIED KEY 09591904 MEXIT 09598004 .NOXCTL ANOP 09600002 AIF ('&MF(1)' EQ 'E' AND 'MF(2)' NE '1').SVC1 09650002 LA 1,0(0,1) MAKE REG1 POS. XCTL=NO 09700004 AGO .SVC1 09750000 .BADXCTL MNOTE 8,'*** XCTL=&XCTL - PARAMETER INVALID' 09800000 MEXIT 09850000 .LISTERR IHBERMAC 69 REG NOTE W/MF=L - INVALID 09900000 MEXIT 09950002 .ERRASY ANOP 10000002 IHBERMAC 54,,&ASYNCH 10050002 MEXIT 10100002 .PURERR ANOP 10150002 IHBERMAC 54,,&PURGE 10200002 MEXIT 10210002 .TERMERR ANOP 10220002 IHBERMAC 54,,&TERM 10230002 MEXIT 10240002 .RECERR ANOP 10242002 IHBERMAC 54,,&RECORD 10244002 MEXIT 10246002 .BRNERR ANOP 10248002 IHBERMAC 54,,&BRANCH 10248402 MEXIT 10248802 .ESTARER ANOP 10249202 IHBERMAC 54,,&ESTAR 10249602 MEND 10250002