./ ADD SSI=02052371,NAME=IEECVOCC,SOURCE=0 IEECVOC CSECT 00020000 *021780,023335,023362 UCB STATUS A BYTE 19084 00030019 *026720-026800 19772 00030119 *023272,023290,023299,023317,039870,039900,039920,039960,012840 20061 00030200 *********************************************************************** 00031019 TITLE ' OPEN/CLOSE CONSOLE' 00040000 * 00060000 * NAME VMS CONSOLE UNIT INITIALIZATION. 00080000 * BSAM INPUT. 00100000 * 00120000 * FUNCTION THIS MODULE OPENS, AND LATE CLOSES, A UNIT DESIGNATED 00140000 * AS A CONSOLE SUPPORT UNIT. 00160000 * 00180000 * ENTRY POINT A SEGMENT OF A TYPE 1V TRANSIENT SVC. 00200000 * 00220000 * INPUT R1 POINTS TO 40 BYTE SCRATCH PAD AREA(SVRB EXTENSION) 00240000 * MAPPED BY MACRO =IEECVMUG CXSA=. 00260000 * 00280000 * OUTPUT FOR OPEN... SUPPLIES OPENED DCB. 00300000 * FOR CLOSE.. CLOSES DCB AND FREES THE CORE. 00320000 * 00340000 * EXTERNAL REF. CVT. 00360000 * TCB. 00380000 * SVRB. 00400000 * UNIT CONTROL MODULE. 00420000 * CLOSE. 00440000 * DELETE. 00460000 * OPENJ. 00480000 * XCTL. 00500000 * GETMAIN. 00520000 * FREEMAIN. 00540000 * 00560000 * 00580000 * EXITS AFTER OPEN TO PROCESSOR MODULE. 00600000 * AFTER CLOSE TO EXTERNAL PROCESSOR. 00620000 * 00640000 * TABLES SVRB EXTENSION. 00660000 * TIOT AND JFCB FOR OPEN. 00680000 * EVENT INDICATION LIST (EIL) TO ADD AN ECB POINTER. 00700000 * 00720000 * OPERATION INITIALLY REG 1 POINTS TO THE 40 BYTE SVRB EXTENSION 00740000 * PARAMETER LIST. THEN ADDRESSABILTY FOR A PARTICULAR 00760000 * UCM ENTRY, THE UCM MODULE ITSELF, AND, IF OPEN, THE 00780000 * DCB IS ESTABLISHED. A CODE SEGREGATES OPEN AND CLOSE. 00800000 * IF OPEN REQUEST, DYNAMIC CORE IS OPTAINED FOR A TIOT 00820000 * AND JFCB. THE DATA MODULE IS LOADED. OPEN,TYPE=J, IS 00840000 * ISSUED. THE TIOT/JFCB CORE IS THEN FREED. A SCAN OF 00860000 * THE EIL IS PERFORMED FOR LAST CURRENT ECB POINTER. THE 00880000 * CURRENT ECB ADDRESS, AND UCM PTR, ARE ADDED. 00900000 * IF CLOSE REQUEST, THE DCB IS CLOSED, AND THE DATA 00920000 * MODULE IS DELETED. 00940000 * 00960000 R0 EQU 0 LOCAL SAVE REGISTER. 00980000 R1 EQU 1 INTERFACE REGISTER. 01000000 RXS EQU 2 EXTENDED SVRB AREA PTR. 01020000 RTB EQU 3 SCRATCH. 01040000 RTC EQU 4 SCRATCH. 01060000 RXB EQU 5 INDEXING. 01080000 RXI EQU 6 INDEXING. 01100000 RXE EQU 7 INDEXING. 01120000 RP EQU 8 OPEN CONTROL BLOCK BASE /UCM,EIL. 01140000 RI EQU 9 ODD INDEXER. 01160000 RD EQU 10 DATA CONTROL BLOCKS BASE. 01180000 RU EQU 11 UCM ENTRY BASE. 01200000 RBASE EQU 12 PROGRAM BASE. 01220000 RS EQU 13 SAVE AREA PTR. 01240000 RR EQU 14 RETURN PT. 01260000 RPL EQU 15 XCTL PARAMETER LIST PTR. 01280000 TWO EQU 2 MCS 01281018 TWELVE EQU 12 MCS 01282018 MASK255 EQU 255 MCS 01283018 DEIL EQU 28 20061 01284000 EIGHTY EQU X'80' MCS 01285018 FOUR EQU 4 MCS 01286018 ONE EQU 1 MCS 01287018 ZERO EQU X'00' MCS 01288018 SIX EQU 6 MCS 01289018 EIGHT EQU 8 MCS 01290018 FB EQU X'FB' MCS 01290518 FOURX EQU X'04' MCS 01291018 HEX40 EQU X'40' 19084 01292019 HEX34 EQU X'34' 19084 01293019 HEXB4 EQU X'B4' 19084 01294019 BALR RBASE,0 01300000 USING *,RBASE 01320000 LR RXS,R1 01340000 USING CXSA,RXS 01360000 ST 14,CSAXA SAVE RETURN REG. 01380000 L RU,CSAUCM UCM ENTRY PTR. 01400000 USING UCMLIST,RU 01420000 L R1,CSACTLM UCM ADDRESS MCS 01421018 USING PJUCM,R1 MCS 01422018 TM UCMMODE,MCSINSYS IF MCS IN SYSTEM GET PTR TO MCS 01423018 BNO NOMCS EIL ENTRY MCS 01424018 SR RTC,RTC ZERO OUT EVEN REGISTER MCS 01425018 LR RXB,RU GET UCM ENTRY POINTER MCS 01426018 LA RXB,ZERO(RXB) ZERO HIGH ORDER BYTE MCS 01426518 S RXB,UCMVEA SUBT FIRST ENTRY TOGET TOTALMCS 01427018 D RTC,UCMVEZ OFFSET.DIVIDE BY SIZE OF MCS 01428018 * EACH ENTRY TO GET INDEX TO MCS 01429018 SLL RXB,TWO EIL. MULT BY 4 MCS 01430018 A RXB,UCMLSTP ADD ADDRESS OF BEGIN OF EIL MCS 01431018 NOMCS EQU * MCS 01432018 SR RTC,RTC CLEAR. 01440000 IC RTC,CSACODE ENTRY CODE. 01460000 MVI CSACODE,X'00' 01480000 B *+4(RTC) FUNCTION SELECTION 01500000 B PJOPEN TO OPEN. 01520000 B PJCLOSE TO CLOSE. 01540000 EJECT 01560000 PJCLOSE EQU * 01580000 L R1,CSACTLM UCM ADDRESS M3472 01590019 L RI,UCMDCB 01600000 LTR RI,RI 01620000 BZ NEVEROPN DCB WAS NOT OPENED M3472 01640019 USING IHADCB,RI 01660000 USING PJUCM,R1 01680000 TM UCMMODE,UCMFIX FIXED MODE? 01720000 BO PJFIX9 YES. SKIP GETMAIN 01740000 GETMAIN R,SP=255,LV=PNCORE 01760000 B PJEND9 01780000 PJFIX9 LA R1,UCMOPENX ADDRES FIXED SPACE 01800000 PJEND9 LR RP,R1 BASE OPEN BLOCKS 01820000 MVC 0(PNSIZE,RP),PNOPEN MOVE PRE-FORMATTED PART 01840000 USING PNOPEN,RP 01860000 L RTB,CVTPTR 01880000 USING PJCVT,RTB 01900000 L RTB,CVTTCBP RTB PTS TO CURRENT TCB 01920000 L RTB,4(RTB) TIOT PTR TO TCB 01940000 ST RP,12(RTB) TIOT PTR TO TCB 01960000 DROP RTB 01980000 MVC PNTUCB+1(3),UCMUCB+1 UCB PTR TO TIOT 02000000 * DISCONNECT DATA MANAGEMENT. 02020000 MVI DMX+4,X'80' CLOSE TERMINAL FLAG BYTE. 02040000 LA R1,DMX+4 02060000 CLOSE ((RI)),MF=(E,(1)) 02080000 LA R1,ZERO 18772 02086018 ST R1,12(RTB) SET TCBTIOT FIELD TO ZERO 18772 02092018 SPACE 02100000 * PREPARE REMOTE LIST. 02120000 * NO MORE DCB. 02140000 L R1,CSACTLM UCM ADDRESS P 02160000 TM UCMMODE,MCSINSYS IS MCS IN THIS SYSTEM MCS 02166018 BZ NONMCS MCS NOT PRESENT MCS 02172018 STATUSA L RTB,UCMUCB GET UCB POINTER M3472 02173019 TM SRTESTAT(RTB),HEX40 IS DEVICE CHANGING TO OFFLINE 19084 02174019 BZ DEVSTAT NO LEAVE ONLINE BIT ALONE 19084 02175019 NI SRTESTAT(RTB),HEX34 SHOW DEVICE IS OFFLINE 19084 02176019 B CONTINUE CONTINUE PROCESSING 19084 02177019 DEVSTAT NI SRTESTAT(RTB),HEXB4 SHOW DEVICE IS OFFLINE, 19084 02177119 * NOT A CONSOLE 19084 02177219 CONTINUE NI UCMATR,FB TURN OFF DEVICE STATUS BIT 19084 02178019 B FREE FREE DCB - ALWAYS GETMAINED IN MCS 02184018 NONMCS TM UCMMODE,UCMFIX FIXED MODE MCS 02190018 BO PJEND YES. DON'T FREE DCB P 02200000 FREE LTR R1,RI WAS DCB EVER OPENED M3472 02210019 BZ PJEXITC NO, EXIT M3472 02220019 FREEMAIN R,SP=255,LV=DMCORE,A=(1) 02240000 L R1,CSACTLM UCM ADDRESS MCS 02245018 TM UCMMODE,MCSINSYS+UCMFIX ARE FIXED + MCS IN SYSTEM MCS 02250018 BO PJEND DO NOT FREE WORK AREA IF BOTHMCS 02255018 LR R1,RP SET UP TO FREE TIOT & JFCB SPACE 02260000 FREEMAIN R,SP=255,LV=PNCORE,A=(1) 02280000 DROP RP 02300000 PJEND EQU * P 02320000 L R1,CSACTLM UCM ADDRESS MCS 02320918 TM UCMMODE,MCSINSYS IS MCS IN THIS SYSTEM MCS 02321818 BNO CLEARECB NO MCS 02322718 NI UCMATR,MASK255-UCMUF YES,TURN OFF THE ACTIVE BIT MCS 02323618 * YES RESET THE EIL TO POINT MCS 02324518 * TO THE UCM ECB -NEVER POSTEDMCS 02325418 LA RTC,UCMECB GET ADDR OF ECB MCS 02326318 TM DEIL(RXB),EIGHTY USE PREVIOUSLY CALCULATED 20061 02327200 BNO NOTLAST INDEX TO INDEX IO ECBS MCS 02328118 ST RTC,DEIL(RXB) IF THIS WAS PREVIOUSLY THE 20061 02329000 OI DEIL(RXB),EIGHTY LAST ECB LEAVE INDICATOR ON 20061 02329900 B NOTLAST+FOUR GO AROUND STORE MCS 02330818 NOTLAST ST RTC,DEIL(RXB) NOT LAST LEAVE ALONE 20061 02331700 L RTC,UCMUCB GET TO ASSOCIATED UCB MCS 02332618 SRTESTAT EQU 3 MCS 02334418 CLEARECB EQU * MCS 02335318 UCBATI EQU 11 MCS 02337118 MVI UCBATI(RTC),ZERO ATTN INDEX NOW ZERO MCS 02338118 * RE-SET UCM ENTRY. 02340000 XC UCMECB,UCMECB CLEAR ECB. 02360000 XC UCMDCB,UCMDCB CLEAR DCB PTR. 02380000 NI UCMSTS,255-UCMBF-UCMCF NOT BUSY AND CLOSED. 02400000 SPACE 02420000 PJEXITC EQU * 02440000 MVC CSANAME,PJXNAME NAME TO REMOTE LIST. 02460000 L 14,CSAXA RESTORE RETURN REG. 02480000 L R1,CSACTLM UCM ADDRESS MCS 02484018 TM UCMMODE,MCSINSYS IS MCS IN SYSTEM MCS 02488018 BNO *+SIX NO RETURN TO XTRNL HANDLER MCS 02492018 BR RR RETURN TO DEV SERV RTN MCS 02496018 LR R1,RXS 02500000 LR RPL,RXS 02520000 XCTL SF=(E,(15)) 02540000 NEVEROPN TM UCMMODE,MCSINSYS IS THIS MCS SYSTEM M3472 02545019 BZ PJEXITC NO, EXIT M3472 02550019 B STATUSA TEST STATUS A BYTE M3492 02555019 EJECT 02560000 * 02580000 * OPEN PROCEDURE. 02600000 * 02620000 PJOPEN EQU * 02640000 L R1,CSACTLM UCM ADDRESS P 02660000 TM UCMMODE,MCSINSYS IS MCS IN THIS SYSTEM MCS 02666018 BNO NOTMCS NO CONTINUE 19772 02670019 L RTC,UCMUCB GET UCB ADDRESS 19772 02671019 TM 3(RTC),RP IS DEVICE ALLOCATED 19772 02672019 BNO GETDCB NO - CONTINUE 19772 02680019 L RR,CSAXA GET RETURN ADDRESS 19772 02690019 BR RR RETURN TO DSV 19772 02691019 NOTMCS TM UCMMODE,UCMFIX IS THIS FIXED MODE 19772 02692019 BO PJFIX2 YES. NO GETMAIN FOR DCB P 02700000 B GETDCB+EIGHT GO AROUND MCS ACTIVE FLAG SET MCS 02704018 GETDCB EQU * MCS 02708018 OI UCMATR,UCMUF TURN ON ACTIVE FLAG MCS 02712018 NI UCMSTS,MASK255-UCMTA TURN OFF OPEN PENDING FLAG MCS 02716018 * SPACE FOR DATA BLOCKS. 02720000 GETMAIN R,SP=255,LV=DMCORE 02740000 B PJEND2 P 02760000 PJFIX2 LA R1,UCMOUDCB ADDRESS FIXED DCB P 02780000 PJEND2 EQU * P 02800000 LR RD,R1 02820000 MVC 0(DMCORE,RD),DMDCB 02840000 ST RD,UCMDCB PT UCM AT BLOCKS. 02860000 USING IHADCB,RD 02880000 * RELOCATE POINTERS. 02900000 EJECT 02920000 L R1,CSACTLM UCM ADDRESS P 02940000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 02960000 BO PJFIX3 YES. DON'T GETMAIN WORK SPACE P 02980000 GETMAIN R,SP=255,LV=PNCORE 03000000 B PJEND3 P 03020000 PJFIX3 LA R1,UCMOPENX ADDRESS FIXED WORK SPACE P 03040000 PJEND3 EQU * P 03060000 LR RP,R1 BASE OPEN BLOCKS. 03080000 MVC 0(PNSIZE,RP),PNOPEN MOVE PRE-FORMATTED PART. 03100000 USING PNOPEN,RP 03120000 MVC PNJNAME+9(44-9),PNJNAME+8 BLANKS TO NAME FIELD. 03140000 XC PNJFCB+44(176-44),PNJFCB+44 CLEAR JFCB BALANCE. 03160000 OI PNJPNJ,X'FF' FIXED MODE RE-WRITE STOP. 03180000 L RTB,CVTPTR 03200000 USING PJCVT,RTB 03220000 L RTB,CVTTCBP 03240000 L RTB,4(RTB) RTB PTS TO CURRENT TCB. 03260000 LR RXE,RTB ** SAVE TCB PTR. 03280000 L RXI,12(RXE) ** SAVE CURRENT TIOT PTR. 03300000 ST RP,12(RTB) TIOT PTR TO TCB. 03320000 DROP RTB 03340000 MVC PNTUCB+1(3),UCMUCB+1 UCB PTR TO TIOT. 03360000 LA RTB,PNJFCB REMOTE JFCB PTR. 03380000 IC RTC,PNXLST SAVE FLAGS. 03400000 ST RTB,PNXLST DCBEXLST JFCB PTR. 03420000 STC RTC,PNXLST RESTORE FLAGS. 03440000 LA RTB,PNXLST EXIT LIST LOC. 03460000 IC RTC,DCBEXLST 03480000 ST RTB,DCBEXLST DCB PTS TO XLST. 03500000 STC RTC,DCBEXLST 03520000 EJECT 03540000 OPEN ((RD),INPUT),TYPE=J,MF=(E,PNJEF) 03560000 SPACE 03580000 ST RXI,12(RXE) ** RESTORE SAVED TIOT PTR. 03600000 L R1,CSACTLM UCM ADDRESS MCS 03602018 TM UCMMODE,MCSINSYS MCS IN SYSTEM MCS 03605018 BZ *+EIGHT NO MCS 03610018 NI UCMATR,FB TURN OFF DEVICE STATUS BIT MCS 03615018 XC DCBEXLST+1(3),DCBEXLST+1 03620000 SPACE 03640000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 03680000 BO PJEND4 YES. DON'T FREE WORK SPACE P 03700000 LR R1,RP OPEN BLOCKS PTR. 03720000 FREEMAIN R,SP=255,LV=PNCORE,A=(1) 03740000 PJEND4 EQU * 03760000 SPACE 03780000 DROP RP 03800000 EJECT 03820000 * PT WAIT AT ECB THRU EIL. 03840000 SPACE 03860000 L RP,CSAUCM+4 03880000 USING PJUCM,RP 03900000 L RP,UCMLSTP EIL LOCATION. 03920000 DROP RP 03930018 USING EILF,RP 03940000 * UPDATE EVENT INDICATION LIST(EIL). 03960000 LA RI,DMDECB ECB PTR. 03980000 L R1,CSACTLM UCM ADDRESS MCS 03981018 USING PJUCM,R1 03982018 TM UCMMODE,MCSINSYS IS MCS IN SYSTEM MCS 03983018 BNO STORENL+EIGHT NO MCS 03984018 L RPL,UCMUCB UCB PTR MCS 03985018 MVI UCBATI(RPL),FOURX ATTN INDEX TO CONSOLE RTN MCS 03986018 TM DEIL(RXB),EIGHTY IS THIS THE LAST PTR IN LIST 20061 03987000 BNO STORENL NO DO A NORMAL STORE OF PTR MCS 03988018 ST RI,DEIL(RXB) STORE POINTER TO ECB 20061 03990000 OI DEIL(RXB),EIGHTY THIS IS THE LAST PTR IN LIST 20061 03992000 B RETTOPM RETURN TO PM MCS 03994018 STORENL ST RI,DEIL(RXB) POINT EIL TO THIS ECB 20061 03996000 B RETTOPM RETURN TO PM MCS 03998018 LA RXB,EILIOL-4 ECB PTR LIST.(CURRENT LAST) 04000000 LA RXE,0 BXH ZERO. 04020000 LA RXI,4 INDEX BY WORDS. 04040000 LR RTB,RXB SAVE LIST PTR. 04060000 TM 4(RXB),X'80' TEST FOR SLOT AFTER CURRENT LAST 04080000 BZ *+8 GOT IT. 04100000 BXH RXB,RXI,*-8 NEXT. 04120000 ST RI,4(RXB) INSERT NEW ECB PTR. 04140000 OI 4(RXB),X'80' SET LIST LAST FLAG. 04160000 NI 0(RXB),X'00' KILL CURRENT END FLAG. 04180000 SR RXB,RTB LAST POSITION RELATIVE. 04200000 L RTB,EILF COMPANION LIST PTR. 04220000 LA RTB,0(RTB) LOOSE HIGH ORDER FLAGS. 04240000 AR RTB,RXB LAST COMPANION LIST SLOT PTR. 04260000 ST RU,0(RTB) INSERT UCM PTR. 04280000 SPACE 04300000 RETTOPM EQU * MCS 04306018 MCSINSYS EQU X'02' MCS 04312018 MVC CSANAME(8),UCMNAME RETURN TO PM. 04320000 L 14,CSAXA RESTORE RETURN REG. 04340000 LR R1,RXS 04360000 LR RPL,RXS R15 PRE-SET. 04380000 XCTL SF=(E,(15)) 04400000 DS 0D 04420000 PJXNAME DC CL8'IGCXL07B' EXTERNAL PROCESSOR NAME. 04440000 DS CL16 04460000 TITLE 'PN DATA CONTROL BLOCKS' 04480000 IEEUCDC 04500000 TITLE 'PJ OPEN-TIOT,JFCB' 04520000 * DEFINITION OF DYNAMIC CORE FOR CONSOLE OPEN, 04540000 PNOPEN DS 0D 04560000 * TIOT. 04580000 PNTIOT DC CL8'CONSOLE' TEMPORARY TIOT FOR DURATION 04600000 DC CL8'SYSTEM' OF OPENJ FOR CONSOLE. ADDRESSED 04620000 DC CL8'VMS' BY TCB PTR. 04640000 DC X'14' 04660000 DC X'00' 04680000 DC H'0' 04700000 PNTDDN DC CL8'IEECVTSK' DD NAME. 04720000 PNTTR DC XL3'0' ZERO TTR, OPENJ USED. 04740000 DC X'00' 04760000 PNTUCB DS 0F UCB PTR. 04780000 DC X'00' 04800000 DC FL3'0' 04820000 PNTEND DC F'0' TIOT END. 04840000 SPACE 04860000 DS 0D 04880000 * OPENJ E-FORM SLOT. 04900000 PNJEF DC X'80' LAST ENTRY. 04920000 DC FL3'0' DCB PTR. 04940000 SPACE 04960000 * OPENJ JFCB EXLST PTR. 04980000 PNXLST DC X'87' LAST ENTRY AND JFCB 07 CODE. 05000000 DC FL3'0' JFCB PTR. DCBEXLST PTS HERE. 05020000 * JFCB PTR RE-SET DYNAMICALLY. 05040000 SPACE 05060000 * JFCB.(PARTIAL DEF., REST IS ZERO.) 05080000 PNJFCB DS 0D 05100000 PNJNAME DC CL8'CONSOLE' 05120000 DC CL1' ' PROPAGATED BLANK. 05140000 PNJPNJ EQU PNJFCB+52 OPENJ FLAG BYTE. 05160000 SPACE 05180000 PNCORE EQU PNJFCB-PNOPEN+176 DYNAMIC CORE REQIREMENT. 05200000 PNSIZE EQU PNJFCB-PNOPEN+9 AMOUNT PRE-FORMATTED. 05220000 TITLE 'PJ CXSA' 05240000 PJCXSA DSECT 05260000 IEECVMUG CXSA 05280000 TITLE 'PJ EIL' 05300000 PJEIL DSECT 05320000 IEECVMUG EIL 05340000 TITLE 'PJ UCM' 05360000 PJUCM DSECT 05380000 IEECUCM 05400000 TITLE 'PJ CVT' 05420000 PJCVT DSECT 05440000 CVT 05460000 TITLE 'PJ DCB,IOB,CCW' 05480000 IEEUCDC MAP 05500000 CSECT 05520000 END IEECVOC 05540000 ./ ADD SSI=03051307,NAME=IEECVOCP,SOURCE=0 IEECVOC CSECT 00020000 *021780,023360-023370 UCB STATUS A BYTE 19084 00030019 *026720-026800 19772 00030119 *023290,023310,023320,023340,039850,039880,039900,039940,013880 20061 00030220 *********************************************************************** 00031019 TITLE ' OPEN/CLOSE CONSOLE' 00040000 * 00060000 * NAME VMS CONSOLE UNIT INITIALIZATION. 00080000 * BSAM OUTPUT. 00100000 * 00120000 * FUNCTION THIS MODULE OPENS, AND LATE CLOSES, A UNIT DESIGNATED 00140000 * AS A CONSOLE SUPPORT UNIT. 00160000 * 00180000 * ENTRY POINT A SEGMENT OF A TYPE 1V TRANSIENT SVC. 00200000 * 00220000 * INPUT R1 POINTS TO 40 BYTE SCRATCH PAD AREA(SVRB EXTENSION) 00240000 * MAPPED BY MACRO =IEECVMUG CXSA=. 00260000 * 00280000 * OUTPUT FOR OPEN... SUPPLIES OPENED DCB. 00300000 * FOR CLOSE.. CLOSES DCB AND FREES THE CORE. 00320000 * 00340000 * EXTERNAL REF. CVT. 00360000 * TCB. 00380000 * SVRB. 00400000 * UNIT CONTROL MODULE. 00420000 * CLOSE. 00440000 * DELETE. 00460000 * OPENJ. 00480000 * XCTL. 00500000 * GETMAIN. 00520000 * FREEMAIN. 00540000 * 00560000 * 00580000 * EXITS AFTER OPEN TO PROCESSOR MODULE. 00600000 * AFTER CLOSE TO EXTERNAL PROCESSOR. 00620000 * 00640000 * TABLES SVRB EXTENSION. 00660000 * TIOT AND JFCB FOR OPEN. 00680000 * EVENT INDICATION LIST (EIL) TO ADD AN ECB POINTER. 00700000 * 00720000 * OPERATION INITIALLY REG 1 POINTS TO THE 40 BYTE SVRB EXTENSION 00740000 * PARAMETER LIST. THEN ADDRESSABILTY FOR A PARTICULAR 00760000 * UCM ENTRY, THE UCM MODULE ITSELF, AND, IF OPEN, THE 00780000 * DCB IS ESTABLISHED. A CODE SEGREGATES OPEN AND CLOSE. 00800000 * IF OPEN REQUEST, DYNAMIC CORE IS OPTAINED FOR A TIOT 00820000 * AND JFCB. THE DATA MODULE IS LOADED. OPEN,TYPE=J, IS 00840000 * ISSUED. THE TIOT/JFCB CORE IS THEN FREED. A SCAN OF 00860000 * THE EIL IS PERFORMED FOR LAST CURRENT ECB POINTER. THE 00880000 * CURRENT ECB ADDRESS, AND UCM PTR, ARE ADDED. 00900000 * IF CLOSE REQUEST, THE DCB IS CLOSED, AND THE DATA 00920000 * MODULE IS DELETED. 00940000 * 00960000 R0 EQU 0 LOCAL SAVE REGISTER. 00980000 R1 EQU 1 INTERFACE REGISTER. 01000000 RXS EQU 2 EXTENDED SVRB AREA PTR. 01020000 RTB EQU 3 SCRATCH. 01040000 RTC EQU 4 SCRATCH. 01060000 RXB EQU 5 INDEXING. 01080000 RXI EQU 6 INDEXING. 01100000 RXE EQU 7 INDEXING. 01120000 RP EQU 8 OPEN CONTROL BLOCK BASE /UCM,EIL. 01140000 RI EQU 9 ODD INDEXER. 01160000 RD EQU 10 DATA CONTROL BLOCKS BASE. 01180000 RU EQU 11 UCM ENTRY BASE. 01200000 RBASE EQU 12 PROGRAM BASE. 01220000 RS EQU 13 SAVE AREA PTR. 01240000 RR EQU 14 RETURN PT. 01260000 RPL EQU 15 XCTL PARAMETER LIST PTR. 01280000 ZERO EQU 0 18772 01299018 BALR RBASE,0 01300000 USING *,RBASE 01320000 LR RXS,R1 01340000 USING CXSA,RXS 01360000 ST 14,CSAXA SAVE RETURN REG. 01380000 L RU,CSAUCM UCM ENTRY PTR. 01400000 USING UCMLIST,RU 01420000 SR RTC,RTC CLEAR. 01440000 IC RTC,CSACODE ENTRY CODE. 01460000 MVI CSACODE,X'00' 01480000 B *+4(RTC) FUNCTION SELECTION 01500000 B PJOPEN TO OPEN. 01520000 B PJCLOSE TO CLOSE. 01540000 EJECT 01560000 PJCLOSE EQU * 01580000 L R1,CSACTLM UCM ADDRESS 01590019 L RI,UCMDCB 01600000 LTR RI,RI 01620000 BZ PJEXITC 01640020 USING IHADCB,RI 01660000 USING PJUCM,R1 01680000 TM UCMMODE,UCMFIX FIXED MODE? 01720000 BO PJFIX9 YES. SKIP GETMAIN 01740000 GETMAIN R,SP=255,LV=PNCORE 01760000 B PJEND9 01780000 PJFIX9 LA R1,UCMOPENX ADDRES FIXED SPACE 01800000 PJEND9 LR RP,R1 BASE OPEN BLOCKS 01820000 MVC 0(PNSIZE,RP),PNOPEN MOVE PRE-FORMATTED PART 01840000 USING PNOPEN,RP 01860000 L RTB,CVTPTR 01880000 USING PJCVT,RTB 01900000 L RTB,CVTTCBP RTB PTS TO CURRENT TCB 01920000 L RTB,4(RTB) TIOT PTR TO TCB 01940000 ST RP,12(RTB) TIOT PTR TO TCB 01960000 DROP RTB 01980000 MVC PNTUCB+1(3),UCMUCB+1 UCB PTR TO TIOT 02000000 * DISCONNECT DATA MANAGEMENT. 02020000 MVI DMX+4,X'80' CLOSE TERMINAL FLAG BYTE. 02040000 LA R1,DMX+4 02060000 CLOSE ((RI)),MF=(E,(1)) 02080000 LA R1,ZERO 18772 02086018 ST R1,12(RTB) SET TCBTIOT FIELD TO ZERO 18772 02092018 SPACE 02100000 * PREPARE REMOTE LIST. 02120000 * NO MORE DCB. 02140000 L R1,CSACTLM UCM ADDRESS P 02160000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? A30558 02180020 BO PJEND YES. DON'T FREE DCB P 02200000 LTR R1,RI WAS DCB EVER OPENED? M3472 02210020 BZ PJEXITC NO, EXIT M3472 02220019 FREEMAIN R,SP=255,LV=DMCORE,A=(1) 02240000 LR R1,RP SET UP TO FREE TIOT & JFCB SPACE 02260000 FREEMAIN R,SP=255,LV=PNCORE,A=(1) 02280000 DROP RP 02300000 PJEND EQU * P 02320000 * RE-SET UCM ENTRY. 02340000 XC UCMECB,UCMECB CLEAR ECB. 02360000 XC UCMDCB,UCMDCB CLEAR DCB PTR. 02380000 NI UCMSTS,255-UCMBF-UCMCF NOT BUSY AND CLOSED. 02400000 SPACE 02420000 PJEXITC EQU * 02440000 MVC CSANAME,PJXNAME NAME TO REMOTE LIST. 02460000 L 14,CSAXA RESTORE RETURN REG. 02480000 LR R1,RXS 02500000 LR RPL,RXS 02520000 XCTL SF=(E,(15)) 02540000 EJECT 02560000 * 02580000 * OPEN PROCEDURE. 02600000 * 02620000 PJOPEN EQU * 02640000 L R1,CSACTLM UCM ADDRESS P 02660000 TM UCMMODE,UCMFIX IS THIS FIXED MODE A30558 02680020 BO PJFIX2 YES. NO GETMAIN FOR DCB P 02700000 * SPACE FOR DATA BLOCKS. 02720000 GETMAIN R,SP=255,LV=DMCORE 02740000 B PJEND2 P 02760000 PJFIX2 LA R1,UCMINDCB ADDRESS FIXED DCB P 02780000 PJEND2 EQU * P 02800000 LR RD,R1 02820000 MVC 0(DMCORE,RD),DMDCB 02840000 ST RD,UCMDCB PT UCM AT BLOCKS. 02860000 USING IHADCB,RD 02880000 * RELOCATE POINTERS. 02900000 EJECT 02920000 L R1,CSACTLM UCM ADDRESS P 02940000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 02960000 BO PJFIX3 YES. DON'T GETMAIN WORK SPACE P 02980000 GETMAIN R,SP=255,LV=PNCORE 03000000 B PJEND3 P 03020000 PJFIX3 LA R1,UCMOPENX ADDRESS FIXED WORK SPACE P 03040000 PJEND3 EQU * P 03060000 LR RP,R1 BASE OPEN BLOCKS. 03080000 MVC 0(PNSIZE,RP),PNOPEN MOVE PRE-FORMATTED PART. 03100000 USING PNOPEN,RP 03120000 MVC PNJNAME+9(44-9),PNJNAME+8 BLANKS TO NAME FIELD. 03140000 XC PNJFCB+44(176-44),PNJFCB+44 CLEAR JFCB BALANCE. 03160000 OI PNJPNJ,X'FF' FIXED MODE RE-WRITE STOP. 03180000 L RTB,CVTPTR 03200000 USING PJCVT,RTB 03220000 L RTB,CVTTCBP 03240000 L RTB,4(RTB) RTB PTS TO CURRENT TCB. 03260000 LR RXE,RTB ** SAVE TCB PTR. 03280000 L RXI,12(RXE) ** SAVE CURRENT TIOT PTR. 03300000 ST RP,12(RTB) TIOT PTR TO TCB. 03320000 DROP RTB 03340000 MVC PNTUCB+1(3),UCMUCB+1 UCB PTR TO TIOT. 03360000 LA RTB,PNJFCB REMOTE JFCB PTR. 03380000 IC RTC,PNXLST SAVE FLAGS. 03400000 ST RTB,PNXLST DCBEXLST JFCB PTR. 03420000 STC RTC,PNXLST RESTORE FLAGS. 03440000 LA RTB,PNXLST EXIT LIST LOC. 03460000 IC RTC,DCBEXLST 03480000 ST RTB,DCBEXLST DCB PTS TO XLST. 03500000 STC RTC,DCBEXLST 03520000 EJECT 03540000 OPEN ((RD),OUTPUT),TYPE=J,MF=(E,PNJEF) 03560000 SPACE 03580000 ST RXI,12(RXE) ** RESTORE SAVED TIOT PTR. 03600000 L R1,CSACTLM UCM ADDRESS 03602020 XC DCBEXLST+1(3),DCBEXLST+1 03620000 SPACE 03640000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 03680000 BO PJEND4 YES. DON'T FREE WORK SPACE P 03700000 LR R1,RP OPEN BLOCKS PTR. 03720000 FREEMAIN R,SP=255,LV=PNCORE,A=(1) 03740000 PJEND4 EQU * 03760000 SPACE 03780000 DROP RP 03800000 EJECT 03820000 * PT WAIT AT ECB THRU EIL. 03840000 SPACE 03860000 L RP,CSAUCM+4 03880000 USING PJUCM,RP 03900000 L RP,UCMLSTP EIL LOCATION. 03920000 DROP RP 03930018 USING EILF,RP 03940000 * UPDATE EVENT INDICATION LIST(EIL). 03960000 LA RI,DMDECB ECB PTR. 03980000 LA RXB,EILIOL-4 ECB PTR TO LIST.(CURRENT LAST) 03990020 SR RXE,RXE BXH ZERO A30558 04001220 LA RXI,4 INDEX BY WORDS. 04040000 LR RTB,RXB SAVE LIST PTR. 04060000 TM 4(RXB),X'80' TEST FOR SLOT AFTER CURRENT LAST 04080000 BZ *+8 GOT IT. 04100000 BXH RXB,RXI,*-8 NEXT. 04120000 ST RI,4(RXB) INSERT NEW ECB PTR. 04140000 OI 4(RXB),X'80' SET LIST LAST FLAG. 04160000 NI 0(RXB),X'00' KILL CURRENT END FLAG. 04180000 SR RXB,RTB LAST POSITION RELATIVE. 04200000 L RTB,EILF COMPANION LIST PTR. 04220000 LA RTB,0(RTB) LOOSE HIGH ORDER FLAGS. 04240000 AR RTB,RXB LAST COMPANION LIST SLOT PTR. 04260000 ST RU,0(RTB) INSERT UCM PTR. 04280000 MVC CSANAME(8),UCMNAME RETURN TO PM 04310020 L 14,CSAXA RESTORE RETURN REG. 04340000 LR R1,RXS 04360000 LR RPL,RXS R15 PRE-SET. 04380000 XCTL SF=(E,(15)) 04400000 DS 0D 04420000 PJXNAME DC CL8'IGCXL07B' EXTERNAL PROCESSOR NAME. 04440000 DS CL16 04460000 TITLE 'PN DATA CONTROL BLOCKS' 04480000 IEEUCDP 04500000 TITLE 'PJ OPEN-TIOT,JFCB' 04520000 * DEFINITION OF DYNAMIC CORE FOR CONSOLE OPEN, 04540000 PNOPEN DS 0D 04560000 * TIOT. 04580000 PNTIOT DC CL8'CONSOLE' TEMPORARY TIOT FOR DURATION 04600000 DC CL8'SYSTEM' OF OPENJ FOR CONSOLE. ADDRESSED 04620000 DC CL8'VMS' BY TCB PTR. 04640000 DC X'14' 04660000 DC X'00' 04680000 DC H'0' 04700000 PNTDDN DC CL8'IEECVTSK' DD NAME. 04720000 PNTTR DC XL3'0' ZERO TTR, OPENJ USED. 04740000 DC X'00' 04760000 PNTUCB DS 0F UCB PTR. 04780000 DC X'00' 04800000 DC FL3'0' 04820000 PNTEND DC F'0' TIOT END. 04840000 SPACE 04860000 DS 0D 04880000 * OPENJ E-FORM SLOT. 04900000 PNJEF DC X'80' LAST ENTRY. 04920000 DC FL3'0' DCB PTR. 04940000 SPACE 04960000 * OPENJ JFCB EXLST PTR. 04980000 PNXLST DC X'87' LAST ENTRY AND JFCB 07 CODE. 05000000 DC FL3'0' JFCB PTR. DCBEXLST PTS HERE. 05020000 * JFCB PTR RE-SET DYNAMICALLY. 05040000 SPACE 05060000 * JFCB.(PARTIAL DEF., REST IS ZERO.) 05080000 PNJFCB DS 0D 05100000 PNJNAME DC CL8'CONSOLE' 05120000 DC CL1' ' PROPAGATED BLANK. 05140000 PNJPNJ EQU PNJFCB+52 OPENJ FLAG BYTE. 05160000 SPACE 05180000 PNCORE EQU PNJFCB-PNOPEN+176 DYNAMIC CORE REQIREMENT. 05200000 PNSIZE EQU PNJFCB-PNOPEN+9 AMOUNT PRE-FORMATTED. 05220000 TITLE 'PJ CXSA' 05240000 PJCXSA DSECT 05260000 IEECVMUG CXSA 05280000 TITLE 'PJ EIL' 05300000 PJEIL DSECT 05320000 IEECVMUG EIL 05340000 TITLE 'PJ UCM' 05360000 PJUCM DSECT 05380000 IEECUCM 05400000 TITLE 'PJ CVT' 05420000 PJCVT DSECT 05440000 CVT 05460000 TITLE 'PJ DCB,IOB,CCW' 05480000 IEEUCDP MAP 05500000 END 05520000 ./ ADD SSI=03051563,NAME=IEECVOCX,SOURCE=0 IEECVOC CSECT 00020000 *021780,024850-024860 UCB STATUS A BYTE 19084 00030019 *038080 APAR 22445 2445 00031019 *026720-026800 19772 00031119 *********************************************************************** 00032019 TITLE ' EXCP (1052) OPEN/CLOSE' 00040000 * 00050018 * NAME VMX CONSOLE UNIT INITIALIZATION. 00060018 * EXCP INPUT/OUTPUT. 00070018 * 00080018 * FUNCTION THIS MODULE OPENS, AND LATER CLOSES, A UNIT DESIGNATED 00090018 * AS A CONSOLE SUPPORT UNIT. 00100018 * 00110018 * ENTRY POINT A SEGMENT OF A TYPE IV TRANSIENT SVC. 00120018 * IEECVOC 00130018 * 00140018 * INPUT R1 POINTS TO 40 BYTE SCRATCH PAD AREA(SVRB EXTENSION) 00150018 * MAPPED BY MACRO =IEECVMUG CXSA=. 00160018 * 00170018 * OUTPUT FOR OPEN... SUPPLIES OPENED DCB. 00180018 * FOR CLOSE.. CLOSES DCB AND FREES THE CORE. 00190018 * 00200018 * EXTERNAL CVT 00210018 * REFERENCES TCB 00220018 * SVRB 00230018 * UCM 00240018 * CLOSE 00250018 * OPENJ 00260018 * XCTL 00270018 * GETMAIN,FREEMAIN 00280018 * EXITS AFTER OPEN TO PROCESS MODULE. 00290018 * AFTER CLOSE TO EXTERNAL PROCESSOR IN NON-MCS SYSTEM 00300018 * TO DEVICE SERVICE IN MCS SYSTEM 00310018 * 00320018 * TABLES SVRB EXTENSION. 00330018 * TIOT AND JFCB FOR OPEN. 00340018 * EVENT INDICATION LIST (EIL) IN NON-MCS SYSTEM 00350018 * 00360018 * OPERATION INITIALLY REG 1 POINTS TO THE 40 BYTE SVRB EXTENSION 00370018 * PARAMETER LIST. THEN ADDRESSABILITY FOR A PARTICULAR 00380018 * UCM ENTRY, THE UCM MODULE ITSELF, AND, IF OPEN, THE 00390018 * DCB IS ESTABLISHED. A CODE SEGREGATES OPEN AND CLOSE. 00400018 * IF OPEN REQUEST, DYNAMIC CORE IS OBTAINED (IF NECESSARY) 00410018 * FOR A TIOT AND JFCB. THE DATA MODULE IS LOADED. OPEN, 00420018 * TYPE=J IS ISSUED. THE TIOT/JFCB CORE IS THEN FREED IF 00430018 * IT WAS GOTTEN DYNAMICALLY. A SCAN OF THE EIL IS 00440018 * PERFORMED FOR LAST CURRENT ECB POINTER. AND IN NON-MCS 00450018 * SYSTEMS THE CURRENT ECB ADDRESS, AND UCM PTR, ARE 00460018 * ADDED. IN MCS THE EIL IS FIXED. 00470018 * IF CLOSED REQUEST, THE DCB IS CLOSED, AND THE DATA 00480018 * MODULE IS DELETED 00490018 * 00500018 * 00510018 * 00520018 R0 EQU 0 LOCAL SAVE REGISTER. 00980000 R1 EQU 1 INTERFACE REGISTER. 01000000 RXS EQU 2 EXTENDED SVRB AREA PTR. 01020000 RTB EQU 3 SCRATCH. 01040000 RTC EQU 4 SCRATCH. 01060000 RXB EQU 5 INDEXING. 01080000 RXI EQU 6 INDEXING. 01100000 RXE EQU 7 INDEXING. 01120000 RP EQU 8 OPEN CONTROL BLOCK BASE /UCM,EIL. 01140000 RI EQU 9 ODD INDEXER. 01160000 RD EQU 10 DATA CONTROL BLOCKS BASE. 01180000 RU EQU 11 UCM ENTRY BASE. 01200000 RBASE EQU 12 PROGRAM BASE. 01220000 RS EQU 13 SAVE AREA PTR. 01240000 RR EQU 14 RETURN PT. 01260000 RPL EQU 15 XCTL PARAMETER LIST PTR. 01280000 TWELVE EQU 12 MCS 01282018 ONE EQU 1 MCS 01284018 ZERO EQU X'00' MCS 01286018 MASK255 EQU 255 MCS 01288018 SIXTEEN EQU 16 MCS 01290018 FOUR EQU X'04' MCS 01292018 TENX EQU X'10' MCS 01294018 FB EQU X'FB' MCS 01295018 SIX EQU 6 MCS 01296018 EIGHT EQU 8 MCS 01298018 HEX40 EQU X'40' 19084 01299019 HEX34 EQU X'34' 19084 01299119 HEXB4 EQU X'B4' 19084 01299219 BALR RBASE,0 01300000 USING *,RBASE 01320000 LR RXS,R1 01340000 USING CXSA,RXS 01360000 ST 14,CSAXA SAVE RETURN REG. 01380000 L RU,CSAUCM UCM ENTRY PTR. 01400000 USING UCMLIST,RU 01420000 SR RTC,RTC CLEAR. 01440000 IC RTC,CSACODE ENTRY CODE. 01460000 MVI CSACODE,X'00' 01480000 B *+4(RTC) FUNCTION SELECTION 01500000 B PJOPEN TO OPEN. 01520000 B PJCLOSE TO CLOSE. 01540000 EJECT 01560000 PJCLOSE EQU * 01580000 L RI,UCMDCB 01600000 L R1,CSACTLM UCM ADDRESS 01610019 LTR RI,RI 01620000 BZ NEVEROPN DCB WAS NOT OPENED M3472 01640019 USING IHADCB,RI 01660000 USING PJUCM,R1 01680000 TM UCMMODE,UCMFIX FIXED MODE? 01720000 BO PJFIX9 YES. SKIP GETMAIN 01740000 GETMAIN R,SP=255,LV=PNCORE 01760000 B PJEND9 01780000 PJFIX9 LA R1,UCMOPENX ADDRES FIXED SPACE 01800000 PJEND9 LR RP,R1 BASE OPEN BLOCKS 01820000 MVC 0(PNSIZE,RP),PNOPEN MOVE PRE-FORMATTED PART 01840000 USING PNOPEN,RP 01860000 L RTB,CVTPTR 01880000 USING PJCVT,RTB 01900000 L RTB,CVTTCBP RTB PTS TO CURRENT TCB 01920000 L RTB,4(RTB) TIOT PTR TO TCB 01940000 ST RP,12(RTB) TIOT PTR TO TCB 01960000 DROP RTB 01980000 MVC PNTUCB+1(3),UCMUCB+1 UCB PTR TO TIOT 02000000 * DISCONNECT DATA MANAGEMENT. 02020000 MVI DMX+4,X'80' CLOSE TERMINAL FLAG BYTE. 02040000 LA R1,DMX+4 02060000 CLOSE ((RI)),MF=(E,(1)) 02080000 LA R1,ZERO 18772 02086018 ST R1,12(RTB) SET TCBTIOT FIELD TO ZERO 18772 02092018 SPACE 02100000 * PREPARE REMOTE LIST. 02120000 * NO MORE DCB. 02140000 L R1,CSACTLM UCM ADDRESS P 02160000 TM UCMMODE,MCSINSYS IF MCS DCB ALWAYS GETM AINED MCS 02166018 BZ NOMCS MCS NOT PRESENT MCS 02172018 STATUSA L RTB,UCMUCB GET UCB POINTER M3472 02173019 TM SRTESTAT(RTB),HEX40 IS DEVICE CHANGING TO OFFLINE 19084 02174019 BZ DEVSTAT NO LEAVE ONLINE BIT ALONE 19084 02175019 NI SRTESTAT(RTB),HEX34 SHOW DEVICE IS OFFLINE 19084 02176019 B CONTINUE CONTINUE PROCESSING 19084 02177019 DEVSTAT NI SRTESTAT(RTB),HEXB4 SHOW DEVICE IS ONLINE, 19084 02177119 * NOT A CONSOLE 19084 02177219 CONTINUE NI UCMATR,FB TURN OFF DEVICE STATUS BIT 19084 02178019 B FREE FREE DCB - ALWAYS GETMAINED IN MCS 02184018 NOMCS TM UCMMODE,UCMFIX FIXED MODE MCS 02190018 BO PJEND YES. DON'T FREE DCB P 02200000 FREE LTR R1,RI WAS DCB EVER OPENED M3472 02210019 BZ PJEXITC NO, EXIT M3472 02220019 FREEMAIN R,SP=255,LV=DMCORE,A=(1) 02240000 L R1,CSACTLM UCM ADDRESS MCS 02245018 TM UCMMODE,MCSINSYS+UCMFIX IF BOTH,WORK AREA IS FIXED MCS 02250018 BO PJEND MCS AND FIXED WORK AREA STATICCS 02255018 LR R1,RP SET UP TO FREE TIOT & JFCB SPACE 02260000 FREEMAIN R,SP=255,LV=PNCORE,A=(1) 02280000 DROP RP 02300000 PJEND EQU * P 02320000 * RE-SET UCM ENTRY. 02340000 XC UCMECB,UCMECB CLEAR ECB. 02360000 XC UCMDCB,UCMDCB CLEAR DCB PTR. 02380000 NI UCMSTS,255-UCMBF-UCMCF NOT BUSY AND CLOSED. 02400000 SPACE 02420000 PJEXITC EQU * 02440000 MVC CSANAME,PJXNAME NAME TO REMOTE LIST. 02460000 L 14,CSAXA RESTORE RETURN REG. 02480000 L R1,CSACTLM UCM ADDRESS MCS 02481018 TM UCMMODE,MCSINSYS IF MCS RETURN IS TO DEV SERV MCS 02482018 BNO PJXCTLRT NOT MCS TO XTRNL HANDLER MCS 02483018 L RTC,UCMUCB GET TO ASSOCIATED UCB MCS 02484018 UCBATI EQU 11 MCS 02487018 UCBTYP EQU 18 @S68053P 02487521 MVI UCBATI(RTC),ZERO ATTN INDEX NOW ZERO MCS 02488018 SRTESTAT EQU 3 MCS 02489018 NI UCMATR,MASK255-UCMUF TURN OFF ACTIVE FLAG MCS 02490018 BR RR MCS TO DEV SERV MCS 02491018 PJXCTLRT EQU * MCS 02492018 LR R1,RXS 02500000 LR RPL,RXS 02520000 XCTL SF=(E,(15)) 02540000 NEVEROPN TM UCMMODE,MCSINSYS IS THIS MCS SYSTEM M3472 02545019 BZ PJEXITC NO, EXIT M3472 02550019 B STATUSA TEST STATUS A BYTE M3472 02555019 EJECT 02560000 * 02580000 * OPEN 1052 FOR EXCP. 02600000 * 02620000 PJOPEN EQU * 02640000 L R1,CSACTLM UCM ADDRESS P 02660000 TM UCMMODE,MCSINSYS IF MCS ALWAYS GETMAIN DCB MCS 02666018 BNO NOTMCS NO CONTINUE 19772 02670019 L RTC,UCMUCB GET UCB ADDRESS 19772 02671019 TM 3(RTC),RP IS DEVICE ALLOCATED 19772 02672019 BNO GETDCB NO - CONTINUE 19772 02680019 L RR,CSAXA GET RETURN ADDRESS 19772 02690019 BR RR RETURN TO DSV 19772 02691019 NOTMCS TM UCMMODE,UCMFIX IS THIS FIXED MODE 19772 02692019 BO PJFIX2 YES. NO GETMAIN FOR DCB P 02700000 * SPACE FOR DATA BLOCKS. 02720000 GETDCB EQU * 02730018 GETMAIN R,SP=255,LV=DMCORE 02740000 B PJEND2 P 02760000 PJFIX2 LA R1,UCMINDCB ADDRESS FIXED DCB P 02780000 PJEND2 EQU * P 02800000 LR RD,R1 02820000 MVC 0(DMCORE,RD),DMDCB 02840000 ST RD,UCMDCB PT UCM AT BLOCKS. 02860000 USING IHADCB,RD 02880000 * RELOCATE POINTERS. 02900000 SR RXI,RXI 02920000 LA RXE,DMIOB 02940000 ST RXE,DCBIOBAD 02960000 ST RD,DMIDCB 02980000 IC RXI,DMCTRA 03000000 LA RXE,DMCNOP 03020000 ST RXE,DMCTRA 03040000 STC RXI,DMCTRA 03060000 EJECT 03080000 L R1,CSACTLM UCM ADDRESS P 03100000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 03120000 BO PJFIX3 YES. DON'T GETMAIN WORK SPACE P 03140000 GETMAIN R,SP=255,LV=PNCORE 03160000 B PJEND3 P 03180000 PJFIX3 LA R1,UCMOPENX ADDRESS FIXED WORK SPACE P 03200000 PJEND3 EQU * P 03220000 LR RP,R1 BASE OPEN BLOCKS. 03240000 MVC 0(PNSIZE,RP),PNOPEN MOVE PRE-FORMATTED PART. 03260000 USING PNOPEN,RP 03280000 MVC PNJNAME+9(44-9),PNJNAME+8 BLANKS TO NAME FIELD. 03300000 XC PNJFCB+44(176-44),PNJFCB+44 CLEAR JFCB BALANCE. 03320000 OI PNJPNJ,X'FF' OPENJ RE-WRITE STOP 03340000 L RTB,CVTPTR 03360000 USING PJCVT,RTB 03380000 L RTB,CVTTCBP 03400000 L RTB,4(RTB) RTB PTS TO CURRENT TCB. 03420000 LR RXE,RTB ** SAVE TCB PTR. 03440000 L RXI,12(RXE) ** SAVE CURRENT TIOT PTR. 03460000 ST RP,12(RTB) TIOT PTR TO TCB. 03480000 DROP RTB 03500000 MVC PNTUCB+1(3),UCMUCB+1 UCB PTR TO TIOT. 03520000 LA RTB,PNJFCB REMOTE JFCB PTR. 03540000 IC RTC,PNXLST SAVE FLAGS. 03560000 ST RTB,PNXLST DCBEXLST JFCB PTR. 03580000 STC RTC,PNXLST RESTORE FLAGS. 03600000 LA RTB,PNXLST EXIT LIST LOC. 03620000 IC RTC,DCBEXLST 03640000 ST RTB,DCBEXLST DCB PTS TO XLST. 03660000 STC RTC,DCBEXLST 03680000 EJECT 03700000 OPEN ((RD),INOUT),TYPE=J,MF=(E,PNJEF) 03720000 SPACE 03740000 ST RXI,12(RXE) ** RESTORE SAVED TIOT PTR. 03760000 XC DCBEXLST+1(3),DCBEXLST+1 03780000 MVI DCBIFLGS,ZERO STANDARD ERROR RECOVERY 21772 03790021 L R1,CSACTLM UCM ADDRESS MCS 03802018 TM UCMMODE,MCSINSYS IF MCS USE STD ERR REC PROC MCS 03804018 BNO NOPEN NO BRANCH 2445 03806019 NI UCMATR,FB TUEN OFF DEVICE STATUS BIT MCS 03807018 OI UCMATR,UCMUF TURN ON ACTIVE BIT MCS 03810018 NOPEN NI UCMSTS,MASK255-UCMTA TURN OFF OPEN PENDING 2445 03815019 SPACE 03820000 L R1,CSACTLM UCM ADDRESS P 03840000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 03860000 BO PJEND4 YES. DON'T FREE WORK SPACE P 03880000 LR R1,RP OPEN BLOCKS PTR. 03900000 FREEMAIN R,SP=255,LV=PNCORE,A=(1) 03920000 PJEND4 EQU * 03940000 SPACE 03960000 DROP RP 03980000 EJECT 04000000 ST RU,DMIECBP PT IOB AT ECB. 04020000 * PT WAIT AT ECB THRU EIL. 04040000 SPACE 04060000 L RP,CSAUCM+4 04080000 USING PJUCM,RP 04100000 TM UCMMODE,MCSINSYS IF MCS IN SYSTEM LEAVE EIL MCS 04105018 MCSINSYS EQU X'02' ALONE MCS 04110018 BO RETTOPM RETURN TO PM MCS 04115018 L RP,UCMLSTP EIL LOCATION. 04120000 USING EILF,RP 04140000 * UPDATE EVENT INDICATION LIST(EIL). 04160000 LR RI,RU ECB PTR 04180000 LA RXB,EILIOL-4 ECB PTR LIST.(CURRENT LAST) 04200000 LA RXE,0 BXH ZERO. 04220000 LA RXI,4 INDEX BY WORDS. 04240000 LR RTB,RXB SAVE LIST PTR. 04260000 TM 4(RXB),X'80' TEST FOR SLOT AFTER CURRENT LAST 04280000 BZ *+8 GOT IT. 04300000 BXH RXB,RXI,*-8 NEXT. 04320000 ST RI,4(RXB) INSERT NEW ECB PTR. 04340000 OI 4(RXB),X'80' SET LIST LAST FLAG. 04360000 NI 0(RXB),X'00' KILL CURRENT END FLAG. 04380000 SR RXB,RTB LAST POSITION RELATIVE. 04400000 L RTB,EILF COMPANION LIST PTR. 04420000 LA RTB,0(RTB) LOOSE HIGH ORDER FLAGS. 04440000 AR RTB,RXB LAST COMPANION LIST SLOT PTR. 04460000 ST RU,0(RTB) INSERT UCM PTR. 04480000 B MOVEPMN 68053 04480521 RETTOPM L RPL,UCMUCB UCB POINTER 68053 04481021 MVI UCBATI(RPL),FOUR ATTN INDEX = 4 68053 04481521 CLC UCBTYP(2,RPL),DEV3213 IS THIS A 3213? 68053 04482021 BNE RESETIT NO, SKIP NEXT CODE 68053 04482521 MVI UCBATI(RPL),X'00' ATTN INDEX = 0 68053 04483021 NI UCMATR,X'B0' TURN OFF ATTN SUPPORT 68053 04483521 NI UCMDISP,X'F7' TURN OFF FULL CAPABILITY 68053 04484021 OI UCMDISP,X'14' TURN ON OUTPUT ONLY 68053 04484521 RESETIT LA RPL,FOUR PTR TO MCS PREFIX IS 68053 04485021 LCR RPL,RPL FOUR BYTES BEFORE THE UCM MCS 04486018 AR RPL,RP SUBT 4 FROM UCM ENTRY MCS 04487018 L RPL,ZERO(RPL) GET PTR TO PREFIX MCS 04488018 USING UCMPRFX,RPL MCS 04489018 TM UCMSFLGS+ONE,TENX IS AUTO SWITCH REQUESTING OPEN MCS 04490018 DROP RPL MCS 04491018 BNO MOVEPMN NO RETURN TO PROCESS MOD MCS 04492018 MVC CSANAME(EIGHT),PJXNAME XCTL TO AUTO SWITCH MCS 04493018 B MOVEPMN+SIX BRANCH AROUND MOVE MCS 04494018 MOVEPMN EQU * MCS 04495018 SPACE 04500000 MVC CSANAME(8),UCMNAME RETURN TO PM. 04520000 L 14,CSAXA RESTORE RETURN REG. 04540000 LR R1,RXS 04560000 LR RPL,RXS R15 PRE-SET. 04580000 XCTL SF=(E,(15)) 04600000 DS 0D 04620000 DEV3213 DC X'0830' DEVTYPE = 3213 68053 04630021 PJXNAME DC CL8'IGCXL07B' EXTERNAL PROCESSOR NAME. 04640000 DS 0D FORCE DCB TO ALIGN ON DOUBLE-WORD BOUNDRY 68053 04650021 TITLE 'PN DATA CONTROL BLOCKS' 04660000 IEEUCDX 04680000 TITLE 'PJ OPEN-TIOT,JFCB' 04700000 * DEFINITION OF DYNAMIC CORE FOR CONSOLE OPEN, 04720000 PNOPEN DS 0D 04740000 * TIOT. 04760000 PNTIOT DC CL8'CONSOLE' TEMPORARY TIOT FOR DURATION 04780000 DC CL8'SYSTEM' OF OPENJ FOR CONSOLE. ADDRESSED 04800000 DC CL8'VMS' BY TCB PTR. 04820000 DC X'14' 04840000 DC X'00' 04860000 DC H'0' 04880000 PNTDDN DC CL8'IEECVTSK' DD NAME. 04900000 PNTTR DC XL3'0' ZERO TTR, OPENJ USED. 04920000 DC X'00' 04940000 PNTUCB DS 0F UCB PTR. 04960000 DC X'00' 04980000 DC FL3'0' 05000000 PNTEND DC F'0' TIOT END. 05020000 SPACE 05040000 DS 0D 05060000 * OPENJ E-FORM SLOT. 05080000 PNJEF DC X'80' LAST ENTRY. 05100000 DC FL3'0' DCB PTR. 05120000 SPACE 05140000 * OPENJ JFCB EXLST PTR. 05160000 PNXLST DC X'87' LAST ENTRY AND JFCB 07 CODE. 05180000 DC FL3'0' JFCB PTR. DCBEXLST PTS HERE. 05200000 * JFCB PTR RE-SET DYNAMICALLY. 05220000 SPACE 05240000 * JFCB.(PARTIAL DEF., REST IS ZERO.) 05260000 PNJFCB DS 0D 05280000 PNJNAME DC CL8'CONSOLE' 05300000 DC CL1' ' PROPAGATED BLANK. 05320000 PNJPNJ EQU PNJFCB+52 OPENJ FLAG BYTE. 05340000 SPACE 05360000 PNCORE EQU PNJFCB-PNOPEN+176 DYNAMIC CORE REQIREMENT. 05380000 PNSIZE EQU PNJFCB-PNOPEN+9 AMOUNT PRE-FORMATTED. 05400000 TITLE 'PJ CXSA' 05420000 PJCXSA DSECT 05440000 IEECVMUG CXSA 05460000 TITLE 'PJ EIL' 05480000 PJEIL DSECT 05500000 IEECVMUG EIL 05520000 TITLE 'PJ UCM' 05540000 PJUCM DSECT 05560000 IEECUCM 05580000 TITLE 'PJ CVT' 05600000 PJCVT DSECT 05620000 CVT 05640000 TITLE 'PJ DCB,IOB,CCW' 05660000 IEEUCDX MAP 05680000 END 05700000 ./ ADD SSI=03051938,NAME=IEECVPMC,SOURCE=0 TITLE ' VMS CONSOLE I/O ROUTINE.' 00020000 *********************************************************************** 00040000 * 00060000 * 00080000 * NAME IEECVPM COMMUNICATION TASK PROCESS MODULE (PM). 00100000 * ACCESS METHOD BSAM (2540). 00120000 * 00140000 * 00160000 * FUNCTION THE PURPOSE OF THIS MODULE IS TO MANAGE THE 00180000 * INTERFACES WITH IOS AND DATA MANAGEMENT REQUIRED 00200000 * FOR I/O ACTIVITY ON A DEVICE SUPPORTED AS A CONSOLE. 00220000 * THERE ARE 5 PRIMARY SERVICES PERFORMED.. 00240000 * 00260000 * 00280000 * 1. INTERCEPTS CLOSE REQUEST, QUIESES I/O 00300000 * DISPOSES OF BUFFER, AND XCTL S TO CLOSE 00320000 * MODULE. 00340000 * 00360000 * 2. INTERCEPTS UNOPENED CONDITION AND XCTL S TO 00380000 * OPEN MODULE. 00400000 * 00420000 * 3. INITIATES I/O ACTIVITY. 00440000 * 00460000 * 4. RESPONDS TO I/O COMPLETION CONDITIONS, 00480000 * INCLUDING I/O ERROR CONDITIONS, AND 00500000 * RE-INITIATION OF I/O. 00520000 * 00540000 * 5. MANAGES ACQUISITION AND DISPOSITION OF 00560000 * BUFFERS. 00580000 * 00600000 * 00620000 * INPUT REG 1 POINTS TO PARAMETER LIST MAPPED BY CXSA. 00640000 * LIST INCLUDES POINTERS TO THE UCM MODULE, AND THE 00660000 * ACTIVE UCM ENTRY. 00680000 * 00700000 * 00720000 * OUTPUT UNIT STATUS IN THE UCM ENTRY. 00740000 * 00760000 * 00780000 * EXTERNAL REF. DCBD 00800000 * WAIT 00820000 * XCTL 00840000 * UCM 00860000 * IEECVCTR, ROUTER 00880000 * IEECVOC , OPEN/CLOSE MODULE. 00900000 * CXSA 00920000 * GETMAIN 00940000 * FREEMAIN 00960000 * IEECVCTX, EXTERNAL PROCESS MODULE. 00980000 * 01000000 * 01020000 * EXITS ALWAYS BY XCTL... 01040000 * TO OPEN/CLOSE MODULE FOR RESPECTIVE FUNCTION. 01060000 * TO EXTERNAL PROCESSOR AFTER CLOSE REQUEST TO 01080000 * NEVER OPENED ENTRY. 01100000 * TO ROUTER NORMALLY. 01120000 * 01140000 * 01160000 * TABLES UCM 01180000 * DCB 01200000 * CXSA 01220000 * WQE 01240000 * 01260000 * 01280000 * OPERATION 1. IF CLOSE REQUEST NOT PENDING, TESTS BUSY. 01300000 * TO CLOSE, CHECKS IF OPEN, THEN QUIESES I/O AND 01320000 * DISPOSES OF BUFFER. XCTL S TO CLOSE MODULE. 01340000 * 01360000 * 2. IF NOT BUSY, TESTS REQUEST FLAGS. 01380000 * IF BUSY, CHECKS FOR I/O COMPLETE. IF NOT FINISHED 01400000 * RETURNS TO ROUTER. IF FINISHED, ERROR CHECKS 01420000 * OPERATION, DISPOSES OF BUFFER, AND TESTS REQUEST 01440000 * FLAGS. 01460000 * 01480000 * 3. IF REQUESTS FLAGS NOT PENDING, RETURNS TO ROUTER. 01500000 * IF NOT OPEN, EXIT TO OPEN/CLOSE MODULE, OTHERWISE 01520000 * ACQUIRES BUFFER AND INITIATES I/O. THEN RETURNS 01540000 * TO ROUTER. 01560000 * 01580000 * 01600000 * 4. BUFFER HANDLING (2540, BSAM) 01620000 * 01640000 * BUFFERS ARE ACQUIRED AND FREED DYNAMICALLY. 01660000 * THEY ARE SUBMITTED TO COMMAND SCHEDULERS FOR 01680000 * PROCESSING WITH MGCR (SVC 34). 01700000 * 01720000 * 5. ERRORS. 01740000 * UNCORRECTABLE I/O ERROR RESULT IN A MESSAGE, 01760000 * USING WTO, AND A RETURN TO THE ROUTER. 01780000 * 01800000 * 01820000 * 01840000 * COMMENT THIS MODULE WILL SERVE AND INDEFINITE NUMBER OF 01860000 * UCM ENTRIES. 01880000 * 01900000 * ACCESS INTER-LOCKS, AS REQUIRED, ARE IMPOSED BY 01920000 * DISABLING THE MACHINE. NORMALLY THIS ROUTINE MAY 01940000 * RUN ENABLED, PRIVILEGED, WITH PROTECTION KEY=0. 01960000 * 01980000 * 02000000 *********************************************************************** 02020000 IEECVPM CSECT 02040000 * IOB LENGTH IN DCB M4450 02045019 *1241055400-055600,056200 000A 02050015 X0 EQU 0 SYSTEM INTERFACING. 02060000 X1 EQU 1 SYSTEM INTERFACING. 02080000 X2 EQU 2 SCRATCH. 02100000 X3 EQU 3 SCRATCH. 02120000 X4 EQU 4 SCRATCH. 02140000 X5 EQU 5 LM-BXLE 02160000 X6 EQU 6 INDEXING 02180000 X7 EQU 7 TRIO,AND SCRATCH. 02200000 X8 EQU 8 QUEUE ELEMENT BASE (WQE). 02220000 X9 EQU 9 DCB BASE. 02240000 XA EQU 10 UCM ENTRY BASE. 02260000 XB EQU 11 CXSA PTR. 02280000 XC EQU 12 THIS PROGRAM BASE. 02300000 XD EQU 13 SAVE AREA BASE. 02320000 XE EQU 14 EXIT PTR. 02340000 XF EQU 15 SYSTEM INTERFACING. 02360000 BALR XC,0 BASE 02380000 USING *,XC THIS PROGRAM. 02400000 LR XB,X1 02420000 USING PMXSA,XB 02440000 ST 14,CSAXA SAVE RETURN REG. 02460000 L XA,CSAUCM BASE UCM ENTRY. 02480000 USING UCMLIST,XA 02500000 L X9,UCMDCB BASE DCB 02520000 USING IHADCB,X9 02540000 L X8,DMX ACTIVE BUFFER PTR. 02560000 LA X8,0(X8) KILL HIGH BYTE. 02580000 USING PMWQE,X8 02600000 * REGISTER SAVING. 02620000 USING PMUCM,XD 02640000 L XD,CSACTLM UCM ADDRESS P 02660000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 02680000 BO PMCFIX YES. SKIP SAVE AREA GETMAIN P 02700000 GETMAIN R,SP=255,LV=72 02720000 B PMCEND P 02740000 PMCFIX LA X1,UCMSAVE1 ADDRESS FIXED SAVE AREA. 02760000 PMCEND EQU * P 02780000 DROP XD 02800000 LR XD,X1 02820000 SSM PMENABLE MUST BE ENABLED FOR WAITS. 02840000 EJECT 02860000 PMCF EQU * 02880000 TM UCMSTS,UCMCF Q. CLOSE REQUEST. 02900000 BZ PMBF NO. 02920000 * SECURE BUFFER FOR CLOSE. 02940000 LTR X9,X9 Q. OPEN. 02960000 BNE PMBFCK YES 02980000 MVC CSANAME,PMXTRNL NEVER OPENED 03000000 B PMGONE NO CLOSE. 03020000 PMBFCK EQU * 03040000 TM UCMSTS,UCMBF Q. BUSY. 03060000 BZ PMCLOSE CLOSE. 03080000 * I/O QUIESCE. 03100000 WAIT ECB=PMECB 03120000 B PMOK FREE ANY INPUT BUFFER 03140000 PMCLOSE EQU * 03160000 NI UCMSTS,255-UCMCF CF=OFF. 03180000 MVI CSACODE,CSACLOSE LOCAL CLOSE CODE. 03200000 PMCLOPN EQU * 03220000 MVC CSANAME,PMCFNAME XCTL OPEN/CLOSE MODULE NAME. 03240000 SPACE 03260000 PMGONE EQU * 03280000 * RELEASE SAVE AREA. 03300000 USING PMUCM,X1 03320000 L X1,CSACTLM UCM ADDRESS P 03340000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 03360000 BO PMCEND2 YES. DON'T FREE SAVE AREA P 03380000 LR X1,XD 03400000 FREEMAIN R,SP=255,LV=72,A=(1) 03420000 PMCEND2 EQU * P 03440000 DROP X1 03460000 L 14,CSAXA RESTORE RETURN REG. 03480000 LR X1,XB CXSA PTR PASSING. 03500000 LR XF,XB PRE-SET 15. 03520000 XCTL SF=(E,(15)) 03540000 EJECT 03560000 PMBF EQU * 03580000 TM UCMSTS,UCMBF Q. BUSY. 03600000 BZ PMAPF NO. 03620000 * Q. I/O COMPLETE. 03640000 TM PMECB,X'40' 03660000 BO PMIOC YES. 03680000 * NO, IGNORE THIS REQUEST. 03700000 PMEXIT EQU * RE-TRY ROUTER. 03720000 MVC CSANAME,PMROUTER XCTL NAME INSERTION. 03740000 B PMGONE 03760000 * ERROR CHECK LOGIC. 03780000 PMERRCK EQU * 03800000 * ERROR ANALYSIS. 03820000 LR X5,XE SAVE DM RETURN. 03840000 * SPACE FOR A MESSAGE. 03860000 USING PMUCM,X1 03880000 L X1,CSACTLM UCM ADDRESS P 03900000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 03920000 BZ PMCVAR3 NO. DO GETMAIN FOR ERROR MSG. P 03940000 LA 1,PMMSGA ELSE USE FIXED MSG.AREA P 03960000 SVC 35 P 03980000 B PMCEND3 P 04000000 PMCVAR3 EQU * P 04020000 GETMAIN R,SP=255,LV=PMMSG 04040000 LR X7,X1 SAVE LOCATION. 04060000 MVC 0(PMMSG,X7),PMMSGA INSERT PRE-FORMATTED TEXT. 04080000 L X6,UCMUCB UCB PTR. 04100000 MVC 12(3,X7),13(X6) INSERT UCB NAME. 04120000 WTO MF=(E,(1)) 04140000 LR X1,X7 RELEASE MESSAGE CORE. 04160000 FREEMAIN R,SP=255,LV=PMMSG,A=(1) 04180000 PMCEND3 EQU * P 04200000 DROP X1 04220000 LA X3,PMFREEB IGNORE ERROR INPUT. 04240000 ST X3,CSANAME 04260000 * RETURN TO DM TO CONTINUE. 04280000 LR XE,X5 04300000 RETURN 04320000 SPACE 04340000 PMMSGA WTO 'IEECV2I CONSOLE PERM. ERR.',MF=L 04360000 PMMSG EQU *-PMMSGA 04380000 EJECT 04400000 DS 0H 04420000 PMIOC EQU * 04440000 LA X3,PMOK ASSUME NO SYNAD EXIT. 04460000 ST X3,CSANAME 04480000 SR X1,X1 SAVE LENGTH OF IOB M4450 04486019 IC X1,DCBIOBL OVER STORE OF SYNAD ADDR M4450 04492019 LA X7,PMERRCK SET SYNAD EXIT. 04500000 ST X7,DCBSYNAD 04520000 LA X7,PMFREEB SET EODAD EXIT (IGNORE). 04540000 ST X7,DCBEODAD 04560000 STC X1,DCBIOBL RESTORE IOB LENGTH M4450 04570019 LA X1,DMDECB CHECK PREV-IOS OPERATION. 04580000 CHECK (1) 04600000 SPACE 2 04620000 XC PMECB,PMECB CLEAR ECB. 04640000 L X3,CSANAME 04660000 BR X3 Q. AFTER SYNAD EXIT. 04680000 PMOK EQU * 04700000 * GIVE IT TO COMMAND HANDLER. 04720000 PMMGCR EQU * 04740000 LA X1,84 MGCR COUNT. 04760000 STH X1,WQENBR LENGTH TO HEADER 04780000 LA 1,WQENBR 04800000 SR X0,X0 CLEAR REG 0 FOR SVC A40671 04810021 SVC 34 04820000 SPACE 04840000 PMFREEB EQU * 04860000 NI UCMSTS,255-UCMBF NO LONGER BUSY. 04880000 USING PMUCM,X1 04900000 L X1,CSACTLM UCM ADDRESS P 04920000 TM WQEAVAIL,X'10' BUFFER THRU GETMAIN?/FIXED MODE 04940000 BO PMRLSE YES. DO FREEMAIN. 04960000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 04980000 BO PMCEND4 YES. DON'T ISSUE FREEMAIN P 05000000 PMRLSE EQU * 05020000 LR X1,X8 PTS TO DISCARDED BUFFER 263 05040000 FREEMAIN R,SP=255,LV=L'WQEXTNT,A=(1) 05060000 PMCEND4 EQU * P 05080000 DROP X1 05100000 TM UCMSTS,UCMCF 05120000 BO PMCLOSE 05140000 EJECT 05160000 PMAPF EQU * 05180000 TM UCMSTS,UCMAF Q. PENDING REQUEST. 05200000 BZ PMEXIT NO. 05220000 LTR X9,X9 ARE WE 05240000 BNE PMAF OPEN. 05260000 MVI CSACODE,CSAOPEN NO, SET CODE. 05280000 B PMCLOPN GO TO OPEN. 05300000 PMAF EQU * 05320000 SPACE 2 05340000 PMINPUT EQU * 05360000 SSM PMENABLE NEED NOT PREVENT INTERRUPTS. 05380000 NI UCMSTS,255-UCMAF ATTENTION SATISFIED. 05400000 * GET A BUFFER. 05420000 USING PMUCM,X1 05440000 L X1,CSACTLM UCM ADDRESS P 05460000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 05480000 BO PMCFIX5 YES. USE FIXED INPUT AREA P 05500000 GETMAIN R,SP=255,LV=L'WQEXTNT 05520000 LR X8,X1 SET BASE 05530015 MVI WQEAVAIL,X'50' GETMAIN INDICATION 05540015 B PMCEND5 05550015 PMCFIX5 LA X8,UCMREAD ADDRESS FIXED INPUT BUFFER 05560015 MVI WQEAVAIL,X'40' FIXED BUFFER INDICATION 05570015 PMCEND5 EQU * P 05580000 DROP X1 05600000 ST X8,DMX CURRENT BUFFER PTR. 05640000 MVI DMX,DMXR CURRENT OPERATION CODE. 05660000 LA X2,WQETXT BUFFER ADDRESS. 05680000 MVI WQETXT,X'40' START WITH BLANK 05700000 MVC WQETXT+1(L'WQETXT-1),WQETXT BUFFER. 05720000 SPACE 2 05740000 PMEXCP EQU * 05760000 OI UCMSTS,UCMBF ITS BUSY NOW. 05780000 SPACE 05800000 LA X1,DMDECB 05820000 READ (1),SF,(9),(2),'S',MF=E 05840000 SPACE 05860000 B PMEXIT 05880000 SPACE 05900000 DS 0D 05920000 PMXTRNL DC CL8'IGCXL07B' EXTERNAL PROCESSOR NAME. 05940000 PMROUTER DC CL8'IGC0007B' ROUTER NAME, FIRST LEG. 05960000 PMCFNAME DC CL8'IGC1I07B' 2540 OPEN/CLOSE MODULE NAME. 05980000 PMENABLE DC X'FF' ENABLING MASK. 06000000 TITLE 'PMX CXSA' 06020000 PMXSA DSECT 06040000 IEECVMUG CXSA 06060000 TITLE 'PMX WQE' 06080000 PMWQE DSECT 06100000 IEECVMUG WQE 06120000 TITLE 'PMX UCM' 06140000 PMUCM DSECT 06160000 IEECUCM 06180000 TITLE 'PMX DCB,IOB,CCW' 06200000 IEEUCDC MAP 06220000 PMECB EQU DMDECB ACTIVE I/O COMPLETION ECB. 06240000 CSECT 06260000 END IEECVPM 06280000 ./ ADD SSI=04051307,NAME=IEECVPMP,SOURCE=0 TITLE ' VMS CONSOLE I/O ROUTINE.' 00020021 *********************************************************************** 00040000 * 00060000 * 00080000 * NAME IEECVPM COMMUNICATION TASK PROCESS MODULE (PM). 00100000 * ACCESS METHOD BSAM (1443). 00120000 * 00140000 * 00160000 * FUNCTION THE PURPOSE OF THIS MODULE IS TO MANAGE THE 00180000 * INTERFACES WITH IOS AND DATA MANAGEMENT REQUIRED 00200000 * FOR I/O ACTIVITY ON A DEVICE SUPPORTED AS A CONSOLE. 00220000 * THERE ARE 5 PRIMARY SERVICES PERFORMED.. 00240000 * 00260000 * 00280000 * 1. INTERCEPTS CLOSE REQUEST, QUIESES I/O 00300000 * DISPOSES OF BUFFER, AND XCTL S TO CLOSE 00320000 * MODULE. 00340000 * 00360000 * 2. INTERCEPTS UNOPENED CONDITION AND XCTL S TO 00380000 * OPEN MODULE. 00400000 * 00420000 * 3. INITIATES I/O ACTIVITY. 00440000 * 00460000 * 4. RESPONDS TO I/O COMPLETION CONDITIONS, 00480000 * INCLUDING I/O ERROR CONDITIONS, AND 00500000 * RE-INITIATION OF I/O. 00520000 * 00540000 * 5. MANAGES ACQUISITION AND DISPOSITION OF 00560000 * BUFFERS. 00580000 * 00600000 * 00620000 * INPUT REG 1 POINTS TO PARAMETER LIST MAPPED BY CXSA. 00640000 * LIST INCLUDES POINTERS TO THE UCM MODULE, AND THE 00660000 * ACTIVE UCM ENTRY. 00680000 * 00700000 * 00720000 * OUTPUT UNIT STATUS IN THE UCM ENTRY. 00740000 * AS INPUT TO SECOND LOAD-REG 1 POINTS TO XSA S21002 00741021 * NOTE: S21002 00742021 * SPECIAL USE IS MADE OF THE FIELD 'CSAXB' AT S21002 00743021 * HEX DISPLACEMENT 1C INTO THE XSA. S21002 00744021 * A 2-BYTE LOAD MODULE NAME IDENTIFIER IS MOVED S21002 00745021 * INTO THE FIRST 2 BYTES OF CSAXB FOR ANY XCTL S21002 00746021 * TO THE SECOND LOAD SO THAT IT CAN XCTL BACK S21002 00747021 * TO THIS ROUTINE. THE 1052-7 CONSOLE SUPPORT S21002 00748021 * ROUTINE, IEECVPMX, ALSO USES THE SAME S21002 00749021 * INTERFACE WITH THE SECOND LOAD ROUTINE. S21002 00750021 * 00760021 * 00780000 * EXTERNAL REF. DCBD 00800000 * WAIT 00820000 * XCTL 00840000 * UCM 00860000 * IEECVCTR, ROUTER 00880000 * IEECVOC , OPEN/CLOSE MODULE. 00900000 * CXSA 00920000 * GETMAIN 00940000 * FREEMAIN 00960000 * IEECVCTX, EXTERNAL PROCESS MODULE. 00980000 * IEECVPM1, PROCESS MLWTO ENTRIES S21002 00990021 * 01000000 * 01020000 * EXITS ALWAYS BY XCTL... 01040000 * TO OPEN/CLOSE MODULE FOR RESPECTIVE FUNCTION. 01060000 * TO EXTERNAL PROCESSOR AFTER CLOSE REQUEST TO 01080000 * NEVER OPENED ENTRY. 01100000 * TO ROUTER NORMALLY. 01120000 * TO SECOND LOAD TO HANDLE MLWTO S21002 01130021 * 01140000 * 01160000 * TABLES UCM 01180000 * DCB 01200000 * CXSA 01220000 * WQE 01240000 * 01260000 * 01280000 * OPERATION 1. IF CLOSE REQUEST NOT PENDING, TESTS BUSY. 01300000 * TO CLOSE, CHECKS IF OPEN, THEN QUIESES I/O AND 01320000 * DISPOSES OF BUFFER. XCTL S TO CLOSE MODULE. 01340000 * 01360000 * 2. IF NOT BUSY, TESTS REQUEST FLAGS. 01380000 * IF BUSY, CHECKS FOR I/O COMPLETE. IF NOT FINISHED 01400000 * RETURNS TO ROUTER. IF FINISHED, ERROR CHECKS 01420000 * OPERATION, DISPOSES OF BUFFER, AND TESTS REQUEST 01440000 * FLAGS. 01460000 * 01480000 * 3. IF REQUESTS FLAGS NOT PENDING, RETURNS TO ROUTER. 01500000 * IF NOT OPEN, EXIT TO OPEN/CLOSE MODULE, OTHERWISE 01520000 * ACQUIRES BUFFER AND INITIATES I/O. THEN RETURNS 01540000 * TO ROUTER. 01560000 * 01580000 * 01600000 * 4. BUFFER HANDLING (1443, BSAM) 01620000 * 01640000 * BUFFERS ARE FOUND CHAINED FROM THE UCM, THEY 01660000 * ARE FREED AFTER SUCCESSFUL I/O. 01680000 * (HANDLED IN CONJUNCTION WITH IEECVPM1) S21002 01690021 * 01700000 * 5. ERROR. 01720000 * 01740000 * UNCORRECTABLE I/O ERRORS RESULT IN THE 9615 01750015 * UCB BEING MARKED 'NOT-READY' AND THE FAIL- 9615 01760015 * ING OPERATION BEING RETRIED. 9615 01770015 * 9615 01780015 * THIS WILL CAUSE THE SYSTEM TO ENTER A WAIT 9615 01790015 * STATE. THE OPERATOR MAY RECOVER BY COR- 9615 01800015 * RECTING YHE MALFUNCTION AND HITTING 'READY'9615 01810015 * ON THE CONSOLE. THE SYSTEM WILL RESUME 9615 01820015 * AFTER EXECUTING THE PREVIOUSLY FAILING OP. 9615 01830015 * 01840000 * 01860000 * 01880000 * COMMENT THIS MODULE WILL SERVE AND INDEFINITE NUMBER OF 01900000 * UCM ENTRIES. 01920000 * 01940000 * ACCESS INTER-LOCKS, AS REQUIRED, ARE IMPOSED BY 01960000 * DISABLING THE MACHINE. NORMALLY THIS ROUTINE MAY 01980000 * RUN ENABLED, PRIVILEGED, WITH PROTECTION KEY=0. 02000000 * 02020000 * 02040000 *********************************************************************** 02060000 IEECVPM CSECT 02080000 *A024120-024188,A049700-049799,D049800,A049866-049999,C050000 S21002 02080821 *A050020-050199,D050200,A050265-050326,C050400-050572 S21002 02081621 *C050600-050743,A051500,D051600-052000,A052136,C052200-052334 S21002 02082421 *A073700-073796,A078300-078399,D078400,A078466-078599 S21002 02083221 *C078600-078733,A082900-082960 S2100S 02084021 * IOB LENGTH IN DCB M4450 02089021 *REASSEMBLED FOR UCM CHANGES IN REL 18 02094021 X0 EQU 0 SYSTEM INTERFACING. 02100000 X1 EQU 1 SYSTEM INTERFACING. 02120000 X2 EQU 2 SCRATCH. 02140000 X3 EQU 3 SCRATCH. 02160000 X4 EQU 4 SCRATCH. 02180000 X5 EQU 5 LM-BXLE 02200000 X6 EQU 6 INDEXING 02220000 X7 EQU 7 TRIO,AND SCRATCH. 02240000 X8 EQU 8 QUEUE ELEMENT BASE (WQE). 02260000 X9 EQU 9 DCB BASE. 02280000 XA EQU 10 UCM ENTRY BASE. 02300000 XB EQU 11 CXSA PTR. 02320000 XC EQU 12 THIS PROGRAM BASE. 02340000 XD EQU 13 SAVE AREA BASE. 02360000 XE EQU 14 EXIT PTR. 02380000 XF EQU 15 SYSTEM INTERFACING. 02400000 ZERO EQU 0 M3883 02410020 TWO EQU 2 MVC LENGTH S21002 02411021 N0 EQU 0 DISPLACEMENT S21002 02412021 N3 EQU 3 DISPLACEMENT S21002 02413021 N4 EQU 4 DISPLACEMENT S21002 02414021 N124 EQU 124 DISPLACEMENT S21002 02415021 N255 EQU 255 AND MASK S21002 02416021 DISP EQU X'80' MLWTO DISPLAYED FLAG S21002 02417021 BALR XC,0 BASE 02420000 USING *,XC THIS PROGRAM. 02440000 LR XB,X1 02460000 USING PMXSA,XB 02480000 ST 14,CSAXA SAVE RETURN REG. 02500000 L XA,CSAUCM BASE UCM ENTRY. 02520000 USING UCMLIST,XA 02540000 L X9,UCMDCB BASE DCB 02560000 USING IHADCB,X9 02580000 L XD,CSACTLM UCM ADDRESS P 02600000 USING PMUCM,XD 02620000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 02640000 BO PMPFIX YES. USE FIXED SAVE AREA P 02660000 * REGISTER SAVING. 02680000 GETMAIN R,SP=255,LV=72 02700000 LR XD,X1 02720000 B PMPEND P 02740000 PMPFIX LA XD,UCMSAVE2 ADDRESS FIXED SAVE AREA P 02760000 LR X1,XD 02780000 PMPEND EQU * P 02800000 DROP XD 02820000 LR X4,X1 HOLDING REG. 02840000 SSM PMENABLE MUST BE ENABLED FOR WAITS. 02860000 EJECT 02880000 PMCF EQU * 02900000 TM UCMSTS,UCMCF Q. CLOSE REQUEST. 02920000 BZ PMBF NO. 02940000 * SECURE BUFFER FOR CLOSE. 02960000 LTR X9,X9 Q. OPEN. 02980000 BNE PMBFCK YES 03000000 MVC CSANAME,PMXTRNL NEVER OPENED 03020000 B PMGONE NO CLOSE. 03040000 PMBFCK EQU * 03060000 TM UCMSTS,UCMBF Q. BUSY. 03080000 BZ PMCLOSE CLOSE. 03100000 L X1,UCMUCB GET ADDRESS OF CONSOLE UCB 9615 03105015 TM 6(X1),X'40' IS UCB MARKED 'NOT-READY' 9615 03110015 BO PMNOWAIT YES, BRANCH 9615 03115015 * I/O QUIESCE. 03120000 WAIT ECB=PMECB 03140000 * FREE ONLY SUCCESSFUL 03160000 PMNOWAIT EQU * 03170015 TM PMECB,X'7F' 03180000 BO PMOK OUTPUT BUFFER. 03200000 PMCLOSE EQU * 03220000 NI UCMSTS,255-UCMCF CF=OFF. 03240000 MVI CSACODE,CSACLOSE LOCAL CLOSE CODE. 03260000 PMCLOPN EQU * 03280000 MVC CSANAME,PMCFNAME XCTL OPEN/CLOSE MODULE NAME. 03300000 SPACE 03320000 PMGONE EQU * 03340000 L X1,CSACTLM UCM ADDRESS P 03360000 USING PMUCM,X1 03380000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 03400000 BO PMPEND2 YES. DON'T FREE SAVE AREA P 03420000 * RELEASE SAVE AREA. 03440000 LR X1,XD 03460000 FREEMAIN R,SP=255,LV=72,A=(1) 03480000 PMPEND2 EQU * P 03500000 DROP X1 03520000 L 14,CSAXA RESTORE RETURN REG. 03540000 LR X1,XB CXSA PTR PASSING. 03560000 LR XF,XB PRE-SET 15. 03580000 XCTL SF=(E,(15)) 03600000 EJECT 03620000 PMBF EQU * 03640000 TM UCMSTS,UCMBF Q. BUSY. 03660000 BZ PMAPF NO. 03680000 * Q. I/O COMPLETE. 03700000 TM PMECB,X'40' 03720000 BO PMIOC YES. 03740000 * NO, IGNORE THIS REQUEST. 03760000 PMEXIT EQU * RE-TRY ROUTER. 03780000 MVC CSANAME,PMROUTER XCTL NAME INSERTION. 03800000 B PMGONE 03820000 * ERROR CHECK LOGIC. 03840000 * ERROR ANALYSIS. 03860000 PMERRCK EQU * 03880000 L XD,UCMUCB GET ADDRESS OF CONSOLE UCB 9615 04000015 OI 6(XD),X'40' MARK IT NOT READY A30558 04050020 NI UCMSTS,255-UCMBF TURN THE BUSY FLAG OFF A30558 04130020 LA X3,PMEXCP SET XSA TO BR TO RETRY A30558 04210020 ST X3,CSANAME THE FAILING CONSOLE A30558 04290020 BR XE EXIT FROM THE SYNAD RTN A30558 04370020 EJECT 04480000 PMIOC EQU * 04500000 LA X3,PMOK ASSUME NO SYNAD EXIT. 04520000 ST X3,CSANAME 04540000 SR X1,X1 SAVE LENGTH OF IOB M4450 04546019 IC X1,DCBIOBL OVER STORE OF SYNAD ADDR M4450 04552019 LA X7,PMERRCK SET SYNAD EXIT. 04560000 ST X7,DCBSYNAD 04580000 STC X1,DCBIOBL RESTORE IOB LENGTH M4450 04590019 LA X1,DMDECB CHECK PREV-IOS OPERATION. 04600000 CHECK (1) 04620000 SPACE 04640000 XC PMECB,PMECB CLEAR ECB. 04660000 L X3,CSANAME Q. AFTER SYNAD EXIT. 04680000 BR X3 04700000 * 04720000 PMOK EQU * 04740000 NI UCMSTS,255-UCMBF NO LONGER BUSY. 04760000 L X8,DMX ACTIVE BUFFER PTR. 04780000 LA X8,0(X8) KILL HIGH BYTE. 04800000 USING PMWQE,X8 04820000 SPACE 2 04840000 EJECT 04860000 * OUTPUT BUFFER DISPOSAL AND RQE PURGE. 04880000 PMFWQE EQU * 04900000 L X2,CSAUCM+4 UCM PTR. 04920000 TM UCMSTS,UCMTC WORKING ON AN MLWTO S21002 04922021 BNO CONTINU NO HANDLE NORMAL DEQ S21002 04924021 MLEXIT EQU * S21002 04926021 MVI CSAXB+2,X0 SET MLWTO CODE BE 21772 04927021 MVC CSAXB(TWO),PMPNAME CODE FOR VPM1 XCTL RETURN S21002 04928021 MVC CSANAME,MLWTONM SET MLWTO LM NAME S21002 04930021 B PMGONE EXIT S21002 04932021 CONTINU EQU * S21002 04934021 USING PMUCM,X2 04940000 SSM *+1 DISABLE, BUF REF LOCK-OUT. 04960000 MVC UCMWTOQ(4),WQELKP DISCARD FIRST ELEMENT. 04990021 L X3,UCMWTOQ WTO QUEUE PTR. 05020021 LTR X3,X3 TEST. 05030021 BZ *+8 EXHAUSTED. 05040021 OI UCMSTS,UCMPF ELEMENTS STILL WAITING. 05050021 * REVISE BUFFER COUNTER AND PTR. 05080000 CL X8,UCMWQEND Q. VERY LAST BUFFER. 05100000 BNE *+10 NO. 05120000 XC UCMWQEND,UCMWQEND ZERO LAST BUFFER PTR. 05140000 TM UCMMODE,UCMFIX FIXED BUFFER MODE 05180021 BZ PMDECWQE NO - DECREMENT WQE COUNT 05190021 TM WQEAVAIL,X'10' BUFFER THRU GETMAIN?/FIXED MODE 05200021 BO PMNODECR YES. DON'T REDUCE COUNT 05210021 PMDECWQE LH X1,UCMWQNR OLD WQE COUNT 05240000 BCTR X1,0 LESS ONE. 05260000 STH X1,UCMWQNR = CURRENT COUNT. 05280000 PMNODECR EQU * 05300000 CLC UCMWQNR,UCMWQLM Q. UNDER LIMIT. 05320000 BNL PMPRGRQ NO. 05340000 * A BUFFER WILL BE FREED. 05360000 LR X3,X2 ***** GET TO M3883 05365020 SH X3,EIGHT * UCM2 M3883 05370020 L X3,ZERO(X3) * .......... M3883 05375020 USING UCM2,X3 M3883 05380020 POST UCMWQECB,TJID=UCM2WID POST THE WQE COUNT ECB M3883 05385020 DROP X3 M3883 05390020 SPACE 05400000 * RQE PURGING. 05420000 PMPRGRQ EQU * 05440000 * Q. PURGE MESSAGE. 05460000 TM WQEXA,WQEPRGF 05480000 BZ PMPRGXT NO. 05500000 SPACE 05520000 LA X3,UCMRPYQ TRAILING PTB. 05540000 L X5,UCMRPYQ CURRENT PTR. 05560000 * OUTER LOOP IDENTIFIES RQES. 05580000 PMPRGLP EQU * 05600000 LTR X5,X5 05620000 BZ PMPRGXT 05640000 CL X8,RQFWQEP(X5) Q. RQE PTS TO WQE. 05660000 BNE PMPRGLPX NO. 05680000 MVC RQFLKP(4,X3),RQFLKP(X5) DE-CHAIN RQE. 05700000 SPACE 05720000 * RE-SET ASSIGNMENT PATTERN. 05740000 SPACE 05760000 * COMPUTE BIT NO. 05780000 NC RQFID(2,X5),PMMASKID KILL ZONES. 05800000 SR X6,X6 CLEARED. 05820000 IC X6,RQFID(X5) TENS DIGIT. 05840000 LR X1,X6 05860000 SLL X6,2 MULTIPLY 05880000 AR X6,X1 BY 05900000 SLL X6,1 TEN. 05920000 IC X1,RQFID+1(X5) UNITS DIGIT. 05940000 AR X6,X1 BIT POSITION KNOWN. 05960000 * COMPUTE BYTE, THEN BIT INDEX. 05980000 LR X1,X6 06000000 SRL X1,3 DIVIDE BY 8 (BITS/BYTE)=BYTE INX 06020000 N X6,PMMASKBT SAVE BIT IN BYTE POSITION. 06040000 LA X1,UCMRPYI(X1) BYTE ADDRESS. 06060000 LA X6,PMRQBIT(X6) *** ID PATTERN RESET 06080000 NC 0(1,X1),0(X6) 06100000 SPACE 06120000 L X1,CSACTLM UCM ADDRESS P 06140000 USING PMUCM,X1 06160000 USING PMRQE,X5 06180000 TM RQEAVAIL,X'10' GETMAINED? /FIXED MODE 06200000 BO PMPRELS YES. DO FREE 06220000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? P 06240000 MVI RQEAVAIL,UCMFREE MARK BUFFER AVAILABLE. 06260000 BO PMPEND3 YES. DON'T ISSUE FREEMAIN P 06280000 PMPRELS EQU * 06300000 LR X1,X5 06320000 FREEMAIN R,SP=255,LV=RQESIZE,A=(1) 06340000 TM UCMMODE,UCMFIX FIXED BUFFER MODE 06360000 BZ PMDECRQE NO DECREMENT RQE COUNT 06380000 TM RQEAVAIL,X'10' GETMAINED? /FIXED MODE 06400000 BO PMPEND3 YES. DON'T REDUCE COUNT. 06420000 * REVISE RQE COUNTER. 06440000 PMDECRQE LH X1,UCMRQNR OLD RQE COUNT 06460000 BCTR X1,0 LESS ONE. 06480000 STH X1,UCMRQNR NEW CURRENT COUNT. 06500000 PMPEND3 EQU * 06520000 DROP X1 06540000 CLC UCMRQNR(1),UCMRQLM Q. UNDER LIMIT. 06560000 BNL PMPRGNXT NO. 06580000 * ONE OR MORE RQE WILL BE FREED. 06600000 LR X5,X2 ***** GET TO M3883 06605020 SH X5,EIGHT * UCM2 M3883 06610020 L X5,ZERO(X5) * .......... M3883 06615020 USING UCM2,X5 M3883 06620020 POST UCMRQECB,TJID=UCM2RID POST THE RPQE COUNT ECB M3883 06625020 DROP X5 M3883 06630020 SPACE 06640000 B PMPRGNXT 06660000 * OUTER LOOP, NEXT. 06680000 PMPRGLPX EQU * 06700000 LR X3,X5 06720000 PMPRGNXT L X5,RQFLKP(X3) 06740000 B PMPRGLP 06760000 * DONE. 06780000 PMPRGXT EQU * 06800000 DROP X2 06820000 SSM PMENABLE INTERRUPTS ACCEPTABLE. 06840000 B PMFREEB 06860000 SPACE 06880000 PMMASKID DC X'0F0F' ELIMINATE ZONES. 06900000 PMMASKBT DC F'7' BIT POSITION SAVE MASK. 06920000 PMRQBIT DC BL1'01111111' BIT BY BYTE 06940000 DC BL1'10111111' RESET 06960000 DC BL1'11011111' PATTERN. 06980000 DC BL1'11101111' 07000000 DC BL1'11110111' 07020000 DC BL1'11111011' 07040000 DC BL1'11111101' 07060000 DC BL1'11111110' 07080000 EJECT 07100000 SPACE 07120000 PMFREEB EQU * 07140000 L X1,CSACTLM UCM ADDRESS 07160000 USING PMUCM,X1 07180000 TM WQEAVAIL,X'10' GET MAINED? 07200000 MVI WQEAVAIL,UCMFREE MARK BUFFER AVAILABLE 07220000 BO PMPRL YES. DO FREE. 07240000 TM UCMMODE,UCMFIX FIXED BUFFER MODE? 07260000 BO PMPEND4 DON'T FREE BUFFER. 07280000 PMPRL EQU * 07300000 LR X1,X8 PTS TO DISCARDED BUFFER. 07320000 FREEMAIN R,SP=255,LV=144,A=(1) 07340018 PMPEND4 EQU * 07360000 DROP X1 07380000 TM UCMSTS,UCMCF 07400000 BO PMCLOSE 07420000 EJECT 07440000 PMAPF EQU * 07460000 TM UCMSTS,UCMPF Q. PENDING REQUEST. 07480000 BZ PMEXIT NO. 07500000 LTR X9,X9 ARE WE 07520000 BNE PMAF OPEN. 07540000 MVI CSACODE,CSAOPEN NO, SET CODE. 07560000 B PMCLOPN GO TO OPEN. 07580000 SPACE 07600000 PMAF EQU * 07620000 SPACE 07640000 PMOUTPUT EQU * 07660000 SSM PMENABLE NEED NOT PREVENT INTERRUPTS. 07680000 NI UCMSTS,255-UCMPF OUTPUT FLAG OFF. 07700000 L X2,CSAUCM+4 UCM PTR. 07720000 USING PMUCM,X2 07740000 L X8,UCMWTOQ OUTPUT QUEUE. 07760000 LTR X8,X8 DOUBLE-CHECK AVAILABLE OUTPUT. 07780000 BZ PMAPF NONE. 07800000 ST X8,DMX SAVE ADDRESS. 07820000 TM UCMSTS,UCMTC WORKING ON A MLWTO S21002 07820921 BO MLWRITE YES SHOULD IT BE DISPLAYED S21002 07821821 CLI WMJMLW,N0 IS THIS A MLWTO S21002 07822721 BE NORMWQE NO WRITE IT S21002 07823621 OI UCMSTS,UCMTC SET WORKING FLAG ON S21002 07824521 B TSTPURG TEST FOR MLWTO PURGE S21002 07825421 MLWRITE TM WMJMLW,WMJMLWA THIS WQE DISPLAYED S21002 07826321 BNO TSTPURG NO SEE IF IT SHOULD BE DISPD S21002 07827221 TM WMJLTYP,WMJLTYPD END BEEN FORCED SINCE DISPD S21002 07828121 BO MLEXIT YES MUST FREE AND DEQUE IT S21002 07829021 L X8,WMJNXTM GET FIRST MINOR S21002 07829921 LTR X8,X8 ARE THERE ANY MINORS S21002 07830821 BZ PMAPF NO EXIT S21002 07831721 ST X8,DMX SAVE MINOR POINTER S21002 07832621 TSTPURG EQU * S21002 07833521 TM WMNDISP,WMNDISPA THIS MINOR CANCELLED S21002 07834421 BO MLEXIT YES S21002 07835321 CLI WMNTXL,N0 IS THE LENGTH ZERO S21002 07836221 BE MLEXIT YES EXIT S21002 07837121 NORMWQE EQU * S21002 07838021 LA X2,WQETXT BUFFER ADDRESS S21002 07841021 TM WMJMLW,WMJMLWC IS THIS A MINOR S21002 07844021 BNO NORMWQE1 NO, TEXT POINTER IS SET S21002 07847021 LA X2,N4(X2) MINOR TEXT IS 4 MORE BYTES IN S21002 07850021 NORMWQE1 EQU * S21002 07853021 MVI DMX,DMXW INSERT CODE. S21002 07856021 SPACE 2 07880000 PMEXCP EQU * 07900000 OI UCMSTS,UCMBF ITS BUSY NOW. 07920000 LR XD,X4 IN CASE SAVE PTR BAD AFTER ERR. 07940000 SR X4,X4 66512 07946021 IC X4,7(0,X8) PICK UP TEXT LENGTH 66512 07952021 LA X1,DMDECB 07960000 SPACE 07980000 WRITE (1),SF,(9),(2),(4),MF=E 66512 08000021 SPACE 08020000 B PMEXIT 08040000 SPACE 08060000 DS 0D 08080000 PMXTRNL DC CL8'IGCXL07B' EXTERNAL PROCESSOR NAME. 08100000 PMCFNAME DC CL8'IGC2I07B' 1443 OPEN/CLOSE MODULE NAME. 08120000 PMROUTER DC CL8'IGC0007B' ROUTER NAME, FIRST LEG. 08140000 MLWTONM DC CL8'IGC0207B' NAME FOR MLWTO PROCESSING S21002 08143021 PMPNAME DC C'12' IDENTIFIER FOR THIS ROUTINE S21002 08146021 EIGHT DC H'8' USED TO GET TO UCM2 M3883 08150020 PMENABLE DC X'FF' ENABLING MASK. 08160000 TITLE 'PMX CXSA' 08180000 PMXSA DSECT 08200000 IEECVMUG CXSA 08220000 TITLE 'PMX WQE' 08240000 PMWQE DSECT 08260000 IEECVMUG WQE 08280000 ORG PMWQE S21002 08284021 IEECVMUG WQEMAJ S21002 08288021 ORG PMWQE S21002 08292021 IEECVMUG WQEMIN S21002 08296021 TITLE ' PM RQE.' 08300000 PMRQE DSECT 08320000 IEECVMUG RQE 08340000 SPACE 2 08360000 * OFFSET VALUES. 08380000 RQFWQEP EQU RQEXB-RQEF RQE PTR TO WQE, OR 0. 08400000 RQFLKP EQU RQELKP-RQEF LINK PTR. 08420000 RQFID EQU RQEID-RQEF ASSIGNED ID. 08440000 WQEPRGF EQU 128 RQE MESSAGE WQE. 08460000 TITLE 'PMX UCM' 08480000 PMUCM DSECT 08500000 IEECUCM 08520000 TITLE 'PMX DCB,IOB,CCW' 08540000 IEEUCDP MAP 08560000 PMECB EQU DMDECB ACTIVE I/O COMPLETION ECB. 08580000 END 08600000 ./ ADD SSI=04052182,NAME=IEECVPMX,SOURCE=0 TITLE 'VMS 1052 CONSOLE I/O SUPPORT' 00020000 *********************************************************************** 00040000 * 00060000 * 00080000 * NAME IEECVPM COMMUNICATION TASK PROCESS MODULE (PM). 00100000 * ACCESS METHOD EXCP (1052). 00120000 * 00140000 * 00160000 * FUNCTION THE PURPOSE OF THIS MODULE IS TO MANAGE THE 00180000 * INTERFACES WITH IOS AND DATA MANAGEMENT REQUIRED 00200000 * FOR I/O ACTIVITY ON A DEVICE SUPPORTED AS A CONSOLE. 00220000 * THERE ARE 5 PRIMARY SERVICES PERFORMED.. 00240000 * 00260000 * 00280000 * 1. INTERCEPTS CLOSE REQUEST, QUIESES I/O 00300000 * DISPOSES OF BUFFER, AND XCTL S TO CLOSE 00320000 * MODULE. 00340000 * 00360000 * 2. INTERCEPTS UNOPENED CONDITION AND XCTL S TO 00380000 * OPEN MODULE. 00400000 * 00420000 * 3. INITIATES I/O ACTIVITY. 00440000 * 00460000 * 4. RESPONDS TO I/O COMPLETION CONDITIONS, 00480000 * INCLUDING I/O ERROR CONDITIONS, AND 00500000 * RE-INITIATION OF I/O. 00520000 * 00540000 * 5. MANAGES ACQUISITION AND DISPOSITION OF 00560000 * BUFFERS. FOR MLWTO-USE SECOND LOAD S21002 00580021 * 00600000 * 00620000 * INPUT REG 1 POINTS TO PARAMETER LIST MAPPED BY CXSA. 00640000 * LIST INCLUDES POINTERS TO THE UCM MODULE, AND THE 00660000 * ACTIVE UCM ENTRY. 00680000 * 00700000 * 00720000 * OUTPUT UNIT STATUS IN THE UCM ENTRY. 00740000 * AS INPUT TO SECOND LOAD-REG 1 POINTS TO XSA S21002 00743021 * NOTE: S21002 00746021 * SPECIAL USE IS MADE OF THE FIELD 'CSAXB' AT S21002 00749021 * HEX DISPLACEMENT 1C INTO THE XSA. S21002 00752021 * A 2-BYTE LOAD MODULE NAME IDENTIFIER IS MOVED S21002 00755021 * INTO THE FIRST 2 BYTES OF CSAXB FOR ANY XCTL S21002 00758021 * TO THE SECOND LOAD SO THAT IT CAN XCTL BACK S21002 00761021 * TO THIS ROUTINE. THE PRINTER CONSOLE SUPPORT S21002 00764021 * ROUTINE, IEECVPMP, ALSO USES THE SAME S21002 00767021 * INTERFACE WITH THE SECOND LOAD ROUTINE. S21002 00770021 * THE THIRD BYTE IN THE CSAXB IS SET TO 1 IF BE 21772 00772021 * THE SECOND LOAD IS BEING ENTERED TO RING BE 21772 00774021 * THE ALARM ON THE 1052 BE 21772 00776021 * 00780000 * EXTERNAL REF. DCBD 00800000 * WAIT 00820000 * XCTL 00840000 * UCM 00860000 * IEECVCTR, ROUTER 00880000 * IEECVOC , OPEN/CLOSE MODULE. 00900000 * CXSA 00920000 * GETMAIN 00940000 * FREEMAIN 00960000 * IEECVCTX, EXTERNAL PROCESS MODULE. 00980000 * IEECVPM1, PROCESS MLWTO EMTRIES AND RING BE 21772 00990021 * ALARM ON THE 1052 CONSOLE BE 21772 01000021 * 01020000 * EXITS ALWAYS BY XCTL... 01040000 * TO OPEN/CLOSE MODULE FOR RESPECTIVE FUNCTION. 01060000 * TO EXTERNAL PROCESSOR AFTER CLOSE REQUEST TO 01080000 * NEVER OPENED ENTRY. 01100000 * TO ROUTER NORMALLY. 01120000 * TO SECOND LOAD TO HANDLE MLWTO AND RING S21002 01130021 * CONSOLE ALARM BE 21772 01140021 * 01160000 * TABLES UCM 01180000 * DCB 01200000 * CXSA 01220000 * WQE 01240000 * 01260000 * 01280000 * OPERATION 1. IF CLOSE REQUEST NOT PENDING, TESTS BUSY. 01300000 * TO CLOSE, CHECKS IF OPEN, THEN QUIESES I/O AND 01320000 * DISPOSES OF BUFFER. XCTL S TO CLOSE MODULE. 01340000 * 01360000 * 2. IF NOT BUSY, TESTS REQUEST FLAGS. 01380000 * IF BUSY, CHECKS FOR I/O COMPLETE. IF NOT FINISHED 01400000 * RETURNS TO ROUTER. IF FINISHED, ERROR CHECKS 01420000 * OPERATION, DISPOSES OF BUFFER, AND TESTS REQUEST 01440000 * FLAGS. 01460000 * 01480000 * 3. IF REQUESTS FLAGS NOT PENDING, RETURNS TO ROUTER. 01500000 * IF NOT OPEN, EXIT TO OPEN/CLOSE MODULE, OTHERWISE 01520000 * ACQUIRES BUFFER AND INITIATES I/O. THEN RETURNS 01540000 * TO ROUTER. 01560000 * 01580000 * 01600000 * 4. BUFFER HANDLING. (EXCP 1052) (SUBPOOL 255). 01620000 * 01640000 * A. FOR INPUT, ACQUIRED DYNAMICALLY AND BLANKED. 01660000 * AT I/O COMPLETION, BACKSPACE CHARACTERS ARE 01680000 * REMOVED, AND IT IS THEN SUBMITTED TO THE 01700000 * COMMAND SCHEDULER WITH MGCR (SVC 34). THE 01720000 * BUFFER IS THEN FREED. 01740000 * 01760000 * B. FOR OUTPUT, THE UCM POINTS AT THE CURRENT 01780000 * BUFFER WAITING TO BE PUT OUT. AT I/O 01800000 * COMPLETION IT IS FREED. 01820000 * (HANDLED IN CONJUNCTION WITH IEECVPM1)S21002 01830021 * 01840000 * 5. ERRORS.(1052) 01860000 * IEECVPM1 IS XCTLED TO IN ORDER TO PERFORM BE 21772 01870021 * THE FOLLOWING : BE 21772 01880021 * THE 'NOT-READY' BIT IN THE UCB IS TURNED 01900021 * ON AND THE FAILING OPERATION RETRIED AGAIN. 01940021 * I/O SUPERVISOR WILL WAIT FOR AN INTERRUPT 01980021 * TO MAKE THE CONSOLE READY. IF THE TROUBLE 02020021 * IS CLEARED AND 'READY' IS HIT ON THE CON- 02060021 * SOLE, THE I/O REQUEST WILL BE HONORED. 02100021 * 02160000 * ASSUMPTIONS AND RESTRICTIONS: M3883 02165020 * REGISTER 14 IS USED THROUGHOUT THE ROUTINE TO SET STORAGE M3883 02170020 * TO ZERO. IT CANNOT BE USED OTHERWISE WITHOUT MAJOR CHANGEM3883 02175020 * 02180000 * 02200000 * COMMENT THIS MODULE WILL SERVE AND INDEFINITE NUMBER OF 02220000 * UCM ENTRIES. 02240000 * 02260000 * ACCESS INTER-LOCKS, AS REQUIRED, ARE IMPOSED BY 02280000 * DISABLING THE MACHINE. NORMALLY THIS ROUTINE MAY 02300000 * RUN ENABLED, PRIVILEGED, WITH PROTECTION KEY=0. 02320000 * 02340000 * 02360000 *********************************************************************** 02380000 IEECVPM CSECT 02400000 *A005800,007600-007680,010000,011400,018300,060300-060384, S21002 02403021 *A095010-095192,099240-099279,099380 S21002 02406021 *039300-048000,049700,071800 2445 02410019 X0 EQU 0 SYSTEM INTERFACING. 02420000 X1 EQU 1 SYSTEM INTERFACING. 02440000 X2 EQU 2 SCRATCH. 02460000 X3 EQU 3 SCRATCH. 02480000 X4 EQU 4 SCRATCH. 02500000 X5 EQU 5 LM-BXLE 02520000 X6 EQU 6 INDEXING 02540000 X7 EQU 7 TRIO,AND SCRATCH. 02560000 X8 EQU 8 QUEUE ELEMENT BASE (WQE). 02580000 X9 EQU 9 DCB BASE. 02600000 XA EQU 10 UCM ENTRY BASE. 02620000 XB EQU 11 CXSA PTR. 02640000 XC EQU 12 THIS PROGRAM BASE. 02660000 XD EQU 13 SAVE AREA BASE. 02680000 XE EQU 14 EXIT PTR. 02700000 XF EQU 15 SYSTEM INTERFACING. 02720000 TWO EQU 2 M3883 02725020 THREE EQU 3 M3883 02730020 FOUR EQU 4 M3883 02735020 BALR XC,0 BASE 02740000 USING *,XC THIS PROGRAM. 02760000 LR XB,X1 02780000 USING PMXSA,XB 02800000 ST 14,CSAXA SAVE RETURN REG. 02820000 L XA,CSAUCM BASE UCM ENTRY. 02840000 USING UCMLIST,XA 02860000 L X9,UCMDCB BASE DCB 02880000 USING IHADCB,X9 02900000 SSM PMENABLE MUST BE ENABLED FOR WAITS. 02920000 EJECT 02940000 SR XE,XE CLEAR REG FOR STORES M3883 02960020 TM UCMSTS,UCMCF Q. CLOSE REQUEST. 02980000 BZ PMBF NO. 03000000 * SECURE BUFFER FOR CLOSE. 03020000 LTR X9,X9 Q. OPEN. 03040000 BNE PMBFCK YES 03060000 MVC CSANAME+THREE(TWO),PMXTRNL NEVER OPENED M3883 03080020 B PMGONE NO CLOSE. 03100000 PMBFCK EQU * 03120000 TM UCMSTS,UCMBF Q. BUSY. 03140000 BZ PMCLOSE CLOSE. 03160000 * I/O QUIESCE. 03180000 L X1,UCMUCB ADDRESS OF CONSOLE UCB 9615 03185015 TM 6(X1),X'40' IS UCB MARKED NOT READY? 9615 03190015 BO PMNOWAIT YES, DON'T WAIT 9615 03195015 WAIT ECB=PMECB 03200000 PMNOWAIT CLI DMX,DMXR Q. READ OPERATION? M3883 03230020 BE PMOK YES M3883 03260020 * FREE ONLY SUCCESSFUL 03300000 TM PMECB,X'7F' 03320000 BO PMOK OUTPUT BUFFER. 03340000 PMCLOSE ST XE,PMECB CLEAR ECB M3883 03370020 NI UCMSTS,255-UCMCF CF=OFF. 03400000 MVI CSACODE,CSACLOSE LOCAL CLOSE CODE. 03420000 PMCLOPN EQU * 03440000 MVI CSANAME+FOUR,PMCFNAME OPEN/CLOSE NAME M3883 03460020 SPACE 03480000 PMGONE EQU * 03500000 L 14,CSAXA RESTORE RETURN REG. 03520000 LR X1,XB CXSA PTR PASSING. 03540000 LR XF,XB PRE-SET 15. 03560000 XCTL SF=(E,(15)) 03580000 EJECT 03600000 PMBF EQU * 03620000 TM UCMSTS,UCMBF Q. BUSY? 68312 03622021 BNZ PMYRE 68312 03624021 MVI PMECB,X'00' KILL RESIDUAL I/O 68312 03628021 B PMAPF NOT BUSY - BRANCH 68312 03632021 PMYRE TM PMECB,X'40' 68312 03636021 BZ PMEXIT IGNORE THIS REQUEST @SM0050K 03660021 * Q. I/O COMPLETE. 03680000 BO PMIOC YES. 03720000 * NO, IGNORE THIS REQUEST. 03740000 PMEXIT EQU * RE-TRY ROUTER. 03760000 MVI CSANAME+FOUR,PMROUTER ROUTER NAME M3883 03780020 B PMGONE 03800000 PMIOC EQU * 03820000 TM PMECB,X'7F' 03840000 BO PMOK M3883 03870020 MVI CSAXB+2,X1 SET CODE TO RING ALARM BE 21772 04170021 B MLEXIT1 SET XSA TO XCTL TO CVPM1 BE 21772 04470021 EJECT 04920000 PMOK EQU * 04940000 ST XE,PMECB CLEAR ECB M3883 04990020 NI UCMSTS,255-UCMBF NO LONGER BUSY. 05020000 L X8,DMX ACTIVE BUFFER PTR. 05040000 LA X8,0(X8) KILL HIGH BYTE. 05060000 USING PMWQE,X8 05080000 CLI DMX,DMXW WRITE REQUEST? M3883 05110020 BE PMFWQE YES M3883 05140020 SPACE 05170020 * READ M3883 05200020 LA X4,WQETXT FIRST BUFFER CHARACTER PTR. 05240000 LA X5,1 BUFFER POSITION INDEX. 05260000 LR 6,5 BUFFER EXTENT INDEX 05280017 LA X7,WQETXTL LAST BUFFER CHARACTER PTR. 05300000 * PRESCAN FOR PRESENCE OF ANY BACKSPACE 05320000 * CHARACTERS. 05340000 CLI 0(X4),X'16' BACKSPACE. 05360000 BE PMBKSL 05380000 LA X5,1(X5) BUMP BUFFER INDEX BY 1. 05400000 BXLE X4,X6,*-12 CHECK NEXT CHARACTER. 05420000 B PMMGCR NONE. 05440000 PMBKSL EQU * 05460000 * PRESENCE OF ONE OR MORE BACKSPACE 05480000 * CHARACTERS INVOKES FOLLOWING NOT EFFICIENT 05500000 * SQUEEZE-OUT MECHANISM. 05520000 CLI 0(X4),X'16' Q. BACKSPACE CHARACTER. 05540000 BNE *+16 NO. 05560000 BCT X5,PMBKSX YES,BACKUP ONE CHARACTER. 05580000 LA X5,1 DONT GO LEFT OUT OF BUFFER. 05600000 B PMBKSX 05620000 LA X2,WQETXT-1(X5) CURRENT FILL POSITION. 05640000 MVC 0(1,X2),0(X4) FILL IT. 05660000 LA X5,1(X5) NEXT POSITION. 05680000 PMBKSX EQU * 05700000 BXLE X4,X6,PMBKSL GETEM ALL. 05720000 LA X2,WQETXT-1(X5) CURRENT FILL POSITION. 05740000 MVI 0(X2),X'40' END WITH BLANK. 05760000 SPACE 2 05780000 PMMGCR EQU * 05800000 LA X1,L'WQETXT-2+4 MGCR COUNT. 05820000 STH X1,WQENBR LENGTH TO HEADER 05840000 * GIVE IT TO COMMAND HANDLER. 05860000 LA 1,WQENBR 05880000 SR X0,X0 CLEAR REG 0 A40671 05890021 SVC 34 05900000 B PMFREEB GO FREE THE CORE. 05920000 EJECT 05940000 * OUTPUT BUFFER DISPOSAL AND RQE PURGE. 05960000 SPACE 05980000 PMFWQE EQU * 06000000 L X2,CSAUCM+4 UCM PTR. 06020000 TM UCMSTS,UCMTC WORKING ON AN MLWTO S21002 06022021 BNO CONTINU NO HANDLE NORMAL DEQ S21002 06024021 MLEXIT EQU * S21002 06026021 MVI CSAXB+2,X0 SET MLWTO CODE BE 21772 06026621 MLEXIT1 EQU * 06027221 MVC CSAXB(TWO),PMXNAME NAME CODE FOR VPM1 XCTL RETRN S21002 06028021 MVI CSANAME+N4,MLWTONM SET MLWTO LM NAME S21002 06030021 B PMGONE EXIT S21002 06032021 CONTINU EQU * S21002 06034021 USING PMUCM,X2 06040000 SSM *+1 DISABLE, BUF REF LOCK-OUT. 06060000 L X3,WQELKP WTO QUEUE PTR. 06080017 ST X3,UCMWTOQ DISCARD FIRST ELEMENT 06100017 LTR X3,X3 TEST. 06120000 BZ *+8 EXHAUSTED. 06140000 OI UCMSTS,UCMPF ELEMENTS STILL WAITING. 06160000 * REVISE BUFFER COUNTER AND PTR. 06180000 CL X8,UCMWQEND Q. VERY LAST BUFFER. 06200000 BNE PMNOTLST NOT LAST WQE M3883 06210020 ST XE,UCMWQEND CLR PTR TO LAST BUFFER M3883 06220020 PMNOTLST EQU * M3883 06230020 LH X1,UCMWQNR 06250017 TM UCMMODE,UCMFIX FIXED BUFFER MODE 06260000 BZ PMDECWQE NO - DECREMENT WQE COUNT 06280000 TM WQEAVAIL,X'10' WQE GOTTEN THRU GETMAIN?/FIXED 06300000 BO PMNODECR YES. DON'T REDUCE COUNT /MODE 06320000 PMDECWQE EQU * 06340017 BCTR X1,0 LESS ONE. 06360000 STH X1,UCMWQNR = CURRENT COUNT. 06380000 PMNODECR EQU * 06400000 CH X1,UCMWQLM Q. UNDER LIMIT 06420017 BNL PMPRGRQ NO. 06440000 * A BUFFER WILL BE FREED. 06460000 LR X5,X2 COVER UCM2 M3883 06465020 SH X5,EIGHT *** M3883 06470020 L X5,0(X5) *** M3883 06475020 USING UCM2,X5 *** M3883 06480020 POST UCMWQECB,TJID=UCM2WID POST WQE COUNT ECB M3883 06485020 DROP X5 M3883 06490020 SPACE 06500000 * RQE PURGING. 06520000 PMPRGRQ EQU * 06540000 * Q. PURGE MESSAGE. 06560000 TM WQEXA,WQEPRGF 06580000 BZ PMPRGXT NO. 06600000 SPACE 06620000 LA X3,UCMRPYQ TRAILING PTB. 06640000 L X5,UCMRPYQ CURRENT PTR. 06660000 * OUTER LOOP IDENTIFIES RQES. 06680000 PMPRGLP EQU * 06700000 LTR X5,X5 06720000 BZ PMPRGXT 06740000 CL X8,RQFWQEP(X5) Q. RQE PTS TO WQE. 06760000 BNE PMPRGLPX NO. 06780000 MVC RQFLKP(4,X3),RQFLKP(X5) DE-CHAIN RQE. 06800000 SPACE 06820000 * RE-SET ASSIGNMENT PATTERN. 06840000 SPACE 06860000 * COMPUTE BIT NO. 06880000 PACK RQE8(8,X5),RQFID(2,X5) CONVERT REPLY ID M3883 06910020 CVB X6,RQE8(0,X5) TO BINARY M3883 06940020 SRDL X6,3 DIVIDE BY 8 TO GET BYTE M3883 06970020 SRL X7,29 BIT NUMBER IS HERE M3883 07000020 LA X1,UCMRPYI(X6) TURN OFF ID ASSIGNED M3883 07030020 LH X6,RESETMSK BIT IN UCM M3883 07060020 SRL X6,0(X7) POSITION MASK M3883 07090020 EX X6,RESETBIT M3883 07120020 SPACE 07220000 USING PMRQE,X5 07240000 TM RQEAVAIL,X'10' RQE GOTTEN THRU GETMAIN? /FIXED 07260000 MVI RQEAVAIL,UCMFREE SET UNASSIGNED M3883 07290020 BZ PMDECRQE DECREMENT COUNT M3883 07320020 PMRLSE EQU * 07360000 LR X1,X5 07380000 CNOP 0,4 07402018 L X0,RQESPLEN LOAD SUBPOOL,LENGTH FOR GETMAIN M4927 07407019 SVC 10 ISSUE FREEMAIN 07412018 TM UCMMODE,UCMFIX FIXED BUFFER MODE 07440000 BO PMENDX YES - SKIP DECR M3883 07480020 * REVISE RQE COUNTER. 07520000 PMDECRQE LH X6,UCMRQNR GET RQE COUNT M3883 07540020 BCTR X6,0 REPLY COUNT LESS ONE M3883 07560020 STH X6,UCMRQNR RESET M3883 07580020 PMENDX EQU * 07600000 DROP X5 07620000 CLC UCMRQNR+1(1),UCMRQLM Q. UNDER LIMIT M3883 07640020 BNL PMPRGNXT NO. 07660000 * ONE OR MORE RQE WILL BE FREED. 07680000 LR X5,X2 COVER UCM2 M3883 07685020 SH X5,EIGHT *** M3883 07690020 L X5,0(X5) *** M3883 07695020 USING UCM2,X5 *** M3883 07700020 POST UCMRQECB,TJID=UCM2RID POST RQE COUNT ECB M3883 07705020 DROP X5 M3883 07710020 SPACE 07720000 B PMPRGNXT 07740000 * OUTER LOOP, NEXT. 07760000 PMPRGLPX EQU * 07780000 LR X3,X5 07800000 PMPRGNXT L X5,RQFLKP(X3) 07820000 B PMPRGLP 07840000 * DONE. 07860000 PMPRGXT EQU * 07880000 DROP X2 07900000 SSM PMENABLE INTERRUPTS ACCEPTABLE. 07920000 SPACE 07960000 EJECT 08180000 SPACE 08200000 PMFREEB EQU * 08220000 USING PMUCM,X2 08240000 L X2,CSACTLM UCM ADDRESS P 08260000 TM WQEAVAIL,X'10' GETMAINED? 08280000 BO PMPRL YES. DO FREEMAIN 08300000 MVI WQEAVAIL,UCMFREE MARK BUFFER FREE 08340000 B PMEND2 BRANCH AROUND FREEMAIN 2648 08360018 PMPRL EQU * 08380000 LR X1,X8 PTS TO DISCARDED BUFFER. 08400000 CNOP 0,4 08422018 L X0,WQESPLEN LOAD SUBPOOL,LENGTH FOR GETMAIN M4927 08427019 SVC 10 ISSUE FREEMAIN SVC 08432018 DROP X2 08440000 PMEND2 EQU * 08460000 TM UCMSTS,UCMCF 08480000 BO PMCLOSE 08500000 EJECT 08520000 PMAPF EQU * 08540000 TM UCMSTS,UCMAF+UCMPF OUTSTANDING REQUESTS, Q. 08560000 BZ PMEXIT NO. 08580000 LTR X9,X9 ARE WE 08600000 BNE PMAF OPEN. 08620000 MVI CSACODE,CSAOPEN NO, SET CODE. 08640000 B PMCLOPN GO TO OPEN. 08660000 PMAF EQU * 08680000 TM UCMSTS,UCMAF WHAT TO DO... 08700000 BZ PMOUTPUT OUTPUT M3883 08730020 * INPUT M3883 08760020 NI UCMSTS,255-UCMAF ATTENTION SATISFIED. ALSO MAKE 08790017 * SURE OUTPUT FLAG IS OFF (RE- 08800015 * LATES TO ERROR RECOVERY) 08810015 LA X2,DMCREAD READ CCW PTR. 08820000 ST X2,DMICPA IOB PT TO CCW. 08840000 * GET A BUFFER. 08860000 USING PMUCM,X1 08880000 L X1,CSACTLM UCM ADDRESS P 08900000 TM UCMMODE,UCMFIX BUFFER MODE FIXED? P 08920000 BO PMFIX3 YES. USE FIXED INPUT AREA P 08940000 * GETMAIN SPACE FOR WQE M3883 08946020 * THIS GETMAIN REQUIRES THAT WQESPLEN AND RQESPLEN BE CONTIGUOUS 08952020 LM X0,X1,WQESPLEN SP AND LENGTH, X1 NEG M3883 08958020 SVC 10 R TYPE GETMAIN M3883 08964020 LR X8,X1 SET BASE 08970015 MVI WQEAVAIL,X'50' GETMAIN INDICATION 08980015 B PMEND3 08990015 PMFIX3 LA X8,UCMREAD ADDRESS FIXED BUFFER 09000015 MVI WQEAVAIL,X'40' FIXED BUFFER INDICATION 09010015 DROP X1 09020000 PMEND3 EQU * 09040000 ST X8,DMX CURRENT BUFFER PTR. 09080000 MVI DMX,DMXR CURRENT OPERATION CODE. 09100000 LA X2,WQETXT BUFFER ADDRESS. 09120000 IC X3,DMCREAD SAVE OP CODE. 09140000 ST X2,DMCREAD PT CCW TO BUFFER. 09160000 STC X3,DMCREAD RESTORE CODE. 09180000 LA X3,L'WQETXT-2 BUFFER EXTENT. 09200000 STH X3,DMCRNBR 09220000 PMCLRBUF MVI WQETXT,X'40' BLANK THE M3883 09240020 MVC WQETXT+1(L'WQETXT-1),WQETXT BUFFER. 09260000 B PMEXCP DO I/O. 09280000 SPACE 2 09300000 PMOUTPUT EQU * 09320000 NI UCMSTS,255-UCMPF OUTPUT FLAG OFF. 09340000 LA X2,DMCWRITE WRITE CCW ADDRESS. 09360000 ST X2,DMICPA PT IOB TO CCW. 09380000 L X2,CSAUCM+4 UCM PTR. 09400000 USING PMUCM,X2 09420000 L X8,UCMWTOQ OUTPUT QUEUE. 09440000 LTR X8,X8 DOUBLE-CHECK AVAILABLE OUTPUT. 09460000 BZ PMAPF NONE. 09480000 ST X8,DMX SAVE ADDRESS. 09500000 TM UCMSTS,UCMTC WORKING ON A MLWTO S21002 09500721 BO MLWRITE YES, SHOULD IT BE DISPLAYED S21002 09501421 CLI WMJMLW,N0 IS THIS A MLWTO S21002 09502121 BE NORMWQE NO WRITE IT S21002 09502821 OI UCMSTS,UCMTC SET WORKING FLAG ON S21002 09503521 B TSTPURG TEST FOR MLWTO PURGE S21002 09504221 MLWRITE TM WMJMLW,WMJMLWA THIS WQE DISPLAYED S21002 09504921 BNO TSTPURG NO SEE IF IT SHOULD BE DISPD S21002 09505621 TM WMJLTYP,WMJLTYPD END FORCED SINCE DISPLAYED S21002 09506321 BO MLEXIT YES MUST BE FREED AND DEQUED S21002 09507021 L X8,WMJNXTM BASE POINTS TO MINOR S21002 09507721 LTR X8,X8 ARE THERE ANY MINORS S21002 09508421 BZ PMAPF NO EXIT S21002 09509121 ST X8,DMX SAVE MINOR POINTER S21002 09509821 TSTPURG CLI WMNTXL,N0 Q. IS TEXT LGTH ZERO BG A50237 09511821 BNE CANCLTST NO - THE BUFFER IS FILLED BG A50237 09512021 TM WMJMLW,WMJMLWB Q. IS WQE A MAJOR BG A50237 09512421 BNO MINORTST NO - MUST BE A MINOR BG A50237 09512521 TM WMJLTYP,WMJLTYPD Q. MAJOR FILLED IN YET BG A50237 09512721 BNO PMAPF NO - CHECK FOR OTHER WORK BG A50237 09513121 B MLEXIT TREAT AS THO I/O COMPLETE BG A50237 09513221 MINORTST TM WMNLT,WMNLTD Q. IS END LINE PRESENT BG A50237 09517821 BNO PMAPF NO - CHECK FOR OTHER WORK BG A50237 09519821 B MLEXIT TREAT AS THO I/O COMPLETE BG A50237 09521821 CANCLTST EQU * BG A50237 09522221 TM WMNDISP,WMNDISPA Q. THIS MLWTO CANCELLED BG A50237 09522621 BO MLEXIT YES S21002 09523221 NORMWQE EQU * S21002 09527821 LA X2,WQETXT POINT TO BUFFER S21002 09532421 MVI DMX,DMXW INSERT CODE. 09555421 IC X3,DMCWRITE SAVE OP CODE. 09560000 ST X2,DMCWRITE PT CCW TO DATA. 09580000 STC X3,DMCWRITE RESTORE OP CODE. 09600000 MVC DMCWNBR+1(1),WQENBR+3 CCW OUTPUT COUNT. 09620000 SPACE 2 09640000 PMEXCP EQU * 09660000 OI UCMSTS,UCMBF ITS BUSY NOW. 09680000 ST XE,PMECB CLEAR ECB M3883 09700020 LA X1,DMIOB LOCATE IOB. 09720000 SPACE 09740000 EXCP (1) 09760000 SPACE 09780000 B PMEXIT 09800000 DS 0F ALIGNMENT OF PARM LIST M4927 09802019 * THE FIELDS WQESPLEN AND RQESPLEN MUST BE CONTIGUOUS - USED M3883 09802420 * AS GETMAIN PARAMETERS M3883 09802820 WQESPLEN DC AL1(255) SUBPOOL FOR WQE M3883 09803220 DC AL3(144) WQE SIZE M3883 09803620 RQESPLEN DC AL1(255) RQE SUBPOOL NUMBER M4927 09804019 DC AL3(RQESIZE) RQE SIZE M4927 09806019 PMENABLE EQU RQESPLEN ENABLE FOR SSM M4927 09808019 PMNINMIL DC F'9000000' 09903019 EIGHT DC H'8' USED TO GET TO UCM2 M3883 09908020 PMXTRNL DC C'XL' EXTERNAL PROCESSOR NAME M3883 09913020 PMXNAME DC C'01' THIS ROUTINE'S OWN NAME S21002 09915021 PMCFNAME EQU C'I' 1052 OPEN CLOSE NAME M3883 09918020 PMROUTER EQU C'0' ROUTER NAME M3883 09923020 N4 EQU 4 DISPLACEMENT S21002 09923521 F0 EQU C'0' ROUTER NAME S21002 09924021 I EQU C'I' OPEN/CLOSE NAME S21002 09924521 MLWTONM EQU C'2' MLWTO RTN IDENTIFIER S21002 09925021 DISP EQU 128 DISPLACEMENT S21002 09925521 N124 EQU 124 DISPLACEMENT S21002 09926021 N3 EQU 3 DISPLACEMENT S21002 09926521 N0 EQU 0 DISPLACEMENT S21002 09927021 N2 EQU 2 DISPLACEMENT S21002 09927521 RESETMSK DC X'7F7F' UCM ID RESET MASK M3883 09928020 RESETBIT NI 0(X1),0 EXECUTED M3883 09933020 EJECT 09936021 TITLE 'PMX CXSA' 09940000 PMXSA DSECT 09960000 IEECVMUG CXSA 09980000 TITLE 'PMX WQE' 10000000 PMWQE DSECT 10020000 IEECVMUG WQE 10040000 ORG PMWQE S21002 10044021 IEECVMUG WQEMAJ S21002 10048021 ORG PMWQE S21002 10052021 IEECVMUG WQEMIN S21002 10056021 TITLE ' PM RQE.' 10060000 PMRQE DSECT 10080000 IEECVMUG RQE 10100000 * OFFSET VALUES. 10120000 RQFWQEP EQU RQEXB-RQEF RQE PTR TO WQE, OR 0. 10140000 RQFLKP EQU RQELKP-RQEF LINK PTR. 10160000 RQFID EQU RQEID-RQEF ASSIGNED ID. 10180000 RQE8 EQU RQETCB-RQEF DISPL FOR WORK AREA M3883 10190020 WQEPRGF EQU 128 RQE MESSAGE WQE. 10200000 TITLE 'PMX UCM' 10220000 PMUCM DSECT 10240000 IEECUCM 10260000 PMECB EQU UCMECB ACTIVE I/O COMPLETION ECB. 10280000 TITLE 'PMX DCB,IOB,CCW' 10300000 IEEUCDX MAP 10320000 DMXERR EQU DMX+6 ERROR COUNT. 10340000 END 10360000 ./ ADD SSI=02002133,NAME=IEECVPM1,SOURCE=0 TITLE 'IEECVPM1 IGC0207B SECOND LOAD OF 1052 PROC FOR MLW80' 00100021 IEECVPM1 CSECT 00266821 *C079000,C100000-101000,D103000-104000,C123000,D132000-133000 MG M0639 00270121 *D139000-140000,C141000,A141500,C154000,C169000,C171000 MG M0639 00273421 *C175000-176000,C197000,A207500,D214000,C215000,C224000 MG M0639 00276721 *C226000,D229000-231000 MG M0639 00280021 * MODULE CREATED FOR RELEASE 21 OF OS/360 S21002 00300021 *********************************************************************** 00350021 * STATUS CHANGE LEVEL 0 00400021 * 00450021 * FUNCTION DEQUE MINORS WHEN THEIR TEXT HAS BEEN WRITTEN 00500021 * DEQUE MAJOR WHEN ENTIRE MLWTO HAS BEEN WRITTEN 00550021 * OR CANCELLED 00600021 * RING CONSOLE ALARM ON REQUEST 00650021 * 00700021 * ENTRY POINT IEECVPM1 00750021 * 00800021 * INPUT REGISTER 1 POINTS TO XSA 00850021 * NOTE: WHEN CALLED FROM IEECVPMX (1052) OR FROM 00900021 * IEECVPMP (PRINTER) THE CALLING MODULE PLACES A 00950021 * TWO-BYTE LOAD MODULE NAME IDENTIFIER (4TH AND 5TH 01000021 * BYTES OF LOAD MODULE NAME) IN THE FIRST 2 BYTES 01050021 * OF FIELD CSAXB AT X'1C' IN THE XSA SO THAT THIS 01100021 * WILL NORMALLY XCTL BACK TO THE CALLER. THIS 01150021 * INTERFACE WILL HAVE TO BE ADHERED TO IN ANY 01200021 * OTHER ROUTINES THAT XCTL TO THIS ONE. ANY SUCH 01250021 * ROUTINES MUST CLEARLY DOCUMENT THIS INTERFACE 01300021 * BOTH HERE AND IN THEIR OWN PROLOGUES 01350021 * THE THIRD BYTE OF FIELD CSAXB AT X'1E' INTO BE 21772 01400021 * THE XSA IS SET TO ONE IF ENTRY IS TO RING BE 21772 01450021 * THE CONSOLE ALARM ON THE 1052 BE 21772 01500021 * 01550021 * OUTPUT N/A 01600021 * 01650021 * EXTERNAL REFERENCES 01700021 * POST (SVC 2) 01750021 * FREEMAIN (SVC 10) 01800021 * XCTL (SVC 7) 01850021 * WAIT (SVC 1) BE 21772 01900021 * EXCP (SVC 0) BE 21772 01950021 * 02000021 * 02050021 * EXITS-NORMAL IGC0107B 1052 PROCESSOR MODULE 02100021 * IGCOI07B 1052 OPEN/CLOSE MODULE 02150021 * IGC2107B PRINTER PROCESSOR MODULE 02200021 * 02250021 * -ERROR NONE 02300021 * 02350021 * TABLES/WORK AREAS 02400021 * 02450021 * XSA 02500021 * WQE 02550021 * UCM 02600021 * DCB BE 21772 02650021 * 02700021 * ATTRIBUTES REFRESABLE,PRIVILEGED,DISABLED,TYPE 4 SVC 02750021 * 02800021 * NOTES THE OPERATION OF THIS MODULE DOES NOT DEPEND ON A 02850021 * PARTICULAR INTERNAL REPRESENTATION OF THE EXTERNAL 02900021 * CHARACTER SET 02950021 * 03000021 *********************************************************************** 03050021 EJECT 03100021 */*IEECVPM1: CHART */ 03150021 */* E IGC0207B */ 03200021 */* P DISABLE */ 03250021 */* D (YES,RINGBELL,NO,) RING BELL */ 03300021 */* P PICK UP WQE JUST OUTPUT FROM DCB */ 03350021 */* P SET WQE DISPLAYED AND OUTPUT PENDING IN UCME */ 03400021 */* D (YES,,NO,MINR) IS THIS A MAJOR */ 03450021 */* D (NO,,YES,OCPEND) ANY MINORS QUEUED OFF MAJOR */ 03500021 */* D (YES,,NO,POSTAVAL) MAJOR CONTAIN AN END LINE */ 03550021 */*MLEND: P SET WHAT-TO-DO SWITCH TO 0 FOR MLWTO COMPLETE */ 03600021 */* S INTERPST: POST AVAILABLE ECB IN MAJOR */ 03650021 */* P FLAG UCME NO LONGER WORKING ON MLWTO */ 03700021 */* P DEQUEUE MAJOR FROM UCMWTOQ */ 03750021 */*FREEBUF: D (YES,,NO,PMDECWQE) MFT */ 03800021 */* D (NO,,YES,FREEIT) WQE GETMAINED */ 03850021 */* P SET WQE AVAILABLE */ 03860021 */*PMDECWQE: P DECREMENT WQE COUNT */ 03870021 */* D (YES,,NO,WHATODO) WQE GETMAINED */ 03880021 */*FREEIT: S FREEMAIN: FREE WQE CORE */ 03900021 */*WHATODO: D (=0,PMNODECR,=4,MLEND,=8,) WHAT TO DO */ 03950021 */* D (YES,,NO,PMNODECR) MLWTO TASK WAITING FOR BUFFERS */ 04000021 */* P (,POSTECB) PREPARE TO POST AVAILABLE ECB IN MAJOR */ 04050021 */*PMNODECR: D (YES,,NO,OCPEND) WQE COUNT UNDER LIMIT */ 04100021 */* P PREPARE TO POST UCMWQECB */ 04150021 */*POSTECB: S INTERPST: POST APPRPRIATE ECB */ 04200021 */*OCPEND: P SET UP XSA TO XCTL BACK TO CALLER */ 04250021 */* D (NO,,YES,CLOSET) CLOSE PENDING FOR DEVICE */ 04300021 */*XCTL: R XCTL TO PROCESSOR NAME IN XSA */ 04350021 */*CLOSET: (,XCTL) P MOVE CALLER'S O/C RTN NAME TO XSA */ 04400021 */*MINR: P DEQUEUE MINOR FROM MAJOR */ 04450021 */* P SET WHAT-TO-DO SWITCH TO 4 FOR MORE MINORS TO DEQ */ 04500021 */* D (NO,,YES,FREEBUF) MINOR OUTPUT CONTAIN END LINE */ 04550021 */* P (,FREEBUF) INCR SWITCH TO 8 TO FREE MINOR &OUTPUT NXT LINE */ 04600021 */*RINGBELL: P ENABLE */ 04610021 */* P SAVE CCW POINTER TO RETRY FAILING I/O OPERATION */ 04612021 */* P SET UP IOB TO POINT TO RING GONG CCW */ 04614021 */* P SET UP 3 TIME LOOP */ 04630021 */*PMGONGR: S EXCP: RING BELL */ 04640021 */* S WAIT: ON I/O */ 04642021 */* D (YES,,NO,PMGONGR) RUNG 3 TIMES */ 04644021 */* P RESET CONSOLE NOT READY */ 04646021 */* P RESET ERROR COUNTER */ 04648021 */* D (YES,,NO,PMSETO) RETURN FOR A READ */ 04648421 */* P (,OCPEND) SET ATTN PENDING IN UCME */ 04648521 */*PMSETO: P (,OCPEND) SET OUTPUT PENDING */ 04649621 */*INTERPST: E INTERPARTITION POST ROUTINE */ 04650021 */* D (YES,,NO,RETURN) ECB TO BE POSTED WAITED ON */ 04700021 */* P BR ENTRY INTERPART POST OF ECB PASSED */ 04750021 */*RETURN: R RETURN ON REG2 */ 04800021 EJECT 05765321 X0 EQU 0 WORK 05765521 X1 EQU 1 PARAMETER REG 05774121 X2 EQU 2 INTERNAL RTN REG BE A51715 05800021 X3 EQU 3 WORK 05900021 X4 EQU 4 SWITCH BE A51715 06000021 X5 EQU 5 UCME BE A51715 06100021 X6 EQU 6 XSA REG BE A51715 06200021 X7 EQU 7 BASE REG BE A51715 06300021 X8 EQU 8 WQE BASE BE 21772 06400021 X9 EQU 9 UCM BASE 06500021 X10 EQU 10 WORK BE A51715 06600021 X11 EQU 11 ECB PTR, WORK BE A51715 06700021 X12 EQU 12 WORK BE A51715 06800021 X13 EQU 13 TJID, WORK BE A51715 06900021 X14 EQU 14 WORK BE A51715 07000021 X15 EQU 15 WORK 07100021 EJECT 07200021 BALR X7,X0 SET UP BASE BE A51715 07300021 USING *,X7 DECLARE PGM BASE BE A51715 07400021 SSM DISABLE DISABLE INTERRUPTS 07500021 USING XSA,X6 DECLARE XSA BASE BE A51715 07600021 USING UCM,X9 DECLARE UCM BASE 07700021 USING UCMLIST,X5 DECLARE UCM ENTRY BASE BE A51715 07800021 USING MAJMIN,X8 DECLARE WQE BASE MG M0639 07900021 LR X6,X1 GET XSA BASE BE A51715 08000021 L X9,CSACTLM GET UCM ADDR 08100021 L X5,CSAUCM GET UCM ENTRY BASE BE A51715 08200021 CLI CSAXB+2,RINGCODE ENTRY TO RING CONSOLE ALARM BE 21772 08330021 BE RINGBELL YES BE 21772 08360021 L X3,UCMDCB GET DCB ADDRESS BE A51715 08370021 CLI CSAXB,PRINTDCB Q. ENTRY TO PROC. PRNTR DCB BE A52556 09550021 PRINTDCB EQU X'F2' BE A52556 09552021 BNE EXCPDCB NO - PROCESS EXCP DCB BE A52556 09560021 L X8,DCBWQE(X3) PICK UP WQE PTR BE A51715 09570021 DCBWQE EQU X'58' OFFSET TO WQE PTR BE A52556 09580021 B PROCWQE PROC THE WQE BE A52556 09590021 EXCPDCB EQU * BE A52556 09592021 L X8,N56(X3) GET WQE ADDRESS BE A51715 09600021 PROCWQE EQU * BE A52556 09650021 LA X8,N0(X8) CLEAR OUTPUT FLAG BG A57090 09700021 OI WMJMLW,WMJMLWA SET WQE DISPLAYED MG M0639 10000021 OI UCMSTS,UCMPF SET OUTPUT PENDING IN UCME BE A51715 10050021 TM WMJMLW,WMJMLWB IS THIS A MAJOR WQE MG M0639 10160021 BNO MINR NO MINOR 10200021 L X3,WMJNXTM GET MINOR POINTER 10500021 TM WMJDISP,WMJDISPA WAS THIS MESSAGE CANCELLED 67368 10510021 BNO RNDLOOP NO, SKIP TO NEXT TEST 67368 10520021 CANMINR LTR X3,X3 ANY MORE MINORS 67368 10530021 BZ MLEND NO 67368 10540021 OI 136(3),WMNDISPA SET CANCELLED FLAG IN MINR 67368 10550021 L X3,0(X3) GET NEXT MINOR 67368 10560021 B CANMINR LOOP AGAIN 67368 10570021 RNDLOOP LTR X3,X3 ANY MINOR WQE'S? 67368 10580021 BNZ OCPEND YES-TEST FOR CLOSE PENDING BE A51715 10700021 TM WMJLTYP,WMJLTYPD MAJOR CONTAIN END LINE ? BE A51715 10750021 BNO POSTAVAL MAJOR BUFFER IS AVAILABLE BE A51715 10800021 MLEND EQU * BE A51715 10850021 LA X4,N0 INDICATE END LINE FOUND BE A51715 10900021 SR X13,X13 CLEAR REG 13 FOR TJID BE A51715 10950021 IC X13,WMJTJID BE A51715 11000021 SLL X13,N8 PICK UP TJID BE A51715 11050021 IC X13,WMJTJID+N1 BE A51715 11100021 LA X11,WMJAECB AVAILABLE ECB TO BE POSSTED BE A51715 11150021 BAL X2,INTERPST POST THE MLWTO TASK BE A51715 11200021 NI UCMSTS,N255-UCMTC INDICATE NO LONGER WORKING ON MLWTO 12000021 L X11,WMJNXTM SAVE MINOR POINTER @S67368P 12080021 CL X8,UCMWQEND IS THIS LAST 12160021 BNE UNLINK NO DONT CLEAR LAST WQE PTR BE A51715 12170021 XC UCMWQEND,UCMWQEND CLEAR LAST WQE POINTER 12180021 UNLINK EQU * BE A51715 12182021 MVC UCMWTOQ,WMJUC DELINK MAJOR WQE BE A51715 12184021 FREEBUF EQU * BE A51715 12186021 LH X3,UCMWQNR GET CURRENT WQE COUNT BE A51715 12192021 TM UCMMODE,UCMFIX FIXED MODE 12194021 BNO PMDECWQE NO DECREMENT COUNT 12196021 TM WMJBUF,WMJBUFD WQE GETMAINED MG M0639 12198021 BO FREEIT YES DONT DECREMENT COUNT BE A51715 12198421 MVI WMJBUF,WMJBUFA MARK WQE AVAILABLE MG M0639 12198521 PMDECWQE EQU * 12198821 BCTR X3,X0 DECREMENT WQE COUNT BE A51715 12199221 STH X3,UCMWQNR SAVE NEW COUNT BE A51715 12199621 TM WMJBUF,WMJBUFD WQE GETMAINED MG M0639 12199721 BNO WHATODO NO DETERMINE WHERE TO GO BE A51715 12199821 FREEIT EQU * 12233221 LR X1,X8 POINT TO CORE TO BE FREEMAINED 12243221 L X0,SBPLLGN GET SUB POOL AND LENGTH MG M0639 12253221 SVC FREEMAIN ISSUE FREEMAIN FOR WQE @S67368P 12253621 WHATODO EQU * @S67368P 12254021 LR X8,X11 LOAD WQE BASE 67368 12254421 LTR X8,X8 ANY MINOR WQES? 67368 12254821 BZ NEXTACT NO, DO NEXT TEST 67368 12255221 L X11,WMNUC SAVE NEXT MINOR POINTER 67368 12255621 LH X3,UCMWQNR GET CURRENT WQE COUNT 67368 12256021 TM UCMMODE,UCMFIX FIXED MODE? 67368 12256421 BNO WHATNEXT NO, DECREMENT COUNT 67368 12256821 TM WMNBUF,WMNBUFD WQE GETMAINED? (MFT) 67368 12257221 BO SKIPOVR YES, DON'T DECREMENT COUNT 67368 12257621 MVI WMNBUF,WMNBUFA SET WQE AVAILABLE 67368 12258021 WHATNEXT BCTR X3,X0 DECREMENT WQE COUNT 67368 12258421 STH X3,UCMWQNR STORE NEW COUNT 67368 12258821 TM WMNBUF,WMNBUFD BUFFER GETMAINED? 67368 12259221 BNO WHATODO NO, DO NEXT MINOR 67368 12259621 SKIPOVR LR X1,X8 POINT WQE TO FREEMAIN 67368 12260021 L X0,SBPLLGN GET SUBPOOL AND LENGTH 67368 12260421 SVC FREEMAIN 67368 12260821 B WHATODO LOOP AGAIN 67368 12261221 NEXTACT L X8,UCMWTOQ PICK UP POSSIBLE MAJOR 67368 12261621 B *+4(X4) WHERE TO GO BE A51715 12266021 B PMNODECR POST UCMWQECB-MLWTO DONE BE A51715 12266421 B MLEND END FOUND IN MINOR-CLEANUP BE A51715 12266521 * PREPARE TO PROCESS NEXT LINE BE A51715 12266621 TM WMJAECB,WAITBIT IF AVAIL ECB IN MAJOR IS BE A51715 12277721 BNO PMNODECR NOT WAITED ON POST UCMWQECB BE A51715 12287721 POSTAVAL EQU * BE A51715 12337721 SR X13,X13 CLEAR REG 13 FOR TJID BE A51715 12387721 IC X13,WMJTJID BE A51715 12437721 SLL X13,N8 PICK UP TJID BE A51715 12487721 IC X13,WMJTJID+N1 BE A51715 12537721 LA X11,WMJAECB AVAILABLE ECB TO BE POSSTED BE A51715 12587721 B POSTECB POST ECB IN MAJOR BE A51715 12637721 PMNODECR EQU * 12687721 CH X3,UCMWQLM COUNT UNDER LIMIT BE A51715 12737721 BNL OCPEND NO - DON'T POST BE A51715 12787721 LR X3,X9 GET UCM BASE BE A51715 12837721 SH X3,H8 POINT TO UCM EXTENTION BE A51715 12887721 L X3,N0(X3) BASE EXTENTION BE A51715 12937721 USING UCM2,X3 BE A51715 12987721 LH X13,UCM2WID PICK UP TJID BE A51715 13037721 DROP X3 BE A51715 13087721 LA X11,UCMWQECB POST UCMWQECB BE A51715 13137721 POSTECB EQU * BE A51715 13187721 BAL X2,INTERPST POST APPROPRIATE ECB BE A51715 13237721 OCPEND EQU * BE A51715 13287721 MVC CSANAME+N3(N2),CSAXB RESET NAME TO CALLER'S BE A51715 13337721 TM UCMSTS,UCMUF CLOSE DEVICE 13387721 BO CLOSET YES-GO TO O/C PROC RTN BE A51715 13437721 XCTL EQU * BE A51715 13487721 L X14,CSAXA GET RETURN ADDRESS BE A51715 13537721 LR X1,X6 SET XAS REGISTER BE A51715 13587721 LR X15,X6 SET UP XSA POINTER BE A51715 13637721 XCTL SF=(E,(X15)) EXIT BE A51715 13687721 CLOSET EQU * BE A51715 13737721 MVI CSANAME+N4,CI SET UP XSA FOR CLOSE NAME BE A51715 13787721 B XCTL GO TO OPEN/CLOSE ROUTINE BE A51715 13837721 MINR EQU * 19002021 L X3,UCMWTOQ PICK UP MAJOR BE A51715 19012021 MVC WMJNXTM-WMJF(X4,X3),WMNEXT Q NXT MINR TO MAJOR BE A51715 19014021 LA X4,N4 SET MINOR BEING PROC SWITCH BE A51715 19016021 L X11,WMJNXTM SAVE MINOR POINTER @SM0050K 19017021 TM WMNLT,WMNLTD END OF MLWTO BE A51715 19018021 BO FREEBUF FREE MINOR+MAJOR BE A51715 19020021 LA X4,N4(X4) FREE MINR & OUTPUT NXT LINE BE A51715 19020421 B FREEBUF GO TO FREE MINOR BE A51715 19020521 INTERPST EQU * BE A51715 19020621 TM N0(X11),WAITBIT IS ECB BEING WAITED ON ? BE A51715 19020721 BCR N8,X2 NO - RETURN TO CALLER BE A51715 19020821 LA X10,N0 POSTING CODE BE A51715 19020921 L X12,UCMPXA PICK UP COMM TASK TCB BE A51715 19021921 L X15,CVT PICK UP POST BR ENTRY PT BE A51715 19023921 USING CVTDSECT,X15 BE A51715 19024621 L X15,CVT0PT01 BE A51715 19025021 DROP X15 BE A51715 19025421 L X3,TJIDSET INDICATE INTER PART POST BE A51715 19025821 STM X8,X9,CSAXC SAVE REGS 8 & 9 63460 19026021 OR X13,X3 BE A51715 19026221 BALR X14,X15 POST ECB BE A51715 19026321 LM X8,X9,CSAXC RESTORE REGS 8 & 9 63460 19026721 BR X2 RETURN TO CALLER BE A51715 19027221 RINGBELL EQU * BE 21772 19027621 L X10,UCMDCB PICK UP CONSOLE'S DCB ADDR BE A51715 19029121 USING IHADCB,X10 BE A51715 19030021 SSM ENABLE ENABLE FOR INTERRUPTS BE 21772 19032021 L X4,DMICPA SAVE IOB CCW PTR FOR RETRY BE 21772 19037621 NI DCBIFLGS,ERROFF DCB PERM ERROR OFF BE A54883 19043221 NI DMIF1,CMDCHAIN RESET IOB BE 21772 19048821 SR X12,X12 ZERO FOR SPIN LOOP TIME BE A51715 19054421 IC X12,UCMINCR-UCM(0,X9) TIMING INCREMENT BE A51715 19060021 L X13,PMNINMIL INITIALIZE TO COMPARAND BE A51715 19065621 LA X3,X3 RING GONG 3 DISTINCT TIMES BE 21772 19071221 PMGONGR SR X14,X14 INDEX FOR TIMING LOOP BE A51715 19076821 LA X2,DMCGONG GONG CCW BE 21772 19082421 ST X2,DMICPA POINT IOB TO CCW BE 21772 19088021 LA X1,DMIOB POINT EXCP TO IOB BE 21772 19093621 XC PMECB,PMECB CLEAR ECB BE 21772 19099221 EXCP (1) BE 21772 19104821 WAIT ECB=PMECB BE 21772 19110421 BXLE X14,X12,* WAIT THREE SECONDS BE A51715 19116021 BCT X3,PMGONGR GO BACK TO RERING IF MUST BE 21772 19121621 L X1,UCMUCB ADDR OF CONSOLE'S UCB BE 21772 19127221 OI UCBFL1(X1),NOTREADY TURN OFF READY IN UCB BE 21772 19132821 NI DMXERR+1,RESET RESET ERROR COUNTER BE 21772 19138421 ST X4,DMICPA RESTORE IOB CCW POINTER BE 21772 19144021 NI UCMSTS,255-UCMBF BUSY FLAG OFF BE 21772 19149621 CLI N0(X4),READCCW IS CCW FOR A READ BE 21772 19155221 BNE PMSETO NO, SET OUTPUT FLAG ON BE 21772 19160821 OI UCMSTS,UCMAF YES, TURN ON ATTN FLAG BE 21772 19166421 B OCPEND RETURN TO VPMX FOR I/O BE A51715 19172021 PMSETO OI UCMSTS,UCMPF SET OUTPUT FLAG ON BE 21772 19177621 B OCPEND RETURN TO VPMX FOR I/O BE A51715 19183221 * SYSTEM WILL WAIT FOR CONSOLE TO BE MADE READY BE 21772 19188821 EJECT 19194421 *********************************************************************** 19200021 * CONSTANTS * 19300021 *********************************************************************** 19400021 SPACE 2 19500021 PMNINMIL DC F'9000000' BE 21772 19650021 TJIDSET DC X'80000000' BE A51715 19652021 DS 0F 19660021 SBPLLGN DC X'FF000090' SUB POOL AND LENGTH OF WQE MG M0639 19700021 H8 DC H'8' FOR SUBTRACT 19800021 ENABLE DC X'FF' MACHINE MASK 19900021 DISABLE DC X'00' MACHINE MASK 20000021 SPACE 2 20200021 *********************************************************************** 20300021 * EQUATES * 20400021 *********************************************************************** 20500021 SPACE 2 20600021 N0 EQU 0 DISPLACEMENT 20700021 N255 EQU 255 DISPLACEMENT 20800021 N56 EQU 56 DISPLACEMENT 20900021 N4 EQU 4 DISPLACEMENT 21000021 N2 EQU 2 DISPLACEMENT 21100021 N3 EQU 3 DISPLACEMENT 21200021 N1 EQU 1 DISPLACEMENT 21300021 N8 EQU 8 BE A51715 21350021 FREEMAIN EQU 10 FREEMAIN SVC NUMBER MG M0639 21500021 XF1 EQU C'1' PROCESSOR NAME 21600021 CI EQU C'I' OPEN CLOSE NAME 21700021 NOTREADY EQU X'40' NOTREADY FLAG IN UCB BE 21772 21710021 RESET EQU X'00' RESET ERR CNTR BE 21772 21720021 READCCW EQU X'0A' READ CCW BE 21772 21730021 RINGCODE EQU X'01' CODE FOR ALARM OP BE 21772 21740021 ERROFF EQU X'3F' NO PERM ERR BE A54883 21750021 CMDCHAIN EQU X'42' COMMAND CHAINING BE 21772 21760021 UCBFL1 EQU 6 DISP TO UCB FLAGS BE 21772 21770021 WAITBIT EQU X'80' WAIT BIT OF ECB BE A51715 21780021 CVT EQU X'10' LOC OF PTR TO CVT BE A51715 21790021 EJECT 21800021 *********************************************************************** 21900021 * DSECTS * 22000021 *********************************************************************** 22100021 SPACE 2 22200021 MAJMIN DSECT MG M0639 22400021 IEECVMUG WQEMAJ 22500021 ORG WMJF MG M0639 22600021 IEECVMUG WQEMIN 22700021 EJECT 22800021 UCM DSECT 23200021 IEECUCM 23300021 PMECB EQU UCMECB BE 21772 23320021 IEEUCDX MAP BE 21772 23340021 DMXERR EQU DMX+6 ERROR COUNT BE 21772 23360021 EJECT 23400021 XSA DSECT 23500021 IEECVMUG CXSA 23600021 CVTDSECT DSECT 23650021 CVT 23660021 END 23700021 ./ ADD SSI=02010171,NAME=IEECXDOM,SOURCE=0 ***** ***** 00700018 * * 01400018 * NAME IEECXDOM - DELETE OPERATOR MESSAGE * 02100018 * * 02800018 * IGC0008G SVC 87 * 03500018 * * 04200018 * FUNCTION: BUILDS DOM QUEUE ON UCM AND POSTS DOM ECB * 04900018 * * 05600018 * * 06300018 * ENTRY IGC0008G * 07000018 * * 07700018 * * 08400018 * INPUT REGISTER 1 WILL CONTAIN EITHER THE MESSAGE NUMBER (MSG=) * 09100018 * * 09800018 * OR THE ADDRESS OF A LIST OF MESSAGE NUMBERS (MSGLIST=) * 10500018 * * 11200018 * REGISTER 0 DEFINES WHAT TYPE OF INPUT IS IN REGISTER 1 * 11900018 * * 12600018 * IF REGISTER 0 EQUALS 0,THEN REGISTER 1 CONTAINS AN ID . * 13300018 * IF REGISTER 0 IS NEGATIVE,THEN REGISTER 1 CONTAINS AN * 14000018 * ADDRESS OF AN ID LIST. * 14700018 * * 15400018 * * 16100018 * * 16800018 * * 17500018 * OUTPUT - N/A * 18200018 * * 18900018 * EXTERNAL REFERENCES CVT * 19600018 * UCM * 20300018 * POST * 21000018 * GETMAIN * 21700018 * * 22400018 * EXITS RETURN * 23100018 * * 23800018 * * 24500018 * NOTES TYPE 3 SVC -REENTRANT-REFRESHABLE * 25200018 * * 25900018 * OPERATION DETERMINE TYPE OF REQUEST SINGLE ID OR LIST. * 26600018 * GETMAIN FOR QUEUE. MOVE IN ID OR ID'S. STORE PROTECT KEY 27300018 * OF ISSUING TASK IN HIGH ORDER BYTE OF LINK FIELD. LINK ONTO 28000018 * SYSTEM DOM Q. POST DOM ECB 28700018 * 29400018 * 30100018 * 30800018 * 31500018 * 32200018 ***** **** 32900018 TITLE 'IEECXDOM - IGC0008G SVC DOM' 33600018 IGC0008G CSECT 33900018 *MODULE CREATED FOR MCS - REL 18 34100018 BALR RBASE,N0 ESTABLISH ADDRESS ABILITY 34300018 USING *,RBASE 34600018 L RCVT,CVTA CVT ADDRESS 35000018 USING CVTDSECT,RCVT 35700018 USING UCM,RUCM 36400018 USING MCSUCM,RUCMCS 37100018 L RUCM,CVTCUCB PICK UP UCM 37800018 LA RWK,N4 TO OBTAIN POINTER TO MCS UCM 38500018 LR RUCMCS,RUCM BASE UCM 39200018 SR RUCMCS,RWK MINUS FOUR IS POINTER TO MCS UCM ADDITION 39900018 L RUCMCS,N0(RUCMCS) POINTER TO MCS UCM 40600018 LTR RINPUT0,RINPUT0 IS THIS ONLY ONE ID 41300018 BZ ONEID YES 42000018 LR RWK,RINPUT1 GET POINTER TO PARM POINTER 42050021 LA RLIST,N4 SIZE OF LIST PLUS FOUR FOR DOM LINK POINTER 44100018 INCR LA RLIST,N4(RLIST) SIZE OF ONE ENTRY 44800018 CH RLIST,SIXTY1 MAX SIZE OF LIST ALLOWED 60 WORDS 45500018 BNL FORCEND AUTOMATICALLY THIS IS LAST 46200018 TM N0(RWK),LAST IS LAST INDICATOR ON 46900018 LA RWK,N4(RWK) NEXT ENTRY 47600018 BO FORCEND YES LAST 48300018 B INCR INCREMENT 49000018 FORCEND LR RINPUT0,RLIST SIZE OF CORE TO GET BG A55985 53900021 O RINPUT0,SUBPOOL SUBPOOL 255 54600018 LR RWK,RINPUT1 SAVE POINTER TO LIST 55300018 GETMAIN R,LV=(0) 56000018 BCTR RLIST,N0 DECREMENT BY ONE FOR MOVE 56700018 S RLIST,FOUR POINT TO LAST BYTE OF NEXT TO LAST WORD 57000018 EX RLIST,MOVEDOM MOVE LIST TO GETMAINED AREA 57400018 QON EQU * BG A55985 61650021 L RWK1,TWENTY8(RSVRB) RBLINK PTR 63000018 MVZ N0(N1,RINPUT1),ISSPRK(RWK1) MOVE IN PROTECT KEY 63700018 SSM *+N1 DISABLE WHILE REFERENCING DOM Q 64400018 MVC N1(N3,RINPUT1),UCMDOME+N1 PUT OLD FIRST DOM PTR 65100018 * IN WORD ONE OF NEW Q 65800018 ST RINPUT1,UCMDOME LINK AND POINT TO OF Q TO NEW 66500018 POST UCMDECB 67200018 BR RRETURN RETURN 67900018 ONEID LR RWK,RINPUT1 SAVE ID 68600018 L RINPUT0,ONLYONE SIZE OF ONE ENTRY 69300018 GETMAIN R,LV=(0) 70000018 ST RWK,N4(RINPUT1) STORE ID IN LIST 70700018 MVI N4(RINPUT1),LAST INDICATE LAST 71400018 B QON GO QUEUE TO DOM Q 72100018 RINPUT0 EQU 0 INPUT REG 0 72800018 RINPUT1 EQU 1 INPUT REG 1 73500018 RCVT EQU 3 CVT REG 74200018 RUCM EQU 4 UCM REG 74900018 RSVRB EQU 5 SVRB REG 75600018 RUCMCS EQU 6 MCS UCM REG 76300018 RLIST EQU 7 77000018 RWK1 EQU 8 77700018 RWK EQU 9 WORK REG 78400018 RSW EQU 10 SWITCH 79100018 RBASE EQU 11 BASE REGISTER 79800018 RRETURN EQU 14 RETURN REG 80500018 N0 EQU 0 NUMBER 0 81200018 N1 EQU 1 NUMBER ONE 81900018 N2 EQU 2 NUMBER TWO 82600018 N3 EQU 3 NUMBER THREE 83300018 N4 EQU 4 NUMBER 4 84000018 NOTONE EQU 14 FOR BC NOT ONES AFTER TM 84700018 CVTA EQU 16 ADDRESS OF CVT 85400018 ISSPRK EQU 17 PROTECT KEY FIELD OF TCB 86100018 TWENTY8 EQU 28 OFFSET TO RBLINK FIELD OF RB 86800018 LAST EQU X'80' LAST INDICATOR IN LIST 87500018 DS 0F 88200018 SUBPOOL DC X'F5000000' SUBPOOL 245 MASK (SQS) 20021 88900020 FOUR DC X'00000004' ARITH 89600018 ONLYONE DC X'F5000008' SIZE OF ONE ENTRY (SQS) 20021 90300020 SIXTY1 DC H'244' SIZE OF MAX LIST 91000018 MOVEDOM MVC N4(N4,RINPUT1),N0(RWK) MOVE IN LIST 91700018 CVTDSECT DSECT 92400018 CVT 93100018 UCM DSECT 93800018 IEECUCM 94500018 END 95200018 ./ ADD SSI=01011075,NAME=IEEDFINA,SOURCE=1 * IEEDFINA: PROC OPTIONS(REENTRANT,NOSAVEAREA,SAVE); 00000000 LCLA &T,&SPN 0001 00000010 .@001 ANOP 0001 00000020 IEEDFINA CSECT , 0001 00000030 STM @E,@C,12(@D) 0001 00000040 BALR @B,0 0001 00000050 @PSTART DS 0H 0001 00000060 USING @PSTART+00000,@B 0001 00000070 L @0,@SIZ001 0001 00000080 GETMAIN R,LV=(0) 0001 00000090 LR @C,@1 0001 00000100 USING @DATD+00000,@C 0001 00000110 L @1,24(0,@D) 0001 00000120 XC @TEMPS(@L),@TEMPS 0001 00000130 * 00000140 * /******************************************************************** 00000150 * /* * 00000160 * /*FUNCTION- * 00000170 * /* THIS ROUTINE GETS CORE FOR AND CREATES THE SMF DYNAMIC STORAGE * 00000180 * /* CONFIGURATION RECORD IN MFT. THIS ROUTINE IS CALLED TO WRITE * 00000190 * /* A RECORD AT IPL TIME FROM THE SMF INITIALIZATION MODULE IEESMFIT* 00000200 * /* AND IS CALLED FROM THE DEFINE MODULES WHENEVER PARTITIONS HAVE * 00000210 * /* BEEN DYNAMICALLY REDEFINED. THE DECLARE STATEMENTS CALLED * 00000220 * /* TYPE13 AND DYNAREA INDICATE HOW THE RECORD IS MAPPED. DYNAREA * 00000230 * /* IS REPEATED FOR EACH PROBLEM PROGRAM PARTITION. FINALLY THE * 00000240 * /* MACRO SMFWTM IS USED TO ISSUE SVC 83 FOR WRITING THE RECORD. * 00000250 * /* * 00000260 * /*STATUS- A35196* 00000270 * /* 568000 A35196* 00000280 * /* CHANGE LEVEL- 001 A35196* 00000290 * /* A35196* 00000300 * /*ENTRY POINTS- * 00000310 * /* IEEDFINA * 00000320 * /* * 00000330 * /*INPUT- * 00000340 * /* REGISTER 13 POINTS TO REGISTER SAVE AREA * 00000350 * /* BOUNDARY BOX OF PROBLEM PROGRAM PARTITION * 00000360 * /* PIB OF PROBLEM PROGRAM PARTITION * 00000370 * /* TCB ADDRESS TABLE POINTED TO BY CVTTAT IN CVT * 00000380 * /* SMF CONTROL AREA (SMCA) * 00000390 * /* * 00000400 * /*OUTPUT- * 00000410 * /* SMF TYPE 13 RECORD * 00000420 * /* * 00000430 * /*EXTERNAL REFERENCES- * 00000440 * /* NONE * 00000450 * /* * 00000460 * /*EXITS, NORMAL- * 00000470 * /* RETURN TO IEESMFIT AT IPL TIME * 00000480 * /* RETURN TO IEEDFIN9 AT DYNAMIC PARTITION DEFINITION * 00000490 * /* * 00000500 * /*EXITS,ERROR- * 00000510 * /* NONE * 00000520 * /* * 00000530 * /*TABLE/WORK AREAS- * 00000540 * /* GOTTEN CORE IN WHICH RECORD IS BUILT * 00000550 * /* * 00000560 * /*ATTRIBUTES - REENTRANT * 00000570 * /* * 00000580 * /* * 00000590 * /******************************************************************** 00000600 * /* DECLARATIONS FOR REGISTERS * 00000610 * 00000620 * DCL R0 REG(0), 00000630 * R1 REG(1), 00000640 * R2 REG(2), 00000650 * R3 REG(3), 00000660 * R4 REG(4), 00000670 * R5 REG(5) PTR(31), /* CVT POINTER * 00000680 * R6 REG(6) PTR(24), /* TYPE 13 RECORD POINTER * 00000690 * R7 REG(7) PTR(31), /* TCB, SMCA POINTER * 00000700 * R8 REG(8) PTR(31), /* BOUNDARY BOX, PIB PTR * 00000710 * R9 REG(9) PTR(31), /* MSTR RES DATA AREA PTR * 00000720 * R10 REG(10), 00000730 * R11 REG(11), 00000740 * R12 REG(12), 00000750 * R13 REG(13), 00000760 * R14 REG(14), 00000770 * R15 REG(15); 00000780 * 00000790 * 00000800 * DCL CVTPTR PTR BASED(16); /* ASSIGN NAME TO LOCATION * 00000810 * /* CONTAINING CVT ADDRESS * 00000820 * DCL I REG(9); 00000830 * RESTRICT (R1,R5,R6,R7,R8,R9); 00000840 * 00000850 * DCL TEMP1 FIXED(31); /* TEMPORARY WORK AREA * 00000860 * DCL R6SAV FIXED(31); /* SAVE GOTTEN CORE PTR * 00000870 * 00000880 * DCL TEMPL2 FIXED(31); /* FOR TOTAL RECORD LENGTH * 00000890 * DCL TEMPL1 FIXED(15); /* FOR LENGTH OF DYNAMIC AREA * 00000900 * 00000910 * DCL 1 STATUS BIT(8) INIT('00000000'B), /* FOR STATUS INFO* 00000920 * 2 LCSBIT BIT(1), /* =1 IF LCS IN SYSTEM * 00000930 * 2 * BIT(7); 00000940 * 00000950 * DCL P0ID PTR(8); /* ID OF P0 FOR CALCULATING * 00000960 * /* SUBSEQUENT PARTITION IDS * 00000970 * /* STRUCTURE MAPPING NECESSARY FIELDS IN CVT * 00000980 * 00000990 * DCL 1 CVTMAP BASED(CVTPTR), 00001000 * 2 * CHAR(116), 00001010 * 2 CVTDCB PTR(8), /* SYSTEM TYPE * 00001020 * 2 * CHAR(31), 00001030 * 2 CVTMSER PTR(31), /* MSTR RES DATA AREA PTR * 00001040 * 2 * CHAR(44), 00001050 * 2 CVTQPGTM PTR(31), /* CVTSMCA EQUATED TO THIS * 00001060 * 3 CVTSMCA PTR(31), /* CVTSMCA EQU CVTQPGTM * 00001070 * 2 * CHAR(44), 00001080 * 2 DUMMY PTR(31), /* FULLWORD * 00001090 * 3 CVTTSKS PTR(8), /* MFT ATTACH * 00001100 * 3 CVTTAT PTR(24), /* PTR. TO TCB ADDR TABLE * 00001110 * 2 CVTSYST PTR(8); /* NO. OF SYSGENED PARTITIONS * 00001120 * 00001130 * 00001140 * DCL TCBTABLE(52) PTR(31) BASED(CVTTAT); /* TCB TABLE * 00001150 * 00001160 * /* MAPPING OF TCB * 00001170 * 00001180 * DCL 1 TCBMAP BASED(R7), 00001190 * 2 * CHAR(24), 00001200 * 2 TCBMSS PTR(31), /* BOUNDARY BOX POINTER * 00001210 * 2 * CHAR(5), 00001220 * 2 TCBFLG PTR(8), /* FF INDICATES TCB IS NON- * 00001230 * /* DISPATCHABLE IE PARTITION * 00001240 * /* IS INACTIVE * 00001250 * 2 * CHAR(78), 00001260 * 2 TCBIDF PTR(8), /* PARTITION NUMBER * 00001270 * 2 * CHAR(3), 00001280 * 2 TCBTCB PTR(31), /* POINTER TO NEXT TCB * 00001290 * 2 * CHAR(4), 00001300 * 2 TCBPIB PTR(31); /* PIB POINTER * 00001310 * 00001320 * 00001330 * /* MAPPING OF PARTITION INFORMATION BLOCK (PIB) * 00001340 * 00001350 * DCL 1 PIBMAP BASED(R8), 00001360 * 2 * CHAR(25), 00001370 * 2 SD33GRP CHAR(3); /* GROUP CODES FOR * 00001380 * /* PARTITION CLASSES * 00001390 * /* MASTER SCHEDULER RESIDENT DATA AREA MAPPING * 00001400 * 00001410 * DCL 1 BASEB BASED(R9), 00001420 * 2 * CHAR(116), 00001430 * 2 BASFL2 PTR(8), /* STATUS BITS * 00001440 * 3 * BIT(5), 00001450 * 3 BALCS BIT(1), /* BALCS=1 IF LCS IN SYSTEM * 00001460 * 3 * BIT(2), 00001470 * 2 * CHAR(75), 00001480 * 2 MSTPTCB PTR(31); /* POINTER TO HIGHEST PRIORITY* 00001490 * /* PROBLEM PROGRAM TCB * 00001500 * 00001510 * 00001520 * /* SMF CONTROL AREA (SMCA) MAPPING * 00001530 * 00001540 * DCL 1 SMCAMAP BASED(R7), 00001550 * 2 * CHAR(16), 00001560 * 2 SMCASID CHAR(2), /* SYSTEM ID * 00001570 * 2 SMCAMDL CHAR(2); /* MODEL NUMBER * 00001580 * /* MFT STORAGE CONFIGURATION (TYPE 13) RECORD MAPPING * 00001590 * 00001600 * DCL 1 TYPE13 BASED(R6), /* FIXED AREA OF RECORD * 00001610 * 2 TYP13CNT FIXED(31), /* COUNT FIELD * 00001620 * 2 TYP13CON PTR(8), /* RESERVED-CONTAINS ZERO * 00001630 * 2 TYP13TYP PTR(8), /* RECORD TYPE * 00001640 * 2 TYP13TIM CHAR(4), /* TIMER UNITS * 00001650 * 2 TYP13DAT CHAR(4), /* DATE * 00001660 * 2 TYP13SID CHAR(2), /* SYSTEM ID * 00001670 * 2 TYP13MDL CHAR(2), /* CPU MODEL NUMBER * 00001680 * 2 TYP13SIZ FIXED(15); /* SIZE OF DYNAMIC AREA * 00001690 * 00001700 * DCL 1 DYNAREA BASED(R6), /* DYNAMIC AREA OF RECORD * 00001710 * 2 TYP13PNO PTR(8), /* PARTITION NUMBER * 00001720 * 2 TYP13HSS CHAR(2), /* HIERARCHY 0 SIZE * 00001730 * 2 TYP13LCS CHAR(2), /* HIERARCHY 1 SIZE * 00001740 * 2 TYP13CNO PTR(8), /* NUMBER OF CLASSES * 00001750 * 2 TYP13CLS CHAR(4), /* JOB CLASSES FOR THIS PARTN * 00001760 * 3 * CHAR(1), 00001770 * 3 JOBCLS CHAR(3); 00001780 * 00001790 * DCL RCDCOR CHAR(540) BASED(R6); /* SET MAXIMUM RCD LENGTH * 00001800 * 00001810 * 00001820 * /* MAPPING FOR BOUNDARY BOX * 00001830 * 00001840 * DCL 1 BBOX BASED(R8), 00001850 * 2 FQAH0 PTR(31), /* PTR TO 1ST FQE FOR H0 * 00001860 * /* IN FIRST BYTE OF FQAH0- * 00001870 * 3 * BIT(7), 00001880 * 3 LCSCHK BIT(1), /* BIT7=0-NO HIERARCHY SUPPORT* 00001890 * /* BIT7=1-HIERARCHY SUPPORT * 00001900 * 3 FQADDR PTR(24), 00001910 * 2 BGNH0PTR PTR(31), /* BEGINNING OF H0 CORE * 00001920 * 2 ENDH0PTR PTR(31), /* END OF H0 CORE * 00001930 * 00001940 * /* THE FOLLOWING THREE WORDS ARE NOT PART OF THE BOUNDARY * 00001950 * /* BOX IF MAIN STORAGE HIERARCHY SUPPORT IS NOT INCLUDED * 00001960 * /* IN THE SYSTEM. IF CORE STORAGE IS OFFLINE, THESE WORDS * 00001970 * /* CONTAIN ZERO. * 00001980 * 00001990 * 2 FQAH1 PTR(31), /* PTR TO 1ST FQE FOR H1 * 00002000 * 2 BGNH1PTR PTR(31), /* BEGINNING OF H1 CORE * 00002010 * 2 ENDH1PTR PTR(31); /* END OF H1 CORE * 00002020 * /* CALCULATE TOTAL RECORD SIZE FOR GETTING CORE * 00002030 * 00002040 * R9=CVTMSER; /* GET MASTER RESIDENT DATA * 00002050 L @4,CVTPTR 0022 00002060 L @9,148(0,@4) 0022 00002070 * /* AREA POINTER * 00002080 * IF BALCS='1'B THEN /* SET BIT IF LCS IS IN * 00002090 TM 116(@9),B'00000100' 0023 00002100 BC 12,@9FF 0023 00002110 * LCSBIT='1'B; /* THE SYSTEM * 00002120 OI STATUS,B'10000000' 0024 00002130 * 00002140 * TEMPL1=0; /* INITIALIZE PARTITION COUNT * 00002150 @9FF SR @F,@F 0025 00002160 STH @F,TEMPL1 0025 00002170 * 00002180 * /* CALCULATE NUMBER OF ACTIVE PROBLEM PROGRAM PARTITIONS * 00002190 * 00002200 * DO1: 00002210 * DO R9=1 TO CVTSYST; /* LOOP THROUGH TCB TABLE * 00002220 DO1 LA @F,1 0026 00002230 LR @9,@F 0026 00002240 @DO9FE L @4,CVTPTR 0026 00002250 SR @F,@F 0026 00002260 IC @F,248(0,@4) 0026 00002270 CR @F,@9 0026 00002280 BC 04,@DO9FB 0026 00002290 BC 15,@DO9FC 0026 00002300 @DO9FD LA @F,1 0026 00002310 AR @9,@F 0026 00002320 BC 15,@DO9FE 0026 00002330 * R7=TCBTABLE(R9); /* PT TO A TCB * 00002340 @DO9FC LR @4,@9 0027 00002350 BCTR @4,0 0027 00002360 SLA @4,2 0027 00002370 L @2,CVTPTR 0027 00002380 L @2,244(0,@2) CVTMAP 0027 00002390 L @7,0(@4,@2) 0027 00002400 * IF R7 <= 0 THEN /* AFTER LAST IF HIGH BIT ON * 00002410 LTR @7,@7 0028 00002420 * GOTO LOOPEND1; /* EXIT FROM LOOP * 00002430 BC 12,LOOPEND1 0029 00002440 * R8=TCBMSS; /* GET BOUNDARY BOX PTR * 00002450 L @8,24(0,@7) 0030 00002460 * IF ENDH0PTR-BGNH0PTR=0 THEN /* IF NO H0 SIZE AND- * 00002470 L @F,4(0,@8) 0031 00002480 LCR @F,@F 0031 00002490 A @F,8(0,@8) 0031 00002500 SR @3,@3 0031 00002510 CR @F,@3 0031 00002520 BC 07,@9FA 0031 00002530 * IF LCSBIT='1'B THEN /* LCS IS IN SYSTEM BUT * 00002540 TM STATUS,B'10000000' 0032 00002550 BC 12,@9F9 0032 00002560 * IF ENDH1PTR-BGNH1PTR=0 THEN /* H1 SIZE IS ZERO- * 00002570 L @F,16(0,@8) 0033 00002580 LCR @F,@F 0033 00002590 A @F,20(0,@8) 0033 00002600 SR @3,@3 0033 00002610 CR @F,@3 0033 00002620 * GO TO NXTCB; /* SKIP COUNT INCREMENT * 00002630 BC 08,NXTCB 0034 00002640 * ELSE; 00002650 * ELSE GO TO NXTCB; /* OR SKIP COUNT IF NO LCS * 00002660 * CNTINC: 00002670 * TEMPL1=TEMPL1+1; /* INCREMENT COUNT * 00002680 @9F8 EQU * 0037 00002690 @9FA EQU * 0037 00002700 CNTINC LA @F,1 0037 00002710 AH @F,TEMPL1 0037 00002720 STH @F,TEMPL1 0037 00002730 * NXTCB: 00002740 * END; /* END OF DO LOOP LABELED DO1 * 00002750 BC 15,@DO9FD 0038 00002760 * LOOPEND1: /* EXIT FROM DO LOOP 1 * 00002770 * TEMPL1=TEMPL1*10; /* CALCULATE DYNAMIC AREA * 00002780 @DO9FB EQU * 0038 00002790 LOOPEND1 LA @E,10 0039 00002800 MH @E,TEMPL1 0039 00002810 STH @E,TEMPL1 0039 00002820 * /* LENGTH. EACH PARTITION * 00002830 * /* WILL HAVE A 10-BYTE ENTRY * 00002840 * /* IN RECORD * 00002850 * TEMPL2=TEMPL1+20; /* ADD FIXED AREA LENGTH * 00002860 LA @F,20 0040 00002870 AH @F,TEMPL1 0040 00002880 ST @F,TEMPL2 0040 00002890 * R0=TEMPL2; /* SET FOR GETMAIN * 00002900 LR @0,@F 0041 00002910 * GENERATE (GETMAIN R,LV=(0)); /* GET STORAGE RECORD CORE * 00002920 GETMAIN R,LV=(0) 00002930 DS 0H 00002940 * R6=R1; /* SET BASE FOR RECORD * 00002950 LR @6,@1 0043 00002960 * R6SAV=R1; /* SAVE GOTTEN CORE PTR * 00002970 ST @1,R6SAV 0044 00002980 * 00002990 * /* SET UP FIXED AREA OF RECORD * 00003000 * 00003010 * TYP13CON='00'X; /* SET RESERVED FIELD TO ZERO * 00003020 LA @F,X'00' 0045 00003030 STC @F,4(0,@6) 0045 00003040 * TYP13CNT=TEMPL2*65536; /* SET TOTAL RECORD LENGTH * 00003050 L @F,TEMPL2 0046 00003060 SLA @F,16 0046 00003070 ST @F,0(0,@6) 0046 00003080 * /* SHIFT TO HI-ORDER 2 BYTES * 00003090 * TYP13SIZ=TEMPL1+2; /* SET DYNAMIC AREA SIZE * 00003100 LA @F,2 0047 00003110 AH @F,TEMPL1 0047 00003120 STH @F,18(0,@6) 0047 00003130 * 00003140 * GENERATE (TIME BIN); /* GET TIME AND DATE * 00003150 TIME BIN 00003160 DS 0H 00003170 * 00003180 * TYP13TIM=+R0; /* SET TIME IN RCD * 00003190 LR @F,@0 0049 00003200 ST @F,@TEMP4 0049 00003210 MVC 6(4,@6),@TEMP4 0049 00003220 * TYP13DAT=+R1; /* SET DATE IN RCD * 00003230 LR @F,@1 0050 00003240 ST @F,@TEMP4 0050 00003250 MVC 10(4,@6),@TEMP4 0050 00003260 * TYP13TYP='0D'X; /* SET RECORD TYPE 13 * 00003270 LA @F,X'0D' 0051 00003280 STC @F,5(0,@6) 0051 00003290 * 00003300 * /* ESTABLISH ADDRESSABILITY TO SMF CONTROL AREA (SMCA) * 00003310 * 00003320 * R7=CVTSMCA; /* GET SMCA PTR * 00003330 L @4,CVTPTR 0052 00003340 L @7,196(0,@4) 0052 00003350 * TYP13SID=SMCASID; /* SET SYSTEM ID * 00003360 MVC 14(2,@6),16(@7) 0053 00003370 * TYP13MDL=SMCAMDL; /* SET MODEL NUMBER * 00003380 MVC 16(2,@6),18(@7) 0054 00003390 * 00003400 * R6=R6+20; /* POINT TO DYNAMIC AREA * 00003410 LA @6,20(0,@6) 0055 00003420 * R7=TCBTABLE(1); /* PT TO TCB FOR P0 * 00003430 L @2,CVTPTR 0056 00003440 L @2,244(0,@2) CVTMAP 0056 00003450 L @7,0(0,@2) 0056 00003460 * P0ID=TCBIDF; /* SAVE ID OF P0 * 00003470 MVC P0ID(1),112(@7) 0057 00003480 * DO2: 00003490 * DO R5=1 TO CVTSYST; /* LOOP THROUGH TCB TABLE * 00003500 DO2 LA @F,1 0058 00003510 LR @5,@F 0058 00003520 @DO9F7 L @4,CVTPTR 0058 00003530 SR @F,@F 0058 00003540 IC @F,248(0,@4) 0058 00003550 CR @F,@5 0058 00003560 BC 04,@DO9F4 0058 00003570 BC 15,@DO9F5 0058 00003580 @DO9F6 LA @F,1 0058 00003590 AR @5,@F 0058 00003600 BC 15,@DO9F7 0058 00003610 * R7=TCBTABLE(R5); /* POINT TO A TCB * 00003620 @DO9F5 LR @4,@5 0059 00003630 BCTR @4,0 0059 00003640 SLA @4,2 0059 00003650 L @2,CVTPTR 0059 00003660 L @2,244(0,@2) CVTMAP 0059 00003670 L @7,0(@4,@2) 0059 00003680 * IF R7 <= 0 THEN /* AFTER LAST IF HIGH BIT ON * 00003690 LTR @7,@7 0060 00003700 * GOTO LOOPEND2; /* EXIT FROM LOOP * 00003710 BC 12,LOOPEND2 0061 00003720 * 00003730 * /* CALCULATE ENTRIES IN RECORD DYNAMIC AREA FOR EACH PARTITION * 00003740 * 00003750 * NXTPART: 00003760 * R8=TCBMSS; /* GET BOUNDARY BOX PTR * 00003770 NXTPART L @8,24(0,@7) 0062 00003780 * TEMP1=ENDH0PTR-BGNH0PTR; /* CALCULATE H0 SIZE * 00003790 L @F,4(0,@8) 0063 00003800 LCR @F,@F 0063 00003810 A @F,8(0,@8) 0063 00003820 ST @F,TEMP1 0063 00003830 * 00003840 * IF TEMP1ª=0 THEN /* IF H0 SIZE IS NOT ZERO- * 00003850 SR @F,@F 0064 00003860 C @F,TEMP1 0064 00003870 BC 08,@9F3 0064 00003880 * DO; /* SHIFT SIZE RIGHT BY 10 TO * 00003890 * TYP13HSS=+TEMP1/1024; /* GET NUMBER OF K BLOCKS, * 00003900 L @E,TEMP1 0066 00003910 SRDA @E,32 0066 00003920 LA @0,1024 0066 00003930 DR @E,@0 0066 00003940 ST @F,@TEMP4 0066 00003950 MVC 1(2,@6),@TEMP4+2 0066 00003960 BC 15,@9F2 0068 00003970 * END; /* STORE IN RECORD * 00003980 * ELSE TYP13HSS=+0; /* CLEAR H0 SIZE * 00003990 @9F3 SR @F,@F 0068 00004000 ST @F,@TEMP4 0068 00004010 MVC 1(2,@6),@TEMP4+2 0068 00004020 * TYP13LCS=+0; /* CLEAR H1 SIZE * 00004030 @9F2 SR @F,@F 0069 00004040 ST @F,@TEMP4 0069 00004050 MVC 3(2,@6),@TEMP4+2 0069 00004060 * IF LCSBIT='1'B THEN /* IF LCS IS IN SYSTEM THEN- * 00004070 TM STATUS,B'10000000' 0070 00004080 BC 12,@9F1 0070 00004090 * DO; 00004100 * TEMP1=ENDH1PTR-BGNH1PTR; /* CALCULATE H1 SIZE * 00004110 L @F,16(0,@8) 0072 00004120 LCR @F,@F 0072 00004130 A @F,20(0,@8) 0072 00004140 ST @F,TEMP1 0072 00004150 * IF TEMP1ª=0 THEN /* IF H1 SIZE IS NOT ZERO- * 00004160 SR @F,@F 0073 00004170 C @F,TEMP1 0073 00004180 BC 08,@9F0 0073 00004190 * DO; /* SHIFT RIGHT BY 10 TO * 00004200 * TYP13LCS=+TEMP1/1024; /* GET NUMBER OF K BLOCKS, * 00004210 L @E,TEMP1 0075 00004220 SRDA @E,32 0075 00004230 LA @0,1024 0075 00004240 DR @E,@0 0075 00004250 ST @F,@TEMP4 0075 00004260 MVC 3(2,@6),@TEMP4+2 0075 00004270 * END; /* STORE IN RECORD * 00004280 * END; 00004290 @9F0 EQU * 0077 00004300 * IF TYP13HSS=+0 THEN /* IF NO LCS OR H0 SIZE- * 00004310 @9F1 SR @F,@F 0078 00004320 MVC @TEMP2+2(2),1(@6) 0078 00004330 C @F,@TEMP2 0078 00004340 BC 07,@9EF 0078 00004350 * IF TYP13HSS=+0 & TYP13LCS=+0 THEN /* IF NO LCS OR H0 SIZE A35196* 00004360 SR @F,@F 0079 00004370 MVC @TEMP2+2(2),1(@6) 0079 00004380 C @F,@TEMP2 0079 00004390 BC 07,@9EE 0079 00004400 SR @F,@F 0079 00004410 MVC @TEMP2+2(2),3(@6) 0079 00004420 C @F,@TEMP2 0079 00004430 * GO TO SKPINC; /* PARTITION IS INACTIVE * 00004440 BC 08,SKPINC 0080 00004450 * /* GO GET NEXT TCB ADDRESS * 00004460 * TYP13PNO = TCBIDF - P0ID; /*CALCULATE PARTITION NO. * 00004470 @9ED EQU * 0081 00004480 @9EE EQU * 0081 00004490 @9EF SR @F,@F 0081 00004500 IC @F,P0ID 0081 00004510 LCR @F,@F 0081 00004520 SR @0,@0 0081 00004530 IC @0,112(0,@7) 0081 00004540 AR @F,@0 0081 00004550 STC @F,0(0,@6) 0081 00004560 * 00004570 * /* OTHERWISE- SET UP CLASSES FOR THIS PARTITION * 00004580 * 00004590 * TYP13CNO='00'X; /* INITIALIZE CLASS COUNT * 00004600 LA @F,X'00' 0082 00004610 STC @F,5(0,@6) 0082 00004620 * TYP13CLS='40404040'X; /* INITIALIZE CLASSES * 00004630 MVC 6(4,@6),@X4 0083 00004640 * R8=TCBPIB; /* GET PIB POINTER * 00004650 L @8,124(0,@7) 0084 00004660 * IF SD33GRP(3)ª='R' THEN /* IF NOT READER PARTITION * 00004670 CLI 27(@8),C'R' 0085 00004680 BC 08,@9EC 0085 00004690 * IF SD33GRP(3)ª='W' THEN /* NOR WRITER PARTITION * 00004700 CLI 27(@8),C'W' 0086 00004710 * GO TO CLSLOOP; /* THEN GO CHECK FOR CLASSES * 00004720 BC 07,CLSLOOP 0087 00004730 * ELSE /* A THROUGH O * 00004740 * JOBCLS='WTR'; /* SET WRITER JOB CLASS ID * 00004750 MVC 7(3,@6),@C7 0088 00004760 BC 15,@9EB 0089 00004770 * ELSE 00004780 * JOBCLS='RDR'; /* SET READER JOB CLASS ID * 00004790 @9EC MVC 7(3,@6),@C8 0089 00004800 * TYP13CNO='01'X; /* SET CLASS COUNT * 00004810 @9EB LA @F,X'01' 0090 00004820 STC @F,5(0,@6) 0090 00004830 * GO TO ENDTAB; /* SKIP JOB CLASS CONVERSION * 00004840 BC 15,ENDTAB 0091 00004850 * 00004860 * /* CONVERSION ROUTINE FOR JOB CLASSES A THROUGH O * 00004870 * 00004880 * CLSLOOP: 00004890 * DO I=3 TO 1 BY -1; /* SET UP LOOP CONTROL FOR * 00004900 CLSLOOP LA @9,3 0092 00004910 * /* MAX OF 3 CLASSES PER PARTN * 00004920 * IF SD33GRP(I)='00'X THEN /* CLASS EXIST- * 00004930 @DO9EA LR @4,@9 0093 00004940 LA @A,24(@4,@8) 0093 00004950 CLI 0(@A),X'00' 0093 00004960 * GO TO MVECLS; /* NO-SKIP CONVERSION * 00004970 BC 08,MVECLS 0094 00004980 * R1=4-I; /* SET INDEX TO JOB CLASS * 00004990 LCR @1,@9 0095 00005000 AH @1,@D1 0095 00005010 * IF SD33GRP(I)>'30'X THEN 00005020 CLI 0(@A),X'30' 0096 00005030 BC 12,@9E6 0096 00005040 * /* CONVERT HEX ID TO EBCDIC FOR CLASSES J THROUGH O * 00005050 * JOBCLS(R1)=SD33GRP(I)+'A0'X; 00005060 LA @F,X'A0' 0097 00005070 SR @0,@0 0097 00005080 IC @0,0(0,@A) 0097 00005090 AR @F,@0 0097 00005100 LR @2,@1 0097 00005110 LA @A,6(@2,@6) 0097 00005120 STC @F,0(0,@A) 0097 00005130 BC 15,@9E5 0098 00005140 * ELSE 00005150 * /* CONVERT HEX ID TO EBCDIC FOR CLASSES A THROUGH I * 00005160 * JOBCLS(R1)=SD33GRP(I)+'99'X; 00005170 @9E6 LA @F,X'99' 0098 00005180 LA @A,24(@4,@8) 0098 00005190 SR @0,@0 0098 00005200 IC @0,0(0,@A) 0098 00005210 AR @F,@0 0098 00005220 LR @2,@1 0098 00005230 LA @A,6(@2,@6) 0098 00005240 STC @F,0(0,@A) 0098 00005250 * 00005260 * TYP13CNO=TYP13CNO+1; /* INCREMENT CLASS COUNT * 00005270 @9E5 LA @F,1 0099 00005280 SR @0,@0 0099 00005290 IC @0,5(0,@6) 0099 00005300 AR @F,@0 0099 00005310 STC @F,5(0,@6) 0099 00005320 * END; 00005330 * MVECLS: 00005340 * IF I=2 THEN 00005350 BCT @9,@DO9EA 0100 00005360 MVECLS CH @9,@D2 0101 00005370 BC 07,@9E4 0101 00005380 * DO; 00005390 * JOBCLS=JOBCLS/65536; /* RIGHT JUSTIFY JOB CLASS * 00005400 MVC @TEMP3+1(3),7(@6) 0103 00005410 L @E,@TEMP3 0103 00005420 SRA @E,16 0103 00005430 ST @E,@TEMP4 0103 00005440 MVC 7(3,@6),@TEMP4+1 0103 00005450 * JOBCLS(1:2)='4040'X; 00005460 MVC 7(2,@6),@X4 0104 00005470 * GO TO ENDTAB; /* GO UPDATE PTR * 00005480 BC 15,ENDTAB 0105 00005490 * END; 00005500 * IF I=1 THEN 00005510 @9E4 CH @9,@D3 0107 00005520 BC 07,@9E3 0107 00005530 * DO; 00005540 * JOBCLS=JOBCLS/256; /* SHIFT RIGHT ONE BYTE * 00005550 MVC @TEMP3+1(3),7(@6) 0109 00005560 L @E,@TEMP3 0109 00005570 SRA @E,8 0109 00005580 ST @E,@TEMP4 0109 00005590 MVC 7(3,@6),@TEMP4+1 0109 00005600 * JOBCLS(1)='40'X; 00005610 MVI 7(@6),X'40' 0110 00005620 * END; 00005630 * 00005640 * ENDTAB: 00005650 * R6=R6+10; /* UPDATE RECORD POINTER * 00005660 @9E3 EQU * 0112 00005670 ENDTAB LA @6,10(0,@6) 0112 00005680 * SKPINC: 00005690 * END; /* END OF DO LOOP LABELED DO2 * 00005700 BC 15,@DO9F6 0113 00005710 * LOOPEND2: /* EXIT FROM DO LOOP 2 * 00005720 * 00005730 * /* WRITE TYPE 13 RECORD AND FREE GOTTEN CORE * 00005740 * 00005750 * R1=R6SAV; /* SET PTR TO RECORD * 00005760 @DO9F4 EQU * 0113 00005770 LOOPEND2 L @1,R6SAV 0114 00005780 * GENERATE (SMFWTM (R1)); /* WRITE STORAGE RECORD * 00005790 SMFWTM (R1) 00005800 DS 0H 00005810 * 00005820 * R1=R6SAV; /* SET FREEMAIN PTR * 00005830 L @1,R6SAV 0116 00005840 * R0=TEMPL2; /* SET FREEMAIN LENGTH * 00005850 L @0,TEMPL2 0117 00005860 * GENERATE (FREEMAIN R,LV=(0),A=(1)); /* FREE RECORD CORE * 00005870 FREEMAIN R,LV=(0),A=(1) 00005880 DS 0H 00005890 * RELEASE (R1,R5,R6,R7,R8,R9); 00005900 * END IEEDFINA; 00005910 @EL01 LR @1,@C 0120 00005920 L @0,@SIZ001 0120 00005930 FREEMAIN R,LV=(0),A=(1) 0120 00005940 LM @E,@C,12(@D) 0120 00005950 BCR 15,@E 0120 00005960 @DATA1 EQU * 0120 00005970 @0 EQU 00 EQUATES FOR REGISTERS 0-15 00005980 @1 EQU 01 00005990 @2 EQU 02 00006000 @3 EQU 03 00006010 @4 EQU 04 00006020 @5 EQU 05 00006030 @6 EQU 06 00006040 @7 EQU 07 00006050 @8 EQU 08 00006060 @9 EQU 09 00006070 @A EQU 10 00006080 @B EQU 11 00006090 @C EQU 12 00006100 @D EQU 13 00006110 @E EQU 14 00006120 @F EQU 15 00006130 @D1 DC H'4' 00006140 @D2 DC H'2' 00006150 @D3 DC H'1' 00006160 DS 0F 00006170 @SIZ001 DC AL1(&SPN) 00006180 DC AL3(@DATEND-@DATD) 00006190 DS 0F 00006200 @X4 DC X'40404040' 00006210 @C7 DC C'WTR' 00006220 @C8 DC C'RDR' 00006230 DS 0D 00006240 @DATA EQU * 00006250 R0 EQU 00000000 FULLWORD INTEGER REGISTER 00006260 R1 EQU 00000001 FULLWORD INTEGER REGISTER 00006270 R2 EQU 00000002 FULLWORD INTEGER REGISTER 00006280 R3 EQU 00000003 FULLWORD INTEGER REGISTER 00006290 R4 EQU 00000004 FULLWORD INTEGER REGISTER 00006300 R5 EQU 00000005 FULLWORD POINTER REGISTER 00006310 R6 EQU 00000006 3 BYTE POINTER REGISTER 00006320 R7 EQU 00000007 FULLWORD POINTER REGISTER 00006330 R8 EQU 00000008 FULLWORD POINTER REGISTER 00006340 R9 EQU 00000009 FULLWORD POINTER REGISTER 00006350 R10 EQU 00000010 FULLWORD INTEGER REGISTER 00006360 R11 EQU 00000011 FULLWORD INTEGER REGISTER 00006370 R12 EQU 00000012 FULLWORD INTEGER REGISTER 00006380 R13 EQU 00000013 FULLWORD INTEGER REGISTER 00006390 R14 EQU 00000014 FULLWORD INTEGER REGISTER 00006400 R15 EQU 00000015 FULLWORD INTEGER REGISTER 00006410 CVTPTR EQU 00000016 FULLWORD POINTER 00006420 I EQU 00000009 FULLWORD INTEGER REGISTER 00006430 STATUS EQU * 8 BIT(S) ON BYTE 00006440 DC B'00000000' 00006450 LCSBIT EQU STATUS+00000000 1 BIT(S) 00006460 A00000 EQU STATUS+00000000 7 BIT(S) 00006470 CVTMAP EQU 00000000 249 BYTE(S) ON WORD 00006480 A00001 EQU CVTMAP+00000000 116 BYTE(S) 00006490 CVTDCB EQU CVTMAP+00000116 1 BYTE POINTER 00006500 A00002 EQU CVTMAP+00000117 31 BYTE(S) 00006510 CVTMSER EQU CVTMAP+00000148 FULLWORD POINTER 00006520 A00003 EQU CVTMAP+00000152 44 BYTE(S) 00006530 CVTQPGTM EQU CVTMAP+00000196 FULLWORD POINTER 00006540 CVTSMCA EQU CVTMAP+00000196 FULLWORD POINTER 00006550 A00004 EQU CVTMAP+00000200 44 BYTE(S) 00006560 DUMMY EQU CVTMAP+00000244 FULLWORD POINTER 00006570 CVTTSKS EQU CVTMAP+00000244 1 BYTE POINTER 00006580 CVTTAT EQU CVTMAP+00000245 3 BYTE POINTER ON WORD+1 00006590 CVTSYST EQU CVTMAP+00000248 1 BYTE POINTER 00006600 TCBTABLE EQU 00000000 52*FULLWORD POINTER 00006610 TCBMAP EQU 00000000 128 BYTE(S) ON WORD 00006620 A00005 EQU TCBMAP+00000000 24 BYTE(S) 00006630 TCBMSS EQU TCBMAP+00000024 FULLWORD POINTER 00006640 A00006 EQU TCBMAP+00000028 5 BYTE(S) 00006650 TCBFLG EQU TCBMAP+00000033 1 BYTE POINTER 00006660 A00007 EQU TCBMAP+00000034 78 BYTE(S) 00006670 TCBIDF EQU TCBMAP+00000112 1 BYTE POINTER 00006680 A00008 EQU TCBMAP+00000113 3 BYTE(S) 00006690 TCBTCB EQU TCBMAP+00000116 FULLWORD POINTER 00006700 A00009 EQU TCBMAP+00000120 4 BYTE(S) 00006710 TCBPIB EQU TCBMAP+00000124 FULLWORD POINTER 00006720 PIBMAP EQU 00000000 28 BYTE(S) ON WORD 00006730 A00010 EQU PIBMAP+00000000 25 BYTE(S) 00006740 SD33GRP EQU PIBMAP+00000025 3 BYTE(S) 00006750 BASEB EQU 00000000 196 BYTE(S) ON WORD 00006760 A00011 EQU BASEB+00000000 116 BYTE(S) 00006770 BASFL2 EQU BASEB+00000116 1 BYTE POINTER 00006780 A00012 EQU BASEB+00000116 5 BIT(S) 00006790 BALCS EQU BASEB+00000116 1 BIT(S) 00006800 A00013 EQU BASEB+00000116 2 BIT(S) 00006810 A00014 EQU BASEB+00000117 75 BYTE(S) 00006820 MSTPTCB EQU BASEB+00000192 FULLWORD POINTER 00006830 SMCAMAP EQU 00000000 20 BYTE(S) ON WORD 00006840 A00015 EQU SMCAMAP+00000000 16 BYTE(S) 00006850 SMCASID EQU SMCAMAP+00000016 2 BYTE(S) 00006860 SMCAMDL EQU SMCAMAP+00000018 2 BYTE(S) 00006870 TYPE13 EQU 00000000 20 BYTE(S) ON WORD 00006880 TYP13CNT EQU TYPE13+00000000 FULLWORD INTEGER 00006890 TYP13CON EQU TYPE13+00000004 1 BYTE POINTER 00006900 TYP13TYP EQU TYPE13+00000005 1 BYTE POINTER 00006910 TYP13TIM EQU TYPE13+00000006 4 BYTE(S) 00006920 TYP13DAT EQU TYPE13+00000010 4 BYTE(S) 00006930 TYP13SID EQU TYPE13+00000014 2 BYTE(S) 00006940 TYP13MDL EQU TYPE13+00000016 2 BYTE(S) 00006950 TYP13SIZ EQU TYPE13+00000018 HALFWORD INTEGER 00006960 DYNAREA EQU 00000000 10 BYTE(S) ON WORD 00006970 TYP13PNO EQU DYNAREA+00000000 1 BYTE POINTER 00006980 TYP13HSS EQU DYNAREA+00000001 2 BYTE(S) 00006990 TYP13LCS EQU DYNAREA+00000003 2 BYTE(S) 00007000 TYP13CNO EQU DYNAREA+00000005 1 BYTE POINTER 00007010 TYP13CLS EQU DYNAREA+00000006 4 BYTE(S) 00007020 A00016 EQU DYNAREA+00000006 1 BYTE(S) 00007030 JOBCLS EQU DYNAREA+00000007 3 BYTE(S) 00007040 RCDCOR EQU 00000000 540 BYTE(S) 00007050 BBOX EQU 00000000 24 BYTE(S) ON WORD 00007060 FQAH0 EQU BBOX+00000000 FULLWORD POINTER 00007070 A00017 EQU BBOX+00000000 7 BIT(S) 00007080 LCSCHK EQU BBOX+00000000 1 BIT(S) 00007090 FQADDR EQU BBOX+00000001 3 BYTE POINTER ON WORD+1 00007100 BGNH0PTR EQU BBOX+00000004 FULLWORD POINTER 00007110 ENDH0PTR EQU BBOX+00000008 FULLWORD POINTER 00007120 FQAH1 EQU BBOX+00000012 FULLWORD POINTER 00007130 BGNH1PTR EQU BBOX+00000016 FULLWORD POINTER 00007140 ENDH1PTR EQU BBOX+00000020 FULLWORD POINTER 00007150 ORG @DATA 00007160 DS 00000001C 00007170 @L EQU 6 00007180 @DATD DSECT 00007190 TEMP1 EQU @DATD+00000000 FULLWORD INTEGER 00007200 R6SAV EQU @DATD+00000004 FULLWORD INTEGER 00007210 TEMPL2 EQU @DATD+00000008 FULLWORD INTEGER 00007220 TEMPL1 EQU @DATD+00000012 HALFWORD INTEGER 00007230 P0ID EQU @DATD+00000014 1 BYTE POINTER 00007240 DS 00000015C 00007250 @TEMPS DS 0F 00007260 @TEMP2 DC F'0' 00007270 @TEMP3 DC F'0' 00007280 @TEMP4 DC F'0' 00007290 @DATEND EQU * 00007300 IEEDFINA CSECT , 00007310 NXTCB EQU @DO9FD 00007320 SKPINC EQU @DO9F6 00007330 @9F9 EQU NXTCB 00007340 END IEEDFINA 00007350 ./ ADD SSI=01032009,NAME=IEEDFINB,SOURCE=0 TITLE 'IEEDFINB - BEGIN TO REESTABLISH PARTITIONS' 00400019 ********************************************************************** 00800019 ********************************************************************** 01200019 * 01600019 * NAME 02000019 * IEEDFINB 19374 02400019 * 02800019 ********************************************************************** 03200019 * 03600019 * FUNCTION 04000019 * TO BEGIN TO REESTABLISH THE SYSTEM 19374 04400019 * 04800019 ********************************************************************** 05200019 * 05600019 * ENTRY 06000019 * ALWAYS FROM IEEDFIN3 19374 06400019 * 06800019 ********************************************************************** 07200019 ********************************************************************** 07600019 * 08000019 * INPUT MTS0 08400019 * R2 WORKAREA MTS0 08800019 * R6 INTERNAL DATA AREA MTS0 09200019 * 09600019 ******************************* ********************* 10000019 * 10400019 * OUTPUT MTS0 10800019 * R2 WORKAREA 19374 11200019 * R6 INTERNAL DATA AREA MTS0 11600019 * 12000019 ******************************* ********************* 12400019 * 12800019 * EXIT MTS0 13200019 * TO IEEDFIN8 IN ALL CASES 19374 13600019 ******************************* ********************* 14000019 * 14400019 * EXTERNAL REFERENCES MTS0 14800019 * CVT MTS0 15200019 * TCB MTS0 15600019 * CSCB 19374 16000019 * BASEB 19374 16400019 * PIB 19374 16800019 * 17200019 ******************************* ********************* 17600019 * 18000019 * NOTES MTS0 18400019 * NONE MTS0 18800019 * 19200019 ******************************* ********************* 19600019 IEEDFINB CSECT 20000019 * 556000 A40802 20050021 * 21374 20100021 REGEQU 20400019 E0 EQU 0 I250 20480019 E1 EQU 1 I250 20560019 E2 EQU 2 I250 20640019 E4 EQU 4 I250 20720019 TCBEQU 20800019 USING WORKAREA,R2 21200019 USING DATA,R6 21600019 BALR R7,0 22000019 USING *,R7 22400019 SPACE 22800019 ******************************************************************19374 23200019 * 19374 23600019 * THIS SECTION OF CODE IS TO PROVIDE A METHOD 19374 24000019 * OF IDENTIFYING THIS MODULE IN A MEMORY DUMP 19374 24400019 B ID * 19374 24800019 DC X'CCCC' * 19374 25200019 DC C'IEEDFINB' * 19374 25600019 DC C'01234567' * 19374 26000019 DC X'CCCC' * 19374 26400019 ID DS 0H * 19374 26800019 * 19374 27200019 ******************************************************************19374 27600019 SPACE 28000019 L R3,CVTPTR PICK UP CVT PTR 19936 28400019 USING CVT,R3 28800019 L R4,CVTMSER PICK UP PTR TO BASEB 19936 29200019 USING BASE,R4 29600019 TM BADEFINE,BAON IS IT IPL OR NOT 19936 30000019 BZ CONTINUE YES - NO WAITS INVOLVED 19936 30400019 SR R11,R11 CLEAR COUNT REG 19936 30800019 SR R3,R3 CLEAR FOR INDEX TO WLIST 19936 31200019 SSM *+1 DISABLE 19936 31600019 CYCLE EQU * 19936 32000019 LA R15,WLIST(R3) POINT TO FIRST LIST SLOT 19936 32400019 SR R0,R0 CLEAR FOR POST CODE 32800019 CL R15,TOTSZ IS IT THE LAST ONE 19936 33200019 BE WAIT YES - EXECUTE THE WAIT 19936 33600019 LA R11,1(R11) INCREMENT WAIT COUNT 19936 34000019 LA R13,ECBS(R3) POINT TO THE ECB 19936 34400019 L R8,WLIST(R3) POINT TO THE PIB IN QUESTION 19936 34800019 USING IEFSD033,R8 35200019 ST R13,SD33RECB PUT POINTER TO ECB IN PIB 19936 35600019 OI SD33STAT,X'04' INDICATE REDEFINE TO IEFSD510 19936 36000019 ST R13,WLIST(R3) STORE ECB POINTER IN WLIST 19936 36400019 LA R1,SD33WECB NO WORK ECB 36800019 SVC 2 AWAKEN IEFSD510 FOR CLEANUP 37200019 LA R3,4(R3) NEXT WAITLIST SLOT 37600019 TM SD33SPIL,X'08' SYSTEM TASK 38000019 BZ CYCLE NO. GET NEXT ENTRY 38400019 L R1,SD33HTTR CSCB POINTER 38800019 LA R1,0(R1) CLEAR OF STATUS INFORMATION 39200019 LTR R1,R1 IS THERE A CSCB POINTER 39600019 BE CYCLE NO. PROCESS NEXT ENTRY 40000019 USING CMCHAIN,R1 40400019 L R1,CHECBP PTR TO STOP ECB I272 41000019 LA R1,E0(R1) CLEAR HIGH ORDER BYTE 21374 41050021 LA R0,X'10' POST CODE 41600019 SLL R0,24 MOVE TO HIGH ORDER POSITION 42000019 POST (R1),(0) 42400019 B CYCLE GO BACK TO POCESS IT 19936 42800019 WAIT EQU * 19936 43200019 LA R1,128 LOAD LAST INDICATOR 19936 43600019 STC R1,WLIST-4(R3) PUT IN LAST ECB 19936 44000019 LTR R0,R11 IS COUNT GREATER THAN ZERO 19936 44400019 BZ CONTINUE NO - NOBODY TO WAIT ON 19936 44800019 LA R1,WLIST ELSE POINT TO WLIST 19936 45200019 LNR R1,R1 INDICATE A LIST 19936 45600019 SVC 1 WAIT FOR PARTITIONS TO QUIESCE 19936 46000019 LR R0,R11 RESTORE COUNT 19936 46400019 SR R5,R5 CLEAR FOR INDEX TO WLIST 19936 46800019 SR R3,R3 CLEAR FOR INDEX TO TABLE 19936 47200019 CHECKWT EQU * NEED TO SEE IF ANY REAWAKENED 19936 47600019 * AFTER THEY POSTED - PROBABLY BY 19936 48000019 * SMALL PARTITION REQUESTING TERM 19936 48400019 * SERVICES SO HE CAN BE REDEFINED 19936 48800019 L R1,WLIST(R3) POINT TO NEXT SLOT IN LIST 19936 49200019 TM 0(R1),X'01' IS THERE A X'01' 19936 49600019 BZ DONE NO - NOT RE AWAKENED 19936 50000019 LA R5,4 YES - LOAD INDICATOR TO RE-WAIT 19936 50400019 XC 0(4,R1),0(R1) CLEAR OUT THE ECB 19936 50800019 DONE EQU * 19936 51200019 LA R3,4(R3) POINT TO NEXT SLOT 19936 51600019 BCT R11,CHECKWT DECREMENT COUNT BACK TO DO NEXT 19936 52000019 LR R11,R0 LOAD COUNT INTO R11 FOR WAIT RTN19936 52400019 LTR R5,R5 R5 EQ0-FINISHED EQ 4-RE-WAIT 19936 52800019 BNZ WAIT GO BACK TO WAIT UNTIL REAL FINIS19936 53200019 CONTINUE EQU * 19936 53600019 SSM *+1 DISABLE AFTER WAIT 54000019 L R3,CVTPTR ADDRESS CVT 54400019 L R4,CVTMSER MASTER AREA LCS 54800019 SPACE 2 54850021 ********************************************************************** 54860021 * IN CASE A MASTER SCHEDULER ABEND AND DAR REIN- A40802 54900021 * STATEMENT OF THE MASTER TASK HAS OCCURRED WHILE A40802 54950021 * THIS ENQUEUE WAS OUTSTANDING, 'RET=HAVE' IS SPEC- A40802 55000021 * IFIED TO PREVENT A 138 ABEND. A SECOND ABEND WOULD A40802 55050021 * RESULT IN NON-DISPATCHABILITY OF THE MASTER SCHED. A40802 55100021 ********************************************************************** 55150021 INTQSCAN DS 0H MFTCR 55200019 ENQ (MAJOR,MINOR,E,8,SYSTEM),RET=HAVE A40802 55600021 TM BASFL2,BALCS LCS IN SYSTEM LCS 56000019 BZ NOLCS NO. PROCESS HSS ONLY LCS 56400019 L R10,CVTTAT-E1 GET TCB TABLE I250 56600019 L R10,E0(E0,R10) GET TCB FOR P0 I250 56800019 XC DFTABR10(E2),DFTABR10 CLEAR TABLE INDEX I250 57000019 LA R5,DFTAB+8 PERM TABLE FOR PARTITIONS LCS 57200019 USING PSIZE,R5 LCS 57600019 L R12,CVTMZ00 HIGH MACHINE ADDRESS LCS 58000019 LA R12,1(R12) PUT ON WORD BOUNDARY LCS 58400019 SETSIZE2 EQU * LCS 58800019 L R9,TCBMSS(R10) BOUNDARY BOX FOR CURRENT TCB LCS 59200019 ST R12,20(R9) HIGH BOUND FOR THIS PARTITION LCS 59600019 LH R11,PLCSIZE LCS 60000019 SLL R11,8 LCS 60400019 LA R11,0(R11) CLEAR HI ORDER BYTE LCS 60800019 SR R12,R11 LCS 61200019 ST R12,16(R9) LOW BOUND FOR THIS PARTITION LCS 61600019 CLC PLCSIZE(2),HZERO ANY LCS SIZE LCS 62000019 BNE SETSIZE3 YES. SAVE HIGH & LOW BOUND LCS 62400019 XC 12(12,R9),12(R9) ZERO FQE HIGH AND LOW BOUND LCS 62800019 SETSIZE3 EQU * LCS 63200019 LH R9,DFTABR10 INCREMENT TABLE INDEX I250 63600019 LA R9,E4(E0,R9) I250 64000019 STH R9,DFTABR9 I250 64400019 L R9,CVTTAT-E1 GET TCB TABLE I250 64800019 AH R9,DFTABR9 GET INDEX IN TABLE I250 65200019 L R9,E0(E0,R9) GET TCB PTR I250 65600019 CLC DFTABR9+E1(E1),DFSYSNDX WAS LAST TCB PROCESSED I250 66000019 BE NOLCS YES,BRANCH I250 66400019 LR R10,R9 PROCESS NEXT ENTRY LCS 66800019 MVC DFTABR10(E2),DFTABR9 I250 67000019 LA R5,8(R5) NEXT TABLE ENTRY LCS 67200019 B SETSIZE2 FILL BOUNDARY BOX LCS 67600019 NOLCS EQU * LCS 68000019 XCTL EP=IEEDFIN8 THE ONLY EXIT FROM THIS MODULE 19374 68400019 MAJOR DC C'SYSIEFSD' MFTCR 68800019 MINOR DC C'PARTBNDS' MFTCR 69200019 HZERO DC F'0' 69600019 DATA DFINDATA 70000019 * 70400019 WORKAREA DSECT 70800019 DS 0F 71200019 WORK1 DS F LCS 71600019 WORK2 DS F LCS 72000019 LCSIZE DS D LCS HIGH AND LOW BOUND LCS 72400019 TRTSTAT DS C CURRENT STATUS 72800019 LOWBND DS F LOW ADJACENT BOUNDARY 73200019 TOTSZ DS F TOTAL SIZE SLOT 73600019 SWS DS C SWITCHES 74000019 ADJSW EQU X'80' ADJACENT COUNT ACTIVE 74400019 ENDADJ EQU X'40' ADJACENT PROHIBIT SW 74800019 LOSW EQU X'20' LOW BOUNDARY SET 75200019 LASTSW EQU X'10' PART. INDIC AS LAST ALREADY TREATED 75600019 XCSMSG EQU X'08' EXCESS MESSAGE SWITCH 76000019 DS 3C 76400019 PKEYS DS 16C PROTECT KEY FIELDS 76800019 ECBS DS 52F 77200019 WLIST DS 52F 77600019 WALGTH EQU *-WORKAREA 78000019 * 78400019 CVT DSECT 78800019 CVT 79200019 * 79600019 CMCHAIN DSECT 80000019 IEECHAIN 80400019 * 80800019 IEEBASEB 81200019 IEFSD033 81600019 END 82000019 ./ ADD SSI=22021178,NAME=IEEDFINC,SOURCE=0 IEEDFINC CSECT 00300019 * M1131 00350021 * A 214500,609100-610500 SM4163 00400021 * D 582000-588000 SM4163 00450021 TITLE 'IEEDFINC, CHECK PARTITION CONFIGURATION, SECOND LOAD' 00600019 *********************************************************************** 00900019 * * 01200019 * NAME * 01500019 * IEEDFINC A27259 01800019 * * 02100019 *********************************************************************** 02400019 * * 02700019 * FUNCTION * 03000019 * CONTINUE TO ASSURE THAT THE REQUESTED DEFINITION CHANGES A27259 03300019 * ARE WITHIN LEGAL BOUNDS AND IF SO TRANSFER CONTROL TO IEEDFINB I250 03600019 * TO BEGIN TO REESTABLISH THE SYSTEM AS DESIGNATED BY THE INPUT I250 03900019 * * 04200019 *********************************************************************** 04500019 * * 04800019 * ENTRY * 05100019 * IEEDFINC FROM IEEDFIN3 A27259 05800019 * * 06600019 *********************************************************************** 06900019 * * 07200019 * INPUT * 07500019 * REG2 POINTS TO THE TEMPORARY WORKAREA A27259 07600019 * REG6 POINTS TO THE INTERNAL DATA AREA * 07800019 * * 08100019 *********************************************************************** 08400019 * * 08700019 * OUTPUT * 09000019 * REG2 POINTS TO THE TEMPORARY WORKAREA A27259 09200019 * REG3 MAY CONTAIN A MESSAGE NUMBER A27259 09400019 * REG4 MAY POINT TO MESSAGE INSERTION DATA * 09600019 * REG6 POINTS AT THE INTERNAL DATA AREA 09900019 * * 10200019 *********************************************************************** 10500019 * * 10800019 * EXIT * 11100019 * TO IEEDFINB IF NO ERRORS ARE DETECTED I250 11400019 * TO ENTRY POINT=IEEREXIT WHEN ERRORS ARE FOUND LCS 11700019 * * 12000019 *********************************************************************** 12300019 * * 12600019 * EXTERNAL REFERENCES * 12900019 * CVT * 13200019 * TCB * 13500019 * MASTER SCHEDULER DATA AREA (IEEBASEB) * 13800019 * * 14400019 *********************************************************************** 14700019 * * 15000019 * ERROR CONDITIONS * 15300019 * EXAMINING ALL THE SYNTACTIVALLY CORRECT INFORMATION THAT HAS BEEN * 15600019 * FED TO THE DEFINE ROITINES FOLLOWING AN ENTER DEFINITION MESSAGE, * 15900019 * THE SE ERROR CONDITIONS MAY RESULT - * 16200019 * NO PARTITION SPECIFIED FOR EXCESS BYTES A27259 16500019 * TOTAL SIZE OF PARTITIONS IS ------ BYTES TOO LARGE FOR STORAGEA27259 16800019 * THE PARTITIONS CHANGED ARE NOT ADJACENT(AFTER IPL ONLY) * 17100019 * * 17400019 *********************************************************************** 17700019 * * 18000019 * NOTES * 18300019 * THE INTERNAL DATA AREA IS DESCRIBED BY MACRO DFINDATA * 18600019 * * 18900019 *********************************************************************** 19200019 *********************************************************************** 19500019 * 19800019 REGEQU 20100019 E0 EQU 0 I250 20400019 E1 EQU 1 I250 20700019 E2 EQU 2 I250 21000019 E4 EQU 4 I250 21300019 E8 EQU 8 A27259 21400019 E15 EQU 15 SM4163 21450021 EHEX00 EQU X'00' I250 21600019 *2 WORK AREA BASE 21900019 *3 CVT BASE 22200019 *4 MSER BASE 22500019 *5 INDIV PART.DATA PT 22800019 *6 DEFINE DATA AREA 23100019 *7 PROGRAM BASE 23400019 *8 PIB PT 23700019 *13 INTERMEDIATE SIZE ACCUMULATOR 24000019 *15 TOTAL SIZE ACCUMULATOR. 24300019 TCBEQU 24600019 USING WORKAREA,R2 24900019 USING BASE,R4 25200019 USING DATA,R6 25500019 USING CVT,R9 25800019 * 26100019 * 26400019 BALR R7,0 26700019 USING *,R7 SET PROGRAM BASE 27000019 *******************************************************************LCS 27300019 * *LCS 27600019 * THIS SECTION OF CODE IS TO PROVIDE A METHOD OF IDENTIFYING *LCS 27900019 * THIS MODULE IN A MEMORY DUMP *LCS 28200019 * *LCS 28500019 B ID *LCS 28800019 DC X'CCCC' *LCS 29100019 DC C'IEEDFINC' A27259 29400019 DC C'01234567' A27259 29700019 DC X'CCCC' *LCS 30000019 ID DS 0H *LCS 30300019 * *LCS 30600019 *******************************************************************LCS 30900019 L R11,CVTPTR MTS0 31200019 L R11,216(R11) GET ADDR OF TSCE MTS0 31500019 * 31800019 IPLCYCLE EQU * LCS 32100019 SR R12,R12 LCS 32400019 NI TRTSTAT,X'00' CLEAR STATUS BYTE LCS 32700019 LA R3,DFRPLY IF THIS BYTE,BY CHANCE, M1131 32750021 MVI 31(R3),X'00' CONTAINS A F1 THEN DEFIN5 M1131 32800021 * WILL ISSUE AN INCORRECT M1131 32850021 * MSG IN A NON-LCS SYSTEM M1131 32900021 TM BASFL2,BALCS LCS IN SYSTEM LCS 33000019 BZ IPLCYCL1 NO. BYPASS LCS CODE LCS 33300019 TM BADEFINE,BAON IS IT IPL TIME LCS 33600019 BO NOTIPL NO. BRANCH TO NOTIPL CODE LCS 33900019 LCSCYCL1 EQU * LCS 34200019 L R1,LCSIZE+4 HIGH ADDRESS FOR LCS LCS 34500019 L R9,LCSIZE LOAD LOW BOUND OF LCS LCS 34800019 SR R1,R9 SUBT - R1 HAS AMT AVAILABLE LCS 35100019 SRL R1,8 SWITCH TO 256 BYTE MULTIPLE LCS 35400019 L R9,CVTPTR I250 35700019 L R9,CVTTAT-E1 GET TCB TABLE I250 36000019 L R9,E0(E0,R9) LOAD PTR TO TCB OF P0 I250 36300019 XC DFTABR9(E2),DFTABR9 CLEAR INDEX IN TCB TABLE I250 36600019 LA R5,WHSIZE+8 LCS 36900019 USING PSIZE,R5 LCS 37200019 LCSCYCL2 LR R10,R9 SAVE AS PREVIOUS PARTITION LCS 37500019 MVC DFTABR10(E2),DFTABR9 SET CURRENT INDEX AS PREVIOUS I250 37800019 TM PSTAT,PCHNG PARTITION CHANGED LCS 38100019 BO LCSCYCL YES. UPDATE POINTERS LCS 38400019 TM TRTSTAT,X'80' ANY PRIOR CHANGES LCS 38700019 BZ NXTENTRY NO. GET NEXT ENTRY LCS 39000019 OI TRTSTAT,X'40' SET NON CHANGE INDICATER LCS 39300019 NXTENTRY EQU * LCS 39600019 LH R9,DFTABR9 INCREMENT INDEX IN TCB TABLE I250 39900019 LA R9,E4(E0,R9) I250 40200019 STH R9,DFTABR9 I250 40500019 L R9,CVTPTR GET CVT I250 40800019 L R9,CVTTAT-E1 GET TCB TABLE I250 41100019 AH R9,DFTABR9 GET POSITION IN TAB I250 41400019 L R9,E0(E0,R9) GET TCB PTR I250 41700019 LA R5,8(R5) POINT TO NEXT ENTRY IN TABLE LCS 42000019 CLC DFTABR9+E1(E1),DFSYSNDX WAS LAST TCB PROCESSED I250 42300019 BNE LCSCYCL2 BRANCH IF NO I250 42600019 B TCBEND LCS 42900019 NOTIPL DS 0H ENTER * NOTIPL CODE LCS 43200019 XC LCSIZE(8),LCSIZE CLEAR LCS BOUNDS LCS 43500019 NI DFRES,X'00' TURN OFF INDICATORS IN STATUS BYTELCS 43800019 L R9,CVTPTR I250 44100019 L R9,CVTTAT-E1 GET TCB TABLE I250 44400019 L R9,E0(E0,R9) LOAD PTR TO TCB OF P0 I250 44700019 XC DFTABR9(E2),DFTABR9 CLEAR INDEX IN TCB TABLE I250 45000019 LA R5,WHSIZE POINT TO BEG OF TABLE LCS 45300019 NOTIPL2 EQU * LCS 45600019 L R11,TCBMSS(R9) LOAD PTR TO BBX LCS 45900019 LA R5,8(R5) UPDATE TABLE POINTER LCS 46200019 TM PSTAT,PCHNG IS THIS ONE BEING CHANGED LCS 46500019 BO NOTIPL5 YES. LCS 46800019 NOTIPL4 EQU * LCS 47100019 LR R10,R9 SAVE PTR TO PRESENT LCS 47400019 MVC DFTABR10(E2),DFTABR9 SET CURRENT INDEX AS PREVIOUS I250 47700019 LH R9,DFTABR9 INCREMENT INDEX IN TCB TABLE I250 48000019 LA R9,E4(E0,R9) I250 48300019 STH R9,DFTABR9 I250 48600019 L R9,CVTPTR GET CVT I250 48900019 L R9,CVTTAT-E1 GET TCB TABLE I250 49200019 AH R9,DFTABR9 GET POSITION IN TAB I250 49500019 L R9,E0(E0,R9) GET TCB PTR I250 49800019 CLC DFTABR9+E1(E1),DFSYSNDX WAS LAST TCB PROCESSED I250 50100019 BNE NOTIPL2 BRANCH IF NO I250 50400019 B LCSCYCL1 LCS 50700019 NOTIPL5 EQU * LCS 51000019 CLC 20(4,R11),HZERO LCS 51300019 BE NOTIPL4 NO GET NEXT ENTRY LCS 51600019 TM DFRES,X'02' LCS PREVIOUSLY STORED LCS 51900019 BO NOTIPL6 YES. GET NEW LOW BOUND LCS 52200019 MVC LCSIZE+4(4),20(R11) SAVE LCS HIGH BOUND LCS 52500019 OI DFRES,X'02' SET LCS SAVED INDICATOR LCS 52800019 TM PSTAT,PLAST LAST SPECIFIED LCS 53100019 BZ NOTIPL6 LCS 53400019 MVC LCSIZE(4),BALCSBND ORIGINAL LCS LOW BOUND LCS 53700019 B LCSCYCL1 LCS 54000019 NOTIPL6 EQU * LCS 54300019 MVC LCSIZE(4),16(R11) SAVE LOW BOUND IN LCS LCS 54600019 B NOTIPL4 GET NEXT ENTRY LCS 54900019 LCSCYCL EQU * LCS 55200019 OI TRTSTAT,X'80' SIZE STORED INDICATER LCS 55500019 TM TRTSTAT,X'40' TEST FOR ADJACENT PART. CHANGE LCS 55800019 BO ERRADJ NOT ADJ. ERROR LCS 56100019 SH R1,PLCSIZE REQUEST GREATER THAN AVAIL SPACE LCS 56400019 BM ERRTOT1 CALCULATE NO. BYTES SHORT LCS 56700019 TM PSTAT,PLAST LAST BIT SET LCS 57000019 BZ NXTENTRY NO. GET NEXT ENTRY LCS 57300019 LA R5,8(R5) POINT TO NEXT ENTRY LCS 57600019 TCBEND EQU * LCS 57900019 LA R3,2(R5) SET R3 TO LCS SLOTS IN TABLE LCS 59100019 LA R11,DFRPLY SET R11 TO BEG OF BUFF IN CASE LCS 59400019 * THERE WAS NO H0 EXCESS LCS 59700019 TM SWS,XCSMSG WAS THERE H0 EXCESS LCS 60000019 BZ BALRTN NO PUT H1 EXCESS IN BEG OF BUFFER LCS 60300019 LA R11,16(R11) YES - PUT H1 EXCESS AFTER H0 LCS 60600019 BALRTN EQU * LCS 60900019 MVI E15(R11),EHEX00 PRESET H1 EXCESS INDIC. TO 0 SM4163 60910021 LTR R12,R1 ANY HIERARCHY 1 EXCESS SM4163 60950021 SLL R12,E8 MULTIPLY EXCESS BY 256 SM4163 61000021 BZ TCBEND2 NO. EXIT. SM4163 61050021 MVI 15(R11),C'1' MOVE A '1' TO INDICATE H1 EXCESS LCS 61200019 LXCS1 EQU * LCS 61500019 DROP R5 LCS 61800019 LA R14,DFTAB+8 FIRST ENTRY IN PERM TABLE LCS 62100019 USING PSIZE,R5 LCS 62400019 LXCS EQU * LCS 62700019 LTR R12,R12 IS THERE ANY EXCESS TO PROCESS LCS 63000019 BE EXITRTN NO - GO TO EXIT LCS 63300019 OI SWS,XCSMSG YES - INDICATE PRESENCE OF EXCESS LCS 63600019 LXCS2 EQU * LCS 63900019 SH R5,EIGHT LOOK AT NEXT PREVIOUS ENTRY LCS 64200019 CR R5,R14 OUT OF TABLE LCS 64500019 BL NXCSERR YES - EXCESS CAN'T BE ADDED LCS 64800019 SH R3,EIGHT LCS 65100019 CLC 0(2,R3),HZERO IS THERE ANY CORE IN PART LCS 65400019 BE LXCS2 NO - TRY NEXT ONE LCS 65700019 TM PSTAT,PCHNG WAS PARTITION CHANGED LCS 66000019 BZ LXCS2 NO. GET NEXT ENTRY LCS 66300019 XCSSAVE EQU * LCS 66600019 ST R5,WORK2 LAST ACTIVE CHANGED PART ENTRY LCS 66900019 * IN PERMANENT TABLE LCS 67200019 ST R12,WORK1 SAVE EXCESS FOR MESSAGE LCS 67500019 SR R5,R14 CALCULATE DISPLACEMENT TO ENTRY LCS 67800019 SRL R5,3 DIVIDE BY EIGHT - GET PART NO LCS 68100019 CVD R5,16(R11) CONVERT PART NUMBER LCS 68400019 UNPK 0(2,R11),22(2,R11) LCS 68700019 OI 1(R11),C'0' LCS 69000019 MVC 2(5,R11),HAS MOVE IN HAS FOR MESSAGE LCS 69300019 L R5,WORK2 RELOAD R5 WITH PTR TO CURRENT PARTLCS 69600019 CVD R12,16(R11) CONVERT EXCESS LCS 69900019 UNPK 7(8,R11),19(5,R11) LCS 70200019 OI 14(R11),C'0' LCS 70500019 BLOOPS EQU * LCS 70800019 CLI 7(R11),C'0' CHECK FOR LEADING ZEROS LCS 71100019 BNE EXITRTN LCS 71400019 MVI 7(R11),C' ' LCS 71700019 LA R11,1(R11) LCS 72000019 B BLOOPS LCS 72300019 EXITRTN EQU * LCS 72600019 TCBEND2 EQU * 72900019 AH R1,PLCSIZE ADD EXTRA TO AMNT NEEDED LCS 73200019 STH R1,PLCSIZE SAVE LCS PARTITION SIZE LCS 73500019 IPLCYCL1 EQU * LCS 73800019 OUT EQU * 74100019 XCTL EP=IEEDFINB 74400019 ERRTOT1 EQU * LCS 74700019 LCR R15,R1 EXCESS BYTES FROM PREVIOUS PART LCS 75000019 ERRTOT3 EQU * LCS 75300019 LH R9,DFTABR9 INCREMENT INDEX IN TCB TABLE I250 75600019 LA R9,E4(E0,R9) I250 75900019 STH R9,DFTABR9 I250 76200019 L R9,CVTPTR GET CVT I250 76500019 L R9,CVTTAT-E1 GET TCB TABLE I250 76800019 AH R9,DFTABR9 GET POSITION IN TAB I250 77100019 L R9,E0(E0,R9) GET TCB PTR I250 77400019 CLC DFTABR9+E1(E1),DFSYSNDX IS IT LAST SYSGENED TCB I250 77700019 BE ERRTOT2 YES, PUT OUT ERROR MESSAGE I250 78000019 TM PSTAT,PLAST 'LAST' SPECIFIED LCS 78300019 BO ERRTOT2 YES. PUT OUT ERROR MSG LCS 78600019 LA R5,E8(E0,R5) NEXT ENTRY IN TABLE A27259 78900019 TM PSTAT,PCHNG PARTITON NOT CHANGED LCS 79200019 BZ ERRTOT2 NO . PUT OUT ERROR MSG LCS 79500019 AH R15,PLCSIZE INCLUDE THIS REQUEST LCS 79800019 B ERRTOT3 LCS 80100019 ERRTOT2 EQU * LCS 80400019 SLL R15,8 SHIFT TO BYTE MULTIPLE LCS 80700019 ERRTOT EQU * 81000019 OI BADEFINE,BACHANGE TURN ON CHANGE BIT IN CASE IPL TIME 81300019 * WITH NO CHANGE EXPLICITLY REQSTED. 81600019 LA R4,DFRPLY SET FILL IN PT MTS0 81900019 LA R3,3 SET MSG - TOO LARGE FOR STORAGE MTS0 82200019 CONVERT CVD R15,DFRPLY+8 CONVERT DIFF MTS0 82500019 UNPK DFRPLY(8),DFRPLY+11(5) AND UNPACK MTS0 82800019 OI DFRPLY+7,C'0' SET LOW BYTE ZONE MTS0 83100019 LA R15,DFRPLY MTS0 83400019 ZLEAD CLI 0(R15),C'0' LEADING ZERO? MTS0 83700019 BNE ERREXIT NO BR MTS0 84000019 MVI 0(R15),C' ' MOVE IN BLANK MTS0 84300019 LA R15,1(R15) MTS0 84600019 B ZLEAD MTS0 84900019 NXCSERR EQU * LCS 85200019 LA R3,9 LOAD MESSAGE NUMBER LCS 85500019 B ERREXIT LCS 85800019 ERRADJ EQU * MTS0 87300019 LA R3,13 SET MSG PARTITIONS NOT ADJACENT MTS0 87600019 ERREXIT EQU * 87900019 XCTL EP=IEEREXIT 88200019 HZERO DC F'0' LCS 88500019 EIGHT DC H'8' LCS 88800019 HAS DC C' HAS ' MTSO 89100019 DATA DFINDATA MTS0 89400019 WORKAREA DSECT 89700019 DS 0F MTS0 90000019 WORK1 DS F LCS 90300019 WORK2 DS F LCS 90600019 LCSIZE DS D LCS HIGH& LOW BOUND LCS 90900019 TRTSTAT DS C CURRENT STATUS LCS 91200019 LOWBND DS F LOW ADJACENT BOUNDRY MTS0 91500019 TOTSZ DS F TOTAL SIZE SLOT MTS0 91800019 SWS DS C SWITCHES MTS0 92100019 ADJSW EQU X'80' ADJACENT COUNT ACTIVE MTS0 92400019 ENDADJ EQU X'40' ADJACENT PROHIBIT SW MTS0 92700019 LOSW EQU X'20' LOW BOUNDRY SET MTS0 93000019 LASTSW EQU X'10' PART. INDIC AS LAST ALREADY TREATED 93300019 XCSMSG EQU X'08' EXCESS MSG SWITCH 93600019 DS 3C MTS0 93900019 PKEYS DS 16C PROTECT KEY FIELDS MTS0 94200019 ECBS DS 52F MTS0 94500019 WLIST DS 52F MTS0 94800019 WALGTH EQU *-WORKAREA MTS0 95100019 CVT DSECT 95400019 CVT 95700019 * 96000019 IEEBASEB 96300019 END 96600019 ./ ADD SSI=03032140,NAME=IEEDFIN1,SOURCE=0 HAS TITLE 'IEEDFIN1 - DEFINE COMMAND INITIALIZATION' 00800015 IEEDFIN1 CSECT 01600015 * 265000-268000,313000-317000 21374 01602221 * 328000-360000,439000,582000-582600,608000-664000,704000-720000 I250 01604621 * 418000,420000,430400,435000,529000 A21606 01606821 *0000 XMCS 01609021 *2866 424800-429600 19821 01611221 *2567632000 19394 01613421 *0863192000,284000,632000 MTS0 01615621 *********************************************************************** 01617821 *********************************************************************** 01620015 * * 01630015 * NAME * 01640015 * IEEDFIN1 * 01650015 * * 01660015 *********************************************************************** 01670015 * * 01680015 * FUNCTION * 01690015 * THE INITIALIZING ROUTINE FOR THE DEFINE COMMAND IN MFT * 01700015 * IT BUILDS THE INTERNAL DATA AREA, FILLS IN INFORMATION ABOUT THE * 01710015 * PARTITIONS SYSGENED, VERIFIES WHETHER THE SYSTEM IS PROTECTED AND * 01720015 * INFORMS ALL ACTIVE CONSOLES A DEFINE COMMAND IS BEING XMCS* 01723018 * PROCESSED. THIS MESSAGE HAS DESC=(4) WMCS * 01726018 * EXITS * 01730015 * * 01740015 *********************************************************************** 01750015 * * 01760015 * ENTRY * 01770015 * IEEDFIN1 FROM IEECIR50 BY A LINK * 01776018 * FROM IEFSD569 AT IPL TIME XMCS* 01782018 * * 01790015 *********************************************************************** 01800015 * * 01810015 * INPUT * 01820015 * NONE * 01830015 * * 01840015 *********************************************************************** 01850015 * * 01860015 * OUTPUT * 01870015 * REG6 POINTS AT THE INTERNAL DATA AREA * 01880015 * * 01890015 *********************************************************************** 01900015 * * 01910015 * EXIT * 01920015 * TO IEEDFIN4 IF A LIST HAS BEEN REQUESTED AS A PARAMETER OF THE 01930015 * REPLY TO CHANGE PARTITIONS? OR OR THE COMMAND DEFINE 01940015 * TO IEEDFIN5 IF CHANGES ARE TO BE MADE AT IPL OR ENTRY WAS CAUSED BY* 01950015 * THE DEFINE COMMAND. * 01960015 * TO IEEDFIN3 IF AT IPL NO CHANGES ARE REQUESTED * 01970015 * * 01980015 *********************************************************************** 01990015 * * 02000015 * EXTERNAL REFERENCES * 02010015 * TCB * 02020015 * MASTER SCHEDULER AREA (IEEBASEB) * 02030015 * PARTITION INFORMATION BLOCK * 02040015 * CVT * 02050015 * * 02060015 *********************************************************************** 02070015 * * 02080015 * NOTES * 02090015 * THE ROUTINE CANNOT BE ENTERED BY A PROGRAM WITH A NON-ZERO PROTECT * 02100015 * KEY * 02110015 * THE INTERNAL DATA AREA IS DESCRIBED BY MACRO DFINDATA * 02120015 * HSS - HIGH SPEED STORAGE - THIS IS REGULAR CORE STORAGE A21606 02125018 * * 02130015 *********************************************************************** 02140015 *********************************************************************** 02150015 REGEQU 02400015 * I250 02500019 E0 EQU 0 I250 02600019 E1 EQU 1 I250 02700019 E2 EQU 2 I250 02800019 E4 EQU 4 I250 02900019 EHEX00 EQU X'00' I250 03000019 * 5 CURRENT WORK AREA PT 03200015 * 6 PT. DEFINE DATA AREA 04000015 * 7 PROGRAM BASE 04800015 * 8 M. SCHED RES AREA PT. 05600015 * 9 CVT BASE 06400015 * 12 PIB BASE 07200015 TCBEQU 08000015 USING IEFSD033,R12 08800015 USING CVT,R9 09600015 USING BASE,R8 10400015 USING DATA,R6 11200015 STM R14,R12,12(R13) SAVE REGISTERS 12000015 BALR R7,0 SET PROGRAM BASE 12800015 USING *,R7 13600015 L R9,CVTPTR SET CVT BASE 14400015 L R2,CVTTCBP GET NEW-OLD PT. 15200015 L R2,4(R2) GET CURRENT TCB PT. 16000015 CLI TCBPFK(R2),X'00' IS PROTECT KEY ZERO? 16800015 BE ZKEY YES GO ON, ELSE 17600015 LM R14,R12,12(R13) RESTORE REGISTERS 18400015 BR R14 AND RETURN 19200015 ZKEY EQU * 19250016 L R8,CVTMSER 20800015 * XMCS 20900018 * TELL ALL CONSOLES A DEFINE COMMAND IS BEING PROCESSED XMCS 21000018 * XMCS 21100018 LA R1,MSGDEFC ADDR PARM LIST FOR WTO XMCS 21200018 WTO MF=(E,(1)) XMCS 21300018 L R1,GETSIZ SET UP GETMAIN 21600015 LR R0,R1 FOR DATA 22400015 SVC 10 AREA. 23200015 LR R6,R1 SET DATA AREA BASE 24000015 XC 0(255,R6),0(R6) CLEAR 24800015 XC 255(255,R6),255(R6) DATA 25600015 XC 510(DFTBSIZ-510,R6),510(R6) AREA. 26400015 L R3,CVTTSCE GET TSCE POINTER 21374 26500021 LTR R3,R3 IS TIME SLICE SUPPORTED 21374 26600021 BNZ ZKEYB YES. DONT SET NO TMSL BIT 21374 26700021 OI DFXXA,TPCHNG INDICATE NO TMSL 21374 26800021 ZKEYB EQU * LCS 26900017 SR R3,R3 CLEAR REG FOR TSCE INDICATORLCS 27000017 ST R13,DFSAVE13 S AVE REGISTER 13 27200015 OI DFFF,X'FF' SET REPLY BUFFER STOP. 28000015 TM BADEFINE,BAON CHECK FOR IPL 28800015 BO DYNTIM BR.NO. 29600015 XC BADEFINE+1(3),BADEFINE+1 CLEAR LAST TCB PT. WORD 30400015 DYNTIM EQU * 31200015 * I250 31206019 * GET THE ID OF P0 AND STORE IN I250 31212019 * DFIDOFP0 I250 31218019 XR R4,R4 CLEAR TO HOLD ID OF P0 I250 31224019 L R10,CVTTAT-E1 GET ADDR OF TCB TABLE I250 31230019 L R10,E0(E0,R10) GET PTR TO P0 I250 31236019 IC R4,TCBIDF(R10) GET ID OF P0 I250 31242019 STH R4,DFIDOFP0 SAVE FOR ALL OF DEFINE I250 31248019 * I250 31254019 * SAVE THE VALUE THAT IS 4 TIMES I250 31260019 * THE NO. OF SYSGENED TCB'S IN I250 31266019 * DFSYSNDX I250 31272019 IC R4,CVTSYST NO. OF SYSGENED TCB'S I250 31278019 SLL R4,E2 CONVERT TO TABLE INDEX I250 31284019 STC R4,DFSYSNDX SAVE IN WORKAREA I250 31290019 LA R5,DFTAB TABLE PTR FOR PART INFO LCS 32000017 USING PSIZE,R5 LCS 32300017 XR R15,R15 CLEAR TO HOLD INDEX IN TCB TAB. I250 32800019 TCBLOOP EQU * I250 33300019 EX R15,CVTCOMP CHECK FOR LAST SYSGENED TCB I250 33800019 BE CHKTMSL BRANCH AFTER LAST IS PROCESSED I250 34300019 L R10,CVTTAT-E1 GET ADDR OF TCB TABLE I250 34800019 L R10,E0(R15,R10) GET ADDR OF NEXT TCB I250 35300019 LA R15,E4(E0,R15) INCR. INDEX IN TABLE FOR NEXT I250 35800019 LOOPA L R12,TCBMSS(R10) GET PT BOUNDARY BOX 36800015 LA R5,8(R5) INDEX TO NEXT SLOT 37600015 TM BADEFINE,BAON IPL? 38400015 BO NOTIPL NO. BR. 39200015 MVC PSIZE(2),5(R12) PUT HSS PARTITION SIZE IN WA LCS 39600017 TM BASFL2,BALCS LCS IN SYSTEM LCS 40000017 BZ LOOPA2 NO. INDICATE PARTITION ACTIVE LCS 40400017 MVC PLCSIZE(2),17(R12) MOVE LCS SIZE TO WORKAREA LCS 40800017 LOOPA2 OI PSTAT,DFACTIV INDICATE PARTITION ACTIVE LCS 41200017 OI PSTAT,PCHNG INDICATE PARTITION CHANGED LCS 41600017 TM BADEFINE,X'01' SYSTEM PROTECT 19821 41700017 BZ SETCLS BR - NO A21606 41800018 TM PSIZE+1,X'04' MULTIPLE 2K 19821 41900017 BZ SETCLS BR - YES A21606 42000018 LH R4,PSIZE ADD 1K 19821 42100017 LA R4,4(R4) TO PARTITION 19821 42200017 STH R4,PSIZE SIZE 19821 42300017 B SETCLS 43200015 NOTIPL2 EQU * LCS 43300017 L R13,4(R12) LOW BOUNDARY LCS 43400017 L R1,8(R12) HIGH BOUNDARY A21606 43500018 SR R1,R13 SIZE OF REGION LCS 43600017 SRL R1,8 CONVERT SIZE TO 256 BYTE MULT LCS 43700017 BR R4 STORE SIZE IN WORKAREA LCS 43800017 NOTIPL EQU * LCS 44500017 BAL R4,NOTIPL2 GET HSS SIZE LCS 45100017 STH R1,PSIZE PUT SIZE IN PERM TABLE LCS 45700017 TM BASFL2,BALCS LCS IN SYSTEM LCS 46300017 BZ TESTACT NO. TEST ACTIVE PARTITION LCS 46900017 LA R12,12(R12) NEXT ENTRY IN LCS BBOX LCS 47500017 BAL R4,NOTIPL2 GET LCS SIZE FOR PART LCS 48100017 STH R1,PLCSIZE PUT LCS SIZE IN PERM TABLE LCS 48700017 AH R1,PSIZE GET TOTAL PART SIZE LCS 49300017 TESTACT EQU * LCS 49900017 LTR R1,R1 IS SIZE ZERO LCS 50500017 BZ SETCLS YES. DO NOT SET PART ACTIVE LCS 51100017 OI PSTAT,DFACTIV INDICATE ACTIVE PARTITION LCS 51700017 SETCLS EQU * LCS 52300017 LH R0,PSIZE GET THE NUMBER OF 256 BYTE A21606 52500018 * BLOCKS OF CORE THAT MAKE UP A21606 52700018 * PARTITION SIZE A21606 52900018 SRL R0,2 CONVERT TO 1024 BYTE BLOCKS A21606 53100018 CH R0,BAMINPAR IS PARTITION SCHEDULER SIZE A21606 53300018 BL NSCHED NO. DO NOT INDICATE SO LCS 53500017 OI PSTAT,PSCSZ SET FOR LARGE PARTITION LCS 54100017 NSCHED EQU * 56000015 L R12,TCBPIB(R10) GET PIB PTR 56800015 MVC PCLASS(3),SD33GRP+1 MOVE RDR,WTR,CLASS TO TABLE LCS 57200017 * MTS0 57630016 * THE FOLLOWING CODE HANDLES TIME-SLICING INITIALIZATION. MTS0 57660016 * MTS0 57690016 TM DFXXA,X'20' Q. TMSL SUPPORTED MTS0 57720016 BO NXTTCB NO- BR TO NON TMSL CODE MTS0 57750016 TMSLCODE EQU * MTS0 57780016 TM TCBFTS(R10),X'01' Q. TMSL TCB MTS0 57810016 BZ SETUPLST NO- END OF TMSL GROUP MTS0 57840016 * REACHED,BR- SET UP TABLE MTS0 57870016 LTR R3,R3 YES- CHECK IF FIRST TMSL TCB MTS0 57900016 BNZ NXTTCBA BR-IF NOT THE FIRST TO NON MTS0 57930016 * TMSL CODE MTS0 57960016 * PROCESS FIRST TMSL PARTITION. MTS0 57990016 * MTS0 58020016 LR R3,R10 SAVE TCB POINTER MTS0 58050016 LA R4,DFTMSL GET PTR TO TMSL INFO IN TABLE MTS0 58080016 SR R2,R2 CLEAR R2 TO DEVELOP PARTITION MTS0 58110016 IC R2,TCBIDF(R3) GET PARTITION ID MTS0 58140016 * CONVERT TO PARTITION NUMBER MTS0 58170016 FINI EQU * I250 58210019 SH R2,DFIDOFP0 CONVERT TO PARTITION NUMBER I250 58250019 STH R2,0(R4) STORE PARTITION NUMBER IN TABLE MTS0 58290016 TM DFXXA,X'10' TEST LAST PARTITION BIT MTS0 58320016 BZ NXTTCB GET NEXT TCB IF NOT SET MTS0 58350016 XI DFXXA,X'10' TURN IT OFF IF SET MTS0 58380016 B CONTIN MTS0 58410016 SETUPLST LTR R3,R3 Q. REG 3 HAVE A PTR TO A TMSL MTS0 58440016 * TCB PREVIOUSLY PROCESSED MTS0 58470016 BZ NXTTCB NO- TMSL CODE FINISHED OR MTS0 58500016 * NOT YET BEGUN. MTS0 58530016 TMSLLST LA R4,DFTMSL+2 YES- GET PTR TO SET UP LAST MTS0 58560017 * TMSL PARTITION IN TABLE MTS0 58590016 L R2,CVTTSCE GET ADDR OF TSCE MTS0 58620016 MVC 3(3,R4),13(R2) MOVE SLICE VALUE INTO TABLE MTS0 58650016 SR R2,R2 ZERO R2 MTS0 58680016 IC R2,TCBIDF(R3) GET LAST PARTITION ID MTS0 58710016 SR R3,R3 CLEAR REG HOLDING LAST TMSL MTS0 58740016 * TCB ADDRESS MTS0 58770016 B FINI BR TO CONVERT ID TO PARTITION NO.MTS0 58800016 NXTTCBA LR R3,R10 SAVE TMSL TCB ADDR FOR PROCESS- MTS0 58830016 * ING LAST TMSL PARTITION MTS0 58860016 NXTTCB LR R11,R10 SET UP FOR TCB LOOP MTS0 58890016 B TCBLOOP 59200015 * 60000015 * THE FOLLOWING ROUTINE-ENTERED WHEN ALL TCB'S HAVE BEEN EXAMINED MTS0 66460016 * WILL CHECK IF TIME-SLICE TABLE ENTRY HAS BEEN COMPLETED.IT WILL MTS0 66520016 * HANDLE THE SITUATIONS IN WHICH THE LAST TCB IS THE ONLY MEMBER MTS0 66580016 * OF THE GROUP OR WHEN THE LAST TCB IS ALSO THE LAST MEMBER OF MTS0 66640016 * THE TIME-SLICE GROUP. MTS0 66700016 * MTS0 66760016 CHKTMSL LTR R3,R3 Q. TMSL GROUP COMPLETED OR MTS0 66820016 * NO TMSL MEMBERS MTS0 66880016 BZ CONTIN YES- BR MTS0 66940016 OI DFXXA,X'10' NO - SET LAST BIT INDICATOR MTS0 67000016 B TMSLLST GET LAST TMSL TCB SET UP IN MTS0 67060016 * TABLE MTS0 67120016 * 67200015 CONTIN EQU * 68000015 SR R10,R10 CLEAR FOR ID 68800015 IC R10,TCBIDF(R11) GET ID OF LAST PART. & SAVE 69600015 SH R10,DFIDOFP0 CONVERT TO PARTITION NO. I250 70600019 STC R10,DFPMAX AND SAVE FOR COMPARES 72800015 SR R15,R15 73600015 ST R15,DFRPLY+4 SET DCB FOR XCTL 74400015 LA R15,DFRPLY+8 PT. NAME 75200015 ST R15,DFRPLY STORED IN FIRST WD OF PARM 76000015 LA R15,DFRPLY SET PARAM FOR XCTL 76800015 MVC DFRPLY+8(7),IEED MOVE IN BASE NAME 77600015 MVI DFRPLY+15,C'4' LAST CHARACTER DETERMINED BY 78400015 TM BADEFINE,BALIST REQ FOR LIST. 79200015 BZ TCHG 80000015 OI DFSTAT,DFLIST+DFCLASS INDICATE LIST -CLASS REQUEXT 80800015 NI BADEFINE,255-BALIST TURN OFF INDIC IN BASE AREA 81600015 TM DFXXA,TPCHNG IS TIME SLICING SUPPORTED 20224 81700018 BO EXIT NO-DONT SET TMSL LIST BIT 20224 81800018 OI DFXXA,X'80' SET TMSL LIST BIT MTS0 82000016 B EXIT 82400015 TCHG EQU * 83200015 TM BADEFINE,BAON IF NOT IPL & LIST NOT WANTED 83400015 BO EXITA BR TO GO TO MSG MODULE 83600015 MVI DFRPLY+15,C'3' GO TO IEEDFIN3 IF NO CHANGE 84000015 TM BADEFINE,BACHANGE PARTITION CHANGE REQUESTED? 84800015 BZ EXIT BR. NO CHANGE 85600015 OI DFSTAT,DFCHNG SET IPL CHANGE INDICATOR 86400015 EXITA EQU * 87200015 MVI DFRPLY+15,C'5' 88000015 LA R2,12 SET FOR ENTER DEFINITION MSG 88800015 EXIT EQU * 89600015 SVC 7 XCTL TO NEXT MODULE 90400015 DS 0F 91200015 GETSIZ DC X'FE' HIGH SUB POOL 92000015 DC AL3(DFTBSIZ) SIZE OF WORK AREA 92800015 IEED DC C'IEEDFIN' 93600015 CVTCOMP CLI DFSYSNDX,EHEX00 SUBJECT FOR EXECUTE I250 93800019 TCBFTS EQU 30 TCB FLAG BYTE FOR TMSL MTS0 94000016 MSGDEFC WTO 'IEE866I DEFINE COMMAND BEING PROCESSED', HMCSX94100018 MF=L,DESC=(4),MCSFLAG=(RESP,BRDCST) WMCS 94200018 IEFSD033 94400015 IEEBASEB 95200015 CVT DSECT 96000015 CVT 96800015 DATA DFINDATA 97600015 END 98400015 ./ ADD SSI=04030469,NAME=IEEDFIN2,SOURCE=0 HAS TITLE 'IEEDFIN2 DEFINE COMMAND SYNTAX SCAN ROUTINE' 00200015 IEEDFIN2 CSECT 00400015 * 285000,285400-285600,413400-414200 21374 00400121 * 128000,588480 M0081 00402621 * 084400-085300,293400-294000,307000-307060,554800-555000,806000 M1900 00407521 * A30055 00410021 * 408300-408400,408700-409300,409500 M5743 00412521 * 298840,298880,414400,416600-417000 A21606 00415021 * 122000,162000,298680-298760,298840-298904,299040,306520-306560 M0659 00417521 * 306600-306680,306760,380000-382000,386000,408100-408200 M0659 00420021 *0870005050-005170,038000,054000-056000,102000-104000, MTS0 00422521 * 290100-296000,298000,590000-802000,809000-812000,820000-821500MTS0 00425021 *D 416000 A54980 00426021 *********************************************************************** 00427521 *********************************************************************** 00430021 * * 00432521 * NAME * 00435021 * IEEDFIN2 * 00437521 * * 00440021 *********************************************************************** 00442521 * * 00445021 * FUNCTION * 00447521 * TO SYNTAX CHECK THE TEXTS OF REPLIES RELATED TO THE DEFINE COMMAND * 00450021 * IN MFT. * 00452521 * * 00455021 *********************************************************************** 00457521 * * 00460021 * ENTRY * 00462521 * IEEDFIN2 FROM IEEDFIN5 ALWAYS WHEN INPUT CONSOLE INPUT IS REQUESTED* 00465021 * BY THE DEFINE ROUTINES * 00467521 * IEEDFIN2 FROM IEEDFIN6 WHEN PARAMETERS FOLLOW TMSL SPECIFICATION 00470021 * AT IEEDPART LCS 00472521 * * 00475021 *********************************************************************** 00477521 * * 00480021 * INPUT * 00482521 * REG6 POINTS AT THE INTERNAL DATA AREA * 00485021 * * 00487521 *********************************************************************** 00490021 * * 00492521 * OUTPUT * 00495021 * REG6 ALWAYS POINTS TO THE INTERNAL DATA AREA. * 00497521 * ADDITIONALLY WHEN EXIT IS TO THE MESSAGE ROUTINE IEEDFIN5, REG2 WIL* 00500021 * WILL INDICATE A MESSAGE NUMBER AND REG4 WILL POINT TO MESSAGE INSER* 00502521 * TIONS, ID ANY. * 00505021 * * 00507521 *********************************************************************** 00510021 * * 00512521 * EXIT * 00515021 * TO IEEDFIN7 ALWAYS TO CONTINUE SYNTAX CHECK MTS0 00517521 *********************************************************************** 00520015 * * 00523015 * EXTERNAL REFERENCES * 00526015 * MASTER SCHEDULER DATA AREA(IEEBASEB) * 00529015 * * 00532015 *********************************************************************** 00535015 * * 00538015 * ERROR CONDITIONS * 00541015 * ANY VIOLATION OF THE DEFINE REPLY SYNTAX AS EESCRIBED IN THE * 00544015 * OPERATORS GUIDE RESULTS IN AN ERROR EXIT TO IEEDFIN5 * 00547015 * * 00550015 *********************************************************************** 00553015 * * 00556015 * NOTES * 00559015 * THE INTERNAL DATA AREA IS DESCRIBED BY MACRO DFINDATA * 00562015 * * 00565015 *********************************************************************** 00568015 *********************************************************************** 00571015 R0 EQU 0 TRANSLATE -WORK 00600015 R1 EQU 1 AND -WORK 00800015 R2 EQU 2 TEST REGS -WORK 01000015 R3 EQU 3 PT. TRT TABLE & SYNTAX AREA 01200015 R4 EQU 4 PT. END OF REPLY BUFFER 01400015 R5 EQU 5 PT. CURRENT TRT ARGUMENT 01600015 R6 EQU 6 PT. DEFINE DATA AREA 01800015 R7 EQU 7 PROGRAM BASE 02000015 R8 EQU 8 TRT EXECUTE REG -WORK 02200015 R9 EQU 9 DATA AREA INDEX -WORK 02400015 R10 EQU 10 -WORK 02600015 R11 EQU 11 -WORK 02800015 R12 EQU 12 SYNTAX TABLE INDEX -WORK 03000015 R13 EQU 13 -WORK 03200015 R14 EQU 14 -WORK 03400015 R15 EQU 15 -WORK 03600015 ENTRY IEEDPART LCS 03660017 GETTRT EQU X'80' LCS 03720017 SYNTAB EQU 256 SYNTAX TABLE OFFSET 04000015 CNPK EQU 400 04200015 SLOTSTR EQU 408 04400015 X10 EQU X'10' 04450018 N16 EQU 16 04500018 K0 EQU 0 M1900 04503020 K2 EQU 2 M1900 04506020 HEX80 EQU X'80' A30055 04510020 E1 EQU 1 A30055 04520020 E6 EQU 6 A30055 04530020 ZERO EQU X'F0' FILLER FOR 1 DIGIT PART. NO. M0081 04540021 EJECT 04550018 USING DATA,R6 04600015 BALR R7,0 SET PGM BASE 04800015 USING *,R7 05000015 AOK DS 0H MTS0 05100016 LA R4,DFFF-1 LOAD EOB ADDRESS 05200015 LA R1,DFRECB WAIT FOR WTO ECB LCS 05290017 WAIT ECB=(1) LCS 05380017 LA R5,DFRPLY REPLY BUFFER ADDRESS LCS 05470017 LA R0,RPLYSZ WAIT FOR REPLY LCS 05560017 MVI DFSTAT,0 INITIALIZE STATUS BYTE TO ZERO LCS 05650017 LR R1,R5 BEGINNING OF REPLY BUFFER LCS 05740017 ORUP OI 0(R1),C' ' TRANSLATE REPLY TO LCS 05830017 LA R1,1(R1) UPPER CASE LCS 05920017 BCT R0,ORUP LCS 06010017 IEEDPART EQU * 06100017 NEWPART EQU * LCS 06190017 BALR R7,0 LCS 06280017 USING *,R7 LCS 06370017 L R7,ADDAOK LCS 06460017 USING AOK,R7 LCS 06550017 L R8,CVTPTR GET POINTER TO CVT M0659 06600021 USING CVT,R8 M0659 06610021 CR R5,R4 EOB LCS 06640017 BH ERRSTX YES. ERROR LCS 06730017 CLI 0(R5),C'P' PARTITION CHANGE LCS 06820017 BE BUILDTAB YES. SET UP TRT TABLE LCS 06910017 TM DFRES,GETTRT TRT AREA EXIST LCS 07000017 BZ TMSCHNG1 NO. TRY TIME SLICE LCS 07090017 LR R1,R3 ADDRESS OF AREA TO FREE LCS 07180017 L R0,TTABSIZE SIZE OF TRT AND WORK AREAS LCS 07270017 FREEMAIN R,LV=(0),A=(1) LCS 07360017 NI DFRES,255-GETTRT CLEAR TRTTABLE PRESENT INDICATOR LCS 07450017 TMSCHNG1 EQU * LCS 07540017 CLC 0(5,R5),TMSL TMSL CHANGE LCS 07630017 BE TMSCHNG YES. SET UP TRT TABLE LCS 07720017 KEYWRD XCTL EP=IEEDFIN7 TEST KEYWORDS LCS 07810017 TMSCHNG DS 0H LCS 07900017 TM DFXXA,X'20' IS TIME SLICE SUPPORTED LCS 07990017 BO ERRNSUP NO BRANCH TO PUT OUT MSG LCS 08080017 XCTL EP=IEEDFIN6 NO. TEST FOR TMSL LIST LCS 08170017 BUILDTAB L R0,TTABSIZE SIZE FOR GETMAIN LCS 08260017 TM DFRES,GETTRT TRT AREA EXIST LCS 08350017 BNZ GETID1 YES. BYPASS SETTING UP TABLE M1900 08450020 BLDTAB1 EQU * LCS 08620017 LR R1,R0 LCS 08710017 GETMAIN R,LV=(0) LCS 08800017 OI DFRES,GETTRT SET TRT AREA INDICATER LCS 08890017 XC 0(255,R1),0(R1) CLEAR TRT TABLE AND WORKAREA LCS 08980017 XC 255(TTAB-255,R1),255(R1) LCS 09070017 * SET DELIMETERS IN TRT TABLE LCS 09160017 COMMA EQU C',' LCS 09250017 RPAREN EQU C')' LCS 09340017 LPAREN EQU C'(' LCS 09430017 BLANK EQU C' ' LCS 09520017 EQUALS EQU C'=' LCS 09560017 LR R3,R1 TRT TABLE PTR LCS 09610017 OI COMMA(R3),8 SET COMMA LCS 09700017 OI RPAREN(R3),16 RIGHT PAREN LCS 09790017 OI LPAREN(R3),4 LEFT PAREN LCS 09880017 OI BLANK(R3),12 BLANK LCS 09970017 OI EQUALS(R3),20 EQUAL SIGN LCS 10010017 USING TRTABLE,R3 LCS 10060017 GETID1 EQU * LCS 10150017 LR R10,R5 SET POINTER FOR DEFN NO. SCAN LCS 10240017 NI TRTSTAT,X'00' LCS 10330017 GETID CR R10,R4 HAS EOB BEEN REACHED? 10600015 BH ERRDLM YES-ERROR. 10800015 CLI 1(R10),C'=' EQUAL SIGN? 11000015 BE IDCHECK YES. CHECK ID VALIDITY. 11200015 LA R10,1(R10) SET TO NEXT CHARACTER. 11400015 B GETID LOOP 11600015 IDCHECK LR R11,R10 CALCULATE LENGTH 11800015 SR R11,R5 OF PARTITION NUMBER. 12000015 LA R0,15 SET TO CLEAR NUMBER ZONES M0659 12200021 LR R13,R10 LOCATN. REG FOR EXTRACT LOOP. 12400015 BZ ERRSTX ERROR IF ZERO. 12600015 LA R9,2 TEST FOR GT 2 CHARACTERS. 13000015 CR R9,R11 ERROR IF GT 2. 13200015 BL ERRSTX BR,SYNTAX ERROR. 13400015 BE DIGITS2 GO SAVE 2 DIGIT PART. NO. M0081 13450021 MVI DFRECB,ZERO FILL IN 0 FOR P0- IN MSG M0081 13500021 MVC DFRECB+E1(E1),E1(R5) SAVE 1 DIGIT PART. NUMBER M0081 13550021 B BRANCH BRANCH AROUND 2 DIG. CODE M0081 13560021 DIGITS2 EQU * 13570021 MVC DFRECB(K2),E1(R5) SAVE 2 DIGIT PART. NUMBER M0081 13580021 BRANCH EQU * 13590021 LA R14,1 SET ONES MULTIPLIER. 13600015 SR R9,R9 CLEAR BEFORE SETTING ID & NDX. 13800015 B ONCE BR TO EXTRACT FIRST DIGIT. 14000015 TWICE EQU * 14200015 BCTR R13,0 SHIFT TO TENS DIGIT 14400015 LA R14,10 SET TENS MULTIPLIER. 14600015 ONCE EQU * 14800015 CLI 0(R13),C'9' TEST 15000015 BH ERRSTX RANGE 15200015 CLI 0(R13),C'0' OF 15400015 BL ERRSTX IDS. 15600015 SR R15,R15 15800015 IC R15,0(R13) GET CHARACTER. 16000015 NR R15,R0 CLEAR ZONES. M0659 16200021 MR R14,R14 MULTIPLY DIGIT. 16400015 AR R9,R15 INSTALL DIGIT 16600015 * 16800015 BCT R11,TWICE LOOP IF TWO DIGITS. 17000015 * 17200015 IC R14,DFPMAX GET HIGHEST ALLOWABLE PART ID. 17400015 CR R14,R9 TEST US. PRESENT 17600015 BL ERRPNO INVALID? BR IF NO GOOD 17800015 SLL R9,3 CONVERT PARTITION NUMBER TO LCS 17850017 LA R9,DFTAB+8(R9) INDEX LCS 17900017 MVC DFWKAREA(8),0(R9) MOVE PERM PART INFO TO WORKAREA LCS 17950017 NI WSTAT,255-WSWI INITIALIZE PARTITION STATUS LCS 18000017 OI WSTAT,PCHNG MARK THE ENTRY CHANGING LCS 18050017 USING PSIZE,R9 LCS 18100017 LR R12,R9 SAVE PARTITION OFFSET LCS 18150017 * PARTITION VALUES SCANNED. 20600015 LA R5,2(R10) PT TO CHARACTER AFTER = 20800015 CR R4,R5 EOB? 21000015 BL ERRSTX YES. SYNTAX ERROR. 21200015 CLI 0(R5),C'(' LEFT PAREN? 21600015 BNE ONEPARM NO. ONE PARM ONLY 21800015 OI DFSTAT,DFMULT INDICATE 22000015 LA R5,1(R5) INDEX TO SIZE CHARACTER. 22200015 ONEPARM EQU * 22400015 TRTLOOP LA R15,MULTD LOAD PT MULT PARM BR TABLE 22600015 TM DFSTAT,DFMULT MULT PARM? 22800015 BO TRYMULT BR YES. 23000015 LA R15,ONED PT ONE PARM BR. TABLE. 23200015 TRYMULT EQU * 23400015 LR R10,R4 CALCULATE LENGTH 23600015 SR R10,R5 TO EOB. 23800015 LA R11,9 SET MAX NO.LGTH 24000015 CR R10,R11 EOB LGTH GT 24200015 BH NINE YES USE 24400015 OI DFSTAT,DFEOB SET ON EOB SW. 24600015 LR R11,R10 NO USE LGTH TO EOB. 24800015 NINE EQU * 25000015 BCTR R11,0 DECREMENT FOR EXECUTE 25200015 SR R2,R2 ZERO FOR ARGUMENT BYTE 25400015 EX R11,TEST EXECUTE TRT. 25600015 BC 6,EXBR IF DELIMETER FOUND GO TEST 25800015 TM DFSTAT,DFEOB IF NO DELIM, HAS EOB BEEN SET. 26000015 BZ ERRSTX NO - ERROR. 26200015 LA R2,12 ELSE TREAT AS A BLANK 26400015 EXBR EQU * 26600015 B 0(R2,R15) ENTER BRANCHING TABLES. 26800015 ONED EQU *-4 27000015 B ERRDLM LEFT PAREN 27200015 B CM1BLNK COMMA LCS 27400017 B CM1BLNK BLANK LCS 27600017 B ERRDLM RIGHT PAREN 27800015 B EQURTN EQUAL SIGN LCS 27900017 CM1BLNK EQU * LCS 27940017 LA R11,1(0,R1) R11 POINTS TO CHAR AFTER DEL. LCS 27960017 SR R1,R5 R1 CONTAINS LENGTH OF PARM LCS 27980017 BZ POSCHK CHECK COMMAS FOR POSITIONAL PARMSLCS 28000017 NI TRTSTAT,X'EF' TURN OFF RIGHT PAREN INDIC LCS 28020017 TM TRTSTAT,X'60' HAVE TWO COMMAS BEEN PROCESSED LCS 28040017 BO ERRDLM LCS 28060017 CM1BLNKB LR R0,R1 R0 CONTAINS LENGTH LCS 28080017 BCTR R1,0 R1 CONTAINS LENGTH - 1 LCS 28100017 LR R15,R1 LCS 28120017 AR R1,R5 R1 POINTS TO LAST CHAR OF PARM LCS 28140017 * R5 POINTS TO FIRST CHAR OF PARM LCS 28160017 CLI 0(R1),C'0' TEST FOR ALPHA CHAR LCS 28180017 BNL H1TEST IF THE PREDEEDING TRT WAS STOPPED BY LCS 28190017 * AN = SIGN, TEST DIGITS; IF NOT, AN ERROR CONDITION PSSSIBLY EXISTS 28200017 CLI 0(R1),C'K' TEST FOR H1 FROM PRECEDING TRT LCS 28220017 * AND DIGITS PRECEDING K LCS 28240017 BE TSTDIGIT LCS 28260017 CM1BLNKA OI TRTTAB,X'02' LCS 28280017 BAL R13,NOK LCS 28300017 LR R5,R11 R5 POINTS TO CHAR AFTER DEL LCS 28320017 TM DFSTAT,DFMULT IS IT A MULT PARM LCS 28340017 BO TRTLOOP YES - CONT TRT LCS 28360017 TM TRTSTAT,X10 RIGHT PAREN INDICATOR- P17028 28366018 BO NXTPARM1 YES-GO TEST FOR VALID DELIMITER P17028 28372018 NXTPARM EQU * LCS 28380017 BAL R13,RDRCHK LCS 28400017 B NEWPART LCS 28420017 TSTDIGIT EQU * LCS 28440017 BCTR R1,0 R1 POINTS TO CHAR BEFORE 'K' LCS 28460017 CLI 0(R1),C'0' TEST DIGIT LCS 28480017 LA R1,1(0,R1) RESTORE R1 LCS 28520017 BL CM1BLNKA DIGIT NOT 0-9 21374 28530021 H1TEST OI TRTSTAT,X'08' TURN ON SW TO INDIC H0 SIZE IN MULT 28580017 BAL R13,TESTK LCS 28600017 LR R5,R11 LCS 28620017 NI TRTSTAT,X'9F' TURN OFF BOTH COMMA SWS LCS 28640017 TM TRTSTAT,X'10' LCS 28660017 BO NXTPARM1 LCS 28680017 TM DFSTAT,DFMULT IS IT A MULT PARM LCS 28700017 BO TRTLOOP YES - CONT TRT LCS 28720017 B NXTPARM LCS 28740017 NXTPARM1 EQU * LCS 28760017 CLI 0(R5),X'40' LCS 28780017 BE NXTPARM2 LCS 28800017 CLI 0(R5),C',' LCS 28820017 BNE ERRDLM LCS 28840017 NXTPARM2 LA R5,1(0,R5) LCS 28860017 NI DFSTAT,255-DFMULT LCS 28880017 NI TRTSTAT,X'EF' LCS 28900017 B NXTPARM LCS 28920017 POSCHK EQU * LCS 28940017 TM DFSTAT,DFMULT IS THIS A MULT PARM LCS 28960017 BZ ERRDLM LCS 28980017 TM TRTTAB,X'80' HAS H1 BEEN PROCESSED LCS 29000017 BO ERRDLM YES - ERROR LCS 29020017 TM TRTSTAT,X'08' TEST TWO COMMAS AFTER H0 SIZE IN MULT 29040017 BO ERRDLM LCS 29060017 TM TRTSTAT,X'40' WAS A COMMA ENCOUNTERED LCS 29080017 BO COMTWO YES - CHECK FOR ANOTHER COMMA LCS 29100017 OI TRTSTAT,X'40' TURN ON ONE COMMA INDIC LCS 29120017 LR R5,R11 LCS 29140017 B TRTLOOP LCS 29160017 COMTWO EQU * LCS 29180017 TM TRTSTAT,X'20' HAVE TWO BEEN PROCESSED LCS 29200017 BO ERRDLM YES - ERROR LCS 29220017 OI TRTSTAT,X'20' TURN ON TWO COMMAS INDIC LCS 29240017 LR R5,R11 LCS 29260017 B TRTLOOP LCS 29280017 EQURTN EQU * LCS 29300017 LA R11,1(0,R1) LCS 29320017 CLC K0(K2,R5),HIAR1 IS IT HIERARCHY 1 M1900 29350020 BNE ERRSTX NO. SYNTAX ERROR M1900 29380020 NI TRTSTAT,X'97' TURN OFF BOTH CONMA INDICS AND H0 SIZE 29420017 B LCSSIZE LCS 29440017 * 29860015 EJECT 29860118 * 29860218 * THE FOLLOWING CODE CHECKS FOR SIZE IN A READER PARTITION- 29860318 * 29860418 * IF HSS AND LCS SIZE ARE BOTH ZERO, THE PARTITION IS INACTIVE 29860518 * 29860618 * A VALID READER PARTITION EXISTS WHEN- 29860718 * -HSS SIZE IS GREATER THAN SCHEDULER SIZE 29860818 * -LCS SIZE IS GREATER THAN SCHEDULER SIZE, BUT HSS SIZE IS ZERO 29860918 * 29861018 * ERROR CONDITIONS RESULT WHEN- 29861118 * -NEITHER HSS NOR LCS SIZE IS GREATER THAN SCHEDULER SIZE 29861218 * -LCS SIZE IS GREATER THAN SCHEDULER SIZE, BUT HSS SIZE IS NOT 0 29861318 * 29861418 RDRCHK EQU * ROUTINE TO CHECK RDR SIZE LCS 29862017 CLI WCLASS+2,C'R' READER PARTITION ? LCS 29864017 BNE NRDR LCS 29866017 L R2,CVTMSER M0659 29872021 USING BASE,R2 M0659 29876021 L R0,WHSIZE LOAD SIZES AS STORED LCS 29878017 LTR R0,R0 IS PART INACTIVE LCS 29880017 BZ NRDR YES - SKIP TEST FOR SIZE LCS 29882017 SRL R0,18 GET NO OF 1024 BYTE BLOCKS OF HSS A21606 29883018 CH R0,BAMINPAR IS H0 SIZE EQ OR GT SCHED SIZE M0659 29884021 BNL SETLARG YES. HIGH OR EQUAL - MARK SCHED SIZE M0659 29886021 LTR R0,R0 IS H0 (HSS) SIZE = ZERO M0659 29886421 BNZ ERRSTX NO -CANT HAVE SPLIT RDR PARTITION M0659 29886521 * IF H0 SIZE IS NOT 0 M0659 29886621 LH R0,WLCSIZE GET H1 SIZE AND CONVERT TO M0659 29886721 SRL R0,2 NO. OF 1024 BYTE BLOCKS M0659 29887421 CH R0,BAMINPAR IS H1 SIZE EQ OR GT SCHED SIZE M0659 29888121 BL ERRSTX NO-GO SET UP DEFN PARM ERROR MSG P17010 29888818 SETLARG DS 0H LCS 29892017 OI WSTAT,PSCSZ SET LARGE PARTITION INDICATOR LCS 29894017 NRDR EQU * LCS 29896017 MVC 0(8,R9),DFWKAREA MOVE NEW PARTITION DEFINITION TO LCS 29898017 * PERM TABLE LCS 29900017 BR R13 RETURN LCS 29902017 * LCS 29906017 LCSSIZE EQU * LCS 30648017 L R2,CVTMSER POINTER TO MASTER CORE M0659 30660021 USING BASE,R2 M0659 30668021 TM BASFL2,BALCS LCS IN SYSTEM LCS 30672017 BZ HIARERR NO. HIARCHY ERROR LCS 30680017 OI TRTTAB,X'80' INDICATE LCS LCS 30684017 LR R5,R11 LCS 30686017 B TRYMULT LCS 30688017 TESTK EQU * LCS 30692017 CLI 0(R1),C'K' IS 'K' INDICATED FOR SIZE LCS 30696017 BNE LOOPCVT NO. M1900 30704020 TRYNEXT EQU * LCS 30712017 OI TRTTAB,X'62' LCS 30912017 * DEFAULT TO HSS IF SIZE PARM LCS 31112017 * SET SECOND PASS INDIC LCS 31312017 * INDIC FIRST TIME SW FOR POSSIBLE K INDIC 31512017 * POSSIBLE K INDICATION LCS 32200017 LOOPCVT EQU * 32400015 CLI 0(R1),C'9' TEST 32600015 BH ERRSTX RANGE 32800015 CLI 0(R1),C'0' OF 33000015 BL ALPHTST SIZE NUMBERS 33200015 WASK EQU * 33400015 NI TRTTAB,X'FD' TURN OFF FIRST TIME SWITCH FOR LCS 33600017 * K - KNOW VALID LCS 33800017 BCTR R1,0 SET INDEX 34000015 BCT R0,LOOPCVT CHECK NXT CHARAC 34200015 EX R15,PACKSZ PACK 36600015 CVB R15,TCNVRT AND CONVERT TO BINARY LCS 36800017 TM TRTTAB,X'04' IS SIZE 1024 MULTIPLE LCS 36900017 BZ NOTK BR NO 37090015 SLL R15,10 CONVERT K MULTIPLE TO K X 1024 37120015 NOTK EQU * 37150015 L R2,CVTMSER GET MAST SCHED DATA AREA PT 38400015 USING BASE,R2 38620015 SR R14,R14 SET FOR ROUNDING SIZE 38640015 TM BADEFINE,BAPFK CHECK FOR PROTECTED SYSTEM 38660015 BZ ONEK BR IF NO PROTECTION 38700015 LA R14,1024 SET FOR 2K ROUNDING 38720015 ONEK LA R14,1023(R14) ADD 1K TO ROUND SIZE 38740015 AR R15,R14 TO 38800015 OR R15,R14 2K 38860015 XR R15,R14 BOUNDARY 38920015 NI WSTAT,255-PSCSZ LCS 39520017 LR R9,R12 RESTORE PARTITION OFFSET LCS 40120017 NACTIV EQU * 40800015 L R1,CVTMZ00 GET MACHINE SIZE M5743 40830020 LA R1,E1(R1) ADD 1 FOR TOTAL SIZE M5743 40840020 TM TRTTAB,HEX80 LCS INDICATED? A30055 40850020 BZ NOTLCS NO, BRANCH AROUND A30055 40860020 S R1,BALCSBND OBTAIN LCS SIZE M5743 40870020 B CONTINUE NO, GO TEST FOR SIZE TOO BIG M5743 40900020 NOTLCS EQU * M5743 40910020 S R1,CVTNUCB OBTAIN TOTAL SIZE M5743 40920020 CONTINUE EQU * M5743 40922020 CR R15,R1 PARTITION SIZE GT TOTAL SIZE? M5743 40930020 BH ERRSIZE YES, TAKE ERROR BRANCH A30055 40940020 SRL R15,8 DIVIDE AND STORE AS 2K MULTIPLE 41000015 TM TRTTAB,X'80' LCS INDICATED LCS 41020017 BZ NACTIV1 NO. PROCESS HSS LCS 41040017 STH R15,WLCSIZE SAVE LCS SIZE LCS 41060017 TM TRTSTAT,X'80' LCS PREVIOULSY STORED LCS 41080017 BO ERRSTX YES. SYNTAX ERROR LCS 41100017 OI TRTSTAT,X'80' INDICATE LCS STORED LCS 41120017 B NACTIV2 LCS 41140017 NACTIV1 EQU * LCS 41160017 STH R15,WHSIZE IN WORKAREA LCS 41180017 TM WSTAT,PPSIZ SIZE STORED BIT ON ? LCS 41200017 BO ERRSTX YES. ERROR LCS 41220017 TM WSTAT,PLAST WAS LAST PREVIOUSLY SPECIFIED LCS 41224017 BO ERRSTX YES - ERROR LCS 41228017 TM TRTSTAT,X'80' WAS H1 PREVIOUSLY SPECIFIED LCS 41232017 BO ERRSTX YES - ERROR LCS 41236017 OI WSTAT,PPSIZ TURN ON SIZE STORED BIT LCS 41240017 NACTIV2 EQU * LCS 41260017 NI TRTTAB,X'00' LCS 41280017 LH R0,WHSIZE HSS PARTITION SIZE LCS 41300017 SLL R0,8 CONVERT TO BYTES FOR COMPARE LCS 41320017 SRL R0,10 GET NO OF 1024 BYTE BLOCKS OF HSS A21606 41430018 CH R0,BAMINPAR LARGE PARTITION A21606 41440018 BL NSCSZ BR NO LCS 41460017 OI WSTAT,PSCSZ SET LARGE PARTITION INDICATOR LCS 41480017 NSCSZ EQU * LCS 41500017 LTR R0,R0 ANY HSS SIZE LCS 41520017 BNZ NSCSZ1 YES. USE H0 LCS 41540017 LH R0,WLCSIZE LCS CORE SIZE LCS 41560017 SLL R0,8 SHIFT TO BYTE MULTIPLE LCS 41580017 LTR R0,R0 LCS 41620017 BCR 8,R13 LCS 41640017 SRL R0,10 GET NO. OF 1024 BYTE BLOCKS OF LCS A21606 41650018 CH R0,BAMINPAR ENOUGH LCS A21606 41660018 BL NSCSZ1 NO LCS 41670018 OI WSTAT,PSCSZ SET LARGE PARTITION INDICATOR LCS 41680018 NSCSZ1 EQU * LCS 41720017 SLL R0,10 CONVERT BACK TO BYTES FOR COMPARE A21606 41730018 CL R0,MSIZ SIZE LESS THAN MINIMUM LCS 41740017 BL ERRSTX LCS 41840018 BR R13 42000015 PACKSZ PACK TCNVRT(8),0(1,R5) SUBJECT INSTRUCTION FOR PACK LCS 42400017 * GITS 42800015 * 43000015 ALPHTST EQU * 43200015 CLI 0(R1),C'K' IS CHARACTER A K? 43400015 BNE NOK 43600015 BCTR R1,0 TEST CHARACTER PRIOR TO K LCS 43660017 CLI 0(R1),C'0' VALUE GREATER THAN ZERO LCS 43720017 LA R1,1(R1) UPDATE TO ORIGINAL CHARACTER LCS 43780017 BL NOK NO. MUST BE CLASS LCS 43840017 TM TRTTAB,X'02' FIRST TIME K CHECK LCS 43900017 BZ ERRSTX BR OUT IF OFF, ERROR 44000015 LA R2,6 ARE NUMBER 44200015 CR R0,R2 CHARACTERS LEFT GT5? (ALLOW FOR K) 44400015 BH ERRSTX BR YES,ERROR. 44600015 OI TRTTAB,X'04' INDICATE 1024 MULTIPLE LCS 44800017 BCTR R15,0 REDUCE SO K WILL NOT BE PACKED. 45000015 LTR R15,R15 ANY CHARACTERS AT ALL? 45060015 BM ERRSTX BR BAD PARM 45120015 B WASK 45200015 NOK EQU * 45400015 NI TRTTAB,X'FD' TURN OFF FIRST TIME SWITCH LCS 45500017 LA R14,2 TEST FOR LENGTH 4 (MINUS 1) 45600015 CR R15,R14 BCTR LENGTH GT 3? 45800015 BNH TRDR NO TRY RDR 46000015 LA R14,2(R14) LGTH GT FOUR? 46200015 CR R15,R14 46400015 BNL ERRSTX NO- ERROR 46600015 CLC 0(4,R5),LAST LOOK FOR LAST 46800015 BNE ERRSTX NO. ERROR 47000015 TM WSTAT,PLAST 'LAST' SPECIFIED PREVIOUSLY LCS 47100017 BO ERRSTX YES. SYSNTAX ERROR LCS 47200017 OI WSTAT,PLAST INDICATE 'LAST' SPECIFIED LCS 47300017 LA R14,51 SET FOR BCT LOOP LCS 47400017 DROP R9 LCS 47500017 LA R5,DFTAB+8 START OF TABLE LCS 47600017 USING PSIZE,R5 LCS 47700017 TURNLAST EQU * LCS 47800017 NI PSTAT,255-PLAST TURN OFF LAST BIT LCS 47900017 LA R5,8(R5) NEXT ENTRY LCS 48000017 BCT R14,TURNLAST LCS 48100017 DROP R5 LCS 48200017 USING PSIZE,R9 LCS 48300017 BR R13 RETURN 48400015 TRDR EQU * 48600015 XC WCLASS(3),WCLASS LCS 48800017 CLC 0(3,R5),RDR 49000015 BNE TWTR 49200015 MVI WCLASS+2,C'R' INDICATE RDR PARTITION LCS 49600017 B STCHK 50000015 TWTR EQU * 50200015 CLC 0(3,R5),WTR WRITER? 50400015 BNE TCLAS NO- TRY CLASS. 50600015 OI WCLASS+2,C'W' INDICATE WTR PARTITION LCS 50800017 B STCHK 51000015 EJECT 51010019 * 19374 51020019 * THE FOLLOWING CODE CONVERTS JOB CLASSES TO THEIR HEX IDS- 19374 51030019 * 19374 51040019 * JOB CLASSES A-O ARE ASSIGNED HEX VALUES 28-36 RESPECTIVELY 19374 51050019 * EXAMPLE - IF THE INPUT IN THE PARTITION DEFINITION IS- 19374 51060019 * PN=ABC (WHERE N IS ANY PARTITION NUMBER), 19374 51070019 * THE HEX OUTPUT TO WCLASS IS IN REVERSE ORDER 19374 51080019 * 2A 29 28 (WHERE A=28, B=29, C=2A) 19374 51090019 * 19374 51100019 * INPUT ON ENTRY TO THIS CODE IS- 19374 51110019 * R0 - CONTAINS LENGTH OF CLASS PARAMETER 19374 51120019 * R5 - POINTER TO FIRST CHARACTER OF CLASS PARAMETER 19374 51130019 * R14 - POINTER TO WCLASS IN DFINDATA 19374 51140019 * 19374 51150019 TCLAS EQU * 51200015 LA R14,WCLASS+2 SET PTR TO INSERT CLASSES LCS 51400017 LR R10,R5 SET TO INDEX THRU CLASSES. 51600015 CLSLOOP CLI 0(R10),C'O' TEST 51800015 BH ERRSTX RANGE 52000015 CLI 0(R10),C'A' OF 52200015 BL ERRSTX CLASSES. 52400015 IC R2,0(R10) GET CLASS 52600015 CLI 0(R10),C'I' TEST FOR ZONE 52800015 BH DZON BR TO ERASE D ZONE 53000015 LA R2,103(R2) KNOCK OUT C ZONE & ADD 39 53200015 B STORC 53400015 DZON EQU * 53600015 LA R2,96(R2) KNOCK OUT D ZONE AND ADD 48 53800015 STORC EQU * 54000015 STC R2,0(R14) STORE CLASS TO PARTITION SLOT 54200015 BCTR R14,0 SET 54400015 LA R10,1(R10) FOR 54600015 BCT R0,CLSLOOP LOOP OR 54800015 STCHK EQU * 55000015 TM WSTAT,PPCLS CLASSES PREVIOUSLY STORED LCS 55200017 BO ERRSTX YES. SYSNTAX ERROR LCS 55400017 TM TRTSTAT,X'C8' WAS H0 PREVIOUSLY SPECIFIED LCS 55420017 * WAS A COMMA SPECIFIED PRIOR TO CLASSLCS 55440017 * WAS H1 PERVIOUSLY SPECIFIED LCS 55460017 BNZ ERRSTX YES. EITHER- SYNTAX ERROR M1900 55490020 TM WSTAT,PLAST WAS LAST PREVIOUSLY SPECIFIED LCS 55520017 BO ERRSTX YES - ERROR LCS 55540017 NI TRTSTAT,X'9F' TURN OFF BOTH COMMA SWS LCS 55560017 OI WSTAT,PPCLS INDICATE CLASSES STORED LCS 55600017 BR R13 RETURN. 55800015 EJECT 55900019 * 56000015 * BRANCHES FOR MULTI SUBPARMS 56200015 MULTD EQU *-4 56400015 B ERRSTX LEFT PAREN 56600015 B CM1BLNK COMMA LCS 56700017 B ERRDLM LCS 56800017 B RPARRTN RIGHT PAREN LCS 56840017 B EQURTN EQUAL SIGN LCS 56880017 RPARRTN EQU * LCS 56920017 OI TRTSTAT,X'10' LCS 56960017 LA R11,1(0,R1) LCS 57000017 SR R1,R5 LCS 57040017 BZ ERRDLM LCS 57080017 NI DFSTAT,255-DFMULT LCS 57120017 B CM1BLNKB LCS 57160017 ERRHIAR EQU * LCS 58803017 ERRSTX EQU * SYNTAX ERROR MTS0 58806016 LA R2,4 SET MSG NUMBER MTS0 58812016 B GO MTS0 58818016 ERRDLM EQU * MTS0 58824016 LA R2,11 DELIMITER ERROR MTS0 58830016 B GO MTS0 58836016 ERRSIZE LA R2,E6 SET MESSAGE NUMBER A30055 58838020 B AROUND A30055 58840020 ERRPNO LA R2,5 SET MSG ID-PART NOT DEFINABLE. 58842016 AROUND EQU * A30055 58845020 MVC DFRPLY(K2),DFRECB SET PARTITION NUMS FOR MSG MOD M0081 58848021 LA R4,DFRPLY PT TO PARTITION NUMBERS MTS0 58854016 GO EQU * MTS0 58860016 MVI DFRPLY+23,C'5' GO TO MESSAGE MODULE MTS0 58866016 EXIT2 EQU * SET UP XCTL LIST & EXIT MTS0 58872016 TM DFRES,GETTRT TRT CORE CURRENTLY EXIST LCS 58874017 BZ XCTL NO. DO NOT FREE CORE LCS 58876017 LR R1,R3 MTS0 58878016 LA R0,TTAB SET LENGTH AND ADDRESS FOR FREE 58884016 SVC 10 FREEMAIN MTS0 58890016 NI DFRES,255-GETTRT CLEAR TRTTABLE PRESENT INDICATOR LCS 58893017 XCTL SR R15,R15 DCB MTS0 58896016 ST R15,DFRPLY+12 TO ZERO MTS0 58902016 LA R15,DFRPLY+16 PT TO NAME MTS0 58908016 ST R15,DFRPLY+8 MTS0 58914016 LA R15,DFRPLY+8 XCTL LIST PTR MTS0 58920016 MVC DFRPLY+16(7),IEED MOVE IN FIRST 7 NAME CHARACTERS MTS0 58926016 SVC 7 MTS0 58932016 * 58938016 LCSERR EQU X'40' LCS 60986017 HIARERR EQU * LCS 62986017 LA R2,16 SET MSG NUMBER LCS 63986018 B GO LCS 64986018 ERRNSUP EQU * LCS 66986017 LA R2,15 SET MSG NUMBER LCS 68986017 B GO LCS 70986017 TEST TRT 0(0,R5),TRTTAB TRT SUBJECT INSTRUCTION LCS 72986017 DS 0F MTS0 74986017 TTABSIZE DC X'FE' SUBPOOL 254 LCS 76986017 DC AL3(TTAB) MTS0 80460016 ADDAOK DC A(AOK) MTS0 80480016 MSIZ DC A(8192) MINIMUM SIZE FOR A PARTITION 80500015 IEED DC C'IEEDFIN' 80800015 LAST DC C'LAST' 81400015 RDR DC C'RDR' 81600015 WTR DC C'WTR' 81800015 TMSL DC C'TMSL=' LCS 81840017 HIAR1 DC C'H1' HIERARCHY 1 PARAM M1900 81860020 TRTABLE DSECT LCS 81880017 TRTTAB DS C TEMPORARY PART STATUS LCS 81920017 TRTSTAT DS C DEFINITION STATUS BYTE LCS 81960017 DS H LCS 82000017 TCNVRT DS D CONVERSION WORKAREA LCS 82040017 DS 61F USED FOR TRT LCS 82080017 TTAB EQU *-TRTABLE LENGTH OF WORK AREA LCS 82120017 DATA DFINDATA 82400015 WSWI EQU PPSIZ+PLAST+PPCLS LCS 82500017 IEEBASEB 82600015 CVT DSECT 82800015 CVT 83000015 END 83200015 ./ ADD SSI=04030517,NAME=IEEDFIN3,SOURCE=0 TITLE 'IEEDFIN3, CHECK PARTITION CONFIGURATION, FIRST LOAD' 00200019 IEEDFIN3 CSECT 00400015 * 216000,217000 A27276 00400119 * 004300-004360,004900-004930,005090,005599,028000,200000, A27259 00400319 * 317200-424000,505000-521500,667000-695000,730000,739000 A27259 00400619 * 004330-004360,004540,005090-005100,082000,086000-118000,218230, I250 00401019 * 218400-218500,238600,389300,390400,390600-391100,3916008 I250 00402019 * 392500-393100,433000-442000,516000-517000,679000,687000 I250 00403019 * 214120,218200-219500,239000 A26794 00403519 * 316750 M4817 00404019 * 200840-200900 A42755 00404421 * C 254599 M1317 00404821 * D 929500 M1317 00404921 * 063872,246600,267900,294000 A30055 00405020 * A35673 00405420 * 200660-200720 A38675 00405820 * M0102 00405921 * C 215100 M1700 00408621 *A026600,C254919,A255332 A56072 00409621 * A 201306-201326 A46718 00410621 * A 200500,201561-201581,201612 A50100 00412621 * C 214600 A50100 00414621 * D 200960,201184-201235,201337,201745 A50100 00415021 *********************************************************************** 00416421 * * 00419121 * NAME * 00421821 * IEEDFIN3 * 00424521 * * 00427221 *********************************************************************** 00429921 * * 00432621 * FUNCTION * 00435321 * BEGIN TO ASSURE THAT THE DEFINITION CHANGES WHICH HAVE BEEN A27259 00438021 * REQUESTED ARE WITHIN LEGAL BOUNDS A27259 00440721 * IF NO ERRORS ARE DETECTED, TRANSFER CONTROL TO IEEDFINC TO A27259 00443421 * CONTINUE THE CHECK A27259 00446121 * * 00448821 *********************************************************************** 00451521 * * 00454221 * ENTRY * 00456921 * IEEDFIN3 FROM IEEDFIN1 IF NO CHANGES ARE REQUESTED AT IPL * 00459621 * FROM IEEDFIN7 IF END, BUT NOT LIST IS SPECIFIFIED IN A REPLY I250 00462321 * FROM IEEDFIN4 IF LIST AND END HAVE BEEN INDICATED OR LIST * 00465021 * AND NO CHANGES (IPL ONLY) HAVE BEEN SPECIFIED * 00467721 * * 00470421 *********************************************************************** 00473121 * * 00475821 * INPUT * 00478521 * REG6 POINTS TO THE INTERNAL DATA AREA * 00481221 * * 00483921 *********************************************************************** 00486621 * * 00489321 * OUTPUT * 00492021 * REG2 POINTS TO THE TEMPORARY WORKAREA A27259 00494721 * REG3 MAY CONTAIN A MESSAGE NUMBER A27259 00497421 * REG6 POINTS AT THE INTERNAL DATA AREA 00500121 * * 00502821 *********************************************************************** 00505521 * * 00508221 * EXIT * 00510921 * TO IEEDFINC IF NO ERRORS ARE DETECTED A27259 00513621 * TO ENTRY POINT=IEEREXIT WHEN ERRORS ARE FOUND LCS 00516321 * * 00519021 *********************************************************************** 00521721 * * 00524421 * EXTERNAL REFERENCES * 00527121 * CVT * 00529821 * TCB * 00532521 * MASTER SCHEDULER DATA AREA (IEEBASEB) * 00535221 * PARTITION INFORMATION BLOCK * 00537921 * * 00540621 *********************************************************************** 00543321 * * 00546021 * ERROR CONDITIONS * 00548721 * EXAMINING ALL THE SYNTACTIVALLY CORRECT INFORMATION THAT HAS BEEN * 00551421 * FED TO THE DEFINE ROITINES FOLLOWING AN ENTER DEFINITION MESSAGE, * 00554121 * THE SE ERROR CONDITIONS MAY RESULT - * 00556821 * TMSL SPECIFICATION NOT ACCEPTABLE A27259 00559521 * NO PARTITION SPECIFIED FOR EXCESS BYTES A27259 00562221 * THE TOTAL SIZE OF THE PARTITIONS DEFINED EXCEEDS SPACE AVAILABLE * 00564921 * THE PARTITIONS CHANGED ARE NOT ADJACENT(AFTER IPL ONLY) * 00567621 * TOTAL SIZE OF PARTITIONS IS ------ BYTES TOO LARGE FOR STORAGEA27259 00570321 * DEFINITION PARAMETER ERROR (IF NO CLASS IS SPECIFIED FOR A A35673 00573021 * PARTITION THAT IS BEING REACTIVATED) A35673 00575721 * * 00578421 *********************************************************************** 00581121 * * 00583821 * NOTES * 00586521 * THE INTERNAL DATA AREA IS DESCRIBED BY MACRO DFINDATA * 00589221 * * 00591921 *********************************************************************** 00594621 *********************************************************************** 00597321 * 00600015 REGEQU 00800015 E0 EQU 0 I250 00830019 E1 EQU 1 I250 00860019 E2 EQU 2 I250 00890019 E3 EQU 3 A26794 00900019 E4 EQU 4 I250 00920019 E5 EQU 5 A26794 00930019 E8 EQU 8 A26794 00940019 EHEX00 EQU X'00' I250 00950019 *2 WORK AREA BASE 01000015 *3 CVT BASE 01200015 *4 MSER BASE 01400015 *5 INDIV PART.DATA PT 01600015 *6 DEFINE DATA AREA 01800015 *7 PROGRAM BASE 02000015 *8 PIB PT 02200015 *13 INTERMEDIATE SIZE ACCUMULATOR 02400015 *15 TOTAL SIZE ACCUMULATOR. 02600015 EJECT A27259 02630019 TCBEQU A27259 02660019 TCBNDSP1 EQU 173 TCB SECONDARY A56072 02662021 * DISPATCHABILITY FLAGS A56072 02664021 PTNLOST EQU 64 PERMANENTLY NON-DISPATCHABLE A56072 02666021 TCBJSCB EQU 180 TCB OFFSET TO JSCB 02670021 SPACE 02690019 N1 EQU 1 A27259 02720019 N2 EQU 2 M0102 02730021 N3 EQU 3 A27259 02750019 N4 EQU 4 A27259 02780019 N5 EQU 5 A27259 02810019 N6 EQU 6 M0102 02820021 N8 EQU 8 A27259 02840019 X20 EQU X'20' A27259 02870019 ZERO EQU C'0' M0102 02880021 EJECT A27259 02900019 USING WORKAREA,R2 03000015 USING CVT,R3 03200015 USING BASE,R4 03400015 USING DATA,R6 03800015 USING IEFSD033,R8 04000015 * 04200015 * 04400015 BALR R7,0 04600015 USING *,R7 SET PROGRAM BASE 04800015 *******************************************************************LCS 04810017 * *LCS 04820017 * THIS SECTION OF CODE IS TO PROVIDE A METHOD OF IDENTIFYING *LCS 04830017 * THIS MODULE IN A MEMORY DUMP *LCS 04840017 * *LCS 04850017 B ID *LCS 04860017 DC X'CCCC' *LCS 04870017 DC C'IEEDFIN3' *LCS 04880017 DC C'09201968' *LCS 04890017 DC X'CCCC' *LCS 04900017 ID DS 0H *LCS 04910017 * *LCS 04920017 *******************************************************************LCS 04930017 L R0,SIZEEF LOAD LENGTH AND SUBPOOL LCS 05000017 LR R1,R0 INDICATE GETMAIN LCS 05200017 SVC 10 GETMAIN FOR WORK AREA 05600015 LR R2,R1 SET WORK AREA AND 05800015 XC 0(255,R2),0(R2) CLEAR WORK AREA. 06000015 XC 255(WALGTH-255,R2),255(R2) 06200015 LA R15,16 NUMBER OF PROTECT KEYS PLUS ONE 06210015 LA R0,51 MAX NUMBER OF PARTITIONS - 1 LCS 06220017 LA R3,7 SET CODE FOR POSSIBLE ERROR 06230015 LA R5,PSIZE LCS 06236017 USING PSIZE,R5 LCS 06242017 COMP CLI PCLASS+2,C'R' RDR OR WTR 06260015 BNL NOKEY 06270015 CLC PSIZE(4),HZERO IF SIZE IS ZERO EITHER THERE LCS 06280017 * IS NO PARTITION RELATED TO THIS 06290015 * ENTRY OR THE PARTITION IS NOW 06300015 * INACTIVE 06310015 BE NOKEY BRANCH IF SIZE IS ZERO 06320015 CLC PCLASS(E3),HZERO ARE THERE ANY CLASSES A35673 06322020 BE ERR4 NO - BRANCH. DEF PARAM ERROR A35673 06324020 BCTR R15,0 SUB FROM MAX COUNT 06330015 LTR R15,R15 IF COUNT = 0 PROBLEM PARTS EXCEED 06340015 BZ ERREXIT 15 = 0 BR TO ERROR EXIT 06350015 NOKEY EQU * 06360015 TM PSTAT,PLAST IS THIS ONE LAST 06363017 BO NOMORE YES - DON'T CONTINUE SCAN 06366017 LA R5,8(R5) LOOK AT NEXT SLOT 06370015 BCT R0,COMP BRANCH IF MORE PARTITIONS POSSIBLE 06380015 NOMORE EQU * 06385017 * A26794 06385119 * THIS SECTION OF CODE SAVES THE NUMBER OF THE LAST A26794 06385219 * CHANGED PARTITION, IN CASE MSG IEE809I (...EXCEEDS A26794 06385319 * AVAILABLE SPACE) HAS TO BE WRITTEN A26794 06385419 * A26794 06385519 XR R8,R8 CLEAR AS PARTITION COUNTER A26794 06385619 DROP R5 A26794 06385719 USING DATA,R6 A26794 06385819 LA R15,DF+DFTBSIZ-E8 ADDR. OF ENTRY FOR FINAL PART.A26794 06385919 LA R5,PSIZE STATUS INFO FOR P0 A26794 06386019 USING PSIZE,R5 A26794 06386119 NOTLCHNG EQU * A26794 06386219 TM PSTAT+E8,PCHNG WAS N E X T PART. CHANGED A26794 06386319 BO INCR BRANCH, NOT LAST CHANGED PART A26794 06386419 TM PSTAT,PCHNG WAS THIS PART. CHANGED A26794 06386519 BO LASTCHNG BRANCH, THIS IS LAST CHANGED A26794 06386619 INCR EQU * A26794 06386719 LA R8,E1(E0,R8) INCR. PART. NO. COUNTER A26794 06386819 LA R5,E8(E0,R5) INCR PTR. TO NEXT IN TABLE A26794 06386919 * THIS CHECK IS NECESSARY ONLY IF NO PARTITIONS OR FINAL A26794 06387019 * PARTITION WERE CHANGED A26794 06387119 CR R5,R15 CHECK FOR FINAL PARTITION A30055 06387220 BNE NOTLCHNG LOOP IF NOT FINAL A26794 06387319 LASTCHNG EQU * A26794 06387419 * MULTIPLY BY 10 BECAUSE LOW ORDER DIGIT WILL HAVE A26794 06387519 * INCORRECT ZONE. (ALL THAT IS NEEDED ARE THE 2 LOW A26794 06387619 * ORDER DIGITS.) A26794 06387719 MH R8,HTEN A26794 06387819 CVD R8,DFRPLY A26794 06387919 UNPK DFRPLY(E3),DFRPLY+E5(E3) A26794 06388019 LA R5,WHSIZE PART INFO - 8 LCS 06390017 SR R15,R15 TOTAL SIZE ACCUMULATOR 06400015 SR R1,R1 WAIT LIST & ECB PT INDEX 06600015 L R3,CVTPTR SET CVT BASE 06800015 L R4,CVTMSER SET MSER BASE 07000015 L R9,CVTMZ00 GET MACHINE SIZE 07200015 LA R9,1(R9) 07400015 ST R9,LCSIZE+4 SAVE HIGH BOUND LCS 07410017 L R9,BALCSBND HSS HIGH BOUND LCS 07420017 ST R9,LCSIZE LCS 07430017 ST R9,LOWBND STORE SIZE AS LOW BNDRY CHECK FOR 07450015 * FIRST PASS 07500015 SR R13,R13 ZERO INTERMEDIATE SIZE COUNTER 07550015 L R10,CVTNUCB GET HIGH NUC BNDRY 07600015 SR R9,R10 GET TOTAL SIZE POSSIBLE 07800015 ST R9,TOTSZ AND STORE IN WORK AREA 08000015 L R9,CVTTAT-E1 GET PTR TO TCB TABLE I250 08060019 DROP R3 I250 08120019 USING CVT,R9 I250 08180019 L R9,E0(E0,R9) LOAD PTR TO TCB OF P0 I250 08240019 XC DFTABR9(E2),DFTABR9 CLEAR INDEX IN TCB TABLE I250 08300019 RENEW LR R10,R9 SET CURRENT TCB PT AS PREVIOUS 08400015 MVC DFTABR10(E2),DFTABR9 SET CURRENT INDEX AS PREVIOUS I250 08700019 CLC DFTABR10+E1(E1),DFSYSNDX WAS LAST TCB PROCESSED I250 09000019 BE CHKTOT YES, BRANCH I250 09300019 LH R9,DFTABR10 INCREMENT INDEX IN TCB TABLE I250 09600019 LA R9,E4(E0,R9) I250 09900019 STH R9,DFTABR9 I250 10200019 L R9,CVTPTR GET CVT I250 10500019 L R9,CVTTAT-E1 GET TCB TABLE I250 10800019 AH R9,DFTABR9 GET POSITION IN TAB I250 11100019 L R9,E0(E0,R9) GET TCB PTR I250 11400019 LA R5,8(R5) POINT TO NEXT INDIV. PART. ENTRY. 12000015 L R8,TCBPIB(R10) SET PIB BASE 12400015 TM SWS,LASTSW USER'S LAST PART. TREATED 12600015 BZ CHKPP NO. BR 12800015 CLC PSIZE(4),HZERO SIZE EQUAL ZERO LCS 13300017 BE PARTCHG BR YES TO CHECK CHANGE 13800015 OI PSTAT,PCHNG INDICATE CHANGED STATUS 14300015 SETSZ XC PSIZE(4),PSIZE ZERO SIZE FIELDS LCS 14500017 XC PCLASS(3),PCLASS LCS 14700017 B PARTCHG 15000015 CHKPP EQU * 15200015 TM PSTAT,PCHNG WAS PARTITION CHANGED" 16600015 BO PARTCHG BR YES, DON'T SAVE PROTECT KEY 16800015 CLC PSIZE(4),HZERO SIZE EQUAL ZERO LCS 17000017 BE PARTCHG BR YES 17200015 SR R14,R14 17400015 IC R14,SD33GRP GET PROTECT KEY 17600015 LR R12,R14 SAVE KEY IN REG12 17700015 SRL R14,4 SET AS INDEX 17800015 STC R12,PKEYS(R14) AND SAVE IN LIST 18200015 PARTCHG EQU * 18600015 TM PSTAT,PCHNG PARTITION CHANGED? 18800015 BO CHKACTIV YES. BR. 19000015 CLC PSIZE(4),HZERO SIZE EQUAL ZERO LCS 19200017 BNE CHKLOW NO. BR. 19400015 XC PCLASS(3),PCLASS LCS 19600017 B RENEW BR TO CONTINUE SCAN 19800015 LXCS1 EQU * LCS 19807017 DROP R5 LCS 19814017 LA R14,DFTAB+8 FIRST ENTRY IN PERM TABLE LCS 19835017 USING PSIZE,R5 LCS 19842017 LXCS EQU * LCS 19849017 LTR R12,R12 IS THERE ANY EXCESS TO PROCESS LCS 19850017 BE EXITRTN NO - GO TO EXIT LCS 19851017 OI SWS,XCSMSG YES - INDICATE PRESENCE OF EXCESS LCS 19852017 LXCS2 EQU * LCS 19853017 SH R5,EIGHT LOOK AT NEXT PREVIOUS ENTRY LCS 19856017 CR R5,R14 OUT OF TABLE LCS 19863017 BL NXCSERR YES - EXCESS CAN'T BE ADDED LCS 19870017 SH R3,EIGHT LCS 19875017 CLC 0(2,R3),HZERO IS THERE ANY CORE IN PART LCS 19880017 BE LXCS2 NO - TRY NEXT ONE LCS 19885017 TM PSTAT,PCHNG WAS PARTITION CHANGED LCS 19891017 BZ LXCS2 NO. GET NEXT ENTRY LCS 19898017 XCSSAVE EQU * LCS 19905017 ST R5,WORK2 LAST ACTIVE CHANGED PART ENTRY LCS 19912017 * IN PERMANENT TABLE LCS 19919017 ST R12,WORK1 SAVE EXCESS FOR MESSAGE LCS 19926017 SR R5,R14 CALCULATE DISPLACEMENT TO ENTRY LCS 19933017 SRL R5,3 DIVIDE BY EIGHT - GET PART NO LCS 19940017 CVD R5,16(R11) CONVERT PART NUMBER LCS 19947017 UNPK 0(2,R11),22(2,R11) LCS 19954017 OI 1(R11),C'0' LCS 19961017 MVC 2(5,R11),HAS MOVE IN HAS FOR MESSAGE LCS 19968017 L R5,WORK2 RELOAD R5 WITH PTR TO CURRENT PARTLCS 19975017 CVD R12,16(R11) CONVERT EXCESS LCS 19975617 UNPK 7(8,R11),19(5,R11) LCS 19976217 OI 14(R11),C'0' LCS 19976817 BLOOPS EQU * LCS 19977417 CLI 7(R11),C'0' CHECK FOR LEADING ZEROS LCS 19978017 BNE EXITRTN LCS 19978617 MVI 7(R11),C' ' LCS 19979217 LA R11,1(R11) LCS 19979817 B BLOOPS LCS 19980417 EXITRTN EQU * LCS 19981017 BR R13 RETURN LCS 19982017 EJECT A27259 19988019 CHKLOW EQU * A27259 19994019 TM TRTSTAT,X20 HAS LOW BOUND OF LAST A27259 20000019 * UNCHANGED PARTITION BEEN STORED- A27259 20006019 BO CONTINU YES-SKIP SETTING BOUND A27259 20012019 ST R5,WORK2 SAVE PTR TO CURRENT 8-BYTEA27259 20018019 * ENTRY IN DFINDATA A27259 20024019 CHKNXT EQU * A27259 20030019 LA R5,N8(R5) GET NEXT ENTRY A27259 20036019 CLC PSIZE(N4),HZERO SIZE EQUAL ZERO- A27259 20042019 BE CHKNXT YES-GET NEXT ENTRY A27259 20048019 ST R12,WORK1 SAVE REGISTER A50100 20050021 TM PSTAT,PCHNG THIS PARTITION CHANGING- A27259 20054019 BZ SETPTR NO-GO RESET POINTER A27259 20060019 SPACE 20078019 DROP R5 A42755 20096421 LA R12,DF+DFTBSIZ POINT TO END OF DFINDATA A42755 20096821 USING PSIZE,R5 A42755 20097221 CR R5,R12 ARE WE BEYOND A42755 20097621 L R12,WORK1 RESTORE REGISTER A42755 20108221 BNL SETPTR YES-GO TO RESET POINTER A42755 20113321 L R12,TCBMSS(R10) POINT TO BOUNDARY BOX A27259 20128621 CLC N8(N4,R12),HZERO IS THERE ANY H0 A46718 20130621 BE SETPTR NO-DONT SAVE LOW BOUNDARY A46718 20132621 MVC LOWBND+N1(N3),N5(R12) SAVE LOW BOUND OF LAST A27259 20138821 * UNCHANGED PARTITION (EQUALA27259 20143921 * HI-BOUND OF FIRST CHANGED A27259 20149021 * PARTITION) A27259 20154121 MVC TRTSTAT+N1(N3),N5(R12) SAVE ALSO FOR HIGH BND OF A50100 20156121 * FIRST CHANGED PARTITION A50100 20158121 OI TRTSTAT,X20 SET BOUND-STORED BIT A27259 20159221 SETPTR EQU * A50100 20161221 L R12,WORK1 RESET REGISTER A27259 20164321 L R5,WORK2 RESET POINTER TO CURRENT A27259 20179621 * ENTRY IN DFINDATA A27259 20184721 EJECT A27259 20189821 CONTINU EQU * A27259 20194921 TM BADEFINE,BASTP ADJACENT CHECK? 20200015 BZ RENEW NO. BR 20400015 TM SWS,ENDADJ ADJACENT CYCLE COMPLETED? 20600015 BO RENEW BR YES 20900015 TM SWS,LOSW LOW ADJACENT BOUNDARY SET? 21200015 BZ STRLOW BR NO TO SET CURRENT LOW AS LOW 21400015 OI SWS,ENDADJ SET END OF ADJACENT PARTITIONS A25055 21403018 B RENEW BRANCH TO CHECK NEXT A25055 21406018 TRTSTTST EQU * 21410017 L R12,LOWBND GET LOW BOUNDARY A27276 21411019 OI TRTSTAT,X'10' 21420017 TM TRTSTAT,X'20' HAVE BOUNDS BEEN STORED LCS 21430017 BO BNDSTORD YES - CHECK ON INTERMEDIATE SIZE LCS 21440017 LTR R13,R13 NO - IS THERE INTERMEDIATE SIZE LCS 21450017 BNZ ERRAV YES. EXCEEDS AVAIL SPACE ERROR A50100 21460021 B NXCS NO - NO INT SIZE AND NO BNDS LCS 21470017 * THEREFORE NO ERROR LCS 21480017 BNDSTORD DS 0H 21490017 LTR R13,R13 IS THERE INTERMEDIATE SIZE LCS 21500017 BNE ASBEFORE YES M1700 21510021 TM TRTSTAT,LCSONLY ONLY H1 REDEFINED? M1700 21512021 BO NXCSERR NO, THEN ERROR M1700 21516021 * BECAUSE NO INT SIZE AND BOUNDS STORED M1700 21516421 B LCSEXIT IF R13 IS ZERO, AND LCSONLYM1700 21518021 * BIT NOT ON THEN ONLY H1 M1700 21518421 * PARTITIONS SPECIFIED M1700 21518821 ASBEFORE EQU * * M1700 21568821 SR R12,R13 SUBTRACT INTERMEDIATE SIZE 21800015 L R14,TRTSTAT LOAD HIGH BOUND OF NEXT UNCHNGED LCS 22000017 * PARTITION LCS 22100017 LA R14,0(R14) CLEAR HI ORDER BYTE LCS 22200017 SR R12,R14 DOES SIZE FIT LCS 22300017 BM ERRAV IF SIZE EXCEEDS SPACE - ERROR 22420015 CHKXCSB EQU * 22460015 BZ NXCS IF ZERO DON'T TRY TO ADD EXCESS. 22500015 LR R3,R5 SET R3 TO HSS SLOTS IN TABLE LCS 22570017 LA R11,DFRPLY SET R11 TO BUFFER FOR H0 EXCESS LCS 22640017 MVI 15(R11),C'0' MOVE IN A '0' TO INDICATE H0 EXCESLCS 22710017 BAL R13,LXCS1 LAST ACTIVE CHANGED PART CHECK LCS 22800017 OUTA EQU * MTS0 23290016 SRL R12,8 SET DIFFERENCE TO 256 BYTE MULT 23350015 LH R13,PSIZE GET SIZE FROM ENTRY 23370015 AR R13,R12 SET NEW SIZE 23400015 STH R13,PSIZE STORE NEW SIZE 23450015 SRL R13,2 GET NO OF 1024 BYTES IN HSS A21606 23457018 CH R13,BAMINPAR SCHEDULER SIZE PARTITION A21606 23464018 BL NXCS BR NO A21606 23471018 OI PSTAT,PSCSZ INDICATE SCHED SIZE 23480015 NXCS EQU * 23850015 CLC DFTABR10+E1(E1),DFSYSNDX WAS LAST TCB PROCESSED I250 23860019 BZ CTOT BR YES TO CHECK TOTAL SIZE 23870015 OI SWS,ENDADJ INDIC. COMPLETION OF ADJACENT CHECK 24200015 B RENEW BR. TO CONTINUE SCAN 24400015 * 24600015 STRLOW EQU * 24640015 XC WORK2(E4),WORK2 ZERO FULL WORD A30055 24660020 MVC WORK2+E1(E2),PSIZE CONVERT PARTITION SIZE A30055 24680020 * TO BYTE SIZE A30055 24700020 A R15,WORK2 ACCUMULATE TOTAL SIZE A30055 24720020 B RENEW SCAN NEXT ENTRY 24760015 EJECT 24770021 * M0102 24780021 * THIS CODE IS EXECUTED FOR EACH PARTITION THAT IS BEING M0102 24790021 * REDEFINED. THIS INCLUDES PARTITIONS AFTER THE ONE MARKED M0102 24792021 * 'LAST'. M0102 24794021 * M0102 24796021 CHKACTIV EQU * 24800015 TM PSTAT,DFACTIV IS PARTITION ACTIVE 25000015 BZ CHKADJ NO. BR ADJACENT CHECK 25200015 * M0102 25250021 * WHEN A PARTITION IS FOUND THAT IS BEING REDEFINED AND IS M0102 25300021 * CURRENTLY ACTIVE, THE FOLLOWING CODE DETERMINES IF A SUB- M0102 25350021 * SYSTEM IS RUNNING IN THAT PARTITION. M0102 25360021 * M0102 25370021 * IF A SUBSYSTEM IS RUNNING, A REDEFINITION OF ITS PAR- M0102 25380021 * TITION WILL CAUSE THE MASTER TASK TO BE TIED UP INDEFINITELY M0102 25390021 * WHILE DEFINE PROCESSING IS WAITING FOR THAT PARTITION TO M0102 25392021 * QUIESCE. ANY OTHER PARTITIONS BEING REDEFINED AT THE SAME M0102 25394021 * TIME WILL ALSO BE TIED UP WITH DEFINES PENDING AGAINST THEM. M0102 25396021 * CONSEQUENTLY, IF THE SUBSYSTEM IS RUNNING, THE FOLLOWING M0102 25398021 * CODE WILL CAUSE THE REDEFINITION TO BE REJECTED AND MESSAGE M0102 25398421 * IEE808A TO BE ISSUED. M0102 25398821 * M0102 25399221 ST R12,WORK2 SAVE REGISTER M0102 25399621 L R12,TCBJSCB(R10) SET UP JSCB ADDRESSABILITY M0102 25399721 USING IEZJSCB,R12 FOR CURRENT PARTITION M0102 25399821 LTR R12,R12 DOES JSCB POINTER EXIST M0102 25399921 BZ NSUBSYST NO. SUBSYSTEM DOESNT EXIST M0102 25449921 TM JSCBSWT1,JSCBLONG IS SUBSYSTEM IN THIS PART. M1317 25459921 BZ NSUBSYST NO. DEFINITION IS VALID M0102 25469921 * M0102 25479921 * CONVERT PARTITION NUMBER CONTAINING SUBSYSTEM TO EBCDIC M0102 25489921 * M0102 25491921 NOTABLE SR R0,R0 CLEAR REG 0 A56072 25492921 IC R0,TCBIDF(R10) GET ID FROM THIS PART'S TCB M0102 25493921 SH R0,DFIDOFP0 CALCULATE DIFFERENCE M0102 25495921 CVD R0,DFRPLY CONVERT PARTITION NUMBER M0102 25497921 UNPK DFRPLY(N2),DFRPLY+N6(N2) M0102 25498321 OI DFRPLY+N1,ZERO CONVERT SIGN M0102 25498721 LA R4,DFRPLY SET MESSAGE FILL POINTER M0102 25499121 LA R3,N5 SET 'NOT DEFINABLE' MSG CODE M0102 25499521 B ERREXIT GO XCTL TO IEEDFIN9 M0102 25499621 DROP R12 M0102 25499721 EJECT M0102 25499821 NSUBSYST EQU * M0102 25533221 TM TCBNDSP1(R10),PTNLOST PTN NON-DISP? A56072 25536221 BO NOTABLE YES,CANNOT DEFINE IT A56072 25539221 L R12,WORK2 RESTORE TO PREVIOUS CONTENT M0102 25543221 ST R8,WLIST(R1) STORE PIB PT TO WAIT LIST. M0102 25566621 LA R1,4(R1) INCREMENT PT. 25600015 TM SWS,LASTSW LAST PARM ENCOUNTERED? 25660015 BO RENEW BR YES TO CONTINUE SCAN 25720015 CHKADJ EQU * 26220015 XC WORK2(E4),WORK2 ZERO FULL WORD A30055 26320020 MVC WORK2+E1(E2),PSIZE CONVERT PARTITION SIZE A30055 26420020 * TO BYTE SIZE A30055 26520020 A R15,WORK2 ACCUMULATE TOTAL SIZE A30055 26620020 TM PSTAT,PLAST LAST BIT SET? 26860015 BZ NLST 26930015 OI SWS,LASTSW SET ON LAST BIT 27000015 NLST EQU * 27140015 OI SWS,LOSW INDIC ATE LOW BOUND NOW ACTIVE 27220015 L R12,TCBMSS(R10) PTR TO CURRENT PART'S BBX LCS 27280017 CLC 8(4,R12),HZERO IS THERE ANY H0 FOR THIS PART LCS 27340017 BE ACCUME NO - DON'T MOVE IN BOUNDS OF PART LCS 27400017 OI TRTSTAT,LCSONLY AT LEAST ONE PARTITION OF M1700 27450021 * H0 IN INPUT DEFINITION M1700 27452021 MVC TRTSTAT+1(3),5(R12) YES - MOVE LOW BND TO SAVE AREA LCS 27460017 TM TRTSTAT,X'20' HAS SWITCH BEEN SET INDICATING LCS 27520017 * THE LOW BOUND HAS BEEN STORED LCS 27580017 BO ACCUME YES - DON'T MOVE IN A NEW ONE LCS 27640017 OI TRTSTAT,X'20' INDICATE LOWBOUND STORED LCS 27700017 MVC LOWBND+1(3),9(R12) MOVE HIGH BOUND OF FIRST CHANGED LCS 27760017 * PARTITION FOR CALCULATION OF LCS 27820017 * INTERMEDIATE SIZE LCS 27880017 ACCUME EQU * LCS 27940017 LH R12,PSIZE GET 2K SIZE 28000015 SLL R12,8 SHIFT TO BYTE SIZE 28200015 AR R13,R12 ACCUMULATE SIZE 28400015 TM SWS,ENDADJ HAS ADJACENT CYCLE COMPLETED BEFORE? 28600015 BO ERRADJ BR YES.ERROR 28800015 B RENEW 29000015 CHKTOT EQU * 29200015 LA R5,8(R5) SET INDIV ENTRY PT FOR EXCESS SCASN 29210015 TM BADEFINE,BAON IPL? 29220015 BO ADDINT BR NO. 29230015 L R12,TOTSZ GET TOTAL SIZE ALLOWED 29240015 SR R12,R13 SUBTRACT INTERMEDIATE SIZE 29250015 BM CTOT IF MINUS BR TO SET UP ERROR MSG 29260015 B CHKXCSB GO CALCULATE EXCESS 29280015 ADDINT EQU * 29290015 TM SWS,LASTSW LAST SET LCS 29300017 BZ ADDINT5 NO. USE CURRENT BOUNDS LCS 29310017 DROP R9 I250 29313019 USING CVT,R3 I250 29316019 MVC TRTSTAT+1(3),CVTNUCB+1 USE TOP OF NUC AS LOW LCS 29320017 DROP R3 I250 29323019 USING CVT,R9 I250 29326019 OI TRTSTAT,X'20' SET BOUND STORED BIT LCS 29330017 ADDINT5 EQU * LCS 29340017 TM TRTSTAT,X'10' HAVE BOUNDS BEEN STORED LCS 29350017 BZ TRTSTTST YES. CHECK FOR EXCESS LCS 29360017 CTOT EQU * 29390015 S R15,TOTSZ IS SIZE REQUESTED GT SPACE AVAIL? 29600015 BP ERRTOT BR GT SPACE AVAIL 29800015 LCSEXIT EQU * ONLY H1 PARTITIONS GIVEN M1700 29850021 LA R15,WLIST(R1) GET LAST WAIT LIST SLOT 31600015 ST R15,TOTSZ MTS0 31660016 CLC DFTMSL+2(2),HZERO IS THERE A TMSL PARTITION MTS0 31661016 BE ENDTSCHK NO-SKIP TMSL VALIDITY CHECK MTS0 31662016 CLC DFTMSL+2(2),DFTMSL YES-ARE THEY VALID MTS0 31663016 BNH TMSLERR NO- ERROR MTS0 31664016 L R11,DFTMSL+4 GET TMSL LENGTH VALUE 31664217 LTR R11,R11 Q.IS THERE A VALUE 31664417 BZ TMSLERR NO- ERROR 31664617 * YES- CHECK TO SEE IF TMSL 31665016 * PARTITIONS HAVE BEEN MADE INACTIVE 31666016 SR R11,R11 ZERO R11 MTS0 31667016 IC R11,DFPMAX GET MAXIMUM PARTITION NUMBER THAT 31668016 LA R11,1(R11) WAS SYSGENED AND ADD 1 FOR LOOP MTS0 31669016 SR R3,R3 ZERO PARTITION INDICATOR REG MTS0 31670016 SR R0,R0 ZERO LAST ACTIVE PARTITION REG MTS0 31671016 DROP R5 31672016 LA R5,WHSIZE+8 FIRST ENTRY IN TABLE LCS 31673017 USING PSIZE,R5 LCS 31674017 TMSLCKA CLC PSIZE(E4),HZERO H0 AND H1 SIZE BOTH ZERO M4817 31675019 BE TMSLCKB YES-DON'T SAVE PARTITION NUMBER MTS0 31676016 * FOR TMSL CHECK MTS0 31677016 LR R0,R3 NO-SET UP R3 WITH LAST ACTIVE MTS0 31678016 * PARTITIN NUMBER MTS0 31679016 TMSLCKB LA R3,1(R3) INCREMENT R3 TO NEXT PART. NO.. MTS0 31680016 LA R5,8(R5) GET ADDR OF NEXT SLOT MTS0 31681016 BCT R11,TMSLCKA CHECK NEXT SLOT OR FINISH TMSL MTS0 31682016 * CHECK MTS0 31683016 LH R11,DFTMSL+2 GET LAST TMSL PART. NO. MTS0 31684016 DROP R5 MTS0 31685016 CR R11,R0 LAST TMSL PART. NO. WITHIN MTS0 31686016 * ACTIVE PARTITIONS MTS0 31687016 BNH TMSLOK YES. TMSL PART NO. OK BRANCH MTSO 31688017 TMSLERR L R3,CVTPTR NO-GET ADDR OF CVT MTS0 31689016 L R3,216(R3) GET ADDR OF TSCE MTS0 31690016 OI 12(R3),X'01' SET TMSL ERROR BIT MTS0 31691016 TM SWS,XCSMSG Q.EXCESS MESSAGE NEEDED MTS0 31692016 BZ SKIPXCS NO-BRANCH MTS0 31693016 OI 12(R3),X'02' SET EXCESS MSG BIT W/TMSL ERROR MTS0 31693516 LA R3,8 YES-GET EXCESS MSG CODE AND MTS0 31694016 LA R4,DFRPLY POINTER TO INSERTION DATA MTS0 31695016 B ERREXIT BRANCH MTS0 31697016 SKIPXCS LA R3,14 GET TMSL ERROR MSG CODE MTS0 31698016 B ERREXIT BRANCH MTS0 31699016 ENDTSCHK EQU * MTS0 31700016 L R11,DFTMSL+4 GET TMSL LENGTH VALUE 31705017 LTR R11,R11 Q.IS IT ZERO 31710017 BNZ TMSLERR NO- ERROR 31715017 TMSLOK EQU * 31717017 XCTL EP=IEEDFINC A27259 35717019 SPACE 39717019 NXCSERR EQU * LCS 44400017 LA R3,9 LOAD MESSAGE NUMBER LCS 44600017 B ERREXIT LCS 44800017 ERR4 EQU * A35673 44850020 LA R3,E4 SET ERROR CODE A35673 44900020 B ERREXIT GO TO ERROR EXIT A35673 44950020 ERRAV EQU * MTS0 45100016 LA R4,DFRPLY PT PART FOR MESSAGE INSERT MTS0 46000016 LA R3,6 SET MSG PARTITION EXCEEDS SPACE MTS0 46900016 B ERREXIT EXIT MTS0 47800016 ERRADJ EQU * MTS0 48700016 LA R3,13 SET MSG PARTITIONS NOT ADJACENT MTS0 49600016 ERREXIT XCTL EP=IEEREXIT A27259 50600019 ERRTOT EQU * 52300016 OI BADEFINE,BACHANGE TURN ON CHANGE BIT IN CASE IPL TIME 53200016 * WITH NO CHANGE EXPLICITLY REQSTED. 54100016 LA R4,DFRPLY SET FILL IN PT MTS0 55000016 LA R3,3 SET MSG - TOO LARGE FOR STORAGE MTS0 55900016 CONVERT CVD R15,DFRPLY+8 CONVERT DIFF MTS0 56800016 UNPK DFRPLY(8),DFRPLY+11(5) AND UNPACK MTS0 57700016 OI DFRPLY+7,C'0' SET LOW BYTE ZONE MTS0 58600016 LA R15,DFRPLY MTS0 59500016 ZLEAD CLI 0(R15),C'0' LEADING ZERO? MTS0 60400016 BNE ERREXIT NO BR MTS0 61300016 MVI 0(R15),C' ' MOVE IN BLANK MTS0 62200016 LA R15,1(R15) MTS0 63100016 B ZLEAD MTS0 64000016 HZERO DC F'0' LCS 64300017 SIZEEF DC X'FE0001D0' LCS 64600017 EIGHT DC H'8' LCS 64900017 HAS DC C' HAS ' MTS0 65800016 HTEN DC H'10' TO CVD 1 EXTRA DIGIT A26794 68800019 DATA DFINDATA MTS0 72100016 WORKAREA DSECT 74800016 DS 0F MTS0 75700016 WORK1 DS F LCS 75800017 WORK2 DS F LCS 75900017 LCSIZE DS D LCS HIGH& LOW BOUND LCS 76000017 TRTSTAT DS C CURRENT STATUS LCS 76100017 LCSONLY EQU X'80' TO ALLOW A RE-DEFINITION M1700 76150021 * OF H1 PARTITIONS ONLY M1700 76200021 LOWBND DS F LOW ADJACENT BOUNDRY MTS0 76600016 TOTSZ DS F TOTAL SIZE SLOT MTS0 77500016 SWS DS C SWITCHES MTS0 78400016 ADJSW EQU X'80' ADJACENT COUNT ACTIVE MTS0 79300016 ENDADJ EQU X'40' ADJACENT PROHIBIT SW MTS0 80200016 LOSW EQU X'20' LOW BOUNDRY SET MTS0 81100016 LASTSW EQU X'10' PART. INDIC AS LAST ALREADY TREATED 82000016 XCSMSG EQU X'08' EXCESS MSG SWITCH 82900016 DS 3C MTS0 83800016 PKEYS DS 16C PROTECT KEY FIELDS MTS0 84700016 ECBS DS 52F MTS0 85600016 WLIST DS 52F MTS0 86500016 WALGTH EQU *-WORKAREA MTS0 87400016 CVT DSECT 88300016 CVT 89200016 * 90100016 IEEBASEB 91000016 IEFSD033 91900016 PIBSZ EQU *-IEFSD033 92800016 EJECT 92850021 IEZJSCB 92900021 END 93700016 ./ ADD SSI=03031065,NAME=IEEDFIN4,SOURCE=0 HAS TITLE 'IEEDFIN4 - PARTITION/CLASS LISTING MODULE' 00500015 IEEDFIN4 CSECT 01000015 * 020000,867600 I250 01001019 *235000-246000,320600,322800,324000,327000,328000-329000,365000, 19374 01002019 *370000,395000-397000,400000,402000,403000-404000,435000,927300 19374 01003019 *135059000 MTS0 01004016 *0000070000-075000,090000-095000,595000-600000,610000,670000, XMCS 01005018 * 670300-670400,674350-674450,790000-805000,875000,890000, XMCS 01006018 * 925000-926200,671900,672100-672200 XMCS 01007018 *********************************************************************** 01009015 *********************************************************************** 01018015 * * 01027015 * NAME * 01036015 * IEEDFIN4 * 01045015 * * 01054015 *********************************************************************** 01063015 * * 01072015 * FUNCTION * 01081015 * UPON REQUEST TO THE DEFINE ROUTINES TO LIST THE PARTITION SIZES, * 01090015 * CLASSES BEING SERVICED, AND THE TIME SLICE INFORMATION. * 01099015 * * 01108015 *********************************************************************** 01117015 *********************************************************************** 01126015 * ENTRY * 01135015 * IEEDFIN4 FROM IEEDFIN1 FOR AN IPL LIST REQUEST * 01144015 * FROM IEEDFIN2 IF LIST INGS AREA REQUESTED IN A REPLY * 01153015 * * 01162015 *********************************************************************** 01171015 * INPUT * 01180015 * REG6 POINTS TO THE INTERNAL DATA AREA * 01189015 * * 01198015 *********************************************************************** 01207015 *********************************************************************** 01216015 * OUTPUT * 01225015 * REG6 POINTS TO THE INTERNAL DATA AREA * 01234015 * * 01243015 *********************************************************************** 01252015 * * 01261015 * EXIT * 01270015 * TO IEEDFIN5 IF END HAS NOT BEEN INDICATED * 01279015 * TO IEEDFIN3 IF END HAS BEEN INDICATED. * 01288015 * * 01297015 *********************************************************************** 01306015 *********************************************************************** 01315015 * EXTERNAL REFERENCES * 01324015 * MASTER SCHEDULER DATA AREA(IEEBASEB) * 01333015 * * 01342015 *********************************************************************** 01351015 *********************************************************************** 01360015 * ERROR CONDITIONS * 01369015 * NONE * 01378015 * * 01387015 *********************************************************************** 01396015 * * 01405015 * NOTES * 01414015 * THE LISTING INFORMATION IS WRITTEN FROM THIS MODULE AND NOT * 01423015 * THE GENERAL MESSAGE MODULE IEEDFIN5 * 01432015 * 01435018 * ALL MESSAGES ARE SENT TO REQUESTING CONSOLE WITH DESC 4 & 5 XMCS* 01438018 * * 01441015 * REG2 INDICATES CONTINUE DEFINITION MESSAGE TO IEEDFIN5 IF * 01450015 * EXIT IS MADE TO THAT ROUTINE * 01459015 * * 01468015 *********************************************************************** 01477015 *********************************************************************** 01486015 REGEQU 01500015 N0 EQU 0 19374 01700019 N1 EQU 1 19374 01900019 CCOM EQU C',' 19374 02100019 * 2 INDIVIDUAL PARTITION ENTRY BASE 02500015 * R6 DATA AREA BASE 03000015 * R7 PROGRAM BASE 03500015 USING CVT,R3 04000015 USING BASE,R4 04500015 USING DATA,R6 05000015 * 05500015 BALR R7,0 06000015 USING *,R7 SET PROGRAM BASE 06500015 SR R12,R12 07000015 XC DFRECB(100),DFRECB CLAER WORKAREA FOR WTO XMCS 07200018 MVC DFRECB+2(10),MSGPART+2 SET UP MSGFLAGS & MSG ID XMCS 07400018 * FOR PARTITION LIST XMCS 07600018 IC R12,DFPMAX GET MAXIMUM PARTITION NUMBER. 08000015 LA R12,1(R12) ADD ONE FOR INDEX LOOP. 08500015 LA R8,DFRPLY+72 SET BASE FOR CLASS MSG CONSTRUCTION 10000015 LA R2,DFTAB+8 BASE FOR TABLE INDEX LCS 10200017 USING PSIZE,R2 LCS 10400017 L R3,CVTPTR LCS 10600017 L R4,CVTMSER LCS 10800017 NI DFSTAT,255-(DFEOB+DFMULT) SET FOR LOOP OR WTO INDIC & 11300015 * CLEAR CLASS BLOCK SWITCH 11600015 LA R11,0 INITIALIZE PARTITION NUMBR 12000015 EJECT 12060019 * THE FOLLOWING CODE SETS UP MESSAGE IEE804I FOR LISTING OF 19374 12120019 * PARTITIONS. THE MESSAGE HAS THE FORM- 19374 12180019 * PN=( CLASS, HOSIZE, H1SIZE ) - FOR EACH ACTIVE PARTN 19374 12240019 * 19374 12300019 * OR PN=(INACTIVE) - FOR EACH INACTIVE PARTITION 19374 12360019 SPACE 2 12420019 RENEW LA R3,DFRPLY+8 SET BASE FOR PART.MSG CONSTRUCTION 12500015 CONTIN EQU * 13000015 XC DFWKAREA(1),DFWKAREA CLEAR FOR TEMP STATUS INFO LCS 13200017 TM DFSTAT,DFLIST LIST REQUESTED? 13500015 BO NOBLK BR YES 14000015 LA R3,DFRPLY+8 ELSE DUMMY THE MESSAGE 14500015 NOBLK EQU * 15000015 LA R9,1 SET UP FOR BCT MTS0 15030016 NOBLK1 EQU * MTS0 15060016 MVI 0(R3),C'P' SET PARTITION 15500015 LA R3,1(R3) PT TO PART. NUMBER SLOT 16000015 CVD R11,DFRPLY+56 16500015 LA R11,1(R11) 17000015 OI DFRPLY+63,X'0F' SET LOW BYTE ZONE NITS 17500015 TM DFRPLY+62,X'0F' TWO DIGITS? 18000015 BZ ONEDG BR NO. 18500015 UNPK 0(2,R3),DFRPLY+62(2) MOVE IN PARTITION NUMBERS (TWO) 19000015 LA R3,1(R3) UPDATE MSG SLOT PT. 19500015 B SETLP 20000015 ONEDG EQU * 20500015 UNPK 0(1,R3),DFRPLY+63(1) MOVE PART NUMBER - ONE NUMBER. 21000015 SETLP EQU * 21500015 LA R3,1(R3) UPDATE MSG FILLIN PT. 22000015 BCT R9,TSMSG1 MTS0 22100016 MVC 0(2,R3),LP MOVE IN =(. 22500015 LA R3,2(R3) UPDATE MSG FILLIN PT. 23000015 L R0,PSIZE 19374 23050019 LTR R0,R0 SIZE EQUAL ZERO- 19374 23100019 BE SETIA YES-GO SET INACTIVE 19374 23150019 B NOLCS GO SET UP CLASSES 19374 23200019 TRYSIZ EQU * 19374 23250019 MVI N0(R3),CCOM MOVE COMMA AFTER CLASS 19374 23300019 LA R3,N1(R3) SET NEXT MSG ENTRY PTR 19374 23350019 NOCOM EQU * 19374 23400019 LH R0,PSIZE GET H0 SIZE 19374 23450019 LTR R0,R0 SIZE EQUAL ZERO LCS 24700017 BZ LCS2 YES. TRY SECOND PASS LCS 24800017 SPACE 24820019 * CONVERT H0 OR H1 SIZE TO EBCDIC 19374 24840019 SPACE 24860019 LCS15 EQU * LCS 24900017 SLL R0,8 MULTIPLY BY 2K 25000015 CVD R0,DFRPLY+56 CONVERT TO DECIMAL 25500015 UNPK 0(8,R3),DFRPLY+59(5) UNPACK INTO MSG SPACE 26000015 LA R1,8 SET BCT COUNT TO EDIT SIZE 26500015 OI 7(R3),C'0' SET ZONE ON LAST DIGIT. 27000015 LR R15,R3 SET SUBJECT REG. 27500015 EQZERO CLI 0(R15),C'0' LEADING ZERO? 28000015 BNE GTZERO NO. BR. 28500015 LA R15,1(R15) UPDATE SUBJECT PT 29000015 BCT R1,EQZERO LOOP TO CHECK NEXT LEADING CHARAC. 29500015 GTZERO EQU * 30000015 LR R0,R1 SAVE LENGTH 30500015 BCTR R1,0 SET FOR EXECUTE 31000015 EX R1,DIGIT SHIFT TO REMOVE LEADING ZEROES. 31500015 AR R3,R0 UPDATE TO NEXT SUBJECT SLOT. 32000015 LCS2 EQU * LCS 32020017 TM BASFL2,BALCS LCS IN SYSTEM LCS 32040017 BZ TRYLAST NO-SKIP LCS INDICATOR 19374 32060019 TM DFWKAREA,X'80' FIRST PASS LCS 32080017 BO NOLCS1 NO. SET H1 AND CONTINUE LCS 32100017 OI DFWKAREA,X'80' SET SECOND PASS INDICATER LCS 32120017 CLC PSIZE(2),HZERO ANY HSS SIZE LCS 32140017 BE LCS3 DON'T SET H0 INDICATER LCS 32160017 MVC 0(3,R3),H0 SET HIERARCHY ZERO LCS 32180017 LA R3,3(R3) UPDATE MSG PTR LCS 32200017 LCS3 EQU * LCS 32220017 LH R0,PLCSIZE LCS SIZE LCS 32240017 LTR R0,R0 ANY LCS LCS 32260017 BZ TRYLAST NO-PROCESS ONLY HSS 19374 32280019 MVI 0(R3),C',' MOVE COMMA TO MESSAGE LCS 32300017 LA R3,1(R3) UPDATE MSG POINTER TO NEXT LCS 32320017 B LCS15 PROCESS '1 LCS 32340017 NOLCS1 EQU * LCS 32360017 LTR R0,R0 ANY SIZE LCS 32380017 BZ TRYLAST NO-DONT INDICATE HIAR 19374 32440019 MVC 0(3,R3),H1 INDICATE HIERARCHY ONE LCS 32500017 LA R3,3(R3) UPDATE MSG PTR LCS 32600017 B TRYLAST GO CHECK FOR LAST PARTN 19374 32650019 SPACE 32680019 * CHECK FOR A READER PARTITION 19374 32710019 SPACE 32740019 NOLCS EQU * 19374 32770019 LA R15,3 SET BCT LOOP 33500015 LA R14,PCLASS+2 HIGHEST PRIORITY CLASS LCS 34000017 CLI 0(R14),C'R' READER? 34500015 BNE TRYWTR BR. NO 35000015 MVC 0(3,R3),RDR MOVE RDR TO MSG. 35500015 LA R3,3(R3) UPDATE SUBJECT PT. 36000015 B TRYSIZ GO SET UP SIZE 19374 36500019 SPACE 36700019 * CHECK FOR A WRITER PARTITION 19374 36900019 SPACE 37100019 TRYWTR EQU * 19374 37300019 CLI 0(R14),C'W' WRITER 37500015 BNE TRYCLAS NO BR 38000015 MVC 0(3,R3),WTR MOVE WTR TO MSG. 38500015 LA R3,3(R3) UPDATE SUBJECT PT. 39000015 B TRYSIZ GO SET UP SIZE 19374 39500019 SPACE 39600019 * CHECK FOR CLASSES FOR THIS PARTITION 19374 39700019 * CONVERT CLASS FROM ITS HEX IDENTIFIER TO EBCDIC 19374 39800019 SPACE 39900019 TRYCLAS EQU * 19374 40000019 TM DFSTAT,DFMULT BLOCK OF CLASSES? 40100015 BO NOCOM YES-GO CHECK FOR SIZE 19374 40200019 SR R1,R1 40500015 IC R1,0(R14) GET CLASS NUMBER 41000015 LA R13,39 SET TO CALCULATE INDEX 41500015 LNR R13,R13 INTO CLASS MSG 42000015 AR R13,R1 ADD TO GET INDEX OF 1 THRU 15 42500015 CLI 0(R14),X'00' ANY CLASS? 43000015 BE TRYSIZ NO-GO SET UP SIZE 19374 43500019 CLI 0(R14),X'31' CLASS=I? 44000015 BL CONLY NO - ONLY ADD C ZONE 44500015 LA R1,7(R1) ELSE PREPARE AS D ZONE CHARACTER 45000015 CONLY EQU * 45500015 LA R1,153(R1) - ADD X'C0' 46000015 STC R1,0(R3) STORE PRINTABLE CHAR TO MSG 46500015 STC R1,0(R13,R8) STORE CHARAC TO CLASS MSG 47000015 LA R3,1(R3) PT NEXT SLOT 47500015 BCTR R14,0 LOOK AT NEXT CLASS. 48000015 BCT R15,TRYCLAS LOOP IF MORE 48500015 B TRYSIZ GO SET UP SIZE 19374 48700019 NOCL EQU * 49000015 TRYLAST EQU * 49500015 TM PSTAT,PLAST LAST PART? 50000015 BZ NOTLAST NO BR. 50500015 MVC 0(5,R3),LAST MOVE IN LAST 51000015 OI DFSTAT,DFMULT SET TO BLOCK CLASSES 51200015 LA R3,5(R3) UPDATE SLOT. 51500015 CYCLE EQU * 52000015 NOTLAST EQU * 52500015 MVC 0(2,R3),RP MOVE IN RIGHT PAREN. 53000015 LA R3,2(R3) UPDATE SLOT 53500015 LA R2,8(R2) INDEX TO NEXT PART.SLOT. 54000015 TM DFSTAT,DFLIST LIST REQUESTED? 54500015 BZ CHKLAST 55000015 XI DFSTAT,DFEOB LIST THIS TIME? 55500015 TM DFSTAT,DFEOB LIST IF BIT OFF AFTER EXCL OR, OR ELS 56000015 BC 7,CHKLAST CHECK FOR LAST 56500015 BAL R10,WTOMSG 57000015 BCT R12,RENEW 57500015 EJECT 57600019 * THE FOLLOWING CODE SETS UP MESSAGE IEE816I FOR A LISTING OF 19374 57700019 * CLASSES ASSOCIATED WITH THE ACTIVE PARTITIONS 19374 57800019 SPACE 57900019 GOCLAS EQU * 58000015 TM DFSTAT,DFCLASS CLASS LISTING REQUESTED? 58500015 BC 8,TRYTMSL MTS0 59000016 MVC DFRECB+4(16),MSGCLAS+4 SET UP MSG ID AND CLASSES= XMCS 59300018 * FOR THE CLASS LIST XMCS 59600018 * MSGFLAGS ARE SAME XMCS 59900018 LA R14,15 SET NO. OF CLASSES FOR LOOP 60500015 LA R15,DFRECB+20 SET PTR IN MSG WORKAREA XMCS 60800018 SR R1,R1 ZERO CLASS COUNT 61200015 CLSLOOP EQU * 61500015 CLI 1(R8),X'00' CLASS PRESENT? 62000015 BZ BCTLP 62500015 MVC 0(1,R15),1(R8) MOVE IN CLASS. 63000015 LA R15,1(R15) UPDATE SLOT 63500015 LR R1,R15 INDICATE CLASS WAS PRESENT 63700015 BCTLP EQU * 64000015 LA R8,1(R8) UPDATE SUBJECT 64500015 BCT R14,CLSLOOP LOOP IF MORE CLASSES. 65000015 LTR R1,R1 ANY CLASSES? 65080015 BNZ PCLAS BR YES 65160015 MVC 0(4,R15),NONE SET NONE IN MESSAGE 65240015 LA R15,4(R15) AND ADJUST LENGTH 65320015 PCLAS EQU * 65400015 LA R1,DFRECB SET WTO BUF PT. 65500015 MVC 0(4,R15),MSGCLAS+22 SET UP DESC & ROUTE CODES XMCS 65700018 SR R15,R1 GET LENGTH 66000015 STH R15,DFRECB SET LENGTH 66500015 XR R0,R0 CLEAR REGISTER XMCS 66600018 IC R0,BADEFID INSERT CONSOLE ID FOR WTO/R XMCS 66700018 WTO MF=(E,(1)) EXECUTE CLASS LISTING MSG XMCS 66800018 TRYTMSL EQU * MTS0 67005016 TM DFXXA,DFTSLC REQUEST FOR A T/S LIST MTS0 67010016 BC 8,TRYEND DON'T LIST T/S MTS0 67015016 XI DFXXA,DFTSLC TURN OFF LIST BIT MTS0 67020016 LISTIT EQU * MTS0 67025016 MVC DFRECB+4(13),MSGTMSL+4 SET UP MSG ID AND TMSL= XMCS 67029018 * FOR THE TMSL LIST XMCS 67033018 * MSGFLAGS ARE SAME XMCS 67037018 LA R3,DFRECB+17 SET PTR IN MSG WORKAREA XMCS 67041018 TM DFXXA,X'20' IS TIME SLICING SUPPORTED MTS0 67045016 BC 1,NOTSUP MTS0 67050016 LA R2,DFTMSL GET POINTER TO T/S TABLE MTS0 67055016 LH R11,2(R2) PICK UP SECOND PARTITION ID ENTRYMTS0 67060016 LTR R11,R11 Q.IS THERE ANY MTS0 67065016 BC 8,NOTSPEC GO WRITE NO TMSL SPECIFIED CURRENTLY 67070016 LH R11,0(R2) GET FIRST PARTITION NUMBER MTS0 67075016 * MTS0 67080016 * SET UP TO CONVERT PARTITION NUMBER INTO MSG SLOT MTS0 67085016 * MTS0 67090016 LA R10,1 SET BRANCH CONTROL MTS0 67095016 LA R9,2 SET UP FACTOR FOR CVT RTN CONTROLMTS0 67100016 BC 15,NOBLK1 GO TO CONVERT PARTITION NUMBER MTS0 67105016 TSMSG1 EQU * MTS0 67110016 BCT R10,TSMSG2 IF DONE SECOND GO TO SLICE INSERTION 67115016 MVI 0(R3),C'-' INSERT DASH AFTER NUMBER MTS0 67120016 LA R3,1(R3) GET PTR TO NEXT MSG SLOT MTS0 67125016 LH R11,2(R2) GET SECOND PARTITION NUMBER MTS0 67130016 LA R9,2 SET UP CONTROL MTS0 67135016 LA R10,2 MTS0 67140016 BC 15,NOBLK1 GO CONVERT SECON PARTITION NUMBERMTS0 67145016 * MTS0 67150016 NOTSPEC MVC 0(4,R3),NONE INSERT 'NONE' IN MESSAGE MTS0 67155016 LA R3,4(R3) UPDATE MESSAGE SIZE MTS0 67160016 BC 15,WRTNONE MTS0 67165016 * MTS0 67170016 * MTS0 67175016 NOTSUP LA R2,8 MTS0 67180016 SR R3,R2 SUBTRACT 8 FROM MESSAGE MTS0 67185016 MVC 0(48,R3),NSUP+9 MOVE IN MESSAGE XMCS 67190018 LA R3,48(R3) UPDATE MESSAGE POINTER MTS0 67195016 B WRTNONE WRITE IT MTS0 67200016 * MTS0 67205016 * MTS0 67225016 * THE RANGE OF PARTITIONS HAS BEEN INSERTED INTO THE MESSAGE MTS0 67230016 * THE LENGTH OF THE TIME SLICE WILL NOW BE INSERTED. IT HAS ALREADY 67235016 * BEEN CONVERTED TO TIMER UNITS EITHER BY NIP IF ITS LIST AT IPL TIME 67240016 * OR BY IEEDFIN2 IF AT DYNAMIC REDEFINITION TIME. MTS0 67245016 * IT MUST BE CONVERTED TO MILLISECONDS AND THAN CONVERTED TO A DECIMAL 67250016 * NUMBER OF MILLISECONDS AND INSERTED IN THE MESSAGE AREA. MTS0 67255016 * MTS0 67260016 TSMSG2 MVI 0(R3),C',' INSERT COMMA IN REPLY MTS0 67265016 LA R5,1(R3) SAVE BUFFER POINTER MTS0 67270016 * MTS0 67275016 * MTS0 67280016 L R11,4(R2) GET CURRENT T/SLICE VALUE MTS0 67285016 LA R11,0(R11) SET UP MULTIPLICAND MTS0 67290016 LR R3,R5 RESTORE BUFFER POINTER MTS0 67295016 LA R5,26 MICROSECONDS PER TIMER UNIT MTS0 67300016 * MTS0 67305016 MR R10,R5 TIMER UNITS*.026 MS. MTS0 67310016 LA R5,1000 MTS0 67315016 DR R10,R5 DIVIDE BY 1000 MTS0 67320016 LA R5,500 CHECK FOR REMAINDER MTS0 67321016 CR R5,R10 LESS THAN 50 PCT MTS0 67322016 BH NOEXTRA BRANCH MTS0 67323016 LA R11,1(R11) OTHERWISE ADD ONE MTS0 67324016 NOEXTRA CVD R11,DFRPLY+56 CONVERT SLICE MTS0 67325016 L R11,DFRPLY+60 MTS0 67330016 SLL R11,4 MTS0 67335016 ST R11,DFRPLY+60 MTS0 67340016 XI DFRPLY+63,X'FF' MTS0 67345016 SLL R11,8 MTS0 67350016 ST R11,DFRPLY+56 MTS0 67355016 UNPK DFRPLY+56(5),DFRPLY+56(3) MTS0 67360016 * MTS0 67365016 * PREPARE TO MOVE LENGTH OF SLICE INTO MESSAGE MTS0 67370016 * MTS0 67375016 LA R5,4 SET UP FOR SCAN LOOP MTS0 67380016 LA R12,DFRPLY+56 GET PTR TO CONVERTED SLICE MTS0 67385016 * MTS0 67390016 TSTCHAR TM 0(R12),X'0F' IS NEXT CHAR A 'F0' MTS0 67395016 BC 5,MVCHAR NO MOVE NUMBER TO BUFFER MTS0 67400016 LA R12,1(R12) MTS0 67405016 BCT R5,TSTCHAR GO TEST NEXT CHARACTER MTS0 67410016 * MTS0 67415016 MVCHAR EX R5,MVSLC GO MOVE SLICE TO MESSAGE MTS0 67420016 LA R3,0(R5,R3) ADD BUFFER PNTR TO SLICE SIZE MTS0 67425016 WRTNONE LA R1,DFRECB GET START OF HEADER IN REG 1 67430016 MVC 0(4,R3),MSGTMSL+27 SET UP DESC & ROUTE CODES XMCS 67432018 SR R3,R1 GET LENGTH OF WTO XMCS 67434018 STH R3,DFRECB SET LENGTH XMCS 67436018 XR R0,R0 CLEAR REGISTER XMCS 67438018 IC R0,BADEFID INSERT CONSOLE ID FOR WTO/R XMCS 67440018 WTO MF=(E,(1)) EXECUTE TIME SLICING MSG XMCS 67442018 * MTS0 67450016 TRYEND EQU * 67500015 SR R0,R0 68000015 ST R0,DFRPLY+4 SET DCB 68500015 LA R0,DFRPLY+8 NAME PT 69000015 ST R0,DFRPLY PUT IN PARM LIST 69500015 LA R15,DFRPLY SET XCTL PARM 70000015 MVC DFRPLY+8(8),XCTLNM MOVE IN NAME 70500015 TM DFSTAT,DFEND END? 71000015 BO EXIT 71500015 LA R2,1 SET MSG NO 72000015 MVI DFRPLY+15,C'5' AND MODULE ID 72500015 L R3,CVTPTR GET CVT PT. 73000015 L R4,CVTMSER GET MSER PT. 73500015 TM BADEFINE,BAON IPL TIME? 74000015 BO EXITA BR NO. 74500015 TM BADEFINE,BACHANGE HAS PARTITION CHANGED? 75000015 BO EXITA BR YES. 75500015 MVI DFRPLY+15,C'3' SET FINAL MODULE NAME 76000015 EXITA EQU * 76500015 EXIT EQU * 77000015 NI DFSTAT,255-(DFLIST+DFCLASS) TURN OFF LIST & CLASS INDIC 77500015 SVC 7 XCTL EXIT 78000015 WTOMSG LA R1,DFRECB SET HEADER ADDRESS 78500015 MVC 0(4,R3),MSGPART+39 SET UP DESC & ROUTE CODES XMCS 78800018 SR R3,R1 GET LENGTH OF WTO XMCS 79100018 STH R3,DFRECB SET LENGTH XMCS 79400018 XR R0,R0 CLEAR REGISTER XMCS 79700018 IC R0,BADEFID INSERT CONSOLE ID FOR WTO/R XMCS 80000018 WTO MF=(E,(1)) EXECUTE PARTITION LIST MSG XMCS 80300018 BR R10 81000015 CHKLAST EQU * 81500015 BCT R12,CONTIN IF NOT LAST PART CONTINUE SCAN 82000015 TM DFSTAT,DFLIST LIST REQUESTED? 82500015 BZ GOCLAS IF NO LIST REQ, TRY CLAS 83000015 BAL R10,WTOMSG PUT OUT MESSAGE 83500015 B GOCLAS 84000015 SETIA EQU * 84500015 MVC 0(8,R3),INAC MOVE INACTIVE TO MESSAGE. 85000015 LA R3,8(R3) INCR BUFFER PT 85500015 B CYCLE GO FILL IN NEXT OR WTO 86000015 DIGIT MVC 0(1,R3),0(R15) SUBJECT FOR PACKING MSG W SIZE 86500015 MVSLC MVC 0(0,R3),0(R12) M MOVE SLICE INOT MESSAGE MTS0 86600016 HZERO DC F'0' LCS 86680017 H0 DC C' H0' LCS 86840017 H1 DC C' H1' LCS 86920017 XCTLNM DC C'IEEDFIN3' 87000015 CLSTAB DC C'ABCDEFGH' CLASS CONVERSION 88000015 DC C'IJKLMNO' TABLE 88500015 LAST DC C',LAST' 89500015 RDR DC C'RDR' READER 90000015 WTR DC C'WTR' WRITER 90500015 INAC DC C'INACTIVE' 91000015 LP DC C'=(' 91500015 RP DC C'),' 92000015 NONE DC C'NONE' 92700015 MSGPART WTO 'IEE804I P =(CL,SIZE),P =(CL,SIZE)', 19374X92730019 MF=L,DESC=(4),MCSFLAG=(REG0,RESP) WMCS 92760018 MSGCLAS WTO 'IEE816I CLASSES= ', XMCS*92790018 MF=L,DESC=(4),MCSFLAG=(REG0,RESP) WMCS 92820018 MSGTMSL WTO 'IEE817I TMSL=P -P , ', XMCS*92850018 MF=L,DESC=(4),MCSFLAG=(REG0,RESP) WMCS 92880018 NSUP WTO 'IEE819I TIME SLICING IS NOT SUPPORTED IN THIS SYSTEM ',*92910018 MF=L,ROUTCDE=(1),DESC=(5),MCSFLAG=(REG0,RESP) HMCS 92940018 DATA DFINDATA 93000015 IEEBASEB 93500015 CVT DSECT 94000015 CVT 94500015 END 95000015 ./ ADD SSI=05032054,NAME=IEEDFIN5,SOURCE=0 HAS TITLE 'IEEDFIN5 DEFINE COMMAND MESSAGE MODULE' 00500015 * 01000015 IEEDFIN5 CSECT 01500015 * A 215500-216500 D 280000-290000 SA69825 01500221 * M0117 01500421 * A 241900-242000 SM4163 01500821 * 025000 I250 01501019 *2213055000-095000,105000-110000,130000-160000,190000-1950008 XMCS 01502018 * 210000-215000,225000-245000,295000-305000,323700-325800, XMCS 01504018 * 425000,465000,485000,525000,650000-899200,900000,910000 XMCS 01506018 *********************************************************************** 01510015 *********************************************************************** 01520015 * * 01530015 * NAME * 01540015 * IEEDFIN5 * 01550015 * * 01560015 *********************************************************************** 01570015 * * 01580015 * FUNCTION * 01590015 * THE GENERAL LISTING MODULE FOR THE DEFINE ROUTINES * 01600015 * * 01610015 *********************************************************************** 01620015 * * 01630015 * ENTRY * 01640015 * IEEDFIN5 FROM IEEDFIN1 IF CHANGES HAVE BEEN REQUESTED AT IPL * 01650015 * BUT NOT LIST * 01660015 * IEEDFIN5 FROM IEEDFIN1 IF CHANGES ARE REQUESTED * 01670015 * FROM IEEDFIN2 OR 7 IF SYNTAX ERRORS ARE ENCOUNTERED OR MORE XMCS* 01680018 * INFORMATION IS TO BE REQUESTED * 01690015 * IEEDFIN4 IF LIST, BUT NOT END HAS BEEN SPCCIFIED * 01700015 * FROM IEEDFIN3 OR 8 ALWAYS XMCS* 01710018 * * 01720015 *********************************************************************** 01730015 * * 01740015 * INPUT * 01750015 * REG2 INDICATES A MESSAGE NUMBER REG4 POINTS TO INSERTION INFIRMATIO* 01760015 * IF THE MESSAGE IN REG2 REQUIRES IT. * 01770015 * REG6 POINTS TO THE INTERNAL DATA AREA * 01780015 * * 01790015 *********************************************************************** 01800015 * * 01810015 * OUTPUT * 01820015 * REG6 POINTS TO THE INTERNAL DATA AREA * 01830015 * * 01840015 *********************************************************************** 01850015 * * 01860015 * EXIT * 01870015 * TO IEEDFIN2 WHENEVER A WTOR IS ISSUED 01880015 * TO THE CALLER WHEN A NORMAL ENTRY HAS BEEN MADE BY IEEDFIN3 01890015 * 01900015 *********************************************************************** 01910015 * XMCS* 01912018 * NOTES XMCS* 01914018 * ALL MESSAGES ARE SENT TO REQUESTING CONSOLE WITH DESC 4 &/OR 5 XMCS* 01916018 * XMCS* 01918018 *********************************************************************** 01920015 REGEQU 02000015 WKSIZ EQU 96 03000015 L R5,CVTPTR GET CVT PTR XMCS 03100018 USING CVTD,R5 XMCS 03200018 L R5,CVTMSER GET MAST SCHED RES DATA PTR XMCS 03300018 USING BASE,R5 XMCS 03400018 USING DATA,R6 03500015 * 04000015 BALR R7,0 04500015 USING *,R7 SET PROGRAM BASE 05000015 LR R8,R4 SAVE INPUT POINTER 05200018 MVI DFRECB,X'00' CLEAR ECB 10000015 LR R3,R2 SET FOR MSG FILL XMCS 10700018 NXTMSG EQU * 11500015 SLL R2,2 SHIFT TO GET TABLE INDEX 12000015 LA R2,TAB(R2) GET TABLE POSITION 12500015 LH R1,2(R2) GET OFFSET TO MSG WTO LIST XMCS 13100018 LA R1,MSG(R1) ADDR LIST FORM IN REG1 XMCS 13700018 * FOR THE EXECUTE WTO FORM XMCS 14300018 XR R0,R0 CLEAR REGISTER XMCS 14900018 IC R0,BADEFID INSERT CONSOLE ID FOR WTO/R XMCS 15500018 TM 0(R2),X'20' 16500015 BZ NOFILL BR NO 17000015 SR R9,R9 17500015 IC R9,1(R2) GET FILL OFFSET - NOTE 3 HIGH 18000015 * BYTES OF R9 ARE CLEAR. 18500015 LA R9,0(R1,R9) AND ADDR PT IN WTO LIST XMCS 18900018 IC R12,FILLNUM(R3) GET NO CHAR-1 TO BE FILLED XMCS 19300018 BCTR R12,0 19700015 EX R12,FILL 20000015 TM 0(R2),X'04' EXCESS MESSAGE INDICATED LCS 20040017 BZ NOFILL NO - SKIP CHECKS FOR HIERARCHY LCS 20080017 CLI 15(R4),C'0' IS THIS H0 EXCESS LCS 20120017 BNE H1XCS NO - TRY H1 EXCSS LCS 20160017 MVI 53(R1),C'0' YES-MOVE '0' TO MESSAGE LCS 20200018 B NOFILL AND CONTINUE LCS 20240017 H1XCS EQU * LCS 20280017 CLI 15(R4),C'1' IS THIS H1 EXCESS LCS 20320017 BNE NOFILL NO - NOT EXCESS BYTES MESSAGE LCS 20360017 MVI 53(R1),C'1' YES-MOVE '1' TO MESSAGE LCS 20430018 NOFILL EQU * 20500015 LR R3,R1 SAVE POINTER TO WTO/R BUFFER M0117 20550021 TM 0(R2),X'80' 20700018 BO WTOR GOTO WTOR EXECUTE XMCS 20900018 WTO MF=(E,(1)) EXECUTE WTO MESSAGE XMCS 21100018 B OTHERMSG XMCS 21300018 WTOR EQU * XMCS 21500018 MVI DFRPLY,C' ' BLANK OUT SA69825 21550021 MVC DFRPLY+1(RPLYSZ-1),DFRPLY REPLY AREA SA69825 21600021 MVI DFRECB,X'00' CLEAR FOR WAIT SA69825 21650021 LA R12,DFRPLY SET REPLY PTR XMCS 21700018 ST R12,0(R1) IN PARM FIELD XMCS 21900018 LA R12,RPLYSZ SET MAX REPLY SIZE XMCS 22100018 STC R12,0(R1) IN PARM FIELD XMCS 22300018 LA R12,DFRECB SET PTR TO REPLY ECB XMCS 22500018 ST R12,4(R1) IN PARM FIELD XMCS 22700018 WTOR MF=(E,(1)) EXECUTE WTOR MESSAGE XMCS 22900018 OTHERMSG EQU * 23100018 LR R1,R3 RESTORE WTO BUFFER POINTER LCS 24030017 TM 0(R2),X'04' EXCESS MESSAGE INDICATED LCS 24060017 BZ CONTIN NO - SKIP CHECK FOR NEXT MSG LCS 24090017 CLI 53(R1),C'0' WAS THAT THE H0 EXCESS MSG LCS 24120018 BNE CONTIN NO - NO OTHER TO GO SO CONTINUE LCS 24150017 LA R4,16(R4) UPDATE FILL POINTER LCS 24180017 TM BASFL2,BALCS IS HIERARCHY SYSGEN'D SM4163 24190021 BZ CONTIN NO. DONT CHECK FOR H1 EXCESS SM4163 24200021 CLI 15(R4),C'1' IS THERE H1 EXCESS FOR MSG LCS 24210017 BNE CONTIN NO - NO OTHER WTO FOR EXCESS MSG LCS 24240017 MVI 53(R1),C'1' YES-MOVE '1' FOR H1 EXCESS LCS 24270018 EX R12,FILL MOVE NEW FILL IN FOR H1 EXCESS MSGLCS 24300017 B NOFILL BR TO PUT OUT H1 EXCESS MSG LCS 24330017 CONTIN EQU * LCS 24360017 LR R4,R8 RESTORE INPUT POINTER 24460018 LA R15,11 MASK TO TEST LOW FOUR BITS FOR LCS 24590017 * NEXT MESSAGE NO LCS 24790017 LR R10,R2 SAVE PT TABLE ENTRY 25200015 IC R2,0(R2) FOR SECOND MSG ID 25500015 NR R2,R15 IF ZERO THEN NO SECOND MSG 26000015 BZ AHED WILL BE WRITTEN. 26500015 L R15,CVTPTR GET CVT POINTER MTS0 26540016 * CHECK FOR TMSL ERROR MTS0 26580016 USING CVTD,R15 MTS0 26620016 L R15,CVTTSCE GET ADDR OF TSCE MTS0 26660016 LTR R15,R15 Q.IS TIME-SLICING IN SYSTEM MTS0 26700016 BZ NXTMSG NO- SKIP TIME-SLICE CHECK MTS0 26740016 DROP R15 YES- MTS0 26780016 USING TSCE,R15 MTS0 26820016 TM TSLENGTH,X'02' Q.TMSL SPEC ERROR & EXCESS MSG MTS0 26860016 BZ NXTMSG NO-BRANCH FOR COMPLETED MSG MTS0 26900016 LA R2,14 YES-SET UP TMSL ERROR MSG MTS0 26940016 XI TSLENGTH,X'02' TURN OFF EXCESS MSG BIT W/TMSL MTS0 26960016 * SPEC ERROR 26980016 B NXTMSG 27000015 AHED EQU * 27500015 TM 0(R10),X'50' RECYCLE OR RETURN? 31000015 BZ XCTL BR NO-XCTL.INSTEAD 31500015 L R13,DFSAVE13 GET SAVE ARE PT 32000015 LR R1,R6 SET WORK AREA ADDRESS 32100015 L R0,FREESIZ SET SP254 AND SIZE 32200015 SVC 10 FREEMAIN 32300015 TM BADEFINE,BAON IPL TIME? 32650015 BO NOREC BR NO 32720015 TM 0(R10),X'10' RECYCLE? 32790015 BZ NOREC BR NO 32860015 L R14,12(R13) RESTORE REG 14 32930015 LA R15,XCTLIST PT LIST FOR XCTL 33000015 LM R0,R12,20(R13) RESTORE REMAINING REGISTERS 33070015 SVC 7 XCTL 33140015 XCTLIST XCTL EP=IEEDFIN1,SF=L 33210015 NOREC EQU * 33280015 LM R14,R12,12(R13) RESTORE REGS 33350015 BR R14 33420015 XCTL EQU * 33500015 XCTL EP=IEEDFIN2 34000015 DS 0F 34500015 FREESIZ DC X'FE' SUBPOOL 254 34600015 DC AL3(DFTBSIZ) & SIZE FOR FREEMAIN 34700015 TAB EQU *-4 35000015 * 35500015 DC X'80' 1 STATUS 36000015 * 80= WTOR 36500015 * 40= RETURN,NOT XCTL 37000015 * 20= FILL IN MSG 37500015 * 10=RECYCLE TO IEEDFIN1 AT IPL 37700015 * BITS 4-7 SECOND MSG ID 38000015 DC X'00' OFFSET FOR MSG FILL 38500015 DC AL2(MSG1-MSG) OFFSET TO MSG 39000015 * 39500015 DC X'40' 2 40000015 DC X'00' 40500015 DC AL2(MSG2-MSG) 41000015 * 41500015 DC X'21' 3 42000015 DC AL1(37) 42500018 DC AL2(MSG3-MSG) 43000015 * 43500015 DC X'80' 4 44000015 DC X'00' 44500015 DC AL2(MSG4-MSG) 45000015 * 45500015 DC X'A0' 5 46000015 DC AL1(22) XMCS 46500018 DC AL2(MSG5-MSG) 47000015 * 47500015 DC X'21' 6 48000015 DC AL1(33) XMCS 48500018 DC AL2(MSG6-MSG) 49000015 * 49500015 DC X'80' 7 50000015 DC X'00' 50500015 DC AL2(MSG7-MSG) 51000015 * 51500015 DC X'26' 8 52000017 DC AL1(14) XMCS 52500018 DC AL2(MSG8-MSG) 53000015 * 53500015 DC X'80' 9 54000015 DC X'00' 54500015 DC AL2(MSG9-MSG) 55000015 * 55500015 DC X'10' 10 56000015 DC X'00' 56500015 DC AL2(MSG10-MSG) 57000015 * 57500015 DC X'80' 11 58000015 DC X'00' 58500015 DC AL2(MSG11-MSG) 59000015 * 59500015 DC X'80' 12 60000015 DC X'00' 60500015 DC AL2(MSG12-MSG) 61000015 DC X'80' 61500015 DC X'00' 62000015 DC AL2(MSG13-MSG) 62500015 DC X'80' MTS0 62570016 DC X'00' MTS0 62640016 DC AL2(MSG14-MSG) MTS0 62710016 DC X'80' MTS0 62780016 DC X'00' MTS0 62850016 DC AL2(MSG15-MSG) MTS0 62920016 * 62930018 DC X'80' 62940018 DC X'00' 62950018 DC AL2(MSG16-MSG) 62960018 * 63000015 * 63500015 * 64000015 MSG EQU * 64500015 MSG1 WTOR 'IEE803A CONTINUE DEFINITION', XMCS*65200018 MF=L,DESC=(2),MCSFLAG=(REG0,RESP) WMCS 65900018 MSG2 WTO 'IEE805I DEFINITION COMPLETED',MF=L, XMCS*66600018 DESC=(4),MCSFLAG=(BRDCST) WMCS 67300018 MSG3 WTO 'IEE806I TOTAL SIZE OF PARTITIONS -------- BYTES TOO LAR?68000018 GE FOR STORAGE',MF=L,DESC=(4),MCSFLAG=(REG0,RESP) HMCS 68700018 MSG4 WTOR 'IEE807A DEFINITION PARAMETER ERROR, REPLY AGAIN', XMCS*69400018 MF=L,DESC=(2),MCSFLAG=(REG0,RESP) WMCS 70100018 MSG5 WTOR 'IEE808A P -- NOT DEFINABLE - REPLY AGAIN', XMCS*70800018 MF=L,DESC=(2),MCSFLAG=(REG0,RESP) WMCS 71500018 MSG6 WTO 'IEE809I SIZE DEFINITION OF P -- OR LOWER EXCEEDS AVAILA*72200018 BLE SPACE',MF=L,DESC=(5),MCSFLAG=(REG0,RESP) XMCS 72900018 MSG7 WTOR 'IEE810A PROBLEM PROGRAM PARTITIONS EXCEED 15,RESPECIFY'*73600018 ,MF=L,DESC=(2),MCSFLAG=(REG0,RESP) WMCS 74300018 MSG8 WTO 'IEE812I P -- HAS -------- EXCESS BYTES ADDED IN H ', *75000018 MF=L,DESC=(4),MCSFLAG=(REG0,RESP) WMCS 75700018 MSG9 WTOR 'IEE822A NO PARTITION SPECIFIED FOR EXCESS BYTES, RESPEC*76400018 IFY',MF=L,DESC=(2),MCSFLAG=(REG0,RESP) LCS 77100018 MSG10 WTO 'IEE814I DEFINITION CANCELLED',MF=L, WMCS*77800018 DESC=(4),MCSFLAG=(BRDCST) WMCS 78500018 MSG11 WTOR 'IEE815A DEFINITION DELIMITER ERROR, REPLY AGAIN', XMCS*79200018 MF=L,DESC=(2),MCSFLAG=(REG0,RESP) WMCS 79900018 MSG12 WTOR 'IEE802A ENTER DEFINITION', XMCS*80600018 MF=L,DESC=(2),MCSFLAG=(REG0,RESP) WMCS 81300018 MSG13 WTOR 'IEE811A CHANGED PARTITIONS NOT ADJACENT, RESPECIFY', *82000018 MF=L,DESC=(2),MCSFLAG=(REG0,RESP) WMCS 82700018 MSG14 WTOR 'IEE818A TMSL SPECIFICATION NOT ACCEPTABLE, RESPECIFY', *83400018 MF=L,DESC=(2),MCSFLAG=(REG0,RESP) WMCS 84100018 MSG15 WTOR 'IEE823A TIME SLICING IS NOT SUPPORTED - REPLY AGAIN', X84800018 MF=L,DESC=(5),MCSFLAG=(REG0,RESP) XMCS 85500018 MSG16 WTOR 'IEE823A MAIN STORAGE HIERARCHY IS NOT SUPPORTED - REPLYX86000018 AGAIN',MF=L,DESC=(5),MCSFLAG=(REG0,RESP) M0420 86500018 FILLNUM EQU *-1 TABLE FOR INDEXING NO. OF XMCS 87200018 DC X'0000' BITS IN A MSG TO FILL IN XMCS 87500018 DC AL1(8) XMCS 87800018 DC X'00' MSG3 - FILLNUM+3 8BITS XMCS 88100018 DC AL1(2) MSG5 - FILLNUM+5 2BITS XMCS 88400018 DC AL1(2) MSG6 - FILLNUM+6 2BITS XMCS 88700018 DC X'00' MSG8 - FILLNUM+8 15BITS XMCS 89000018 DC AL1(15) XMCS 89300018 DC 2F'0' MSG1,2,4,7,9-15 ARE STATIC XMCS 89600018 FILL MVC 0(1,R9),0(R4) EX. SUBJECT 90500015 LCS DC C'LCS ' 91100017 ZAPP DC 25F'0' LCS 91200017 LCSERR EQU X'40' LCS NOT SUPPORTED INDICATER LCS 91300017 DATA DFINDATA 91500015 IHBTSCE 91550016 CVTD DSECT 91600015 CVT 91700015 IEEBASEB 91800015 END 92000015 ./ ADD SSI=03030562,NAME=IEEDFIN6,SOURCE=0 IEEDFIN6 CSECT 00300016 * A642000-645000 A59612 00400021 * 00600016 * THIS MODULE IS XCTL'D TO BY IEEDFIN2 WHEN A TIME-SLICE 00900017 * CHANGE IS ENTERED AT IPL TIME OR DURING DEFINE TIME 01200017 * 01500017 * 01800016 * 02100016 * 02400016 * 02700016 * 03000016 * 03200017 * ONLY THE FOLLOWING TIME-SLICE REPLIES ARE VALID 03400017 * 03600017 * 03900016 * TMSL=(PI-PJ,NNNN) CHANGES BOTH MEMBERS AND TIME-SLICE 04200016 * 04500016 * TMSL=(PI-PJ) CHANGES ONLY TIME-SLICE MEMBERS 04800016 * 05100016 * TMSL=NNNN CHANGES ONLY LENGTH OF TIME-SLICE 05400016 * 05700016 * TMSL=CANCEL CANCELS TIME SLICING MTS0 06000016 * 06300016 * 06900016 * 07200016 * AT ENTRY TO IEEDFIN6 R4 POINTS TO THE END OF THE REPLY BUFFER 07800016 * R5 POINTS TO CURRENT POSITION IN REPLY 08100016 * R6 POINTS TO DATA AREA BUFFER 08400016 * 09000016 *******************************************************************MTS0 09300016 * MTS0 09600016 * EXIT MTS0 09900016 * MTS0 10200016 * TO IEEDFIN2 AT IEEDPART WHEN TMSL SCAN IS COMPLETE 10800017 * TO IEEDFIN5 IF SPECIFICATION ERROR IS DETECTED. 11400017 * MTS0 12000016 *******************************************************************MTS0 12300016 * 12600016 * 12900016 * 13200016 * 13500016 R0 EQU 0 13800016 R1 EQU 1 14100016 R2 EQU 2 14400016 R3 EQU 3 POINTS TO WORK AREA 14700016 R4 EQU 4 POINTS TO END OF REPLY 15000016 R5 EQU 5 POINTS TO CURRENT REPLY ENTRY 15300016 R6 EQU 6 DEFINE DATA AREA 15600016 R7 EQU 7 BASE REGISTER 15900016 R8 EQU 8 16200016 R9 EQU 9 16500016 R10 EQU 10 16800016 R11 EQU 11 17100016 R12 EQU 12 TCB REG NOT USED IN IEEDFIN6 17400016 R13 EQU 13 17700016 R14 EQU 14 18000016 R15 EQU 15 18300016 * 18600016 USING DATA,R6 20700016 BALR R7,0 SET PROGRAM BASE 21000016 USING *,R7 21300016 LR SAVEPTR,BUFFPTR SAVE PTR TO REPLY FROM CONSOLE 22200017 MVC DFWKAREA(8),DFTMSL INITIALIZE TEMP WORK AREA 23100017 LA BUFFPTR,5(BUFFPTR) INCREMENT PTP TO TMSL DATA 24000017 CR R4,R5 AT EOB 25200016 BC 13,TMSLERR 25300017 CLI 0(R5),C'(' LEFT PAREN NEXT CHARACTER 28500016 BC 8,LFTPAREN YES CONTINE AT LFT PAREN. 28800016 CLC 0(6,R5),CANCEL T/S CANCEL MTS0 29100016 BC 8,ZEROTMSL YES-BRANCH MTS0 29400016 CLI 0(R5),C'9' CHECK MTS0 29700016 BC 2,ERRSTX FOR MTS0 30000016 CLI 0(R5),C'0' SYNTAX MTS0 30300016 BC 4,ERRSTX ERRORS. MTS0 30600016 * THIS CODE CHECKS FOR ONLY SLICE SPECIFICATION 30900016 SLCONLY BAL R10,GETSLICE 31200016 BLANK ST R15,DFTMSL+4 STORE NEW SLICE IN TABLE 31300017 BLANKA MVC DFTMSL(4),DFWKAREA MOVE PARTITION NUMBERS INTO 31400017 * PERMANENT AREA 31500017 LA BUFFPTR,1(BUFFPTR) INCREMENT CURRENT POINTER 31600017 OI DFXXA,X'40' TURN ON TMSL CHANGED BIT 31700017 B NPEXIT EXIT TO IEEDFIN2 31800017 * 32100016 * THIS CODE HANDES MESSAGES OF THE FORM: 32400016 * TMSL=(PI-PJ,NNNN) 32700016 * TMSL=(PI-PJ) 33000016 LFTPAREN LA R5,1(R5) INCREMENT CURRENT REPLY POINTER 33300016 CLI 0(R5),C'P' IS NEXT CHARACTER A P 33600016 BC 7,ERRSTX BRANCH NO-ERROR 33900016 LA R11,CHKDASH 34200016 LA R5,1(R5) INCR. CURRENT PNTR BY 1 34500016 SR R8,R8 34800016 CLI 2(R5),C'-' IS PARTITION PARAMETER FROM 10 TO 99 35100016 BC 8,TWICE YES 35400016 * 35700016 ONCE BAL R10,CHKP VALIDATE PART NO 36000016 IC R8,0(R5) GET CHARACTER 36300016 LA R9,15 SET UP AND MASK 36600016 NR R8,R9 AND OUT ZONE BITS 36900016 CHKMAX SR R9,R9 37200016 IC R9,DFPMAX IS PART ID > THAN MAX IN SYSTEM 37500016 CR R9,R8 37800016 BL TMSLERR 38100017 BR R11 38400016 TWICE BAL R10,CHKP VALIDATE PART NO 38700016 IC R8,0(R5) GET FIRST CHARACTER 39000016 LA R9,15 SET UP MASK 39300016 NR R8,R9 AND OUT ZONES 39600016 LR R15,R8 39900016 LA R14,10 MULT BY TENS DIGIT- QUOTIENT IN R15 40200016 MR R14,R14 40500016 LA R5,1(R5) INC TO UNITS POSITION 40800016 BAL R10,CHKP VALIDATE UNITS POSITION 41100016 IC R8,0(R5) 41400016 LA R9,15 41700016 NR R8,R9 42000016 AR R8,R15 BINARY EQUIVILENT OF PART. NO 42300016 B CHKMAX 42600016 DFLTSLC L R3,CVTPTR LOAD PTR TO CVT WMCS 42700018 USING CVT,R3 WMCS 42800018 L R3,CVTMSER LOAD PTR TO BASEB WMCS 42900018 USING BASE,R3 WMCS 43000018 XR R0,R0 WMCS 43100018 IC R0,BADEFID INSERT CONSOLE ID FOR WTO WMCS 43200018 LA R1,MSGLST ADDRESS PARM LIST FOR WTO WMCS 43300018 WTO MF=(E,(1)) XMCS 43400018 LA R8,20 MINIMUM T/S VALUE MTS0 43500016 DROP R3 43600018 B PICKUP MTS0 43800016 * 44100016 CHKDASH STH R8,DFWKAREA SAVE 1ST PART. NO. IN TEMP AREA 44400017 LA R5,1(R5) INCREMENT TO DASH 44700016 CLI 0(R5),C'-' IS NEXT CHARACTER A DASH 45000016 BC 7,ERRSTX NO BRANCH TO ERROR ROUTINE 45300016 * 45600016 BAL R11,EOBYET 45900016 CLI 0(R5),C'P' IS NEXT CHARACTER A PARTITION=P 46200016 BC 7,ERRSTX NO ERROR 46500016 * 46800016 * DETERMINE IF TMSL=(PI-PJ,NNNN) OR 47100016 * TMSL=(PI-PJ) 47400016 * R5 IS NOW SITTING AT J 47700016 * 48000016 LA R11,LASTPARN IS FORM TMSL=(PI-PJ) 48300016 LA R5,1(R5) AND IS J=2 CHARACTERS 48600016 CLI 1(R5),C')' IS J=1 CHAR MTS0 48900016 BE ONCE YES-BR MTS0 49200016 CLI 2(R5),C')' 49500016 BC 7,CHKCOMMA NO 49800016 B TWICE 50100016 * 50400016 CHKCOMMA CLI 2(R5),C',' IS FORM TMSL=(PI-PJ,NNNN) 50700016 BC 7,ONCE NO AND IS J=2 CHARACTERS 51000016 B TWICE YES 51300016 * 51600016 * 51900016 LASTPARN CH R8,DFWKAREA IS TO PARTITION GREATER THAN 52200017 * FROM PARTITION 52500017 BNH TMSLERR NO -- ERROR 52800017 STOIT STH R8,DFWKAREA+2 YES-STORE 2ND PARTITION NO. IN TBL 53100017 BAL R11,EOBYET 53400016 OI DFXXA,X'40' TURN ON TMSL CHANGED BIT MTS0 53500016 CLI 0(R5),C')' IS NEXT A RIGHT PAREN 53700016 BC 8,BLANKA 53900017 XI DFXXA,X'40' TURN OFF TMSL CHANGED BIT MTS0 54100016 CLI 0(R5),C',' IS IT A COMMA 54300016 BC 8,LKFSLC YES LOOK FOR SLC 54600016 B ERRSTX NO ERROR 54900016 * 55200016 * THE ABOVE CODE IS ENTERED BY 1 OR 2 PARTITION CHARACTERS 55500016 * 55800016 * LKFSLC GETS THE TIME SLICE 56100016 * 56400016 LKFSLC LA R5,1(R5) UPDATE PNTR TO SLICE PARAMETER 56700016 BAL R10,GETSLICE SLICE IS RETURNED IN REG 15 57000016 CLI 0(R5),C')' IS NEXT CHARACTER A PAREN (LEFT) 57300016 BC 8,BLANK 57600016 B ERRSTX 57900016 GETSLICE LA R9,4 SET CHARACTER COUNT 58200016 SR R8,R8 ACCUMULATOR FOR SLICE 58500016 * 58800016 VALCHK CLI 0(R5),C',' IS NEXT CHARACTER A COMMA 59100016 BC 8,CNVTSLC CONVERT SLICE TO TIMER UNITS 59400016 CLI 0(R5),C' ' IS NEXT CHARACTER A BLANK 59700016 BC 8,CNVTSLC CONVERT SLICE 60000016 CLI 0(R5),C')' IS NEXT CHARACTER A RIGHT PAREN 60300016 BC 8,CNVTSLC CONVERT SLICE 60600016 SLL R8,8 SHIFT REGISTER 8 BITS FOR NEXT CHAR 60900016 CLI 0(BUFFPTR),C'9' CHECK 60910017 BC 2,TMSLERR FOR 60920017 CLI 0(BUFFPTR),C'0' SYNTAX 60930017 BC 4,TMSLERR ERRORS 60940017 CLI 0(R5),C'9' CHECK MTS0 60960016 BC 2,ERRSTX FOR MTS0 61020016 CLI 0(R5),C'0' SYNTAX MTS0 61080016 BC 4,ERRSTX ERRORS. MTS0 61140016 IC R8,0(R5) INSERT NEXT CHAR 61200016 BAL R11,EOBYET 61500016 BCT R9,VALCHK CONTINUE TO NEXT CHARACTER 61800016 CLI 0(R5),C',' IS NEXT CHARACTER A COMMA MTS0 62100016 BE CNVTSLC YES-CONVERT SLICE TO TIMER UNITS MTS0 62400016 CLI 0(R5),C')' IS NEXT CHARACTER A RT PAREN MTS0 62700016 BE CNVTSLC YES-CONVERT SLICE TO TIMER UNITS MTS0 63000016 CLI 0(R5),C' ' IS NEXT CHARACTER A BLANK MTS0 63300016 BNE ERRSTX NO-BRANCH-- ERROR-- MTS0 63600016 * TOO MANY CHARACTERS IN SLICE 63900016 CNVTSLC LTR R8,R8 VALID SLICE FORMAT? A59612 64200021 BZ TMSLERR ERROR IN TMSL FORMAT A59612 64300021 ST R8,NEWSLC STORE SLICE A59612 64400021 PACK NEWSLC(8),NEWSLC(4) CONVERT FROM DEC TO PACKED DECIMAL 64500016 CVB R8,NEWSLC CONVERT FROM PACKED DEC TO BINARY 64800016 LA R9,20 IS SPEC > THAN 19 65100016 CR R8,R9 65400016 BL DFLTSLC NO SET UP DEFAULT AND MESSAGE MTS0 65700016 PICKUP LR R15,R8 SET SLICE UP TO MULT BY 1000 AND MTS0 66000016 LA R8,1000 DIVIDE BY .026 FOR TIMER UNITS 66300016 MR R14,R8 PRODUCT RESIDES IN R14 66600016 LA R8,26 66900016 DR R14,R8 OBTAIN TIMER UNITS 67200016 LTR R14,R14 IS THERE A REMAINDER 67500016 BC 8,NOREM NO 67800016 LA R15,1(R15) ADD 1 TO TIMER UNITS 68100016 NOREM ST R15,NEWSLC 68400016 BR R10 RETURN TO CALLER 68700016 CHKP CLI 0(R5),C'9' IS NO > 9 70200016 BH ERRSTX YES ERROR 70500016 CLI 0(R5),C'0' IS NO < 0 70800016 BL ERRSTX YES ERROR 71100016 BR R10 RETURN 71400016 EOBYET LA R5,1(R5) UPDATE BUFFER POINTER 71700016 CR R4,R5 ARE WE AT EOB 72000016 BCR 2,R11 NOPE RETURN 72300016 B ERRSTX YUP ERROR 72600016 * THIS CODE SETS UP XCTL TO IEEDFIN2 72900016 * 73200016 * 73500016 OUT SR R15,R15 73800016 LA R15,XCTLNAME 74100016 SVC 7 XCTL TO ENTRY IN IEEDFIN2 74400016 * 75600016 ZEROTMSL MVC DFTMSL(8),ZEROS ZERO TMSL TABLE 75670017 OI DFXXA,X'40' TURN ON TMSL CHANGED BIT 75740017 LA BUFFPTR,6(BUFFPTR) 75810017 NPEXIT MVC NAME(8),NP XCTLS TO NEWPART WITHIN IEEDFIN2 75900016 B OUT 76200016 * 76500016 ERRSTX LA R2,4 XCTLS TO IEEDFIN5 -MESSAGE MODULE 76800016 ERRSTXO MVC NAME(8),ER1 FREE TEMP WORK AREA MESSAGE 4 77100016 B OUT 78300016 * 78600016 TMSLERR LA R2,14 TMSL SPEC ERROR MSG # 79500017 B ERRSTXO 80400017 ZAPP DC 25F'0' 81300017 ***************** CONSTANTS **************** 82500016 * 82800016 * 83100016 * 83400016 * 83700016 * 84000016 * 84300016 MSGLST WTO ' IEE820I TMSL VALUE LESS THAN MINIMUM, 20 MILLISEC DEFAX84400018 ULT USED.',MF=L,DESC=(5),MCSFLAG=(REG0,RESP) XMCS 84500018 * 84600016 ZEROS DC 8X'00' ZERO FOR TMSL 84900016 * 85200016 DS 0D 85500016 NEWSLC DC 8X'00' USED FOR CONVERTING SLICE 85800016 * 86100016 * 86400016 DS 0D 86700016 XCTLNAME DC A(NAME) POINTER TO XCTL'D MODULE 87000016 DC 4X'00' 87300016 NAME DC 8C' ' ALIAS NAME AS SECONDARY ENTRY PT.IN IEEDFIN2 87600016 BUFFPTR EQU 5 PTR TO CURRENT REPLY CHARACTER 87700017 SAVEPTR EQU 0 PTR TO REPLY BUFFER AT ENTRY TO 87800017 * IEEDFIN6 87900017 EOBPTR EQU 4 88000017 NP DC C'IEEDPART' IEEDFIN2 ALIAS 88200017 CANCEL DC C'CANCEL' MTS0 88500016 ER1 DC C'IEEDFIN5' ERRSTX ALIAS 88800016 * 89100016 DATA DFINDATA 89400016 IEEBASEB 89470018 CVT DSECT 89540018 CVT 89610018 END 89700016 ./ ADD SSI=02033021,NAME=IEEDFIN7,SOURCE=0 HAS TITLE 'IEEDFIN7 SECOND LOAD OF DEFINE COMMAND SYNTAX SCAN' 00400016 IEEDFIN7 CSECT 00800016 *********************************************************************** 01200016 *********************************************************************** 01600016 * * 02000016 * NAME * 02400016 * IEEDFIN7 02800016 * * 03200016 *********************************************************************** 03600016 * * 04000016 * FUNCTION * 04400016 * TO SYNTAX CHECK THE TEXTS OF REPLIES RELATED TO THE DEFINE COMMAND * 04800016 * IN MFT. * 05200016 * * 05600016 *********************************************************************** 06000016 * * 06400016 * ENTRY * 06800016 * IEEDFIN7 FROM IEEDFIN2 TO CONTINUE SYNTAX SCAN 07200016 * IEEDFIN7 AT EXIT FROM IEEDFIN6 IF TMSL LIST IS REQUIRED 07600016 * * 08000016 *********************************************************************** 08400016 * * 08800016 * INPUT * 09200016 * REG6 POINTS AT THE INTERNAL DATA AREA * 09600016 * * 10000016 *********************************************************************** 10400016 * * 10800016 * OUTPUT * 11200016 * REG6 ALWAYS POINTS TO THE INTERNAL DATA AREA. * 11600016 * * 12000016 *********************************************************************** 12400016 * * 12800016 * EXIT * 13200016 * TO IEEDFIN2 AT IEEDPART IF NO TMSL PARAMETER SPECIFIED LCS 13600017 * TO IEEDFIN6 IF TMSL IS SPECIFIED 14000016 * * 14400016 *********************************************************************** 14800016 * * 15200016 * EXTERNAL REFERENCES * 15600016 * MASTER SCHEDULER DATA AREA(IEEBASEB) * 16000016 * * 16400016 *********************************************************************** 16800016 * * 17200016 * ERROR CONDITIONS * 17600016 * ANY VIOLATION OF THE DEFINE REPLY SYNTAX AS EESCRIBED IN THE * 18000016 * OPERATORS GUIDE RESULTS IN AN ERROR EXIT TO IEEDFIN5 * 18400016 * * 18800016 *********************************************************************** 19200016 * * 19600016 * NOTES * 20000016 * THE INTERNAL DATA AREA IS DESCRIBED BY MACRO DFINDATA * 20400016 * * 20800016 *********************************************************************** 21200016 *********************************************************************** 21600016 R0 EQU 0 TRANSLATE -WORK 22000016 R1 EQU 1 AND -WORK 22400016 R2 EQU 2 TEST REGS -WORK 22800016 R3 EQU 3 PT. TRT TABLE & SYNTAX AREA 23200016 R4 EQU 4 PT. END OF REPLY BUFFER 23600016 R5 EQU 5 PT. CURRENT TRT ARGUMENT 24000016 R6 EQU 6 PT. DEFINE DATA AREA 24400016 R7 EQU 7 PROGRAM BASE 24800016 R8 EQU 8 TRT EXECUTE REG -WORK 25200016 R9 EQU 9 DATA AREA INDEX -WORK 25600016 R10 EQU 10 -WORK 26000016 R11 EQU 11 -WORK 26400016 R12 EQU 12 SYNTAX TABLE INDEX -WORK 26800016 R13 EQU 13 -WORK 27200016 R14 EQU 14 -WORK 27600016 R15 EQU 15 -WORK 28000016 ENTRY IEEDEXIT LCS 28400017 TTAB EQU 428 28800016 SYNTAB EQU 256 SYNTAX TABLE OFFSET 29200016 CNPK EQU 400 29600016 SLOTSTR EQU 408 30000016 USING DATA,R6 30400016 BALR R7,0 SET PGM BASE 30800016 USING *,R7 31200016 AOK DS 0H 31600016 TRYLIST EQU * 32000016 CLC 0(4,R5),LIST LIST? 32400016 BNE TRYCNCL NO-TRY CANCEL 32800016 OI DFSTAT,DFLIST INDIC. LIST 33200016 LA R5,4(R5) UPDATE CHARAC PTR 33600016 DTESTA CLI 0(R5),X'40' IS DEL BLANK 33700017 BNE DTESTB NO - TEST COMMA 33800017 CLI 1(R5),X'40' IS IT END OF PARMS 33900017 BE EXIT YES - EXIT 34000017 CLI 1(R5),C',' IS IT A COMMA 34100017 BE ERRSTX YES - ERROR 34200017 B DTESTC 34300017 TRYCNCL EQU * 34400016 CLC 0(6,R5),CANCEL CANCEL? 34800016 BNE TRYCLAS NO- BRANCH 35200016 LA R2,10 SET DEFINITION C ANCELLED MSG 35600016 B GO EXIT 36000016 CCAN EQU * 36400016 TRYCLAS EQU * 36800016 CLC 0(5,R5),CLASS CLASS? 37200016 BC 7,TRYTMSL 37600016 OI DFSTAT,DFCLASS INDIC CLASS 38000016 LA R5,5(R5) UPDATE CHARAC PTR 38400016 B DTESTA 38800017 TRYTMSL CLC 0(4,R5),TMSL 46000016 BC 7,TRYEND 46400016 CLI 4(R5),C',' MORE PARMS LCS 46480017 BE TMSLIST YES - SET BIT AND RETURN LCS 46560017 CLI 4(R5),C' ' END OF PARMS YES RETURN LCS 46640017 BNE ERRSTX NO PARAMETER ERROR LCS 46720017 TMSLIST EQU * LCS 46800017 OI DFXXA,DFTSLC INDICATE TMSL LIST LCS 46880017 LA R5,4(R5) LCS 46960017 B DTESTA LCS 47040017 ZAPP DC 25F'0' LCS 47120017 TRYEND EQU * 47200016 CLC 0(3,R5),END END? 47600016 BNE DTEST NO.BR. 48000016 OI DFSTAT,DFEND INDIC. END 48400016 LA R5,3(R5) UPDATE CHARAC PTR 48800016 B DTESTA 49000017 DTEST CLI 0(R5),C' ' BLANK 49200016 BE EXITPRE 49600017 CR R4,R5 EOB? 50000016 BNH EXIT YES.EXIT. 50400016 DTESTB CLI 0(R5),C',' COMMA 50800017 BNE ERRSTX NO ERROR. 51200016 BCTR R5,0 51270017 CLI 0(R5),C',' TEST FOR TWO COMMAS 51340017 BE ERRSTX 51410017 CLI 0(R5),X'40' TEST FOR BLANK - COMMA 51480017 BE ERRSTX 51550017 LA R5,1(0,R5) 51620017 DTESTC LA R5,1(0,R5) INCR TO POINT TO NEXT CHAR 51700017 XCTL EP=IEEDPART LCS 52000017 * 52400016 IEEDEXIT EQU * 52600017 EXIT EQU * 52800016 BALR R7,0 53200016 USING *,R7 53600016 L R7,ADDAOK 54000016 USING AOK,R7 54400016 NOSTOR EQU * 75200016 TM DFXXA,DFTSLC REQUEST FOR A TMSL LIST 75600016 BC 1,LISTIT YES BRANCH 76000016 TM DFSTAT,DFLIST+DFCLASS LIST OR CLASS ON? 76400016 BZ TEND NO BR. 76800016 LISTIT MVI DFRPLY+23,C'4' XCTL TO LIST MODULE 77200016 B EXIT2 77600016 EXITPRE EQU * 77660017 BCTR R5,0 77720017 CLI 0(R5),C',' TEST FOR COMMA - BLANK 77780017 BE ERRSTX 77840017 B EXIT 77900017 TEND EQU * 78000016 LA R2,1 INDICATE MSG - CONTINUE DEFINITION 78400016 TM DFSTAT,DFEND END? 78800016 BZ GO NO BR. 79200016 MVI DFRPLY+23,C'3' GO TO END MODULE 79600016 B EXIT2 80000016 ERRSTX EQU * SYNTAX ERROR 80400016 LA R2,4 SET MSG NUMBER 80800016 GO EQU * 81200016 MVI DFRPLY+23,C'5' GO TO MESSAGE MODULE 81600016 EXIT2 EQU * SET UP XCTL LIST & EXIT 82000016 LR R1,R3 82400016 SR R15,R15 DCB 83600016 ST R15,DFRPLY+12 TO ZERO 84000016 LA R15,DFRPLY+16 PT TO NAME 84400016 ST R15,DFRPLY+8 84800016 LA R15,DFRPLY+8 XCTL LIST PTR 85200016 MVC DFRPLY+16(7),IEED MOVE IN FIRST 7 NAME CHARACTERS 85600016 SVC 7 86000016 DS 0F 86400016 TTABSIZE DC X'FC' SUBPOOL 252 86800016 DC AL3(TTAB) 87200016 ADDAOK DC A(AOK) 87600016 HZERO DC H'0' 88000016 IEED DC C'IEEDFIN' 88400016 CANCEL DC C'CANCEL' 88800016 CLASS DC C'CLASS' 89200016 LIST DC C'LIST' 89600016 END DC C'END' 90000016 TMSL DC C'TMSL' 90400016 SAVTMSL EQU 416 90800016 DFTSCHNG EQU X'40' 91200016 DATA DFINDATA 91600016 IEEBASEB 92000016 CVT DSECT 92400016 CVT 92800016 END 93200016 ./ ADD SSI=02032796,NAME=IEEDFIN8,SOURCE=0 TITLE 'IEEDFIN8 - CONTINUE TO REESTABLISH PARTITIONS' 00200019 ********************************************************************** 00400016 ********************************************************************** 00600016 * 00800016 * NAME 01000016 * IEEDFIN8 01200016 * 01400016 ********************************************************************** 01600016 * 01800016 * FUNCTION M4353 02100019 * TO CONTINUE TO REESTABLISH THE SYSTEM I250 02400019 * 02800016 ********************************************************************** 03000016 * M4353 03060019 * ENTRY M4353 03120019 * ALWAYS FROM IEEDFINB I250 03200019 * 04400016 ********************************************************************** 04800016 * 05000016 * INPUT MTS0 05200016 * R2 WORKAREA MTS0 05400016 * R6 INTERNAL DATA AREA MTS0 06000016 * 06600016 ******************************* ********************* 06800016 * 07000016 * OUTPUT MTS0 07200016 * R2 CODE FOR MESSAGE MODULE IEEDFIN5 MTS0 07400016 * R6 INTERNAL DATA AREA MTS0 07600016 * R3 ERROR CODE, ONLY UPON EXIT TO IEEREXIT I250 07700019 * 07800016 ******************************* ********************* 08000016 * 08200016 * EXIT MTS0 08400016 * NORMAL - TO IEEDFIN9 I250 08500019 * ERROR - TO IEEREXIT I250 08600019 * M4353 08700019 ******************************* ********************* 08800016 * 09000016 * EXTERNAL REFERENCES MTS0 09200016 * CVT MTS0 09400016 * TCB MTS0 09600016 * BASEB I250 09700019 * PIB I250 09800019 * 10000016 ******************************* ********************* 10200016 * 10400016 * ERROR CONDITIONS MTS0 10600016 * PROBLEM PROGRAM PARTITIONS EXCEED 15 I250 10900019 * 11200016 ******************************* ********************* 11400016 * 11600016 * NOTES MTS0 11800016 * NONE MTS0 12000016 * 12200016 ******************************* ********************* 12400016 IEEDFIN8 CSECT 12600016 * 921000-923000 20030 12600100 * 268000 M3171 12600219 * A27513 12600519 *357350 A29107 12600700 * 383000 M4353 12601019 * 020000,022000-026000,032000,056000-058000,062000-064000,098000 I250 12602019 * 108000,144000,150000-156000,157330-163200,166000,166000, I250 12604019 * 176000-178500,184000-200000,382000-384000,439000,959000 I250 12606019 * 194000-198000 M4317 12608019 * 343200-343500,344400-344700 A21606 12610018 *162700 A24373 12620018 * 276050-276250,306000 21491 12650018 *2645196000 19394 12700017 * 156100-157300,157630,176000-178000 M2326 12750018 REGEQU 12800016 TCBEQU 13000016 * I250 13030019 E0 EQU 0 I250 13060019 E1 EQU 1 I250 13090019 E2 EQU 2 I250 13120019 E3 EQU 3 I250 13150019 E4 EQU 4 I250 13180019 E8 EQU 8 I250 13210019 EHEX28 EQU X'28' M3171 13220019 EHEX7F EQU X'7F' I250 13240019 EHEX80 EQU X'80' I250 13270019 USING WORKAREA,R2 13400016 USING CVT,R3 13600016 USING BASE,R4 13800016 USING DATA,R6 14000016 USING IEFSD033,R8 14200016 BALR R7,0 14600016 USING *,R7 14800016 SPACE 14860019 *******************************************************************I250 14920019 * I250 14980019 * THIS SECTION OF CODE IS TO PROVIDE A METHOD I250 15040019 * OF IDENTIFYING THIS MODULE IN A MEMORY DUMP I250 15100019 B ID * I250 15160019 DC X'CCCC' * I250 15220019 DC C'IEEDFIN8' * I250 15280019 DC C'01234567' * I250 15340019 DC X'CCCC' * I250 15400019 ID DS 0H * I250 15460019 * I250 15520019 *******************************************************************I250 15580019 SPACE 15640019 L R3,CVTPTR PICK UP CVT PTR 19936 15731017 L R4,CVTMSER PICK UP PTR TO BASEB 19936 15732017 USING PSIZE,R5 I250 15932019 L R12,BALCSBND PICK UP HIGH BND HSS LCS 16330017 L R10,CVTTAT-E1 GET TCB TABLE I250 16430019 L R10,E0(E0,R10) GET TCB FOR P0 I250 16530019 XC DFTABR10(E2),DFTABR10 CLEAR TABLE INDEX I250 16630019 ST R10,TOTSZ SET TOP TCB AS LAST TEMPORARILY 16800016 LA R5,DFTAB PERM TABLE - 8 LCS 17000017 NORB EQU * 17200016 TCBLOOP EQU * 17400016 LR R9,R10 SET CURRENT TO PREVIOUS I250 17490019 MVC DFTABR9(E2),DFTABR10 I250 17580019 CLC DFTABR9+E1(E1),DFSYSNDX WAS LAST TCB PROCESSED I250 17670019 BNE SKIPZED YES, BRANCH I250 17760019 BAL R8,DEQINTQ GO TO DEQ OFF PARTITION BOUNDS MFTCR 17870018 XCTL EP=IEEDFIN9 LCS 17900017 SKIPZED DS 0H LCS 17950017 LA R5,8(R5) UPDATE INDIV SLOT 18200016 SKIP EQU * I250 18300019 LH R10,DFTABR9 INCREMENT INDEX IN TCB TABLE I250 18400019 LA R10,E4(E0,R10) I250 18500019 STH R10,DFTABR10 I250 18600019 L R10,CVTTAT-E1 GET ADDR OF TCB TABLE I250 18700019 AH R10,DFTABR10 INCREMENT PTR TO TABLE I250 18800019 TM E0(R10),EHEX80 X'80' IF AFTER LAST I250 18900019 BZ SETUP BRANCH, NOT AFTER LAST I250 19000019 CLC DFTABR10+E1(E1),DFSYSNDX WAS LAST TCB PROCESSED I250 19100019 BE SETUP BRANCH, NO FLAG TO TURN OFF I250 19200019 NI E0(R10),EHEX7F TURN OFF FLAG I250 19300019 SETUP EQU * 20200016 L R10,E0(E0,R10) GET PTR TO TCB I250 20300019 L R14,TCBMSS(R9) PT BNDRY BOX 20400016 LA R0,15 SET PROTECT KEY SEARCH LIMIT 20600016 LA R13,16 SET FIRST PKEY 20800016 L R11,PSIZE GET SIZE LCS 21000017 LTR R11,R11 SIZE=0 21200016 SRL R11,16 GET RID OF LCS SIZE LCS 21300017 BZ NACT BR YES 21400016 TM BADEFINE,BAON IPL? 21600016 BZ NDISP BR.DON'T SET DISPATCH ABLE 21800016 MVI 33(R9),X'00' SET DISPATCHABLE 22000016 NDISP EQU * 22200016 SLL R11,8 CONVERT 2K TO BYTE SIZE 22400016 ST R9,TOTSZ SAVE NEXT TCB PT AS LINK PTR 22600016 TM PSTAT,PCHNG WAS PARTITION CHANGED" 22800016 BO FLEX BR YES 23000016 TM PSTAT,PACTIV PARTITION ACTIVE? 23200016 BZ FLEX BR NO 23400016 CLC HZERO(4),4(R14) IS HSS ACTIVE LCS 23460017 BE SETPK NO - DONT CHNG HI AVAILABLE ADDR LCS 23520017 L R12,4(R14) ADJUST HIGH AVAILABLE ADDRESS TO 23600016 * LOW BNDRY OF ACTIVE PARTITION 23800016 B SETPK GO SET PROTECT KEY 24000016 FLEX EQU * 24200016 ST R12,8(R14) STORE HIGH BOUNDARY 24400016 SR R12,R11 SET LOW BNDRY 24600016 ST R12,4(R14) AND STORE 24800016 CLC PSIZE(2),HZERO ANY HSS LCS 24850017 BNE SETPK NO. BYPASS HSS LCS 24900017 XC 1(11,R14),1(R14) CLEAR HSS BBOX LCS 24950017 B SETPK 25000016 NACT ST R11,4(R14) STORE ZERO SIZE 25200016 ST R11,8(R14) TO BOUNDARY BOX 25400016 MVI 33(R9),X'FF' SET NOT DISPATCHABLE 25600016 MVI TCBPIB(R9),X'00' INDIC DORMANT 25800016 SETPK EQU * 26000016 L R8,TCBPIB(R9) SET PIB BASE 26200016 TM PSTAT,PCHNG WAS PARTITION CHANGED? 26400016 BZ TCBLOOPA NO. SKIP PROTECTION & RB SETUP 26600016 XC SD33PEND(EHEX28),SD33PEND CLEAR ALL OF PIB EXCEPT M3171 26700019 XC SD33JPAQ(E4),SD33JPAQ SD33JTQE, WHICH MUST BE M3171 26800019 * PRESERVED FOR JOB/STEP TIMING M3171 26900019 CLC PSIZE(4),HZERO SIZE EQUAL ZERO LCS 27000017 BE TCBLOOPA BR. YES. DON'T SET PRTCT & RB 27200016 MVI TCBPFK(R9),X'00' SET ZERO KEY IN TCB 27400016 MVC SD33GRP+1(3),PCLASS MOVE IN R/W/CLASSES 27600016 CLI PCLASS+2,C'R' RDR OR WTR 27800016 BNL SETZ BR YES TO SET ZERO KEYS 28000016 KEYLOOP LR R15,R13 GET PROTECT KEY -LAST USED 28200016 SRL R15,4 SET AS INDEX 28400016 LA R15,PKEYS(R15) ADDRESS TABLE 28600016 TM 0(R15),X'FF' KEY AVAILABLE? 28800016 BZ SETKEY BR YES. 29000016 LA R13,16(R13) INCR KEY 29200016 BCT R0,KEYLOOP BRANCH IF KEYS STILL POSSIBLE TO GET 29400016 LA R3,7 SET PROB PGM PARTS EXCEED 15 29600016 ERRXCTL DS 0H MFTCR 29660018 BAL R8,DEQINTQ GO TO DEQ OFF PART BNDS MFTCR 29720018 XCTL EP=IEEREXIT LCS 29800017 SETKEY EQU * 30000016 OI 0(R15),X'FF' INDICATE PROTECT KEY HAS BEEN USED. 30200016 STC R13,SD33GRP STORE KEY IN PIB 30400016 SETZ TM BADEFINE,BAPFK STORAGE PROTECTION IN SYSTEM? 21491 30500018 BZ SETLOOP3 NO. DON'T CHECK BOUNDARIES 21491 30600018 L R15,4(R14) GET LOW BOUNDARY 21491 30700018 SR R11,R11 SET KEY 30800016 LH R13,PSIZE 31000016 LTR R15,R15 ANY HSS SIZE LCS 31060017 BZ SETLOOP2 NO. USE LCS LCS 31120017 SRL R13,3 REDUCE SIZE AS STORED TO 2K MULTIPL 31200016 LTR R13,R13 IF R13 = 0, LCS 31260017 BZ SETLOOP3 BRANCH AROUND BCT. LCS 31320017 SETLOOP EQU * 31400016 SSK R11,R15 SET KEY OF 2K BLOCK TO 0 31600016 LA R15,2048(R15) INCR PT. 31800016 BCT R13,SETLOOP 32000016 SETLOOP2 EQU * LCS 32007017 TM BASFL2,BALCS LCS IN SYSTEM LCS 32014017 BZ SETLOOP3 NO. PROTECT KEYS NOT NEEDED LCS 32021017 L R15,16(R14) LCS LOW BOUND FOR THIS PART LCS 32028017 LH R13,PLCSIZE LCS SIZE OF CURRENT PARTITION LCS 32035017 SRL R13,3 PUT SIZE IN 2K BLOCKS LCS 32042017 LTR R13,R13 ANY LCS SIZE LCS 32049017 BZ SETLOOP3 NO. SKIP SETTING KEYS LCS 32056017 SETLOOP4 EQU * LCS 32063017 SSK R11,R15 SET '0' KEY FOR 2K BLOCK LCS 32070017 LA R15,2048(R15) NEXT BLOCK LCS 32077017 BCT R13,SETLOOP4 SET NEXT BLOCK LCS 32084017 SETLOOP3 EQU * LCS 32091017 TRYRDR EQU * 32100016 CLI PCLASS+2,C'R' RDR? 32200016 BNE TRYWTR 32400016 MVI TCBPIB(R9),X'40' SET RDR BIT 32600016 B SCHED 32800016 TRYWTR EQU * 33000016 CLI PCLASS+2,C'W' WTR? 33200016 BNE CLASS 33400016 MVI TCBPIB(R9),X'80' SET WTR BIT 33600016 B SCHED 33800016 CLASS EQU * 34000016 MVI TCBPIB(R9),X'C0' SET PROB PROG 34200016 SCHED EQU * LCS 34230017 CLC HZERO(2),PSIZE IS ANY HSS CALLED FOR LCS 34260017 BE SCHEDLCS NO - TRY LCS LCS 34290017 LH R0,PSIZE GET HSS SIZE A21606 34300018 SRL R0,2 CONVERT TO NO. OF 1024 BYTE BLOCKS A21606 34310018 CH R0,BAMINPAR IS IT A LARGE PARTITION A21606 34320018 BL SMALL NO - BRANCH A21606 34330018 B LARGE YES - CHECK FOR LARGE PART LCS 34380017 SCHEDLCS DS 0H LCS 34410017 LH R0,PLCSIZE GET LCS SIZE A21606 34420018 SRL R0,2 CONVERT TO NO. OF 1024 BYTE BLOCKS A21606 34430018 CH R0,BAMINPAR IS LCS A LARGE PARTITION A21606 34440018 BL SMALL NO - SKIP SETTING BIT A21606 34450018 LARGE DS 0H LCS 34500017 OI TCBPIB(R9),X'20' MARK AS SCHEDULER SIZE 34800016 SMALL EQU * 35000016 TM BADEFINE,BAON IPL? 35200016 BZ NORB BR YES. DON'T SET RB CODE 35400016 L R11,4(R14) GET LOW BOUNDARY 35600016 LTR R11,R11 HSS ACTIVE LCS 35610017 BNZ SETRB YES. USE IT FOR SETTING RB LCS 35620017 L R11,16(R14) USE LCS FOR RB LCS 35630017 B SETRB2 LCS 35640017 PACTIV EQU X'01' LCS 35650017 SETRB EQU * LCS 35660017 CLC 16(4,R14),HZERO LCS ACTIVE A27513 35670019 BE SETRB2 NO. DON'T SET FQE LCS 35680017 L R13,16(R14) LOW BOUND IN LCS LCS 35690017 ST R13,12(R14) FQE FOR LCS LCS 35700017 L R15,20(R14) HIGH BOUND FOR LCS LCS 35710017 SR R15,R13 SIZE OF LCS LCS 35720017 ST R15,4(R13) PUT SIZE IN FQE LCS 35730017 MVC E0(E4,R13),HZERO INITIALIZE A29107 35733000 * FQE PTR TO 0 A29107 35736000 SETRB2 EQU * LCS 35740017 MVC 0(RBSIZE,R11),RB MOVE RB TO CORE 35800016 USING RB,R11 36000016 TM TCBPIB(R9),X'20' SCHED SIZE? 36200016 BO NOTNINE YES BR. 36400016 MVC XCTLNM+6(2),NINES SET IEFSD599 36600016 NOTNINE EQU * 36800016 ST R9,XRBLINK SET LINK TO TCB 37000016 ST R11,TCBRBP(R9) STORE NEW RB PT TO TCB 37200016 XC TCBPIE(TCBMSS-TCBPIE,R9),TCBPIE(R9) 37400016 * CLEAR- TCBPIE,TCBDEB,TCBTIO,TCBCMP, 37600016 * AND TCBTRN 37800016 SPACE 38000016 XC TCBLLS(E8,R9),TCBLLS(R9) CLEAR TCBLLS AND TCBJLB M4353 38300019 SPACE 38600016 XC TCBFSA(3,R9),TCBFSA(R9) CLEAR PT FIRST PROB PGM SAVE AR 38800016 LA R13,CODE SET PT CODE IN PSW 39000016 ST R13,PSW2 39200016 LA R13,XCTLNM PT XCTLNM 39400016 ST R13,XCTLIST TO XCTLIST 39600016 L R13,8(R14) GET HIGH BOUNDARY 39800016 LA R15,XCTLFQE GET FQE PT. 40000016 LTR R13,R13 HSS ACTIVE LCS 40020017 BNZ SETFQE1 YES. SET FQE IN HSS LCS 40040017 L R13,20(R14) POINT TO LCS LCS 40060017 ST R15,12(R14) SET FQE IN LCS LCS 40080017 B SETFQE2 LCS 40100017 SETFQE1 EQU * LCS 40120017 ST R15,0(R14) STORE PT FQE TO BBOX SLOT 40200016 SETFQE2 EQU * LCS 40300017 SR R13,R15 DIFF STORED 40400016 ST R13,XCTLFQE+4 TO FQE 40600016 DROP R11 40800016 TM BASFL2,BALCS LCS IN SYSTEM LCS 40850017 BZ TCBLOOP NO. GET NEXT ENTRY LCS 40900017 OI 0(R14),X'01' INDICATE LCS IN FQE LCS 40950017 B TCBLOOP 41000016 TCBLOOPA EQU * 41200016 CLC PSIZE(4),HZERO UNCHANGED PART-ACT SIZE NOT ZERO LCS 41400017 BZ TCBLOOP 41600016 ST R9,TOTSZ SET AS CURRENT LAST TCB. 41800016 B TCBLOOP 41900017 DEQINTQ DS 0H MFTCR 42000018 DEQ (MAJOR,MINOR,8,SYSTEM) DEQ OFF PART BNDS MFTCR 42100018 BR R8 RETURN TO CALLER MFTCR 42200018 MAJOR DC C'SYSIEFSD' MFTCR 42300018 MINOR DC C'PARTBNDS' MFTCR 42400018 HZERO DC F'0' 42900017 NINES DC C'99' 44900017 DS 0D 45900017 RB EQU * 46900017 DC CL8' ' 47900017 DC AL2((XCTLFQE-RB)/8) 48900017 DC X'00C0' 49900017 DC A(0) 50900017 DC X'FF040000' 51900017 PSW2 DC A(0) 52900017 DC A(0) 53900017 XRBLINK DC A(0) 54900017 CODE BALR R12,0 SET BASE 55900017 USING *,R12 56900017 LA R15,XCTLIST GET XCTL PARM 57900017 SVC 7 XCTL 58900017 XCTLIST DC A(XCTLNM) 59900017 DC A(0) 60900017 XCTLNM DC C'IEFSD510' 61900017 DS 0D 62900017 XCTLFQE DC 2F'0' 63900017 RBSIZE EQU *-RB 64900017 DATA DFINDATA 65900017 NULL EQU PCLASS+3-PSIZE 66900017 * 67900017 * 68900017 WORKAREA DSECT 69900017 DS 0F 70900017 WORK1 DS F LCS 71900017 WORK2 DS F LCS 72900017 LCSIZE DS D LCS HIGH AND LOW BOUND LCS 73900017 TRTSTAT DS C CURRENT STATUS 74900017 LOWBND DS F LOW ADJACENT BOUNDARY 75900017 TOTSZ DS F TOTAL SIZE SLOT 76900017 SWS DS C SWITCHES 77900017 ADJSW EQU X'80' ADJACENT COUNT ACTIVE 78900017 ENDADJ EQU X'40' ADJACENT PROHIBIT SW 79900017 LOSW EQU X'20' LOW BOUNDARY SET 80900017 LASTSW EQU X'10' PART. INDIC AS LAST ALREADY TREATED 81900017 XCSMSG EQU X'08' EXCESS MESSAGE SWITCH 82900017 DS 3C 83900017 PKEYS DS 16C PROTECT KEY FIELDS 84900017 ECBS DS 52F 85900017 WLIST DS 52F 86900017 WALGTH EQU *-WORKAREA 87900017 * 88900017 CVT DSECT 89900017 CVT 90900017 * 91900017 * 92500018 IEEBASEB 92900017 IEFSD033 93900017 PIBSZ EQU *-IEFSD033 94900017 END 96900017 ./ ADD SSI=03011336,NAME=IEEDFIN9,SOURCE=0 IEEDFIN9 CSECT 00500017 * 013600,227000,340000-475000 A39436 00500121 * 020000,030000,165000-170000,230000-235000,245000-285000, I250 00503019 * 355000-395000,420000-430000,460000,485000,525000-635000 I250 00506019 * 070000,080000,733300-733500,733400-734100 M4317 00508019 * 457100,459900,738000 M4264 00509019 * 011500,732800 A35665 00509420 * 231000-233000,250000,260000 A37617 00509820 * A 343600-343700 A45824 00509921 * D 073600 A45824 00513221 * A 355600-355920,356600 A49641 00515221 * C 229000, D 229500 SA69790 00515921 *********************************************************************** 00516721 *********************************************************************** 00520017 * * 00530017 * * 00540017 * NAME - IEEDFIN9 * 00550017 * * 00560017 *********************************************************************** 00570017 * * 00580017 * FUNCTION - UPDATES TIMESLICE TCB'S AND TIMESLICE CONTROL BLOCK * 00590017 * POSTS SMALL PARTITIONS * 00600017 * * 00610017 *********************************************************************** 00620017 * * 00630017 * ENTRY - IEEDFIN9 * 00640017 * IEEREXIT * 00660017 * * 00670017 *********************************************************************** 00680017 * * 00690017 * INPUT - R2 POINTS TO WORKAREA GOTTEN IN IEEDFIN3 * 00700017 * R6 POINTS TO PERMANENT WORKAREA GOTTEN IN IEEDFIN1 * 00710017 * * 00720017 *********************************************************************** 00730017 * * 00740017 * OUTPUT - R2 HAS MESSAGE CODE * 00750017 * R6 POINTS TO PERMANENT WORKAREA * 00760017 * * 00770017 *********************************************************************** 00780017 * * 00790017 * EXIT - TO IEEDFIN5 * 00800017 * - TO IEEDFINA IF SMF IS IN THE SYSTEM 19018* 00805019 * * 00810017 *********************************************************************** 00820017 * * 00830017 * EXTERNAL REFERENCES - TCB * 00840017 * IEEBASEA * 00850017 * PARTITION INFORMATION BLOCK (PIB) * 00860017 * CVT * 00870017 * DFINDATA * 00880017 * IHBTSCE * 00890017 * * 00900017 * * 00910017 *********************************************************************** 00920017 *********************************************************************** 00930017 EJECT 00960019 REGEQU 01000017 SPACE 01030019 N0 EQU 0 01060019 N1 EQU 1 A39436 01070021 N3 EQU 3 01090019 N4 EQU 4 01120019 N5 EQU 5 A39436 01130021 N16 EQU 16 A39436 01132021 N127 EQU 127 A39436 01134021 X01 EQU X'01' A39436 01140021 X02 EQU X'02' A35665 01150021 XBF EQU X'BF' A39436 01170021 XFE EQU X'FE' A39436 01172021 EJECT 01180019 E0 EQU 0 I250 01210019 E1 EQU 1 I250 01240019 E2 EQU 2 I250 01270019 E4 EQU 4 I250 01300019 EHEX00 EQU X'00' I250 01330019 EHEX20 EQU X'20' I250 01390019 EHEX80 EQU X'80' I250 01420019 TCBEQU 01500017 TCBFTLMP EQU 152 MFT LIMIT PRIORITY I250 02100019 TCBTCB EQU 116 NEXT LOWEST PRIORITY TCB A37617 02150020 ENTRY IEEREXIT I250 02300019 USING WORKAREA,R2 02500017 USING CVT,R5 I250 03000019 USING BASE,R4 03500017 USING DATA,R6 04000017 USING IEFSD033,R8 04500017 BALR R7,0 05000017 USING *,R7 05500017 IPLCYCLE EQU * 06000017 *******************************************************************LCS 06030017 * *LCS 06060017 * THIS SECTION OF CODE IS TO PROVIDE A METHOD OF IDENTIFYING *LCS 06090017 * THIS MODULE IN A MEMORY DUMP *LCS 06120017 * *LCS 06150017 B ID *LCS 06180017 DC X'CCCC' *LCS 06210017 DC C'IEEDFIN9' *LCS 06240017 DC C'09201968' *LCS 06270017 DC X'CCCC' *LCS 06300017 ID DS 0H *LCS 06330017 * *LCS 06360017 *******************************************************************LCS 06390017 L R13,TOTSZ GET LAST ACTIVE PART. 06500017 L R5,CVTPTR LOAD PTR TO CVT I250 07020019 L R11,CVTTAT-E1 GET ADDR OF TCB TAB I250 07040019 XR R3,R3 I250 07060019 LR R12,R3 I250 07080019 IC R3,DFSYSNDX INDEX BEYOND LAST TAB ENTRY I250 07100019 LA R3,E0(R3,R11) ADDRESS BEYOND TABLE END I250 07120019 IC R12,TCBIDF(R13) ID OF LAST TCB I250 07140019 SH R12,DFIDOFP0 PARTITION NO. I250 07160019 SLL R12,E2 TABLE INDEX I250 07180019 LA R11,E0(R12,R11) PTR TO TCB BEYOND LAST I250 07200019 BITLOOP EQU * I250 07220019 LA R11,E4(E0,R11) INCR LOC IN TABLE I250 07240019 CR R11,R3 END OF TABLE I250 07260019 BE LOOPEND NO MORE FLAGS TO SET I250 07280019 OI E0(R11),EHEX80 AFTER LAST, TURN ON BIT I250 07300019 B BITLOOP CHECK IF MORE FLAGS TO SET I250 07320019 LOOPEND EQU * I250 07340019 SR R12,R12 SET ZERO 07500017 LA R1,16 PROT KEY COUNT 08500017 LA R3,PKEYS PT PROT.KEYS 09000017 BLOOP TM 0(R3),X'FF' KEY USED? 09500017 LA R3,1(R3) LOOK AT NEXT SLOT 10000017 BZ BCTLP BR NO 10500017 LA R12,1(R12) SET KEY ON. 11000017 SLL R12,1 11500017 BCTLP BCT R1,BLOOP LOOP IF MORE KEYS 12000017 NI BADEFINE,255-(BALIST+BACHANGE) CLEAR LIST AND CHANGE 12500017 * INDICATORS 13000017 STH R12,BAPKES STORE TO MSER. 13500017 TSR13SET EQU * 14500017 TM BADEFINE,BASPWT SMALL PART. WAITING ? 15000017 BO TCBSCAN YES SCAN ALL TCBS 15500017 ZEXIT1 EQU * 16000017 L R10,CVTTSCE GET ADDR OF TSCE 17500017 LTR R10,R10 Q.IS THERE A TSCE LCS 17600017 BZ NOTMSL1 NO- SKIP TMSL CODE LCS 17700017 TM BADEFINE,BAON IPL TIME ? A39436 17750021 BZ TSIPL YES TMSL CHECK NOT NECESSARY A39436 17800021 TM DFXXA,TCANCEL IS TIME SLICE CHANGING A39436 17850021 BZ NOTMSL1 NO. BYPASS TIMESLICE CODE A39436 17900021 TSIPL EQU * A39436 17950021 USING TSCE,R10 18000017 LH R1,DFTMSL+2 GET LAST TMSL PART. 18500017 LTR R1,R1 IS THERE ONE 19000017 BNZ TSBITS YES- PROCESS IT LCS 19500017 XC TSCE(16),TSCE NO-ZERO TSCE 20000017 OI TSLENGTH,X'80' SET TSCE BIT BACK ON 20500017 * LOOP TO TURN OFF OLD TMSL BITS LCS 21300017 * IN TCBS' LCS 22100017 TSBITS EQU * I250 22300019 XR R12,R12 CLEAR TO HOLD TABLE INDEX I250 22500019 L R11,CVTHEAD GET ADDR OF FIRST TCB SA69790 22900021 TURNOFF NI TCBFLGS+1(R11),X'FE' TURN OFF TMSL TCB BIT 24000017 L R11,TCBTCB(R11) GET NEXT TCB POINTER A37617 24050020 CL R11,HZERO Q-ANY MORE TCBS TO PROCESS A37617 24100020 BNE TURNOFF YES, GO PROCESS A37617 24150021 NEWTMSL LTR R1,R1 Q.TMSL CANCELLED 29000017 BZ NOTMSL1 YES-BR 29500017 L R12,CVTTAT-E1 TCB ADDRESS TABLE A39436 34000021 LH R11,DFTMSL+E2 GET LAST TMSL PARTITION A39436 34050021 SLL R11,E2 CONVERT TO INDEX A39436 34100021 LA R11,E4(R11) ADJUST FOR COMPARE A39436 34150021 EX R11,COMPSYS IS LAST GENED PART TM SLICED A39436 34200021 BE TSSPEC YES SET SPECIAL CASE A39436 34250021 L R3,E0(R11,R12) SAVE TCB ADDRESS OF A39436 34300021 * NEXT HIGHER PARTITION. A39436 34350021 LA R3,E0(R3) CLEAR HIGH ORDER BYTE IN CASE A45824 34360021 * PARTITION IS INACTIVE A45824 34370021 B TSSTART GO SET TMSL TCB BITS A39436 34400021 TSSPEC EQU * A39436 34410021 LA R3,N127 LAST PARTITION IS TIME SLICED A39436 34450021 SLL R3,N16 SO SET HIGH ENOUGH ADDRESS A39436 34500021 * FOR COMPARE TO FORCE LOOP A39436 34550021 * TO END OF TCB CHAIN. A39436 34600021 TSSTART EQU * A39436 34610021 LH R11,DFTMSL FIRST TIME SLICE PARTITION A39436 34650021 SLL R11,E2 CONVERT TO INDEX FOR TCB TBL A39436 34700021 L R11,E0(R11,R12) GET FIRST TIME SLICE TCB A39436 34750021 ST R11,TSDPRTY STORE FIRST TMSL TCB IN TSCE A39436 34800021 MVC TSDPRTY(E1),TCBFTLMP(R11) SET HIGH LIMIT PRIOR. A39436 34850021 * FOR THIS TIME SLICE GROUP A39436 34900021 ST R11,TSPNEXT SET FIRST AS NEXT TO BE DISP A39436 34950021 SETFLAG EQU * A39436 34960021 OI TCBFLGS+E1(R11),X01 TURN ON TCB TMSL BIT A39436 35000021 ST R11,TSPLAST THIS MAY BE LAST TMSL TCB A39436 35050021 L R11,TCBTCB(R11) NEXT LOWEST TCB ON QUEUE A39436 35100021 LTR R11,R11 IS THERE ANOTHER ONE A39436 35150021 BZ SETLAST NO MORE GO SET LIMIT OF LAST A39436 35200021 CR R11,R3 IS IT END OF TIME SLICE TASKS A39436 35250021 BNE SETFLAG NO, LOOP UNTIL DONE A39436 35300021 SETLAST EQU * A39436 35310021 LH R11,DFTMSL+E2 TCB OF LAST TMSL PARTITION A39436 35350021 SLL R11,E2 CONVERT TO INDEX FOR TCB TBL A39436 35400021 L R11,E0(R11,R12) TCB ADDRESS A39436 35450021 SR R3,R3 A39436 35500021 IC R3,TCBFTLMP(R11) GET LIMIT PRIORITY OF LAST A39436 35550021 CH R3,HPRIOR IS PRIORITY LESS THAN 10 A49641 35560021 BNL ADJLOW NO- GO ADJUST LOW VALUE A49641 35570021 SR R3,R3 SET PRIORITY TO ZERO A49641 35580021 B STPRIOR GO TO STORE IN TSCE A49641 35590021 ADJLOW EQU * A49641 35592021 SH R3,HPRIOR ADJUST TO LOWEST POSSIBLE A39436 35600021 * PRIORITY FOR THIS GROUP A39436 35650021 STPRIOR EQU * A49641 35660021 STC R3,TSPLAST STORE IN TSCE A39436 35700021 MVC TSLENGTH+N1(N3),DFTMSL+N5 SET TIME INTERVAL A39436 35750021 NI TSLENGTH,XFE RESET TMSL INDICATOR A39436 35800021 TM CVTOPTA,CVTATTCH IS ATTACH IN SYSTEM A39436 35850021 BO TMSLDONE YES ALL DONE WITH TIME SLICE A39436 35900021 SR R3,R3 A39436 35950021 STC R3,TSDPRTY RESET HIGH DISP PRIORITY AND A39436 36000021 STC R3,TSPLAST LOW DISP PRIORITY TO ZERO A39436 36050021 TMSLDONE EQU * A39436 36060021 NI DFXXA,XBF TURN OFF TMSL CHANGED BIT A39436 36100021 NOTMSL1 EQU * 48000017 DROP R10 49000017 LA R3,2 DEFINITION COMPLTED 49500017 TM SWS,XCSMSG EXCESS MESSAGE? 50000017 BZ ERREXIT BR NO 50500017 LA R3,8 SET MSG CODE 51000017 LA R4,DFRPLY LOCATION OG MSG INSERT 51500017 B ERREXIT 52000017 TCBSCAN EQU * I250 52900019 XR R10,R10 CLEAR TO HOLD ID IN TCB TAB I250 53800019 TCBSCAN2 EQU * I250 54700019 EX R10,COMPSYS HAS LAST TCB BEEN CHECKED I250 55600019 BE ZEXIT1 YES, GO TO END ROUTINE I250 56500019 L R3,CVTTAT-E1 GET PTR TO TCB TABLE I250 57400019 L R3,E0(R10,R3) INCR INDEX IN TCB TAB I250 58300019 LA R10,E4(E0,R10) GET PTR TO TCB I250 59200019 LTR R10,R10 IS IT AFTER LAST I250 60100019 BM ZEXIT1 YES, BRANCH I250 61000019 TM TCBPIB(R3),EHEX20 IS THIS SMALL PARTITION I250 61900019 BO TCBSCAN2 BRANCH IF NO, OTHERWISE POST I250 62800019 SPPOST L R8,TCBPIB(0,R3) GET ADDRESS OF PIB 64000017 LA R1,SD33WECB 64500017 POST (1) 65000017 B TCBSCAN2 GO CHECK NEXT TCB 65500017 DFTSCHNG EQU X'40' CHANGE 66000017 ERRLAST EQU * 66500017 LA R3,9 SET ERROR LAST PARM CODE 67000017 ERREXIT EQU * 68000017 IEEREXIT EQU * LCS 68500017 BALR R7,0 69000017 USING *,R7 69500017 L R7,ADDAOK 70000017 USING IPLCYCLE,R7 70500017 L R0,SIZEEF LOAD LENGTH AND SUBPOOL 71000017 LA R1,0(R2) SET PT 71500017 SVC 10 FREE 72000017 NI DFSTAT,255-DFEND TURN OFF END INDICATOR 72500017 LR R2,R3 SET MSG CODE FOR MSG MODULE 73000017 EJECT 73010019 * 19018 73020019 * THE FOLLOWING CODE LINKS TO IEEDFINA TO CREATE A DYNAMIC 19018 73030019 * STORAGE CONFIGURATION RECORD FOR SMF AFTER THE FOLLOWING 19018 73040019 * TESTS ARE MADE- 19018 73050019 * SMF IS SYSGENED INTO THE SYSTEM, AND 19018 73060019 * SMF INITIALIZATION IS COMPLETED 19018 73070019 * SUCCESSFUL PARTITION DEFINITION HAS OCCURRED 19018 73080019 * 19018 73090019 * IEEDFINA RETURNS AND THE XCTL IS MADE TO IEEDFIN5 19018 73100019 * 19018 73110019 SPACE 73120019 L R13,CVTPTR POINT TO CVT 19018 73130019 USING CVT,R13 19018 73140019 SPACE 73150019 * IN THE FOLLOWING TEST, IF CVTSMCA IS ZERO, EITHER SMF IS NOT 19018 73160019 * IN THE SYSTEM OR SMF INITIALIZATION IS NOT YET COMPLETE. THE 19018 73170019 * POINTER TO THE SMF CONTROL AREA (SMCA) WILL BE STORED IN 19018 73180019 * CVTSMCA WHEN SMF INITIALIZATION IS COMPLETE. 19018 73190019 SPACE 73200019 CLC CVTSMCA+1(N3),HZERO IS SMF IN SYSTEM- 19018 73210019 BE SKPDFINA NO-SKIP LINK TO IEEDFINA 19018 73220019 SPACE 73230019 LA R2,N0(R2) 19018 73240019 SR R3,R3 19018 73250019 LA R3,8 SET EXCESS MSG NO 19018 73260019 CR R2,R3 IS THIS EXCESS MSG- 19018 73270019 BNE CKDEFCOM NO-GO TO CK DEFN COMPLETE MSG A35665 73280021 L R13,CVTTSCE GET ADDRESS OF TSCE A35665 73280121 LTR R13,R13 Q. IS TIME SLICING IN SYSTEM A35665 73280421 BZ LNKDFINA NO-GO LINK TO IEEDFINA A35665 73280821 USING TSCE,R13 A35665 73280921 TM TSLENGTH,X02 Q.TMSL SPEC ERR AND EXCESS MSG A35665 73281021 BO SKPDFINA YES-SKIP LINK TO IEEDFINA A35665 73281121 B LNKDFINA GO TO LINK TO IEEDFINA A35665 73281221 CKDEFCOM EQU * A35665 73289620 LA R3,2 SET DEFN CONPLETE MSG NO 19018 73290019 CR R2,R3 IS THIS DEFN COMPLETE MSG- 19018 73300019 BNE SKPDFINA NO-GO XCTL TO DFIN5 19018 73310019 LNKDFINA EQU * 19018 73320019 * THE PORTION OF THE WORKAREA DFINDATA THAT HAD BEEN USED TO M4317 73326019 * CONTAIN INFORMATION ABOUT EACH PARTITION IS USED AS A REGISTER M4317 73332019 * SAVE AREA FOR IEEDFINA. THE BUFFER IN DFINDATA MUST STILL BE M4317 73338019 * USED BY IEEDFIN5. M4317 73344019 LA R13,DFWKAREA SET PTR TO REG SAVE AREA M4317 73350019 SPACE 73360019 * GO SET UP AND WRITE SMF DYNAMIC STORAGE CONFIGURATION RECORD 19018 73370019 LINK EP=IEEDFINA 73380019 SPACE 73390019 SKPDFINA EQU * 73420019 XCTL EP=IEEDFIN5 EXIT 73500017 COMPSYS CLI DFSYSNDX,EHEX00 SUBJECT FOR EXECUTE I250 73600019 FOUR DC H'4' TO GET INDEX OF LAST TCB I250 73700019 HPRIOR DC H'10' TO ADJUST FOR PRIORITY RANGE M4264 73800019 ADDAOK DC A(IPLCYCLE) 74000017 HZERO DC F'0' 74500017 SIZEEF DC X'FE0001D0' 75000017 HAS DC C' HAS ' 76000017 DS 0D 76500017 DATA DFINDATA 77000017 NULL EQU PCLASS+3-PSIZE 77500017 * 78000017 * 78500017 WORKAREA DSECT 79000017 DS 0F 79500017 WORK1 DS F LCS 80000017 WORK2 DS F LCS 80500017 LCSIZE DS D LCS HIGH AND LOW BOUND 81000017 TRTSTAT DS C CURRENT STATUS 81500017 LOWBND DS F LOW ADJACENT BOUNDARY 82000017 TOTSZ DS F TOTAL SIZE SLOT 82500017 SWS DS C SWITCHES 83000017 ADJSW EQU X'80' ADJACENT COUNT ACTIVE 83500017 ENDADJ EQU X'40' ADJACENT PROHIBIT SWITCH 84000017 LOSW EQU X'20' LOW BOUNDARY SET 84500017 LASTSW EQU X'10' PART. INDIC AS LAST ALREADY TREATED 85000017 XCSMSG EQU X'08' EXCESS MESSAGE SWITCH 85500017 DS 3C 86000017 PKEYS DS 16C PROTECT KEY FIELDS 86500017 ECBS DS 52F 87000017 WLIST DS 52F 87500017 WALGTH EQU *-WORKAREA 88000017 * 88500017 CVT DSECT 89000017 CVT 89500017 * 90000017 IEEBASEB 90500017 IEFSD033 91000017 PIBSZ EQU *-IEFSD033 91500017 IHBTSCE 92000017 END 92500017 ./ ADD SSI=09051893,NAME=IEEGES01,SOURCE=0 * SET ROUTINE * 00100018 * FUNCTION: ACCEPT DATE AND TIME FROM THE SET COMMAND AND CONVERT FOR * 00200018 * SUPERVISOR. * 00300018 * FUNCTION: PROCESSES Q AND PROC PARAMETERS OF THE SET COMMAND. AABA 00400018 * BEFORE PROCEEDING IT VERIFIES THAT THE SELECTED VOLUME ACTUALLY AABA 00500018 * CONTAINS A Q AND/OR PROCLIB DATA SET. IT ISSUES AN OBTAIN MACRO AABA 00600018 * FOR THIS PURPOSE. AABA 00700018 * THE UNIT SELECTED IS 1)THE UNIT SPECIFIED ON THE SET COMMAND, AABA 00800018 * 2)THE VALUE OF THE CATALOG, 3)THE IPL VOLUE 00900018 * THE PARAMETER ,ACCT=(UNITNAME,N) IS AN OPTION TO THE SET COMMAND. * 01000018 * WHERE -- UNIT NAME SPECIFIES THE DEVICE ON WHICH SYS1.ACCT RESIDES; * 01100018 * IF OMITTED THE SYSTEM RESIDENCE VOLUME IS ASSUMED. N SPECIFIES * 01200018 * THAT THE LOWEST EXTENT OF OF SYS1.ACCT MAY BE USED. IF OMITTED * 01300018 * WRITING WILL BE ATTEMPTED FROM THE LAST RECORD WRITTEN. * 01400018 * ENTRY POINTS: IEEGESTO ROUTINE MCR * 01500018 * INPUT: POINTER TO MASTER RESIDENT CORE. * 01600018 * OUTPUT: DATE AND TIME PACKED IN REGISTERS 6 AND 7 FOR SUPERVISOR * 01700018 * ROUTINE IEAQOT00. * 01800018 * EXTERNAL REFERENCES: IEAQOT00 AND IEEGK1GM. * 01900018 * EXITS: TO IEAQOT00 NORMALLY, TO IEEGK1GM IF ERROR MESSAGE IS * 02000018 * REQUIRED. * 02100018 * ERROR MESSAGES: SYNTAX ERROR MESSAGES ARE REQUESTED FROM IEEGK1GM * 02200018 * ACCORDING TO A CODE LEFT IN RESIDENT CORE, AS REQUIRED. * 02300018 * TABLES/WORK AREAS: MASTER RESIDENT CORE. * 02400018 GBLC &SCHDLR 02500018 &SCHDLR SETC 'SSS' 02600018 MSCED IEEGMSLT DSECT,SMBL=YES 02700018 TITLE ' SET ' 02800018 IEEGESTO CSECT 02900018 * 622000,631000 A24024 02950018 * 03400018 * THE SET COMMAND MAY SUPPLY THE TIME AND/OR THE DATE. 03500018 * 03600018 * 03700018 * LOCAL REGISTER ASSIGNMENTS. 03800018 SR1 EQU 1 THESE ARE 03900018 SR13 EQU 13 LINKAGE 04000018 SR14 EQU 14 CONVENTIONS 04100018 SR15 EQU 15 REGISTERS. 04200018 SR2 EQU 2 AABA 04300018 SR3 EQU 3 AABA 04400018 SR6 EQU 6 AABA 04500018 SR9 EQU 9 BASE OF WORKARE FOR LOCATE AND OBTAIN MACROS AABA 04600018 SR12 EQU 12 AABA 04700018 SETRI EQU 1 INDEXER. 04800018 SETRZ EQU 2 ZERO. 04900018 SETRSC EQU 3 SOURCE CHARACTER. 05000018 SBASE EQU 4 PROGRAM BASE. 05100018 B EQU 5 RESIDENT SWITCH BASE. 05200018 SETRCS EQU 6 COMPARISON STRING, BASE. 05300018 SETRB EQU 7 LOCAL BRANCHING. 05400018 SETRCC EQU 13 COMPARISON CHARACTER AND SAVE. 05500018 SETRSS EQU 15 SOURCE STRING BASE AND LINK. 05600018 * SUPERVISOR PARAMETER REGISTERS. 05700018 SETRPKT EQU 7 PACKED TIME 0HHMMSS+. 05800018 SETRPKD EQU 6 PACKED DATE 00YYDDD+. 05900018 * UCB MACRO REGISTERS 06000018 V EQU S 3-CHARACTER UCB NAME. 06100018 W EQU SETRI 06200018 X EQU SETRZ 06300018 Y EQU Q UCB ADDRESS. 06400018 CVTACTP EQU 12 ADDRESS OF WORK QUEUE CONTROL BLOCKS 14122 06500018 T EQU SETRCS ACCT UCB ADDRESS 4562 06600018 SPACE 2 06700018 BALR SBASE,0 06800018 USING *,SBASE 06900018 ST 5,SNRWT SAVE NRWT POINTER 07000018 USING IEEMSLT,M 07100018 LA B,MSCED 07200018 USING MSCED,B 07300018 L P,MSPBP RESTORE LIST POSITION. 07400018 USING MSCMD,P 07500018 SR Q,Q 07600018 LA ERRGPR,ERRBSE LOAD ERROR BASE. 07700018 MVI MSPASS,BLANK BLANK MESSAGE AREA AABA 07800018 MVC MSPASS+1(7),MSPASS * AABA 07900018 SPACE 08000018 SETNX EQU * CHECK POTENTIAL NEXT KEY. 08100018 OI SETSW,BIT7 KEY SCAN FLAG =O FOR VALUE SCAN. 08200018 TM SETSW,BIT0+BIT1+BIT2+BIT3+BIT4 ANOTHER KEY LEGIT 18562 08300018 BC 1,SETXT 08400018 LA SETRB,SETKY ADDRESS KEY VERIFICATION. 08500018 SETDF EQU * EXTRACT ELEMENT. 08600018 BAL R,DEFINE USE SYNTAX DESCRIPTOR. 08700018 B SETXT EXIT. 08800018 BH SETERR+ERRCNT TOO MANY CHARACTERS. 08900018 NI SETSW,F-BIT7 VALUE SCAN. 09000018 BR SETRB KEY OR VALUE. 09100018 SETKY EQU * KEY WORD VERIFICATION. 09200018 CLI 0(S),EQUAL DELIMITER VERIFICATION. 09300018 BNE SETERR+ERRDEL 09400018 CLC SETKT,MSCMD TIME. 09500018 BNE SETKYD 09600018 LA SETRB,SETTM 09700018 OI SETSW,BIT0 TIME VERIFIED. 09800018 B SETDF 09900018 SETKYD EQU * DOES KEYWORD=DATE. 10000018 SPACE 10100018 CLC SETKD,MSCMD DATE. 10200018 BNE SETKYQ NOT DATE , THEN Q. 10300018 LA SETRB,SETDT 10400018 OI SETSW,BIT1 10500018 B SETDF 10600018 SPACE 10700018 SETKYQ EQU * Q=KEYWORD. 10800018 CLI 0(P),C'Q' 10900018 BNE SETKYP NOT Q, CHECK PROC. 11000018 OI SETSW,BIT2 Q-BIT - FOUND. 11100018 BAL SETRB,SETDF PICK UP VALUE,=Q-UCB NAME. 11200018 CLI MSCMD,X'4D' CHECK FOR LEFT PAREND 11300018 BE REXIT BRANCH IF YES 11400018 CH Q,TWO **THREE CHAR. ONLY IN Q UNIT NAME 11500018 BH ERRUNIT ERROR,PUT MESSAGE AABA 11600018 MVC SETQ(4),MSCMD SAVE UNIT NAME AND FORMAT CTL 11700018 B SETNX 11800018 BAL SETRB,SETDF PICKUP VOL. 11900018 MVC SETQVOLS(6),MSCMD SAVE VOL SERIAL. 12000018 C Q,SETVOLN EXACTLY 12100018 BNE SETERR+ERRCNT SIX CHARACTERS..Q. 12200018 B SETNX IS THERE NEXT KEY. 12300018 REXIT CLC MSCMD+1(3),FORMATQ FORMAT Q REQUESTED,NO UNIT GIVENAABA 12400018 BNE REXIT1 NO,BRANCH AABA 12500018 XI SETSW,BIT2 TURN OFF UNIT NAME SPECIFIED AABA 12600018 LA P,2(P,0) REG P TO FORMAT BYTE FOR DEFINE AABA 12700018 LA Q,1(0,0) INITIALIZE CHAR COUNT FOR DEFINEAABA 12800018 B REXIT2 AABA 12900018 REXIT1 MVC SETQ(4),MSCMD+1 UNIT NAME TO SAVE AREA AABA 13000018 CLI MSCMD+4,X'5D' IS THIS CHARACTER A RIGHT PAREN 13100018 BE SETNX IF YES THEN BRANCH 13200018 CLI MSCMD+4,C',' **CHAR FOLLOWING 3 CHAR Q UNIT AABA 13300018 * NAME MUST BE A COMMA AABA 13400018 BNE SETERR+ERRDEL ERROR,BRANCH AABA 13500018 BAL SETRB,SETDF GET NEXT FIELD 13600018 CLI MSCMD+1,X'5D' NEXT CHAR RIGHT PAREND 13700018 BNE SETERR+ERRDEL BRANCH NO TO ERROR 13800018 REXIT2 DS 0H AABA 13900018 MVC SETQ+3(1),MSCMD MOVE FORMAT CONTROL 14000018 B SETNX CONT. PROCESSING 14100018 ERRUNIT EX Q,MVC **FORMAT MESSAGE AABA 14200018 B QUNITER1 **BRANCH TO PUT OUT AABA 14300018 MVC MVC MSPASS(0),MSCMD **MOVE UNIT TO MESSAGE AREA AABA 14400018 SETKYP EQU * PROC=KEYWORD. 14500018 SPACE 14600018 LA SR15,CATJFCB ADDRESS CATALOG JFCB 14700018 USING INFMJFCB,SR15 FOR VOL SERIAL PLACEMENT. 14800018 SPACE 14900018 CLC SETKP,MSCMD 15000018 BNE SETKYA KEY NOT PROC, TEST NEXT ALTERN. 4562 15100018 OI SETSW,BIT3 PROC-BIT - FOUND. 15200018 BAL SETRB,SETDF GET VALUE,=PROC-UCB NAME. 15300018 MVC SETP(5),MSCMD 15400018 CLI MSCMD+3,C'/' **IS UNIT A 2321 AABA 15500018 BE PROC2321 VERIFY BIN NUMBER AABA 15600018 CH Q,TWO CHARACTER COUNT MUST NOT EXCEED AABA 15700018 BH ERRUNIT THREE AABA 15800018 B SETNX GET NEXT PARM AABA 15900018 PROC2321 DS 0H AABA 16000018 CLI MSCMD+4,X'F0' **IS BIN NUMBER VALID AABA 16100018 BNL SETNX **YES AABA 16200018 B ERRUNIT **NO,BRANCH AABA 16300018 BAL SETRB,SETDF PICKUP VOL SERIAL. 16400018 MVC JFCBVOLS(6),MSCMD SAVE VOL. 16500018 C Q,SETVOLN EXACTLY SIX 16600018 BNE SETERR+ERRCNT CHARACTERS..Q. 16700018 DROP SR15 JFCB ADDRESSING. 16800018 B SETNX NEXT KEY SEARCH. 16900018 SETTM EQU * TIME CONVERSION. 17000018 LA SETRB,7 17100018 CR Q,SETRB 17200018 BNE SETERR+ERRCNT NOT 8-CHAR TIME=HH.MM.SS. 17300018 XC SETDGT,SETDGT CLEAR WORK AREA. 17400018 MVC SETDGT+2(2),MSCMD HH ELIMINATE 17500018 MVC SETDGT+4(2),MSCMD+3 MM DECIMAL 17600018 MVC SETDGT+6(2),MSCMD+6 SS POINTS. 17700018 LA SETRSS,SETDGT+1 17800018 LA SETRCS,SETVT-1 17900018 LA SETRI,6 18000018 BAL SETRB,SETCD CHECK DIGITS. 18100018 MVC SETTIME(4),SETDGT+4 SAVE. 18200018 B SETNX 18300018 SETDT EQU * DATE CONVERSION. 18400018 LA SETRB,5 EXACTLY 6 CHAR. REQ. 18500018 CR Q,SETRB 18600018 BNE SETERR+ERRCNT CHARACTER COUNT ERROR. 18700018 XC SETDGT,SETDGT 18800018 MVC SETDGT+3(2),MSCMD ELIMINATE 18900018 MVC SETDGT+5(3),MSCMD+3 DECIMAL POINT. 19000018 LA SETRSS,SETDGT+2 19100018 LA SETRCS,SETVD-1 19200018 LA SETRI,5 19300018 CLC SETDGT+5(3),DATCK 19400018 BH SETERR+ERRNUM 19500018 BAL SETRB,SETCD CHECK DIGITS. 19600018 MVC SETDATE(4),SETDGT+4 SAVE. 19700018 B SETNX 19800018 SETCD EQU * DIGIT CHECKING. 19900018 LA SETRZ,C'0' 20000018 SR SETRSC,SETRSC 20100018 SR SETRCC,SETRCC 20200018 SETCDL EQU * 20300018 IC SETRSC,0(SETRI,SETRSS) SOURCE CHARACTER 20400018 IC SETRCC,0(SETRI,SETRCS) COMPARISON CHARACTER 20500018 CR SETRSC,SETRCC 20600018 BH SETERR+ERRNUM ERROR 20700018 CR SETRSC,SETRZ 20800018 BL SETERR+ERRNUM ERROR 20900018 BCT SETRI,SETCDL NEXT CHARACTER. 21000018 SPACE 21100018 MVZ SETDGT+7(1),SETPLUS + SIGN TO ZONE. 21200018 PACK SETDGT+4(4),SETDGT+2(6) 21300018 BR SETRB RETURN FOR SAVE. 21400018 *--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- -* 21500018 * ACCT * 21600018 *--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- -* 21700018 SETKYA EQU * 4562 21800018 CLC SETKA,MSCMD IS THE KEYWORD = ACCT 4562 21900018 BNE SETERR+ERRKEY NO - ERROR 4562 22000018 OI SETSW,BIT4 YES - INDICATE SO 4562 22100018 MVI SETAW,0 CLEAR THE WORKAREA 4562 22200018 MVC SETAW+1(7),SETAW 4562 22300018 BAL SETRB,SETDF PICK UP VALUE 4562 22400018 CLI MSCMD,COMMA ANY VALUE 4562 22500018 BE SETKYA12 NO - BRANCH 4562 22600018 CLI MSCMD,X'4D' DOES IT START WITH PARENTH4562 22700018 BE SETKYA0 YES - BRANCH 4562 22800018 CH Q,TWO IS IT A THREE-CHAR. UNIT 4562 22900018 BNE SETERR+ERRCNT NO - ERROR 4562 23000018 MVC SETAWUN(3),MSCMD YES - SAVE IT 4562 23100018 B SETKYA4 4562 23200018 SETKYA0 CH Q,THREE IS THE VALUE FOUR CHARACTERS 4562 23300018 BNE SETKYA2 NO - BRANCH 4562 23400018 CLI 4(P),COMMA YES - DOES IT END WITH A COMMA 4562 23500018 BNE SETERR+ERRDEL NO - ERROR 4562 23600018 MVC SETAWUN(3),MSCMD+1 YES - SAVE THE UNIT NAME 4562 23700018 SETKYA1 BAL SETRB,SETDF PICK UP NEXT VALUE 4562 23800018 CH Q,ONE IS IT TWO CHARACTER LONG 4562 23900018 BNE SETERR+ERRCNT NO - ERROR 4562 24000018 CLI 1(P),X'5D' YES - DOES IT END WITH A PARENTH4562 24100018 BNE SETERR+ERRDEL NO - ERROR 4562 24200018 MVC SETAWDI(1),MSCMD YES - SAVE DISPOSITION 4562 24300018 B SETKYA4 4562 24400018 SETKYA2 CH Q,FOUR IS THE VALUE FIVE CHARACTER LONG4562 24500018 BNE SETKYA3 NO - BRANCH 4562 24600018 CLI 4(P),X'5D' YES - DOES IT END WITH PARENTHESI4562 24700018 BNE SETERR+ERRDEL NO - ERROR 4562 24800018 MVC SETAWUN(3),MSCMD+1 YES - SAVE UNIT NAME 4562 24900018 B SETKYA4 4562 25000018 SETKYA3 CLI 1(P),COMMA IS UNIT NAME OMITTED 4562 25100018 BE SETKYA1 YES - BRANCH 4562 25200018 B SETERR+ERRCNT NO - ERROR 4562 25300018 * 4562 25400018 * CHECK UNIT NAME AND FIND UCB ADDRESS 4562 25500018 * 4562 25600018 SETKYA4 CLC SETAW(3),SETAWUN IS ANY UNIT NAME PROVIDED 4562 25700018 BE SETKYA10 NO - BRANCH AROUND UCB SEARCH 4562 25800018 L X,16 YES - GET CVT ADDRESS 4562 25900018 L X,CHCKLST(X) GET UCB LOOKUP TABLE ADDRES4562 26000018 L W,CHN TABLE END MARK 4562 26100018 SETKYA5 LH T,0(X) GET TABLE ENTRY 4562 26200018 NR T,W IS IT A HOLE 4562 26300018 BZ SETKYA8 YES - BRANCH 4562 26400018 CLR T,W IS IT END OF LIST 4562 26500018 BNE SETKYA7 NO - BRANCH 4562 26600018 MVC MSPASS(3),SETAWUN YES - ERROR 4562 26700018 SETKYA6 MVI MSERM,MSMSG010 DID NOT VERIFY UNIT N4562 26800018 B FETCH 4562 26900018 SETKYA7 EQU * 4562 27000018 USING UCBOB,T 4562 27100018 CLC UCBNAME,SETAWUN IS THIS THE SYS1.ACCT UCB 4562 27200018 BE SETKYA9 YES - BRANCH 4562 27300018 SETKYA8 LA X,2(X) NO - LOOP 4562 27400018 B SETKYA5 4562 27500018 * 4562 27600018 * CHECK DISPOSITION 4562 27700018 * 4562 27800018 SETKYA9 STH T,SETAWUAD SAVE UCB ADDRESS 4562 27900018 SETKYA10 CLI SETAWDI,0 IS ANY DISPOSITION PROVIDED 4562 28000018 BE SETKYA12 NO - BRANCH 4562 28100018 CLI SETAWDI,X'D5' YES - IS IT 'N' 4562 28200018 BE SETKYA11 YES - BRANCH 4562 28300018 MVC MSPASS(1),SETAWDI NO - ERROR 4562 28400018 B SETKYA6 DID NOT VERIFY DISP. 4562 28500018 SETKYA11 OI SETAWFL,64 DISPOSITION = NEW 4562 28600018 SETKYA12 B SETNX PROCESS NEXT KEYWORD 4562 28700018 * 4562 28800018 DROP T 28900018 *--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- -* 29000018 EJECT 29100018 SETXT EQU * KEY AND VALUE SCAN FINISHED. 29200018 SPACE 29300018 TM SETSW,BIT7 IS IT NO VALUE ERROR. 29400018 BO *+12 29500018 MVI MSERM,MSMSG004 NO VALUE ERROR MSG. 29600018 B FETCH 29700018 SPACE 29800018 LA SR13,SETSAVE POINT TO REG SAVE AREA. 29900018 SPACE 30000018 EJECT AABA 30100018 * AABA 30200018 SETQNTL DS 0H ** JOBQ PROCESSING ** AABA 30300018 TM MSNTAL,BIT6+BIT7 Q AND PROC AT IPL ONLY AABA 30400018 BO SETDCNTL AABA 30500018 * AABA 30600018 LA 0,SETEND-SETWKAR CORE FOR WORKAREA AABA 30700018 GETMAIN R,LV=(0) AABA 30800018 * AABA 30900018 LR SR9,SR1 ADDRESS OF GOTTEN AREA AABA 31000018 USING SETWKAR,SR9 ADDRESSABILITY AABA 31100018 * AABA 31200018 LA SR2,DSNAREA ADDRESS OF DSNAME TO AABA 31300018 ST SR2,PARM2 PARAMETER AREA AABA 31400018 MVI DSNAREA,BLANK BLANK DSNAME AREA AABA 31500018 MVC DSNAREA+1(43),DSNAREA AABA 31600018 LA SR2,SETWKAR ADDRESS OF WORKAREA FOR LOCATE AABA 31700018 ST SR2,PARM4 AND OBTAIN RTES. TO PARM LIST AABA 31800018 * AABA 31900018 MVC SETDGT(6),BLNKS BLANK WORKAREA AABA 32000018 MVC DSNAREA(13),JOBQDSN MOVE JOB+ DSNAME TO WORKAREA FORAABA 32100018 * LOCATE AND/OR OBTAIN AABA 32200018 TM SETSW,BIT2 UNITNAME FOR (Q) SPECIFIED AABA 32300018 BO QSPEC YES,PROCESS UNIT NAME AABA 32400018 BAL SETRB,SETLOC SEARCH CATALOG FOR DATA SET AABA 32500018 * UPON RETURN UCB ADDRESS IS IN SR1 AABA 32600018 SETQPASS DS 0H AABA 32700018 SLL SR1,16 ADJUST UCB POINTER TO LEFT HALF AABA 32800018 * REG AABA 32900018 IC SR1,SETQ+3 FORMAT CONTROL AABA 33000018 OI MSNTAL,BIT6 BIT6 INDICATES Q INITIALIZED AABA 33100018 ST SR1,SETQ SAVE FOR IEFINTQS AABA 33200018 * AABA 33300018 TM MSPFG,MSDATE AABA 33400018 BO *+16 AABA 33500018 L SR15,SETDATE AABA 33600018 L SR14,16 CUT ADDRESS AABA 33700018 ST SR15,56(SR14) DATE TO CVT AABA 33800018 * AABA 33900018 EJECT AABA 34000018 SETPNTL DS 0H ** PROC PROCESSING ** AABA 34100018 * AABA 34200018 MVC SETDGT(6),BLNKS BLANK WORKAREA AABA 34300018 MVC DSNAREA(13),PROCDSN PROC DSNAME TO PARM AREA AABA 34400018 TM SETSW,BIT3 UNITNAME FOR (PROC) SPECIFIED AABA 34500018 BO PROCSPEC YES,PROCESS UNITNAME AABA 34600018 BAL SETRB,SETLOC SEARCH CATALOG FOR DATA SET AABA 34700018 * UPON RETURN UCB ADDRESS IS CONTAINED IN SR1 AABA 34800018 SETPROC DS 0H AABA 34900018 OI MSNTAL,BIT7 BIT7, PROC INITIALIZED AABA 35000018 L R,SNRWT ADDRESS OF NRWT AABA 35100018 USING NRWTR,R * AABA 35200018 LA R,NRWTC POINT AT CATALOG-PROC-ENTRY AABA 35300018 TM NRWTF,NRWTFA IS FIRST ENTRY ACTIVE AABA 35400018 BZ *+8 NO,USE IT AABA 35500018 LA R,8(R) INCREMENT TO SECOND ENTRY AABA 35600018 STH SR1,NRWTSRT PROC UCB TO NRWT AABA 35700018 * AABA 35800018 USING UCBOB,SR1 AABA 35900018 MVC PROCVOL(6),VOLSRAR MOVE VOLUME SERIAL NUMBER AABA 36000018 OI SRTESTAT,X'04' SET PERMANENTLY RESIDENT AABA 36100018 LA 0,SETEND-SETWKAR LENGTH OF AREA TO BE FREED AABA 36200018 LR SR1,SR9 ADDRESS TO FREE AABA 36300018 FREEMAIN R,LV=(0),A=(1) FREE WORK AREA CORE AABA 36400018 L SR1,SETQ PARAMETER FOR IEFINTQS AABA 36500018 LINK EP=IEFINTQS AABA 36600018 LA 7,CATJFCB PARAMETER-JFCB ADDRESS AABA 36700018 L 8,NRWTTTR TTR PARAMETER AABA 36800018 LINK EP=IEEIC2NQ ENQUE PROC JFCB AABA 36900018 EJECT 37000018 SETDCNTL EQU * 37100018 * ANY PREVIOUS ERROR CANCELS DATE OR CLOCK. 37200018 TM MSERM,F 37300018 BNE FETCH 37400018 * EXECUTE ACCT 4562 37500018 TM SETSW,BIT4 ANY KEYWORD=ACCT FOUND 4562 37600018 BZ SETANOEX NO - DO NOT EXECUTE 4562 37700018 ENQ (QNAME,RNAME,E,2,SYSTEM) ENQUEUE 4562 37800018 L T,16 GET CVT ADDRESS 4562 37900018 L T,CVTACTP(T) 4562 38000018 MVC 0(2,T),SETAWUAD MOVE UCB ADDRESS 4562 38100018 MVC 7(1,T),SETAWFL MOVE FLAGS 4562 38200018 DEQ (QNAME,RNAME,2,SYSTEM) DEQUEUE 4562 38300018 SETANOEX EQU * 4562 38400018 SPACE 38500018 * CHECK FOR VALID DATE/CLOCK PARAMETERS. 38600018 TM SETSW,BIT0+BIT1 38700018 BNE *+6 38800018 SPACE 38900018 SVC EXIT * * * TO MCR, NO DATE OR CLOCK. 39000018 SPACE 39100018 TM SETSW,BIT1 39200018 BZ *+8 39300018 OI MSPFG,MSDATE TURN ON IPL DATE FLAG. 39400018 L SETRPKT,SETTIME LOAD SUPERVISOR REGISTERS 39500018 L SETRPKD,SETDATE 39600018 XCTL EP=IEEQOT00 39700018 EJECT AABA 39800018 * 39900018 DACELL5 DC X'2005' 40000018 DS 0F AABA 40100018 SETZERO DC X'0000000F' AABA 40200018 FORMATQ DC C',F)' AABA 40300018 * 40400018 SETDGT DS D DIGIT CHECKING SCRATCH. 40500018 SETAW DS D ACCT SAVE AREA 4562 40600018 SETAWUN EQU SETAW+1 UNIT NAME 4562 40700018 SETAWDI EQU SETAW+4 DISPOSITION 4562 40800018 SETAWFL EQU SETAW+5 FLAGS 4562 40900018 SETAWUAD EQU SETAW+6 UCB ADDRESS 4562 41000018 SETKA DC C'ACCT' KEY 4562 41100018 QNAME DC CL8'SYSIEFAR' 4562 41200018 RNAME DC CL2'WD' 4562 41300018 ONE DC H'1' 4562 41400018 TWO DC H'2' 4562 41500018 THREE DC H'3' 4562 41600018 FOUR DC H'4' 4562 41700018 FIVE DC H'5' 4562 41800018 SETSAVE DS 16F LINK SAVE AREA. 41900018 SNRWT DS F NRWT POINTER 42000018 SETTIME DC F'0' TIME CELL 42100018 SETDATE DC F'0' DATE CELL 42200018 SETVOLN DC F'6' XXXXXX) VOL CHAR COUNT. 42300018 SETQVOLS DC CL8' ' Q VOL SERIAL. 42400018 SETPUCB DC CL4' ' PROC UCB NAME. 42500018 SETP DC CL5' ' 42600018 DS 0F 42700018 SETQ DC CL4' ' UCB NAME FOR Q. 42800018 SETVT DC C'295959' TIME DIGITS UPPER BOUNDS. 42900018 SETVD DC C'99399' DATE DIGITS LOWER BOUNDS. 43000018 SETKT DC C'CLOCK' 43100018 SETKD DC C'DATE' KEY. 43200018 DATCK DC C'366' 43300018 SETKP DC C'PROC' PROCEDURES KEY WORD. 43400018 SETPLUS DC X'F0' PLUS FOR PACKED DATE/CLOCK. 43500018 SETSW DC X'00' SWITCHES. 43600018 * BIT0 CLOCK 43700018 * BIT1 DATE 43800018 * BIT2 Q 43900018 * BIT3 PROC 44000018 * BIT4 ACCT 18562 44100018 * BIT7 1=BLANK ON KEY SEARCH/0=BLANK VALUE - ERR. 44200018 SETSUP DC C'IEAQOT00' 44300018 EJECT AABA 44400018 * UNIT FOR JOBQ SPECIFIED IN SET COMMAND AABA 44500018 QSPEC MVC SETDGT(3),SETQ UNITNAME TO WORKAREA AABA 44600018 LA SETRB,SETQPASS RETURN ADDRESS AABA 44700018 UNITSPEC MVI SRCHSW,BIT6 INDICATE SEARCH ON UNIT NAME AABA 44800018 BAL SR12,UCBSRCH UCB SEARCH ROUTINE AABA 44900018 B QUNITERR **ERROR,BRANCH AABA 45000018 B OBTRTE BRANCH TO VERIFY AABA 45100018 EJECT AABA 45200018 * UNIT FOR PROCLIB SPECOFIED IN SET COMMAND AABA 45300018 PROCSPEC MVC SETDGT(5),SETP UNIT NAME TO WORK AREA AABA 45400018 LA SETRB,SETPROC RETURN ADDRESS AABA 45500018 B UNITSPEC FIND AND VERIFY UNIT AABA 45600018 EJECT AABA 45700018 QUNITERR MVC MSPASS(5),SETDGT UNIT NAME AABA 45800018 QUNITER1 MVI MSERM,MSMSG010 **NOT VERIFIED AABA 45900018 B FETCH AABA 46000018 EJECT 46100018 * AABA 46200018 * Q AND/OR PROC HAS NOT BEEN SPECIFIED ON THE SET COMMAND. AABA 46300018 * THE CATALOG WILL BE SEARCHED FOR THE DATA SET AABA 46400018 * IF NOT CATALOGED,THE DATA SET WILL BE ASSUMED TO EXIST ON THE AABA 46500018 * IPL VOLUME. AABA 46600018 * IF CATALOGED THE SYSTEM WILL DETERMINE THAT THE VOLUME IS MOUNTEDAABA 46700018 * AABA 46800018 *THE OBTAIN MACRO WILL BE ISSUED TO VERIFY THAT THE DATA SET IS ON AABA 46900018 * THE SELECTED VOLUME. AABA 47000018 * THE SELECTED VOLUME IS; AABA 47100018 * THE IPL VOLUME AABA 47200018 * VOLUME SPECIFIED IN THE CATALOG AABA 47300018 * THE VOLUME INDICATED BY THE SET AABA 47400018 * COMMAND AABA 47500018 SETLOC DS 0H AABA 47600018 XC PARM3,PARM3 ZERO PARM3 FOR LOCATE AABA 47700018 MVC PARM1(4),LOCCNTRL LOCATE CONTROL BYTE AABA 47800018 LA SR1,PARM1 INDICATE PARAMETER AREA AABA 47900018 * AABA 48000018 LOCATE (1) AABA 48100018 * AABA 48200018 LTR SR15,SR15 TEST RETURN CODE AABA 48300018 BC 7,LOCFAIL NOT 0, LOCATE FAILED AABA 48400018 * AABA 48500018 MVC VOLSRAR(6),VCBVOLSN MOVE VOLUME SERIAL FOR OBTAIN AABA 48600018 MVI SRCHSW,BIT5 INDICATE SEARCH ON VOLUME SERIALAABA 48700018 BAL SR12,UCBSRCH UCB SEARCH ROUTINE AABA 48800018 BC 15,NOVOLUME VOLUME NOT MOUNTED AABA 48900018 OBTRTE LA SR15,VOLSRAR ADDRESS OF VOLUME SERIAL AABA 49000018 ST SR15,PARM3 TO PARM AREA FOR OBTAIN AABA 49100018 MVC PARM1(4),OBTCNTRL OBTAIN CONTROL BYTE AABA 49200018 LA SR1,PARM1 INDICATE PARAMETER LIST AABA 49300018 * AABA 49400018 OBTAIN (1) AABA 49500018 * AABA 49600018 LTR SR15,SR15 OBTAIN SUCCESSFUL AABA 49700018 BC 7,OBTFAIL NOT 0, OBTAIN FAILED AABA 49800018 LR SR1,Y UCB ADDRESS FOR RETURN AABA 49900018 BR SETRB RETURN AABA 50000018 EJECT AABA 50100018 LOCFAIL MVI SRCHSW,BIT4 INDICATE SEARCH FOR IPL VOLUME AABA 50200018 BAL SR12,UCBSRCH UCB SERCH AABA 50300018 NOP *+4 NO ERROR RETURN AABA 50400018 USING UCBOB,Y UCB ADDRESS IN REG Y ON RETURN AABA 50500018 MVC VOLSRAR(6),SRTEVOLI VOLUME SERIAL TO WORKAREA AABA 50600018 B OBTRTE VERIFY DATA SET IS ON SYSRES AABA 50700018 DROP Y AABA 50800018 EJECT AABA 50900018 OBTFAIL BC 15,OBTFAIL(SR15) RETURN CODE=4=VOLUME NOT MOUNTEDAABA 51000018 BC 15,NOVOLUME RETURN CODE=8= D.S. NOT FOUND AABA 51100018 LA SR1,DSNTFND ADDRESS OF MESSAGE AABA 51200018 MVC DSNAME2(14),DSNAREA DATA SET NAME TO MESSAGE AABA 51300018 MVC SERIAL(6),VOLSRAR VOLUME SERIAL NUMBER TO MESSAGE AABA 51400018 B WRITE AABA 51500018 SPACE 2 AABA 51600018 NOVOLUME MVC VOLSRIAL(6),VOLSRAR VOLUME SERIAL NUMBER TO MESSAGE AABA 51700018 MVC DSNAME(14),DSNAREA DATA SET NAME TO MESSAGE AABA 51800018 LA SR1,VOLNTMNT ADDRESS OF MESSAGE AABA 51900018 B WRITE AABA 52000018 EJECT AABA 52100018 WRITE WTO MF=(E,(1)) AABA 52200018 * AABA 52300018 LA 0,SETEND-SETWKAR LENGTH OF WORK AREA AABA 52400018 LR SR1,SR9 ADDRESS OF AREA TO BE FREED AABA 52500018 FREEMAIN R,LV=(0),A=(1) AABA 52600018 * AABA 52700018 SVC EXIT AABA 52800018 EJECT AABA 52900018 **UCB SEARCH AABA 53000018 ** INPUT: WORKAREA CONTAINS UCB NAME OR VOLUME SERIAL AABA 53100018 ** (SETDGT) AABA 53200018 ** SWITCH SET TO INDICATE WHAT SEARCH TO MAKE NSETSW) AABA 53300018 ** BIT4-SEARCH FOR SYSTEM RESIDENCE VOLUME AABA 53400018 ** BITS-SEARCH ON VOLUME SERIAL NUMBER AABA 53500018 ** BIT6-SEARCH ON UNIT NAME AABA 53600018 ** OUTPUT:UCB ADDRESS RETURNED IN REG 10 AABA 53700018 ** EXIT: SR12-ERROR AABA 53800018 ** SR12+4-NORMAL AABA 53900018 UCBSRCH DS 0H AABA 54000018 L X,16 ADDRESS OF CVT AABA 54100018 L X,CHCKLST(X) TO SRT ADDRESSES AABA 54200018 LH W,CHF END OF LIST INDICATOR AABA 54300018 CHHW LH Y,0(X) UCB ADDRESS AABA 54400018 LTR Y,Y EMPTY SLOT IN LIST AABA 54500018 BZ CHLP YES,BRANCH AABA 54600018 CLR Y,W END OF UCB LIST AABA 54700018 BNE CHKUCB NO,BRANCH AABA 54800018 NOUCB BR SR12 END OF LIST AND UCB NOT VERIFIEDAABA 54900018 * ERROR RETURN AABA 55000018 USING UCBOB,Y AABA 55100018 CHKUCB MVC UNIT(3),UCBNAME ** AABA 55200018 TM SRCHSW,BIT5 ** AABA 55300018 BO SETVOL **VOLUME SERIAL SEARCH AABA 55400018 TM SRCHSW,BIT6 ** AABA 55500018 BO SETNAME **UNITNAME SEARCH AABA 55600018 * ** AABA 55700018 * **IPL VOLUME SEARCH AABA 55800018 TM SRTESTAT,SRTEONLI+SRTEPRES+SRTESYSR **SYS. RES. AABA 55900018 BC 14,CHLP **HO,GET NEXT AABA 56000018 BC 15,4(SR12) **NORMAL RET AABA 56100018 * AABA 56200018 SETVOL CLC SRTEVOLI(6),VOLSRAR **VOLUME SERIALS MATCH AABA 56300018 BE 4(SR12) **YES,RETURN AABA 56400018 CLC UCBTYP+2(2),DACELL5 **IS IT 2321 AABA 56500018 BNE CHLP **NO,GET NEXT UCB AABA 56600018 LA SR14,10(0,0) **LOOP CONTROL AABA 56700018 LA Y,DATACELL-UCBOB(0,Y) INCREMENT TO SUB UCB AABA 56800018 DCELCMP CLC DCELVOLI(6),VOLSRAR **VOLUME SERIALS MATCH AABA 56900018 BE 4(SR12) **YES RETURN AABA 57000018 LA Y,16(Y,0) INCREMENT TO NEXT AABA 57100018 BCT SR14,DCELCMP AABA 57200018 B CHLP **GET NEXT UCB AABA 57300018 * AABA 57400018 SETNAME CLC UCBNAME(3),SETDGT **UCB NAMES MATCH AABA 57500018 BNE CHLP **NO,GET NEXT UCB AABA 57600018 SETEQUAL CLI SETDGT+3,SLASH **IS IT A SUB UCB AZBA 57700018 BE DCEL01 **YES,BRANCH TO LOOK AABA 57800018 CLC UCBTYP+2(2),DACELL5 **IS IT 2321 AABA 57900018 BE QUNITERR **ERROR,BRANCH AABA 58000018 OC SRTEVOLI,SRTEVOLI **VOLUME READY AT IPL AABA 58100018 BZ QUNITERR **NO,ERROR AABA 58200018 MVC VOLSRAR(6),SRTEVOLI **VOLUME SERIAL TO WORKAREA AABA 58300018 B 4(SR12) **NORMAL RETURN AABA 58400018 * AABA 58500018 DCEL01 CLC UCBTYP+2(2),DACELL5 IS IT 2321 AABA 58600018 BNE 0(SR12) ERROR, UNIT INDICATES2321 AABA 58700018 GETSUB LA Y,DATACELL-UCBOB(0,Y) INCREMENT TO SUB UCB AABA 58800018 IC SR14,SETDGT+4 PICK UP BIN NUMBER AABA 58900018 N SR14,SETZERO ZERO ZONE AND REGISTER AABA 59000018 SLL SR14,4 TIMES 16 AABA 59100018 AR Y,SR14 POINT TO CORRECT SUB VCB AABA 59200018 USING DATACELL,Y AABA 59300018 OC DCELVOLI,DCELVOLI DEVICE READY AABA 59400018 BZ QUNITERR NO BRANCH AABA 59500018 MVC VOLSRAR(6),DCELVOLI VOLUME SERIAL TO OBTAIN AREA AABA 59600018 B 4(SR12) RETURN PTMREL17 59700018 * AABA 59800018 CHLP LA X,2(X) INCREMENT TO NEXT UCB AABA 59900018 B CHHW * AABA 60000018 * AABA 60100018 DS 0F ALIGNMENT AABA 60200018 CHN DC XL2'0' AABA 60300018 CHF DC XL2'FFFF' AABA 60400018 CHCKLST EQU 40 DISPLACEMENT TO SRT ADDRESSES AABA 60500018 SRCHSW DC X'00' * CONTROL AABA 60600018 DROP Y AABA 60700018 EJECT AABA 60800018 ** AABA 60900018 * CONSTANTS AABA 61000018 ** AABA 61100018 JOBQDSN DC C'SYS1.SYSJOBQE' JOBQ DATA SET NAME AABA 61200018 PROCDSN DC C'SYS1.PROCLIB ' PROCLIB DATA SET NAME AABA 61300018 * AABA 61400018 LOCCNTRL DC X'44000000' LOCATE CONTROL BYTE AABA 61500018 OBTCNTRL DC X'C1000000' OBTAIN CONTROL BYTE AABA 61600018 BLNKS DC XL6'40' AABA 61700018 EJECT AABA 61800018 DS 0F AABA 61900018 VOLNTMNT DC AL2(MESSEND1-*) MESSAGE LENGTH AABA 62000018 DC AL2(0) * AABA 62100018 DC C'IEE343A ' **MESSAGE ID A24024 62200018 VOLSRIAL DC C' , ' AABA 62300018 DSNAME DC CL14' ' DATA SET NAME AABA 62400018 DC C', NOT MOUNTED' * AABA 62500018 MESSEND1 EQU * * AABA 62600018 EJECT AABA 62700018 DS 0F AABA 62800018 DSNTFND DC AL2(MESSEND2-*) MESSAGE LENGTH AABA 62900018 DC AL2(0) * AABA 63000018 DC C'IEE344A ' **MESSAGE ID A24024 63100018 DSNAME2 DC CL14' ' DATA SET NAME AABA 63200018 DC C', NOT FOUND ON ' AABA 63300018 SERIAL DC C' , ' **VOLUME SERIAL NUMBER AABA 63400018 UNIT DC C' ' UNIT NAME AABA 63500018 MESSEND2 EQU * * AABA 63600018 EJECT 63700018 DS 0H 63800018 SETERR EQU * 63900018 BCTR ERRGPR,0 COUNT 64000018 BCTR ERRGPR,0 DELIMITER 64100018 BCTR ERRGPR,0 KEY 64200018 BCTR ERRGPR,0 POSITION 64300018 BCTR ERRGPR,0 VERB 64400018 BCTR ERRGPR,0 NUMERICS 64500018 STC ERRGPR,MSERM SAVE CODE. 64600018 FETCH EQU * 64700018 XCTL EP=IEEGK1GM 64800018 IEEGGLDN 64900018 TITLE 'SET SSS CATALOG JFCB' 65000018 CATJFCB DS 0D CATALOG JFCB 65100018 DC CL24'SYS1.PROCLIB' DATASET NAME DSNM 65200018 DC CL20' ' ------. 65300018 DC CL8' ' NAME OR VERSION. ELNM 65400018 DC XL1'01' OPEN MERGE TSDM 65500018 DC XL13'0' SYSTEM CODE 65600018 DC XL1'01' NO LABEL LTYP 65700018 DC XL1'0' SPARE. 65800018 DC XL2'0' FILE SEQUENCE. FLSQ * 65900018 DC XL2'0' VOL SEQUENCE. VLSQ 66000018 DC XL8'0' SPARE MASK MASK 66100018 DC XL6'0' DATES. CRDT,XPDT 66200018 DC XL1'0' INDICATOR 1. IND1 66300018 DC XL1'40' OLD INDICATOR 2.NEW/OLD IND2 * 66400018 * DCB FIELDS. 66500018 DC XL28'0' SPECIFIED IN DCB. 66600018 DC XL1'0' BLOCK AND TRACK NTCS 66700018 DC XL1'01' VOL SERIAL COUNT. NVOL * 66800018 PROCVOL DC CL30' ' VOL SERIAL. 66900018 DC XL4'0' VOL INFO. EXTL,EXAD 67000018 DC XL3'0' PRIMARY DA QUANTITY PQTY 67100018 DC XL1'0' DA QUANTITY TYPE. CTRI 67200018 DC XL3'0' 2NDARY DA QUANTITY. SQTY 67300018 DC XL1'0' INDICATOR EXTENT. IND3 67400018 DC XL3'0' DIRECTORY QUANTITY. DQTY 67500018 DC XL3'0' SPLIT JFCB. SPNM 67600018 DC XL2'0' TTR 1ST ALLOC. ABST 67700018 DC XL3'0' JFCB SUBALLOC. SBNM 67800018 DC XL3'0' AV REC LENGTH. DRLH 67900018 DC XL1'1' VOL COUNT. VLCT 68000018 DC XL1'0' SPLIT SPTN 68100018 DC XL4'0' TO 180 BYTES 68200018 TITLE 'SET SSS NEW READER/WRITER TABLE' 68300018 IEESETA DSECT 68400018 IEEGNRWT 68500018 TITLE 'SET SSS UCB' 68600018 IEESETB DSECT 68700018 IEFUCBOB 68800018 EJECT AABA 68900018 * AABA 69000018 * THE FOLLOWING DESCRIBES THE WORKAREA USED BY THE OBTAIN AABA 69100018 * AND LOCATE ROUTINES AND THE PARAMETERS PASSED TO THESE ROUTINES AABA 69200018 * AABA 69300018 WORKAREA DSECT AABA 69400018 DS 0D AABA 69500018 SETWKAR EQU * AABA 69600018 VCBCOUNT DS CL2 COUNT OF VOLUMES IN VCB ** AABA 69700018 VCBDEVTP DS CL4 DEVICE TYPE FOR VOLUME * AABA 69800018 VCBVOLSN DS CL6 VOLUME SERIAL NUMBER *** LOCATE WORKAREA AANA 69900018 VCBDSSQN DS CL2 DATA SET SEQ NUMBER * AABA 70000018 DS CL228 * AABA 70100018 VCBSPARE DS CL10 * AABA 70200018 VCBNXTCB DS CL4 TTR OF NEXT VCB * AABA 70300018 VCBINDXA DS CL3 TTR OF THIS INDEX BLOCK * AABA 70400018 VCBCVOLM DS CL6 CHTRL VOL ID FIELD ** AABA 70500018 * *** OBTAIN WORKAREA AABA 70600018 OBTWK DS CL85 TO MAKE AREA FOR OBTAIN ** AABA 70700018 * PARAMETER LIST FOR OBTAIN AND LOCATE ROUTINES AABA 70800018 DS 0F AABA 70900018 PARM1 DS F LOCATE/OBTAIN CONTROL BYTE AABA 71000018 PARM2 DS A ADDRESS OF DATA SET NAME AABA 71100018 PARM3 DS F ADDRESS OF VOLUME SERIAL FOR OBTAIN AABA 71200018 * ZERO FOR LOCATE AABA 71300018 PARM4 DS A ADDRESS OF WORKAREA AABA 71400018 SPACE 2 AABA 71500018 DSNAREA DS CL44 DATA SET NAME AREA AABA 71600018 VOLSRAR DS XL6 VOLUME SERIAL AREA AABA 71700018 SETEND EQU * END OF WORKAREA AABA 71800018 TITLE 'SET SSS JFCB MAP' 71900018 IEESETC DSECT 72000018 IEFJFCBN 72100018 END 72200018 ./ ADD SSI=00050091,NAME=IEEGK1GM,SOURCE=0 * FAULT ROUTINE * 00020000 * FUNCTION: THIS MODULE ASSEMBLES AND EDITS MESSAGES, AND ISSUES WTO * 00040000 * TO THE OPERATOR. * 00060000 * ENTRY POINTS: IEEGK1GM ROUTINE ALL MASTER * 00080000 * MODULES EXECUTING IN * 00100000 * PROBLEM PROGRAM * 00120000 * PARTITION. * 00140000 * INPUT: POINTER TO RESIDENT MASTER CORE, CONTAINING ONE BYTE MESSAGE * 00160000 * CODE. * 00180000 * OUTPUT: MESSAGE TO THE OPERATOR. * 00200000 * EXTERNAL REFERENCES: MASTER RESIDENT CORE. * 00220000 * EXITS: SVC 3 (EXIT) * 00240000 * TABLES/WORK AREAS: MASTER RESIDENT CORE, LOCAL MESSAGE ASSEMBLY * 00260000 * BUFFER, DICTIONARY TO AND TABLE OF PREFORMATTED TEXT. * 00280000 GBLC &SCHDLR 00300000 &SCHDLR SETC 'SSS' 00320000 MSCED IEEGMSLT DSECT,SMBL=YES 00340000 TITLE 'FAULT *** MESSAGE ASSEMBLY AND EDIT' 00360000 IEEGK1GM CSECT 00380000 * FAULT 00400000 * P. GUM 738134 D93(705) LD10660114 00420000 * 00440000 * VERSION 3 4/30/65 00460000 * 00480000 * ASSEMBLES AND EDITS MESSAGES FOR COMMAND EXECUTION. 00500000 * 00520000 * REGISTER ASSIGNMENTS 00540000 * 00560000 FAURTB EQU 2 ORIGIN OF TEXT TABLE. 00580000 FAURAB EQU 3 RESOLVED LOCATION OF TEXT. 00600000 FAURRL EQU 4 RELATIVE LOCATION OF TEXT. 00620000 FAURTI EQU 5 INDEX TO DICTIONARY. 00640000 * M MASTER CORE POINTER. 00660000 * P RESOLVED BUFFER POSITION. 00680000 * Q EXTENTS. 00700000 B EQU 13 RESIDENT DATA 00720000 FAUBFFRZ EQU 80 BUFFER EXTENT. 00740000 BALR BASE,0 00760000 USING *,BASE 00780000 L M,16 THRU CVT AGAIN 00800000 L M,IEEMSLTV(M) TO RESIDENT CORE. 00820000 USING IEEMSLT,M 00840000 LA B,MSCED 00860000 USING MSCED,B 00880000 LA FAURTB,FAUTEXT DICTIONARY AND TEXT 00900000 USING FAUTEXT,FAURTB ADDRESSING. 00920000 MVI MSERB,BLANK CLEAR 00940000 MVC MSERB+1(FAUBFFRZ-1),MSERB MESSAGE BUFFER 00960000 LA P,MSERB+L'FAUHDR AFTER HEADER. 00980000 SR Q,Q CLEAR EXTENT COUNTER. 01000000 SR FAURTI,FAURTI CLEAR INDEXER. 01020000 SPACE 01040000 IC FAURTI,MSERM LIFT BINARY ERROR CODE. 01060000 * GENERATE MESSAGE PREFIX. 01080000 MVC MSERB(L'FAUHDR),FAUHDR PREFIX SKELETON 01100000 CVD FAURTI,FAUDGT PACKED DECIMAL CODE. 01120000 UNPK FAUDGT(3),FAUDGT+6(2) 3 ZONED DIGITS. 01140000 OI FAUDGT+2,X'F0' SIGN(+) ZONE TO 1111. 01160000 MVC MSERB+3(3),FAUDGT INSERT NUMBER. 01180000 CLI MSERM,MSMSG010 'VERIFY' MESSAGE. 01200000 BE FAUVER YES. 01220000 CLI MSERM,MSMSG012 'REFERENCE' MESSAGE. 01240000 BE FAUREF YES. 01260000 CLI MSERM,MSMSG007 'READY' MESSAGE. 01280000 BNE *+8 NO. 01300000 MVI MSERB+6,C'A' SET ACTION INDICATOR. 01320000 SPACE 01340000 USING MSERB,P 01360000 SPACE 01380000 BCTR FAURTI,0 REDUCE BINARY CODE BY 1. 01400000 MH FAURTI,FAUDZ COMPUTE INDEX TO DICTIONARY. 01420000 SPACE 01440000 * PRIMARY TEXT. 01460000 LH FAURRL,FAUPT(FAURTI) RELATIVE PRIMARY TEXT ORIGIN. 01480000 LA FAURAB,FAUTEXT(FAURRL) ABSOLUTE LOCATION. 01500000 IC Q,FAUXP(FAURTI) PRIMARY EXTENT. 01520000 EX Q,FAUMOVE MOVE PRIMARY TEXT TO BUFFER. 01540000 SPACE 01560000 * VERB INSERTION. 01580000 LH FAURAB,FAUVB(FAURTI) RELATIVE VERB INSERTION LOC. 01600000 LTR FAURAB,FAURAB 0 01620000 BNH *+14 IMPLIES NONE. 01640000 LA FAURAB,MSERB(FAURAB) ABSOLUTE BUFFER POSITION. 01660000 MVC 0(8,FAURAB),MSVRB INSERT VERB. 01680000 LA P,1(Q,P) SECONDARY BUFFER POSITION. 01700000 SPACE 2 01720000 * SECONDARY TEXT. 01740000 LH FAURRL,FAUST(FAURTI) RELATIVE LOCATION OF SECONDARY. 01760000 SR Q,Q CLEAR COUNT 01780000 LTR FAURRL,FAURRL 0 01800000 BNH *+16 IMPLIES NONE. 01820000 LA FAURAB,FAUTEXT(FAURRL) ABSOLUTE 2NDARY TEXT LOCATION. 01840000 IC Q,FAUXS(FAURTI) 2NDARY EXTENT. 01860000 EX Q,FAUMOVE PUT. 01880000 * MESSAGE LENGTH. 01900000 LR S,P 01920000 AR S,Q 01940000 * SECONDARY INSERTION. 01960000 IC Q,FAUIS(FAURTI) RELATIVE 2NDARY INSERT POSITION. 01980000 LA P,0(P,Q) ABSOLUTE BUFFER POSITION. 02000000 LH FAURRL,FAUIM(FAURTI) RESIDENT MASTER RELATIVE SOURCE. 02020000 LA FAURAB,0(M,FAURRL) ABSOLUTE SOURCE LOCATION. 02040000 IC Q,FAUXI(FAURTI) EXTENT. 02060000 LTR Q,Q 0 02080000 BNH *+8 IMPLIES NONE. 02100000 EX Q,FAUMOVE IMBED IT. 02120000 AR S,Q **** MAY BE DOUBLE ADD OF INSERT. 02140000 * TO WTO FOR PUT TO OPERATOR. 02160000 MVI MSERM,X'00' KILL FLAGS. 02180000 DROP P 02200000 LA Q,MSERB-8 3 CHARACTERS BEYOND MSG. 02220000 SR S,Q 02240000 STH S,FAUBWTO SAVE LENGTH. 02260000 LA 1,FAUBWTO 02280000 SVC 35 WTO 02300000 SVC EXIT 02320000 FAUVER EQU * 'VERIFY' MESSAGE. 02340000 MVI MSERM,X'00' KILL FLAGS. 02360000 MVC FAUBFFR(FAUREFX-FAUVERX),FAUVERX MOVE MESSAGE. 02380000 MVC FAUBFFR+13(8),MSPASS UNITNAME. 02400000 LA 1,FAUBFFR 02420000 WTO MF=(E,(1)) 02440000 SVC EXIT 02460000 FAUREF EQU * 'REFERENCE' MESSAGE. 02480000 MVI MSERM,X'00' KILL FLAGS. 02500000 MVC FAUBFFR(FAUREFXE-FAUREFX),FAUREFX MOVE MESSAGE. 02520000 MVC FAUBFFR+13(8),MSPASS UNITNAME. 02540000 LA 1,FAUBFFR 02560000 WTO MF=(E,(1)) 02580000 SVC EXIT 02600000 FAUDGT DC D'0' ERROR CODE CONVERSION TO DECIMAL. 02620000 FAUHDR DC C'IEE I ' PREFIX SKELETON. 02640000 FAUDZ DC H'12' ENTRY SIZE. 02660000 FAUMOVE MVC 0(1,P),0(FAURAB) EXECUTED MOVE INTO BUFFER. 02680000 DS 0F 02700000 FAUBWTO DC AL2(FAUBFFRZ) 02720000 DC X'0000' LOCAL BUFFER FOR SSS 02740000 FAUBFFR DS 80C 02760000 MSERB EQU FAUBFFR LOCAL BUFFER ADDRESSING. 02780000 TITLE 'FAULT *** DICTIONARY' 02800000 FAUVERX EQU * VERIFY 02820000 DC AL2(FAUREFX-FAUVERX) 02840000 DC AL2(0) 02860000 DC C'IEE901I NOT VERIFIED.' 02880000 FAUREFX EQU * REFERENCE. 02900000 DC AL2(FAUREFXE-FAUREFX) 02920000 DC AL2(0) 02940000 DC C'IEE905I REFERENCE ' 02960000 DC C'ILLEGAL.' 02980000 FAUREFXE EQU * 03000000 FAUTEXT DS 0H 03020000 * COMPOSITION ERROR - CHAR. COUNT 001 03040000 FAUPT DC AL2(FAUPS1-FAUTEXT) PRIMARY TEXT. 03060000 FAUVB DC AL2(FAUPI1-FAUPS1) VERB. 03080000 FAUST DC AL2(FAUSS1-FAUTEXT) SECONDARY TEXT. 03100000 FAUIM DC XL2'00' INSERT MATERIAL. 03120000 FAUXP DC AL1(FAUPL1+L'FAUPL1-FAUPS1-1) PRIMARY EXTENT. 03140000 FAUXS DC AL1(L'FAUSS1-1) SECONDARY EXTENT. 03160000 FAUIS DC XL1'00' SECONDARY INSERT. 03180000 FAUXI DC XL1'00' SECONDARY INSERT EXTNT 03200000 * COMPOSITION ERROR - DELIMITER 002 03220000 DC AL2(FAUPS1-FAUTEXT) 03240000 DC AL2(FAUPI1-FAUPS1) 03260000 DC AL2(FAUSS2-FAUTEXT) 03280000 DC XL2'00' 03300000 DC AL1(FAUPL1+L'FAUPL1-FAUPS1-1) 03320000 DC AL1(L'FAUSS2-1) 03340000 DC XL2'00' 03360000 * COMPOSITION ERROR - KEY 003 03380000 DC AL2(FAUPS1-FAUTEXT) 03400000 DC AL2(FAUPI1-FAUPS1) 03420000 DC AL2(FAUSS3-FAUTEXT) 03440000 DC XL2'00' 03460000 DC AL1(FAUPL1+L'FAUPL1-FAUPS1-1) 03480000 DC AL1(L'FAUSS3-1) 03500000 DC XL2'00' 03520000 * COMPOSITION ERROR - POSITION 004 03540000 DC AL2(FAUPS1-FAUTEXT) 03560000 DC AL2(FAUPI1-FAUPS1) 03580000 DC AL2(FAUSS4-FAUTEXT) 03600000 DC XL2'00' 03620000 DC AL1(FAUPL1+L'FAUPL1-FAUPS1-1) 03640000 DC AL1(L'FAUSS4-1) 03660000 DC XL2'00' 03680000 * COMPOSITION ERROR - VERB 005 03700000 DC AL2(FAUPS1-FAUTEXT) 03720000 DC AL2(FAUPI1-FAUPS1) 03740000 DC AL2(FAUSS5-FAUTEXT) 03760000 DC XL2'00' 03780000 DC AL1(FAUPL1+L'FAUPL1-FAUPS1-1) 03800000 DC AL1(L'FAUSS5-1) 03820000 DC XL2'00' 03840000 * COMPOSITION ERROR - NUMERICS 006 03860000 DC AL2(FAUPS1-FAUTEXT) 03880000 DC AL2(FAUPI1-FAUPS1) 03900000 DC AL2(FAUSS6-FAUTEXT) 03920000 DC XL2'00' 03940000 DC AL1(FAUPL1+L'FAUPL1-FAUPS1-1) 03960000 DC AL1(L'FAUSS6-1) 03980000 DC XL2'00' 04000000 * SSS COMMAND REQUEST 007 04020000 DC AL2(FAUPS2-FAUTEXT) 04040000 DC FL2'0' 04060000 DC FL2'0' 04080000 DC FL2'0' 04100000 DC AL1(L'FAUPS2-1) 04120000 DC FL3'0' 04140000 * VARY 008 04160000 DC AL2(FAUPS3-FAUTEXT) 04180000 DC AL2(FAUPI3-FAUPS3) 04200000 DC AL2(FAUSS7-FAUTEXT) 04220000 DC AL2(MSPASS-IEEMSLT) 04240000 DC AL1(L'FAUPS3+8) 04260000 DC AL1(L'FAUSS7+2) 04280000 DC AL1(FAUSI7-FAUSS7) 04300000 DC FL1'2' 04320000 * MOUNT 009 04340000 DC AL2(FAUPS4-FAUTEXT) 04360000 DC FL2'0' 04380000 DC FL4'0' 04400000 DC AL1(FAUPL4+L'FAUPL4-FAUPS4-1) 04420000 DC FL3'0' 04440000 * VERIFY 010 04460000 DC AL2(FAUPS5-FAUTEXT) 04480000 DC AL2(FAUPI5-FAUPS5) 04500000 DC AL2(FAUSS8-FAUTEXT) 04520000 DC AL2(MSPASS-IEEMSLT) 04540000 DC AL1(L'FAUPS5+8) 04560000 DC AL1(L'FAUSS8-1) 04580000 DC AL1(L'FAUSS8) 04600000 DC FL1'7' 04620000 * DEFER 011 04640000 DC AL2(FAUPS5-FAUTEXT) 04660000 DC AL2(FAUPI5-FAUPS5) 04680000 DC AL2(FAUSS9-FAUTEXT) 04700000 DC FL2'0' 04720000 DC AL1(L'FAUPS5+8) 04740000 DC AL1(FAUSL9+L'FAUSL9-FAUSS9-1) 04760000 DC FL2'0' 04780000 * REFERENCE 012 04800000 DC AL2(FAUPS5-FAUTEXT) 04820000 DC AL2(FAUPI5-FAUPS5) 04840000 DC AL2(FAUSS10-FAUTEXT) 04860000 DC AL2(MSPASS-IEEMSLT) 04880000 DC AL1(L'FAUPS5+8) 04900000 DC AL1(FAUSL10-FAUSS10+L'FAUSL10-1) 04920000 DC AL1(FAUSI10-FAUSS10) 04940000 DC FL1'7' 04960000 * REJECT 013 04980000 DC AL2(FAUSS11-FAUTEXT) 05000000 DC XL6'0' 05020000 DC AL1(L'FAUSS11+L'FAUSL11-1) 05040000 DC XL3'0' 05060000 TITLE 'FAULT *** TEXT' 05080000 FAUPS1 DC C' ' 05100000 FAUPI1 DC CL8' ' 05120000 FAUPL1 DC C' SYNTAX ERROR. ' 05140000 FAUSS1 DC C'CHARACTER COUNT.' 05160000 FAUSS2 DC C'IMPROPER DELIMITER.' 05180000 FAUSS3 DC C'UNIDENTIFIABLE KEY WORD.' 05200000 FAUSS4 DC C'MISSING POSITIONAL PARAMETER.' 05220000 FAUSS5 DC C'UNIDENTIFIABLE VERB.' 05240000 FAUSS6 DC C'INVALID NUMERICS.' 05260000 FAUPS2 DC C'READY.' 05280000 FAUPS4 DC C'MOUNT TO LOADED ' 05300000 FAUPL4 DC C'DEVICE REJECTED.' 05320000 SPACE 05340000 FAUPS3 DC C'STATUS ' 05360000 FAUPI3 DC CL9' ' 05380000 FAUSS7 DC C'DEVICE ' 05400000 FAUSI7 DC CL3' ' 05420000 FAUPS5 DC C' ' 05440000 FAUPI5 DC CL9' ' 05460000 FAUSS8 DC C'DID NOT VERIFY ' 05480000 FAUSS9 DC C'DEFERRED' 05500000 FAUSL9 DC C'.' 05520000 FAUSS10 DC C'REFERENCES ' 05540000 FAUSI10 DC CL9' ' 05560000 FAUSL10 DC C'ILLEGALLY.' 05580000 FAUSS11 DC C' REJECTED. SET DATE' 05600000 FAUSL11 DC C' REQUIRED.' 05620000 END 05640000 ./ ADD SSI=00052342,NAME=IEEICN01,SOURCE=0 ********************************************************************** 01000014 * * 02000014 * FUNCTION. TO CONVERT RECORD NUMBERS TO TTR'S FOR WRITERS OTHER * 03000014 * THAN THE CLASS A WRITER AND STORE THE TTR IN THE NRWT * 04000014 * * 05000014 * ENTRY. IEEICN01 AT IPL ONLY * 06000014 * FROM. IEEMCR01 AFTER SET DATE COMMAND * 07000014 * * 08000014 * INPUT. ADDRESS OF NRWT IN R5 * 09000014 * * 10000014 * OUTPUT TTR IN NRWT FOR ALL WRITER JFCB'S * 11000014 * * 12000014 * EXITS TO IEFSD006 TO GET TTR'S * 13000014 * * 14000014 ********************************************************************** 15000014 EJECT 16000014 NRWT DSECT 17000014 IEEGNRWT 18000014 SPACE 19000014 IEFSD005 20000014 SPACE 21000014 IEEICN01 CSECT 22000014 USING *,15 23000014 LR R2,R14 SAVE CONTENTS OF RETURN REGISTER 24000014 LA R13,IEESVE SAVE AREA ADDRESS TO REG 13 25000014 L R15,IEFSD6 ADDRESS OF REC NO-TTR CONVERSION RTE 26000014 SPACE 27000014 LA R1,SDJFCB19 RECORD NUMBER 28000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 29000014 ST R1,40(R5) STORE TTR IN NRWT 30000014 SPACE 31000014 LA R1,SDJFCB20 RECORD NUMBER 32000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 33000014 ST R1,48(R5) STORE TTR IN NRWT 34000014 SPACE 35000014 LA R1,SDJFCB7 RECORD NUMBER 36000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 37000014 ST R1,56(R5) STORE TTR IN NRWT 38000014 SPACE 39000014 LA R1,SDJFCB8 RECORD NUMBER 40000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 41000014 ST R1,64(R5) STORE TTR IN NRWT 42000014 SPACE 43000014 LA R1,SDJFCB9 RECORD NUMBER 44000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 45000014 ST R1,72(R5) STORE TTR IN NRWT 46000014 SPACE 47000014 LA R1,SDJFCB10 RECORD NUMBER 48000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 49000014 ST R1,80(R5) STORE TTR IN NRWT 50000014 SPACE 51000014 LA R1,SDJFCB11 RECORD NUMBER 52000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 53000014 ST R1,88(R5) STORE TTR IN NRWT 54000014 SPACE 55000014 LA R1,SDJFCB12 RECORD NUMBER 56000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 57000014 ST R1,96(R5) STORE TTR IN NRWT 58000014 SPACE 59000014 LA R1,SDJFCB13 RECORD NUMBER 60000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 61000014 ST R1,104(R5) STORE TTR IN NRWT 62000014 SPACE 63000014 LA R1,SDJFCB14 RECORD NUMBER 64000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 65000014 ST R1,112(R5) STORE TTR IN NRWT 66000014 SPACE 67000014 LA R1,SDJFCB15 RECORD NUMBER 68000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 69000014 ST R1,120(R5) STORE TTR IN NRWT 70000014 SPACE 71000014 LA R1,SDJFCB16 RECORD NUMBER 72000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 73000014 ST R1,128(R5) STORE TTR IN NRWT 74000014 SPACE 75000014 LA R1,SDJFCB17 RECORD NUMBER 76000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 77000014 ST R1,136(R5) STORE TTR IN NRWT 78000014 SPACE 79000014 LA R1,SDJFCB18 RECORD NUMBER 80000014 BALR R14,R15 EXIT TO IEFSD006 FOR TTR CONVERSION 81000014 ST R1,144(R5) STORE TTR IN NRWT 82000014 SPACE 83000014 LR R14,R2 RESTORE RETURN ADDRESS 84000014 BR R14 RETURN 85000014 EJECT 86000014 IEESVE DS 18F SAVE AREA 87000014 SPACE 88000014 IEFSD6 DC V(IEFSD006) 89000014 SPACE 90000014 R1 EQU 1 91000014 R2 EQU 2 92000014 R5 EQU 5 93000014 R13 EQU 13 94000014 R14 EQU 14 95000014 R15 EQU 15 96000014 END 97000014 ./ ADD SSI=00058101,NAME=IEEIC2NQ,SOURCE=0 * * 00020000 * * 00040000 *********************************************************************** 00060000 * * 00080000 * ENQUEUE JFCB FOR START AND SET ROUTINES * 00100000 * * 00120000 *********************************************************************** 00140000 * * 00160000 * FUNCTION/OPERATION: THIS ROUTINE SETS UP THE PARAMETER LIST FOR * 00180000 * Q-MANAGER TO WRITE A JFCB OUT ONTO DISK. * 00200000 * * 00220000 * ENTRY POINTS: CSECT - IEEIC2NQ FROM: CSECT - IEEIC1PE * 00240000 * CSECT - IEEGESTO * 00260000 * * 00280000 * INPUT: 1.POINTER TO JFCB TO BE WRITTEN OUT IN REGISTER 7. * 00300000 * 2.RELATIVE TRACK ADDRESS IN REGISTER 8. * 00320000 * * 00340000 * OUTPUT: JFCB ON DISK. * 00360000 * * 00380000 * EXTERNAL ROUTINES: IEFQMSSS - QUEUE MANAGER TABLE ENQUEUE * 00400000 * SUBROUTINE. * 00420000 * * 00440000 * EXITS-NORMAL: BRANCH RETURN ON REGISTER 14. * 00460000 * * 00480000 * EXITS-ERROR: NONE. * 00500000 * * 00520000 * TABLES/WORK AREAS: QUEUE MANAGER PARAMETER LIST. * 00540000 * * 00560000 *********************************************************************** 00580000 * * 00600000 * * 00620000 TITLE 'ENQUEUE THE JFCB FOR START' 00640000 IEEIC2NQ CSECT 00660000 SPACE 00680000 NQP EQU 1 00700000 NQB EQU 9 00720000 NQC EQU 7 CORE JFCB INPUT 00740000 NQT EQU 8 TTR INPUT 00760000 NQS EQU 13 00780000 NQR EQU 14 00800000 NQE EQU 15 00820000 STM 0,15,0(13) 00840000 BALR NQB,0 00860000 USING *,NQB 00880000 NQSTART EQU * 00900000 ST NQS,NQSAVE 00920000 ST NQC,QMPCA 00940000 IC NQT,QMLNK ZERO LOW-ORDER BYTE OF TTR WD. 00960000 ST NQT,QMPEX 00980000 LA NQP,QMPARM QM PARAMETERS. 01000000 LA NQS,QMSAVE FOR SAVE. 01020000 L NQE,QMMOD 01040000 B NQDMPE 01060000 LA 10,NQSTART DUMP 01080000 LA 11,NQEND-NQSTART 01100000 SVC 44 01120000 NQDMPE EQU * 01140000 * CALL Q-MANAGER FOR JFCB WRITE. 01160000 BALR NQR,NQE Q WRITE. 01180000 ST NQE,NQQMRC 01200000 L NQS,NQSAVE 01220000 LM 0,15,0(13) 01240000 BALR 0,14 01260000 EJECT 01280000 * 01300000 * (WRITE) QUEUE MANAGER PARAMETER LIST (SSS). 01320000 * 01340000 QMPARM DS 0D 01360000 QMNAM EQU * 01380000 QMCAN DC F'0' SJQ ECB. 01400000 QMPEB DC A(QMECB) LOCAL ECB ADDRESS. 01420000 QMPOP DC X'03' WRITE * 01440000 QMTID DC FL2'0' RELATIVE TT 01460000 QMTST DC FL1'0' TRACK STATION 01480000 QMTLN DC FL2'0' TRACK LINKAGE 01500000 QMNOT DC FL1'0' TRACK COUNT 01520000 QMTPY DC FL1'0' JOBTYPE 01540000 QMSTA DC FL1'0' JOB STATUS 01560000 QMPRI DC X'4E' JOB PRIORITY 01580000 QMLNK DC FL2'0' SPARE. 01600000 DS 12C SPARE 01620000 QMPCM EQU * ASSIGNED RECORDS 01640000 QMPNC EQU * NUMBER OF RECORDS * 01660000 DC X'11' 01680000 QMPCL DC AL3(QMPCA) ADDRESS LIST. 01700000 SPACE 2 01720000 QMPCA DS F CORE JFCB * 01740000 QMPEX DS F TTR JFCB DISK * 01760000 SPACE 2 01780000 QMECB DS F LOCAL ECB 01800000 SPACE 2 01820000 QMSAVE DS 16F REGISTER SAVE 01840000 SPACE 01860000 QMMOD DC V(IEFQMSSS) 01880000 NQSAVE DS F SAVE 13. 01900000 NQQMRC DS F Q-MANAGER RETURN CODE. 01920000 NQEND EQU * LAST 01940000 END 01960000 ./ ADD SSI=01050773,NAME=IEEIC3JF,SOURCE=0 * * 00020000 * * 00040000 *********************************************************************** 00060000 * * 00080000 * JFCB'S FOR START ROUTINE * 00100000 * * 00120000 *********************************************************************** 00140000 * * 00160000 * FUNCTION/OPERATION: THIS MODULE CONTAINS THE PREFORMATTED JFCB'S * 00180000 * USED FOR START COMMAND EXECUTION. THE MODULE IS LOADED INTO * 00200000 * CORE BY IEEIC1PE, A JFCB IS MOVED INTO START ROUTINE LOCAL * 00220000 * CORE AND THE MODULE IS THEN DELETED. * 00240000 * * 00260000 * ENTRY POINTS: CSECT - IEEIC3JF FROM: CSECT - IEEIC1PE * 00280000 * * 00300000 * INPUT: NONE. * 00320000 * * 00340000 * OUTPUT: NONE - IEEIC1PE PICKS OUT AND MOVES THE JFCB. * 00360000 * * 00380000 * EXTERNAL ROUTINES: NONE. * 00400000 * * 00420000 * EXITS-NORMAL: NONE - IEEIC1PE DELETES IEEIC3JF AFTER MOVING JFCB. * 00440000 * * 00460000 * EXITS-ERROR: NONE. * 00480000 * * 00500000 * TABLES/WORK AREAS: NONE. * 00520000 * * 00540000 *********************************************************************** 00560000 * * 00580000 * * 00600000 TITLE 'START COMMAND JFCB BLOCKS' 00620000 IEEIC3JF CSECT 00640000 SPACE 00660000 DC A(JFCBRDR) INPUT (RDR) JFCB. 00680000 DC A(JFCBWTR) OUTPUT (WTR) JFCB. 00700000 * VERSION 3 7/27/65 00720000 SPACE 2 00740000 TITLE 'START JFCB INPUT UNIT RECORD' 00760000 JFCBRDR EQU * READER 00780000 SPACE 2 00800000 * UNIT RECORD 00820000 SPACE 00840000 DC CL24'SYSIN' DATASET NAME DSNM 00860000 DC CL20' ' ------. 00880000 DC CL8' ' NAME OR VERSION. ELNM 00900000 DC XL1'01' OPEN MERGE TSDM 00920000 DC XL13'0' SYSTEM CODE 00940000 DC XL1'02' STANDARD LABEL. LTYP 00960000 DC XL1'0' SPARE. 00980000 DC XL2'0' FILE SEQUENCE. FLSQ * 01000000 DC XL2'0' VOL SEQUENCE. VLSQ 01020000 DC XL8'0' SPARE MASK MASK 01040000 DC XL6'0' DATES. CRDT,XPDT 01060000 DC XL1'0' INDICATOR 1. IND1 01080000 DC XL1'40' OLD INDICATOR 2.NEW/OLD IND2 * 01100000 * DCB FIELDS. 01120000 DC AL1(0) BUFNO,BUFRQ. 01140000 DC BL1'01000010' BFTEK,BFALN. 01160000 DC AL2(80) BUFL. 01180000 DC BL1'01000000' EROPT. 01200000 DC BL1'01000001' MODE,STACK. 01220000 DC AL1(0) DEN. 01240000 DC AL3(0) LIMCT. 01260000 DC BL2'0100000000000000' DSORG. 01280000 DC BL1'10111000' RECFM. 01300000 DC AL1(0) OPTCD. 01320000 DC AL2(80) BLKSIZE. 01340000 DC AL2(80) LRECL. 01360000 DC AL1(0) NCP. 01380000 DC AL1(0) NTM. 01400000 DC AL2(0) RKP. 01420000 DC AL1(0) CYLOFL. 01440000 DC AL1(0) DBUFNO. 01460000 DC AL1(0) INTVL. 01480000 DC AL1(0) CPRI. 01500000 DC AL2(0) SOWA. 01520000 DC XL1'0' BLOCK AND TRACK NTCS 01540000 DC XL1'01' VOL SERIAL COUNT. NVOL * 01560000 DC CL30'SYSIN' VOL SERIALS VOLS 01580000 DC XL4'0' VOL INFO. EXTL,EXAD 01600000 DC XL3'0' PRIMARY DA QUANTITY PQTY 01620000 DC XL1'0' DA QUANTITY TYPE. CTRI 01640000 DC XL3'0' 2NDARY DA QUANTITY. SQTY 01660000 DC XL1'0' INDICATOR EXTENT. IND3 01680000 DC XL3'0' DIRECTORY QUANTITY. DQTY 01700000 DC XL3'0' SPLIT JFCB. SPNM 01720000 DC XL2'0' TTR 1ST ALLOC. ABST 01740000 DC XL3'0' JFCB SUBALLOC. SBNM 01760000 DC XL3'0' AV REC LENGTH. DRLH 01780000 DC XL1'1' VOL COUNT. VLCT 01800000 DC XL1'0' SPLIT SPTN 01820000 DC XL4'0' TO 180 01840000 TITLE 'START JFCB INPUT TAPE LIKE' 01860000 * TAPE LIKE. 01880000 SPACE 01900000 DC CL24'SYSIN' DATASET NAME DSNM 01920000 DC CL20' ' ------. 01940000 DC CL8' ' NAME OR VERSION. ELNM 01960000 DC XL1'01' OPEN MERGE TSDM 01980000 DC XL13'0' SYSTEM CODE 02000000 DC XL1'02' STANDARD LABEL. LTYP 02020000 DC XL1'0' SPARE. 02040000 DC XL2'0' FILE SEQUENCE. FLSQ * 02060000 DC XL2'0' VOL SEQUENCE. VLSQ 02080000 DC XL8'0' SPARE MASK MASK 02100000 DC XL6'0' DATES. CRDT,XPDT 02120000 DC XL1'0' INDICATOR 1. IND1 02140000 DC XL1'40' OLD INDICATOR 2.NEW/OLD IND2 * 02160000 * DCB FIELDS. 02180000 DC AL1(0) BUFNO,BUFRQ. 02200000 DC BL1'01000010' BFTEK,BFALN. 02220000 DC AL2(80) BUFL. 02240000 DC BL1'01000000' EROPT. 02260000 DC BL1'00010011' TRTCH. 02280000 DC BL1'00000011' DEN. 02300000 DC AL3(0) LIMCT. 02320000 DC BL2'0100000000000000' DSORG. 02340000 DC BL1'10111000' RECFM. 02360000 DC AL1(0) OPTCD. 02380000 DC AL2(80) BLKSIZE 02400000 DC AL2(80) LRECL. 02420000 DC AL1(0) NCP. 02440000 DC AL1(0) NTM. 02460000 DC AL2(0) RKP. 02480000 DC AL1(0) CYLOFL. 02500000 DC AL1(0) DBUFNO. 02520000 DC AL1(0) INTVL. 02540000 DC AL1(0) CPRI. 02560000 DC AL2(0) SOWA. 02580000 DC XL1'0' BLOCK AND TRACK NTCS 02600000 DC XL1'01' VOL SERIAL COUNT. NVOL * 02620000 DC CL30'SYSIN' VOL SERIALS VOLS 02640000 DC XL4'0' VOL INFO. EXTL,EXAD 02660000 DC XL3'0' PRIMARY DA QUANTITY PQTY 02680000 DC XL1'0' DA QUANTITY TYPE. CTRI 02700000 DC XL3'0' 2NDARY DA QUANTITY. SQTY 02720000 DC XL1'0' INDICATOR EXTENT. IND3 02740000 DC XL3'0' DIRECTORY QUANTITY. DQTY 02760000 DC XL3'0' SPLIT JFCB. SPNM 02780000 DC XL2'0' TTR 1ST ALLOC. ABST 02800000 DC XL3'0' JFCB SUBALLOC. SBNM 02820000 DC XL3'0' AV REC LENGTH. DRLH 02840000 DC XL1'1' VOL COUNT. VLCT 02860000 DC XL1'0' SPLIT SPTN 02880000 DC XL4'0' TO 180 02900000 TITLE 'START JFCB INPUT DIRECT ACCESS' 02920000 * DIRECT ACCESS. 02940000 DC CL24'SYSIN' DATASET NAME DSNM - 02960000 DC CL20' ' ------. 02980000 DC CL8' ' NAME OR VERSION. ELNM 03000000 DC XL1'01' OPEN MERGE TSDM 03020000 DC XL13'0' SYSTEM CODE 03040000 DC XL1'02' STANDARD LABEL. LTYP 03060000 DC XL1'0' SPARE. 03080000 DC XL2'0' FILE SEQUENCE. FLSQ * 03100000 DC XL2'0' VOL SEQUENCE. VLSQ 03120000 DC XL8'0' SPARE MASK MASK 03140000 DC XL6'0' DATES. CRDT,XPDT 03160000 DC XL1'0' INDICATOR 1. IND1 03180000 DC XL1'40' OLD INDICATOR 2.NEW/OLD IND2 * 03200000 * DCB FIELDS. 03220000 DC AL1(0) BUFNO,BUFRQ. 03240000 DC BL1'01000010' BFTEK,BFALN. 03260000 DC AL2(80) BUFL. 03280000 DC BL1'01000000' EROPT. 03300000 DC AL1(0) KEYLEN. 03320000 DC AL1(0) DEN. 03340000 DC AL3(0) LIMCT. 03360000 DC BL2'0100000000000000' DSORG. 03380000 DC BL1'10111000' RECFM. 03400000 DC AL1(0) OPTCD. 03420000 DC AL2(141) BLKSIZE 03440000 DC AL2(137) LRECL 03460000 DC AL1(0) NCP. 03480000 DC AL1(0) NTM. 03500000 DC AL2(0) RKP. 03520000 DC AL1(0) CYLOFL. 03540000 DC AL1(0) DBUFNO. 03560000 DC AL1(0) INTVL. 03580000 DC AL1(0) CPRI. 03600000 DC AL2(0) SOWA. 03620000 DC XL1'0' BLOCK AND TRACK NTCS 03640000 DC XL1'01' VOL SERIAL COUNT. NVOL * 03660000 DC CL30'SYSIN' VOL SERIALS VOLS 03680000 DC XL4'0' VOL INFO. EXTL,EXAD 03700000 DC XL3'0' PRIMARY DA QUANTITY PQTY 03720000 DC XL1'0' DA QUANTITY TYPE. CTRI 03740000 DC XL3'0' 2NDARY DA QUANTITY. SQTY 03760000 DC XL1'0' INDICATOR EXTENT. IND3 03780000 DC XL3'0' DIRECTORY QUANTITY. DQTY 03800000 DC XL3'0' SPLIT JFCB. SPNM 03820000 DC XL2'0' TTR 1ST ALLOC. ABST 03840000 DC XL3'0' JFCB SUBALLOC. SBNM 03860000 DC XL3'0' AV REC LENGTH. DRLH 03880000 DC XL1'1' VOL COUNT. VLCT 03900000 DC XL1'0' SPLIT SPTN 03920000 DC XL4'0' TO 180 03940000 TITLE 'START JFCB OUTPUT UNIT RECORD' 03960000 JFCBWTR EQU * WRITER. 03980000 SPACE 2 04000000 * UNIT RECORD. 04020000 SPACE 04040000 DC CL24'SYSOUT' DATASET NAME DSNM - 04060000 DC CL20' ' ------. 04080000 DC CL8' ' NAME OR VERSION. ELNM 04100000 DC XL1'01' OPEN MERGE TSDM 04120000 DC XL13'0' SYSTEM CODE 04140000 DC XL1'02' STANDARD LABEL. LTYP 04160000 DC XL1'0' SPARE. 04180000 DC XL2'0' FILE SEQUENCE. FLSQ * 04200000 DC XL2'0' VOL SEQUENCE. VLSQ 04220000 DC XL8'0' SPARE MASK MASK 04240000 DC XL6'0' DATES. CRDT,XPDT 04260000 DC XL1'0' INDICATOR 1. IND1 04280000 DC XL1'C0' NEW IND2 NEW/OLD 04300000 * DCB FIELDS. 04320000 DC AL1(0) BUFNO,BUFRQ. 04340000 DC BL1'01000010' BFTEK,BFALN. 04360000 DC AL2(80) BUFL. 04380000 DC BL1'10000000' EROPT. 04400000 DC BL1'00000001' PRTSP. 04420000 DC AL1(0) DEN. 04440000 DC AL3(0) LIMCT. 04460000 DC BL2'0100000000000000' DSORG. 04480000 DC BL1'10111000' RECFM. 04500000 DC AL1(0) OPTCD. 04520000 DC AL2(80) BLKSIZE. 04540000 DC AL2(80) LRECL. 04560000 DC AL1(0) NCP. 04580000 DC AL1(0) NTM. 04600000 DC AL2(0) RKP. 04620000 DC AL1(0) CYLOFL. 04640000 DC AL1(0) DBUFNO. 04660000 DC AL1(0) INTVL. 04680000 DC AL1(0) CPRI. 04700000 DC AL2(0) SOWA. 04720000 DC XL1'0' BLOCK AND TRACK NTCS 04740000 DC XL1'01' VOL SERIAL COUNT. NVOL * 04760000 DC CL30'SYSOUT' VOL SERIALS VOLS 04780000 DC XL4'0' VOL INFO. EXTL,EXAD 04800000 DC XL3'0' PRIMARY DA QUANTITY PQTY 04820000 DC XL1'0' DA QUANTITY TYPE. CTRI 04840000 DC XL3'0' 2NDARY DA QUANTITY. SQTY 04860000 DC XL1'0' INDICATOR EXTENT. IND3 04880000 DC XL3'0' DIRECTORY QUANTITY. DQTY 04900000 DC XL3'0' SPLIT JFCB. SPNM 04920000 DC XL2'0' TTR 1ST ALLOC. ABST 04940000 DC XL3'0' JFCB SUBALLOC. SBNM 04960000 DC XL3'0' AV REC LENGTH. DRLH 04980000 DC XL1'1' VOL COUNT. VLCT 05000000 DC XL1'0' SPLIT SPTN 05020000 DC XL4'0' TO 180 05040000 TITLE 'START JFCB OUTPUT TAPE LIKE' 05060000 * TAPE LIKE 05080000 SPACE 05100000 DC CL24'SYSOUT' DATASET NAME DSNM - 05120000 DC CL20' ' ------. 05140000 DC CL8' ' NAME OR VERSION. ELNM 05160000 DC XL1'01' OPEN MERGE TSDM 05180000 DC XL13'0' SYSTEM CODE 05200000 DC XL1'02' STANDARD LABEL. LTYP 05220000 DC XL1'0' SPARE. 05240000 DC XL2'0' FILE SEQUENCE. FLSQ * 05260000 DC XL2'0' VOL SEQUENCE. VLSQ 05280000 DC XL8'0' - SPARE MASK MASK 05300000 DC XL6'0' DATES. CRDT,XPDT 05320000 DC XL1'0' INDICATOR 1. IND1 05340000 DC XL1'C0' NEW IND2 NEW/OLD 05360000 * DCB FIELDS. 05380000 DC AL1(0) BUFNO,BUFRQ. 05400000 DC BL1'01000010' BFTEK,BFALN. 05420000 DC AL2(80) BUFL. 05440000 DC BL1'00100000' EROPT. 05460000 DC BL1'00010011' TRTCH. (DATA CONVERSION). 05480000 DC BL1'10000011' DEN. (800 BPI) 05500000 DC AL3(0) LIMCT. 05520000 DC BL2'0100000000000000' DSORG. 05540000 DC FL1'0' RECFM. 05560000 DC AL1(0) OPTCD. 05580000 DC AL2(141) BLKSIZE 05600000 DC AL2(137) 05620000 DC AL1(0) NCP. 05640000 DC AL1(0) NTM. 05660000 DC AL2(0) RKP. 05680000 DC AL1(0) CYLOFL. 05700000 DC AL1(0) DBUFNO. 05720000 DC AL1(0) INTVL. 05740000 DC AL1(0) CPRI. 05760000 DC AL2(0) SOWA. 05780000 DC XL1'0' BLOCK AND TRACK NTCS 05800000 DC XL1'01' VOL SERIAL COUNT. NVOL * 05820000 DC CL30'SYSOUT' VOL SERIALS VOLS 05840000 DC XL4'0' VOL INFO. EXTL,EXAD 05860000 DC XL3'0' PRIMARY DA QUANTITY PQTY 05880000 DC XL1'0' DA QUANTITY TYPE. CTRI 05900000 DC XL3'0' 2NDARY DA QUANTITY. SQTY 05920000 DC XL1'0' INDICATOR EXTENT. IND3 05940000 DC XL3'0' DIRECTORY QUANTITY. DQTY 05960000 DC XL3'0' SPLIT JFCB. SPNM 05980000 DC XL2'0' TTR 1ST ALLOC. ABST 06000000 DC XL3'0' JFCB SUBALLOC. SBNM 06020000 DC XL3'0' AV REC LENGTH. DRLH 06040000 DC XL1'1' VOL COUNT. VLCT 06060000 DC XL1'0' SPLIT SPTN 06080000 DC XL4'0' TO 180 06100000 TITLE 'START JFCB OUTPUT DIRECT ACCESS' 06120000 * DIRECT ACCESS 06140000 SPACE 06160000 DC CL24'SYSOUT' DATASET NAME DSNM - 06180000 DC CL20' ' ------. 06200000 DC CL8' ' NAME OR VERSION. ELNM 06220000 DC XL1'01' OPEN MERGE TSDM 06240000 DC XL13'0' SYSTEM CODE 06260000 DC XL1'02' STANDARD LABEL. LTYP 06280000 DC XL1'0' SPARE. 06300000 DC XL2'0' FILE SEQUENCE. FLSQ * 06320000 DC XL2'0' VOL SEQUENCE. VLSQ 06340000 DC XL8'0' - SPARE MASK MASK 06360000 DC XL6'0' DATES. CRDT,XPDT 06380000 DC XL1'0' INDICATOR 1. IND1 06400000 DC XL1'C0' NEW IND2 NEW/OLD 06420000 * DCB FIELDS. 06440000 DC AL1(0) BUFNO,BUFRQ. 06460000 DC BL1'01000010' BFTEK,BFALN. 06480000 DC AL2(80) BUFL. 06500000 DC BL1'00100000' EROPT. 06520000 DC AL1(0) KEYLEN. 06540000 DC AL1(0) DEN. 06560000 DC AL3(0) LIMCT. 06580000 DC BL2'0100000000000000' DSORG. 06600000 DC BL1'10111000' RECFM. 06620000 DC AL1(0) OPTCD. 06640000 DC AL2(80) BLKSIZE. 06660000 DC AL2(80) LRECL. 06680000 DC AL1(0) NCP. 06700000 DC AL1(0) NTM. 06720000 DC AL2(0) RKP. 06740000 DC AL1(0) CYLOFL. 06760000 DC AL1(0) DBUFNO. 06780000 DC AL1(0) INTVL. 06800000 DC AL1(0) CPRI. 06820000 DC AL2(0) SOWA. 06840000 DC XL1'0' BLOCK AND TRACK NTCS 06860000 DC XL1'01' VOL SERIAL COUNT. NVOL * 06880000 DC CL30'SYSOUT' VOL SERIALS VOLS 06900000 DC XL4'0' VOL INFO. EXTL,EXAD 06920000 DC XL3'1' PRIMARY DA QUANTITY PQTY 06940000 DC XL1'86' DA QUANTITY TYPE. CTRI 06960000 DC XL3'0' 2NDARY DA QUANTITY. SQTY 06980000 DC XL1'0' INDICATOR EXTENT. IND3 07000000 DC XL3'0' DIRECTORY QUANTITY. DQTY 07020000 DC XL3'0' SPLIT JFCB. SPNM 07040000 DC XL2'0' TTR 1ST ALLOC. ABST 07060000 DC XL3'0' JFCB SUBALLOC. SBNM 07080000 DC XL3'0' AV REC LENGTH. DRLH 07100000 DC XL1'1' VOL COUNT. VLCT 07120000 DC XL1'0' SPLIT SPTN 07140000 DC XL4'0' TO 180 07160000 END 07180000 ./ ADD SSI=01051060,NAME=IEEILCDM,SOURCE=0 IEEICCAN CSECT 00020000 DS 1C 00040000 END 00060000 ./ ADD SSI=04012140,NAME=IEELOGWR,SOURCE=0 TITLE 'IEELWAIT - LOG WRITER' 00100018 IEELWAIT CSECT 00200018 * A-125990,339000,340500-341500 A52109 00200221 * A 592081-592233 D 592000-592017 A49268 00200421 * D 582000 SA69894 00200621 * C 667800,670600 SA69879 00200821 * D666600-670000, A666600-671000 A58198 00201221 * D 141870,141930, A 152050-060 YM0053 00201321 * D 154000-156000,506000-509000,511900-515000,529500 SA69446 00201421 * A 063000,075000,141870-141930,152200-152400,461070-461840 SA69446 00201621 * A 506000-508500,554200-555400,660660-660720 C 564000 SA69446 00201821 * A 470500-471900,687700 C 470000 A52598 00202021 * 509000 A35865 00210021 * 162000,164000 A38430 00212021 * 024000 19374 00220019 * 140040,140060 M4420 00230019 * A33710 00240020 ENTRY IEELOGWR M3339 00250018 * M5046 00260020 * M0060 00262021 * 516000 A38696 00270021 * 652000 A38696 00280021 * A18889 00300018 * 140100-141300,592040-593020,593060-593220,593306-593320 A41179 00350021 * 130500,140040 A41179 00360021 ENTRY IEELOGFC 00400018 ENTRY IEELOGUP 00600018 DS 0D 00800018 DC CL8'IEELWAIT' PRB NAME 01000018 DC AL2(100) PRB SIZE 01200018 DC X'00C0' FLAG BYTES 01400018 DC A(IEELOGWR) ENTRY POINT ADDRESS 01600018 DC XL4'FF040000' M3339 01800018 DC A(IEELOGWR) FOR PSW 02000018 DC A(0) LPRB ADDRESS 02200018 DC V(IEALTCB) ADDRESS OF LOG TCB 19374 02400019 IEELOGWR EQU * 02600018 * LOG WRITER 02800018 * 03000018 * THIS MODULE WRITES THE DATA ACCUMULATED IN THE LOG BUFFER TO THE 03200018 * CURRENT RECORDING DATA SET. IT RELEASES A BUFFER BACK TO THE 03400018 * LOG BUFFER HOUSEKEEPING ROUTINE IF THE DUMP IS NOT REQUESTED, 03600018 * DA, A CHECK IS MADE TO SEE IF ENOUGH SPACE EXISTS ON THE CURRENT 03800018 * DATA SET TO WRITE ANOTHER RECORD AFTER WRITING THIS ONE. IF NO 04000018 * SPACE EXISTS, THE DUMP IS CALLED. 04200018 * 04400018 * ENTRY IEELWAIT FOR INITIAL ENTRY- 04600018 * - MVT VIA ATTACH 04800018 * - MFT-II VIA NIP(XCTL) 05000018 * FOR SUBSEQUENT ENTRY VIA POST 05200018 * 1.INITIALISATION OF DATA SETS(IEEVLIN2) 05400018 * 2.WRITELOG 'CLOSE'-(IEE1603D) 05600018 * 3.WRITELOG -(IEE1603D) 05800018 * 4. HALT - (IEE1403D) 06000018 * 5. BUFFERS FULL (IEE0303F) 06200018 * 6.DATA SET WRITTEN (IEEVLOUT) SA69446 06300021 * KEY ENTRY SETTINGS- 06400018 * 1. LCAPOSTT - LOG CONTROL AREA POST TABLE 06600018 * - POSTCLOZ SET BY HALT OR WRITELOG CLOSE 06800018 * POSTWLOG SET BY WRITELOG 07000018 * - POSTCHAN SET BY 1ST LOAD OF SVC 36 07200018 * - POSTINIT SET BY LOG INITIALIZATION 07400018 * - POSTSOUT SET BY SYSOUT WRITER SA69446 07500021 * 07600018 * EXITS VIA RETURN TO THE MASTER SCHEDULER 07800018 * 08000018 * 08200018 * 08400018 * REGISTER EQUATES 08600018 * 08800018 R0 EQU 0 09000018 R1 EQU 1 09200018 R2 EQU 2 09400018 WORK1 EQU 3 09600018 WORK2 EQU 4 09800018 DCBPTR EQU 5 DCB POINTER 10000018 DECBPTR EQU 6 DECB POINTER 10200018 R6 EQU 6 10400018 BUFPTR EQU 7 LOG BUFFER POINTER 10600018 BASEREG EQU 8 BASE REGISTER 10800018 WORK3 EQU 9 11000018 WORK4 EQU 10 11200018 WORK5 EQU 11 11400018 LOGTBASE EQU 12 LCA BASE 11600018 R13 EQU 13 SAVE AREA POINTER 11800018 R14 EQU 14 EXIT REG 12000018 R15 EQU 15 LINK REG 12200018 R3 EQU 3 A18889 12220018 R4 EQU 4 A18889 12240018 R5 EQU 5 A18889 12260018 DEC3 EQU 3 A18889 12280018 DECTEN EQU 10 A18889 12300018 SWITCH EQU 6 A18889 12320018 DEC4 EQU 4 A18889 12340018 * 12400018 N0 EQU 0 12410018 N2 EQU 2 12420018 N3 EQU 3 12430018 N4 EQU 4 12440018 N7 EQU 7 12450018 N8 EQU 8 12460018 N12 EQU 12 12470018 N16 EQU 16 12480018 LOG EQU 36 12490018 N72 EQU 72 12500018 N255 EQU 255 12510018 X40 EQU X'40' 12520018 TURNON EQU X'80' 12560018 GRAPH3 EQU 3 12570018 GRAPH4 EQU 4 12580018 GRAPH5 EQU 5 12590018 TCBFIND EQU 4 A33710 12592020 TCBFIND2 EQU 3 A33710 12594020 SAVELOG EQU 4 A33710 12596020 SAVELOG2 EQU 5 A33710 12598020 TBOVHD EQU X'08' MASK TO CHECK FOR TWO BYTE OVERHEAD. A52109 12599021 EJECT 12600018 BALR BASEREG,R0 ESTABLISH ADDRESSABILITY 12800018 USING *,BASEREG 13000018 L LOGTBASE,CVTPTR 13200018 USING LOGCVT,LOGTBASE 13400018 L WORK5,CVTMSER 13600018 DROP LOGTBASE 13800018 USING BASE,WORK5 14000018 TM MSLOGST,X'10' M2092 14002018 BZ ASITWAS NORMAL ENTRY M2092 14003019 B LOGTRY ENTRY FROM DAR(80A) M4420 14005019 ASITWAS EQU * M2092 14006019 OI MSLOGST,X'10' M2092 14007019 L TCBFIND,CVTPTR LOCATE TCB POINTER AND A33710 14133020 USING LOGCVT,TCBFIND STORE IN UCMLOGADR A33710 14136020 L TCBFIND2,CVTTCBP IF IN AN MCS SYSTEM A33710 14139020 L TCBFIND2,N4(R0,TCBFIND2) * * * * A33710 14142020 L SAVELOG2,CVTCUCB * * * * A33710 14145020 USING LOGUCM,SAVELOG2 * * * * A33710 14148020 DROP TCBFIND * * * * A33710 14151020 TM UCMMODE,X'02' IS THIS AN MCS SYSTEM A33710 14154020 BZ NOTMCS BRANCH, IF NOT A33710 14157020 DROP SAVELOG2 * * * * A33710 14160020 LA SAVELOG,N4 * * * * A33710 14163020 SR SAVELOG2,SAVELOG * * * * A33710 14166020 L SAVELOG,N0(SAVELOG2) * * * * A33710 14169020 USING MCSUCM,SAVELOG * * * * A33710 14172020 ST TCBFIND2,UCMLOGAD * * * * A33710 14175020 DROP SAVELOG * * * * A33710 14178020 NOTMCS EQU * A33710 14181020 SWRWAIT EQU * 14200018 WAIT ECB=BALOGECB 14400018 XC BALOGECB,BALOGECB CLEAR LOG ECB 14600018 GETMAIN R,LV=84,SP=250 GET RSA AND WORK AREA 14800018 XC N0(N72,R1),N0(R1) CLEAR IT 15000018 LR R13,R1 SET NEW SAVE REG 15200018 L LOGTBASE,BALOG PICK UP THE LCA YM0053 15206021 USING LCABASE,LOGTBASE YM0053 15212021 TM LCAPOSTT,POSTSOUT WAS ENTRY FROM IEEVLOUT? SA69446 15220021 BO CALLDP11 YES, DO A SWITCH SA69446 15240021 TM MSLOGST,MSLOGTHD IS LOG SUPPORTED 15260018 BO ENTRYTST BRANCH IF NO 15320018 TM LCAPOSTT,POSTINIT+DSENQED INITIALIZATION 15800018 BNZ INITIAL BRANCH IF YES 16000018 * 16600018 * GET LOG BUFFER POINTERS 16800018 * 17000018 LGETBUF L BUFPTR,LCABUFP GET LOG BUFFER POINTER 17200018 L WORK2,LCABSIZ GET WORKING BUFFER SIZE 17400018 AR WORK2,BUFPTR POINT TO SECOND HALF OF BUFFER 17600018 TM LCAMISC,LCABSW WHICH HALF IS TO BE WRITTEN 17800018 BC N8,SWRITER FIRST HALF 18000018 XR BUFPTR,WORK2 EXCHANGE 18200018 XR WORK2,BUFPTR BUFFER 18400018 XR BUFPTR,WORK2 POINTERS 18600018 SPACE 18800018 SWRITER EQU * 19000018 CLC CON40000,0(BUFPTR) IS BUFFER EMPTY 19060018 BE SWRITER4 BRANCH IF Y8S--DONT WRITE IT 19120018 L DCBPTR,LCAPDCB GET DCB POINTER 19600018 USING IHADCB,DCBPTR 19800018 EJECT 20400018 ********************************************************************** 20600018 * THE FOLLOWING ROUTINE WILL DETERMINE IF ANOTHER RECORD WILL * 20800018 * FIT ON THIS DATA SET, BY ADDING 1 TO THE CURRENT TT AND * 21000018 * SENDING THIS VALUE TO THE RESIDENT CONVERT ROUTINE. THE NEXT * 21200018 * TRACK WILL BE DETERMINED. IF THE NUMBER OF TRACKS IN THE DEB * 21400018 * ARE EXCEEDED, THE CONVERT ROUTINE WILL PASS A RETURN CODE OF * 21600018 * 4 IN REGISTER 15. * 21800018 * REGISTER CONTENTS PRIOR TO BRANCHING TO THE CONVERT ROUTINES * 22000018 * ARE- * 22200018 * R0 ---NEXT TTR RETURNED BY IECPRTLV OR TTRN IF GOING TO THE * 22400018 * IECPCNVT ROUTINE. (TTR TO MBBCCHHR) * 22600018 * R1 ---ADDRESS OF DEB * 22800018 * R2 ---ADDRESS OF CURRENT MBBCCHHR * 23000018 * R9 ---USED * 23200018 * R10 --- BY * 23400018 * R11 --- THE * 23600018 * R12 --- CONVERT * 23800018 * R13 --- ROUTINES * 24000018 * R14---RETURN FOR CONVERT ROUTINE * 24200018 * R15---RETURN CODE REGISTER * 24400018 * * 24600018 * * 24800018 * * 25000018 * IECPRLTV -ENTRY TO ROUTINE VIA A BALR THAT CONVERTS AN 25200018 * ABSOLUTE DIRECT ACCESS ADDRESS, MBBCCHHR, INTO 25400018 * ITS RELATIVE EQUIVALENT, TTR0. REGISTER 25600018 * CONVENTIONS UPON ENTRY AND EXIT ARE AS 25800018 * FOLLOWS-- 26000018 * REGISTER ENTRY EXIT 26200018 * 26400018 * 0 IGNORED TTR0 RESULT 26600018 * 1 DEB ADDRESS TRANSPARENT 26800018 * 2 ADDRESS OF TRANSPARENT 27000018 * MBBCCHHR IN CORE 27200018 * 3-8 IGNORED TRANSPARENT 27400018 * 9-13 IGNORED DESTROYED 27600018 * 14 RETURN ADDR TRANSPARENT 27800018 * 15 ENTRY ADDR ZERO 28000018 * 28200018 * IECPCNVT -ENTRY TO ROUTINE VIA A BALR THAT CONVERTS A 28400018 * RELATIVE DIRECT ACCESS ADDRESS AND 28600018 * CONCATENATION NUMBER, TTRN, INTO ITS ABSOLUTE 28800018 * EQUIVALENT, MBBCCHHR. REGISTER CONVENTIONS 29000018 * UPON ENTRY AND UPON EXIT ARE AS FOLLOWS-- 29200018 * 29400018 * REGISTER ENTRY EXIT 29600018 * 29800018 * 0 ACTUAL TTRN DESTROYED 30000018 * 1 DEB ADDR TRANSPARENT 30200018 * 2 ADDR OF 8 TRANSPARENT 30400018 * BYTE AREA FOR 30600018 * MBBCCHHR 30800018 * 3-8 IGNORED TRANSPARENT 31000018 * 9-13 IGNORED DESTROYED 31200018 * 14 RETURN ADDR TRANSPARENT 31400018 * 15 ENTRY ADDR ERROR CODE 31600018 * 31800018 * THE ERROR CODE FOR IECPCNVT WILL BE 0 FOR 32000018 * SUCCESSFUL CONVERSION, OR 4 IF VALUE OF TT 32200018 * EXCEEDS TOTAL EXTENTS ASSIGNED. 32400018 * 32600018 ********************************************************************** 32800018 SPACE 2 33000018 LH WORK4,N0(R0,BUFPTR) GET SIZE OF THIS RECORD 33200018 L WORK1,DCBDVTBL LOAD DEVICE TABLE ADDRESS 33400018 USING UNITABLE,WORK1 33600018 SR WORK3,WORK3 33800018 TM UNITFLAG,TBOVHD TWO BYTE OVERHEAD USED? (2305) A52109 33900021 IC WORK3,UNITOVHL LAST RECORD ID OVERHEAD 34000018 BNO NOT2BYTE NOT 2 BYTE SO USE 1 INSERTED. A52109 34050021 LH WORK3,UNITOVHI GET 2 BYTE OVERHEAD. (2305) A52109 34100021 NOT2BYTE EQU * HERE FOR DEVICES WITH 1 BYTE OVERHEAD. A52109 34150021 ALR WORK4,WORK3 SET TOTAL LAST RECORD LENGTH 34200018 CH WORK4,DCBTRBAL WILL TRACK HOLD THIS RECORD 34400018 BC N12,SWRITER0 YES 34600018 L R1,DCBDEBAD GET DEB POINTER 34800018 LA R2,DCBFDAD POINT TO MBBCCHHR IN DCB 35000018 STM R14,LOGTBASE,N12(R13) SAVE ALL REGISTERS 35200018 LR WORK2,R13 SAVE REG SAVE POINTER 35400018 L WORK1,CVTPTR CVT POINTER 35600018 USING LOGCVT,WORK1 35800018 L R15,CVTPRLTV ADDR OF MBBCCHHR TO TTR ROUTINE 36000018 BALR R14,R15 BRANCH TO CONVERT ROUTINE 36200018 A R0,CON10000 ADD ONE TO TTR 36400018 L R15,CVTPCNVT ADDR OF TTR TO MBBCCHHR ROUTINE 36800018 LA R2,N72(R0,WORK2) POINT TO AREA TO RECV NEW ADDR 37000018 BALR R14,R15 BRANCH TO CONVERT ROUTINE 37200018 LR R13,WORK2 RESTORE SAVE AREA POINTER 37400018 ST R15,N16(R0,R13) SAVE RETURN CODE 37600018 LM R14,LOGTBASE,N12(R13) RESTORE ALL REGISTERS 37800018 LTR R15,R15 WILL THIS BUFFER FIT 38000018 BZ SWRITER0 BRANCH IF YES 38100018 OI LCAPOSTT,WTBUF INDICATE BUFFER MUST BE WRITTEN 38200018 B CALLDP11 GO SIMULATE WRITELOG 38300018 SWRITER0 EQU * 38400018 EJECT 38600018 * 38800018 * INITIALYZE AND RETURN OTHER HALF OF BUFFER TO BUFFER SET-UP 39000018 * 39200018 XI LCAMISC,LCABSW SW. BUFFER AVAILABILITY IND. 39600018 * 40400018 SWRLL4 EQU * 40600018 TM LCAPOSTT,POSTCLOZ IS CLOSE PENDING 40800018 BO BYPASSPO YES - BYPASS POST OF SVC 41000018 POST LCABECB BUFFER WAIT IS COMPLETE 41200018 BYPASSPO EQU * 41400018 EJECT 41600018 * 41800018 * WRITE TO SYS1.SYSLOG 42000018 * 42200018 NI LCAPSTA,N255-LCAPMTY TURN OFF EMPTY SWITCH 42400018 L WORK1,DCBSYNAD SAVE OLD SYNAD POINTER 42600018 MVC DCBSYNAD(N4),ERRPTR SET NEW POINTER 42800018 LA DECBPTR,DCBSIZE(R0,DCBPTR) POINT TO DECB 43000018 LR WORK2,R14 SAVE TASK EXIT 43200018 WRITE (DECBPTR),SF,(DCBPTR),(BUFPTR),MF=E M0060 43250021 CHECK (DECBPTR) CHECK FOR ERRORS 43800018 MVC 0(LNTHLL,BUFPTR),CON40000 INDICATE BUFFER IS FREE 43900018 CLOSE ((DCBPTR),LEAVE),TYPE=T T-CLOSE SYS1.SYSLOG 44000018 ST WORK1,DCBSYNAD RESTORE SYNAD 44200018 OI DCBOFLGS,X'80' SET WRITE BIT. A38696 44300021 LR R14,WORK2 RESTORE TASK EXIT 44400018 NI LCAPOSTT,N255-POSTCHAN TURN OFF BUFFER SVC POST BIT 44600018 NI MSLOGST,N255-MSLOGCOM ALLOW COM TASK TO ISSUE WTL 44700018 * THE BUFFER HAS BEEN WRITTEN 44800018 BAL GRAPH3,HRDCPY WHEN ONLY A GRAPHICS IS ONLINE 44810018 * AND SYSLOG IS USED AS HARDCOPY 44820018 * DEVICE, AND COM TASK FALLS INTO 44830018 * A WAIT STATE AT THE SAME TIME 44840018 * THAT ALL WTL CORE IN SQS IS 44850018 * USED FOR TEXT QUEUED FOR 44860018 * SYSLOG AND LOG BUFFER IS FULL, 44870018 * COM TASK NEEDS TO BE ACTIVATED 44880018 * TO CHECK FOR OUTSTANDING WQES. 44890018 * THIS CODE IS AN ANSWER TO R18 44900018 * PTM 2140. HOWEVER IT WAS NOT 44910018 * POSSIBLE TO REPRODUCE PROBLEM 44920018 * ON LATER LEVELS OF THE R18 44930018 * SYSTEM. IT IS HOPED THAT IF 44940018 * ABOVE CONDITION OCCURS(WHICH 44950018 * APPEARS HIGHLY UNLIKELY) THIS 44960018 * CODE WILL AVOID PROBLEM. 44970018 * 45000018 * SET UP TO TERMINATE TASK 45200018 * 45400018 SWRITER4 EQU * 45600018 TM LCAPOSTT,POSTCLOZ IS HALT OR WRITELOG CLOSE PENDING 45800018 BO SHUTDOWN YES 46000018 TM LCAPOSTT,POSTWLOG IS WRITELOG CMD. PENDING A35865 46050021 BO CALLDP11 BRANCH IF YES A35865 46100021 TM LCAPOSTT,POSTSOUT WAS ENTRY FROM IEEVLOUT? SA69446 46107021 BZ FREECORE NO SA69446 46114021 * SA69446 46121021 * LOG HAS BEEN TEMPORARILY UNAVAILABLE. THE SYSOUT WRITER SA69446 46128021 * HAS PROCESSED THE DATA SET WHICH HAD BEEN QUEUED TO SYSOUT. SA69446 46135021 * WE HAVE DONE A DATA SET AND BUFFER SWITCH. IT IS OK TO TURN SA69446 46142021 * ON LOG AND TELL THE OPERATOR. SA69446 46149021 * SA69446 46156021 NI LCAPOSTT,N255-POSTSOUT RESET THE VLOUT POST BIT SA69446 46163021 NI MSLOGST,N255-MSLOGTHD ACTIVATE LOG SA69446 46170021 LA R1,UPMSG IEE046I MSG SA69446 46177021 WTO MF=(E,(1)) SA69446 46184021 FREECORE LR R1,R13 46200018 FREEMAIN R,LV=84,A=(1),SP=250 FREE RSA AND WORK AREA 46400018 OC BALOG,BALOG HAS LCA BEEN FREED 46450018 BNZ SWRWAIT BRANCH IF NO 46500018 OI BALOG,TURNON TURN BIT ON FOR COMP TASK 46520018 LA R0,ECBLNTH SET LENGTH OF ECB 46550018 O R0,SP255 SET SUBPOOL 46600018 GETMAIN R,LV=(0) GET CORE FOR DUMMY ECB 46650018 XC 0(ECBLNTH,R1),0(R1) CLEAR DUMMY ECB 46700018 WAIT 1,ECB=(1) ENTER PERMANENT WAIT STATE 46750018 SPACE 3 46800018 INITIAL TM LCAPOSTT,WMSTOPN SPECIAL WARM START OPEN? A52598 47000021 BZ SETUPLCA IF NOT SKIP TO SET UP DCBS A52598 47050021 LA LOGTBASE,N0(LOGTBASE) CLEAR HIGH ORDER FOR SVC A52598 47100021 LNR R1,LOGTBASE SET SVC CODE FOR OPEN A52598 47150021 SVC LOG ISSUE SVC TO OPEN DATASET A52598 47160021 NI LCAPOSTT,N255-DSENQED CLEAR WARM START BIT A52598 47170021 B FREECORE GO BACK INTO WAIT A52598 47180021 SETUPLCA L WORK1,CVTPTR GET POINTER TO CVT A52598 47190021 USING LOGCVT,WORK1 47200018 L WORK2,CVTTCBP POINTER TO TWO TCB 47400018 * SECOND IS CURRENT TCB 47600018 L WORK2,N4(R0,WORK2) THIS IS LOG TCB PTR 47800018 MVC N12(N4,WORK2),LCATIOT MOVE LOG TIOT TO LOG TCB 48000018 LA DCBPTR,DCBPRIME GET PRIMARY DCB PTR 48200018 ST DCBPTR,LCAPDCB STORE PRIM DCB PTR IN LCA 48400018 LA DCBPTR,DCBALT GET ALTERNATE DCB PTR 48600018 ST DCBPTR,LCAADCB STORE ALT DCB PTR IN LCA 48800018 LA DCBPTR,DCBPRIME POINT TO PRIME DCB 48810018 MVC DCBBLKSI,LCABSIZ+N2 SET BUFSIZE TO BLKSIZE. M0060 48820021 MVC DCBLRECL(N2),K130 SET MAX LRECL IN DCB. M0060 48822021 LA DCBPTR,DCBALT POINT TO ALTERNATE DCB 48830018 MVC DCBBLKSI,LCABSIZ+N2 SET BUFSIZE TO BLKSIZE. M0060 48840021 MVC DCBLRECL(N2),K130 SET MAX LRECL IN DCB. M0060 48842021 TM LCAPOSTT,DSENQED IS THIS REALLY INITIALIZATION OR SET 48850018 * UP FOR THE QUEUE SEARCH 48860018 BZ CALLDP1 BRANCH IF INITIALIZATION 48870018 POST LCABECB INDICATE THAT DCBS SET UP FOR QUEUE 48880018 * SEARCH 48890018 B FREECORE GO BACK INTO WAIT STATE 48900018 * 49000018 * 49200018 CALLDP1 EQU * 49400018 LA LOGTBASE,N0(LOGTBASE) TURN OFF HIGH ORDER BIT 49500018 LNR R1,LOGTBASE TRY TO GET ALTERNATE DATA SET 49600018 SVC LOG 49800018 TM LCAPSTA,LCAPNAV IS NOT AVAIL BIT ON 50000018 BO SHUTDOWN BRANCH IF DATA SET UNAVAILABLE 50300018 TM LCAPOSTT,POSTSOUT+WTBUF IS ENTRY FROM IEEVLOUT- SA69446 50600021 * OR DOES A BUFFER NEED WRITING? SA69446 50650021 BZ CALLDP2 NO, CHECK FOR LOST POST SA69446 50700021 NI LCAPOSTT,N255-WTBUF RESET WRITE BUFFER BIT SA69446 50750021 B LGETBUF WRITE THE CORRECT BUFFER SA69446 50800021 CALLDP2 EQU * SA69446 50850021 TM LCAPOSTT,POSTCHAN IS BUFFER FULL ? A38430 50950021 BZ FREECORE BRANCH IF NOT A38430 51000021 CLC BALOGECB(N4),ZERO HAS ECB BEEN POSTED ? A38430 51050021 BNE FREECORE BRANCH IF YES A38430 51100021 * IF ECB IS NOT IN THE POSTED STATE AND POSTCHAN IS ON A38430 51150021 * THEN A POST WAS LOST AND THE BUFFER SHOULD NOW BE A38430 51160021 * SERVICED A38430 51170021 B LGETBUF BRANCH TO WRITE BUFFER A38430 51180021 * 51800018 CALLDP11 L R15,LCASOUTP LOAD DCB ADDRESS FOR DATA SET 52000018 * QUEUED TO SYSOUT 52200018 LTR R15,R15 IS THE A DATA SET THAT HAS NOT 52400018 * BEEN WRITTEN 52600018 BC N8,SIMULAT NO - SIMULATE WRITELOG 52800018 TM LCAPOSTT,POSTCLOZ HALT OR WRITELOG CLOSE 52850018 BO SHUTDOWN BRANCH IF YES 52900018 OI MSLOGST,MSLOGTHD INDICATE LOG TEMPORARILY DISABLED 53000018 LA R1,DOWNMSG 53050018 WTO ,MF=(E,(1)) TELL OPERATOR 53100018 ENTRYTST EQU * 53150018 TM LCAPOSTT,POSTCHAN WAS ENTRY FROM SVC 53200018 BZ FREECORE BRANCH IF NO 53250018 SWRPOST EQU * 53300018 NI LCAPOSTT,255-POSTCHAN TURN OFF SVC ENTRY INDICATOR 53350018 POST LCABECB INDICATE JOB FINISHED TO SVC 53400018 B FREECORE GO FREE WORK AREA 53450018 SIMULAT OI LCAPOSTT,POSTWLOG SIMULATE WRITELOG 53600018 B CALLDP1 CALL DUMPER 53800018 SHUTDOWN EQU * 54000018 OI MSLOGST,MSLOGTHD INDICATE LOG NOT SUPPORTED 54200018 XC BALOG,BALOG CLEAR LCA PTR IN BASEB 54400018 L R1,LCABUFP LOAD BUFFER POINTER 54600018 L R0,LCABSIZ GET SIZE OF ONE BUFFER 54800018 SLL R0,DOUBLE GET SIZE OF TWO BUFFERS 55000018 O R0,SP255 SET SUBPOOL 55200018 FREEMAIN R,LV=(0),A=(1) 55400018 * SA69446 55420021 * POST THE BUFFER ECB IN CASE ANYBODY IS WAITING FOR IT. SA69446 55440021 * THERE IS NO DANGER OF OVERLAID CORE SINCE IEE0303F CHECKS SA69446 55460021 * TO SEE IF LOG HAS BEEN SHUT DOWN BEFORE MOVING DATA INTO SA69446 55480021 * THE BUFFERS. SA69446 55500021 * SA69446 55520021 POST LCABECB POST THE BUFFER SA69446 55540021 LA R0,LCASIZE GET SIZE OF LCA 55600018 O R0,SP255 SET SUBPOOL 55800018 LR R1,LOGTBASE GET ADDR OF LCA IN R1 56000018 FREEMAIN R,LV=(0),A=(1) FREE LCA 56200018 B FREECORE GO EXIT SA69446 56400021 EJECT 57800018 SWRTERR EQU * 58000018 OI LCAPOSTT,WTBUF INDICATE BUFFER MUST BE WRITTEN 58300018 LR R1,R13 PT SVC TO MSG AREA 58400018 MVC N0(SWRIOEND-SWRIOERR,R1),SWRIOERR MOVE MSG TO WORK AREA 58600018 MVC SWRIODEV-SWRIOERR(N3,R1),LCAPDAR MOVE IN DEVICE NAME 58800018 * MOVE IN DESCRIPTOR AND ROUTE CODES. A38696 58860021 MVC SWRIOEND-SWRIOERR(4,R1),SWRIOEND A38696 58920021 WTO MF=(E,(1)) 59000018 B CALLDP11 CALL DUMPER 59200018 HRDCPY EQU * 59200118 L GRAPH4,CVTPTR 59200218 USING LOGCVT,GRAPH4 59200318 L GRAPH5,CVTCUCB 59200418 USING LOGUCM,GRAPH5 59200518 DROP GRAPH4 59200618 TM UCMMODE,X'02' IS THIS AN MCS SYSTEM 59200718 BZ NO 59200818 LA R1,UCMAECB GET COMM TASK ECB A49268 59208121 DROP GRAPH5 A49268 59210121 LA GRAPH4,N4 A49268 59212121 SR GRAPH5,GRAPH4 ADDRESS UCM PREFIX A49268 59214121 L GRAPH4,N0(GRAPH5) A49268 59216121 USING MCSUCM,GRAPH4 A49268 59216221 OI UCMSFLGS+1,X'02' SIGNAL WQE A49268 59216321 * CLEANUP NEEDED A49268 59218421 POST (R1) POST COMM TASK A49268 59223321 DROP GRAPH4 A49268 59225321 NO EQU * 59294421 BR GRAPH3 RETURN 59301421 EJECT 59308421 LOGTRY EQU * A18889 59315421 L R5,0(LOGTBASE) GET NEW/OLD PTR M5046 59322420 L R5,4(R5) GET CURRENT TCB M5046 59322520 USING TCB,R5 ADDRESS THE TCB. M5046 59328120 L R1,TCBCMP 59330121 BAL R6,PUTMSG 59330521 L LOGTBASE,BALOG A18889 59332120 USING LCABASE,LOGTBASE A18889 59333420 * FIRST BUFFER A18889 59334720 L R0,LCABSIZ OBTAIN BUFFER SIZE A18889 59336020 SLL R0,1 ADJUST BUFFER SIZE A18889 59337320 O R0,SUBPOOL INDICATE SP 255 A18889 59338620 L R1,LCABUFP A18889 59339920 * PTR TO BUFFER IN REGISTER 1 A18889 59341220 FREEMAIN R,LV=(0),A=(1) FREE BUFFER A18889 59342520 L R1,BALOG OBTAIN PTR TO LCA A18889 59343820 LA R0,LCAEND-LCABASE OBTAIN LENTH TO FREE A18889 59345120 O R0,SUBPOOL INDICATE S.P.255 A18889 59346420 FREEMAIN R,LV=(0),A=(1) FREE LCA CORE A18889 59348018 DAREXIT EQU * 59349018 XC BALOG(4),BALOG ZERO OUT LCA PTR A18889 59350320 OI MSLOGST,MSLOGTHD INDICATE LOG NOT SUPPORTEDA18889 59352018 OI BALOG,TURNON TURN BIT ON FOR COM TASK A18889 59354018 WAIT ECB=ZERO A18889 59356018 * WAIT ON DUMMY ECB WHICH WIL NOT BE POSTED A18889 59358018 PUTMSG EQU * MAIN MESSAGE ROUTINE M5046 59362020 LR R3,R1 OBTAIN ABEND CODE M5046 59364320 SLL R3,8 AFTER SHIFT, LEFT 12 BITS M5046 59368420 * IN REG3 CONTAIN THE CODE M5046 59368820 LA R4,MSG1+38 M5046 59368920 * THIS IS WHERE THE PRINTABLE FORM OF CODE WILL GO M5046 59369020 LA R5,DEC3 SET R5 EQUAL 3 M5046 59369120 * FOR BCT LOOP - 4 BITS AT A TIME - TOTAL THREE TIMES M5046 59369420 LOOP EQU * LOOP CONTROL M5046 59369820 SR R2,R2 ZERO OUT RECEIVING REG M5046 59369920 SLDL R2,DEC4 GET LEFT 4 BITS FROM REG3 M5046 59370420 LA R2,TABLE(R2) M5046 59370520 MVC 0(1,R4),0(R2) M5046 59370620 * PUT PRINT EQUIVALENT FROM THE TABLE INTO THE MESSAGE M5046 59371020 LA R4,1(R4) M5046 59371420 * INCREMENT THE RECEIVING FIELD IN THE MESSAGE M5046 59371820 BCT R5,LOOP PROCESS ALL 12 BITS M5046 59371920 LA R1,MSG1 ADDRESS MESSAGE M5046 59394720 * ISSUE MSG 'LOG ABEND COMPLETION CODE =XXX TO OPERATOR M5046 59410020 WTO MF=(E,(1)) ISSUE WTO M5046 59412020 LA R1,MSG2 M5046 59414020 * ISSUE MSG 'LOG NOT SUPPORTED TO THE OPERATOR M5046 59416020 WTO MF=(E,(1)) ISSUE WTO M5046 59416420 BR R6 RETURN M5046 59416820 TWELVE DC H'12' A18889 59417620 TABLE DC C'0123456789ABCDEF' A18889 59440420 DS 0F A18889 59463220 SUBPOOL DC AL1(255),AL3(0) A18889 59486020 MSG1 WTO 'IEE044I LOG ABEND COMPLETION CODE= ',MF=L,DESC=4, X59508820 ROUTCDE=2 59531620 MSG2 WTO 'IEE037I LOG NOT SUPPORTED',MF=L,ROUTCDE=2,DESC=4 59554420 EJECT 59577220 DCBPRIME DCB DDNAME=IEELOGX, *59600018 DSORG=PS, X59800018 MACRF=(W), X60000018 OPTCD=W, X60200018 RECFM=VB 60400018 *THIS NEXT PART PROVIDES A DECB AREA 60600018 WRITE DECB1,SF,,,,MF=L 60800018 DCBSIZE1 EQU *-DCBPRIME * 61000018 SPACE 4 61200018 DCBALT DCB DDNAME=IEELOGY, *61400018 DSORG=PS, X61600018 MACRF=(W), X61800018 OPTCD=W, X62000018 RECFM=VB 62200018 WRITE DECB2,SF,,,,MF=L 62400018 DCBSIZE2 EQU *-DCBALT * 62600018 SPACE 4 62800018 * CONSTANTS 63000018 * 63200018 SPACE 63400018 SWRIOERR DS 0F I/O ERROR MSG PROTOTYPE 63600018 DC AL2(SWRIOEND-*) HEADER 63800018 DC AL2(0) * 64000018 DC C'IEE040I LOG I/O ERROR ON ' TEXT 64200018 SWRIODEV DC C' ' VARIABLE TEXT 64400018 SWRIOEND EQU * END OF MESSAGE 64600018 DC X'1000' ROUTE CODE. M0060 64660021 DC X'4000' DESCRIPTOR CODE. M0060 64720021 K130 DC H'130' 64760021 SPACE 64800018 DS 0F 65000018 CON10000 DC F'131072' TTR UPDATE CONSTANT A38696 65200021 CON40000 DC X'00040000' BUFFER BLOCK HEADER 65400018 ERRPTR DC A(SWRTERR) SYNAD EXIT FOR WRITER 65600018 ZERO DC F'0' * 65800018 * 66000018 DS 0F 66020018 SP255 DC X'FF000000' 66040018 DOWNMSG WTO 'IEE045I LOG INACTIVE',MF=L,ROUTCDE=(2),DESC=(4) 66060018 UPMSG WTO 'IEE046I LOG NOW ACTIVE',MF=L,ROUTCDE=(2), SA69446C66066021 DESC=(4) SA69446 66072021 DOUBLE EQU 1 66080018 ECBLNTH EQU 4 66100018 LNTHLL EQU 4 66120018 DS 0D 66200018 IEELOGFC DC A(0) * 66400018 DC A(IEELOGUP-IEELOGFC) * 66600018 SPACE 1 66660021 *****************************************************************A58198 66700021 * A58198 66740021 * PARTITION SIZE INCREASED TO X'F00' TO SOLVE 80A ABEND LOOPS. SA69879 66780021 * IF CODE IS ADDED TO THIS MODULE, ENSURE THE FQE DESCRIBES A58198 66820021 * ENOUGH FREE AREA FOR MAXIMUM NUMBER OF SVRB'S, IOB'S, DEB'S A58198 66860021 * AND LOG WRITER AND OPEN-CLOSE WORKAREAS. A58198 66900021 * A58198 66940021 *****************************************************************A58198 66980021 SPACE 1 67020021 ORG IEELWAIT+X'F00' SA69879 67060021 IEELOGUP EQU * A58198 67100021 EJECT 67200018 DCBD DSORG=PS 67400018 DCBSIZE EQU 88 ACTUAL DCB SIZE 67600018 EJECT 67800018 LOGCVT DSECT 68000018 CVT 68200018 EJECT 68400018 IEELCA 68600018 WTBUF EQU X'04' 68660018 DSENQED EQU X'02' 68720018 WMSTOPN EQU X'01' WARM START CONTROL BIT A52598 68770021 EJECT 68800018 IEEBASEA 69000018 LOGUCM DSECT 69060018 IEECUCM 69120018 EJECT 69200018 IKJTCB 69250020 EJECT 69300020 UNITABLE DSECT 69400018 * RESIDENT IO DEVICE TABLE 69500018 UNITSICC DS H * 69600018 UNITSIHH DS H * 69700018 UNITTRLN DS H * 69800018 UNITOVHI DS CL1 * 69900018 UNITOVHL DS CL1 * 70000018 UNITOVHK DS CL1 * 70100018 UNITFLAG DS CL1 * 70200018 UNITTOLR DS HL1 * 70300018 * 71200018 END 71400018 ./ ADD SSI=21470822,NAME=IEELOG02,SOURCE=0 TITLE 'IEELOG02-' 00200018 IEELOG02 CSECT 00400018 * D 470600-470800,471050-471100 A 471950-471970 A52598 00410021 * C 471800,471600 A52598 00420021 * A 052500,053000,132500-133500,289000-291600,432500-435900 A34828 00450021 * A 499100-501329,516500,815700,815800,815900,815920 A34828 00500021 * D 224000,227000 A34828 00550021 *TITLE IEELOG01 00800018 * 01200018 *FUNCTION 01600018 * INITIALIZE THE DCB'S AND JFCB'S. THE QUEUE MANAGER 02000018 * IS USED TO WRITE THE JFCB'S TO THE QUEUE. THE LOG 02400018 * WRITER IS ATTACHED AS A DAUGHTER TASK AND THE 02800018 * LOG WRITER IS GIVEN CONTROL AFTER THE ATTACH 03200018 * VIA A POST TO THE LOGECB (BALOGECB) IN MASTER RES. CORE 03600018 * THE LOG WRITER WILL ISSUE SVC 36 TO OPEN THE 04000018 * LOG DATA SETS. 04400018 * THIS MODULE PASSES CONTROL TO IEEVWAIT VIA AN XCTL 04800018 * OR IF SMF IS IN THE SYSTEM, TO THE SMF INITIALIZER 05200018 * IF ALLOCATION OF THE JOB QUEUE FAILED THEN THE A34828 05250021 * SYSTEM LOG IS MADE INACTIVE A34828 05300021 * 05600018 * 06000018 *ATTRIBUTES REENTRANT 06400018 * 06800018 SPACE 4 07200018 R0 EQU 0 * 07600018 R1 EQU 1 * 08000018 BASEREG EQU 2 08400018 QPARM EQU 3 * 08800018 R3 EQU 3 08850018 R4 EQU 4 08900018 R5 EQU 5 09000018 R6 EQU 6 09100018 R8 EQU 8 * 09200018 R9 EQU 9 * 09600018 R10 EQU 10 * 10000018 R11 EQU 11 MASTER RESIDENT CORE BASE 10400018 PLCA EQU 12 LCA BASE (SET ON ENTRY) 10800018 R13 EQU 13 * 11200018 R14 EQU 14 * 11600018 R15 EQU 15 * 12000018 LOGPRTY EQU 15 12400018 SP250 EQU 250 * 12800018 TCBKEY EQU 28 * 13200018 N29 EQU 29 A34828 13250021 N4 EQU 4 A34828 13300021 N1 EQU 1 A34828 13310021 N0 EQU 0 A34828 13350021 ATINDS EQU 27 OFFSET TO ATTACH MODE 13600018 * BYTE 14000018 ATMODE EQU X'01' SET THIS TO REQUEST SUPRV 14400018 * MODE 14800018 TCBFLGS EQU 29 OFFSET TO FLGS IN TCB 15200018 TCBFSM EQU X'80' SET THIS TO LOOK LIKE 15600018 * MASTER SCHED 16000018 FIRSTWR EQU X'80' SET TO INDICATE FIRST 16400018 * ENTRY TO WRITER 16800018 JSTCB EQU 124 OFFSET TO JOB STEP TCB 17200018 * PTR 17600018 SPACE 4 18000018 STM DEC14,DEC12,DEC12(DEC13) SAVE 18400018 BALR BASEREG,R0 ESTABLISH ADDRESSABILITY 18800018 USING *,BASEREG 19200018 L R0,STORPOOL * 19600018 GETMAIN R,LV=(0) STORAGE WORK AREA 20000018 USING STORAGE,R1 20400018 ST R13,SAVE13 * 20800018 LR R13,R1 * 21200018 USING STORAGE,R13 21600018 USING LCABASE,PLCA 22000018 USING BASE,R11 22400018 LA QPARM,QMPARM PT TO QM LIST 22800018 USING IOPARAMS,QPARM 23200018 SPACE 4 23600018 LOAD EP=IEFQMSSS 24000018 LR R8,R0 * 24400018 XC IOPARAMS(QMLNGH),IOPARAMS CLEAR IT INCL EXT AREA 24800018 MVC QMNAM(DEC8),LOGNAME MOVE JOBNAME IN 25200018 MVI QMPRI,LOGPRTY PRIORITY 25600018 MVI QMPOP,QMASGS ASSIGN/START 26000018 LA R1,QMEXT * 26400018 ST R1,QMPCM PT TO EXT AREA 26800018 MVI QMPCM,HEX40 ASSIGN 4 TTR'S 27200018 LA R1,IOPARAMS PT TO QMPA 27600018 LR R15,R8 * 28000018 BALR R14,R15 * 28400018 SPACE 4 28800018 * 28850021 * REGISTER 15 IS USED FOR THE RETURN CODE FROM QMSSS. IF REG A34828 28900021 * 15 IS NOT ZERO THEN THE ALLOCATION OF THE JOB QUEUE WAS A34828 28950021 * UNSUCCESSFUL DUE TO EITHER AN I/O ERROR OR QUEUE FULL A34828 29000021 * CONDITIONS A34828 29050021 SR R9,R9 ZERO OUT REG 9 A34828 29100021 CR R9,R15 CHECK THE RETURN CODE A34828 29150021 BNE LOGDOWN BRANCH NOT ZERO A34828 29160021 L R1,LCATIOT PTR TO MASTER TIOT 29200018 AH R1,LCATOFF PLUS OFFSET TO LOG TIOT ENTRY 29600018 USING TIOENTRY,R1 AND BASE ON IT 30000018 MVC TIOEJFCB(DEC3),QMEXT JFCB FOR PRIMARY 30400018 SR R10,R10 * 30800018 IC R10,TIOELNGH * 31200018 LA R1,DEC0(R10,R1) * 31600018 MVC TIOEJFCB(DEC3),QMEXT+DEC4 ALTERNATE 32000018 DROP R1 32400018 * 32800018 * 33200018 SPACE 4 33600018 * ESTABLISH XJFCB'S 34000018 * AND SET POINTERS TO JFCB, JFCBX AND TTR IN QM EXT WORK. 34400018 MVC LOGJFCBX+JFCBEXAD-INFMJFCB(DEC3),QMEXT+DEC8 * 34800018 MVC LOGJFCBY+JFCBEXAD-INFMJFCB(DEC3),QMEXT+DEC12 * 35200018 XC FAKEJFCB(DEC176),FAKEJFCB * 35600018 LM R9,R10,QMEXT+DEC8 * 36000018 ST R9,QMEXT+DEC20 * 36400018 ST R10,QMEXT+DEC28 * 36800018 LA R9,FAKEJFCB * 37200018 ST R9,QMEXT+DEC16 * 37600018 ST R9,QMEXT+DEC24 * 38000018 SPACE 4 38400018 LM R9,R10,QMEXT SHIFT TTR'S OVER 38800018 ST R9,QMEXT+DEC4 * 39200018 ST R10,QMEXT+DEC12 * 39600018 LM R9,R10,ADJFCB INSERT CORE ADDR'S 40000018 ST R9,QMEXT * 40400018 ST R10,QMEXT+DEC8 FOR P, A, D 40800018 MVI QMPOP,QMWRTE INDICATE WRITE 41200018 MVI QMPCM,HEX04 WRITE 4 RECORDS 41600018 LA R1,IOPARAMS * 42000018 LR R15,R8 * 42400018 BALR R14,R15 * 42800018 DELETE EP=IEFQMSSS 43200018 LA R1,LCAUCB POINT TO 1ST UCB ADDR. A34828 43250021 LA R3,2 SET LOOP CONTROL A34828 43300021 UCBLOOP EQU * A34828 43350021 USING UCBDSECT,R14 43400021 LH R14,N0(R1) GET UCB ADDRESS A34828 43450021 OI SRTESTAT,SRTEPRES SET PERM. RESIDENT A34828 43500021 NI SRTESTAT,255-SRTERESV TUEN OFF RESERVED A34828 43550021 TM SRTESTAB,SRTEBPRV+SRTEBSTR PRIV. OR STOR.? A34828 43560021 BNZ NOTPUBLC BRANCH IF YES A34828 43570021 OI SRTESTAB,SRTEBPUB SET PUBLIC ATTRIBUTE A34828 43580021 NOTPUBLC EQU * A34828 43590021 LA R1,NXTUCB(R1) POINT TO NEXT UCB A34828 43592021 BCT R3,UCBLOOP PROCESS NEXT UCB IF ANY A34828 43594021 * FALL THROUGH IF DONE A34828 43596021 DROP R14 43598021 MVI LCAPDEV+N10,CX * 43600018 MVI LCAADEV+N10,CY * 44000018 *THIS SECTION INITIALIZES LCAXCTL (USED BY THE SVC LOADS) AND 44400018 LA R9,LCAXNAM * 44800018 ST R9,LCAXCTL * 45200018 ST PLCA,BALOG SET POINTER TO LCA IN MASTER R 46400018 OI BALOG,X'80' COMP TASK CHECKS BALOG WHILE 46430018 * FIELD STILL CONTAINS USER INFO 46460018 OI LCAPOSTT,DSENQED SET QUEUE SEARCH INDICATOR 46500018 XC LCABECB,LCABECB CLEAR ECB 46600018 POST BALOGECB 46800018 WAIT 1,ECB=LCABECB WAIT FOR LOGWR TO SET UP DCBS 46805018 GETMAIN R,LV=LOCPARML,SP=LOCPRMSP GET CORE FOR PARM AREA 46815018 LR R6,R1 SAVE ADDR IN R6 46820018 USING LOCDSECT,R6 46825018 XC LOCPARMS,LOCPARMS CLEAR PARAMETER AREA 46830018 LA R7,JOBNAM1 ADDR OF FIRST JOBNAME 46835018 LA R8,NUMJOBS ADDRESS OF NUMBER OF JOBS 46840018 LA R9,NNQCR ADDR OF QUEUE TO BE SEARCHED 46845018 LA R10,INFOAREA ADDR OF AREA THAT RESULTS ARE STORED 46850018 * IN 46855018 STM R7,R10,JOBLSTP STORE IN ADDR PORTION OF PARMLIST 46860018 LA R1,NUMFOUND POINTER TO NUMBER OF JOBS FOUND 46865018 ST R1,NUMFNDP STORE IN PARM LIST 46870018 MVC JOBNAM1,DSXNAM MOVE FIRST JOBNAME TO LIST 46875018 MVC JOBNAM2,DSYNAM MOVE SECOND JOBNAME TO LIST 46880018 LA R7,TWOJOBS NUMBER OF JOBS TO LOOK FOR 46885018 LA R8,FRSTSOUT FIRST QUEUE TO BE SEARCHED 46890018 STM R7,R8,NUMJOBS STORE IN PARM LIST 46895018 LA R7,FRSTSOUT SET UP 46900018 LA R8,INCR1 LOOP 46905018 LA R9,LASTSOUT CONTROL 46910018 SRCHLOOP EQU * 46915018 ST R7,NNQCR STORE CURRENT QUEUE NUMBER 46920018 SR R1,R1 CLAR R1 46925018 ST R1,JOB1POS CLEAR PARM 46930018 ST R1,JOB2POS CLEAR PARM 46935018 LR R1,R6 POINT TO PARM LIST 46940018 L R15,VLOC GET ADDRESS OF SEARCH QUEUE ROUTINE 46945018 BALR R14,R15 GO TO IT 46950018 CLI JOBSFOND,NOJOBS IS ONE OF THE DATA SETS QUEUED 46955018 BNE DSONQ BRANCH IF YES 46960018 BXH R7,R8,DSNOTONQ UPDATE QUEUE NUMBER AND EXIT IF DONE 46965018 B SRCHLOOP GO SEARCH NEXT QUEUE 46970018 DSONQ EQU * 46975018 ** ONE OF THE LOG DATA SETS IS QUEUED FOR SYSOUT. THE OPERATOR MUST 46980018 ** BE ADVISED OF THIS CONDITION AND THE OTHER DATA SET MUST BE OPENED. 46985018 ** ALSO, THE LCA MUST INDICATE THAT ONE OF THE DATA SETS MUST BE 46990018 ** PROCESSED BY THE WRITER. 46995018 OI LCAPOSTT,POSTWLOG+DSENQED SET BITS IN LCA TO 47000018 * INDICATE THAT A WRITELOG 47005018 * MUST BE DONE 47010018 NI LCAPOSTT,ALLBITS-POSTINIT NO LONGER INITIALIZATION 47015018 * PROCESSING 47020018 OI LCAPOSTT,WMSTOPN TURN WARM START BIT ON M3272 47022019 OC JOB1POS,JOB1POS IS THE X DATA SET QUEUED 47025018 BNZ CALLLOG BRANCH IF YES 47030018 XC LCAPDEV(DEC16),LCAADEV SWITCH PRIMARY AND ALTERNATE 47035018 XC LCAADEV(DEC16),LCAPDEV DCBS 47040018 XC LCAPDEV(DEC16),LCAADEV SVC 36 WILL THEN OPEN 47045018 * THE CORRECT DATA SET 47050018 CALLLOG EQU * 47055018 DROP R6 47085018 USING WTODSECT,R6 47090018 MVC WTOMSG,DSQEDMSG MOVE MESSAGE TO MSG AREA 47095018 MVC MSGDSNM,LCAXORY INDICATE WHICH DATA SET IS QUEUED 47100018 ******** R7 STILL CONTAINS THE QUEUE NUMBER **************** 47115018 IC R1,CLASSTAB-DEC3(R7) GET SYSOUT CLASS THAT DATA SET IS 47120018 * QUEUED FOR 47125018 STC R1,QDMSGCLS STORE IN MESSAGE 47130018 LR R1,R6 POINT TO MESSAGE 47135018 WTO ,MF=(E,(1)) 47140018 B POSTLOG BRANCH AROUND BIT SETTINGS A52598 47160021 DSNOTONQ EQU * 47165018 OI LCAPOSTT,POSTINIT INDICATE INITIALIZATION 47170018 NI LCAPOSTT,ALLBITS-DSENQED TURN OFF DATA SET ENQD BIT 47175018 POSTLOG POST BALOGECB DO INITIALIZATION PROCESSING A52598 47180021 FREECORE EQU * 47185018 LR R1,R6 POINT TO GOTTEN CORE A52598 47195021 FREEMAIN R,LV=LOCPARML,A=(1),SP=LOCPRMSP A52598 47197021 L R0,STORPOOL * 47200018 LR R1,R13 * 47600018 L R13,SAVE13 * 48000018 FREEMAIN R,LV=(0),A=(1) 48400018 LR R1,R13 48800018 L R13,DEC4(R13) 49200018 FREEMAIN R,LV=72,A=(1),SP=255 49600018 L R4,CVTPTR POST COM TASK THAT 49630018 USING LOGCVT,R4 LOG INIT IS COMPLETED 49660018 L R5,CVTCUCB 49690018 USING LOGUCM,R5 49696018 TM UCMMODE,X'02' IS THIS AN MCS SYSTEM 49702018 DROP R5 49708018 BZ NO 49714018 LA R6,4 49720018 SR R5,R6 49750018 L R6,0(R5) 49780018 USING MCSUCM,R6 49810018 TM UCMSFLGS,UCMSYSG DOES HARDCOPY EQUAL SYSLOG? 49840018 BC 14,NO 49870018 POST UCMNPECB 49900018 B NO BRANCH OUT A34828 49910021 LOGDOWN EQU * A34828 49920021 * CONTROL IS PASSED TO HERE WHEN THE LOG SHOULD BE BROUGHT A34828 49922021 * DOWN A34828 49924021 * FREE THE REGISTER SAVE AREA AND QM WORK SPACE A34828 49926021 L R0,STORPOOL GET SIZE A34828 49928021 LR R1,R13 @ WAS SAVED IN REG 13 A34828 49928421 L R13,SAVE13 RESTORE REG 13 A34828 49928821 FREEMAIN R,LV=(0),A=(1) FREE THE CORE A34828 49929221 LR R1,R13 A34828 49929321 L R13,DEC4(R13) A34828 49929421 FREEMAIN R,LV=72,A=(1),SP=255 A34828 49929521 * A34828 49929621 * DELETE IEFQMSSS FROM THE MASTER'S REGION A34828 49929721 DELETE EP=IEFQMSSS A34828 49929821 * 49929921 * FREE THE SYSTEM LOG'S BUFFERS A34828 49953221 L R0,LCABSIZ GET SIZE EACH BUFFER A34828 49963221 SLL R0,N1 DOUBLE IT FOR FULL A34828 49973221 * BUFFER SIZE A34828 49975221 O R0,SP255 SET THE SUBPOOL TO 255 A34828 49975621 L R1,LCABUFP GET BUFFER @ A34828 49976021 FREEMAIN R,LV=(0),A=(1) FREE THE BUFFER A34828 49976421 * 49976521 * FREE THE LCA AND ZERO OUT MSRA'S POINTER TO IT A34828 49976621 LR R1,PLCA GET THE LCA ADDRESS A34828 49984421 L R3,LCASOUTP RESTORE REG 3 WITH SMF A34828 49984821 LA R0,LCAEND-LCABASE GET LCA SIZE A34828 49986421 O R0,SP255 SET SUBPOOL TO 255 A34828 49988421 FREEMAIN R,LV=(0),A=(1) FREE THE LCA A34828 49990421 XC BALOG(N4),BALOG CLEAR OUT LCA POINTER A34828 49990821 * 49991221 * INDICATE LOG NOT SUPPORTED A34828 49991621 OI MSLOGST,MSLOGTHD INDICATE LOG DOWN A34828 49992021 L R4,CVTPTR GET CVT @ A34828 49992121 USING LOGCVT,R4 50042121 L R7,CVTCUCB GET UCM BASE @ A34828 50052121 USING LOGUCM,R7 50062121 TM UCMMODE,X'02' IS THIS AN MCS SYSTEM A34828 50072121 DROP R7 50082121 BZ NOPOSTE BRANCH IF NOT MCS A34828 50084121 LA R8,N4 SUBTRACT 4 FROM UCM @ A34828 50086121 SR R7,R8 TO GET MCS PREFIX @ A34828 50088121 L R6,N0(R7) REG 6 HAS PREFIX @ A34828 50090121 USING MCSUCM,R6 50090521 TM UCMSFLGS,UCMSYSG DOES HARDCOPY = SYSLOG A34828 50090921 BC 14,NOPOSTE BRANCH IF NOT A34828 50091321 POST UCMNPECB POST TO GET NIP MSGS A34828 50091721 * TO HARDCOPY A34828 50091821 * 50091921 * GET THE DEVICE ADDRESS OF THE JOB QUEUE AND WRITE THE A34828 50092021 * ERROR MESSAGES. A34828 50108721 NOPOSTE EQU * 50118721 L R9,BAQ GET JOB QUEUE UCB @ A34828 50120721 USING UCBDSECT,R9 50122721 MVC MSG1+N29(3),UCBNAME PUT ADDRESS INTO MSG A34828 50124721 LA R1,MSG1 PUT OUT I/O ERROR MSG A34828 50125121 WTO MF=(E,(1)) 50125221 LA R1,MSG2 PUT OUT LOG NOT SUPPORTED A34828 50125321 * MESSAGE A34828 50130921 WTO MF=(E,(1)) 50132921 NO EQU * 50136521 RETURN (14,12) 50142121 SPACE 2 50400018 EJECT 50800018 LOGNAME DC CL8'IEELOG' * 51200018 DS 0F * 51600018 SP255 DC X'FF000000' *USED TO SET SUBPOOLS A34828 51650021 STORPOOL DC AL1(250),AL3(STORSIZE) * 52000018 ADJFCB DS 0F * 52400018 * * 52800018 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 53200018 * 53600018 * JFCB POINTERS 54000018 * 54400018 DC A(LOGJFCBX) PTR TO PRIME JFCB 54800018 DC A(LOGJFCBY) PTR TO ALTERNATE JFCB 55200018 * 55600018 * PRIME JFCB 56000018 * 56400018 LOGJFCBX DS 0D * 56800018 DC CL24'SYS1.SYSVLOGX' DATA SET NAME 57200018 DC CL20' ' * 57600018 DC CL8' ' NAME OR VERSION 58000018 DC XL1'00' OPEN J 58400018 DC XL13'0' SYSTEM CODE 58800018 DC XL1'01' NO LABEL 59200018 DC XL1'0' SPARE 59600018 DC XL2'0' FILE SEQUENCE 60000018 DC XL2'0' VOL SEQUENCE 60400018 DC XL8'0' SPARE MASK 60800018 DC XL6'0' DATES 61200018 DC XL1'0' INDICATOR ONE 61600018 DC XL1'80' INITIALIZE FOR MOD 62000018 DC XL28'0' SPECIFIED IN DCB 62400018 DC XL1'0' BLOCK AND TRACK 62800018 DC XL1'0' VOL SERIAL COUNT 63200018 LOGXVOL DC CL30' ' VOL SERIAL COUNT 63600018 DC XL4'0' VOL INFO 64000018 DC XL3'0' PRIMARY DATA QUANTITY 64400018 DC XL1'0' DA QUANTITY 64800018 DC XL3'0' 2NDARY DA QUANTITY 65200018 DC XL1'0' INDICATOR EXTENT 65600018 DC XL3'0' DIRECTORY QUANTITY 66000018 DC XL3'0' SPLIT JFCB 66400018 DC XL2'0' TTR 1ST ALLOC 66800018 DC XL3'0' JFCB SUB ALLOC 67200018 DC XL3'0' AVG RECORD LENGTH 67600018 DC XL1'1' VOL COUNT 68000018 DC XL1'0' SPLIT 68400018 DC XL4'0' TO 180 BYTES 68800018 LOGJFCBY DS 0D 69200018 DC CL24'SYS1.SYSVLOGY' DATA SET NAME 69600018 DC CL20' ' * 70000018 DC CL8' ' NAME OR VERSION 70400018 DC XL1'00' OPEN J 70800018 DC XL13'0' SYSTEM CODE 71200018 DC XL1'01' NO LABEL 71600018 DC XL1'0' SPARE 72000018 DC XL2'0' FILE SEQUENCE 72400018 DC XL2'0' VOL SEQUENCE 72800018 DC XL8'0' SPARE MASK 73200018 DC XL6'0' DATES 73600018 DC XL1'0' INDICATOR ONE 74000018 DC XL1'80' INITIALIZE FOR MOD 74400018 DC XL28'0' SPECIFIED IN DCB 74800018 DC XL1'0' BLOCK AND TRACK 75200018 DC XL1'0' VOL SERIAL COUNT 75600018 LOGYVOL DC CL30' ' VOL SERIAL 76000018 DC XL4'0' VOL INFO 76400018 DC XL3'0' PRIMARY DATA QUANTITY 76800018 DC XL1'0' DA QUANTITY 77200018 DC XL3'0' 2NDARY DA QUANTITY 77600018 DC XL1'0' INDICATOR EXTENT 78000018 DC XL3'0' DIRECTORY QUANTITY 78400018 DC XL3'0' SPLIT JFCB 78800018 DC XL2'0' TTR 1ST ALLOC 79200018 DC XL3'0' JFCB SUB ALLOC 79600018 DC XL3'0' AVG RECORD LENGTH 80000018 DC XL1'1' VOL COUNT 80400018 DC XL1'0' SPLIT 80800018 DC XL4'0' TO 180 BYTES 81200018 SWDSNM EQU X'0F' 81220018 LOCPRMSP EQU 250 81240018 DSXNAM EQU LOGJFCBX+5 81260018 DSYNAM EQU LOGJFCBY+5 81280018 TWOJOBS EQU 2 81300018 FRSTSOUT EQU 3 81320018 INCR1 EQU 1 81340018 LASTSOUT EQU 38 81360018 NOJOBS EQU 0 81380018 ALLBITS EQU 255 81400018 LOGSVC EQU 36 81420018 R7 EQU 7 81440018 CON2 EQU 2 81460018 VLOC DC V(LOC) 81480018 DSQEDMSG WTO 'IEE043I LOG DATA SET X QUEUED TO SYSOUT CLASS L',MF=L, C81500018 ROUTCDE=(2),DESC=(4) 81520018 CLASSTAB DC C'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' TABLE FOR 81540018 ***** SYSOUT CLASSES 81560018 MSG1 WTO 'IEE040I LOG I/O ERROR ON ',MF=L, C81570021 ROUTCDE=(2,4,10),DESC=(4) A34828 81580021 MSG2 WTO 'IEE037I LOG NOT SUPPORTED.',MF=L, C81590021 ROUTCDE=(2),DESC=(4),MCSFLAG=NOCPY A34828 81592021 SPACE 4 81600018 SPACE 4 82000018 STORAGE DSECT 82400018 SAVEAREA DS 18F * 82800018 SAVE13 DS F * 83200018 QMPARM DS 9F * 83600018 QMEXT DS 8F * 84000018 QMEND EQU * * 84400018 QMLNGH EQU QMEND-QMPARM * 84800018 FAKEJFCB DS 176C * 85200018 STOREND EQU * * 85600018 STORSIZE EQU STOREND-STORAGE * 86000018 SPACE 4 86400018 IEELCA 86800018 LCAFGFT EQU LCATOFF 87200018 DSENQED EQU X'02' 87210018 * FLAGGING FOR NEXT STATEMENT M3272 87213019 WMSTOPN EQU X'01' SPECIAL WARM START CONTROL BIT 87216019 LOCDSECT DSECT 87220018 LOCPARMS DS 0CL80 LENGTH OF WHOLE THING 87230018 JOBLSTP DS F POINTER TO JOB LIST 87240018 NUMJOBSP DS F POINTER TO NUMBER OF JOBS WERE 87250018 * LOOKING FOR 87260018 NNQCRP DS F POINTER TO WORD CONTAING NN OF QCR 87270018 INFOPTR DS F ADDR OF AREA TO CONTAIN OUTPUT FROM 87280018 * LOC 87290018 NUMFNDP DS F POINTER TO A WORD WHICH WILL CONTAIN 87300018 * THE NUMBER OF JOBS FOUND BY LOC 87310018 JOBNAM1 DS CL8 NAME OF FIRST JOB (SYSVLOGX) 87320018 JOBNAM2 DS CL8 NAME OF SECOND JOB(SYSVLOGY) 87330018 NUMJOBS DS F CONTAINS THE NUMBER OF JOBS TO LOOK 87340018 * FOR(2) 87350018 NNQCR DS F NN OF THE QUEUE TO BE SEARCHED 87360018 INFOAREA EQU * 87370018 JOB1POS DS F POSITION OF JOB ON QUEUE 87380018 JOB1PRTY DS F PRIORITY OF JOB 87390018 JOB1STAT DS F STATUS OF JOB 87400018 JOB1NN DS F NN OF JOB ON QUEUE 87410018 JOB2POS DS CL16 SAME AS FOR JOB1 87420018 NUMFOUND DS F NUMBER OF JOBS FOUND 87430018 LOCPARML EQU *-LOCPARMS LENGTH OF AREA 87440018 JOBSFOND EQU NUMFOUND+3 87450018 WTODSECT DSECT 87460018 WTOMSG DS 0CL55 LENGTH OF AREA 87470018 DS CL25 * 87480018 MSGDSNM DS CL1 SET TO EITHER X OR Y 87490018 DS CL24 * 87500018 QDMSGCLS DS CL1 CONTAINS SYSOUT CLASS 87510018 DS CL4 * 87520018 EJECT 87600018 IEFQMNGR 88000018 EJECT 88400018 LOGJFCB DSECT 88800018 IEFJFCBN 89200018 EJECT 89600018 IEEBASEA 90000018 EJECT 90400018 TIOT DSECT 90800018 IEFTIOT1 91200018 LOGUCM DSECT 91280018 IEECUCM 91360018 LOGCVT DSECT 91440018 CVT 91520018 EJECT 91570018 * 91620018 * EQUATES 91670018 * 91720018 CX EQU C'X' 91770018 CY EQU C'Y' 91820018 N10 EQU 10 91870018 DEC14 EQU 14 NUMERIC EQUATE 91920018 DEC12 EQU 12 NUMERIC EQUATE 92000018 DEC13 EQU 13 NUMERIC EQUATE 92400018 DEC8 EQU 8 NUMERIC EQUATE 92800018 HEX40 EQU X'40' HEX EQUATE 93200018 DEC3 EQU 3 NUMERIC EQUATE 93600018 DEC0 EQU 0 NUMERIC EQUATE 94000018 DEC4 EQU 4 NUMERIC EQUATE 94400018 DEC176 EQU 176 NUMERIC EQUATE 94800018 DEC20 EQU 20 NUMERIC EQUATE 95200018 DEC28 EQU 28 NUMERIC EQUATE 95600018 DEC16 EQU 16 NUMERIC EQUATE 96000018 DEC24 EQU 24 NUMERIC EQUATE 96400018 HEX04 EQU X'04' HEX EQUATE 96800018 DEC2 EQU 2 NUMERIC EQUATE 97200018 DEC255 EQU 255 NUMERIC EQUATE 97600018 DEC1 EQU 1 NUMERIC EQUATE 98000018 DEC36 EQU 36 NUMERIC EQUATE 98400018 UCBDSECT DSECT 98500018 IEFUCBOB 98600018 NXTUCB EQU 2 98700018 END 98800018 * 99200018 ./ ADD SSI=00052340,NAME=IEEMCREP,SOURCE=0 IEEMCREP CSECT 07000014 BALR 15,0 14000014 USING *,15 21000014 LA 14,RETURN 28000014 L 15,IEEMCRV 35000014 BR 15 42000014 IEEMCRV DC V(IEEBB1) MASTER COMMAND ROUTINE 49000014 RETURN DS 0H 56000014 BALR 15,0 63000014 USING *,15 70000014 SR 8,8 SET FOR FIRST ENTRY POINT 77000014 XCTL EP=IEFKG 84000014 END 91000014 ./ ADD SSI=00052349,NAME=IEEMCRFK,SOURCE=0 IEEBB1 CSECT 10000014 BALR 15,0 20000014 USING *,15 30000014 XCTL EP=IEEMCREP 40000014 END 50000014 ./ ADD SSI=03050652,NAME=IEEMCR01,SOURCE=0 GBLC &SCHDLR 00020000 &SCHDLR SETC 'SSS' 00040000 MSCED IEEGMSLT DSECT,SMBL=YES 00060000 TITLE 'MASTER COMMAND ROUTINE - MODULE IEEMCR01' 00080000 * 00100000 * DEFINE VERB IN BUFFER - LOCATE VERB IN TABLE 00120000 * 00140000 * *** CODING BEGINS *** 00160000 * 00180000 IEEBB1 CSECT 00200000 *2344 AABA 00210016 INTREG13 EQU 13 INT REG SAVE AREA ADR REG 00220000 MSMSG013 EQU 13 SET COMMAND FIRST ERROR CODE 00240000 STM 0,15,0(INTREG13) SAVE INTERPRETER REGISTERS 00260000 BALR BASEREG,0 SET UP 00280000 USING IEEBB1PE,BASEREG PERMANENT BASE (R12) 00300000 IEEBB1PE ST INTREG13,INTADREG SAVE INT REG SAVE AREA ADR 00320000 L BASEREG1,TVTADR CVT ADR TO R8 00340000 L BASEREG1,IEEMSLTV(BASEREG1) RESIDENT CORE ADR TO R8 00360000 USING IEEMSLT,BASEREG1 USING R8 AS RESIDENT BASE 00380000 OI MSSSB,MSCONFLG CONSOLE FLAG TO ON 00400000 NI MSONEMSG+1,Z BRANCH TO NOP 00420000 LTR PASSREG0,PASSREG0 COMMAND THROUGH INPUT STREAM 00440000 BZ BUFRMOVE YES 00460000 OI MSPFG,MSBSP NO,COMMAND PENDING BIT TO ON 00480000 IEEBB2PE TM MSSSA,MSINLSW IPL TIME 00500000 BO RDREOF NO 00520000 TM MSSSA,MSNRP YES,IS A NEW READER PENDING 00540000 BZ CANDRTN YES (IPL TIME) 00560000 TM MSSSA,MSNWP NO,IS A NEW WRITER PENDING 00580000 BZ CANDRTN YES (IPL TIME) 00600000 RDREOF TM MSSSA,MSREOF NO,HAS A READER EOF BEEN SET 00620000 BO MSONEMSG YES 00640000 REQPNDNG TM MSPFG,MSBSP NO,IS ANY OTHER COMMAND PENDING 00660000 BO MSONEMSG YES 00680000 L INTREG13,INTADREG INTRPTR REG SAVE AREA ADR TO R13 00700000 MSRETURN NI MSSSB,F-MSCONFLG CONSOLE FLAG TO OFF 00720000 LM 0,15,0(INTREG13) RESTORE INTERPRETER REGISTERS 00740000 BR RETURN *** RETURN *** 00760000 CANDRTN L BASE,CANNEDID ADR OF CANNED COMD MODULE TO R15 00780000 BALR RETURN,BASE GOTO CANNED COMMAND MODULE 00800000 CANCOMDS LTR INTPASSR,INTPASSR ANY CANNED COMMANDS TO PROCESS 00820000 BNE BUFRMOVE YES 00840000 MSONEMSG NOP GETCOMD 00860000 OI MSONEMSG+1,BIT0+BIT1+BIT2+BIT3 NOP TO BRANCH 00880000 MVI MSERM,MSMSG007 SSS COMMAND REQUEST CODE 00900000 MSGHNDLR LA VRBTBL,FETCHMOD POINT TO FETCH MODULE NAME 00920000 ST VRBTBL,LINKLIST C(LINKLIST) = FETCH MODULE NAME 00940000 LA RETURN,RELOADBR RETURN FROM LINK=RELOADBR 00960000 LA BASE,LINKLIST R15 = A(LINKLIST) 00980000 STM 0,15,SAVEREGS SAVE ALL REGISTERS 01000000 SVC LINK *** GOTO FETCH MODULE *** 01020000 RELOADBR BALR BASEREG1,0 SET UP 01040000 USING *,BASEREG1 TEMPORARY BASE (R8) 01060000 LM 0,15,SAVEREGS RESTORE ALL REGISTERS 01080000 USING IEEBB1PE,BASEREG RESTORE PERMANENT BASE (R12) 01100000 USING IEEMSLT,BASEREG1 RESTORE RESIDENT BASE (R8) 01120000 GETCOMD XC MSECB(4),MSECB CLEAR MSECB 01140000 LA PASSREG1,MSBUFFER MCR LOCAL BUFFER ADDRESS TO R1 01160000 ST PASSREG1,MSPBP MCR LOCAL BUFFER ADDRESS TO MSPBP 01180000 LA PASSREG0,1(0,0) WAIT COUNT OF 1 TO REGISTER 0 01200000 LA PASSREG1,MSECB MSECB ADDRESS TO REGISTER 1 01220000 NI MSSSB,F-MSCONFLG CONSOLE FLAG TO OFF 01240000 OI MSECBFL,MSMCR MASTER COMMAND ROUTINE BIT TO ON 01260000 SVC WAIT *** WAIT FOR ATTENTION INTERRUPT *** 01280000 OI MSSSB,MSCONFLG CONSOLE FLAG TO ON 01300000 NI MSECBFL,F-MSMCR MCR BIT TO OFF 01320000 B COMDOK 01340000 BUFRMOVE XC MSBUFHDR(4),MSBUFHDR ZERO OUT MCR LOCAL BUFFER HDR 01360000 MVI MSBUFFER,BLANK BLANK OUT 01380000 MVC MSBUFFER+1(125),MSBUFFER MCR LOCAL BUFFER 01400000 MVC MSBUFFER(80),0(INTPASSR) INTERPRETER BUFR TO MCR LOCAL 01420000 LA PASSREG1,MSBUFHDR LOCAL BUFR HDR ADR TO R1 FOR WTO 01440000 LA BASEREG2,MSEOBEOB END OF BUFFER ADDRESS TO R11 01460000 BACKSCAN BCTR BASEREG2,0 SCAN BUFFER BACKWARDS FOR 01480000 CLI 0(BASEREG2),BLANK FIRST NON-BLANK CHARACTER 01500000 BE BACKSCAN LOOP UNTIL NON-BLANK CHARACTER FOUND 01520000 LA BASEREG2,1(BASEREG2,0) INCREMENT R11 BY 1 01540000 SR BASEREG2,PASSREG1 R11=CHARACTER COUNT+4 FOR WTO/WTOR 01560000 STC BASEREG2,MSBUFHDR+1 CHAR CNT+4 TO BUFR HDR FOR WTO/WTOR 01580000 SVC 35 *** WTO *** 01600000 COMDOK LA BASEREG2,MSBUFFER SET UP R11 FOR BUFFER SCANNING 01620000 LA INDEXER,1(0,0) SET INDEXER = 1,INDEX BY 1 01640000 CLI 0(BASEREG2),SLASH COMMAND ORIGIN 01660000 BC NEQ,SKIPBLNK CONSOLE - GOTO SKIPBLNK 01680000 LA BASEREG2,2(BASEREG2,0) INPUT STREAM - SKIP SLASHES 01700000 SKIPBLNK CLI 0(BASEREG2),BLANK SKIP 01720000 BC NEQ,NONBLNK LEADING 01740000 BXH BASEREG2,INDEXER,SKIPBLNK BLANKS 01760000 NONBLNK CLI 0(BASEREG2),EOB BLANK BUFFER 01780000 BE BLNKBUFR IS IN ERROR 01800000 LR SCANREG,BASEREG2 BASEREG2 POINTS TO VERB 01820000 BLNKFVRB CLI 1(SCANREG),BLANK FIND DELIMETER(BLANK) 01840000 BE BLNKOK FOLLOWING 01860000 BXH SCANREG,INDEXER,BLNKFVRB THE VERB 01880000 BLNKOK SR SCANREG,BASEREG2 SCANREG=CHAR COUNT-1 FOR EX 01900000 LM VRBTBL,LASTNTRY,VINDEX PARAMETERS FOR INDEXING VRB TBL 01920000 USING VERBS,VRBTBL ASSEMBLER FIGURES ITEM DISPLACEMENTS 01940000 VRBMATCH EX SCANREG,VERB COMPARE TABLE VS. BUFFER VERB 01960000 BE MATCH *** MATCH *** 01980000 BXLE VRBTBL,NTRYSIZE,VRBMATCH LOOP TO COMPARE NEXT VERB 02000000 BLNKBUFR MVI MSERM,MSMSG005 VERB ERROR CODE 02020000 MVC MSVRB(8),MSVRBERR LOAD VERB CELL WITH **VERB** 02040000 LA VRBTBL,FETCHMOD POINT TO FETCH MODULE NAME 02060000 LA RETURN,LINKRTRN RETURN POINT FROM LINK = LINKRTRN 02080000 B MSLINKTO 02100000 * 02120000 VERB CLC VERBM(1),0(BASEREG2) USE LENGTH OF GIVEN VERB 02140000 * 02160000 MATCH TM MSSSA,MSINLSW IPL TIME 02180000 BO EXECUTEC NO,PROCEED 02200000 TM MSPFG,MSDATE YES,HAS A SET COMMAND BEEN ISSUED 02220000 BO EXECUTEB YES PROCEED 02240014 CLC MSSET(8),0(VRBTBL) NO,IS THIS A SET COMMAND 02260000 BE EXECUTEC YES,PROCEED 02280000 CLC MST(8),0(VRBTBL) AABA 02286016 BE EXECUTEC AABA 02292016 MVI MSERM,MSMSG013 ILLEGAL COMMAND ERROR CODE 02300000 OI MSPFG,MSBSP TURN ON COMMAND PENDING BIT 02320000 B MSGHNDLR MESSAGE FOR SET COMMAND FIRST 02340000 SPACE 2 02341014 EXECUTEB TM CNVRTBT,X'FF' CONVERSION OF TTRS FINISHED 02342014 BO EXECUTEC YES PROCEED 02343014 STM 0,15,SAVEREGS SAVE ALL REGS 02344014 L INTREG13,INTADREG INT REG SAVE ADDR 02345014 L LASTNTRY,24(INTREG13) NRWT ADDR 02346014 L BASE,CNVRT CONVERSION RTE 02347014 OI CNVRTBT,X'FF' SET CONVERSION DONE BYTE 02348014 BALR RETURN,BASE 02349014 BALR BASEREG1,0 TEMPORARY BASE 02350014 USING *,BASEREG1 * 02351014 LM 0,15,SAVEREGS RESTOR REGS 02352014 USING IEEBB1PE,BASEREG RESTORE PERMANENT BASE REGS 02353014 USING IEEMSLT,BASEREG1 * 02354014 SPACE 2 02355014 EXECUTEC MVC MSVRB(8),0(VRBTBL) LOAD VERB CELL WITH VERB 02360000 LA BASEREG2,1(BASEREG2,SCANREG) POINT TO VRB DELIMITER 02380000 LISTPTR CLI 1(BASEREG2),BLANK FIND FOLLOWING 02400000 BC NEQ,FOUND NON-BLANK LIST AND POINT 02420000 BXH BASEREG2,INDEXER,LISTPTR TO LEADING DELIMITER 02440000 FOUND MVI 0(BASEREG2),COMMA COMMA PRECEDES COMD PARAMETER LIST 02460000 BCTR BASEREG2,0 POINT TO ADR PRECEEDING COMMA 02480000 ST BASEREG2,MSPBP SAVE RESIDENT BUFFER POINTER 02500000 LA VRBTBL,8(VRBTBL,0) POINT TO MODULE NAME 02520000 LA RETURN,LINKRTRN RETURN POINT FROM LINK = LINKRTRN 02540000 MSLINKTO ST VRBTBL,LINKLIST 02560000 LA BASE,LINKLIST R15 = A(LINKLIST) 02580000 STM 0,15,SAVEREGS SAVE ALL REGISTERS 02600000 CLC MSVRBERR(8),MSVRB BLANK BUFFER 02620000 BE MSLINK YES,LINK TO IEEGK1GM FOR ERROR MSG 02640000 L INTREG13,INTADREG RESTORE INT REG SAVE AREA ADR 02660000 L LASTNTRY,24(INTREG13) NEW RDR/WRTR TABLES PTR TO R5 02680000 CLC MSSET(8),MSVRB SET COMMAND 02700000 BE MSLINK YES,LINK TO SET COMD MODULE 02720000 CLC MST(8),MSVRB AABA 02726016 BE MSLINK AABA 02732016 CLC MSSTART(8),MSVRB START COMMAND 02740000 BE MSLINK YES,LINK TO START COMD MODULE 02760000 CLC MSS(8),MSVRB AABA 02761016 BE MSLINK AABA 02762016 CLC MSSTOP(8),MSVRB STOP COMMAND 02765014 BE MSCHKWTR YES,DETERMINE IF IT IS STOP WTR 02770014 CLC MSP(8),MSVRB AABA 02771016 BE MSCHKWTR 02772016 MSNOLINK EQU * 02775014 MVI 1(BASEREG2),BLANK BLANK REPLACES COMMA FOR NON-LINK MOD 02780000 L PASSREG1,BUFRADR MCR LOCAL BUFFER ADR TO R1 02800000 OI MSNTAL,BIT5 MSCURE34 BIT TO ON 02820000 NI MSSSB,F-MSCONFLG CONSOLE FLAG BIT TO OFF 02840000 SVC 34 GOTO IEEMEXCP TO XCTL TO OTHER COMDS 02860000 OI MSSSB,MSCONFLG CONSOLE FLAG BIT TO ON 02880000 B LINKRTRN RETURN FROM IEEMEXCP 02900000 MSCHKWTR CLC 2(4,BASEREG2),MSWTR STOP WTR COMMAND 02904014 BNE MSNOLINK NO, IS NOT A STOP WTR COMMAND 02908014 LA VRBTBL,8(VRBTBL,0) YES,POINT TO STOP WTR MODULE 02912014 ST VRBTBL,LINKLIST 02916014 MSLINK SVC LINK LINK TO START OR SET MODULE 02920000 LINKRTRN BALR BASEREG1,0 SET UP 02940000 USING *,BASEREG1 TEMPORARY BASE (R8) 02960000 LM 0,15,SAVEREGS RESTORE ALL REGISTERS 02980000 USING IEEBB1PE,BASEREG RESTORE PERMANENT BASE (R12) 03000000 USING IEEMSLT,BASEREG1 RESTORE RESIDENT BASE (R8) 03020000 L INTREG13,INTADREG INTRPTR REG SAVE AREA ADR TO R13 03040000 L PASSREG0,0(INTREG13,0) LOAD R0 03060000 LTR PASSREG0,PASSREG0 COMMAND THROUGH INPUT STREAM 03080000 BZ MSRETURN YES,RETURN TO INTERPRETER 03100000 B IEEBB2PE NO,LOOP FOR MORE COMMANDS 03120000 LINKLIST DS A 03140000 DC F'0' 03160000 CNVRT DC V(IEEICN01) 03166014 CNVRTBT DC X'00' 03172014 CANNEDID DC V(IEEICCAN) 03180000 SAVEREGS DS 16F REGISTER SAVE AREA 03200000 BUFRADR DC X'80' 03220000 DC AL3(MSBUFFER) 03240000 INTADREG DS F INT REG SAVE AREA ADR REG SAVE AREA 03260000 MSBUFHDR DS F MCR LOCAL BUFFER HEADER 03280000 MSBUFFER DS 126C MCR LOCAL BUFFER 03300000 MSEOBEOB DC X'E0E0' MCR LOCAL BUFFER END OF BUFFER MARKS 03320000 MSVRBERR DC CL8'**VERB**' 03340000 MSSET DC CL8'SET' 03360000 MSSTART DC CL8'START' 03380000 MSWTR DC C'WTR,' 03386014 MSSTOP DC CL8'STOP' 03392014 MST DC CL8'T' AABA 03394016 MSS DC CL8'S' AABA 03396016 MSP DC CL8'P' AABA 03398016 FETCHMOD DC CL8'IEEGK1GM' 03400000 TITLE 'TABLE OF COMMAND VERBS' 03420000 DS 0D 03440000 VERBS EQU * 03460000 VERBM EQU * 03480000 DC CL8'START' 03500000 VERBL EQU * 03520000 DC CL8'IEEIC1PE' 03540000 VENTRY EQU * 03560000 DC CL8'VARY' 03580000 DC CL8'IEEGNSSD' 03600000 DC CL8'UNLOAD' 03620000 DC CL8'IEEGXSSD' 03640000 DC CL8'MOUNT' 03660000 DC CL8'IEEGYSPE' 03680000 DC CL8'CANCEL' 03700000 DC CL8'IEEGWSSD' 03720000 DC CL8'SET' 03740000 DC CL8'IEEGESTO' 03760000 DC CL8'DISPLAY' 03780000 DC CL8'IEEIE1TO' 03800000 DC CL8'REQ' 03810014 DC CL8'IEEIA1TO' 03820014 DC CL8'STOP' 03830014 DC CL8'IEEID1TO' STOP COMMAND ROUTINE 03840014 DC CL8'IEEIC1PE' STOP WTR COMMAND ROUTINE 03850014 DC CL8' ' AABA 03852016 DC CL8'S' AABA 03854016 DC CL8'IEEIC1PE' AABA 03856016 DC CL8'V' AABA 03858016 DC CL8'IEEGNSSD' AABA 03860016 DC CL8'U' AABA 03862016 DC CL8'IEEGXSSD' AABA 03864016 DC CL8'M' AABA 03866016 DC CL8'IEEGYSPE' AABA 03868016 DC CL8'C' AABA 03870016 DC CL8'IEEGWSSD' AABA 03872016 DC CL8'T' AABA 03874016 DC CL8'IEEGESTO' AABA 03876016 DC CL8'D' AABA 03878016 DC CL8'IEEIE1TO' AABA 03880016 DC CL8'P' AABA 03882016 DC CL8'IEEID1TO' AABA 03884016 DC CL8'IEEIC1PE' 03886016 VLAST EQU * 03900000 VSIZE EQU VENTRY-VERBS 03920000 VINDEX DC A(VERBS) 03940000 DC A(VSIZE) 03960000 DC A(VLAST-VSIZE) 03980000 END 04000000 ./ ADD SSI=01052364,NAME=IEEMCS01,SOURCE=0 GBLC &SCHDLR 00020000 &SCHDLR SETC 'SSS' 00040000 MSCED IEEGMSLT DSECT,SMBL=YES 00060000 TITLE 'MASTER COMMAND ROUTINE - MODULE IEEMCR01' 00080000 * 00100000 * DEFINE VERB IN BUFFER - LOCATE VERB IN TABLE 00120000 * 00140000 * *** CODING BEGINS *** 00160000 * 00180000 IEEBB1 CSECT 00200000 INTREG13 EQU 13 INT REG SAVE AREA ADR REG 00220000 MSMSG013 EQU 13 SET COMMAND FIRST ERROR CODE 00240000 STM 0,15,0(INTREG13) SAVE INTERPRETER REGISTERS 00260000 BALR BASEREG,0 SET UP 00280000 USING IEEBB1PE,BASEREG PERMANENT BASE (R12) 00300000 IEEBB1PE ST INTREG13,INTADREG SAVE INT REG SAVE AREA ADR 00320000 L BASEREG1,TVTADR CVT ADR TO R8 00340000 L BASEREG1,IEEMSLTV(BASEREG1) RESIDENT CORE ADR TO R8 00360000 USING IEEMSLT,BASEREG1 USING R8 AS RESIDENT BASE 00380000 OI MSSSB,MSCONFLG CONSOLE FLAG TO ON 00400000 NI MSONEMSG+1,Z BRANCH TO NOP 00420000 LTR PASSREG0,PASSREG0 COMMAND THROUGH INPUT STREAM 00440000 BZ BUFRMOVE YES 00460000 OI MSPFG,MSBSP NO,COMMAND PENDING BIT TO ON 00480000 IEEBB2PE TM MSSSA,MSINLSW IPL TIME 00500000 BO RDREOF NO 00520000 TM MSSSA,MSNRP YES,IS A NEW READER PENDING 00540000 BZ CANDRTN YES (IPL TIME) 00560000 TM MSSSA,MSNWP NO,IS A NEW WRITER PENDING 00580000 BZ CANDRTN YES (IPL TIME) 00600000 RDREOF TM MSSSA,MSREOF NO,HAS A READER EOF BEEN SET 00620000 BO MSONEMSG YES 00640000 REQPNDNG TM MSPFG,MSBSP NO,IS ANY OTHER COMMAND PENDING 00660000 BO MSONEMSG YES 00680000 L INTREG13,INTADREG INTRPTR REG SAVE AREA ADR TO R13 00700000 MSRETURN NI MSSSB,F-MSCONFLG CONSOLE FLAG TO OFF 00720000 LM 0,15,0(INTREG13) RESTORE INTERPRETER REGISTERS 00740000 BR RETURN *** RETURN *** 00760000 CANDRTN L BASE,CANNEDID ADR OF CANNED COMD MODULE TO R15 00780000 BALR RETURN,BASE GOTO CANNED COMMAND MODULE 00800000 CANCOMDS LTR INTPASSR,INTPASSR ANY CANNED COMMANDS TO PROCESS 00820000 BNE BUFRMOVE YES 00840000 MSONEMSG NOP GETCOMD 00860000 OI MSONEMSG+1,BIT0+BIT1+BIT2+BIT3 NOP TO BRANCH 00880000 MVI MSERM,MSMSG007 SSS COMMAND REQUEST CODE 00900000 MSGHNDLR LA VRBTBL,FETCHMOD POINT TO FETCH MODULE NAME 00920000 ST VRBTBL,LINKLIST C(LINKLIST) = FETCH MODULE NAME 00940000 LA RETURN,RELOADBR RETURN FROM LINK=RELOADBR 00960000 LA BASE,LINKLIST R15 = A(LINKLIST) 00980000 STM 0,15,SAVEREGS SAVE ALL REGISTERS 01000000 SVC LINK *** GOTO FETCH MODULE *** 01020000 RELOADBR BALR BASEREG1,0 SET UP 01040000 USING *,BASEREG1 TEMPORARY BASE (R8) 01060000 LM 0,15,SAVEREGS RESTORE ALL REGISTERS 01080000 USING IEEBB1PE,BASEREG RESTORE PERMANENT BASE (R12) 01100000 USING IEEMSLT,BASEREG1 RESTORE RESIDENT BASE (R8) 01120000 GETCOMD XC MSECB(4),MSECB CLEAR MSECB 01140000 LA PASSREG1,MSBUFFER MCR LOCAL BUFFER ADDRESS TO R1 01160000 ST PASSREG1,MSPBP MCR LOCAL BUFFER ADDRESS TO MSPBP 01180000 LA PASSREG0,1(0,0) WAIT COUNT OF 1 TO REGISTER 0 01200000 LA PASSREG1,MSECB MSECB ADDRESS TO REGISTER 1 01220000 NI MSSSB,F-MSCONFLG CONSOLE FLAG TO OFF 01240000 OI MSECBFL,MSMCR MASTER COMMAND ROUTINE BIT TO ON 01260000 SVC WAIT *** WAIT FOR ATTENTION INTERRUPT *** 01280000 OI MSSSB,MSCONFLG CONSOLE FLAG TO ON 01300000 NI MSECBFL,F-MSMCR MCR BIT TO OFF 01320000 B COMDOK 01340000 BUFRMOVE XC MSBUFHDR(4),MSBUFHDR ZERO OUT MCR LOCAL BUFFER HDR 01360000 MVI MSBUFFER,BLANK BLANK OUT 01380000 MVC MSBUFFER+1(125),MSBUFFER MCR LOCAL BUFFER 01400000 MVC MSBUFFER(80),0(INTPASSR) INTERPRETER BUFR TO MCR LOCAL 01420000 LA PASSREG1,MSBUFHDR LOCAL BUFR HDR ADR TO R1 FOR WTO 01440000 LA BASEREG2,MSEOBEOB END OF BUFFER ADDRESS TO R11 01460000 BACKSCAN BCTR BASEREG2,0 SCAN BUFFER BACKWARDS FOR 01480000 CLI 0(BASEREG2),BLANK FIRST NON-BLANK CHARACTER 01500000 BE BACKSCAN LOOP UNTIL NON-BLANK CHARACTER FOUND 01520000 LA BASEREG2,1(BASEREG2,0) INCREMENT R11 BY 1 01540000 SR BASEREG2,PASSREG1 R11=CHARACTER COUNT+4 FOR WTO/WTOR 01560000 STC BASEREG2,MSBUFHDR+1 CHAR CNT+4 TO BUFR HDR FOR WTO/WTOR 01580000 SVC 35 *** WTO *** 01600000 COMDOK LA BASEREG2,MSBUFFER SET UP R11 FOR BUFFER SCANNING 01620000 LA INDEXER,1(0,0) SET INDEXER = 1,INDEX BY 1 01640000 CLI 0(BASEREG2),SLASH COMMAND ORIGIN 01660000 BC NEQ,SKIPBLNK CONSOLE - GOTO SKIPBLNK 01680000 LA BASEREG2,2(BASEREG2,0) INPUT STREAM - SKIP SLASHES 01700000 SKIPBLNK CLI 0(BASEREG2),BLANK SKIP 01720000 BC NEQ,NONBLNK LEADING 01740000 BXH BASEREG2,INDEXER,SKIPBLNK BLANKS 01760000 NONBLNK CLI 0(BASEREG2),EOB BLANK BUFFER 01780000 BE BLNKBUFR IS IN ERROR 01800000 LR SCANREG,BASEREG2 BASEREG2 POINTS TO VERB 01820000 BLNKFVRB CLI 1(SCANREG),BLANK FIND DELIMETER(BLANK) 01840000 BE BLNKOK FOLLOWING 01860000 BXH SCANREG,INDEXER,BLNKFVRB THE VERB 01880000 BLNKOK SR SCANREG,BASEREG2 SCANREG=CHAR COUNT-1 FOR EX 01900000 LM VRBTBL,LASTNTRY,VINDEX PARAMETERS FOR INDEXING VRB TBL 01920000 USING VERBS,VRBTBL ASSEMBLER FIGURES ITEM DISPLACEMENTS 01940000 VRBMATCH EX SCANREG,VERB COMPARE TABLE VS. BUFFER VERB 01960000 BE MATCH *** MATCH *** 01980000 BXLE VRBTBL,NTRYSIZE,VRBMATCH LOOP TO COMPARE NEXT VERB 02000000 BLNKBUFR MVI MSERM,MSMSG005 VERB ERROR CODE 02020000 MVC MSVRB(8),MSVRBERR LOAD VERB CELL WITH **VERB** 02040000 LA VRBTBL,FETCHMOD POINT TO FETCH MODULE NAME 02060000 LA RETURN,LINKRTRN RETURN POINT FROM LINK = LINKRTRN 02080000 B MSLINKTO 02100000 * 02120000 VERB CLC VERBM(1),0(BASEREG2) USE LENGTH OF GIVEN VERB 02140000 * 02160000 MATCH TM MSSSA,MSINLSW IPL TIME 02180000 BO EXECUTEC NO,PROCEED 02200000 TM MSPFG,MSDATE YES,HAS A SET COMMAND BEEN ISSUED 02220000 BO EXECUTEB YES PROCEED 02240014 CLC MSSET(8),0(VRBTBL) NO,IS THIS A SET COMMAND 02260000 BE EXECUTEC YES,PROCEED 02280000 MVI MSERM,MSMSG013 ILLEGAL COMMAND ERROR CODE 02300000 OI MSPFG,MSBSP TURN ON COMMAND PENDING BIT 02320000 B MSGHNDLR MESSAGE FOR SET COMMAND FIRST 02340000 SPACE 2 02341014 EXECUTEB TM CNVRTBT,X'FF' CONVERSION OF TTRS FINISHED 02342014 BO EXECUTEC YES PROCEED 02343014 STM 0,15,SAVEREGS SAVE ALL REGS 02344014 L INTREG13,INTADREG INT REG SAVE ADDR 02345014 L LASTNTRY,24(INTREG13) NRWT ADDR 02346014 L BASE,CNVRT CONVERSION RTE 02347014 OI CNVRTBT,X'FF' SET CONVERSION DONE BYTE 02348014 BALR RETURN,BASE 02349014 BALR BASEREG1,0 TEMPORARY BASE 02350014 USING *,BASEREG1 * 02351014 LM 0,15,SAVEREGS RESTOR REGS 02352014 USING IEEBB1PE,BASEREG RESTORE PERMANENT BASE REGS 02353014 USING IEEMSLT,BASEREG1 * 02354014 SPACE 2 02355014 EXECUTEC MVC MSVRB(8),0(VRBTBL) LOAD VERB CELL WITH VERB 02360000 LA BASEREG2,1(BASEREG2,SCANREG) POINT TO VRB DELIMITER 02380000 LISTPTR CLI 1(BASEREG2),BLANK FIND FOLLOWING 02400000 BC NEQ,FOUND NON-BLANK LIST AND POINT 02420000 BXH BASEREG2,INDEXER,LISTPTR TO LEADING DELIMITER 02440000 FOUND MVI 0(BASEREG2),COMMA COMMA PRECEDES COMD PARAMETER LIST 02460000 BCTR BASEREG2,0 POINT TO ADR PRECEEDING COMMA 02480000 ST BASEREG2,MSPBP SAVE RESIDENT BUFFER POINTER 02500000 LA VRBTBL,8(VRBTBL,0) POINT TO MODULE NAME 02520000 LA RETURN,LINKRTRN RETURN POINT FROM LINK = LINKRTRN 02540000 MSLINKTO ST VRBTBL,LINKLIST 02560000 LA BASE,LINKLIST R15 = A(LINKLIST) 02580000 STM 0,15,SAVEREGS SAVE ALL REGISTERS 02600000 CLC MSVRBERR(8),MSVRB BLANK BUFFER 02620000 BE MSLINK YES,LINK TO IEEGK1GM FOR ERROR MSG 02640000 L INTREG13,INTADREG RESTORE INT REG SAVE AREA ADR 02660000 L LASTNTRY,24(INTREG13) NEW RDR/WRTR TABLES PTR TO R5 02680000 CLC MSSET(8),MSVRB SET COMMAND 02700000 BE MSLINK YES,LINK TO SET COMD MODULE 02720000 CLC MSSTART(8),MSVRB START COMMAND 02740000 BE MSLINK YES,LINK TO START COMD MODULE 02760000 CLC MSSTOP(8),MSVRB STOP COMMAND 02765014 BE MSCHKWTR YES,DETERMINE IF IT IS STOP WTR 02770014 MSNOLINK EQU * 02775014 MVI 1(BASEREG2),BLANK BLANK REPLACES COMMA FOR NON-LINK MOD 02780000 L PASSREG1,BUFRADR MCR LOCAL BUFFER ADR TO R1 02800000 OI MSNTAL,BIT5 MSCURE34 BIT TO ON 02820000 NI MSSSB,F-MSCONFLG CONSOLE FLAG BIT TO OFF 02840000 SVC 34 GOTO IEEMEXCP TO XCTL TO OTHER COMDS 02860000 OI MSSSB,MSCONFLG CONSOLE FLAG BIT TO ON 02880000 B LINKRTRN RETURN FROM IEEMEXCP 02900000 MSCHKWTR CLC 2(4,BASEREG2),MSWTR STOP WTR COMMAND 02904014 BNE MSNOLINK NO, IS NOT A STOP WTR COMMAND 02908014 LA VRBTBL,8(VRBTBL,0) YES,POINT TO STOP WTR MODULE 02912014 ST VRBTBL,LINKLIST 02916014 MSLINK SVC LINK LINK TO START OR SET MODULE 02920000 LINKRTRN BALR BASEREG1,0 SET UP 02940000 USING *,BASEREG1 TEMPORARY BASE (R8) 02960000 LM 0,15,SAVEREGS RESTORE ALL REGISTERS 02980000 USING IEEBB1PE,BASEREG RESTORE PERMANENT BASE (R12) 03000000 USING IEEMSLT,BASEREG1 RESTORE RESIDENT BASE (R8) 03020000 L INTREG13,INTADREG INTRPTR REG SAVE AREA ADR TO R13 03040000 L PASSREG0,0(INTREG13,0) LOAD R0 03060000 LTR PASSREG0,PASSREG0 COMMAND THROUGH INPUT STREAM 03080000 BZ MSRETURN YES,RETURN TO INTERPRETER 03100000 B IEEBB2PE NO,LOOP FOR MORE COMMANDS 03120000 LINKLIST DS A 03140000 DC F'0' 03160000 CNVRT DC V(IEEICN01) 03166014 CNVRTBT DC X'00' 03172014 CANNEDID DC V(IEEICCAN) 03180000 SAVEREGS DS 16F REGISTER SAVE AREA 03200000 BUFRADR DC X'80' 03220000 DC AL3(MSBUFFER) 03240000 INTADREG DS F INT REG SAVE AREA ADR REG SAVE AREA 03260000 MSBUFHDR DS F MCR LOCAL BUFFER HEADER 03280000 MSBUFFER DS 126C MCR LOCAL BUFFER 03300000 MSEOBEOB DC X'E0E0' MCR LOCAL BUFFER END OF BUFFER MARKS 03320000 MSVRBERR DC CL8'**VERB**' 03340000 MSSET DC CL8'SET' 03360000 MSSTART DC CL8'START' 03380000 MSSTOP DC CL8'STOP' 03386014 MSWTR DC C'WTR,' 03392014 FETCHMOD DC CL8'IEEGK1GM' 03400000 TITLE 'TABLE OF COMMAND VERBS' 03420000 DS 0D 03440000 VERBS EQU * 03460000 VERBM EQU * 03480000 DC CL8'START' 03500000 VERBL EQU * 03520000 DC CL8'IEEIC1PE' 03540000 VENTRY EQU * 03560000 DC CL8'VARY' 03580000 DC CL8'IEEGNSSD' 03600000 DC CL8'UNLOAD' 03620000 DC CL8'IEEGXSSD' 03640000 DC CL8'MOUNT' 03660000 DC CL8'IEEGYSPE' 03680000 DC CL8'CANCEL' 03700000 DC CL8'IEEGWSSD' 03720000 DC CL8'SET' 03740000 DC CL8'IEEGESTO' 03760000 DC CL8'DISPLAY' 03780000 DC CL8'IEEIE1TO' 03800000 DC CL8'REQ' 03810014 DC CL8'IEEIA1TO' 03820014 DC CL8'SHIFT' 03830014 DC CL8'********' 03840014 DC CL8'STOP' 03850014 DC CL8'IEEID1TO' STOP COMMAND ROUTINE 03860014 DC CL8'IEEIC1PE' STOP WTR COMMAND ROUTINE 03870014 VLAST EQU * 03940000 VSIZE EQU VENTRY-VERBS 03960000 VINDEX DC A(VERBS) 03980000 DC A(VSIZE) 04000000 DC A(VLAST-VSIZE) 04020000 END 04040000 ./ ADD SSI=03011120,NAME=IEEMFWTO,SOURCE=0 TITLE 'IEEMFWTO (IGC0003E) MFT/MCS WTO' 00200021 IGC0003E CSECT 00400021 * THIS MODULE CREATED FOR RELEASE 21 OF OS/360 00600021 *********************************************************************** 00800021 * 01000021 * STATUS - 01200021 * CHANGE LEVEL=0 01400021 * 01600021 * FUNCTION - 01800021 * THE WTO SVC ROUTINE (SVC 35) PROCESSES REQUESTS 02000021 * FOR MESSAGES TO THE OPERATOR. 02200021 * IT IS CALLED BY THE WTO OR THE WTOR MACRO 02400021 * 02600021 * MODULE NAME - 02800021 * IEEMFWTO 03000021 * 03200021 * ENTRY POINT - 03400021 * IGC0003E 03600021 * 03800021 * INPUT - 04000021 * 1. REGISTER 1 INPUT PARAMETER LIST ADDRESS 04200021 * 2. REGISTER 3 CVT ADDRESS 04400021 * 3. REGISTER 4 CURRENT TCB ADDRESS 04600021 * 4. REGISTER 5 CURRENT SVRB ADDRESS 04800021 * 5. REGISTER 14 RETURN ADDRESS 05000021 * 6. REGISTER 0 POSSIBLE UCM ID 05200021 * 05400021 * OUTPUT - 05600021 * A COMPLETED WQE QUEUED TO THE SYSTEM OUTPUT QUEUE 05800021 * 06000021 * EXITS,NORMAL - 06200021 * RETURN TO THE REQUESTOR 06400021 * TO IEECVML3 TO HANDLE MLWTO REQUESTS 06600021 * TO SECOND LOAD FOR WTOR REQUESTS 06800021 * TO IEFWTP00 FOR WTP REQUESTS BG A47887 06850021 * 07000021 * EXITS,ERROR - 07200021 * TO ABEND IF THE ADDRESS IN REGISTER 1 IS NOT ON A 07400021 * FULLWORD BOUNDARY 07600021 * 07800021 * ATTRIBUTES - 08000021 * NON-RESIDENT, PARTIALLY ENABLED, PRIVILEGED 08200021 * 08400021 * OPERATION - 08600021 * UPON ENTRY A TEST IS MADE TO SEE IF ENTRY IS 08800021 * DUE TO A RETURN FROM ANOTHER LOAD. IF SO 09000021 * CONTROL IS PASSED TO A ROUTINE WHICH WILL ACQUIRE 09200021 * A WTO BUFFER 09400021 * IF IT IS AN INITIAL ENTRY AND A REQUEST FOR A 09600021 * WTOR TRANSFER IS MADE TO THE SECOND LOAD VIA 09800021 * XCTL. 10000021 * IF IT IS INITIAL ENTRY AND A REQUEST FOR AN MLWTO, 10200021 * TRANSFER IS MADE TO IEECVML3 VIA XCTL 10400021 * OTHERWISE A CHECK ON THE MESSAGE LENGTH IS MADE 10600021 * IF IT IS LESS THAN ZERO RETURN TO THE CALLER IS 10800021 * MADE. IF IT IS GREATER THAN 122 11000021 * IT IS TRUNCATED TO THE APPROPRIATE LENGTH. 11200021 * NEXT AN ATTEMPT TO OBTAIN A BUFFER IS MADE. IF 11400021 * THE BUFFER LIMIT HAS BEEN REACHED AND THE CALLER 11600021 * IS NOT THE COMMUNICATIONS TASK, THE LOG OR AN SIRB, AN 11800021 * ENQ IS PERFORMED ON A RESOURCE WHICH REPRESENTS 12000021 * AN ECB (UCMWQECB) POSTED WHEN A BUFFER IS MADE 12200021 * AVAILABLE. WHEN EXCLUSIVE CONTROL OF THIS RESOURCE 12400021 * IS OBTAINED, A WAIT ON THAT ECB IS TAKEN. UPON 12600021 * RETURN FROM THE WAIT A DOUBLE CHECK IS MADE TO 12800021 * INSURE A BUFFER REALLY IS AVAILABLE. IF NOT, 13000021 * THE WAIT IS AGAIN ISSUED. 13200021 * WHEN A BUFFER IS AVAILABLE, THE BUFFER COUNT IS 13400021 * INCREMENTED. IF THE MODE IS FIXED A BUFFER IS 13600021 * OBTAINED FROM THAT FIXED AREA, OTHERWISE A 13800021 * GETMAIN FOR THE APPROPRIATE SIZE BUFFER (168) 14000021 * IS MADE. 14200021 * AT THIS POINT THE TEXT IS MOVED TO THE WQE 14400021 * AND PRECEEDED BY THE PARTITION ID AND 14600021 * THE REPLY ID IF A WTOR. NEXT THE WQE IS LINKED 14800021 * ONTO THE WTO QUEUE. THE 15000021 * MCS DEPENDENT FIELDS ARE FILLED IN (ROUTING 15200021 * CODES, DESCRIPTOR CODES AND MESSAGE TYPE FLAGS) 15400021 * FINALLY THE WTO ECB IN THE UCM IS POSTED,AND 15600021 * RETURN IS MADE TO THE CALLER 15800021 * 16000021 * TABLES AND CONTROL BLOCKS - 16200021 * CVT COMMUNICATION VECTOR TABLE 16400021 * UCM UNIT CONTROL MODULE 16600021 * EIL EVENT INDICATION LIST 16800021 * WQE CONSOLE OUTPUT QUEUE ELEMENT 17000021 * RQE CONSOLE REPLY QUEUE ELEMENT 17200021 * 17400021 * NOTES - 17600021 * NONE 17800021 * 18000021 *********************************************************************** 18200021 EJECT 18400021 ********** 18600021 * 18800021 * GENERAL REGISTER EQUATES 19000021 * 19200021 ********** 19400021 SPACE 2 19600021 R0 EQU 0 19800021 R1 EQU 1 20000021 R2 EQU 2 20200021 R3 EQU 3 20400021 R4 EQU 4 20600021 R5 EQU 5 20800021 R6 EQU 6 21000021 R7 EQU 7 21200021 R8 EQU 8 21400021 R9 EQU 9 21600021 R10 EQU 10 21800021 R11 EQU 11 22000021 R12 EQU 12 22200021 R13 EQU 13 22400021 R14 EQU 14 22600021 R15 EQU 15 22800021 RBASE EQU 11 23000021 SPACE 2 23200021 ********** 23400021 * 23600021 * EQUATES 23800021 * 24000021 ********** 24200021 TCBIDF EQU 112 24400021 D120 EQU 120 BE A51715 24450021 F44 EQU 44 24600021 EIGHT EQU 8 24800021 ONE EQU 1 25000021 ZERO EQU 0 25200021 FOUR4 EQU 4 25400021 ZEROBYTE EQU X'00' 25600021 F4 EQU 4 25800021 ASTER EQU X'5C' ASTERISK TO INDICATE ACTION 26000021 TCBDAR EQU 172 26200021 ISSRPK EQU 17 26400021 MCSFEX EQU X'10' 26600021 XRTCDEX EQU X'80' 26800021 NTAVGET EQU X'50' 27000021 NOTAVAIL EQU X'40' 27200021 DARFLAG EQU X'C0' 27400021 BLANK EQU X'40' BLANK TO INDICATE NO ACTION 27600021 DESCCODE EQU X'80' DESC CODE FIELD PRESENT 27800021 ACTION EQU X'C0' DESCCODE 1AND/OR2 =ACTION 28000021 RBLINK EQU 28 RB POINTER TO NEXT RB 28200021 PROBKEY EQU X'F0' USE TO TEST KEY IN OPSW IN RB 28400021 HEX20 EQU X'20' 28600021 HEX02 EQU X'02' 28800021 HEX40 EQU X'40' 29000021 CNOR EQU X'F1' 29200021 N3 EQU 3 DISPLACEMENT 29400021 N108 EQU 108 DISPLACEMENT 29600021 MLWTO EQU 64 MCSFLAG BIT FOR MLWTO 29800021 MLRTN EQU C'6' MLWTO RTN MODIFIER 30000021 HEX80 EQU X'80' 30200021 HEX03 EQU 3 30400021 D104 EQU 104 30600021 HEXA EQU X'A' BG A62165 30650021 HEXB EQU X'B' BG A62165 30700021 HEX70 EQU X'70' BG A62165 30750021 EJECT 30800021 BALR RBASE,0 31000021 USING *,RBASE 31200021 USING UCM,R10 31400021 USING CVTDSECT,R12 31600021 ENABLE EQU * 31800021 DC X'80FF' ENABLE SYSTEM MASK 32000021 DC S(*-1) 32200021 LR R13,R0 UCMID WILL BE KEPT IN REG BE M1432 32250021 * 13,BUT WILL BE RESTORED BE M1432 32300021 * TO REG 0 BEFORE AN XCTL BE M1432 32350021 MVC D104(8,5),WTPNAME SET UP NAME TO BE USED FOR BOTH 32400021 * WTP AND WTOR EXIT. 32600021 LTR R3,R3 BACK FROM WTOR OR WTP 32800021 BZ WTO 33000021 BC F4,WTORTEST YES-BACK FROM WTP-BRANCH 33200021 OVER EQU * 33400021 LR R12,R3 LOAD CVT POINTER 33600021 L R10,CVTCUCB PTR TO UCM 33800021 ST R14,124(R5) SAVE RETURN ADDR IN 8TH WORD OF SVRB XSA 34000021 LR R6,R1 SAVE PARAMETER LIST ADDR 34200021 USING WQE,R1 34400021 USING WPLF,R6 34600021 WTPTEST EQU * 34800021 LA R3,ONE CHECK PARAMETER LIST FOR BG A42813 34840021 NR R3,R1 HALFWORD BOUNDARY. ABTERM BG A42813 34880021 BC 4,INVALID REQUESTOR IF WTO PARAMETER BG A42813 34920021 * NOT ON HALFWORD BOUNDARY BG A42813 34960021 LR R7,R6 35000021 CLI WPLLGH,ZEROBYTE IS THIS A WTOR 35200021 BE RCCHECK NO-PARM LIST POINTER OK 35400021 LA R7,EIGHT(R7) PUT POINTER PAST WTOR PREFIX 35600021 B NOTMLWTO LET MLWTOR DEFAULT TO WTOR 21002 35700021 RCCHECK EQU * 35800021 *** TEST MCSFLAGS FIELD IN USER PARAMETER LIST FOR MULTIPLE 21002 35820021 *** LINE WRITE TO OPERATOR(MLWTO) 21002 35840021 TM N3(R7),MLWTO Q. IS THIS AN MLWTO 21002 35860021 BNO NOTMLWTO NO NORMAL WTO 21002 35880021 MVI N108(R5),MLRTN YES. SET XCTL NAME TO MLWTO 21002 35900021 B WTP GO TO EXIT ROUTINE 21002 35920021 NOTMLWTO EQU * 21002 35940021 TM F2(R7),HEX80 DO ROUT AND DESC EXIST 36000021 BZ WTORTEST NO-DON'T GO TO WTP 36200021 AH R7,ZERO(R7) ADD MSG LENGTH TO POINTER 36400021 TM HEX03(R7),HEX20 IS THERE ROUTING CODE 11 36600021 BO WTP 36800021 WTORTEST EQU * 37000021 CLI WPLLGH,X'00' IS THIS A WTOR 37200021 BNE WTOR YES 37400021 SR R7,R7 38600021 IC R7,WPLLGH+1 LOAD LENTGH OF OUTPUT MSG 38800021 SH R7,FOUR LENGTH IN WQE (FOR CCW) 39000021 LTR R7,R7 IS LENGTH GREATER THAN ZERO 39200021 BC 12,RESTORE *RETURN IF NOT 39400021 LA R7,1(R7) ADD ONE BYTE FOR'ACTION'SYMBOL 39600021 WTO EQU * 39800021 LA R9,122 MFT LIMIT 40000021 SSM *+1 DISABLE 40400021 CR R7,R9 DOES LENGTH EXCEED LIMIT 40600021 BNH TESTWQE B TO TEST LIMIT 40800021 LR R7,R9 TRUNCATE TO LIMIT 41000021 TESTWQE EQU * 41200021 LA R8,POSTWTO IN CASE NO WQE ENQ NEEDED BE A51715 41250021 ST R8,D120(R5) WHERE-TO-GO REG IN XSA BE A51715 41300021 CLC UCMWQNR(2),UCMWQLM COUNT EXCEEDS LIMIT 41400021 BL GETWQE NO 41600021 LA R4,0(R4) 41800021 C R4,UCMPXA IS CURRENT TCB THAT OF COMMUN- 42000021 * ICATIONS TASK 42200021 BE GETBUF DON'T ENQUEUE COMM TASK BE A51715 42400021 TM TCBDAR(R4),DARFLAG IS DAR IN CONTROL 42800021 BNZ GETBUF YES, DO NOT ENQ THE REQUESTOR 43000021 LR R15,R10 PUT UCM PTR IN REG 43200021 LA R3,FOUR4 43400021 SR R15,R3 GET MCS PREFIX PTR 43600021 L R15,0(R15) 43800021 USING MCSUCM,R15 44000021 C R4,UCMLOGAD IS THE ISSUER THE LOG 44200021 BE GETBUF YES-AVOID ENQ AND WAIT 44400021 L R15,ZERO(R4) GET CURRENT RB BG A62165 44600021 SIRBTEST EQU * BG A62165 44700021 L R15,RBLINK(R15) GET NEXT RB BG A62165 44800021 TM HEXA(R15),HEX80 IS THIS AN SIRB BG A62165 44900021 BZ GETNXRB NO-DOES RB POINT TO TCB BG A62165 45000021 TM HEXA(R15),HEX70 IS THIS AN SIRB BG A62165 45100021 BZ GETBUF YES- BR TO GETMAIN A WQE BG A62165 45200021 GETNXRB EQU * BG A62165 45300021 TM HEXB(R15),HEX80 DOES RB POINT TO TCB BG A62165 45400021 BNO SIRBTEST TEST NEXT RB BG A62165 45500021 QUP EQU * 45600021 LA R8,DEQUE1 WHERE-TO-GO REG IN XSA BE A51715 45650021 ST R8,D120(R5) BE A51715 45700021 LA R9,MAJORNAM PTRS TO MAJOR AND MINOR 46000021 LA R8,MINORNM1 NAMES FOR ENQ BE M1432 46200021 LA R1,96(R5) PTR TO EXTENDED SAVE AREA- SVRB 46400021 XC 0(4,1),0(1) CLEAR OPTION & RETURN CODE BYTE 46600021 OI 0(1),X'FF' INDICATE LAST QUEUE ELEMENT 46800021 ENQ ((9),(8),E,6,SYSTEM),MF=(E,(1)),RET=HAVE BG A59890 47200021 LTR R15,R15 IS RETURN CODE = TO ZERO BG A59890 47208021 BZ TSTCOUNT YES ENQUED ON RESOURCE BG A59890 47216021 LA R8,POSTWTO IN CASE OF NO ENQ BG A59890 47224021 ST R8,D120(R5) STORE WHERE-TO-GO IN XSA BG A59890 47232021 B GETBUF GET ANOTHER BUFFER 47240021 TSTCOUNT CLC UCMWQNR(2),UCMWQLM TEST COUNT VS. LIMIT AGAIN 47250021 BL GETWQE AVAILABLE BE A51715 47300021 XC UCMWQECB,UCMWQECB CLEAR WAIT IN ECB 47660021 LA R1,UCMWQECB WQE ECB POINTER 47800021 WAIT ECB=(1) 48600021 SSM *+1 DISABLE 48800021 B TSTCOUNT CHECK IF WQE AVAILABLE BE A51715 48850021 GETWQE EQU * 50600021 LR R15,R7 FREE BXLE REGISTER COMBINATIONS 51400021 LM R7,R9,UCMWEA SET BUFFER SEARCH 51600021 DROP R1 51800021 USING WQE,R7 52000021 SCAN EQU * 52200021 CLI WQEAVAIL,UCMFREE BUFFER AVAILABLE? 52400021 BE WQEFOUND YES - MARK IT 52600021 BXLE R7,R8,SCAN ELSE LOOK AT NEXT 52800021 B QUP NO BUFFER FOUND RE-ENQ BE M1432 53000021 WQEFOUND EQU * 53200021 LH R1,UCMWQNR LOAD WQE COUNT BE M1432 53250021 LA R1,ONE(R1) INCREMENT WQE COUNT BE M1432 53300021 STH R1,UCMWQNR STORE UPDATED WQE COUNT BE M1432 53350021 LA R3,NOTAVAIL 53400021 LR R1,R7 53600021 LR R7,R15 53800021 B SETMSG GO FILL IN FIELDS 54000021 DROP R7 54200021 USING WQE,R1 54400021 GETBUF EQU * 54600021 LA R0,WQESIZE SIZE OF WQE - MCS IN SYSTEM 55000021 O R0,MASK245 SUBPOOL 245 55200021 SR R15,R15 ZERO GETMAIN RETURN REG CODE 55400021 GETMAIN R,LV=(0) 55600021 LA R3,NTAVGET MARK BUFFER IN USE & GETMAINED 56000021 SETMSG EQU * 56200021 XC WQELKP(WQESIZE),WQELKP ZERO OUT WQE 56400021 STC R3,WQEAVAIL 56600021 B CKPARTID 56800021 BLANKREG EQU * 57000021 L R8,MASK245 57200021 CHKWTO EQU * 57400021 ST R7,WQENBR STORE LENGTH IN WQE FOR CCW 57600021 BCTR R7,0 SET FOR EXECUTE 57800021 CLI WPLLGH,X'00' IS THIS A WTOR 58000021 BNE EX2 YES 58200021 BCTR R7,0 SUBT 1 MORE FOR'ACTION'SYM 58400021 MVI WQETXT,BLANK MOVE IN BLANK 58600021 TM WPLX,DESCCODE DO ROUTE OR DESCCODES EXIST 58800021 BZ PARTCHK NO,INSERT'BLANK'AND CONTINUE 59000021 SR R15,R15 CLEAR A REGISTER 59200021 IC R15,WPLLGH+1 LOAD LNGTH OF OUTPUT MSG 59400021 SH R15,FOUR ADJUST TO LNGTH OF TEXT 59600021 LA R15,WPLTXT(R15) BUMP TO DESC CODE FIELD 59800021 TM 0(R15),ACTION DOES WTO HAVE DESCCODE 1/2 60000021 BZ PARTCHK NO,GO INSERT'BLANK' 60200021 MVI WQETXT,ASTER MOVE IN * 60400021 PARTCHK EQU * 60600021 C R8,MASK245 PARTITION ID 60800021 BNE HERE 61000021 EX R7,MOVEWTO 61200021 B LINKWQE 61400021 HERE EQU * 61600021 SH R7,FOUR 61800021 EX R7,MOVEWTO MOVE USERS TEXT TO WQE 62000021 LA R7,WQETXT+2(R7) 62200021 MVC 0(4,R7),116(R5) INSERT PARTITION ID 62400021 LINKWQE EQU * 62600021 L R15,UCMWQEND LOAD PTR TO LAST WQE ON CHAIN 62800021 LTR R15,R15 ZERO POINTER 63000021 BC 7,STORE NO 63200021 LA R15,UCMWTOQ ADDR OF BASE OF CHAIN 63400021 STORE EQU * 63600021 ST R1,UCMWQEND CURRENT BECOMES END OF CHAIN 63800021 DROP R1 64000021 USING WQE,R15 64200021 MVC WQELKP+ONE(R3),UCMWQEND+ONE LINK WQE ONTO QUEUE 64400021 DROP R15 64600021 USING WQE,R1 64800021 LR R15,R10 GET UCM POINTER 65000021 SH R15,FOUR POINT TO PREFIX FOR MCS 65200021 L R15,ZERO(R15) GET TO MCS PREFIX 65400021 USING UCMMCENT,R15 65600021 L R3,UCMCMID GET NEXT WQE ID NO. 65800021 ST R3,WQERTCT STORE ID INTO WQE 66000021 LA R3,ONE(R3) INCREMENT FOR NEXT WQE 66200021 ST R3,UCMCMID REPLACE ID NO IN UCM 66400021 DROP R15 66600021 STC R13,WQEUCMID STORE UCMID IN WQE BE M1432 66800021 CLI WPLLGH,ZEROBYTE IS THIS A WTOR 67000021 BE WTOMCSFM NO 67200021 DROP R6 67400021 USING WPLRF,R6 67600021 MVC WQEMCSF(F2),WPLX MOVE MCS FLAGS TO WQE WTOR 67800021 DROP R6 68000021 USING WPLF,R6 68200021 LA R6,EIGHT(R6) ACCOUNT FOR 8 BYTE HEADER 68400021 B MOVEMCS DON'T DO WTO MCSFLGS MOVE 68600021 WTOMCSFM EQU * 68800021 MVC WQEMCSF(F2),WPLX MOVE MCS FLAGS TO WQE 69000021 MOVEMCS EQU * 69200021 AH R6,WPLLGH ADD OUTPUT MESSAGE LENGTH 69400021 TM WQEMCSF,XRTCDEX Q.- DO ROUTCDES AND DESC EXIST 69600021 BNO TSTMSGF NO - TEST FOR MSGTYPE FLAGS 69800021 MVC WQEROUT(F2),F2(R6) MOVE ROUTING CODES TO WQE 70000021 MVC WQEDESCD(F2),ZERO(R6) MOVE DESCRIPTOR CODES TO WQE 70200021 TSTMSGF EQU * 70400021 TM WQEMCSF,MCSFEX DO MSGTYPE FLAGS EXIST 70600021 BNO XNRTCD NO - DON'T MOVE JUNK 70800021 MVC WQEMSGTP(F2),F4(R6) MOVE MSG TYPE FLAGS TO WQE 71000021 XNRTCD EQU * 71200021 L R9,RBLINK(R5) GET ISSUER RB 71400021 * TEST ISSUER AND ONLY HONOR -BYPASS HC- IF RB KEY=0 71600021 TM ISSRPK(R9),PROBKEY IS ISSUER NONZERO PROTECT KEY 71800021 BZ TESTWTOR NO, LET SYSTEM BYPASS HC 72000021 NI WQEMCSF+ONE,X'FF'-WQEMCSN YES,NO HC BYPASS 72200021 TESTWTOR EQU * TEST FOR WTOR FOR DEFAULT DC 72400021 TM WQEXA,HEX20 DO WE HAVE A RQE (WTOR) 72600021 BNO MOVEPKE NO THIS IS A WTO 72800021 OI WQEDESCD,HEX02 GIVE ALL WTORS A DESC CD=7 73000021 MOVEPKE EQU * 73200021 MVI WQEPKE,X'00' ZERO OUT PROTECT KEY FIELD 73400021 MVZ WQEPKE(1),ISSRPK(R9) MOVE PROTEST KEY TO WQE 73600021 L R8,D120(R5) PICK UP WHERE-TO-GO BE A51715 73650021 BR R8 BE A51715 73700021 B POSTWTO BR TO POST COMM TASK WTOECB BE M1432 73800021 SPACE 2 74000021 USING RQE,R2 74200021 EX2 EQU * 74400021 ST R1,RQEXB YES,STORE WQE PTR IN RQE 74600021 OI WQEXA,X'28' INDICATE RQE EXISTS FOR THIS 74800021 * THIS BIT IS SET FOR GRAPHICS AND NEVER TURNED OFF 75000021 MVI WQETXT,ASTER MOVE * TO INDICATE'ACTION' 75200021 MVC WQETXT+1(2),RQEID MOVE ID FROM RQE TO WQE 75400021 MVI WQETXT+3,BLANK MOVE BLANK AFTER ID 75600021 C R8,MASK245 PARTITION ID 75800021 BNE HERE1 76000021 SH R7,FOUR 76200021 EX R7,MOVEWTOR 76400021 B LINKWQE 76600021 HERE1 EQU * 76800021 SH R7,EIGHT8 RETURN R7 TO CORRECT VALUE 77000021 EX R7,MOVEWTOR MOVE USERS TEXT 77200021 * REGISTER 7 NOW CONTAINS LENGTH OF 'MSG TXT-1'. THE PARTITION ID 77250021 * PRECEEDED BY A BLANK IS CONTAINED IN THE WTO SVRB AT A DISPLACE- 77300021 * MENT OF 116 DEC. THE FOLLOWING TWO INSTRUCTIONS WILL PUT THIS 77350021 * PARTITION ID AT THE END OF THE USER'S MSG SEPARATED BY A BLANK. 77360021 LA R7,WQETXT+WTORSZE+MOVEINCR(R7) POINT REG 7 TO BE A45457 77370021 * THE END OF THE MESSAGE TXT BE A45457 77380021 MVC ZERO(IDSIZE,R7),IDFIELD(R5) INSERT PART. ID BE A45457 77430021 WTORSZE EQU 4 SIZE OF '*ID ' WTOR PREFIX BE A45457 77480021 MOVEINCR EQU 1 MSG TXT DECR FOR EX INSTR BE A45457 77530021 IDSIZE EQU 4 SIZE OF ' PXX' MFT SUFFIX BE A45457 77580021 IDFIELD EQU 116 DISP FROM RB TO FIELD IN BE A45457 77630021 * XSA WHERE MFT SUFFIX BUILT BE A45457 77680021 B LINKWQE 77800021 CKPARTID EQU * 78000021 LR R15,R4 LOAD TCB ADDRESS 78200021 TM CVTOPTA,EIGHT IS THIS MFT ATTACH 78400021 BNO CONT NO - BRANCH 78600021 L R15,F44(R4) FIND JOB STEP TCB 78800021 CONT EQU * 79000021 SR R8,R8 79200021 IC R8,TCBIDF(R15) TCB ID FROM JOBSTEP TCB 79400021 SLL R8,F2 MULT ID BY 4 79600021 L R9,CVTIXAVL 79800021 L R9,F4(R9) PTR TO TCB TABLE 80000021 AR R8,R9 GET DISP IN TCB TABLE 80200021 L R9,CVTTSKS GET PTR TO P0 80400021 LA R9,ZERO(R9) ENTRY IN TCB TABLE 80600021 SR R8,R9 IS THERE AN ID 80800021 BM BLANKREG NO-BRANCH 81000021 SRL R8,F2 DIV RESULTING ID BY 4 81200021 CVD R8,112(R5) CONVERT IN XSA 81400021 UNPK 118(2,R5),118(2,R5) 81600021 OI 119(R5),X'F0' 81800021 MVI 117(R5),X'D7' INSERT 'P' 82000021 MVI 116(R5),HEX40 INSERT BLANK 82200021 AH R7,FOUR ADD FOUR FOR PART ID FOR EX 82400021 B CHKWTO 82600021 DEQUE1 EQU * BE A51715 82610021 LA R9,MAJORNAM MAJOR AND MINOR NAMES 82650021 LA R8,MINORNM1 FOR DEQ BE M1432 82700021 LA R1,96(R5) PTR TO XSA OF SVRB 82750021 DEQ ((9),(8),6,SYSTEM),MF=(E,(1)) BE M1432 82760021 POSTWTO EQU * 82800021 POST UCMOECB 83000021 RESTORE EQU * 83200021 LR R1,R3 GET CURRENT ID NUMBER 83400021 BCTR R1,R0 RETURN LAST ASSIGNED TO USER 83600021 L R14,124(R5) RELOAD RETURN ADDRESS 83800021 BR R14 * RETURN TO CALLER 84000021 INVALID L R1,ABENDCOD LOAD ABEND COMPLETION CODE BG A42813 84200021 ABEND (1) BG A42813 84400021 WTOR DS 0H 84800021 MVI 108(R5),CNOR RESET NAME TO THAT OF WTOR EXIT 85000021 WTP EQU * 85200021 LR R0,R13 RESTORE UCMID TO REG 0 BE M1432 85300021 XC 100(4,R5),100(R5) CLEAR SECOND WORD OF XSA 85400021 LA R15,104(R5) 85600021 ST R15,96(R5) STORE ADDR OF ENTRY PT 85800021 LA R15,96(R5) LOAD INTO R15 XCTL PARA LIST 86000021 XCTL SF=(E,(15)) BRING IN SECOND LOAD 86200021 EJECT 86400021 ********** 86600021 * 86800021 * EXECUTED STATEMENTS 87000021 * 87200021 ********** 87400021 DS 0H EXECUTE SUBJECT INSTRUCTIONS 87600021 MOVEWTO MVC WQETXT+1(1),WPLTXT MOVE USER'S TEXT TO WQE 87800021 DROP R6 88000021 USING WPLRF,R6 88200021 MOVEWTOR MVC WQETXT+4(1),WPLTXT WTOR MOVE OF USER'S TEXT 88400021 SPACE 2 88600021 ********** 88800021 * 89000021 * CONSTANTS 89200021 * 89400021 ********** 89600021 DS 0F 89800021 MASK245 DC XL4'F5000000' 90000021 ABENDCOD DC XL4'80D23000' INVALID INPUT PARAMETER AREA 90200021 EIGHT8 DC H'8' 90400021 FOUR DC H'4' 90600021 WTPNAME DC C'IGC0203E' 90800021 MAJORNAM DC CL8'SYSIEECT' MAJOR NAME FOR ENQ, DEQ 91000021 MINORNM1 DC CL6'IEEWQE' WQE MINOR NAME FOR ENQ, DEQ 91200021 * ID AND BLANK 91400021 EJECT 91600021 ********** 91800021 * 92000021 * DSECTS 92200021 * 92400021 ********** 92600021 SPACE 2 92800021 WQE DSECT 93000021 IEECVMUG WQE 93200021 EJECT 93400021 RQE DSECT 93600021 IEECVMUG RQE 93800021 EJECT 94000021 WPL DSECT 94200021 IEECVMUG WPL 94400021 EJECT 94600021 F2 EQU 2 94800021 UCM DSECT 95000021 IEECUCM 95200021 EJECT 95400021 CVTDSECT DSECT 95600021 CVT 95800021 END 96000021 ./ ADD SSI=06052242,NAME=IEEMXC01,SOURCE=0 GBLC &SCHDLR 00020000 &SCHDLR SETC 'SSS' 00040000 MSCED IEEGMSLT DSECT,SMBL=YES 00060000 EJECT 00080000 IEEMIOCS 00100000 EJECT 00120000 * MAP PASSED CORE. 00140000 XMAIN DSECT 00160000 * * 00180000 XMH DS F MESSAGE RECORD HEADER. WTO (2) 00200000 XMI DS CL8 MESSAGE IDENTIFICATION. * 00220000 XMM DS CL28 MESSAGE TEXT. 00240000 ORG XMAIN 00260000 XMA DS F NAME POINTER A(*+8). * 00280000 XMB DS F DCB POINTER A(0). * 00300000 XMC DS CL8 NAME IGC0103D. XCTL (1) 00320000 XMD DS CL8 COMMAND VERB. * 00340000 XME DS CL16 COMMAND PARAM. * 00360000 TITLE 'MEXCP OPERATOR CONSOLE INPUT' 00380000 * 00400000 * READ THE CONSOLE FOR COMMAND INPUT AFTER 00420000 * ATTENTION INTERRUPT. 00440000 * 00460000 * ACCEPT COMMANDS FROM INTERPRETER ISSUING SVC 34. 00480000 * 00500000 * XCTL TO IGC0103D FOR=VARY/MOUNT/UNLOAD/STOP/ 00520000 * DISPLAY/CANCEL 00540000 * MOVE=START(NB)/SET TO MASTER COMMAND. 00560000 * 00580000 * EXECUTE=REQ/START(B) 00600000 * 00620000 * RE-ENTRANT/BUFFER PROTECTED BY DISPATCHER DISABLE. 00640000 * 00660000 SPACE 00680000 * * REGISTERS * 00700000 X0 EQU 0 00720000 X1 EQU 1 MCR PARAM=NEG=LOCAL BUF/DCB PTR 00740000 X2 EQU 2 LOCAL BRANCHING 00760000 X3 EQU 3 SCRATCH/RESIDENT BUFFER 00780000 X4 EQU 4 SCRATCH 00800000 X5 EQU 5 SCRATCH 00820000 X6 EQU 6 LOCAL SCRATCH/RESERVED MAIN CORE. 00840000 X7 EQU 7 INDEXING=1/LOCAL SCRATCH. 00860000 X8 EQU 8 MASTER CORE. 00880000 X9 EQU 9 DISABLING POINTER. 00900000 XA EQU 10 IMAGE SCAN 00920000 XB EQU 11 CURRENT BUFFER POINTER 00940000 XC EQU 12 PROGRAM BASE. 00960000 XD EQU 13 DISABLING MASK. 00980000 XE EQU 14 01000000 XF EQU 15 01020000 * 01040000 EJECT 01060000 IGC03D CSECT 01080000 *066000,067400 A23421 01080518 *0000037000-037200,046400 19875 01081017 *1421024200-026400,034400-035000,044400,044600,054600,060200-062400AABA 01083016 *1421068000-068600,069400-069800,074600 AABA 01086016 *70560376,0432 9291 01090013 * 01100000 BALR XC,0 PROGRAM 01120000 USING *,XC BASE. 01140000 SPACE 01160000 SSM MSENABLE * * * MACHINE ENABLE 01180000 SPACE 01200000 L X8,16 RESIDENT 01220000 L X8,IEEMSLTV(X8) CORE 01240000 USING IEEMSLT,X8 ADDRESSING. 01260000 * ENTRANCE 01280000 * 1. MCR SVC 34 01300000 * 2. IRB SVC 34 01320000 * 01340000 * FIND EXTENDED SAVE AREA. 01360000 L X6,16 CVT 01380000 L X6,0(X6) DBL WD 01400000 L X6,4(X6) TCB 01420000 L X6,0(X6) RB - ACTIVE 01440000 LA X6,96(X6) RB(32)+REGS(64)=96 01460000 USING XMAIN,X6 01480000 SPACE 01500000 SR X2,X2 01520000 LTR X1,X1 01540000 BNL XREAD NOT MINUS=NOT MCR 01560000 TM MSNTAL,MSCURE34 FIRST CHECK 01580000 BZ XREAD AGAINST USER. 01600000 NI MSNTAL,F-MSCURE34 OFF. 01620000 * SVC 34 FROM MCR VERIFIED. 01640000 LA XB,0(X1) POINT TO LOCAL BUFFER. 01660000 B XSCAN NOW WHAT HATH THE BUFFER. 01680000 SPACE 01700000 XREAD EQU * 01720000 TM MSSSB,MSCONFLG SECOND CHECK ON USER 01740000 BZ XEXIT ISSUING SVC 34. 01760000 NI MSSSB,F-MSCONFLG CONSOLE FLAG OFF. 01780000 SPACE 2 01800000 SSM *+1 * * * MACHINE DISABLED. 01820000 SPACE 01840000 * PSEUDO-DISABLE DISPATCHER. 01860000 L X9,MSABL SUPERVISOR INSTRUCTION ADDRESS 01880000 ST X9,MSUCBPR RETURN WITH BYTE ADR (BC MASK) SAVED 01900000 MVC MSUCBAL(1),1(X9) SAVE CURRENT MASK 01920000 MVI 1(X9),X'F0' INSERT DISABLING MASK 01940000 SPACE 01960000 SSM MSENABLE * * * MACHINE ENABLED. 01980000 SPACE 2 02000000 LA X2,4 PSEUDO-ENABLE EXIT. 02020000 SPACE 02040000 TM MSECBFL,MSATTN DONT WAIT FIRST TIME. 02060000 BO WTORETRY 02080000 OI MSECBFL,MSATTN+MSWTO 02100000 LA VRBTBL,MSCMD RESIDENT BUFFER 02120000 ST VRBTBL,CCWRDR ADDRESS TO CCW 02140000 B READLOOP 02160000 SPACE 02180000 * PSEUDO-WAIT - PSEUDO-DISABLED. 02200000 WTORETRY BAL TRBASADR,ERENTRY1 CHECK FOR POSSIBLE RETRY OF WTO 02220000 SSM MSENABLE PERMANENT ERROR,ENABLE MACHINE,RETRY 02240000 B RETRYWTO RETRY 02260000 TITLE 'MEXCP I/O CONSOLE READ' 02280000 READLOOP MVI MSCMD,BLANK BLANK OUT 02300000 MVC MSCMD+1(125),MSCMD COMMAND BUFFER 02320000 MVC CCWRDR+6(2),RDRCOUNT CHAR COUNT OF 126 TO CCW 02340000 LA PASSREG0,CCWRDR CCW ADDRESS 02360000 ST PASSREG0,CCWAI TO IOB 02380000 MVI CCWRDR,X'0A' 1052 READ COMMAND TO CCW 02400000 BAL RETURN,CONSWICH 02500016 TM CSWRDR+4,BIT7 WAS MSG CANCELED (UNIT EXCEPTION) 02660000 BO READLOOP YES,RETRY 02680000 * 02700000 BAL TRBASADR,ERENTRY2 NO,CHECK FOR POSSIBLE RETRY 02720000 SSM MSENABLE PERMANENT ERROR,ENABLE MACHINE,RETRY 02740000 B READLOOP RETRY 02760000 LH NTRYSIZE,CCWRDR+6 MAX MSG SIZE TO R4 02780000 SH NTRYSIZE,CSWRDR+6 MAS MSG SIZE-RESIDUAL MSG SIZE=ACTUAL 02800000 XC MSBCTLH(8),MSBCTLH CLEAR MASTER BUFFER HEADERS 02820000 LA NTRYSIZE,4(NTRYSIZE) MSG LNGTH+4 02840000 STC NTRYSIZE,MSBFH+1 TO MSBFH+1 02860000 LA NTRYSIZE,4(NTRYSIZE) MSG LNGTH+8 02880000 STC NTRYSIZE,MSBCTLH+1 TO MSBCTLH+1 02900000 LA XB,MSCMD ADDRESS RESIDENT BUFFER. 02920000 TITLE 'MEXCP BUFFER SCAN' 02940000 XSCAN EQU * 02960000 LA X7,1 INDEXING COUNTER. 02980000 SPACE 03000000 MVI XMD,BLANK BLANK PASSED 03020000 MVC XMD+1(23),XMD PARAMETER AREA. 03040000 SPACE 03060000 CLI 0(XB),SLASH SKIP LEADING 03080000 BNE *+12 03100000 LA XB,2(XB) CARD INPUT. 03120000 * ADDED TO ALLOW RECOGNITION OF LOWER CASE CHAR 03140000 B HERE 03160000 LA XE,7(0) 03180000 SR NTRYSIZE,XE 03200000 LR XE,XB RESIDENT BUFFER ADD TO R14 03220000 OI 0(XE),X'40' 03240000 LA XE,1(XE) BUMP BUFFER ADD BY 1 03260000 BCT NTRYSIZE,*-8 03280000 * 03300000 HERE CLI 0(XB),BLANK FIND FIRST CHARACTER 03320000 BNE *+8 OF 03340000 BXH XB,X7,*-8 VERB. 03360000 CLI 0(XB),EOB IGNORE 03380000 BE XEXIT BLANK INPUT. 03400000 SPACE 03420000 XVERB EQU * 03520000 LR XE,XB VERB IN BUFFER 03540000 CLI 0(XB),BLANK VERB 03560000 BE *+8 TERMINATED 03580000 BXH XB,X7,*-8 BY 03600000 LR X1,XB BLANK 03620000 SR X1,XE 03640000 LA XA,8 03660000 CR X1,XA 03680000 BNH XMCQ TOO MANY VERB CHARS. 19875 03690017 LR X1,XA LIMIT LENGTH TO EIGHT 19875 03700017 XMCQ EX X1,XMOVE VERB TO SAVE AREA 19875 03710017 SPACE 03740000 * FIND PARAMETER LIST 03760000 CLI 0(XB),BLANK 03780000 BNE *+8 03800000 BXH XB,X7,*-8 03820000 LR X5,XB SET UP REG. 5 TO VARY IF DATA CELL 03840000 CLI 3(XB),C'/' IS IT A DATA CELL 03860000 BE XNEXT3 YES,BRANCH TO DATA CELL RTN. FOR MOVING 03880000 CLI 3(XB),C',' IS IT MOUNT OR UNLOAD 03900000 BNE XNEXT5 NO. BRANCH 03920000 MVC XME(3),0(XB) NO,MOVE UNIT 03940000 MVC XME+5(10),3(XB) MOVE SECOND PARAMETER 03960000 B XNEXT4 BRANCH AROUND DATA CELL ROUTINE 03980000 XNEXT3 LA X5,2(X5) INCREMENT REGISTER FOR DATA CELL 04000000 XNEXT5 MVC XME(15),0(XB) MOVE UNIT + PARAMETER FOR DATA CELL 04020000 XNEXT4 CLC VOLNO(5),3(X5) IS THERE A VOLID 04040000 BNE XNEXT1 BRANCH AROUND VOLID ROUTINE 04060000 MVC XME+5(10),8(X5) MOVE VOLID INTO BUFFER 04080000 LA X5,16(X5) INCREMENT POINTER TO USE PARAMETER 04100000 XNEXT1 CLC USENO(5),3(X5) IS THERE A USE PARAMETER 04120000 BNE XNO 04140000 CLC XPRIVATE(7),8(X5) IS IT PRIVATE 04160000 BE XNO 04180000 MVI XME+15,X'EF' MOVE PUBLIC CODE INTO BUFFER 04200000 CLC XPUBLIC(6),8(X5) IS IT PUBLIC 04220000 BE XNO 04240000 MVI XME+15,X'ED' MOVE STORAGE CODE INTO BUFFER 04260000 CLC XSTORAGE(7),8(X5) IS IT STORAGE 04280000 BE XNO 04300000 MVI XME+15,X'EE' MOVE ERROR CODE INTO BUFFER 04320000 * IS PASS TO MCR NECESSARY 04340000 XNO CLC XSET,0(XE) 04360000 BE XMCR SET HAS TO BE PASSED. 04380000 CLC XT,0(XE) AABA 04386016 BE XMCR AABA 04392016 CLC XREQ,0(XE) IS IT REQUEST 04394016 BE XSVCX2 04396016 SPACE 04400000 CLC XSTART,0(XE) 04420000 BE XEOB AABA 04430016 CLC XS,0(XE) AABA 04440016 BNE XTRAN 04450016 XEOB CLI 0(XB),EOB AABA 04460016 BNE *+12 PARAM LIST NOT BLANK. 04480000 NI MSPFG,F-MSBSP PENDING FLAG OFF. 04500000 B XMCR CHECK FOR POSSIBLE POST REQUIRED 04520000 CLI 0(XB),COMMA 04540000 BE *-12 PARAM LIST IS BLANK. 04560000 XMCR EQU * SET OR START(NB) FOR MCR. 04580000 TM MSECBFL,MSMCR 04600000 BZ XEXIT MCR NOT AVAILABLE. 04620000 NI MSECBFL,F-MSMCR 19875 04640017 SPACE 04660000 L XB,MSPBP MCR LOCAL BUFFER ADDRESS. 04680000 MVC 0(126,XB),MSCMD BUFFER MOVE-RESIDENT TO LOCAL. 04700000 POST MSECB,0 04720000 SPACE 2 04740000 XEXIT EQU * 04760000 * PSEDO-ENABLE IF INPUT 04780000 * FROM CONSOLE. 04800000 B *+4(X2) 04820000 B XSVCX 04840000 * PSEUDO-ENABLE. 04860000 SSM *+1 * * * MACHINE DISABLE. 04880000 SPACE 04900000 L X9,MSUCBPR RESTORE X9 04920000 MVC 1(1,X9),MSUCBAL RESTORE PREVIOUS MASK 04940000 SPACE 04960000 XSVCX EQU * 04980000 SVC EXIT EXIT 05000000 XSVCX2 OI MSPFG,MSBSP 05006016 B XEXIT 05013016 SPACE 2 05020000 XTRAN EQU * 05040000 MVC XMC,XLNAME XCTL NAME. 05060000 SR XF,XF 05080000 ST XF,XMB DCB PTR=0. 05100000 LA XF,XMC 05120000 ST XF,XMA NAME PTR TO LIST. 05140000 LR XF,X6 15 PT TO XCTL LIST. 05160000 SPACE 05180000 B *+4(X2) 05200000 B XNEXT 05220000 SPACE 05240000 SSM *+1 * * * MACHINE DISABLE. 05260000 SPACE 05280000 L X9,MSUCBPR RESTORE X9 05300000 MVC 1(1,X9),MSUCBAL RESTORE PREVIOUS MASK 05320000 SPACE 2 05340000 XNEXT EQU * 05360000 XCTL SF=(E,(15)) 05380000 * 05400000 XMOVE MVC XMD(1),0(XE) MOVE VERB TO BUFFER 05420000 * 05440000 CONSWICH XC ECBRDR(4),ECBRDR CLEAR ECB 05450016 SSM *+1 MACHINE DISABLE 05460016 L INDEXER,TVTADR CVT ADDRESS RO R7 05470016 LA NTRYSIZE,20(INDEXER) APPENDAGE TABLE ADDRESS TO R4 05480000 L INDEXER,IEECUCBT(INDEXER) 4 WORD UCB TABLE ADR TO R7 05500000 TM 0(INDEXER),BIT0 PRINCIPAL OR ALTERNATE UCB 05520000 BO *+8 PRINCIPAL 05540000 LA INDEXER,8(INDEXER) ALTERNATE,POINT TO PRINCIPAL 05560000 MVC UCBPTRI(3),1(INDEXER) PRINCIPAL UCB ADR TO DEB 05580000 MVC APNDGADI(3),1(NTRYSIZE) APPENDAGE TABLE ADDRESS TO DEB 05600000 EXCP IOBRDR 05604016 SSM MSENABLE MACHINE ENABLE 05608016 TM ECBRDR,BIT1 HAS READ BEEN POSTED 05612016 BZ *-4 LOOO UNTIL POSTED 05616016 BR14 BR RETURN 05620000 * 05640000 * 1052 ERROR ROUTINES FOR SVC'S 34 AND 35 05660000 * 05680000 ERENTRY1 TM ECBRDR,BIT1 HAS CHANNEL END BEEN POSTED FOR 05700000 BZ *-4 PREVIOUS SIO COMMAND. NO,LOOP TILL POSTED 05720000 ERENTRY2 TM ECBRDR,X'7F' POST CODE = 7F OR 00 FOR PREVIOUS SIO 05740000 BM ERENTRY4 NO,ERROR CHECKING REQUIRED 05760000 ERENTRY3 MVI CCWRDR+5,Z ZERO ERROR COUNTER 05780000 B BIT4(TRBASADR) RETURN TO ERROR FREE E.P. 05800000 ERENTRY4 NI DCBRDR+44,X'0C' CLEAR DCB FLAGS 05820000 TM CSWRDR+4,X'02' WAS THERE A UNIT CHECK A23421 05822018 BZ ER4ENTRY NO BRANCH A23421 05824018 TM IOBRDR+2,X'40' IS INTERVENTION REQUIRED A23421 05826018 BZ ER4ENTRY NO A23421 05828018 OI CCWRDR+5,BIT5 YES, SET TO HANG AND RING A23421 05830018 B READOVER GONG BEFORE HANG A23421 05832018 ER4ENTRY EQU * A23421 05834018 TM ECBRDR,X'44' HAS I/O REQUEST BEEN INTERCEPTED 05840000 BE BIT5(TRBASADR) YES,RETRY PREVIOUS EXCP 05860000 TM ECBRDR,X'48' HAS I/O REQUEST BEEN PURGED OR NOT STARTED 05880000 BE BIT5(TRBASADR) YES,RETRY PREVIOUS EXCP 05900000 READOVER MVC 0(8,WORKREG),GONGCCW ALARM CHANNEL COMMAND SAVED 05920000 MVC 8(2,WORKREG),IOBRDR+2 IOB SENSE BYTES AND CSW STATUS 05940000 MVC 10(2,WORKREG),CSWRDR+4 BYTES TO EXTENDED SAVE AREA 05960000 ST WORKREG,CCWAI GONG CCW ADDRESS TO CCWAI 05980000 MVI MSERM+1,Z CLEAR GONG ERROR COUNTER 06000000 GONGTWO BAL RETURN,CONSWICH CHECK FOR CONSOLE SWICH 06100016 TM ECBRDR,X'7F' GONG RING OK 06260000 BM GONGCNT NO,RETRY GONG 06280000 TM CCWRDR+5,BIT5 HAS MAX NO OF RETRYS BEEN GIVEN 06300000 BO ERENTRY5 YES,GOTO PERMANENT ERROR 06320000 IC BASE,CCWRDR+5 NO,ERROR COUNT TO R15 06340000 SLL BASE,1 SHIFT LEFT 1 BIT 06360000 STC BASE,CCWRDR+5 ERROR COUNT BACK TO STORAGE 06380000 OI CCWRDR+5,BIT7 INCREMENT ERROR COUNT BY 1 06400000 B BIT5(TRBASADR) RETURN FOR RETRY 06420000 GONGCNT TM MSERM+1,X'03' HAS GONG BEEN RETRYED MAX NO OF TIMES 06440000 BE BIT5(TRBASADR) YES,RETURN 06460000 IC BASE,MSERM+1 NO,UPDATE 06480000 SLL BASE,1 GONG 06500000 STC BASE,MSERM+1 ERROR 06520000 OI MSERM+1,BIT7 COUNTER 06540000 B GONGTWO RETRY GONG 06560000 ERENTRY5 MVI CCWRDR+5,Z ZERO ERROR COUNTER 06580000 L 14,IFLGSI MARK A23421 06610018 L 14,32(14) UCB A23421 06640018 OI 6(14),X'40' NOT READY A23421 06670018 B BIT5(TRBASADR) GO TO RETRY TO HANG A23421 06700018 RETRYWTO LA PASSREG0,CCWRDR CCW ADDRESS 06760000 ST PASSREG0,CCWAI TO IOB 06780000 MVI CCWRDR,X'09' 1052 WRITE COMMAND RO CCW 06830016 * 06880000 BAL RETURN,CONSWICH CHECK FOR EXT INT (ALT CONSOLE) 06900000 * 06920000 * 07000000 B WTORETRY RETURN FOR WAIT AND POSSIBLE RETRY 07020000 * 07040000 PERMERR BR TRBASADR PERMANENT ERROR - RETURN FOR MORE RETRIES 07060000 NOPR TRBASADR 07080000 B ERENTRY3 PERMANENT ERROR - IGNORE IT AND PROCEED 07100000 * 07120000 DS 0D 07140000 READPSW DC X'FF' SYSTEM MASK 07160000 DC X'02' PROTECTION KEY,AMWP 07180000 DC X'0000' INTERRUPTION CODE 07200000 DC X'00' ILC,CC,PROGRAM MASK 07220000 DC X'000E00' ERROR CODE FOR ERROR DURING CONSOLE READ 07240000 WRITEPSW DC X'FF' SYSTEM MASK 07260000 DC X'02' PROTECTION KEY,AMWP 07280000 DC X'0000' INTERRUPTION CODE 07300000 DC X'00' ILC,CC,PROGRAM MASK 07320000 DC X'000E01' ERROR CODE FOR ERROR DURING CONSOLE WRITE 07340000 GONGCCW DC X'0B' GONG COMMAND 07360000 DC X'000000' 07380000 DC X'2000' WRONG LENGTH RECORD INDICATOR 07400000 RDRCOUNT DC FL2'126' 07420000 XLNAME DC C'IGC0103D' EXECUTION MODULE NAME. 07440000 XT DC C'T ' 07450016 XS DC C'S ' 07460016 XSTART DC C'START ' 07480000 XSET DC C'SET ' 07500000 XREQ DC CL4'REQ ' 07510016 VOLNO DC CL5',VOL=' 07520000 COMDR EQU X'0A' 07540000 MSENABLE EQU READPSW 07560000 XPUBLIC DC CL6'PUBLIC' 07580000 XPRIVATE DC CL7'PRIVATE' 07600000 XSTORAGE DC CL7'STORAGE' 07620000 USENO DC CL5',USE=' 07640000 END 07660000 ./ ADD SSI=03050652,NAME=IEEMXR01,SOURCE=0 GBLC &SCHDLR 00020000 GBLC &IEEPG 00040000 GBLC &IEEPP 00060000 &SCHDLR SETC 'SSS' 00080000 &IEEPG SETC '00C' 00100000 &IEEPP SETC '00E' 00120000 MSCED IEEGMSLT DSECT,SMBL=YES 00140000 EJECT 00160000 IEEMIOCS 00180000 EJECT 00200000 * MAP PASSED CORE. 00220000 XMAIN DSECT 00240000 * * 00260000 XMH DS F MESSAGE RECORD HEADER. WTO (2) 00280000 XMI DS CL8 MESSAGE IDENTIFICATION. * 00300000 XMM DS CL28 MESSAGE TEXT. 00320000 ORG XMAIN 00340000 XMA DS F NAME POINTER A(*+8). * 00360000 XMB DS F DCB POINTER A(0). * 00380000 XMC DS CL8 NAME IGC0103D. XCTL (1) 00400000 XMD DS CL8 COMMAND VERB. * 00420000 XME DS CL16 COMMAND PARAM. * 00440000 TITLE 'MEXCP OPERATOR CONSOLE INPUT' 00460000 * 00480000 * READ THE CONSOLE FOR COMMAND INPUT AFTER 00500000 * ATTENTION INTERRUPT. 00520000 * 00540000 * ACCEPT COMMANDS FROM INTERPRETER ISSUING SVC 34. 00560000 * 00580000 * XCTL TO IGC0103D FOR=VARY/MOUNT/UNLOAD/STOP/ 00600000 * DISPLAY/CANCEL 00620000 * MOVE=START(NB)/SET TO MASTER COMMAND. 00640000 * 00660000 * EXECUTE=REQ/START(B) 00680000 * 00700000 * RE-ENTRANT/BUFFER PROTECTED BY DISPATCHER DISABLE. 00720000 * 00740000 SPACE 00760000 * * REGISTERS * 00780000 X0 EQU 0 00800000 X1 EQU 1 MCR PARAM=NEG=LOCAL BUF/DCB PTR 00820000 X2 EQU 2 LOCAL BRANCHING 00840000 X3 EQU 3 SCRATCH/RESIDENT BUFFER 00860000 X4 EQU 4 SCRATCH 00880000 X5 EQU 5 SCRATCH 00900000 X6 EQU 6 LOCAL SCRATCH/RESERVED MAIN CORE. 00920000 X7 EQU 7 INDEXING=1/LOCAL SCRATCH. 00940000 X8 EQU 8 MASTER CORE. 00960000 X9 EQU 9 DISABLING POINTER. 00980000 XA EQU 10 IMAGE SCAN 01000000 XB EQU 11 CURRENT BUFFER POINTER 01020000 XC EQU 12 PROGRAM BASE. 01040000 XD EQU 13 DISABLING MASK. 01060000 XE EQU 14 01080000 XF EQU 15 01100000 * 01120000 EJECT 01140000 IGC03D CSECT 01160000 *7056043600,043800,053200 AABA 01170016 * 01180000 BALR XC,0 PROGRAM 01200000 USING *,XC BASE. 01220000 SPACE 01240000 SSM MSENABLE * * * MACHINE ENABLE 01260000 SPACE 01280000 L X8,16 RESIDENT 01300000 L X8,IEEMSLTV(X8) CORE 01320000 USING IEEMSLT,X8 ADDRESSING. 01340000 * ENTRANCE 01360000 * 1. MCR SVC 34 01380000 * 2. IRB SVC 34 01400000 * 01420000 * FIND EXTENDED SAVE AREA. 01440000 L X6,16 CVT 01460000 L X6,0(X6) DBL WD 01480000 L X6,4(X6) TCB 01500000 L X6,0(X6) RB - ACTIVE 01520000 LA X6,96(X6) RB(32)+REGS(64)=96 01540000 USING XMAIN,X6 01560000 SPACE 01580000 SR X2,X2 X2 = ZERO 01600000 LTR X1,X1 01620000 BNL XREAD NOT MINUS=NOT MCR 01640000 TM MSNTAL,MSCURE34 FIRST CHECK 01660000 BZ XREAD AGAINST USER. 01680000 NI MSNTAL,F-MSCURE34 OFF. 01700000 * SVC 34 FROM MCR VERIFIED. 01720000 LA XB,0(X1) POINT TO LOCAL BUFFER. 01740000 B XSCAN NOW WHAT HATH THE BUFFER. 01760000 SPACE 01780000 XREAD EQU * 01800000 TM MSSSB,MSCONFLG SECOND CHECK ON USER 01820000 BZ XEXIT ISSUING SVC 34. 01840000 NI MSSSB,F-MSCONFLG CONSOLE FLAG OFF. 01860000 SPACE 2 01880000 SSM *+1 * * * MACHINE DISABLED. 01900000 SPACE 01920000 * PSEUDO-DISABLE DISPATCHER. 01940000 L X9,MSABL SUPERVISOR INSTRUCTION ADDRESS 01960000 ST X9,MSUCBPR RETURN WITH BYTE ADR (BC MASK) SAVED 01980000 MVC MSUCBAL(1),1(X9) SAVE CURRENT MASK 02000000 MVI 1(X9),X'F0' INSERT DISABLING MASK 02020000 SPACE 02040000 SSM MSENABLE * * * MACHINE ENABLED. 02060000 SPACE 2 02080000 LA X2,4 PSEUDO-ENABLE EXIT. 02100000 SPACE 02120000 TM MSECBFL,MSATTN FIRST TIME SVC 34 OR SVC 35 ENTERED 02140000 BO PREVWTO NO,POSSIBLE WTO RETRY 02160000 L INDEXER,TVTADR YES CTV ADDRESS TO R7 02180000 LA LASTNTRY,20(INDEXER) APPENDAGE TABLE ADDRESS TO R5 02200000 L INDEXER,IEECUCBT(INDEXER) 4 WRD UCB TBL ADR TO R7 02220000 MVC UCBPTRI(3),1(INDEXER) UCB ADR FOR CARD READER TO DEBI 02240000 MVC UCBPTRO(3),5(INDEXER) UCB ADR FOR PRINTER TO DEBO 02260000 MVC APNDGADI(3),1(LASTNTRY) APNDG TBL ADR FOR CR TO DEBI 02280000 MVC APNDGADO(3),1(LASTNTRY) APNDG TBL ADR FOR PRNTR TO DEBO 02300000 LA VRBTBL,MSCMD RESIDENT BUFFER 02320000 ST VRBTBL,CCWRDR ADDRESS TO 02340000 ST VRBTBL,CCWWTR INPUT/OUTPUT DEBS 02360000 MVI CCWRDR,X'02' CARD READER COMMAND CODE TO CCWRDR 02380000 MVI CCWWTR,X'09' PRINTER COMMAND CODE TO CCWWTR 02400000 OI MSECBFL,MSATTN SVC 34 / SVC 35 BIT ON 02420000 PREVWTO TM MSECBFL,MSWTO PREVIOUS I/O OPERATION = WTO 02440000 BZ NOWTO NO,CONTINUE 02460000 WTOAGAIN BAL TRBASADR,ERENTRY1 YES,CHECK FOR POSSIBLE RETRY 02480000 SSM MSENABLE PERMANENT ERROR,ENABLE MACHINE,RETRY 02500000 B RETRYWTO RETRY 02520000 NI MSECBFL,F-MSWTO SVC 35 BIT TO OFF(WTO) 02540000 NOWTO NI MSFHF,F-MSREPLYB BIT4 OFF 02560000 READLOOP MVI MSCMD,BLANK BLANK OUT 02580000 MVC MSCMD+1(125),MSCMD COMMAND BUFFER 02600000 MVC CCWRDR+6(2),RDRCOUNT CHARACTER COUNT TO CCW 02620000 XC ECBRDR(4),ECBRDR CLEAR ECB (INITIALIZATION) 02640000 TM MSFHF,MSREPLYB PSEUDO WAIT 02660000 BO *-4 FOR ATTENTION (START BUTTON ON RDR) 02680000 * 02700000 SSM *+1 MACHINE DISABLE 02720000 * 02740000 EXCP IOBRDR 02760000 * 02780000 SSM MSENABLE MACHINE ENABLE 02800000 * 02820000 BAL TRBASADR,ERENTRY5 CHECK FOR ERROR ON CARD READER 02840000 SSM MSENABLE PERMANENT ERROR,MACHINE ENABLE,RETRY 02860000 B READLOOP RETRY 02880000 LH NTRYSIZE,CCWRDR+6 MAX MSG SIZE TO R4 02900000 SH NTRYSIZE,CSWRDR+6 MAX MSG SIZE-RESIDUAL MSG SIZE=ACTUAL 02920000 LA NTRYSIZE,4(NTRYSIZE) MSG LNGTH+4 02940000 STC NTRYSIZE,MSBFH TO MSBFH 02960000 LA NTRYSIZE,4(NTRYSIZE) MSG LNGTH+8 02980000 STC NTRYSIZE,MSBCTLH TO MSBCTLH 03000000 LA XB,MSCMD ADDRESS RESIDENT BUFFER. 03020000 TITLE 'MEXCP BUFFER SCAN' 03040000 XSCAN EQU * 03060000 LA X7,1 INDEXING COUNTER. 03080000 SPACE 03100000 MVI XMD,BLANK BLANK PASSED 03120000 MVC XMD+1(23),XMD PARAMETER AREA. 03140000 SPACE 03160000 CLI 0(XB),SLASH SKIP LEADING 03180000 BNE *+8 SLASH WITH 03200000 LA XB,2(XB) CARD INPUT. 03220000 CLI 0(XB),BLANK FIND FIRST CHARACTER 03240000 BNE *+8 OF 03260000 BXH XB,X7,*-8 VERB. 03280000 CLI 0(XB),EOB IGNORE 03300000 BE XEXIT BLANK INPUT. 03320000 SPACE 03340000 CLC XREQ,0(XB) 03360000 BNE XVERB 03380000 OI MSPFG,MSBSP 03400000 B XEXIT 03420000 XVERB EQU * 03440000 LR XE,XB VERB IN BUFFER 03460000 CLI 0(XB),BLANK VERB 03480000 BE *+8 TERMINATED 03500000 BXH XB,X7,*-8 BY 03520000 LR X1,XB BLANK 03540000 SR X1,XE 03560000 LA XA,8 03580000 CR X1,XA 03600000 BH XEXIT TOO MANY VERB CHARACTERS 03620000 EX X1,XMOVE VERB TO SAVE AREA 03640000 SPACE 03660000 * FIND PARAMETER LIST 03680000 CLI 0(XB),BLANK 03700000 BNE *+8 03720000 BXH XB,X7,*-8 03740000 LR X5,XB SET UP REG 5 03760000 CLI 3(XB),C'/' IS IT A DATA CELL 03780000 BE XNEXT3 IF YES, BRANCH 03800000 CLI 3(XB),C',' IS IT MOUNT OR UNLOAD 03820000 BNE XNEXT5 IF NOT, BRANCH 03840000 MVC XME(3),0(XB) MOVE UNIT 03860000 MVC XME+5(10),3(XB) MOVE SECOND PARAMETER 03880000 B XNEXT4 BRANCH AROUND DATACELL RTN. 03900000 XNEXT3 LA X5,2(X5) BUMP REG FOR DATA CELL 03920000 XNEXT5 MVC XME(15),0(XB) MOVE UNIT & PARAMETER FOR DCELL 03940000 XNEXT4 CLC VOLNO(5),3(X5) IS THERE A VOL I.D. 03960000 BNE XNEXT1 BRANCH AROUND VOL I.D. RTN 03980000 MVC XME+5(10),8(X5) MOVE VOL I.D. INTO BUFFER 04000000 LA X5,16(X5) BUMP POINTER TO USE PARAMETER 04020000 XNEXT1 CLC USENO(5),3(X5) IS THERE A USE PARAMETER 04040000 BNE XNO 04060000 CLC XPRIVATE(7),8(X5) IS IT PRIVATE 04080000 BE XNO 04100000 MVI XME+15,X'EF' MOVE PUB CODE INTO BUFFER 04120000 CLC XPUBLIC(6),8(X5) IS IT PUBLIC 04140000 BE XNO 04160000 MVI XME+15,X'ED' MOVE STR CODE INTO BUFFER 04180000 CLC XSTORAGE(7),8(X5) IS IT STORAGE 04200000 BE XNO 04220000 MVI XME+15,X'EE' MOVE ERR CODE INTO BUFFER 04240000 * IS PASS TO MCR NECESSARY 04260000 XNO CLC XSET,0(XE) 04280000 BE XMCR SET HAS TO BE PASSED. 04300000 CLC XT,0(XE) AABA 04306016 BE XMCR AABA 04312016 SPACE 04320000 CLC XSTART,0(XE) 04340000 BE XEOB AABA 04350016 CLC XS,0(XE) AABA 04360016 BNE XTRAN 04370016 XEOB CLI 0(XB),EOB 04380016 BNE *+12 PARAM LIST NOT BLANK. 04400000 NI MSPFG,F-MSBSP PENDING FLAG OFF. 04420000 B XMCR CHECK FOR POSSIBLE POST REQUIRED 04440000 CLI 0(XB),COMMA 04460000 BE *-12 PARAM LIST IS BLANK. 04480000 XMCR EQU * SET OR START(NB) FOR MCR. 04500000 TM MSECBFL,MSMCR 04520000 BZ XEXIT MCR NOT AVAILABLE. 04540000 NI MSECBFL,F-MSMCR 04560000 SPACE 04580000 L XB,MSPBP MCR LOCAL BUFFER ADDRESS. 04600000 MVC 0(126,XB),MSCMD BUFFER MOVE-RESIDENT TO LOCAL. 04620000 POST MSECB,0 04640000 SPACE 2 04660000 XEXIT EQU * 04680000 * PSEDO-ENABLE IF INPUT 04700000 * FROM CONSOLE. 04720000 B *+4(X2) 04740000 B XSVCX 04760000 * PSEUDO-ENABLE. 04780000 SSM *+1 * * * MACHINE DISABLE. 04800000 SPACE 04820000 L BASEREG2,MSUCBPR RESTORE R11 04840000 MVC 1(1,BASEREG2),MSUCBAL RESTORE PREVIOUS MASK 04860000 SPACE 04880000 XSVCX EQU * 04900000 SVC EXIT EXIT 04920000 SPACE 2 04940000 XTRAN EQU * 04960000 MVC XMC,XLNAME XCTL NAME. 04980000 SR XF,XF 05000000 ST XF,XMB DCB PTR=0. 05020000 LA XF,XMC 05040000 ST XF,XMA NAME PTR TO LIST. 05060000 LR XF,X6 15 PT TO XCTL LIST. 05080000 SPACE 05100000 B *+4(X2) 05120000 B XNEXT 05140000 SPACE 05160000 SSM *+1 * * * MACHINE DISABLE. 05180000 SPACE 05200000 L BASEREG2,MSUCBPR RESTORE R11 05220000 MVC 1(1,BASEREG2),MSUCBAL RESTORE PREVIOUS MASK 05240000 SPACE 2 05260000 XNEXT EQU * 05280000 XCTL SF=(E,(15)) 05300000 XMOVE MVC XMD(1),0(XE) MOVE VERB INTO BUFFER 05320016 MSENABLE DC X'FE' CHANNELS MASK,NOT EXTERNAL. 05340000 XLNAME DC C'IGC0103D' EXECUTION MODULE NAME. 05360000 XREQ DC C'REQ ' 05380000 XSTART DC C'START ' 05400000 XSET DC C'SET ' 05420000 XT DC C'T ' AABA 05426016 XS DC C'S ' AABA 05432016 VOLNO DC CL5',VOL=' 05440000 COMDR EQU X'02' 05460000 RDRCOUNT DC FL2'80' 05480000 * 05500000 * COMPOSITE CONSOLE ERROR ROUTINES 05520000 * 05540000 ERENTRY1 TM ECBWTR,BIT1 HAS CHANNEL END BEEN POSTED FOR PREVIOUS 05560000 BZ *-4 SIO COMMAND. NO,LOOP TILL POSTED. 05580000 ERENTRY2 TM ECBWTR,X'7F' POST CODE = 7F OR 00 FOR PREVIOUS SIO 05600000 BM ERENTRY4 NO,ERROR CHECKING REQUIRED 05620000 ERENTRY3 MVI MSERM+1,Z YES,ZERO ERROR COUNTER 05640000 B BIT4(TRBASADR) RETURN TO ERROR FREE E.P. 05660000 ERENTRY4 TM MSERM+1,BIT4 HAS MAX NO OF RETRYS BEEN GIVEN (4) 05680000 BZ WTORETRY NO,RETRY 05700000 LA RETURN,PERMERR YES,ERROR RETURN ADR TO R14 05720000 MVI MSERM+1,Z ZERO ERROR COUNTER 05740000 MVC 0(2,0),BR14 BR 14 INSTRUCTION TO LOCATION 0 05760000 L BASE,IOBWTR IOB 05780000 SLL BASE,8 SENSE AND 05800000 IC BASE,CSWWTR+4 CSW 05820000 SLL BASE,8 STATUS 05840000 IC BASE,CSWWTR+5 BYTES TO R15 05860000 LPSW WRITEPSW WRITE ERROR,LOAD OUTPUT PSW 05880000 WTORETRY IC BASE,MSERM+1 ERROR COUNT TO R15 05900000 SLL BASE,1 SHIFT LEFT 1 BIT 05920000 STC BASE,MSERM+1 ERROR COUNT BACK TO STORAGE 05940000 OI MSERM+1,BIT7 INCREMENT ERROR COUNT BY 1 05960000 B BIT5(TRBASADR) RETURN FOR RETRY 05980000 RETRYWTO XC ECBWTR(4),ECBWTR CLEAR WRITER ECB 06000000 * 06020000 SSM *+1 MACHINE DISABLE 06040000 * 06060000 EXCP IOBWTR 06080000 * 06100000 SSM MSENABLE MACHINE ENABLE 06120000 * 06140000 B WTOAGAIN RETRY AGAIN 06160000 ERENTRY5 TM ECBRDR,BIT1 HAS READ BEEN POSTED 06180000 BZ *-4 NO,LOOP UNTIL POSTED 06200000 TM ECBRDR,X'7F' POST CODE = 7F OR IS THERE AN ERROR 06220000 BO BIT4(TRBASADR) 7F,RETURN TO ERROR FREE E.P. 06240000 MVI MSERM+1,Z ERROR,ZERO ERROR COUNTER 06260000 LA RETURN,PERMERR ERROR RETURN ADDRESS TO R14 06280000 MVC 0(2,0),BR14 BR 14 INSTRUCTION TO LOCATION 0 06300000 L BASE,IOBRDR IOB 06320000 SLL BASE,8 SENSE AND 06340000 IC BASE,CSWRDR+4 CSW 06360000 SLL BASE,8 STATUS 06380000 IC BASE,CSWRDR+5 BYTES TO R15 06400000 OI MSFHF,MSREPLYB BIT4 ON TO IGNORE UNSOLICITED INTERRUPT 06420000 LPSW READPSW READ ERROR,LOAD INPUT PSW 06440000 BR14 BR RETURN THIS INSTRUCTION EXECUTED UPON RETURN FROM LPSW 06460000 PERMERR BR TRBASADR PERMANENT ERROR - RETURN FOR MORE RETRIES 06480000 NOPR TRBASADR 06500000 B ERENTRY3 PERMANENT ERROR - IGNORE IT AND PROCEED 06520000 * 06540000 DS 0D 06560000 READPSW DC X'FF' SYSTEM MASK 06580000 DC X'02' PROTECTION KEY,AMWP 06600000 DC X'0000' INTERRUPTION CODE 06620000 DC X'00' ILC,CC,PROGRAM MASK 06640000 DC X'000E00' ERROR CODE FOR ERROR DURING CONSOLE READ 06660000 WRITEPSW DC X'FF' SYSTEM MASK 06680000 DC X'02' PROTECTION KEY,AMWP 06700000 DC X'0000' INTERRUPTION CODE 06720000 DC X'00' ILC,CC,PROGRAM MASK 06740000 XPUBLIC DC C'PUBLIC' 06760000 XPRIVATE DC C'PRIVATE' 06780000 XSTORAGE DC C'STORAGE' 06800000 USENO DC C',USE=' 06820000 DC X'000E01' ERROR CODE FOR ERROR DURING CONSOLE WRITE 06840000 END 06860000 ./ ADD SSI=02011080,NAME=IEENFWTO,SOURCE=0 TITLE 'IEENFWTO (IGC0003E) MFT/NON-MCS WTO' 00200021 IGC0003E CSECT 00400021 * THIS MODULE CREATED FOR RELEASE 21 OF OS/360 00600021 *********************************************************************** 00800021 * 01000021 * STATUS - 01200021 * CHANGE LEVEL=0 01400021 * 01600021 * FUNCTION - 01800021 * THE WTO SVC ROUTINE (SVC 35) PROCESSES REQUESTS 02000021 * FOR MESSAGES TO THE OPERATOR. 02200021 * IT IS CALLED BY THE WTO OR THE WTOR MACRO 02400021 * 02600021 * MODULE NAME - 02800021 * IEENFWTO 03000021 * 03200021 * ENTRY POINT - 03400021 * IGC0003E 03600021 * 03800021 * INPUT - 04000021 * 1. REGISTER 1 INPUT PARAMETER LIST ADDRESS 04200021 * 2. REGISTER 3 CVT ADDRESS 04400021 * 3. REGISTER 4 CURRENT TCB ADDRESS 04600021 * 4. REGISTER 5 CURRENT SVRB ADDRESS 04800021 * 5. REGISTER 14 RETURN ADDRESS 05000021 * 6. REGISTER 0 POSSIBLE UCM ID 05200021 * 05400021 * OUTPUT - 05600021 * A COMPLETED WQE QUEUED TO THE SYSTEM OUTPUT QUEUE 05800021 * 06000021 * EXITS,NORMAL - 06200021 * RETURN TO THE REQUESTOR 06400021 * TO IEECVML3 TO HANDLE MLWTO REQUESTS 06600021 * TO SECOND LOAD FOR WTOR REQUESTS 06800000 * TO IEFWTP00 FOR WTP REQUESTS BG A47887 06850000 * 07000021 * EXITS,ERROR - 07200021 * TO ABEND IF THE ADDRESS IN REGISTER 1 IS NOT ON A 07400021 * FULLWORD BOUNDARY 07600021 * 07800021 * ATTRIBUTES - 08000021 * NON-RESIDENT, PARTIALLY ENABLED, PRIVILEGED 08200021 * 08400021 * OPERATION - 08600021 * UPON ENTRY A TEST IS MADE TO SEE IF ENTRY IS 08800021 * DUE TO A RETURN FROM ANOTHER LOAD. IF SO 09000021 * CONTROL IS PASSED TO A ROUTINE WHICH WILL ACQUIRE 09200021 * A WTO BUFFER 09400021 * IF IT IS AN INITIAL ENTRY AND A REQUEST FOR A 09600021 * WTOR TRANSFER IS MADE TO THE SECOND LOAD VIA 09800021 * XCTL. 10000021 * IF IT IS INITIAL ENTRY AND A REQUEST FOR AN MLWTO, 10200021 * TRANSFER IS MADE TO IEECVML3 VIA XCTL 10400021 * OTHERWISE A CHECK ON THE MESSAGE LENGTH IS MADE 10600021 * IF IT IS LESS THAN ZERO RETURN TO THE CALLER IS 10800021 * MADE. IF IT IS GREATER THAN 122 11000021 * IT IS TRUNCATED TO THE APPROPRIATE LENGTH. 11200021 * NEXT AN ATTEMPT TO OBTAIN A BUFFER IS MADE. IF 11400021 * THE BUFFER LIMIT HAS BEEN REACHED AND THE CALLER 11600021 * IS NOT THE COMMUNICATIONS TASK, THE LOG OR AN SIRB, AN 11800021 * ENQ IS PERFORMED ON A RESOURCE WHICH REPRESENTS 12000021 * AN ECB (UCMWQECB) POSTED WHEN A BUFFER IS MADE 12200021 * AVAILABLE. WHEN EXCLUSIVE CONTROL OF THIS RESOURCE 12400021 * IS OBTAINED, A WAIT ON THAT ECB IS TAKEN. UPON 12600021 * RETURN FROM THE WAIT A DOUBLE CHECK IS MADE TO 12800021 * INSURE A BUFFER REALLY IS AVAILABLE. IF NOT, 13000021 * THE WAIT IS AGAIN ISSUED. 13200021 * WHEN A BUFFER IS AVAILABLE, THE BUFFER COUNT IS 13400021 * INCREMENTED. IF THE MODE IS FIXED A BUFFER IS 13600021 * OBTAINED FROM THAT FIXED AREA, OTHERWISE A 13800021 * GETMAIN FOR THE APPROPRIATE SIZE BUFFER (148) 14000021 * IS MADE. 14200021 * AT THIS POINT THE TEXT IS MOVED TO THE WQE 14400021 * AND PRECEEDED BY THE PARTITION ID AND 14600021 * THE REPLY ID IF A WTOR. NEXT THE WQE IS LINKED 14800021 * ONTO THE WTO QUEUE. 15000021 * FINALLY THE WTO ECB IN THE UCM IS POSTED,AND 15200021 * RETURN IS MADE TO THE CALLER 15400021 * 15600021 * TABLES AND CONTROL BLOCKS - 15800021 * CVT COMMUNICATION VECTOR TABLE 16000021 * UCM UNIT CONTROL MODULE 16200021 * EIL EVENT INDICATION LIST 16400021 * WQE CONSOLE OUTPUT QUEUE ELEMENT 16600021 * RQE CONSOLE REPLY QUEUE ELEMENT 16800021 * 17000021 * NOTES - 17200021 * NONE 17400021 * 17600021 *********************************************************************** 17800021 EJECT 18000021 ********** 18200021 * 18400021 * GENERAL REGISTER EQUATES 18600021 * 18800021 ********** 19000021 SPACE 2 19200021 R0 EQU 0 19400021 R1 EQU 1 19600021 R2 EQU 2 19800021 R3 EQU 3 20000021 R4 EQU 4 20200021 R5 EQU 5 20400021 R6 EQU 6 20600021 R7 EQU 7 20800021 R8 EQU 8 21000021 R9 EQU 9 21200021 R10 EQU 10 21400021 R11 EQU 11 21600021 R12 EQU 12 21800021 R13 EQU 13 22000021 R14 EQU 14 22200021 R15 EQU 15 22400021 RBASE EQU 11 22600021 SPACE 2 22800021 ********** 23000021 * 23200021 * EQUATES 23400021 * 23600021 ********** 23800021 SPACE 2 24000021 D120 EQU 120 BE A51715 24050021 TCBIDF EQU 112 24200021 F44 EQU 44 24400021 EIGHT EQU 8 24600021 ONE EQU 1 24800021 ZERO EQU 0 25000021 ZEROBYTE EQU X'00' 25200021 F2 EQU 2 25400021 F4 EQU 4 25600021 HEX20 EQU X'20' 25800021 N3 EQU 3 DISPLACEMENT 26000021 N108 EQU 108 DISPLACEMENT 26200021 MLWTO EQU 64 MCSFLAG BIT FOR MLWTO 26400021 MLRTN EQU C'6' MLWTO RTN IDENTIFIER 26600021 HEX40 EQU X'40' 26800021 HEX80 EQU X'80' 27000021 HEX03 EQU 3 27200021 D104 EQU 104 27400021 NOTAVAIL EQU X'40' 27600021 CNOR EQU X'F1' 27800021 ASTER EQU X'5C' 28000021 BLANK EQU X'40' 28200021 DESCCODE EQU X'80' 28400021 ACTION EQU X'C0' 28600021 TCBDAR EQU 172 BE M0549 28660021 DARFLAG EQU X'C0' BE M0549 28720021 HEXA EQU X'A' BG A62165 28730021 HEXB EQU X'B' BG A62165 28740021 HEX70 EQU X'70' BG A62165 28750021 RBLINK EQU 28 28760021 EJECT 28800021 BALR RBASE,0 29000021 USING *,RBASE 29200021 USING UCM,R10 29400021 USING CVTDSECT,R12 29600021 ENABLE EQU * 29800021 DC X'80FF' ENABLE SYSTEM MASK 30000021 DC S(*-1) 30200021 MVC D104(8,5),WTPNAME SET UP EXIT NAMES 30400021 LTR R3,R3 BACK FROM WTOR OR WTP 30600021 BZ WTO 30800021 BC F4,WTORTEST YES-BACK FROM WTP-BRANCH 31000021 OVER EQU * 31200021 LR R12,R3 LOAD CVT POINTER 31400021 L R10,CVTCUCB PTR TO UCM 31600021 ST R14,124(R5) SAVE RETURN ADDR IN 8TH WORD OF SVRB XSA 31800021 LR R6,R1 SAVE PARAMETER LIST ADDR 32000021 USING WQE,R1 32200021 USING WPLF,R6 32400021 WTPTEST EQU * 32600021 LA R3,ONE CHECK PARAMETER LIST FOR BG A42813 32650021 NR R3,R1 HALFWORD BOUNDARY. ABTERM BG A42813 32700021 BC 4,INVALID REQUESTOR IF WTO PARAMETER BG A42813 32750021 LR R7,R6 32800021 CLI WPLLGH,ZEROBYTE IS THIS A WTOR 33000021 BE RCCHECK NO-PARM LIST POINTER OK 33200021 LA R7,EIGHT(R7) PUT POINTER PAST WTOR PREFIX 33400021 B NOTMLWTO LET MLWTOR DEFAULT TO WTOR 21002 33500000 RCCHECK EQU * 33600021 *** TEST MCSFLAGS FIELD IN USER PARAMETER LIST FOR MULTIPLE 21002 33800021 *** LINE WRITE TO OPERATOR(MLWTO) 21002 34000021 TM N3(R7),MLWTO Q. IS THIS AN MLWTO 21002 34200000 BNO NOTMLWTO NO NORMAL WTO 21002 34400000 MVI N108(R5),MLRTN YES. SET XCTL NAME TO MLWTO 21002 34600000 B WTP GO TO EXIT ROUTINE 21002 34800000 NOTMLWTO EQU * 21002 35000000 TM F2(R7),HEX80 DO ROUT AND DESC EXIST 35200021 BZ WTORTEST NO-DON'T GO TO WTP 35400021 AH R7,ZERO(R7) ADD MSG LENGTH TO POINTER 35600021 TM HEX03(R7),HEX20 IS THERE ROUTING CODE 11 35800021 BNZ WTP 36000021 WTORTEST EQU * 36200021 CLI WPLLGH,X'00' IS THIS A WTOR 36400021 BNE WTOR YES 36600021 SR R7,R7 36800021 IC R7,WPLLGH+1 LOAD LENTGH OF OUTPUT MSG 37000021 SH R7,FOUR LENGTH IN WQE (FOR CCW) 37200021 LTR R7,R7 IS LENGTH GREATER THAN ZERO 37400021 BC 12,RESTORE *RETURN IF NOT 37600021 LA R7,1(R7) ADD ONE BYTE FOR'ACTION'SYMBOL 37800021 WTO EQU * 38000021 LA R9,122 MFT LIMIT 38200021 LIMTEST EQU * 38400021 SSM *+1 DISABLE 38800021 CR R7,R9 DOES LENGTH EXCEED LIMIT 39000021 BNH TESTWQE B TO TEST LIMIT 39200021 LR R7,R9 TRUNCATE TO LIMIT 39400021 TESTWQE EQU * 39600021 LA R8,POSTWTO IN CASE WQE ENQ NEEDED BE A51715 39650021 ST R8,D120(R5) BE A51715 39700021 CLC UCMWQNR(2),UCMWQLM BUFFER LIMIT REACHED YET 39800021 BL GETWQE NO 40000021 LA R4,0(R4) 40200021 C R4,UCMPXA IS CURRENT TCB THAT OF COMMUN- 40400021 * ICATIONS TASK 40600021 BE GETBUF CAN'T ENQ COMM TASK BE A51715 40650021 TM TCBDAR(R4),DARFLAG Q. IS DAR IN CONTROL BE M0549 40800021 BNZ GETBUF YES, DO NOT ENQ REQUESTOR BE M0549 40900021 L R15,ZERO(R4) GET CURRENT RB BG A62165 41000021 SIRBTEST EQU * BG A62165 41100021 L R15,RBLINK(R15) GET NEXT RB BG A62165 41200021 TM HEXA(R15),HEX80 IS THIS AN SIRB BG A62165 41300021 BZ GETNXRB NO-DOES RB POINT TO TCB BG A62165 41400021 TM HEXA(R15),HEX70 IS THIS AN SIRB BG A62165 41500021 BZ GETBUF YES- BR TO GETMAIN A WQE BG A62165 41600021 GETNXRB EQU * BG A62165 41700021 TM HEXB(R15),HEX80 DOES RB POINT TO TCB BG A62165 41800021 BNO SIRBTEST TEST NEXT RB BG A62165 41900021 QUP EQU * 42000021 LA R8,DEQUE1 SETUP WHERE-TO-GO IN XSA BE A51715 42050021 ST R8,D120(R5) BE A51715 42100021 LA R9,MAJORNAM PTRS TO MAJOR AND MINOR 42400021 LA R8,MINORNM1 NAMES FOR ENQ BE M1432 42600021 LA R1,96(R5) PTR TO EXTENDED SAVE AREA- SVRB 42800021 XC 0(4,1),0(1) CLEAR OPTION & RETURN CODE BYTE 43000021 OI 0(1),X'FF' INDICATE LAST QUEUE ELEMENT 43200021 ENQ ((9),(8),E,6,SYSTEM),MF=(E,(1)),RET=HAVE BG A59890 43500021 LTR R15,R15 IS RETURN CODE = TO ZERO BG A59890 43501021 BZ TSTCOUNT YES ENQUED ON RESOURCE BG A59890 43502021 LA R8,POSTWTO IN CASE OF NO ENQ BG A59890 43503021 ST R8,D120(R5) STORE WHERE-TO-GO IN XSA BG A59890 43504021 B GETBUF GET ANOTHER BUFFER 43505021 TSTCOUNT EQU * BE A51715 43510021 CLC UCMWQNR(2),UCMWQLM TEST COUNT VS. LIMIT AGAIN 43550021 BL GETWQE AVAILABLE 64921 43620021 XC UCMWQECB,UCMWQECB CLEAR WQECB BE A51715 43650021 LA R1,UCMWQECB WQE ECB POINTER 44200021 WAIT ECB=(1) 45000021 SSM *+1 DISABLE 45200021 B TSTCOUNT CHECK WQE LIMIT BE A51715 45250021 GETWQE EQU * 47000021 LR R15,R7 FREE BXLE REGISTER COMBINATIONS 47800021 LM R7,R9,UCMWEA SET BUFFER SEARCH 48000021 DROP R1 48200021 USING WQE,R7 48400021 SCAN EQU * 48600021 CLI WQEAVAIL,UCMFREE BUFFER AVAILABLE? 48800021 BE WQEFOUND YES - MARK IT 49000021 BXLE R7,R8,SCAN ELSE LOOK AT NEXT 49200021 B QUP NO BUFFER FOUND RE-ENQ BE M1432 49400021 WQEFOUND EQU * 49600021 LH R1,UCMWQNR LOAD WQE COUNT BE M1432 49650021 LA R1,ONE(R1) INCREMENT COUNT BE M1432 49700021 STH R1,UCMWQNR STORE UPDATED COUNT BE M1432 49750021 LA R3,NOTAVAIL 49800021 LR R1,R7 50000021 LR R7,R15 50200021 DROP R7 50400021 USING WQE,R1 50600021 B SETMSG CONTINUE 51000021 GETBUF EQU * 51020021 LA R0,ONE44 GET NON-MCS WQE SIZE BE M1432 51040021 ONE44 EQU 144 BE M1432 51060021 O R0,MASK245 SUBPOOL 245 BE M1432 51080021 SR R15,R15 ZERO GM RETURN REG CODE BE M1432 51100021 GETMAIN R,LV=(0) BE M1432 51120021 LA R3,NTAVGET MARK BUFFER INUSE AND GMED BE M1432 51140021 NTAVGET EQU X'50' BE M1432 51160021 SETMSG EQU * 51200021 XC WQELKP(ONE44),WQELKP ZERO OUT NON-MCS WQE BE M1432 51300021 STC R3,WQEAVAIL 51400021 B CKPARTID 51600021 BLANKREG EQU * 51800021 L R8,MASK245 52000021 CHKWTO EQU * 52200021 ST R7,WQENBR STORE LENGTH IN WQE FOR CCW 52400021 BCTR R7,0 SET FOR EXECUTE 52600021 CLI WPLLGH,X'00' IS THIS A WTOR 52800021 BNE STORTCBP YES 53000021 BCTR R7,0 SUBT 1 MORE FOR'ACTION'SYM 53200021 MVI WQETXT,BLANK MOVE IN BLANK 53400021 TM WPLX,DESCCODE DO ROUTE OR DESCCODES EXIST 53600021 BZ PARTCHK NO,INSERT'BLANK'AND CONTINUE 53800021 SR R15,R15 CLEAR A REGISTER 54000021 IC R15,WPLLGH+1 LOAD LNGTH OF OUTPUT MSG 54200021 SH R15,FOUR ADJUST TO LNGTH OF TEXT 54400021 LA R15,WPLTXT(R15) BUMP TO DESC CODE FIELD 54600021 TM 0(R15),ACTION DOES WTO HAVE DESCCODE 1/2 54800021 BZ PARTCHK NO,GO INSERT'BLANK' 55000021 MVI WQETXT,ASTER INDICATE ACTION REQUIRED 55200021 PARTCHK EQU * 55400021 C R8,MASK245 PARTITION ID 55600021 BNE HERE 55800021 EX R7,MOVEWTO 56000021 B LINKWQE 56200021 HERE EQU * 56400021 SH R7,FOUR 56600021 EX R7,MOVEWTO MOVE USERS TEXT TO WQE 56800021 LA R7,WQETXT+2(R7) 57000021 MVC 0(4,R7),116(R5) INSERT PARTITION ID 57200021 LINKWQE EQU * 57400021 L R15,UCMWQEND LOAD PTR TO LAST WQE ON CHAIN 57600021 LTR R15,R15 ZERO POINTER 57800021 BC 7,STORE NO 58000021 LA R15,UCMWTOQ ADDR OF BASE OF CHAIN 58200021 STORE EQU * 58400021 ST R1,UCMWQEND CURRENT BECOMES END OF CHAIN 58600021 DROP R1 58800021 USING WQE,R15 59000021 MVC WQELKP+ONE(R3),UCMWQEND+ONE LINK WQE ONTO QUEUE 59200021 L R8,D120(R5) LOAD WHERE-TO-GO BE A51715 59250021 BR R8 GO BE A51715 59300021 USING RQE,R2 59600021 DROP R15 59800021 USING WQE,R1 60000021 STORTCBP EQU * 60200021 ST R4,WQEXB 60400021 MVI WQETXT,ASTER MOVE * TO INDICATE'ACTION' 60600021 MVC WQETXT+1(2),RQEID MOVE ID FROM RQE TO WQE 60800021 MVI WQETXT+3,BLANK MOVE BLANK AFTER ID 61000021 C R8,MASK245 PARTITION ID 61200021 BNE HERE1 61400021 SH R7,FOUR 61600021 EX R7,MOVEWTOR 61800021 B LINKWQE 62000021 HERE1 EQU * 62200021 SH R7,EIGHT8 RETURN R7 TO CORRECT VALUE 62400021 EX R7,MOVEWTOR MOVE USERS TEXT 62600021 * REGISTER 7 NOW CONTAINS LENGTH OF 'MSG TXT-1'. THE PARTITION ID 62650021 * PRECEEDED BY A BLANK IS CONTAINED IN THE WTO SVRB AT A DISPLACE- 62700021 * MENT OF 116 DEC. THE FOLLOWING TWO INSTRUCTIONS WILL PUT THIS 62750021 * PARTITION ID AT THE END OF THE USER'S MSG SEPARATED BY A BLANK. 62800021 LA R7,WQETXT+WTORSZE+MOVEINCR(R7) POINT REG 7 TO BE A45457 62850021 * THE END OF THE MESSAGE TXT BE A45457 62900021 MVC ZERO(IDSIZE,R7),IDFIELD(R5) INSERT PART. ID BE A45457 62950021 WTORSZE EQU 4 SIZE OF '*ID ' WTOR PREFIX BE A45457 63000021 MOVEINCR EQU 1 MSG TXT DECR FOR EX INSTR BE A45457 63050021 IDSIZE EQU 4 SIZE OF ' PXX' MFT SUFFIX BE A45457 63100021 IDFIELD EQU 116 DISP FROM RB TO FIELD IN BE A45457 63150021 * XSA WHERE MFT SUFFIX BUILT BE A45457 63160021 B LINKWQE 63200021 CKPARTID EQU * 63400021 LR R15,R4 LOAD TCB ADDRESS 63600021 TM CVTOPTA,EIGHT IS THIS MFT ATTACH 63800021 BNO CONT NO - BRANCH 64000021 L R15,F44(R4) FIND JOB STEP TCB 64200021 CONT EQU * 64400021 SR R8,R8 64600021 IC R8,TCBIDF(R15) TCB ID FROM JOBSTEP TCB 64800021 SLL R8,F2 MULT ID BY 4 65000021 L R9,CVTIXAVL 65200021 L R9,F4(R9) PTR TO TCB TABLE 65400021 AR R8,R9 GET DISP IN TCB TABLE 65600021 L R9,CVTTSKS GET PTR TO P0 65800021 LA R9,ZERO(R9) ENTRY IN TCB TABLE 66000021 SR R8,R9 IS THERE AN ID 66200021 BM BLANKREG NO-BRANCH 66400021 SRL R8,F2 DIV RESULTING ID BY 4 66600021 CVD R8,112(R5) CONVERT IN XSA 66800021 UNPK 118(2,R5),118(2,R5) 67000021 OI 119(R5),X'F0' 67200021 MVI 117(R5),X'D7' INSERT 'P' 67400021 MVI 116(R5),HEX40 INSERT BLANK 67600021 AH R7,FOUR ADD FOUR FOR PART ID FOR EX 67800021 B CHKWTO 68000021 DEQUE1 EQU * BE A51715 68010021 LA R9,MAJORNAM MAJOR AND MINOR NAMES 68050021 LA R8,MINORNM1 FOR DEQ BE M1432 68100021 LA R1,96(R5) PTR TO XSA OF SVRB 68150021 DEQ ((9),(8),6,SYSTEM),MF=(E,(1)) BE M1432 68160021 POSTWTO EQU * 68200021 POST UCMOECB 68400021 RESTORE EQU * 68600021 L R14,124(R5) RELOAD RETURN ADDRESS 69200021 BR R14 * RETURN TO CALLER 69400021 INVALID L R1,ABENDCOD LOAD ABEND COMPLETION CODE BG A42813 69600021 ABEND (1) BG A42813 69800021 WTOR EQU * 70200021 MVI 108(R5),CNOR ALTER NAME TO THAT OF WTOR EXIT 70400021 WTP EQU * 70600021 XC 100(4,R5),100(R5) CLEAR SECOND WORD OF XSA 70800021 LA R15,104(R5) 71000021 ST R15,96(R5) STORE ADDR OF ENTRY PT 71200021 LA R15,96(R5) LOAD INTO R15 XCTL PARA LIST 71400021 XCTL SF=(E,(15)) BRING IN SECOND LOAD 71600021 EJECT 71800021 ********** 72000021 * 72200021 * EXECUTED STATEMENTS 72400021 * 72600021 ********** 72800021 DS 0H EXECUTE SUBJECT INSTRUCTIONS 73000021 MOVEWTO MVC WQETXT+1(1),WPLTXT MOVE USER'S TEXT TO WQE 73200021 DROP R6 73400021 USING WPLRF,R6 73600021 MOVEWTOR MVC WQETXT+4(1),WPLTXT WTOR MOVE OF USER'S TEXT 73800021 SPACE 2 74000021 ********** 74200021 * 74400021 * CONSTANTS 74600021 * 74800021 ********** 75000021 MAJORNAM DC CL8'SYSIEECT' MAJOR NAME FOR ENQ, DEQ 75200021 MINORNM1 DC CL6'IEEWQE' WQE MINOR NAME FOR ENQ, DEQ 75400021 * ID AND BLANK 75600021 EIGHT8 DC H'8' 75800021 FOUR DC H'4' 76000021 DS 0F 76200021 MASK245 DC X'F5000000' 76400021 ABENDCOD DC X'80D23000' INVALID INPUT PARAMETER AREA 76600021 WTPNAME DC C'IGC0203E' THIS NAME IS USED TO BUILD ALL EXIT 76800021 * NAMES. EACH NAME IS THEN MODIFIED TO 77000021 * THE CORRECT NAME BY AN MVI. 77200021 EJECT 77400021 ********** 77600021 * 77800021 * DSECTS 78000021 * 78200021 ********** 78400021 WQE DSECT 78600021 IEECVMUG WQE 78800021 EJECT 79000021 RQE DSECT 79200021 IEECVMUG RQE 79400021 EJECT 79600021 WPL DSECT 79800021 IEECVMUG WPL 80000021 EJECT 80200021 UCM DSECT 80400021 IEECUCM 80600021 EJECT 80800021 CVTDSECT DSECT 81000021 CVT 81200021 END 81400021 ./ ADD SSI=21330796,NAME=IEEPRTN2,SOURCE=0 TITLE 'IEEPRTN2--CSCB MAP' 00010019 PCHAIN DSECT 00020019 IEECHAIN 00030019 EJECT 00030820 CVTDSECT DSECT 00031620 CVT 00032420 EJECT 00033220 IEZJSCB 00034020 IKJTCB M0361 00034420 EJECT 00034820 EJECT 00036019 TITLE 'IEEPRTN2--FREE PARTITION ROUTINE' 00040019 *********************************************************************** 00050019 * 1501 00061015 * ROUTINE NAME .IEEPRTN - FREES PARTITION FOR START AND MOUNT 1501 00061515 * COMMAND PROCESSORS (MODLIB NAMES - IEEPRTN2) 1501 00062015 * 1501 00062515 * FUNCTION .TO FREE SUBPOOL 250 AS A SAFETY MEASURE IN CASE 1501 00063015 * SOME CORE HAS NOT BEEN FREED 1501 00063515 * .TO FREE THE PARTITION USED FOR THE START AND 1501 00064015 * MOUNT COMMANDS 1501 00064515 * 1501 00065015 * PROGRAM FLOW .SETS UP PROGRAM ADDRESSABILITY 1501 00065515 * .FREES SUBPOOL 250 IN CASE SOME CORE HAS NOT BEEN 1501 00066019 * FREED 1501 00066515 * .ISSUES A FREEMAIN FOR THE PARTITION USED BY 1501 00068015 * THE START AND MOUNT PROCESSORS 1501 00068515 * .RETURNS TO THE MASTER TASK 1501 00069015 * 1501 00069515 * CSECT NAME .IEEPRTN2 1501 00070015 * 1501 00070515 * ATTRIBUTES .REENTRANT 1501 00071015 * .READ ONLY 1501 00071515 * 1501 00072015 * EXTERNAL 1501 00072515 * REFERENCES .NONE 1501 00073015 * 1501 00073515 * SVC USAGE .FREEMAIN 1501 00074015 * 1501 00074515 * INPUT .REG 1 HAS PTR TO CSCB TO BE FREED- I272 00075019 * 1501 00075515 * TABLES 1501 00076015 * MAPPINGS .IEECHAIN (CSCB MAP) I272 00076719 * 1501 00077515 * EXIT .RETURN TO THE MASTER TASK 1501 00078015 * 1501 00078515 * NOTES .THIS ROUTINE DOES NOT SAVE OR RESTORE REGISTERS I272 00078619 * * 00078719 ***************************************************************** 1501 00079015 EJECT 00079519 R0 EQU 0 00080000 R1 EQU 1 00100000 R2 EQU 2 00120000 R3 EQU 3 00140000 R4 EQU 4 00160000 R5 EQU 5 00180000 R6 EQU 6 00200000 R7 EQU 7 00220000 R8 EQU 8 00240000 R9 EQU 9 00260000 R10 EQU 10 00280000 R11 EQU 11 00300000 R12 EQU 12 00320000 R13 EQU 13 00340000 R14 EQU 14 00360000 R15 EQU 15 00380000 D0 EQU 0 20032 00384020 D4 EQU 4 00388020 WTPLN EQU 16 LENGTH OF WTP CONTROL 20032 00396020 SP252 EQU 252 A39461 00398421 D8 EQU 8 A51290 00398821 IEEPRTN2 CSECT 00400000 * A 005184-005188,007600-007700 M1983 00400121 * A 003984,005700 A39461 00400221 * D-004516,004522 A-005154,004444,004448 A43575 00400421 * 003920,005120 M0361 00400520 * 003920,005120 M0361 00400621 * 003920,005120 M0361 00406021 * 004530 20030 00408821 * 000200-000400,000600,000660,000670-000675,0007508005400-007000 I272 00411621 * 007400,007600-007800 I272 00414421 *2231 1501 00417221 * A 005119-005192 A51290 00419221 BALR 9,0 00420000 USING *,9 00440000 B FIRST 00441020 DC C'IEEPRTN2' 00442020 DC X'01291970' 00443020 FIRST EQU * 00444020 L R2,CVTPTR GET CVT ADDRESS A43575 00444421 USING CVTDSECT,R2 SET UP ADDRESSABILITY A43575 00444821 LTR R1,R1 IS THERE A CSCB TO BE DETACHED 00445014 BZ PRT000 NO, BYPASS CSCB DELETION FROM CHAIN 00450014 USING PCHAIN,R1 YES. ADDRESS CSCB I272 00451019 MGCR (1),CHAIN DELETE THIS CSCB FROM CHAIN 00455014 *********************************************************************** 00460000 * FREE PARTITION FOR TERMINATE ROUTINE 00480000 *********************************************************************** 00500000 PRT000 EQU * 00510014 LA R14,CVTEXIT ADDRESS OF SVC 3 20032 00510520 L R6,CVTTCBP PTR TO TCBS 20032 00511020 L R6,D4(R6) PTR TO CURRENT TCB 20032 00511520 USING TCB,R6 M0361 00511820 L R8,TCBSTAB GET STAE C. B. @ A51290 00511921 LA R8,0(R8) ZERO OUT HI-ORDER FOR TEST A51290 00513921 LTR R8,R8 IS @ VALID? A51290 00515021 BZ PRT002 NO, CANNOT FREE PARMAREA A51290 00517021 L R1,D8(R8) GET PARMAREA @ A51290 00517521 LA R1,0(R1) A51290 00517821 LTR R1,R1 IS @ VALID? A51290 00518421 BZ PRT002 NO PARMAREA TO FREE A51290 00518821 FREEMAIN R,LV=88,A=(1),SP=255 A51290 00518921 PRT002 EQU * A51290 00519221 L R1,TCBJSCB M0361 00520021 LA R1,D0(R1) CLEAR HIGH-ORDER BYTE 20032 00522000 LTR R1,R1 IS THEIR A JSCB TO FREE 20032 00525000 BZ PRT001 NO-BYPASS FREE OF JSCB WTPCB 20032 00528000 USING IEZJSCB,R1 ADDRESS THE JSCB 20032 00531000 L R7,JSCBWTP WTP CONTROL BLOCK 20032 00534000 FREEJSCB SYSTEM=MVT FREE MVT JSCB 20032 00537000 XC TCBJSCB,TCBJSCB CLEAR POINTER TO JSCB A43575 00540000 LA R7,D0(R7) CLEAR HIGH-ORDER BYTE 20032 00543000 LTR R7,R7 IS THERE A WTPCB 20032 00546000 BZ NOWTP NO, DONT FREE IT 20032 00549000 FREEMAIN R,LV=WTPLN,A=(R7),SP=255 FREE WTP CONTROL 20032 00552000 NOWTP EQU * 20032 00555000 PRT001 EQU * 20032 00558000 L R7,ALLCORE PURGE MODULES FROM SUBPOOL 252 M1983 00561000 GETMAIN EC,LV=(R7),A=ADDR WHICH HAVE A ZERO USER COUNT M1983 00564000 FREEMAIN R,SP=250 00567000 FREEMAIN R,SP=SP252 A39461 00570021 FREEMAIN R,SP=247 FREE PARTITION I272 00620019 RETURN 00710019 ADDR DS F M1983 00760021 ALLCORE DC X'00FFFFF8' M1983 00770021 END 00800000 ./ ADD SSI=01012113,NAME=IEEPSN,SOURCE=0 IEEPSN CSECT 00300019 * 742000,748234,791000,886000-888741,893000,895500-895600 A40663 00350021 * 854000,861000-868000 M4331 00500019 * 546000,784000 20032 00600020 TITLE 'IEEPSN--PROLOGUE' 00700019 ********************************************************************** 01400019 * * 02100019 *NAME- IEEPSN * 02800019 * * 03500019 *ENTRY POINTS- IEEPSN * 04200019 * * 04900019 *FUNCTION- IEEPSN IS THE TEXT EXIT ROUTINE FROM IEFVFA * 05600019 * WHEN THE READER/INTERPRETER IS ENTERED FROM * 06300019 * SYSTEM TASK CONTROL (IEEVRCTL). * 07000019 * IT VERIFIES THAT THE PROGRAM TO BE EXECUTED * 07700019 * IN THE STARTED PROCEDURE IS A SYSTEM TASK * 08400019 * BY COMPARING THE PROGRAM NAME WITH THE LIST * 09100019 * OF STARTABLE SYSTEM TASKS IN IEEVLNKT. * 09800019 * IT IS AN ERROR IF - * 10500019 * THE STARTED PGM IS NOT A SYSTEM TASK. * 11200019 * A SYSTEM TASK IS IN A MULTI-STEP JOB. * 11900019 * IF THE STARTED PROGRAM IS A SYSTEM TASK (I.E., M4331 12000019 * THE PROGRAM NAME IS IN TABLE I), THE 2ND TABLE M4331 12100019 * IS SEARCHED TO SEE WHETHER DATA SET INTEGRITY M4331 12200019 * IS TO BE PROVIDED. IF THE PROGRAM NAME IS THERE, M4331 12300019 * DATA SET INTEGRITY IS NOT TO BE PROVIDED. M4331 12400019 * * 12600019 *INPUT- REG 13 POINTS TO A REG SAVE AREA. * 13300019 * REG 1 POINTS TO A 4-WORD PARAMETER LIST - * 14000019 * PTR TO R/I INTERNAL TEXT BUFFER. * 14700019 * N/A * 15400019 * N/A * 16100019 * IWANELJC FIELD OF THE IWA. * 16800019 * THE IWANELJC FIELD CONTAINS A PTR TO A PARAMETER * 17500019 * LIST, THE 2ND WORD OF WHICH POINTS TO A WORK AREA * 18200019 * USED FOR COMMUNICATION BETWEEN IEEPSN AND SYSTEM * 18900019 * TASK CONTROL (IEEVRCTL). * 19600019 * * 20300019 *OUTPUT- THE 1ST BYTE OF THE IEEPSN/STC WORK AREA * 21000019 * CONTAINS A RETURN CODE - * 21700019 * 0 NORMAL * 22400019 * 4 UNAUTHORIZED PROGRAM REFERENCE * 23100019 * 8 MULTI-STEP JOB WITH 1 OR MORE SYSTEM TASKS * 23800019 * THE HIGH-ORDER BIT OF THE 2ND BYTE OF THE WORK * 24500019 * AREA IS ON FOR SYSTEM TASKS, OFF FOR PROBLEM * 25200019 * PROGRAMS. * 25900019 * THE 2ND BIT OF THE 2ND BYTE OF THE WORK AREA M4331 26100019 * IS ON IF DATA SET INTEGRITY IS NOT TO BE PROVIDED. M4331 26300019 * * 26600019 *EXITS- BR 14 (BACK TO IEFVFA) * 27300019 * * 28000019 *TABLES/WORK AREAS- * 28700019 * IEFVKEYS, R/I INTERNAL TEXT BUFFER, IEEVLNKT, * 29400019 * IEEPSN/STC WORK AREA * 30100019 * * 30800019 *********************************************************************** 31500019 TITLE 'IEEPSN--STC TEXT EXIT ROUTINE' 32200019 * 32900019 * REGISTER EQUATES 33600019 * 34300019 R0 EQU 0 35000019 R1 EQU 1 INPUT PARAM REG 35700019 R2 EQU 2 INTERNAL TEXT BUFFER WORK REG 36400019 R3 EQU 3 PTR TO IEEPSN/STC WORK AREA 37100019 R4 EQU 4 PTR TO IEEVLNKT 37800019 R5 EQU 5 38500019 R6 EQU 6 WORK 39200019 R7 EQU 7 39900019 R8 EQU 8 40600019 R9 EQU 9 41300019 R10 EQU 10 42000019 R11 EQU 11 42700019 R12 EQU 12 BASE REG 43400019 R13 EQU 13 PTR TO REG SAVE AREA 44100019 R14 EQU 14 RETURN REG 44800019 R15 EQU 15 45500019 * 46200019 * WORK EQUATES 46900019 * 47600019 D0 EQU 0 48300019 D1 EQU 1 49000019 D2 EQU 2 49700019 D3 EQU 3 50400019 D4 EQU 4 51100019 D8 EQU 8 51800019 D12 EQU 12 52500019 SYS EQU X'80' SYSTEM TASK FLAG IN WORK AREA 53200019 NODSI EQU X'40' N