ibm:vm370-lib:cp:dmkmia.assemble_src
Table of Contents
DMKMIA Source
References
- Fixes Applied : 9
- This Source Date : Wednesday, December 13, 1978
- Last Fix ID : [R14769DK]
Source Listing
- DMKMIA.ASSEMBLE.txt
- MIA TITLE 'DMKMIA (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 @VA08412 00001500
- COPY OPTIONS 00002000
- COPY LOCAL 00003000
- DMKMIA CSECT 00004000
- MODID DC CL8'DMKMIA' I.D. 00005000
- USING PSA,R0 00006000
- USING VMBLOK,R11 00007000
- USING SAVEAREA,R13 00008000
- EJECT 00009000
- *. 00010000
- * 00011000
- * MODULE NAME - 00012000
- * 00013000
- * DMKMIA 00014000
- * 00015000
- * FUNCTION - 00016000
- * 00017000
- * TO AUTOMATICALLY START AND STOP MONITOR AND TO PROVIDE 00018000
- * ROUTINES FOR WRITING AND CLOSING MONITOR SPOOL FILES. ALSO 00019000
- * TO PROVIDE A UTILITY TO START NEW MONITOR SPOOL FILES. 00020000
- * 00021000
- * ATTRIBUTES - 00022000
- * 00023000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 00024000
- * 00025000
- * ENTRY POINTS - 00026000
- * DMKMIAIN - TO AUTOMATICALLY START MONITOR 00027000
- * DMKMIAMU - TO SEND OUT MESSAGES TO MONITOR USERS 00028000
- * DMKMIAKC - ROUTINE TO INITIATE A MONITOR CLOSE 00029000
- * DMKMIADL - MONITOR DISPLAY ROUTINE 00030000
- * DMKMIAWO - ROUTINE TO WRITE OUT MONITOR SPOOL BUFFS 00031000
- * DMKMIARO - ROUTINE TO INITIATE MONITOR SPOOL FILES 00032000
- * DMKMIACC - ROUTINE TO CLOSE A MONITOR SPOOL FILE 00033000
- * DMKMIAEN - TO AUTOMATICALLY STOP MONITOR 00034000
- * DMKMIAST - TO SCHEDULE TRQ'S FOR AUTODISK OPTION 00035000
- * 00036000
- * ENTRY CONDITIONS - 00037000
- * 00038000
- * REFER TO THE PROLOG ASSOCIATED WITH EACH ENTRY POINT 00039000
- * 00040000
- * EXIT CONDITIONS - 00041000
- * 00042000
- * REFER TO THE PROLOG ASSOCIATED WITH EACH ENTRY POINT 00043000
- * 00044000
- * EXTERNAL REFERENCES - 00045000
- * 00046000
- * THE FOLLOWING ARE FUNCTIONAL EXTERNAL REFERENCES 00047000
- * OR ROUTINES WHICH ARE CALLED BY THIS ROUTINE. 00048000
- * 00049000
- EXTRN DMKMCCCL 00050000
- EXTRN DMKPRGMC 00051000
- EXTRN DMKCVTDT 00052000
- EXTRN DMKSYSAT 00053000
- EXTRN DMKSYSUR 00054000
- EXTRN DMKSYSTE 00055000
- EXTRN DMKSYSTS 00056000
- EXTRN DMKSYSEN 00057000
- EXTRN DMKRSPID 00058000
- EXTRN DMKSYSCL 00059000
- EXTRN DMKSYSMX 00060000
- EXTRN DMKRPAPT 00061000
- EXTRN DMKRPAGT,DMKPGTVG,DMKPGTVR 00061100
- EXTRN DMKCVTAB 00062000
- EXTRN DMKPGTSG 00063000
- EXTRN DMKMNISH 00064000
- EXTRN DMKCKSPL 00065000
- EXTRN DMKPRGC8 00066000
- EXTRN DMKCVTBD 00067000
- EXTRN DMKSTKCP 00068000
- EXTRN DMKSCNFD 00069000
- EXTRN DMKUDRFU 00070000
- EXTRN DMKMNIDK 00071000
- EXTRN DMKERMSG 00072000
- EXTRN DMKSCHRT 00073000
- EXTRN DMKSCHST 00074000
- EXTRN DMKENTST 00075000
- EXTRN DMKENTET 00076000
- EXTRN DMKENTBS 00077000
- EXTRN DMKENTES 00078000
- EXTRN DMKENTTE 00079000
- EXTRN DMKENTTB 00080000
- EXTRN DMKENTSC 00081000
- EXTRN DMKENTEC 00082000
- EXTRN DMKSCNAU 00083000
- EXTRN DMKSYSBF 00084000
- EXTRN DMKDSPNP 00085000
- EXTRN DMKENTFI 00086000
- EXTRN DMKMNIDS 00087000
- EXTRN DMKRSPMN 00088000
- AIF (NOT &AP).LOKSY5 00088900
- EXTRN DMKLOKSY 00089000
- EXTRN DMKLOKFR 00090000
- EXTRN DMKLOKRL 00091000
- EXTRN DMKLOKTR 00092000
- EXTRN DMKLOKDS 00093000
- EXTRN DMKLOKCT 00094000
- .LOKSY5 ANOP 00094100
- EXTRN DMKFRENP 00095000
- EXTRN DMKSPLSP @VA07887 00095100
- EXTRN DMKSPLDL @VA07979 00095150
- * 00096000
- * REGISTER USAGE IN THIS MODULE - 00097000
- * R1 - R10 WORK REGISTERS 00098000
- * R11 - VMBLOK 00099000
- * R12 - ADDRESSABILITY 00100000
- * R13 - SAVE AREA 00101000
- * R14 - BALR LINKAGE 00102000
- * R15 - BALR LINKAGE 00103000
- * 00104000
- *. 00105000
- EJECT 00106000
- *. 00107000
- * ENTRY POINT - 00108000
- * 00109000
- * DMKMIAIN - ENTRY POINT TO START MONITOR AUTOMATICALLY 00110000
- * 00111000
- * ENTRY CONDITIONS - 00112000
- * 00113000
- * GPR11 - VMBLOK OF USER 00114000
- * GPR13 - SAVE AREA 00115000
- * 00116000
- * EXIT CONDITIONS - 00117000
- * 00118000
- * NONE 00119000
- * 00120000
- * CALLS TO OTHER ROUTINES - 00121000
- * 00122000
- * DMKFREE - TO ACQUIRE STORAGE FOR A COMMAND BUFFER 00123000
- * DMKFRET - TO RELEASE STORAGE CONTAINING A COMMAND 00124000
- * DMKMCCCL - TO EXECUTE THE COMMAND IN THE COMMAND BUFFER 00125000
- * DMKQCNWT - TO WRITE OUT A WARNING MESSAGE TO THE USER 00126000
- * 00127000
- * REGISTER USAGE - 00128000
- * 00129000
- * R6 - LINKAGE TO MESSAGE ROUTINE 00130000
- * R11 - VMBLOK 00131000
- * R12 - ENTRY POINT 00132000
- * R13 - SAVE AREA 00133000
- * 00134000
- * OPERATION - 00135000
- * 00136000
- * A BUFFER IS BUILT AND A COMMAND IS INSERTED REFLECTING 00137000
- * THE DEFAULT OF THE MONITOR SPOOL ENVIRONMENT. THE 00138000
- * COMMAND IS SHIPPED TO DMKMCCCL FOR EXECUTION. 00139000
- * 00140000
- *. 00141000
- SPACE 1 00142000
- DMKMIAIN RELOC @V50A2B5 00143000
- L R1,=A(DMKSYSBF) SEE HOW MANY @V50A2B5 00144000
- LH R1,0(R1) BUFFERS WE NEED @V50A2B5 00145000
- C R1,F1 SEE IF EXACTLY ONE @V50A2B5 00146000
- BNE CONTIN1 NO, CONTINUE NORMALLY @V50A2B5 00147000
- L R1,=A(DMKPRGC8) ONLY PERFORM ALLOWED FOR 1 BUFF@V50A2B5 00148000
- L R2,0(R1) SEE IF ANY THERE @V50A2B5 00149000
- LTR R2,R2 @V50A2B5 00150000
- BZ CHKDFLT NO, CHECK DEFAULT @V50A2B5 00151000
- TM 2(R1),X'FF'-PERFCL IS OTHER THAN PERFORM ON? @V50A2B5 00152000
- BNE INVBUFFZ SHOULDN'T BE @V50A2B5 00153000
- TM 3(R1),X'FF' ANYTHING ELSE ON @V50A2B5 00154000
- BNE INVBUFFZ SHOULDN'T BE @V50A2B5 00155000
- B CONTIN1 JUST CONTINUE NOW @V50A2B5 00156000
- CHKDFLT EQU * @V50A2B5 00157000
- L R1,=A(DMKSYSEN) LOOK AT THE ENABLE CLASSES @V50A2B5 00158000
- TM 0(R1),X'FF'-PERFCL IS OTHER THAN PERFORM ON? @V50A2B5 00159000
- BNE INVBUFFZ SHOULDN'T BE @V50A2B5 00160000
- TM 1(R1),X'FF' ANYTHING ELSE ON? @V50A2B5 00161000
- BNE INVBUFFZ SHOULDN'T BE @V50A2B5 00162000
- CONTIN1 EQU * @V50A2B5 00163000
- LA R0,L'STARTMSG GET LENGTH OF START MESSAGE @V50A2B5 00164000
- LA R1,STARTMSG GET ADDRESS OF START MESSAGE @V50A2B5 00165000
- CALL DMKQCNWT,PARM=NORET+OPERATOR SEND IT OUT @V50A2B5 00166000
- LA R0,18 ACQUIRE A MESSAGE WORK AREA @V50A2B5 00167000
- CALL DMKFREE FOR A COMMAND BUFFER @V50A2B5 00168000
- L R4,=A(DMKSYSUR) GET DEFAULT USER ID @V50A2B5 00169000
- MVC STUID(8),0(R4) MOVE IT INTO WORK AREA @V50A2B5 00170000
- LR R3,R0 SAVE THESE NUMBERS WHILE @V50A2B5 00171000
- LR R4,R1 WE WORK WITH REG(S) @V50A2B5 00172000
- MVC BUFFS(5),BLANKS BLANK OUT THE BUFFS FIELD @V50A2B5 00173000
- MVC BUFFNO(2),BLANKS HERE BLANK OUT THE BUFFS NUMBER@V50A2B5 00174000
- L R1,=A(DMKSYSBF) GET THE BUFFERS @V50A2B5 00175000
- LH R1,0(R1) LOAD FROM HALF WORD @V50A2B5 00176000
- LTR R1,R1 CHECK OF ZERO @V50A2B5 00177000
- BZ SENDASIS IF ZERO, USE MONITOR DEFAULTS @V50A2B5 00178000
- MVC BUFFS(5),=C'BUFFS' THEN SAY BUFFS @V50A2B5 00179000
- CALL DMKCVTBD CONVERT @V50A2B5 00180000
- STCM R1,B'0011',BUFFNO STORE RESULT IN COMMAND @V50A2B5 00181000
- SENDASIS LR R0,R3 NOW, RESTORE THE REGISTERS @V50A2B5 00182000
- LR R1,R4 AS WE CAN WORK AS BEFORE @V50A2B5 00183000
- MVC 0(STMSGSZ,R1),STMSG FILL IN THE MESSAGE @V50A2B5 00184000
- LR R9,R1 R9 BECOMES THE WORK AREA @V50A2B5 00185000
- ST R1,X'88'(R9) PUT IN THE POINTER @V50A2B5 00186000
- LA R5,STMSGSZ PUT IN THE SIZE ALSO @V50A2B5 00187000
- BCTR R5,R0 MINUS ONE @V50A2B5 00188000
- ST R5,X'8C'(R9) PUT IN THIS COMMAND INDICATOR @V50A2B5 00189000
- CALL DMKMCCCL CALL DMKMCCCL TO EXECUTE IT @V50A2B5 00190000
- LA R0,18 FREE UP THE WORK MSG AREA @V50A2B5 00191000
- CALL DMKFRET AS COMMAND IS EXECUTED @V50A2B5 00192000
- LA R0,L'STARTMSG LOAD IN LENGTH OF START MSG @V50A2B5 00193000
- LA R1,STARTMSG ALSO THE ADDRESS OF IT @V50A2B5 00194000
- BAL R6,MONUMSG LET USER KNOW @V50A2B5 00195000
- BAL R6,MONOMSG LET RECEIVER KNOW FOR THE HECK @V50A2B5 00196000
- B EXITS FINISHED @V50A2B5 00197000
- SPACE 1 00198000
- INVBUFFZ EQU * @V50A2B5 00199000
- LA R0,L'BADEN SEND OUT BAD ENABLE CLASS MSG @V50A2B5 00200000
- LA R1,BADEN FOR ONE BUFFER MONITORING @V50A2B5 00201000
- CALL DMKQCNWT,PARM=OPERATOR+NORET GIVE IT TO OPERATOR@V50A2B5 00202000
- B EXITS LEAVE @V50A2B5 00203000
- SPACE 5 00204000
- EJECT 00205000
- MONOMSG LR R3,R0 SAVE REGISTER 0 @V50A2B5 00206000
- LR R4,R1 AND REGISTER 1 @V50A2B5 00207000
- L R1,=A(DMKSYSUR) GET MONITOR USER NAME @V50A2B5 00208000
- USING MONCOM,R2 @VA08954 00208100
- L R2,=A(DMKPRGMC) GET MONCOM ADDRESS @VA08954 00208200
- ICM R2,B'1111',0(R2) IS IT THERE ? @VA08954 00208300
- BZ NMONUMSG DOES NOT EXIST - EXIT @VA08954 00208400
- CLC MONUSER(8),0(R1) IS RECEIVER EQUAL TO USER? @VA08954 00208500
- BE NMONUMSG YES - BYPASS MSG WRITE @VA08954 00208600
- DROP R2 @VA08954 00208700
- B SCANLEN AND DETERMINE ITS LENGTH @V50A2B5 00209000
- MONUMSG EQU * @V50A2B5 00210000
- LR R3,R0 SAVE INFORMATION @V50A2B5 00211000
- LR R4,R1 NAMELY REGISTERS 0 AND 1 @V50A2B5 00212000
- L R1,=A(DMKPRGMC) GET MONCOM ADDRESS @V50A2B5 00213000
- ICM R1,B'1111',0(R1) TEST FOR EXISTENCE @V50A2B5 00214000
- BZ NMONUMSG DOES NOT EXIST, EXIT @V50A2B5 00215000
- USING MONCOM,R1 @V50A2B5 00216000
- LA R1,MONUSER GET USER IN MONCOM @V50A2B5 00217000
- DROP R1 @V50A2B5 00218000
- SCANLEN LR R2,R1 REG 1 WILL BE USED LATER @V50A2B5 00219000
- LA R5,8 ACQUIRE LENGTH @V50A2B5 00220000
- XBLK CLI 0(R2),C' ' SEE IF BLANK @V50A2B5 00221000
- BE YEND YES, THE END @V50A2B5 00222000
- LA R2,1(R2) BUMP TO THE NEXT CHARACTER @V50A2B5 00223000
- BCT R5,XBLK DECREMENT COUNTER @V50A2B5 00224000
- YEND SR R2,R1 COMPUTE LENGTH @V50A2B5 00225000
- LR R0,R2 GIVE TO SCNAU CORRECTLY @V50A2B5 00226000
- CALL DMKSCNAU SEE IF FELLOW IS LOGGED ON @V50A2B5 00227000
- BNZ NMONUMSG NO, HE IS NOT @V50A2B5 00228000
- C R1,ASYSVM SEE IF THIS IS THE SYSTEM @V50A2B5 00229000
- BE NMONUMSG YES, NOT GOOD ENOUGH @V50A2B5 00230000
- C R1,ASYSOP SEE IF THIS IS THE OPERATOR @V50A2B5 00231000
- BE NMONUMSG YES, NOT GOOD ENOUGH @V50A2B5 00232000
- LR R5,R11 SAVE VMBLOK OF CURRENT USER @V50A2B5 00233000
- SWTCHVM STAY SWITCH USERS @VA07887 00234000
- LR R0,R3 NOW WE CAN RESTORE REGISTER 0 @V50A2B5 00237000
- LR R1,R4 AND REGISTER ONE @V50A2B5 00238000
- CALL DMKQCNWT,PARM=NORET PUT OUT A MESSAGE @V50A2B5 00239000
- LR R1,R5 SETUP R1 FOR SWITCH @VA07887 00240000
- SWTCHVM SWITCH BACK USERS @VA07887 00241000
- NMONUMSG EQU * @V50A2B5 00243000
- LR R0,R3 RESTORE REGISTER 0 @V50A2B5 00244000
- LR R1,R4 AND REGISTER 1 @V50A2B5 00245000
- BR R6 RETURN TO CALLER @V50A2B5 00246000
- EJECT 00247000
- *. 00248000
- * 00249000
- * ENTRY POINT - 00250000
- * 00251000
- * DMKMIAMU - ENTRY POINT TO SEND OUT MESSAGE TO USER IN 00252000
- * MONCOM AREA. 00253000
- * 00254000
- * ENTRY CONDITIONS - 00255000
- * 00256000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00257000
- * GPR13 - ENTRY POINT ADDRESS 00258000
- * 00259000
- * EXIT CONDITIONS - 00260000
- * 00261000
- * NONE 00262000
- * 00263000
- * EXTERNAL REFERENCES/EXTERNAL ROUTINES - 00264000
- * 00265000
- * DMKSYSUR - NAME OF DEFAULT USER OF MONITOR 00266000
- * DMKQCNWT - ROUTINE TO WRITE OUT MESSAGE 00267000
- * 00268000
- * REGISTER USAGE - 00269000
- * 00270000
- * GPR6 - LINKAGE TO MESSAGE ROUTINE 00271000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00272000
- * GPR12 - ADDRESSABILITY 00273000
- * GPR13 - SAVE AREA 00274000
- * 00275000
- * OPERATION - 00276000
- * 00277000
- * THIS ROUTINE SIMPLY SENDS OUT A MESSAGE TO THE 00278000
- * MONITOR DEFAULT USER WHOSE NAME IS FOUND IN DMKSYS. 00279000
- * A GENERAL ROUTINE DOES THIS, THE IS AN ENTRY POINT 00280000
- * FOR OTHER ROUTINES. 00281000
- * 00282000
- *. 00283000
- SPACE 1 00284000
- DMKMIAMU RELOC @V50A2B5 00285000
- BAL R6,MONOMSG PUT OUT THE MESSAGE @V50A2B5 00286000
- L R6,=A(DMKSYSUR) IF HE IS IN FACT THE OPERATOR @V50A2B5 00287000
- L R7,ASYSOP BY COMPARING TO THE OPERATOR'S @V50A2B5 00288000
- LA R7,VMUSER-VMBLOK(R7) REAL NAME @V50A2B5 00289000
- CLC 0(8,R6),0(R7) ROUTINE WOULD SKIP IT @V50A2B5 00290000
- BNE EXITS ELSE WE ARE DONE @V50A2B5 00291000
- CALL DMKQCNWT,PARM=NORET+OPERATOR SO SEND OUT MSG @V50A2B5 00292000
- B EXITS AND EXIT @V50A2B5 00293000
- EJECT 00294000
- *. 00295000
- * 00296000
- * ENTRY POINT - 00297000
- * 00298000
- * DMKMIAKC - ROUTINE TO ISSUE 'MONITOR CLOSE' COMMAND 00299000
- * INTERNALLY. 00300000
- * 00301000
- * ENTRY CONDITIONS - 00302000
- * 00303000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00304000
- * GPR13 - SAVE AREA 00305000
- * 00306000
- * EXIT CONDITIONS - 00307000
- * 00308000
- * NONE 00309000
- * 00310000
- * EXTERNAL REFERENCES - 00311000
- * 00312000
- * DMKFREE - TO ACQUIRE STORAGE FOR A COMMAND BUFFER 00313000
- * DMKFRET - TO RELEASE THE COMMAND BUFFER 00314000
- * DMKMCCCL - TO EXECUTE THE COMMAND 00315000
- * 00316000
- * REGISTER USAGE - 00317000
- * 00318000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00319000
- * GPR12 - ADDRESSABILITY 00320000
- * GPR13 - SAVE AREA 00321000
- * 00322000
- * OPERATION - 00323000
- * THIS ROUTINE IS BUILDS A COMMAND BUFFER FOR DMKMCCCL 00324000
- * WHICH EXECUTES THE 'MONITOR CLOSE' COMMAND. 00325000
- * 00326000
- *. 00327000
- SPACE 1 00328000
- DMKMIAKC RELOC @V50A2B5 00329000
- LA R0,18 ACQUIRE 18 DOUBLE WORDS @V50A2B5 00330000
- CALL DMKFREE TO BUILD A COMMAND BUFFER @V50A2B5 00331000
- MVC 0(CLSMSGSZ,R1),CLSMSG PUT IN THE COMMAND @V50A2B5 00332000
- LR R9,R1 IT WILL BE PASSED IN REGISTER 9 @V50A2B5 00333000
- ST R1,X'88'(R9) PUT IN BUFFER FIELDS @V50A2B5 00334000
- LA R5,CLSMSGSZ SUCH AS THE LENGTH @V50A2B5 00335000
- BCTR R5,R0 MINUS ONE @V50A2B5 00336000
- ST R5,X'8C'(R9) STORE THAT @V50A2B5 00337000
- CALL DMKMCCCL NOW, DO THE EXECUTION @V50A2B5 00338000
- LA R0,18 TAKE THOSE 18 DOUBLE WORDS @V50A2B5 00339000
- CALL DMKFRET AND FRET THEM @V50A2B5 00340000
- B EXITS THEN EXIT @V50A2B5 00341000
- EJECT 00342000
- *. 00343000
- * 00344000
- * ENTRY POINT - DMKMIADL 00345000
- * 00346000
- * ENTRY CONDITIONS - 00347000
- * 00348000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00349000
- * GPR13 - SAVE AREA 00350000
- * 00351000
- * EXIT CONDITIONS - 00352000
- * 00353000
- * NONE 00354000
- * 00355000
- * EXTERNAL REFERENCES - 00356000
- * 00357000
- * DMKFREE - TO ACQUIRE STORAGE FOR MESSAGES 00358000
- * DMKFRET - TO FREE UP THE MESSAGE AREA 00359000
- * DMKMNIDS - TO DISPLAY THE MONITOR INFORMATION 00360000
- * DMKPRGC8 - ENABLE CLASSES 00361000
- * DMKPRGMC - ADDRESS OF MONCOM AREA 00362000
- * DMKQCNWT - ROUTINE TO SEND OUT MESSAGES 00363000
- * DMKSYSEN - MONITOR DEFAULT ENABLE CLASSES 00364000
- * 00365000
- * REGISTER USAGE - 00366000
- * 00367000
- * GPR8 - ROUTINE LINKAGE 00368000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00369000
- * GPR12 - ADDRESSABILITY 00370000
- * GPR13 - SAVE AREA 00371000
- * 00372000
- * OPERATION - 00373000
- * 00374000
- * THIS CODE IS ESSENTIALLY THAT FOUND IN DMKMCC FOR MONITOR 00375000
- * DISPLAY FUNCTION WITH SOME VARIATIONS. IT WAS MOVED TO SAVE 00376000
- * SPACE FOR OTHER CODE. ESSENTIALLY, A BUFFER FIOR THE 00377000
- * DISPLAY OUTPUT IS OBTAINED. A LINE IS WRITTEN OUT FOR THE 00378000
- * STATUS FO THE INTERNAL TRACE TABLE, AND A LINE FOR EACH 00379000
- * ENABLE CLASS SPECIFYING ITS STATUS. A MESSAGE IS ALSO PUT OUT 00380000
- * INDICATING WHETHER SPOOL OR TAPE MONITORING IS ACTIVE. 00381000
- * OTHER SPOOL MONITOR INFORMATION IS GIVEN BY DMKMNIDS. 00382000
- * 00383000
- *. 00384000
- SPACE 1 00385000
- USING SAVEAREA,R13 @V50A2B5 00386000
- DMKMIADL RELOC @V50A2B5 00387000
- MVC SAVEWRK1(4),F5 KEEP THE DEFAULT (SPOOL) HERE @V50A2B5 00388000
- CALL DMKSCNFD ACQUIRE THE LAST PARAMETER @V50A2B5 00389000
- BNZ PROCALL NOTHING, GO TO DEFAULT @V50A2B5 00390000
- ST R0,SAVEWRK1 THIS VALUE WILL INDICATE @V50A2B5 00391000
- CL R0,F3 IF IT IS IN FACT @V50A2B5 00392000
- BNE TEST4 MON ALL THAT IS WANTED @V50A2B5 00393000
- CLC 0(3,R1),=C'ALL' MAKE SURE IT IS ALL @V50A2B5 00394000
- BE PROCALL AND SHIP TO THE PROPER SECTION @V50A2B5 00395000
- B MSG002 ELSE WE HAVE AN ERROR @V50A2B5 00396000
- TEST4 CL R0,F4 SEE IF THERE ARE FOUR CHARACTERS@V50A2B5 00397000
- BNE TEST5 IF FIVE, TRY FIVE @V50A2B5 00398000
- CLC 0(4,R1),=C'TAPE' SEE IF TAPE WAS SPECIFIED @V50A2B5 00399000
- BE PROCALL AND CONTINUE ON IF SO @V50A2B5 00400000
- B MSG002 ELSE WE HAVE AN ERROR @V50A2B5 00401000
- TEST5 CL R0,F5 AND IF IN FACT IT IS FIVE @V50A2B5 00402000
- BNE MSG002 ELSE WE HAVE AN ERROR @V50A2B5 00403000
- CLC 0(5,R1),=C'SPOOL' MAKE SURE IT IS SPOOL @V50A2B5 00404000
- BNE MSG002 ELSE WE HAVE AN ERROR @V50A2B5 00405000
- PROCALL LA R0,3 3 DOUBLEWORDS FOR DISPLAY REPLY @V2B2638 00406000
- CALL DMKFREE GET IT PLEASE @V2B2638 00407000
- BAL R8,STATMSG PUT OUT THE STATUS MESSAGE @V50A2B5 00408000
- L R3,SAVEWRK1 SEE WHAT KIND OF DISPLAY WANTED @V50A2B5 00409000
- C R3,F5 IS THIS SPOOL @V50A2B5 00410000
- BE PROCSPL PUT IN NO MESSAGE @V50A2B5 00411000
- LR R3,R1 PREPARE TO DO REGULAR CODE @V50A2B5 00412000
- LA R0,L'DISPMSG1 LENGTH OF DISPLAY MSG HEADER @V2B2638 00413000
- LA R1,DISPMSG1 ADDRESS OF THE MESSAGE @V2B2638 00414000
- CALL DMKQCNWT,PARM=NORET WRITE HEADER @V2B2638 00415000
- LR R1,R3 RESTORE REGISTER @V50A2B5 00416000
- LA R7,MONCLTBL BEGINNING OF CLASS KEYWORD TABLE@V2B2638 00417000
- LA R3,MONTBENO GET NO OF ENTRIES TO DO @V2B2638 00418000
- LA R4,CLASNOS LIST OF CLASS NUMBERS @V2B2638 00419000
- L R6,=A(DMKPRGC8) GET CURRENT CR8 MASK @V2B2638 00420000
- L R6,0(R6) FROM DMKPRG FIELD @V2B2638 00421000
- SLL R6,15 SHIFT MASK BITS DOWN TO LEFT @V2B2638 00422000
- BAL R8,PARSEEN DISPLAY THE ENABLE CLASSES @V50A2B5 00423000
- B RESUMETA BRANCH TO RESUME LOGIC @V50A2B5 00424000
- SPACE 1 00425000
- PARSEEN EQU * @V50A2B5 00426000
- IMPTEST MVC 0(2,R1),0(R4) MOVE CLASS NUMBER INTO REPLY @V2B2638 00427000
- MVC 2(2,R1),BLANKS 2 BLANKS FOR SEPARATORS @V2B2638 00428000
- MVC 4(8,R1),0(R7) MOVE KEYWORD INTO REPLY @V2B2638 00429000
- MVI 12(R1),X'40' BLANK SEPARATOR @V2B2638 00430000
- SLA R6,1 SHIFT OUT A CLASS ENABLED BIT @V2B2638 00431000
- BO OVERFLOW BIT MUST HAVE BEEN SET @V2B2638 00432000
- MVC 13(8,R1),DISAB MOVE 'DISABLED' INTO REPLY @V2B2638 00433000
- B REPLY @V2B2638 00434000
- OVERFLOW MVC 13(8,R1),ENAB MOVE 'ENABLED' INTO REPLY @V2B2638 00435000
- REPLY CLI 0(R7),C' ' IS THIS CLASS IMPLEMENTED? @V2B2638 00436000
- BE SKIPMSG NOPE, SKIP THE DISPLAY THEN @V2B2638 00437000
- LA R0,LENMSG MESSAGE LENGTH @V2B2638 00438000
- CALL DMKQCNWT,PARM=NORET OUTPUT REPLY LINE @V2B2638 00439000
- SKIPMSG LA R4,2(R4) POINT TO NEXT CLASS NUMBER @V2B2638 00440000
- LA R7,9(R7) POINT TO NEXT MONCLTBL ENTRY @V2B2638 00441000
- BCT R3,IMPTEST ANY MORE FIELDS TO TEST? @V2B2638 00442000
- BR R8 @V50A2B5 00443000
- SPACE 1 @V50A2B5 00444000
- RESUMETA EQU * @V50A2B5 00445000
- MVC 0(13,R1),=C'-- CPTRACE ' INTERNAL TRACE @V2B2638 00446000
- L R2,TRACEFLG CHECK THE INTERNAL TRACE FLAGS @V2B2638 00447000
- LTR R2,R2 ARE ANY FLAGS ON? @V2B2638 00448000
- BZ CPTDISA NOPE, CPTRACE IS DISABLED @V2B2638 00449000
- MVC 13(8,R1),ENAB YUP, SOMETHING IS ENABLED @V2B2638 00450000
- B WTCPT GO WRITE IT OUT @V2B2638 00451000
- SPACE 1 00452000
- CPTDISA MVC 13(8,R1),DISAB TRACE IS DISAB, NOTHING ACTIVE @V2B2638 00453000
- WTCPT CALL DMKQCNWT,PARM=NORET @V2B2638 00454000
- CLC SAVEWRK1(4),F4 SEE IF SPOOL INFO IS ASKED @V50A2B5 00455000
- BE EXITDISP NO, SO EXIT DISPLAY @V50A2B5 00456000
- PROCSPL CALL DMKMNIDS GATHER THE MONITOR INFORMATION @V50A2B5 00457000
- LR R3,R1 KEEP THE VALUE IN REGISTER 3 @V50A2B5 00458000
- LA R1,DISPMSG1 ADDRESS OF THE ENABLE HEADER @V50A2B5 00459000
- LA R0,L'DISPMSG1 LENGTH OF THE ENABLE HEADER @V50A2B5 00460000
- CALL DMKQCNWT,PARM=NORET PUT OUT THE MESSAGE @V50A2B5 00461000
- LR R1,R3 RESTORE REGISTER 1 @V50A2B5 00462000
- LA R7,MONCLTBL BEGINNING OF CLASS KEYWORD @V50A2B5 00463000
- LA R3,MONTBENO GET NUMBER OF ENTRIES TO DO @V50A2B5 00464000
- LA R4,CLASNOS LIST OF CLASS NUMBERS @V50A2B5 00465000
- L R6,=A(DMKPRGC8) THE ESTABLISHED ENABLE CLASSES @V50A2B5 00466000
- L R6,0(R6) GET THEM TO WORK WITH THEM @V50A2B5 00467000
- SLL R6,15 SHIFT THEM OVER PROPERLY @V50A2B5 00468000
- LTR R6,R6 SEE IF ANY EXIST @V50A2B5 00469000
- BNZ DOPARS YES, USE THESE THEN @V50A2B5 00470000
- L R6,=A(DMKSYSEN) ELSE USE THE DEFAULTS @V50A2B5 00471000
- MVC TIMVAL(4),F0 INITIALIZE A WORK AREA @V50A2B5 00472000
- MVC TIMVAL+2(2),0(R6) AND PUT THE DEFAULTS THERE @V50A2B5 00473000
- L R6,TIMVAL NOW PUT PLAINLY INTO REG6 @V50A2B5 00474000
- SLL R6,15 AND SHIFT ACCORDINGLY @V50A2B5 00475000
- DOPARS BAL R8,PARSEEN AND SEND OUT CLASS MESSAGES @V50A2B5 00476000
- EXITDISP EQU * @V50A2B5 00477000
- LA R0,3 MESSAGE BUFFER SIZE @V2B2638 00478000
- CALL DMKFRET GIVE IT BACK @V2B2638 00479000
- EXIT ALL DONE @V2B2638 00480000
- SPACE 1 00481000
- STATMSG EQU * @V50A2B5 00482000
- L R6,=A(DMKPRGMC) GET THE MONCOM AREA @V50A2B5 00483000
- ICM R6,B'1111',0(R6) AND FIRST SEE IF MONITOR IS ON @V50A2B5 00484000
- BNE DETERM YES, DETERMINE IF DISK OR TAPE @V50A2B5 00485000
- MVC 0(18,R1),=C'MONITOR NOT ACTIVE' NOT ON MSG @V50A2B5 00486000
- LA R0,18 LENGTH OF THIS MESSAGE @V50A2B5 00487000
- B SENDMSG GO SEND IT @V50A2B5 00488000
- DETERM EQU * @V50A2B5 00489000
- USING MONCOM,R6 @V50A2B5 00490000
- LA R0,23 LENGTH OF THIS MESSAGE @V50A2B5 00491000
- MVC 0(23,R1),=C'TAPE MONITORING ACTIVE' MESSAGE @V50A2B5 00492000
- TM MONFLAG3,SPOOLED SEE IF SPOOLING IS ON @V50A2B5 00493000
- DROP R6 @V50A2B5 00494000
- BNO ASSUMTAP NO, SO USE TAPE @V50A2B5 00495000
- MVC 0(5,R1),=C'SPOOL' ELSE DO IT FOR SPOOL @V50A2B5 00496000
- ASSUMTAP EQU * @V50A2B5 00497000
- SENDMSG CALL DMKQCNWT,PARM=NORET PUT OUT THE MESSAGE @V50A2B5 00498000
- BR R8 EXIT OF SUBROUTNE @V50A2B5 00499000
- EJECT 00500000
- *. 00501000
- * 00502000
- * ENTRY POINT - DMKMIAWO 00503000
- * 00504000
- * ENTRY CONDITIONS - 00505000
- * 00506000
- * GPR1 - REAL ADDRESS OF PAGE TO BE WRITTEN 00507000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00508000
- * GPR13 - ADDRESS OF SAVE AREA 00509000
- * 00510000
- * EXIT CONDITIONS - 00511000
- * 00512000
- * REG1 = 0 NORMAL RETURN 00513000
- * = 1 NO MORE DASD 00514000
- * = 2 WRITE COMPLETE, AND MONITOR SHUTDOWN EXECUTED 00515000
- * = 3 WRITE ERROR 00516000
- * 00517000
- * EXTERNAL REFERENCES - 00518000
- * 00519000
- * DMKCKSPL - SPOOL FILE CHECKPOINT ROUTINE 00520000
- * DMKMNISH - MONITOR SHUTDOWN ROUTINE 00521000
- * DMKPGTSG - ROUTINE TO ACQUIRE DASD SLOTS 00522000
- * DMKPRGC8 - MONITOR ENABLE CLASSES 00523000
- * DMKPRGMC - ADDRESS OF MONCOM AREA 00524000
- * DMKQCNWT - ROUTINE TO WRITE OUT MESSAGES 00525000
- * DMKRPAPT - ADDRESS OF WRITE TO DASD ROUTINE 00526000
- * 00527000
- * REGISTER USAGE - 00528000
- * 00529000
- * GPR4 - REAL ADDRESS OF PAGE TO BE WRITTEN OUT 00530000
- * GPR7 - ADDRESS SFBLOK 00531000
- * GPR10 - ADDRESS OF MONCOM AREA 00532000
- * GPR11 - ADDRESS OF USER VMBLOK 00533000
- * GPR12 - ADDRESSABILITY 00534000
- * GPR13 - SAVE AREA 00535000
- * 00536000
- * OPERATION - 00537000
- * 00538000
- * A CHECK IF FIRST MADE FOR THE IO TRAP. IF ON, THE FINAL 00539000
- * PAGE WRITE OUT TAKES PLACE IN DMKMIACC. OTHERWISE, A NEW 00540000
- * DASD SLOT IS OBTAINED AND STORED. THEN THE GIVEN PAGE IS 00541000
- * USED TO LOCATE THE CORRESPONDING VIRTUAL PAGE SO THAT IT MAY 00542000
- * BE WRITTEN OUT TO DASD. THE SPOOL FILE IS THEN CHECKPOINTED. 00543000
- * THEN A CHECK IS MADE TO SEE IF THE NEXT PAGE IS A LAST PAGE OF 00544000
- * SPOOL FILE, NOT WRITTEN OUT YET, BUT WHOSE LENGTH FIELD MUST 00545000
- * STILL BE FILLED IN. IF SO, THE ROUTINE IN DMKMIACC HANDLES IT 00546000
- * IN CASE OF DASD ERROR, THE CURRENT SPOOL FILE IS PUT ON THE 00547000
- * READER CHAIN, AND MONITOR IS SUSPENDED AND EVENTUALLY SHUT OFF 00548000
- * 00549000
- *. 00550000
- SPACE 2 00551000
- DMKMIAWO RELOC @V50A2B5 00552000
- SR R2,R2 CLEAR FLAGS @VA07979 00553300
- ST R2,SAVER1 RETURN CODE @VA07979 00553600
- ST R2,SAVEWRK3 DASD WRITE INDICATORS @VA07979 00553900
- L R10,=A(DMKPRGMC) OBTAIN THE ADDRESS OF @V50A2B5 00554000
- L R10,0(R10) THE MONCOM BLOCK @V50A2B5 00555000
- USING MONCOM,R10 @V50A2B5 00556000
- USING SPLINK,R4 @VA07888 00559200
- USING SFBLOK,R7 @VA07888 00559400
- L R7,MONSFB SFB ADDR IN MONCOM @VA07888 00559600
- LR R4,R1 USE REGISTER 4 FOR PAGE @V50A2B5 00560000
- LA R4,0(R4) NULL OUT HIGH BYTE @V50A2B5 00561000
- TM 9(R4),TRAP IS THIS THE LAST IO @V50A2B5 00562000
- BO CONTCL YES, CLOSE ON THIS @V50A2B5 00563000
- L R3,SFBRECNO ADD 1 TO COUNT OF BUFFERS @VA07979 00563050
- LA R3,1(R3) IN SPOOL FILE @VA07979 00563100
- ST R3,SFBRECNO @VA07979 00563150
- MVC 4088(2,R4),SFBFILID IF SYSTEM CRASHES THESE @VA07979 00563200
- MVC 4090(6,R4),SFBTIME VALIDATE MONITOR DASD SLOT @VA07979 00563250
- MVC SPRECNUM,F1 1 'RECORD' IN MONITOR BUFF @VA07979 00565000
- LA R9,10 SET UP ERROR RETRY COUNT IN CASE @VA07979 00566550
- WRLOOP EQU * OF PROBLEMS DURING DASD WRITE @VA07979 00566600
- MVC MONDAS(4),MONDASA GET PROPER DASD PAGE @V50A2B5 00567000
- CALL DMKPGTSG AND OBTAIN ONE FOR NEXT TIME @V50A2B5 00568000
- LTR R1,R1 THAT IS, IF DASD EXISTS @V50A2B5 00569000
- BNZ LAB1 ONE DOES EXIST @V50A2B5 00570000
- MVC SPNXTPAG(4),SFBSTART FWD PTR BACK TO START TO @VA07888 00570200
- * INDICATE TO DMKCKS THAT ITS THE LAST SLOT IN FILE 00570400
- OI MONFLAG3,EXHAUST TELL USER IT IS EXHAUSTED @V50A2B5 00571000
- B LAB2 @VA07888 00572200
- LAB1 ST R1,SPNXTPAG FWD PTR TO NXT SLOT @VA07888 00572400
- MVC SFBDIST(4),SFBDIST+4 NEW PREVIOUS LAST @VA07979 00572450
- ST R1,SFBDIST+4 NEW LAST FOR CLEAN UP IF ERROR @VA07979 00572500
- ST R1,SFBLAST NEW LAST FOR SFB @VA07979 00572550
- LAB2 ST R1,MONDASA NEW NEXT SLOT IN MONCOM @VA07888 00572600
- MVC SPPREPAG,MONDASB BACKWARD POINTER @VA07888 00572800
- L R0,MONDAS GET OUR DASD BUFFER @V50A2B5 00586000
- LA R5,MONBUF1 AND THE ADDRESS OF 1ST LOCAT. @V50A2B5 00587000
- COMPR C R4,0(R5) SEE IF PAGES MATCH @V50A2B5 00588000
- BE GETVIRT YES, USE CORRESPONDING VIRT @V50A2B5 00589000
- LA R5,8(R5) GO TO NEXT ENTRY @V50A2B5 00590000
- B COMPR FOR ONE SHOULD MATCH @V50A2B5 00591000
- GETVIRT L R1,4(R5) VIRTUAL PAGE OBTAINED HERE @V50A2B5 00592000
- CALL DMKRPAPT,PARM=SYSTEM DO THE ACTUAL WRITE @V50A2B5 00593000
- BZ NOERROR @VA07979 00594040
- OI SAVEWRK3,MDAER FLAG ERROR FOR LATER SFB CLEANUP @VA07979 00594080
- TM MONFLAG3,EXHAUST DID WE RUN OUT OF DASD SLOTS @VA07979 00594120
- BO EXHCLOSE YES, STOP MONITOR AS IN CLOSE @VA07979 00594160
- BCT R9,WRLOOP TRY WRITE AGAIN @VA07979 00594200
- * PERM DASD ERROR WRITING SPOOL FILE BUFFER TO DASD. CLOSE OR PURGE 00594240
- CLC SFBPNT,ZEROES DID ERROR OCCUR WITH FIRST WRITE @VA07979 00594280
- BE PURGESFB CLEAN UP EASY, JUST PURGE SFB @VA07979 00594320
- LA R9,1 SET UP TO JOIN COMMON ERROR @VA07979 00594360
- B PERMERR RECOVERY ROUTINE @VA07979 00594400
- SPACE 1 00594440
- NOERROR OI SAVEWRK3,MNWROK WRITE OK (IN CASE OF ERR RETRY)@VA07979 00594480
- TM SAVEWRK3,MDAER ANY ERRORS AT ALL DURING RETRY @VA07979 00594520
- BZ NOBUFUP NO CLEAN UP NECESSARY @VA07979 00594560
- NI SAVEWRK3,X'FF'-MDAER YES, FIRST CLEAR ERROR FLAG@VA07979 00594600
- CLC SFBPNT,ZEROES WAS ERROR DURING FIRST BUFFER @VA07979 00594640
- BNE BUFUPDT NO, THE MORE USUAL CASE @VA07979 00594680
- MVC SFBSTART,MONDAS YES CORRECT SFB FWD POINTER @VA07979 00594720
- B NOBUFUP @VA07979 00594760
- BUFUPDT BAL R6,UPDTPAG CORRECT FWD PTR IN PREVIOUS SLOT @VA07979 00594800
- NOBUFUP TM MONFLAG3,EXHAUST OUT OF DASD BEFORE WRITE @VA07979 00594840
- BO EXHCLOSE YES, STOP MON AS IN CLOSE @VA07979 00594880
- XC 4088(8,R4),4088(R4) NULL OUT THIS LINE @V50A2B5 00595000
- XC 0(20,R4),0(R4) REPREPARE THIS BUFFER @V50A2B5 00596000
- MVC SFBPNT(4),MONDAS INDICATE LAST PAGE WRITTEN @V50A2B5 00597000
- OI 8(R4),MONBUFAV TELL THE WORLD IT'S AVAILABLE @V50A2B5 00598000
- MVC MONDASB(4),MONDAS KEEP AROUND FOR NEXT BUFFER @V50A2B5 00599000
- CLC SFBPNT(4),SFBSTART SEE IF THIS IS THE FIRST PAGE@V50A2B5 00600000
- BNE NOTCKS NO, IT IS NOT @V50A2B5 00601000
- OI SFBFLAG,SFBINUSE TURN ON INUSE FLAG @VA12826 00601500
- CALL DMKCKSPL,PARM=OPNSFB+RDRCHN+ADDSFB CHKPT @V50A2B5 00602000
- NI SFBFLAG,X'FF'-SFBINUSE TURN INUSE FLAG OFF @VA12826 00602500
- NOTCKS EQU * @V50A2B5 00603000
- SPACE 1 00604000
- LA R5,8(R5) BUMP TO NEXT ENTRY @V50A2B5 00605000
- CLI 0(R5),X'FF' DID IT WRAP HERE @V50A2B5 00606000
- BNE *+8 NO, DO THIS SLOT @V50A2B5 00607000
- LA R5,MONBUF1 YES, USE THE FIRST PAGE @V50A2B5 00608000
- L R5,0(R5) GET THE PAGE ADDRESS @V50A2B5 00609000
- TM 9(R5),UNFIN IS THIS UNFINISHED BUSINESS @V50A2B5 00610000
- BZ EXITS NO, EXIT NORMALLY @VA07979 00611500
- LR R4,R5 USE IT AS REGISTER 4 @V50A2B5 00612000
- B CONTCL AND CLOSE ON THIS @V50A2B5 00613000
- SPACE 1 00629000
- EXHLEAVE EQU * @V50A2B5 00630000
- SR R0,R0 USE SOMETHING TO NULL OUT @V50A2B5 00631000
- L R1,=A(DMKPRGC8) THE ENABLE CLASSES @V50A2B5 00632000
- ST R0,0(R1) NULLING DONE @V50A2B5 00633000
- MVC CPCREG8(4),F0 NULL OUT FOR CTRL REG 8 @V50A2B5 00634000
- L R8,PREFIXB ALSO IN THE OTHER PREFIX @V50A2B5 00635000
- MVC CPCREG8-IPLPSW(4,R8),ZEROES NULL OUT @V50A2B5 00636000
- LCTL C8,C8,CPCREG8 AND NULL CTRL REG 8 @V50A2B5 00637000
- CLC SAVER1(4),F3 HERE AFTER PERM DASD ERROR? @VA07888 00637100
- BNE NODASMS NO, NEED OUT OF DASD MSG @VA07888 00637200
- LA R1,WRIDASMG PERM DASD ERROR MSG @VA07888 00637300
- LA R0,L'WRIDASMG @VA07888 00637400
- B SENDMG @VA07888 00637500
- NODASMS EQU * @VA07888 00637600
- LA R1,NODASMSG LENGTH OF WARNING MESSAGE @V50A2B5 00638000
- LA R0,L'NODASMSG ADDRESS OF WARNING MESSAGE @V50A2B5 00639000
- SENDMG CALL DMKQCNWT,PARM=OPERATOR+NORET SEND WARN MESSAGE @V50A2B5 00640000
- BAL R6,MONUMSG LET THE USER KNOW @V50A2B5 00641000
- BAL R6,MONOMSG ALSO THE RECEIVER @V50A2B5 00642000
- CLC SAVER1(4),F0 IF ERROR OR NO SLOTS @VA07979 00642200
- BNE ESCAPE NO TRAILER JUST CLEAN UP @VA07979 00642400
- LR R9,R10 MNISH NEEDS A(MONCOM) IN R9 @VA07979 00642600
- CALL DMKMNISH AND SHUT OFF THE MONITOR @V50A2B5 00643000
- B EXITCL AND EXIT AS IF CLOSED @V50A2B5 00644000
- SPACE 1 00645000
- CLSRETRY CALL DMKPGTSG GET NEW DASD SLOT @VA07979 00658010
- LTR R1,R1 DID WE GET A SLOT OK @VA07979 00658020
- BNZ CLSWR YES TRY AND WRITE INTO IT @VA07979 00658030
- EXHCLOSE MVC SAVER1(4),F1 RETURN CODE AND MSG FLAG @VA07979 00658040
- TM SAVEWRK3,MNWROK WAS WRITE SUCCESSFUL @VA07979 00658050
- BZ DECRCNT NO, BACK UP COUNT OF SLOTS IN FILE@VA07979 00658060
- B IOGOOD YES, NORMAL CLOSE FROM NOW ON @VA07979 00658070
- SPACE 1 00658080
- PERMERR CLC SFBPNT,ZEROES ANY THING IN FILE AT ALL @VA07979 00658090
- BE PURGESFB NO, PURGE FILE @VA07979 00658100
- MVC SAVER1(4),F3 RETURN CODE & MSG FLAG FOR ERROR @VA07979 00658110
- MVC SFBLAST,SFBPNT THIS INDICATES EOF @VA07979 00658120
- DECRCNT L R2,SFBRECNO SUB 1 FROM COUNT OF BUFFERS @VA07979 00658130
- SL R2,F1 WRITTEN TO THIS SPOOL FILE 'CAUSE @VA07979 00658140
- ST R2,SFBRECNO THE LAST WRITE FAILED @VA07979 00658150
- B IOGOOD @VA07979 00658160
- SPACE 1 00658170
- CLSWR MVC SFBDIST(4),SFBDIST+4 ADJUST SAFETY POINTERS @VA07979 00658180
- ST R1,SFBLAST NEW LAST SLOT ON SFB CHAIN @VA07979 00658190
- ST R1,SFBDIST+4 NEW LAST SLOT OBTAINED @VA07979 00658200
- ST R1,MONDAS SLOT FOR NEXT I/O @VA07979 00658210
- CLC SFBPNT,ZEROES ANY BUFFERS WRITTEN YET @VA07979 00658220
- BNE SETUPWR NO, NORMAL CASE... MULTI BUFF @VA07979 00658230
- ST R1,SFBSTART SPECIAL 1 BUFF FILE @VA07979 00658240
- ST R1,SPNXTPAG POINTS TO ITSELF @VA07979 00658250
- ST R1,SFBDIST ALSO LAST @VA07979 00658260
- SPACE 1 00658270
- SETUPWR LR R0,R1 READY FOR WRITE @VA07979 00658280
- L R1,4(R5) VIRTUAL ADDR FROM MONCOM @VA07979 00658290
- CALL DMKRPAPT,PARM=SYSTEM TRY AND WRITE IT @VA07979 00658300
- BNZ CLSERR OUT OF LUCK, JOIN ERROR CODE @VA07979 00658310
- CLC SFBSTART,SFBLAST IS IT A 1 PAGE FILE @VA07979 00658320
- BE IOGOOD CLEANUP SIMPLIFIED @VA07979 00658330
- BAL R6,UPDTPAG MULTI BUFF FILE NEEDS MORE @VA07979 00658340
- B IOGOOD CLEAN UP @VA07979 00658350
- SPACE 1 00658360
- UPDTPAG CALL DMKPGTVG GET SLOT TO READ INTO @VA07979 00658370
- L R0,SPPREPAG PREV SUCCESSFULLY WRITTEN SLOT @VA07979 00658380
- CALL DMKRPAGT,PARM=SYSTEM+BRING BRING IT BACK IN @VA07979 00658390
- LR R4,R2 ADDRESS OF BUFFER @VA07979 00658400
- MVC SPNXTPAG,MONDAS ADJUST ITS FWD PTR TO NEW SLOT @VA07979 00658410
- CALL DMKRPAPT,PARM=SYSTEM AND WRITE IT BACK @VA07979 00658420
- SR R0,R0 @VA07979 00658430
- CALL DMKRPAGT,PARM=SYSTEM RELEASE SLOT @VA07979 00658440
- CALL DMKPGTVR RELEASE VIRTUAL SLOT @VA07979 00658450
- BR R6 @VA07979 00658460
- SPACE 1 00658470
- EJECT 00659100
- EJECT 00826000
- *. 00827000
- * 00828000
- * ENTRY POINT - 00829000
- * 00830000
- * DMKMIAR0 00831000
- * 00832000
- * ENTRY CONDITIONS - 00833000
- * 00834000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00835000
- * GPR13 - SAVE AREA 00836000
- * 00837000
- * EXIT CONDITIONS - 00838000
- * 00839000
- * REG1 = 0 NORMAL RETURN 00840000
- * = 1 NO MORE DASD 00841000
- * 00842000
- * EXTERNAL REFERENCES - 00843000
- * 00844000
- * DMKFREE - ROUTINE TO ACQUIRE STORAGE FOR SFBLOK 00845000
- * DMKFRET - ROUTINE TO RETURN SFBLOK STORAGE 00846000
- * DMKPGTSG - ROUTINE TO OBTAIN A DASD SLOT 00847000
- * DMKPRGMC - ADDRESS OF MONITOR COMMUNICATIONS AREA 00848000
- * DMKRSPID - USED TO OBTAIN A SPOOL FILE ID 00849000
- * DMKSYSCL - DEFAULT CLASS OF MONITOR SPOOL FILES 00850000
- * DMKSYSUR - DEFAULT USER OF MONITOR SPOOL FILES 00851000
- * 00852000
- * REGISTER USAGE - 00853000
- * 00854000
- * GPR3 - ADDRESS OF MONITOR COMMUNICATIONS AREA 00855000
- * GPR7 - ADDRESS OF SPOOL FILE BLOCK 00856400
- * GPR10 - ADDRESS OF MONITOR COMMUNICATIONS AREA 00856800
- * GPR11 - ADDRESS OF VMBLOK 00857000
- * GPR12 - ADDRESSABILITY 00858000
- * GPR13 - ADDRESS OF SAVE AREA 00859000
- * 00860000
- * OPERATION - 00861000
- * 00862000
- * STORAGE IS OBTAINED FOR AN SFBLOK. APPROPRIATE FIELDS 00863000
- * ARE SET. A DASD PAGE IS OBTAINED, AND THIS FILE IS 00864000
- * RECOGNIZED AS THE CURRENT OPEN MONITOR FILE 00865000
- * 00866000
- *. 00867000
- SPACE 1 00868000
- DMKMIARO RELOC @V50A2B5 00869000
- MVC SAVER1(4),F0 INDICATE NO ERROR @V50A2B5 00870000
- L R10,=A(DMKPRGMC) ADDRESS OF MONITOR @VA07979 00871000
- L R10,0(R10) COMMUNICATIONS AREA @VA07979 00872000
- LA R0,SFBSIZE ACQUIRE AN SFBLOCK @V50A2B5 00874000
- CALL DMKFREE GET THE STORAGE @V50A2B5 00875000
- ST R1,MONSFB KEEP THE ADDRESS AROUND @V50A2B5 00876000
- LR R7,R1 ESTABLISH ADDRESSABILITY FOR SFB @VA07979 00877400
- USING SFBLOK,R7 @VA07979 00877800
- XC SFBLOK(SFBSIZE*8),SFBLOK ZERO IT OUT @V50A2B5 00879000
- L R4,=A(DMKSYSUR) GET THE USER @V50A2B5 00880000
- MVC SFBUSER(8),0(R4) PUT AS USER @V50A2B5 00881000
- MVC SFBORIG(8),0(R4) AND AS ORIGINATOR @V50A2B5 00882000
- MVC SFBDIST(8),ZEROES NULL OUT DIST FOR FILE INTEG @V50A2B5 00883000
- SPACE 1 00884000
- LA R1,SFBDATE GET ADDRESS FOR THE DATE @V50A2B5 00885000
- LA R2,SFBTIME AND THE TIME @V50A2B5 00886000
- CALL DMKCVTDT AND LET SYSTEM STORE IT THERE @V50A2B5 00887000
- MVI SFBTYPE,TYP2540P TELL IT THE TYPE @V50A2B5 00888000
- L R4,=A(DMKSYSCL) TELL IT @V50A2B5 00889000
- MVC SFBCLAS(1),0(R4) THE CLASS @V50A2B5 00890000
- MVI SFBCOPY+1,X'01' ONE COPY @V50A2B5 00891000
- MVC SFBFNAME(12),=C'MONDATA ' STD NAME FOR MON @VA09059 00892000
- MVC SFBFTYPE(2),SFBDATE PUT IN A COMPOSITE TYPE @V50A2B5 00893000
- MVC SFBFTYPE+2(2),SFBDATE+3 OF DATE @V50A2B5 00894000
- MVC SFBFTYPE+4(2),SFBTIME AND @V50A2B5 00895000
- MVC SFBFTYPE+6(2),SFBTIME+3 TIME @V50A2B5 00896000
- MVC SFBFTYPE+8(4),BLANKS ...FILL IN TYPE FLD... @VA09059 00896500
- OI SFBFLAG2,SFBMON FLAG THE FILE AS MONITOR'S @V50A2B5 00897000
- L R4,=A(DMKRSPID) GET IT A NUMBER @V50A2B5 00898000
- LH R15,0(R4) FROM STANDARD PLACE IN SYSTEM @V50A2B5 00899000
- STH R15,SFBFILID PUT IT IN PLACE @V50A2B5 00900000
- LA R15,1(R15) BUMP THE COUNT @V50A2B5 00901000
- CL R15,=F'9900' ARE WE OVER MAX NUM @V50A2B5 00902000
- BNH STCOUNT NO @V50A2B5 00903000
- LA R15,1 RESET VALUE TO ONE @V50A2B5 00904000
- STCOUNT STH R15,0(R4) STORE FOR POSTERITY @V50A2B5 00905000
- L R4,MONCURBF GET REAL ADDRESS OF CURRENT BUF@V50A2B5 00906000
- XC 0(16,R4),0(R4) NULL OUT BEGINNING @V50A2B5 00907000
- OI 8(R4),MONBUFAC INDICATE THAT IT IS ACCEPTING @V50A2B5 00908000
- LA R4,X'10'(R4) TELL FOR NEXT RECORD @V50A2B5 00910000
- LA R4,MNBHDLEN(R4) BUMP UP FOR THE LENGTH @V50A2B5 00911000
- L R5,PREFIXA STORE INTO APPROPRIATE PSA @V50A2B5 00912000
- ST R4,MONNEXT(R5) THE VALUE OF MONNEXT @V50A2B5 00913000
- O R4,=F'4088' THIS IS A NEW PAGE END @V50A2B5 00914000
- ST R4,PAGEND(R5) STORE IN LOW PSA @V50A2B5 00915000
- NI MONFLAG2,255-SUSPEND GET RID OF ANY SUSPEND @V50A2B5 00916000
- L R1,MONDAS SEE IF DASD LEFT OVER EARLIER @V50A2B5 00917000
- LTR R1,R1 TEST IF ZERO @V50A2B5 00918000
- BNZ NOPAGE NO, SOMETHING ALREADY THERE @V50A2B5 00919000
- CALL DMKPGTSG GET A DASD PAGE @V50A2B5 00920000
- LTR R1,R1 SEE IF A PAGE IS AVAILABLE @V50A2B5 00921000
- BZ NODASD1 ERROR, OUT OF DASD @V50A2B5 00922000
- NOPAGE ST R1,MONDASA USE THIS AS DASD @V50A2B5 00923000
- XC MONDASB(4),MONDASB AND NULL OUT BACK @V50A2B5 00924000
- XC MONDAS(4),MONDAS AND CURRENT DASD @V50A2B5 00925000
- ST R1,SFBLAST USE THIS AS SFBLAST @V50A2B5 00926000
- ST R1,SFBSTART AND AS SFBSTART @V50A2B5 00927000
- ST R1,SFBDIST PLACE THIS HERE FOR FILE @V50A2B5 00928000
- ST R1,SFBDIST+4 INTEGRITY @V50A2B5 00929000
- L R15,=A(DMKRSPMN) THIS INDICATES THE CURRENT FILE@V50A2B5 00930000
- ST R7,0(R15) IS OPEN AND THIS IS THE ANCHOR @VA07979 00931500
- SPACE 1 00932000
- EXITS EXIT EXIT HERE @V50A2B5 00933000
- SPACE 1 00934000
- PURGESFB EQU * @VA07979 00934400
- MVC SFBSTART,SFBLAST STANDARD FOR CLOSED SFB @VA07979 00934800
- NODASD1 EQU * NO DASD LEFT ROUTINE @V50A2B5 00935000
- MVC SAVER1(4),F1 INDICATE EXHAUST @V50A2B5 00936000
- OI MONFLAG3,EXHAUST INDICATE EXHAUSTION @V50A2B5 00937000
- MVC SAVEWRK1+2(2),SFBFILID FILE ID FOR LATER MSG @VA07888 00937500
- CALL DMKSPLDL PURGE SFB AND FRET @VA07979 00938400
- SR R7,R7 @VA07888 00940200
- ST R7,MONSFB CLEAR MONCOM POINTER @VA07888 00940400
- L R15,=A(DMKRSPMN) OPEN MONITOR SFB ANCHOR @VA12761 00940600
- ST R7,0(R15) CLEAR THAT TOO @VA07888 00940800
- B EXHLEAVE GO TO THE EXIT ROUTINE @V50A2B5 00942000
- EJECT 00945000
- *. 00946000
- * 00947000
- * ENTRY POINT - 00948000
- * 00949000
- * DMKMIACC 00950000
- * 00951000
- * ENTRY CONDITIONS - 00952000
- * 00953000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00954000
- * GPR13 - ADDRESS OF SAVE AREA 00955000
- * 00956000
- * EXIT CONDITIONS - 00957000
- * 00958000
- * REG1 = 0 NORMAL RETURN 00959000
- * = 1 NO MORE DASD 00960000
- * = 2 MONITOR SHUTDOWN SCHEDULED 00961000
- * = 3 WRITE ERROR 00962000
- * 00963000
- * EXTERNAL REFERENCES - 00964000
- * 00965000
- * DMKCKSPL - SPOOL FILE CHECKPOINT ROUTINE 00966000
- * DMKDSPNP - FREE PAGE INDICATOR 00967000
- * DMKMIARO - ROUTINE TO START A NEW MONITOR FILE 00968000
- * DMKMNIDK - ENTRY POINT TO WRITE A HEADER RECORD 00969000
- * DMKPRGMC - ADDRESS OF MONITOR COMMUNICATIONS AREA 00970000
- * DMKRPAPT - ROUTINE TO WRITE OUT TO A DASD SLOT 00971000
- * DMKSTKCP - ROUTINE TO STACK A CPEXBLOK 00972000
- * DMKSYSAT - MONITOR DEFAULT FLAG FIELD 00973000
- * 00974000
- * REGISTER USAGE - 00975000
- * 00976000
- * GPR4 - READ ADDRESS OF MONITOR BUFFER 00977000
- * GPR10 - ADDRESS OF MONITOR COMMUNICATIONS AREA 00978000
- * GPR11 - ADDRESS OF VMBLOK OF USER 00979000
- * GPR12 - ADDRESSABILITY 00980000
- * GPR13 - ADDRESS OF SAVE AREA 00981000
- * 00982000
- * OPERATION - 00983000
- * 00984000
- * IF A CLOSE IS ALREADY IN EFFECT, THIS CODE IS SKIPPED. 00985000
- * MONITOR ACTIVATION REGS ARE TURNED OFF AND THE CURRENT 00986000
- * BUFFER IS TRAPPED AS THE LAST IO FOR THE FILE. 00987000
- * IF THERE IS OUTSTANDING IO, CLOSING WILL BE HANDLED LATER. 00988000
- * THE FINAL SPOOL FILE PAGE IS WRITTEN OUT. THE APPROPRIATE 00989000
- * CHECKPOINT ROUTINE IS CALLED, AND THE FILE IS PUT OUT TO THE 00990000
- * READER CHAIN. A NEW FILE IS OPENED ACCORDING TO CHECKS 00991000
- * IN THE DEFAULT ENVIRONMENT FLAG. 00992000
- * A HEADER RECORD IS SCHEDULED FOR THE NEW FILE. 00993000
- * 00994000
- ********************************************************************** 00995000
- SPACE 1 00996000
- DMKMIACC RELOC @V50A2B5 00997000
- USING SPLINK,R4 @VA07979 00997500
- MVC SAVER1(4),F0 INDICATE NO ERROR @V50A2B5 00998000
- L R10,=A(DMKPRGMC) GET THE MONITOR @V50A2B5 00999000
- L R10,0(R10) COMMUNICATIONS AREA @V50A2B5 01000000
- LTR R10,R10 SEE IF IT IS ON @V50A2B5 01001000
- BZ EXITS INVALID COMMAND @V50A2B5 01002000
- USING MONCOM,R10 @V50A2B5 01003000
- TM MONFLAG3,SPOOLED SEE IF WE ARE SPOOLING @V50A2B5 01005000
- BNO EXITS INVALID COMMAND @V50A2B5 01006000
- TM MONFLAG3,CLSUS ALREADY CLOSING? @V50A2B5 01007000
- BO EXITS LEAVE, DO NOT CONFLICT @V50A2B5 01008000
- OI MONEX,CLCMD FLAG INDICATING CLOSE CMMD @V50A2B5 01009000
- MVC CPCREG8(4),ZEROES NULL OUT CPCREG8 IN PSA @V50A2B5 01010000
- L R5,PREFIXB LOCATE OTHER PSA @V50A2B5 01011000
- MVC CPCREG8-IPLPSW(4,R5),ZEROES AND NULL OUT THERE @V50A2B5 01012000
- LCTL C8,C8,ZEROES ALSO TAKE CARE OF CTL REG8 @V50A2B5 01013000
- L R4,MONCURBF LOAD IN CURRENT PAGE @V50A2B5 01014000
- OI 9(R4),TRAP TRAP THIS AS LAST IO @V50A2B5 01015000
- OI MONFLAG3,CLSUS SUSPEND FOR ALL OUT IO @V50A2B5 01016000
- NI 8(R4),MONBUFIO SCHEDULE THIS FOR IO @V50A2B5 01017000
- TM MONFLAG2,SUSPEND SEE IF WE ARE SUSPENDED @V50A2B5 01018000
- BO CHKIO YES WE ARE @V50A2B5 01019000
- TM MONFLAG1,MON1BUF ONE BUFFER MONITORING? @V50A2B5 01020000
- BO CONTCLU YES @V50A2B5 01021000
- CLC X'10'(2,R4),ZEROES SEE IF BUFFER COMPLETED @V50A2B5 01022000
- BE SETUNFIN NO, IT IS NOT @V50A2B5 01023000
- B CHKIO YES, SO CHECK IO @V50A2B5 01024000
- SETUNFIN OI 9(R4),UNFIN INDICATE WE MUST FILL IN @V50A2B5 01025000
- CHKIO L R5,MONIOBF ANY OUTSTANDING IO @V50A2B5 01026000
- LTR R5,R5 TEST THIS @V50A2B5 01027000
- BNZ EXITS YES, WILL BE TAKEN CARE OF @V50A2B5 01028000
- SPACE 2 01029000
- CONTCLU EQU * @V50A2B5 01030000
- CLC X'10'(2,R4),ZEROES SEE IF THIS IS FILLED IN @V50A2B5 01031000
- BNE CONTCL YES, DO NOT FILL IN @V50A2B5 01032000
- OI 9(R4),UNFIN INDICATE THIS IS NOT @V50A2B5 01033000
- CONTCL EQU * @V50A2B5 01034000
- L R3,MONSPLCT BUMP THE SPOOL COUNT @V50A2B5 01035000
- LA R3,1(R3) BY ONE @V50A2B5 01036000
- ST R3,MONSPLCT AND STORE IT @VA08412 01037000
- MVC SPRECNUM,F1 INDICATE 1 RCD BUFF @VA08412 01038000
- MVC MONDAS(4),MONDASA GET PROPER DASD PAGE @VA08412 01039000
- XC MONDASA(4),MONDASA ZERO OUT AHEAD POINTER @V50A2B5 01040000
- USING SFBLOK,R7 @VA07888 01041300
- L R7,MONSFB SFB ADDR IN MONCOM @VA07888 01041600
- MVC SPPREPAG,MONDASB BACKWARD POINTER @VA07888 01041900
- MVC SPNXTPAG(4),SFBSTART FWD PTR TO START FOR CLOSE @VA12761 01042200
- TM 9(R4),UNFIN IS THIS PAGE COMPLETE @V50A2B5 01044000
- BNO NOFILL YES, IT IS @V50A2B5 01045000
- CONTCL1 LA R5,X'10'(R4) ADDRESS OF LENGTH LOCATION @V50A2B5 01046000
- L R8,PREFIXA GET CORRECT PSA @V50A2B5 01047000
- L R8,MONNEXT-IPLPSW(R8) AND OBTAIN MONNEXT @V50A2B5 01048000
- SR R8,R5 COMPUTE LENGTH OF DATA @V50A2B5 01049000
- STH R8,0(R5) STORE INTO THE BUFFER @V50A2B5 01050000
- NOFILL EQU * @V50A2B5 01051000
- NI 9(R4),X'FF'-TRAP-UNFIN TURN OFF THE TRAPS, FLAGS@V50A2B5 01052000
- XC MONSPLCT(4),MONSPLCT NULL OUT THE SPOOL COUNT @V50A2B5 01053000
- L R5,SFBRECNO GET THE SPOOL FILE REC NO @V50A2B5 01056000
- LA R5,1(R5) BUMP UP BY ONE @V50A2B5 01057000
- ST R5,SFBRECNO AND STORE IT @V50A2B5 01058000
- L R0,MONDAS GET THE DASD FOR THE WRITE @V50A2B5 01059000
- MVC 4088(2,R4),SFBFILID SET UP THE FILID @V50A2B5 01060000
- MVC 4090(6,R4),SFBTIME PUT IN THE TIME @V50A2B5 01061000
- XC 8(4,R4),8(R4) NULL OUT THE FLAGS @V50A2B5 01062000
- LA R5,MONBUF1 GET ADDRESS OF FIRST BUFFER@V50A2B5 01063000
- COMPR1 C R4,0(R5) SEE IF REALS MATCH @V50A2B5 01064000
- BE GETVIRT1 YES, DONE SEARCHING @V50A2B5 01065000
- LA R5,8(R5) NO, BUMP TO NEXT ENTRY @V50A2B5 01066000
- B COMPR1 AND CONTINUE COMPARING @V50A2B5 01067000
- GETVIRT1 L R1,4(R5) LOAD IN THE VIRTUAL ADDRESS@V50A2B5 01068000
- LA R9,10 RETRY COUNT IN CASE OF I/O ERROR @VA07979 01068500
- CALL DMKRPAPT,PARM=SYSTEM DO THE WRITE @V50A2B5 01069000
- BZ IOGOOD NO I/O ERROR PROBLEMS @VA07979 01070500
- CLSERR BCT R9,CLSRETRY ERR. TRY AGAIN WITH NEW SLOT @VA07979 01070600
- B PERMERR AFTER 10 FAILURES ITS PERMANENT @VA07979 01070700
- SPACE 1 01070800
- IOGOOD EQU * 01070900
- XC 4088(8,R4),4088(R4) NULL OUT THIS INFORMATION @V50A2B5 01071000
- MVC SFBPNT(4),MONDAS UPDATE SFBPNT @V50A2B5 01072000
- XC 0(20,R4),0(R4) NULL OUT FRONT OF BUFFER @V50A2B5 01073000
- OI 8(R4),MONBUFAC FLAG IT AS ACCEPTING @V50A2B5 01074000
- SPACE 1 01075000
- SR R0,R0 USE R0 TO NULL WITH @V50A2B5 01083000
- ST R0,MONDAS BLANK OUT DASD PTRS @V50A2B5 01084000
- ST R0,MONDASB CURRENT AND BACKWARD @V50A2B5 01085000
- MVC SFBDIST(8),BLANKS BLANK OUT THE DIST FIELD @V50A2B5 01086000
- MVC SAVEWRK1+2(2),SFBFILID SAVE FILEID FOR CLOSE MSG@VA07888 01086500
- BAL R6,CHAINSFB CHAIN SFBLOK AND CLEAR POINTER @VA07887 01088000
- OI SFBFLAG,SFBINUSE TURN ON THE INUSE FLAG @VA13688 01088050
- CLC SFBRECNO,F1 IF MORE THAN 1 RECORD @VA07888 01088100
- BH CHKCHG UPDATE ORIGINAL CHECKPOINT @VA07888 01088200
- CALL DMKCKSPL,PARM=RDRCHN+ADDSFB FIRST, ADD NEW @VA07888 01088300
- B DONECKS @VA07888 01088400
- CHKCHG CALL DMKCKSPL,PARM=CHGSFB UPDATE EARLIER CHECKPOINT @VA07888 01088500
- DONECKS EQU * 01088600
- BAL R6,CHNGSFB1 GENERATE DE INTERRUPT @VA14769 01088610
- NI SFBFLAG,X'FF'-SFBINUSE TURN INUSE FLAG OFF @VA12826 01088620
- CLC SAVER1(4),F0 DASD PERM ERROR OR SPOOL EXHAUSTED@VA07979 01088640
- BNE EXHLEAVE YES, SHUTDOWN AND SEND MSGS @VA07979 01088680
- SPACE 1 01097000
- TM MONFLAG1,CFSTOP ARE WE STOPPING @V50A2B5 01098000
- BO ESCAPE YES @V50A2B5 01099000
- TM MONEX,CLCMD IS THIS THE CLOSE COMMAND @V50A2B5 01100000
- BO YESCLOSE YES, JUST START NEW FILE @V50A2B5 01101000
- L R8,=A(DMKSYSAT) SEE IF AUTOSPL ON @V50A2B5 01102000
- TM 0(R8),AUTOSPL IS IT ON? @V50A2B5 01103000
- BNO ESCAPES CLOSING IMPLIES SHUTDOWN @V50A2B5 01104000
- YESCLOSE EQU * @V50A2B5 01105000
- NI MONEX,X'FF'-CLCMD TURN OFF CLOSE CMD FLAG @V50A2B5 01106000
- CALL DMKMIARO OPEN UP A NEW SPOOL FILE @V50A2B5 01107000
- * WON'T RETURN IF NO DASD SLOTS FOR NEW FILE @VA07979 01108500
- LR R9,R10 LOAD MONCOM TO REG 9 @V50A2B5 01110000
- USING CPEXBLOK,R1 RE ENABLE SUSPEND @V50A2B5 01111000
- LA R0,CPEXSIZE BY SHIPPING @V50A2B5 01112000
- CALL DMKFREE A CPEXBLOK TO @V50A2B5 01113000
- LR R3,R1 DMKMNIDK @V50A2B5 01114000
- L R1,=A(DMKMNIDK) THAT IS, ITS REAL ADDRESS @V50A2B5 01115000
- TRANS R2,R1,OPT=(SYSTEM,BRING,DEFER,LOCK) @V50A2B5 01116000
- LR R1,R3 RESTORE REGISTER 3 @V50A2B5 01117000
- ST R2,CPEXADD USE REAL ADDRESS TO RETURN @V50A2B5 01118000
- STM R0,R15,CPEXR0 STORE THE REGISTERS @V50A2B5 01119000
- ST R2,CPEXR12 ALSO OUR NEW REG 12 @V50A2B5 01120000
- L R0,ASYSVM USE THE SYSTEM @V50A2B5 01121000
- ST R0,CPEXR11 TO THAT THE EXPENSE @V50A2B5 01122000
- L R15,=A(DMKDSPNP) BE SURE TO BUMP THE @V50A2B5 01123000
- L R14,0(R15) FREE PAGE COUNTER @V50A2B5 01124000
- BCTR R14,0 DOWNWARD @V50A2B5 01125000
- ST R14,0(R15) AND STORE @V50A2B5 01126000
- LR R1,R3 SO, TAKE THE CPEXBLOK @V50A2B5 01127000
- CALL DMKSTKCP AND STACK IT @V50A2B5 01128000
- B EXITCL AND EXIT @V50A2B5 01129000
- EJECT 01129100
- CHAINSFB EQU * HERE TO CHAIN SFBLOK ON READER @VA07887 01129120
- * CHAIN AND LOCATE AVAILABLE 01129140
- * VIRTUAL READER 01129160
- L R14,ARSPRD GET RDR CHAIN @VA07887 01129180
- CHAIN1 EQU * @VA07887 01129200
- L R15,0(R14) LOCATE END OF CHAIN @VA07887 01129220
- LTR R15,R15 ADDRESS EQUAL TO ZERO IF LAST @VA07887 01129240
- BZ STSFB BRANCH, END OF CHAIN @VA07887 01129260
- LR R14,R15 POINT TO NEXT BLOCK @VA07887 01129280
- B CHAIN1 KEEP LOOPING @VA07887 01129300
- STSFB EQU * @VA07887 01129320
- ST R7,0(R14) CHAIN THE SPOOL FILE @VA07887 01129340
- L R14,=A(DMKRSPMN) GET THE OPEN FILE HOLDER @VA07887 01129360
- * R15 STILL ZERO 01129380
- ST R15,0(R14) ZERO SFBLOK ADDRESS @VA07887 01129400
- ST R15,MONSFB ZERO LOCAL SFBLOK ADDRESS @VA07887 01129420
- ST R15,SFBPNT CLEAR SFB FWD PTR - LAST ON @VA07888 01129430
- BR R6 COMPLETE CHECKPOINT @VA14769 01129431
- CHNGSFB1 EQU * @VA14769 01129432
- LA R1,SFBUSER GET SFBLOK USER ID @VA07887 01129440
- LA R0,8 LENGTH @VA07887 01129460
- CALL DMKSCNAU LOCATE VMBLOK @VA07887 01129480
- BNZR R6 RETURN, USER NOT LOGGED @VA07887 01129500
- * R7 = ADDRESS OF SFBLOK 01129520
- CALL DMKSPLSP LOCATE AVAILABLE VIRTUAL READER @VA07887 01129540
- BR R6 RETURN TO CALLER @VA07887 01129560
- SPACE 2 01130000
- ESCAPES EQU * @V50A2B5 01131000
- LA R0,L'AUTSPLMG LENGTH OF AUTO/SHUT MSG @V50A2B5 01132000
- LA R1,AUTSPLMG ADDRESS OF AUTO/SHUT MSG @V50A2B5 01133000
- CALL DMKQCNWT,PARM=OPERATOR+NORET SEND OUT MESSAGE @V50A2B5 01134000
- BAL R6,MONUMSG SHIP MESSAGE TO MON USER @V50A2B5 01135000
- BAL R6,MONOMSG AND FILE RECEIVER @V50A2B5 01136000
- SPACE 1 01137000
- ESCAPE LR R9,R10 PUT MONCOM ADDR IN REG 9 @V50A2B5 01138000
- MVC SAVER1(4),F2 INDICATE CLOSURE @V50A2B5 01139000
- LA R0,CPEXSIZE FORM A CPEXBLOK @V50A2B5 01140000
- USING CPEXBLOK,R1 @V50A2B5 01141000
- CALL DMKFREE ACQUIRE STORAGE @V50A2B5 01142000
- STM R0,R15,CPEXR0 STORE THE REGISTERS @V50A2B5 01143000
- L R2,=A(DMKENTFI) ADDRESS OF SHUT OFF RTNE @V50A2B5 01144000
- ST R2,CPEXADD STORE REG 12 @V50A2B5 01145000
- ST R2,CPEXR12 FOR ADDRESSABILITY @V50A2B5 01146000
- L R2,MONAIOB GET THE IOB ADDRESS @V50A2B5 01147000
- ST R2,CPEXR10 AND GIVE TO REG10 @V50A2B5 01148000
- CALL DMKSTKCP STACK THE CPEXBLOK @V50A2B5 01149000
- DROP R1 @V50A2B5 01150000
- EXITCL EQU * @VA07979 01151500
- LH R1,SAVEWRK1+2 GET SPOOL FILE ID @VA07888 01152500
- CALL DMKCVTBD CONVERT TO CHARACTERS @V50A2B5 01153000
- ST R1,TIMVAL PUT HERE ON ALIGN @V50A2B5 01154000
- MVC MSGID(4),TIMVAL PUT IN THE MESSAGE @V50A2B5 01155000
- L R3,=A(DMKSYSUR) GET THE RECEIVER @V50A2B5 01156000
- MVC MSGUR(8),0(R3) PUT IN THE MESSAGE @V50A2B5 01157000
- LA R1,CLOSMSG GET ADDRESS OF CLOSE MSG @V50A2B5 01158000
- LA R0,CLOSMSGS GET LENGTH OF CLOSE MSG @V50A2B5 01159000
- CALL DMKQCNWT,PARM=OPERATOR+NORET PUT OUT MESSAGE @V50A2B5 01160000
- BAL R6,MONUMSG LET USER KNOW @V50A2B5 01161000
- BAL R6,MONOMSG LET RECEIVER KNOW @V50A2B5 01162000
- B EXITS AND EXIT @V50A2B5 01163000
- DROP R7 @V50A2B5 01164000
- EJECT 01165000
- MSG002 LA R2,2 ILLEGAL OPERAND @V50A2B5 01166000
- B CALLERM CALL MESSAGE ROUTINE @V50A2B5 01167000
- SPACE 1 01168000
- MSG225 LA R2,225 ILLEGAL MONITOR USERID @V50A2B5 01169000
- SR R1,R1 ZIP OUT FIELDS @V50A2B5 01170000
- B CALLERM CALL MESSAGE ROUTINE @V50A2B5 01171000
- SPACE 1 01172000
- CALLERM ICM R0,B'1110',MODID+3 MODULE ID FOR MESSAGE @V50A2B5 01173000
- ST R2,WORK2 WORK ON REGISTER 2 @V50A2B5 01174000
- ST R2,SAVER2 TO PUT IN FLAGS @V50A2B5 01175000
- MVI WORK2,X'80' INDICATE TO RETURN HERE @VA07863 01176000
- L R2,WORK2 PULL OUT REGISTER 2 @V50A2B5 01177000
- CALL DMKERMSG PUT OUT THE ERROR MESSAGE @V50A2B5 01178000
- B EXITS AND EXIT @V50A2B5 01179000
- EJECT 01180000
- *. 01181000
- * 01182000
- * ENTRY POINT - 01183000
- * 01184000
- * DMKMIAEN 01185000
- * 01186000
- * ENTRY CONDITIONS - 01187000
- * 01188000
- * GPR11 - ADDRESS OF VMBLOK OF USER 01189000
- * GPR13 - ADDRESS OF SAVE AREA 01190000
- * 01191000
- * EXIT CONDITIONS - 01192000
- * 01193000
- * NONE 01194000
- * 01195000
- * EXTERNAL REFERENCES - 01196000
- * 01197000
- * DMKFREE - ROUTINE TO ACQUIRE STORAGE FOR COMMAND BUFFER 01198000
- * DMKFRET - ROUTINE TO RELEASE STORAGE FOR COMMAND BUFFER 01199000
- * DMKMCCCL - ROUTINE TO EXECUTE COMMAND BUFFER 01200000
- * DMKQCNWT - ROUTINE TO SEND OUT A MESSAGE 01201000
- * 01202000
- * REGISTER USAGE - 01203000
- * 01204000
- * GPR11 - ADDRESS OF VMBLOK OF USER 01205000
- * GPR12 - ADDRESSABILITY 01206000
- * GPR13 - SAVE AREA 01207000
- * 01208000
- * OPERATION - 01209000
- * 01210000
- * A COMMAND BUFFER IS OBTAINED; THE 'MONITOR STOP' COMMAND 01211000
- * IS SIMULATED WITH IT BY A CALL TO DMKMCCCL. ON RETURN, 01212000
- * THE COMMAND BUFFER IS FREED. 01213000
- * 01214000
- *. 01215000
- SPACE 1 01216000
- DMKMIAEN RELOC @V50A2B5 01217000
- LA R0,L'STOPMSG LENGTH OF AUTOSTOP MESSAGE @V50A2B5 01218000
- LA R1,STOPMSG ADDRESS OF AUTOSTOP MESSAGE@V50A2B5 01219000
- CALL DMKQCNWT,PARM=NORET+OPERATOR SEND OUT MESSAGE @V50A2B5 01220000
- BAL R6,MONUMSG LET THE USER KNOW @V50A2B5 01221000
- BAL R6,MONOMSG AND THE RECEIVER @V50A2B5 01222000
- LA R0,18 GET A MESSAGE WORK AREA @V50A2B5 01223000
- CALL DMKFREE ACQUIRE THE STORAGE @V50A2B5 01224000
- MVC 0(SPMSGSZ,R1),SPMSG MOVE IN THE COMMAND @V50A2B5 01225000
- LR R9,R1 R9 POINTS TO THE WORK AREA @V50A2B5 01226000
- ST R1,X'88'(R9) PUT IN POINTER @V50A2B5 01227000
- LA R5,SPMSGSZ ALSO THE SIZE @V50A2B5 01228000
- BCTR R5,R0 MINUS ONE @V50A2B5 01229000
- ST R5,X'8C'(R9) STORE IN THE BUFFER @V50A2B5 01230000
- CALL DMKMCCCL EXECUTE THE COMMAND @V50A2B5 01231000
- LA R0,18 RETURN THE MESSAGE AREA @V50A2B5 01232000
- CALL DMKFRET GET RID OF IT @V50A2B5 01233000
- B EXITS LEAVE @V50A2B5 01234000
- EJECT 01235000
- *. 01236000
- * 01237000
- * THIS IS DISPLACED CODE FROM DMKMON 01238000
- * IT WAS TAKEN OUT TO MAKE ROOM IN THAT MODULE FOR OTHER UPDATES 01239000
- * 01240000
- *. 01241000
- SPACE 1 01242000
- ENTRY DMKMIAX1 01243000
- DMKMIAX1 DC V(DMKPAGPS) NO. OF PAGING SIO'S @V2B2638 01244000
- DC V(DMKPAGCC) NO. OF CALLS TO DMKPAG @V2B2638 01245000
- DC V(DMKPTRFN) NO. PAGE FRAMES ON THE FREE LIST @V2B2638 01246000
- DC V(DMKPTRSW) NO. OF PAGES BEING SWAPPED @V2B2638 01247000
- DC V(DMKPTRPR) NO. OF PAGES FLUSHED BUT RECLAIM @V2B2638 01248000
- DC V(DMKPTRRC) NO. OF RESERVED PAGES @V2B2638 01249000
- DC V(DMKPTRSC) NO. OF SHARED SYSTEM PAGES @V2B2638 01250000
- DC V(DMKPTRF0) NO. OF TIMES FREE LIST WAS EMPTY @V2B2638 01251000
- DC V(DMKPTRFC) NO. OF CALLS TO DMKPTRFR @V2B2638 01252000
- DC V(DMKPTRSS) NO. PAGES STOLEN FROM IN Q USERS @V2B2638 01253000
- DC V(DMKPTRFF) NO. PAGES SWAPPED FROM FLUSH LIST@V2B2638 01254000
- DC V(DMKPTRRF) NO. OF PAGES EXAMINED FOR A STEAL@V2B2638 01255000
- DC V(DMKPTRCS) NO. OF COMPLETE SCANS FOR A STEAL@V2B2638 01256000
- DC V(DMKPSANX) NO. OF REAL EXTERNAL INTERRUPTS @V2B2638 01257000
- DC V(DMKPRVNC) NO. OF CALLS TO DMKPRVLG @V2B2638 01258000
- DC V(DMKVSICT) NO. OF CALLS TO DMKVIOEX @VA05037 01259000
- DC V(DMKVSICW) NO. CALLS TO DMKCCW FROM DMKVSI @VA05037 01260000
- DC V(DMKDSPIT) NO. OF INT TIMER INT. REFLECTED @V2B2638 01261000
- DC V(DMKDSPPT) NO. OF CPU TIMER INT. REFLECTED @V2B2638 01262000
- DC V(DMKDSPCK) NO. OF CLOCK COMP INT REFLECTED @V2B2638 01263000
- DC A(PSASVCCT-IPLPSW) NO. OF SVC INT. REFLECTED @V2B2638 01264000
- DC V(DMKPRGCT) NO. OF PROGRAM INT. HANDLED @V2B2638 01265000
- DC V(DMKIOTCT) NO. OF I/O INTERRUPTS HANDLED @VA09587 01266000
- DC V(DMKDSPCC) NO. OF CALLS DMKDSP (MAIN ENTRY) @V2B2638 01267000
- DC V(DMKDSPAC) NO. OF FAST REFLECTS IN DMKDSP @V2B2638 01268000
- DC V(DMKDSPBC) NO. OF DISPATCHES FOR NEW PSW'S @V2B2638 01269000
- DC V(DMKSCHCT) NO. OF CALLS TO DMKSCHDL @V2B2638 01270000
- DC V(DMKPRVEK) INST COUNT FOR X'08' SSK @V2B2638 01271000
- DC V(DMKPRVIK) INST COUNT FOR X'09' ISK @V2B2638 01272000
- DC V(DMKPRVMS) INST COUNT FOR X'80' SSM @V2B2638 01273000
- DC V(DMKPRVLP) INST COUNT FOR X'82' LPSW @V2B2638 01274000
- DC V(DMKPRVDI) INST COUNT FOR X'83' DIAG @V2B2638 01275000
- DC V(DMKVSISI) INST COUNT FOR X'9CX0' SIO @VA05037 01276000
- DC V(DMKVSISF) INST COUNT FOR X'9CX1' SIOF @VA05037 01277000
- DC V(DMKVSITI) INST COUNT FOR X'9DX0' TIO @VA05037 01278000
- DC V(DMKVSICI) INST COUNT FOR X'9DX1' CLRIO @VA05037 01279000
- DC V(DMKVSJHI) INST COUNT FOR X'9EX0' HIO @VA12128 01280000
- DC V(DMKVSJHD) INST COUNT FOR X'9EX1' HDV @VA12128 01281000
- DC V(DMKVSITC) INST COUNT FOR X'9F' TCH @VA05037 01282000
- DC V(DMKPRVMN) INST COUNT FOR X'AC' STNSM @V2B2638 01283000
- DC V(DMKPRVMO) INST COUNT FOR X'AD' STOSM @V2B2638 01284000
- DC V(DMKPRVLR) INST COUNT FOR X'B1' LRA @V2B2638 01285000
- DC V(DMKPRVCP) INST COUNT FOR X'B202' STIDP @V2B2638 01286000
- DC V(DMKPRVCH) INST COUNT FOR X'B203' STIDC @V2B2638 01287000
- DC V(DMKPRVTE) INST COUNT FOR X'B204' SCK @V2B2638 01288000
- DC V(DMKPRVCE) INST COUNT FOR X'B206' SCKC @V2B2638 01289000
- DC V(DMKPRVCT) INST COUNT FOR X'B207' STCKC @V2B2638 01290000
- DC V(DMKPRVPE) INST COUNT FOR X'B208' SPT @V2B2638 01291000
- DC V(DMKPRVPT) INST COUNT FOR X'B209' STPT @V2B2638 01292000
- DC V(DMKPRVEP) INST COUNT FOR X'B20A' SPKA @V2B2638 01293000
- DC V(DMKPRVIP) INST COUNT FOR X'B20B' IPK @V2B2638 01294000
- DC V(DMKPRVPB) INST COUNT FOR X'B20D' PTLB @V2B2638 01295000
- DC V(DMKPRVRR) INST COUNT FOR X'B213' RRB @V2B2638 01296000
- DC V(DMKPRVTC) INST COUNT FOR X'B6' STCTL @V2B2638 01297000
- DC V(DMKPRVLC) INST COUNT FOR X'B7' LCTL @V2B2638 01298000
- DC V(DMKPRVCS) INST COUNT FOR X'BA' CS @V2B2638 01299000
- DC V(DMKPRVCD) INST COUNT FOR X'BB' CDS @V2B2638 01300000
- DC V(DMKHVCDI) DIAGNOSE I/O SIMULATION COUNT @V2B2638 01301000
- DC V(DMKSYSND) NO. OF USERS DIALED TO A VIRT @V2B2638 01302000
- * MACH 01303000
- DC V(DMKSYSNM) NO. OF USERS LOGGED ON @V2B2638 01304000
- DC A(PGREAD-IPLPSW) NO. OF PAGE READS @V2B2638 01305000
- DC A(PGWRITE-IPLPSW) NO. OF PAGE WRITES @V2B2638 01306000
- DC V(DMKDSPNP) NO. OF SYSTEM PAGABLE PAGES @V2B2638 01307000
- DC V(DMKSCHPU) SUM OF WORKING SETS OF IN Q USERS@V2B2638 01308000
- DC V(DMKSCHN1) NO. OF USERS IN Q1 @V2B2638 01309000
- ENTRY DMKMIAX2 01310000
- DMKMIAX2 DC V(DMKSCHN2) NO. OF USERS IN Q2 @V2B2638 01311000
- *. 01312000
- SPACE 2 01313000
- ENTRY DMKMIAY1 01314000
- DMKMIAY1 DC V(DMKPSANX) NUMBER OF REAL EXT INTERRUPTS @V4075A4 01315000
- DC A(PSASVCCT-IPLPSW) NUM OF SVC INT. REFLECTED @V4075A4 01316000
- DC A(PGREAD-IPLPSW) NUMBER OF PAGE READS @V4075A4 01317000
- DC A(PGWRITE-IPLPSW) NUMBER OF PAGE WRITES @V4075A4 01318000
- AIF (NOT &AP).LOKSY6 01318700
- DC A(DMKLOKSY+8) TOTAL TIME SPIN ON SYSTEM LOCK @V4M0153 01319000
- DC A(DMKLOKSY+12) TOTAL NO. SPINS FOR SYSTEM LOCK @V4M0153 01320000
- DC A(DMKLOKFR+8) TOTAL TIME SPIN ON DMKFRE LOCK @V4M0153 01321000
- DC A(DMKLOKFR+12) TOTAL NO. SPINS FOR DMKFRE LOCK @V4M0153 01322000
- DC A(DMKLOKRL+8) TOTAL TIME SPIN ON RUNLIST LOCK @V4M0153 01323000
- DC A(DMKLOKRL+12) TOTAL NO. SPINS FOR RUNLIST LOCK @V4M0153 01324000
- DC A(DMKLOKTR+8) TOTAL TIME SPIN ON TIMER REQ LOCK@V4M0153 01325000
- DC A(DMKLOKTR+12) TOTAL NO. SPINS FOR TIMER REQ LCK@V4M0153 01326000
- DC A(DMKLOKDS+8) TOTAL TIME SPIN ON DISPATCHER LCK@V4M0153 01327000
- DC A(DMKLOKDS+12) TOTAL NO. SPINS FOR DISPTCHR LOCK@V4M0153 01328000
- AGO .LOKSY7 01328100
- .LOKSY6 ANOP 01328200
- DC 10F'0' RESERVE ENTRIES FOR AP LOCKS @V4M0221 01328300
- .LOKSY7 ANOP 01328400
- DC A(DMKFRENP+8) NO. TIMES CPFRELK SET @V4M0153 01329000
- DC A(DMKFRENP+12) NO. TIMES CPFRESW SET @V4M0153 01330000
- AIF (NOT &AP).LOKCT4 01330900
- DC V(DMKLOKCT) NO. SYS LOCK REQUESTS DEFERRED @V4M0153 01331000
- DC A(DMKLOKCT+4) NO. VMLOCK REQUESTS DEFERRED @V4M0221 01332000
- AGO .LOKCT5 01332600
- .LOKCT4 ANOP 01332700
- DC 2F'0' AP LOCK COUNT ENTRIES @V4M0221 01332800
- .LOKCT5 ANOP 01332900
- ENTRY DMKMIAY2 01333000
- AIF (NOT &AP).DSPRC4 01333750
- DMKMIAY2 DC V(DMKDSPRC) NO. DMKDSPRU ENTRIES @V4M0221 01333800
- AGO .DSPRC5 01333850
- .DSPRC4 ANOP 01333900
- DMKMIAY2 DC F'0' NO (AP) DMKDSPRU ENTRIES @V4M0221 01333950
- .DSPRC5 ANOP 01334000
- EJECT @V50A2B5 01335000
- WORK2 DS F @V50A2B5 01336000
- TIMVAL DS 0D @V50A2B5 01337000
- DC CL8' ' @V50A2B5 01338000
- TIMESTRT DC CL8' ' @V50A2B5 01339000
- TIMEEND DC CL8' ' @V50A2B5 01340000
- STMSG DC C'START SPOOL TO ' @V50A2B5 01341000
- STUID DS CL8 @V50A2B5 01342000
- DC C' ' @V50A2B5 01343000
- BUFFS DC C'BUFFS ' @V50A2B5 01344000
- BUFFNO DC C' ' @V50A2B5 01345000
- DC X'00' @V50A2B5 01346000
- STMSGSZ EQU *-STMSG @V50A2B5 01347000
- SPMSG DC C'STOP SPOOL ' @V50A2B5 01348000
- SPMSGSZ EQU *-SPMSG @V50A2B5 01349000
- CLOSMSG DC C'SPOOL FILE ' @V50A2B5 01350000
- MSGID DS CL4 @V50A2B5 01351000
- DC C' SENT TO ' @V50A2B5 01352000
- MSGUR DS CL8 @V50A2B5 01353000
- CLOSMSGS EQU *-CLOSMSG @V50A2B5 01354000
- SPACE 1 01355000
- ENAB DC CL8'ENABLED ' @V50A2B5 01356000
- DISAB DC CL8'DISABLED' @V50A2B5 01357000
- CLSMSG DC C'CLOSE ' @V50A2B5 01358000
- CLSMSGSZ EQU *-CLSMSG @V50A2B5 01359000
- STARTMSG DC C'MONITOR AUTO STARTING' @VA07979 01360100
- STOPMSG DC C'MONITOR AUTO STOPPING' @VA07979 01361100
- NODASMSG DC C'SPOOL DASD FULL, MONITOR STOPPED' @VA07979 01362100
- WRIDASMG DC C'DASD ERROR, MONITOR STOPPED' @VA07979 01363100
- DISPMSG1 DC C'CLS KEYWORD STATUS' @V50A2B5 01364000
- AUTSPLMG DC C'SPOOL LIMIT REACHED, MONITOR STOPPED' @VA07979 01365100
- BADEN DC C'ONLY PERFORM ALLOWED WITH 1 BUFFER' @VA07979 01366100
- MONCLTBL DS 0F @V50A2B5 01367000
- DC CL8'PERFORM ',X'03' @V50A2B5 01368000
- DC CL8'RESPONSE',X'03' @V50A2B5 01369000
- DC CL8'SCHEDULE',X'02' @V50A2B5 01370000
- DC CL8' ',X'09' @V50A2B5 01371000
- DC CL8'USER ',X'03' @V50A2B5 01372000
- DC CL8'INSTSIM ',X'03' @V50A2B5 01373000
- DC CL8'DASTAP ',X'02' @V50A2B5 01374000
- DC CL8'SEEKS ',X'03' @V50A2B5 01375000
- DC CL8'SYSPROF ',X'02' @V50A2B5 01376000
- MONTBENO EQU (*-MONCLTBL)/9 NUMBER OF ENTRIES IN THE TABLE @V50A2B5 01377000
- CLASNOS DC C'00010203040506070809101112131415' LIST OF @VA08367 01378100
- * CLASS 01378200
- SET24 DC X'000141DD76000000' @V50A2B5 01379000
- LENMSG EQU 21 LENGTH OF DISPLAY MESSAGE @V50A2B5 01380000
- MDAER EQU X'80' MONITOR DASD ERROR @VA07979 01380500
- MNWROK EQU X'40' WRITE COMPLETED OK @VA07979 01380600
- COPY SPOOL @V50A2B5 01381000
- COPY EQU @V50A2B5 01382000
- PSA @V50A2B5 01383000
- COPY VMBLOK @V50A2B5 01384000
- COPY DEVTYPES @V50A2B5 01385000
- COPY MONBLOKS @V50A2B5 01386000
- COPY SAVE @V50A2B5 01387000
- COPY CORE @V50A2B5 01388000
- COPY TIMER @V50A2B5 01389000
- END DMKMIA 01390000
ibm/vm370-lib/cp/dmkmia.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator