ibm:vm370-lib:cp:dmkcpp.assemble_src
Table of Contents
DMKCPP Source
References
- Fixes Applied : 3
- This Source Date : Friday, August 7, 1981
- Last Fix ID : [HRC106DK]
Source Listing
- DMKCPP.ASSEMBLE.txt
- CPP TITLE 'DMKCPP (CP) VM/370 - RELEASE 6' 00100000
- PUNCH ' SPB' 00200000
- ISEQ 73,80 00300000
- SPACE 2 00400000
- *. 00500000
- * MODULE NAME - 00600000
- * 00700000
- * DMKCPP 00800000
- * 00900000
- * FUNCTION - 01000000
- * 01100000
- * 1. TO RELEASE ALL RESOURCES NECESSARY FOR AN AP 01200000
- * ENVIRONMENT. 01300000
- * 2. TO REVERT TO A UNIPROCESSOR ENVIRONMENT. 01400000
- * 01500000
- * ATTRIBUTES - 01600000
- * 01700000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 01800000
- * 01900000
- * ENTRY POINTS - 02000000
- * 02100000
- * DMKCPPUP - TO CAUSE AN AP SYSTEM TO REVERT TO A UP SYSTEM. 02200000
- * 02300000
- * ENTRY CONDITIONS - 02400000
- * 02500000
- * GPR 11 = ADDRESS OF VMBLOK 02600000
- * GPR 12 = ADDRESS OF ENTRY POINT 02700000
- * GPR 13 = ADDRESS OF SAVEAREA 02800000
- * 02900000
- * EXIT CONDITIONS - 03000000
- * 03100000
- * 03200000
- * NORMAL - 03300000
- * GPR1 WILL CONTAIN ZEROES. 03400000
- * 03500000
- * ERROR - 03600000
- * GPR1 WILL CONTAIN THE ERROR MESSAGE NUMBER. 03700000
- * 03800000
- * CALLS TO OTHER ROUTINES - 03900000
- * 04000000
- * DMKCVTBH - TO CONVERT BINARY TO PRINTABLE FORM 04100000
- * DMKPTRFT - TO RETURN PAGES TO THE FREE PAGE LIST 04200000
- * DMKPTRUL - TO UNLOCK THE SYSTEM NAME TABLE 04300000
- * DMKVMASW - TO SWITCH SHARED SEGMENT POINTERS 04400000
- * DMKPGTSP - TO RELEASE A DASD PAGE ASSIGNED TO SYSTEM 04500000
- * DMKFREE - TO GET STORAGE FOR NON-SHARED PAGE AND SWAP TABLES 04600000
- * DMKFRET - TO RELEASE STORAGE 04700000
- * DMKPTRPW - TO WAIT UNTIL I/O IS COMPLETE FOR A VIRTUAL MACHINE 04800000
- * DMKSTKCP - TO STACK A REQUEST 04900000
- * DMKSCNVS - TO GET A DEVICE BLOCK 05000000
- * DMKDSPCH - TO RETURN TO DISPATCHER 05100000
- * 05200000
- * EXTERNAL REFERENCES - 05300000
- * 05400000
- * DMKDSPNP - NUMBER OF DYNAMICALLY ASSIGNABLE PAGE FRAMES 05500000
- * DMKPTRRC - NUMBER OF RESIDENT, RESERVED PAGES 05600000
- * DMKVMAS1 - ANCHOR FOR SHARED SYSTEMS (SHRTABLE POINTER) 05700000
- * DMKPTRSC - NUMBER OF RESIDENT SHARED PAGES 05800000
- * DMKSYSOW - ADDRESS OF THE DEVICE OWNED LIST 05900000
- * DMKMCTVM - ADDRESS OF USER TO BE TERMINATED BY DMKMCT 06000000
- * DMKMCTPF - ADDRESS OF OTHER PROCESSOR'S PSA PAGE 06020000
- * DMKMCTFL - DMKMCT'S FLAG BYTES 06040000
- * DMKSCHTQ - POINTER TO TOD CLOCK COMPARATOR REQUEST QUEUE 06060000
- * DMKSNTBL - POINTER TO THE SYSTEM NAME TABLE 06100000
- * DMKFREAP - POINTER TO BACK POCKET FOR DMKFRE IN AP MODE 06200000
- * DMKDMPMA - THE MAIN PROCESSOR'S ADDRESS 06300000
- * DMKDMPAA - THE ATTACHED PROCESSOR'S ADDRESS 06400000
- * DMKDMPSA - POINTER TO THE PSA ADDRESSES 06500000
- * DMKSCHCA - SCHEDULER ATTACHED PROCESSOR WAIT VALUES 06600000
- * DMKEXTST - ADDRESS OF THE STOPPED PROCESSOR 06700000
- * DMKPAGWS - ATTACHED PROCESSOR PAGE WAIT SAVE VALUE 06800000
- * DMKLOKSY - GLOBAL SYSTEM LOCKWORD 06900000
- * DMKLOKDS - DSP QUEUES LOCKWORD 06920000
- * DMKLOKTR - TRQ LOCKWORD 06940000
- * DMKLOKRL - RUN LIST LOCKWORD 06960000
- * DMKLOKFR - FREE STORAGE LOCKWORD 06980000
- * DMKSCHCU - SCHEDULER MAIN PROCESSOR WAIT VALUE 07000000
- * DMKDSPRQ - DISPATCHER'S QUEUE OF CPEXBLOKS 07100000
- * 07200000
- * OPERATION - 07300000
- * 07400000
- * SEE BELOW 07500000
- * 07600000
- * TABLES / WORKAREAS - 07700000
- * 07800000
- * CORTABLE, SWPTABLE, PAGTABLE, SEGTABLE, SHRTABLE 07900000
- * 08000000
- * REGISTER USAGE - 08100000
- * 08200000
- * GPR0-10 = SCRATCH 08300000
- * GPR11 = VMBLOK BASE 08400000
- * GPR12 = DMKCPP BASE 08500000
- * GPR13 = SAVEAREA BASE 08600000
- * GPR14 = EXTERNAL LINKAGE 08700000
- * GPR15 = EXTERNAL LINKAGE 08800000
- * 08900000
- * NOTES - 09000000
- * NONE 09100000
- * 09200000
- * MESSAGES - 09300000
- * 09400000
- * DMKCPP623I CHANNEL SET CONNECTED TO PROCESSOR NN 09500000
- * 09600000
- * WAIT STATES - 09700000
- * CODE X'016' - THE CHANNEL SET SWITCHING FACILITY HAS FAILED 09800000
- * CODE X'019' - THE OTHER PROCESSOR IS STILL RUNNING, AND 09900000
- * CANNOT BE STOPPED TO ENTER UNIPROCESSOR MODE 09950000
- * 10000000
- * ABENDS - 10100000
- * CPP001 - VMPAGES HAS JUST GONE NEGATIVE 10200000
- * CPP002 - A NAMED SYSTEM WAS NOT FOUND IN DMKSNT 10300000
- * 10400000
- * 10500000
- * 10600000
- * 10700000
- EJECT 10800000
- COPY OPTIONS 10900000
- COPY LOCAL OPTIONS 11000000
- DMKCPP CSECT 11100000
- EXTRN DMKSYSOW @V5BC0AB 11200000
- EXTRN DMKLOKSY @V5BC0AB 11300000
- EXTRN DMKLOKDS @VA12934 11320000
- EXTRN DMKLOKTR @VA12934 11340000
- EXTRN DMKLOKRL @VA12934 11360000
- EXTRN DMKLOKFR @VA12934 11380000
- EXTRN DMKSCHTQ @V5BC0AB 11400000
- EXTRN DMKPTRFT @V5BC0AB 11500000
- EXTRN DMKCVTBH @V5BC0AB 11600000
- EXTRN DMKMCTVM @VA12934 11700000
- EXTRN DMKMCTPF @VA12934 11720000
- EXTRN DMKMCTFL @VA12934 11740000
- EXTRN DMKPGTSP @VA12934 11760000
- EXTRN DMKPTRSC @V5BC0AB 11800000
- EXTRN DMKDSPNP @V5BC0AB 11900000
- EXTRN DMKPTRPW @V5MH002 12000000
- EXTRN DMKVMASW @V5BC0AB 12100000
- EXTRN DMKPTRRC @V5BC0AB 12200000
- EXTRN DMKSCHCU @VMV0008 12300000
- EXTRN DMKSCHCA @VMH0008 12400000
- EXTRN DMKPAGWS @VMV0007 12500000
- EXTRN DMKFRET @V5BC0AB 12600000
- EXTRN DMKFREE @V5BC0AB 12700000
- EXTRN DMKDMPMA @V5BC0AB 12800000
- EXTRN DMKDMPAA @V5BC0AB 12900000
- EXTRN DMKDMPSA @V5BC0AB 13000000
- EXTRN DMKFREAP @V5BC0AB 13100000
- EXTRN DMKVMAS1 @V5BC0AB 13200000
- EXTRN DMKSCNVS @V5BC0AB 13300000
- EXTRN DMKSNTBL @V5BC0AB 13400000
- EXTRN DMKPTRUL @V5BC0AB 13500000
- EXTRN DMKDSPRQ @VA09324 13600000
- EXTRN DMKSTKCP @VA09324 13700000
- EXTRN DMKEXTST @VA10010 13800000
- EJECT 13900000
- MODID DC CL8'DMKCPP ' MODULE NAME @V5BC0AB 14000000
- SPACE 2 14100000
- USING PSA,R0 @V5BC0AB 14200000
- SPACE 14300000
- USING VMBLOK,R11 @V5BC0AB 14400000
- SPACE 14500000
- USING SAVEAREA,R13 @V5BC0AB 14600000
- SPACE 14700000
- EJECT 14800000
- * SUBROUTINE NAME - 14900000
- * 15000000
- * DMKCPPUP 15100000
- * 15200000
- * FUNCTION - 15300000
- * 15400000
- * 1. TO RELEASE ALL RESOURCES NECESSARY FOR AN AP ENVIRONMENT. 15500000
- * 2. TO REVERT TO THE UNIPROCESSOR ENVIRONMENT. 15600000
- * 15700000
- * ENTRY CONDITIONS - 15800000
- * 15900000
- * GPR11 = ADDRESS OF VMBLOK OF VIRTUAL MEMORY'S OWNER 16000000
- * GPR12 = ADDRESS OF ENTRY POINT 16100000
- * GPR13 = ADDRESS OF SAVEAREA 16200000
- * 16300000
- * OPERATION OF DMKCPPUP - 16400000
- * 16500000
- * 1. SET ALL CPEXBLOKS ON DMKDSPRQ FOR THE REMAINING 16600000
- * PROCESSOR, THEN STACK A CPEXBLOK TO COME 16700000
- * BACK TO DMKCPPOI. GO TO THE DISPATCHER. UPON RETURN, 16800000
- * LOCK EACH VMBLOK AND CALL DMKVMASW TO SWITCH THE 16900000
- * SHARED SEGMENT POINTERS. 17000000
- * 2. SYNCHRONIZE VMTTIME FOR EACH VIRTUAL MACHINE. 17100000
- * 3. CALL DMKFRET TO FREE EACH DEFERRED EXECUTION BLOCK, 17200000
- * PROVIDED IT IS NOT STACKED. 17300000
- * 4. FREE ALL THE REMAINING AP RELATED CONTROL BLOCKS. 17400000
- * 5. SET THE CLOCK COMPARATOR VALUE TO THAT OF THE FIRST ELEMENT 17500000
- * ON THE QUEUE. 17600000
- * 6. WHILE PRESERVING ABSOLUTE ZERO MAINTAINED FIELDS, COPY THE 17700000
- * CURRENT PSA INTO THE ABSOLUTE ZERO PSA. 17800000
- * 7. STOP PREFIXING. 17900000
- * 8. SET APUOPER TO ZERO. 18000000
- * 9. CHECK DMKMCT'S FLAG FIELD TO SEE IF DMKMCTFS HAS 18100000
- * BEEN ENTERED. IF NOT, FREE THE PSA PAGES. IF SO, 18120000
- * COMMUNICATION BETWEEN THE PROCESSORS HAS FAILED. 18140000
- * DO NOT RELEASE THE PSA PAGE FOR THE OTHER 18160000
- * PROCESSOR SINCE IT MAY STILL BE RUNNING. 18180000
- * 10. FREE UP THE PAGES AND DASD SLOTS HELD BY THE ATTACHED 18200000
- * PROCESSOR'S SET OF PAGE AND SWAP TABLES FOR SHARED 18300000
- * SEGMENTS (WHEN POSSIBLE). 18400000
- * 11. IF THE SWPRECMP FLAG IS ZERO IN AT LEAST ONE SWAP TABLE 18500000
- * ENTRY, REINITIALIZE THE SWAP TABLES WITH THE ORIGINAL 18600000
- * CCPD'S USING DMKSNTBL. 18700000
- * 12. RETURN TO THE CALLER. 18800000
- * 18900000
- * 19000000
- SPACE 2 19100000
- DMKCPPUP RELOC @V5BC0AB 19200000
- TM APSTAT1,PROCIO RUNNING ON MAIN PROCESSOR? @V60B7AB 19300000
- BO CPPPROCG YES, BRANCH @V60B7AB 19400000
- LH R1,CSADDR GET CHANNEL SET ADDRESS @V60B7AB 19500000
- SPACE 19600000
- * DISCS 0(R1) DISCONNECT FROM MAIN PROCESSOR @V60B7AB 19700000
- DC X'B2011000' @V60B7AB 19800000
- SPACE 19900000
- BZ CONNECTC BRANCH IF DISCONNECT COMPLETED @V60B7AB 20000000
- TM APSTAT4,POFFLINE PROCESSING AN OFFLINE COMMAND? @V60B7AB 20100000
- BNO WAIT016 NO, BRANCH @V60B7AB 20200000
- SPACE 20300000
- SIGNAL START START THE MAIN PROCESSOR @V60B7AB 20400000
- SPACE 20500000
- SIGNAL RESUME SIGNAL THE MAIN PROCESSOR TO RESUME @V60B7AB 20600000
- SPACE 20700000
- B ERCPP192 ISSUE DMKCPU192E @V60B7AB 20800000
- CONNECTC DS 0H @V60B7AB 20900000
- OI APSTAT1,PROCIO INDICATE THIS IS THE I/O PROC. @V60B7AB 21000000
- L R15,PREFIXB ADDRESS OTHER PROCESSOR'S PSA @V60B7AB 21100000
- NI APSTAT1-PSA(R15),X'FF'-PROCIO SET PROCIO TO 0 @V60B7AB 21200000
- SPACE 21300000
- * CONCS 0(R1) CONNECT THE CHANNEL SET @V60B7AB 21400000
- DC X'B2001000' @V60B7AB 21500000
- SPACE 21600000
- BZ CPPPROCF BRANCH, IF CONNECT SUCCESSFUL @V60B7AB 21700000
- SPACE 21800000
- WAIT016 LPSW CPWAIT16 LOAD WAIT STATE CODE X'016' @V60B7AB 21900000
- SPACE 22000000
- CPPPROCF DS 0H @V60B7AB 22100000
- LCTL C2,C2,FFS ENABLE FOR I/O INTERRUPTS @VMV0002 22200000
- LH R1,IPUADDR GET PROCESSOR ADDRESS @V60B7AB 22300000
- CALL DMKCVTBH CONVERT PROC ADDRESS TO PRINTABLE FORM @V60B7AB 22400000
- STCM R1,B'0011',CPPID623 MOVE IN PROCESSOR ADDRESS @V60B7AB 22500000
- LA R0,CPP623LN GET LENGTH OF MESSAGE @V60B7AB 22600000
- LA R1,CPP623MG GET ADDRESS OF MESSAGE TEXT @V60B7AB 22700000
- CALL DMKQCNWT,PARM=NORET+OPERATOR @VA12934 22800000
- CPPPROCG DS 0H @V60B7AB 22900000
- SR R4,R4 ZERO REGISTER 4 @VA09324 23000000
- SCNDSPRQ DS 0H @VA09324 23100000
- L R15,CPPDSPRQ GET ADDRESS OF QUEUE ANCHOR @VA09324 23200000
- C R15,CPEXFPNT-CPEXBLOK(,R15) IS QUEUE EMPTY? @VA09324 23300000
- BE OFFCONT YES, BRANCH @VA09324 23400000
- LR R1,R15 SAVE IN REGISTER 1 @VA09324 23500000
- SPACE 1 23600000
- USING CPEXBLOK,R1 @VA09324 23700000
- SPACE 1 23800000
- NXTCPXBK DS 0H @VA09324 23900000
- L R1,CPEXFPNT GET NEXT CPEXBLOK POINTER @VA09324 24000000
- CR R1,R15 AT END OF QUEUE? @VA09324 24100000
- BE STACKCPX YES, GO STACK A CPEXBLOK TO RETURN @VA09324 24200000
- MVC CPEXPROC,LPUADDR MAKE IT FOR THIS PROCESSOR @VA09324 24300000
- B NXTCPXBK GO DO NEXT CPEXBLOK IN QUEUE @VA09324 24400000
- STACKCPX DS 0H @VA09324 24500000
- LTR R4,R4 HAS DMKDSPRQ BEEN DRAINED ONCE? @VA09324 24600000
- BNZ OFFCONT YES, BRANCH @VA09324 24700000
- L R9,ASYSVM ADDRESS OF SYSTEM VMBLOK @VA09324 24800000
- L R14,PREFIXB ADDRESS OF OTHER PROC'S PSA @VA09324 24900000
- L R15,LASTUSER-PSA(R14) LASTUSER VMBLOK ADDRESS @VA09324 25000000
- ST R4,VMLOCK-VMBLOK(R15) UNLOCK VMBLOK @VA09324 25100000
- ST R9,LASTUSER-PSA(R14) LASTUSER EQUALS ASYSVM @VA09324 25200000
- LA R0,CPEXSIZE GET SIZE OF A CPEXBLOK @VA09324 25300000
- CALL DMKFREE GET STORAGE @VA09324 25400000
- STM R0,R15,CPEXREGS SAVE REGISTERS IN THE CPEXBLOK @VA09324 25500000
- LA R15,DMKCPPOI GET RETURN ADDRESS @VA09324 25600000
- ST R15,CPEXADD SAVE IN CPEXBLOK @VA09324 25700000
- SPACE 1 25800000
- DROP R1 25900000
- SPACE 1 26000000
- CALL DMKSTKCP GO STACK THE CPEXBLOK @VA09324 26100000
- GOTO DMKDSPCH GO TO THE DISPATCHER @VA09324 26200000
- DMKCPPOI DS 0H @VA09324 26300000
- L R4,F4 INDICATE DMKDSPRQ WAS DRAINED @VA09324 26400000
- B SCNDSPRQ GO SET ALL REQUESTS TO THIS PROCESSOR @VA09324 26500000
- OFFCONT DS 0H @VA09324 26600000
- MVC SAVEWRK8(1),ZEROES CLEAR FLAG BYTE @V5BC0AB 26700000
- L R11,ASYSVM GET ADDRESS OF SYSTEM VMBLOK @V5BC0AB 26800000
- CHARGE SYNC SYNCHRONIZE VMTTIME FOR THE SYSTEM VMBLOK @VMH0025 26900000
- L R11,VMPNT GET FIRST VMBLOK ADDR IN CYCLIC CHAIN X27000000
- @V5BC0AB 27100000
- LR R10,R11 SAVE ENDING ADDRESS @V5BC0AB 27200000
- SR R9,R9 CLEAR A REGISTER @V5BC0AB 27300000
- LOOP DS 0H @V5BC0AB 27400000
- L R1,=A(DMKMCTVM) ADDRESS OF USER TO BE TERMINATED@VA12934 27410000
- * BY DMKMCT 27420000
- C R11,0(R1) IS THIS USER GOING TO BE @VA12934 27430000
- * TERMINATED BY DMKMCT? 27440000
- BE NXTVM YES, DON'T CHANGE HIS VMBLOK @VA12934 27450000
- LR R1,R11 GET VMBLOK ADDRESS IN REGISTER 1 @V5BC0AB 27500000
- ST R9,VMLOCK YES, CLEAR LOCK WORD @V5BC0AB 27600000
- GETLOCK DS 0H @V5BC0AB 27700000
- LOCK OBTAIN,TYPE=VMBLOK,SPIN=NO LOCK THIS VMBLOK @V5BC0AB 27800000
- TM VMOSTAT,VMSHR VIRTUAL MACHINE RUNNING SHARED SEGMENTS? X27900000
- @V5BC0AB 28000000
- BZ LOOPVMOF NO, CHECK FOR DEFERRED TASK @V5BC0AB 28100000
- CLC VMSHRPRC,LPUADDR+1 POINTING TO THIS PROCESSORS SHARED X28200000
- @V5BC0AB 28300000
- * SEGMENTS 28400000
- BE LOOPVMOF YES, NO NEED TO SWITCH CHECK DEFERRED X28500000
- TASK @V5BC0AB 28600000
- CALL DMKVMASW SWITCH TO THIS PROCESSORS SHARED X28700000
- SEGMENTS 28800000
- LOOPVMOF DS 0H @V5BC0AB 28900000
- CHARGE SYNC SYNCHRONIZE VMTTIME @V5BC0AB 29000000
- LA R0,CPEXSIZE @V5BC0AB 29100000
- L R1,VMDFTPNT GET ADDR OF DEFER EXEC.BLOCK @VA11422 29200000
- LTR R1,R1 IS THERE ONE TO FREE? @VA11422 29300000
- BZ ZEROLOCK NO, CONTINUE @VA11422 29400000
- CALL DMKFRET FREE THE STORAGE @V5BC0AB 29500000
- ST R9,VMDFTPNT ZERO DEFER EXECUTION BLOCK ADDRESS @VMH0026 29600000
- ZEROLOCK DS 0H @VA11422 29700000
- ST R9,VMLOCK ZERO VMBLOK LOCK WORD @VMH0026 29800000
- NXTVM DS 0H @VA12934 29850000
- L R11,VMPNT GET ADDRESS OF NEXT VMBLOK @V5BC0AB 29900000
- CR R11,R10 END OF CHAIN? @V5BC0AB 30000000
- BNE LOOP NO, DO ALL VMBLOKS @V5BC0AB 30100000
- SPACE 30200000
- * FREE ALL THE AP RELATED CONTROL BLOCKS 30300000
- * FREE BACK POCKET FOR DMKFRE 30400000
- SR R0,R0 CLEAR A REGISTER @V5BC0AB 30500000
- L R10,CPPFREAP GET PTR TO FREE BACK POCKET ADDRESS X30600000
- @V5BC0AB 30700000
- IC R0,0(R10) GET SIZE IN DOUBLE WORDS @V5BC0AB 30800000
- ICM R1,B'0111',1(R10) GET ADDRESS OF BACK POCKET @V5BC0AB 30900000
- CALL DMKFRET FREE THE STORAGE @V5BC0AB 31000000
- SR R0,R0 CLEAR A REGISTER @V5BC0AB 31100000
- STCM R0,B'0111',1(R10) ZERO THE BACK POCKET ADDRESS @V5BC0AB 31200000
- * FREE THE CPEXBLOK FOR THE SWITCH MACRO 31300000
- LA R0,CPEXSIZE GET SIZE OF A CPEXBLOK @V5BC0AB 31400000
- L R1,PREFIXA ADDRESS ABSOLUTE ZERO PSA @V5BC0AB 31500000
- L R1,PSACPXBP-PSA(,R1) GET THE ADDRESS OF THE CPEXBLOK X31600000
- @V5BC0AB 31700000
- CALL DMKFRET FREE THE STORAGE @V5BC0AB 31800000
- MVC PSACPXBP(4),ZEROES CLEAR THE CPEXBLOK ADDRESS @V5BC0AB 31900000
- SPACE 32000000
- * FREE THE MACHINE CHECK CPEXBLOK 32100000
- SPACE 32200000
- USING MCHAREA,R5 @V5BC0AB 32300000
- SPACE 32400000
- L R7,PREFIXB ADDRESS OTHER PROCESSOR'S PSA @V5BC0AB 32500000
- L R5,AMCHAREA-PSA(,R7) GET ADDRESS OF MACHINE CHECK AREA X32600000
- @V5BC0AB 32700000
- L R1,MCHCPEX GET ADDRESS OF CPEXBLOK @V5BC0AB 32800000
- LA R0,CPEXSIZE GET SIZE OF THE CPEXBLOK @V5BC0AB 32900000
- CALL DMKFRET FREE THE STORAGE @V5BC0AB 33000000
- * FREE THE MACHINE CHECK RECORD FOR THE PROCESSOR GOING OFFLINE 33100000
- SPACE 33200000
- L R1,MCHREC GET ADDRESS OF MACHINE CHECK RECORD X33300000
- @V5BC0AB 33400000
- SR R9,R9 ZERO REGISTER 9 @V5BC0AB 33500000
- LH R9,CPUMCELL(R7) COMPUTE LENGTH OF MCHREC. ADD LENGTH X33600000
- @V5BC0AB 33700000
- * OF EXTENDED LOGOUT AREA 33800000
- LA R6,MCHLEN1 PLUS LEN OF DAMAGE ASSESSMENT AREA X33900000
- @V5BC0AB 34000000
- LA R0,MCHFIX(R9,R6) CALCULATE TOTAL LENGTH @V5BC0AB 34100000
- A R0,F7 GET LENGTH ON A DOUBLE WORD BOUNDARY X34200000
- @V5BC0AB 34300000
- SRL R0,3 DIVIDE BY 8 @V5BC0AB 34400000
- CALL DMKFRET FREE THE STORAGE @V5BC0AB 34500000
- SPACE 34600000
- DROP R5 @V5BC0AB 34700000
- SPACE 34800000
- L R10,=A(DMKSCHTQ) @V5BC0AB 34900000
- SPACE 35000000
- USING TRQBLOK,R10 @V5BC0AB 35100000
- SPACE 35200000
- L R10,TRQBFPNT GET FIRST ELEMENT ON QUEUE @V5BC0AB 35300000
- C R10,ACTIVTRQ POINTING TO TOP TRQ @V5BC0AB 35400000
- BE PSAMOVE YES, CONTINUE @V5BC0AB 35500000
- ST R10,ACTIVTRQ POINT TO TOP TRQ @V5BC0AB 35600000
- SCKC TRQBVAL SET CLOCK COMPARATOR @V5BC0AB 35700000
- SPACE 35800000
- DROP R10 @V5BC0AB 35900000
- SPACE 36000000
- * THE FOLLOWING CODE MOVES ALL OF THE FIELDS MAINTAINED IN THE ABSOLUTE 36100000
- * ZERO PSA TO THE CURRENT PSA. THEN THE CURRENT PSA IS COPIED INTO 36200000
- * THE ABSOLUTE ZERO PSA. THE PSAS ARE FRETTED, AND PREFIXING IS 36300000
- * STOPPED. 36400000
- * 36500000
- SPACE 36600000
- PSAMOVE DS 0H @V5BC0AB 36700000
- L R2,PREFIXA ADDRESS THE ABSOLUTE ZERO PSA @V5BC0AB 36800000
- MVC TTSEGCNT(4),TTSEGCNT-PSA(R2) @V5BC0AB 36900000
- MVC PAGERATE(2),PAGERATE-PSA(R2) @V5BC0AB 37000000
- MVC CPID(4),CPID-PSA(R2) @V5BC0AB 37100000
- MVC TRACSTRT(12),TRACSTRT-PSA(R2) COPY TRACSTRT, TRACEND, X37200000
- @V5BC0AB 37300000
- * AND TRACCURR 37400000
- MVC PAGECUR(16),PAGECUR-PSA(R2) COPY @VA09843 37500000
- * PAGECUR,PAGENXT, 37600000
- * MONNEXT,PAGEND 37700000
- MVC CPAPRINP(1),CPAPRINP-PSA(R2) COPY APR IN PROCESS@VA12934 37730000
- * INDICATOR 37760000
- SR R14,R14 ADDRESS CURRENT PSA @V5BC0AB 37800000
- L R15,F4096 GET FROM MVCL LENGTH @V5BC0AB 37900000
- L R3,F4096 GET TO MVCL LENGTH @V5BC0AB 38000000
- * REGISTER HAS THE TO MVCL ADDRESS 38100000
- MVCL R2,R14 COPY CURRENT PSA TO ABSOLUTE ZERO PSA X38200000
- @V5BC0AB 38300000
- SPACE 38400000
- SPX ZEROES STOP PREFIXING @V5BC0AB 38500000
- SPACE 38600000
- MVC PREFIXA(8),ZEROES SET PREFIXA AND PREFIXB TO ZEROES X38700000
- @V5BC0AB 38800000
- L R11,SAVER11 GET CURRENT VMBLOK ADDRESS @VMH0025 38900000
- CHARGE STOP STOP CPU TIMER @VMH0025 39000000
- CHARGE SYNC SYNCHRONIZE VMTTIME @VMH0025 39100000
- LA R10,VMTTIME-VMBLOK GET VMTTIME DISPLACEMENT @VMH0025 39200000
- ST R10,TIMEDISP SET UP DISPLACEMENT IN PSA @VMH0025 39300000
- STCTL C0,C0,CPCREG0 SAVE CONTROL REGISTER ZERO @VMH0029 39400000
- NC CPCREG0+2(2),MFAESEXT TURN OFF MFA, EMS, EXTS, @VMH0029 39500000
- * AND TOD CLOCK SYNC CHECK INTERRUPT BITS 39600000
- LCTL C0,C0,CPCREG0 LOAD MODIFIED CR0 (CR0 UP MODE) @VMH0029 39700000
- SPACE 39800000
- NI APSTAT1,FF-APUOPER SET APUOPER OFF @V5BC0AB 39900000
- CHARGE START RESET THE CPU TIMER @VMH0025 40000000
- L R10,CPPSCHCA GET ADDRESS OF DMKSCH AP WAIT @VMH0008 40100000
- * VALUES 40200000
- TM APSTAT1,PROCIPL IS THIS THE IPL'ED PROCESSOR? @VMV0008 40300000
- BO SETSCH YES, RESET THE SECOND SET OF VALUES @VMV0008 40400000
- L R10,CPPSCHCU ADDRESS FIRST SET OF VALUES @VMV0008 40500000
- SETSCH DS 0H @VMV0008 40600000
- MVC 0(16,R10),INITWAIT RESET THE SAVED WAIT @VMH0008 40700000
- * INFORMATION TO THE INITIAL VALUES 40800000
- L R10,CPPPAGWS GET ADDRESS OF SAVED WAIT VALUES @VMV0007 40900000
- * IN DMKPAG 41000000
- TM APSTAT1,PROCIPL IS THIS THE IPL'ED PROCESSOR? @VMV0008 41100000
- BNO SETPAG NO, RESET THE FIRST SET OF VALUES @VMV0008 41200000
- LA R10,8(,R10) ADDRESS THE SECOND SET OF VALUES @VMV0007 41300000
- SETPAG DS 0H @VMV0008 41400000
- MVC 0(8,R10),WAITSAV8 SET TO INITIAL VALUE @VMV0007 41500000
- SLR R15,R15 CLEAR REGISTER 15 @VA12934 41600000
- ST R15,XCPEND CLEAR OUT XCPEND FIELD @VA13464 41700000
- L R2,CPPEXTST ADDR OF FIELD CONTAINING @VA10010 41800000
- * LOGICAL ADDR. OF STOPPED PROCESSOR 41900000
- STH R15,0(,R2) SET DMKEXTST TO ZEROES @VA10010 42000000
- SPACE 42100000
- STH R15,IPUADDRX ZERO IPUADDRX @V5BC0AB 42200000
- L R2,=A(DMKLOKSY) GET ADDRESS OF SYSTEM LOCK @VMH0028 42300000
- STH R15,LPUADDRX ZERO LPUADDRX @V5BC0AB 42400000
- ST R15,0(,R2) ZERO THE GLOBAL SYSTEM LOCK @VMH0028 42500000
- ST R15,UNSHRVM CLEAR ADDRESS OF VMBLOK PENDING @VMH0020 42600000
- * UNSHARE 42700000
- ST R15,STACKVM CLEAR STACKED (LOCKED) VMBLOK @VMH0020 42800000
- * ADDRESS 42900000
- L R2,CPPDMPAA GET PTR TO ATTACH. PROC'S ADDR @V5BC0AB 43000000
- MVC 0(2,R2),IPUADDR SET IT TO REMAINING PROCESSOR ADDRESS X43100000
- @V5BC0AB 43200000
- L R2,CPPDMPMA GET ADDRESS IN DMKDMP ADDRESS OF @VMV0013 43300000
- * THE ADDRESS OF THE MAIN PROCESSOR 43400000
- MVC 0(2,R2),IPUADDR MOVE IN ADDRESS OF REMAINING @VMV0013 43500000
- * PROCESSOR 43600000
- L R1,CPPDMPSA GET PTR TO PSA ADDRESSES @V5BC0AB 43700000
- L R7,4(,R1) GET PSA ADDRESS OF PROC. GOING OFFLINE X43800000
- @VA12934 43900000
- L R15,=A(DMKMCTFL) ADDRESS OF DMKMCT'S FLAGS @VA12934 43905000
- TM 0(R15),MCTFS HAS DMKMCTFS BEEN CALLED? (A SIGP@VA12934 43910000
- * TO THE OTHER PROC. WAS UNSUCCESSFUL 43915000
- BZ PSAFRET1 NO, CONTINUE NORMALLY @VA12934 43920000
- SPACE 1 43925000
- * IF DMKMCTFS HAS BEEN ENTERED, A SIGP TO THE OTHER 43930000
- * PROCESSOR HAS BEEN UNSUCCESSFUL. THE OTHER PROCESSOR 43935000
- * COULD POSSIBLY STILL BE RUNNING -- IT HAS NOT BEEN 43940000
- * SUCCESSFULLY STOPPED. DO NOT RELEASE THE OTHER 43945000
- * PROCESSOR'S PSA PAGE IN THIS CASE. THIS WILL 43950000
- * PREVENT A STORAGE OVERLAY IF THE OTHER PROCESSOR 43955000
- * SHOULD ACCESS ITS PSA. IN AN ATTEMPT TO CAUSE 43960000
- * THE OTHER PROCESSOR TO STOP RUNNING, SET ALL 43965000
- * LOCKWORDS TO LOOK AS THOUGH THIS PROCESSOR OWNS 43970000
- * THE LOCKS -- SINCE APUOPER IS STILL ON IN THE 43975000
- * OTHER PROCESSOR'S PSA, IF IT TRIES TO OBTAIN A LOCK 43980000
- * IT WILL BE BLOCKED. 43985000
- SPACE 1 43990000
- MVC PREFIXB-PSA(4,R7),ZEROES ZERO OTHER PROC'S @VA12934 43995000
- * PREFIXB FIELD 44000000
- L R15,=A(DMKMCTPF) ADDRESS OF PSA PAGE ADDRESS @VA12934 44005000
- ST R7,0(R15) REMEMBER THE ADDRESS OF THE @VA12934 44010000
- * OTHER PROCESSOR'S PSA PAGE. IF THE 44015000
- * PROCESSOR SHOULD BE VARIED ONLINE 44020000
- * AGAIN, THE SAME PAGE WILL BE USED 44025000
- * FOR ITS PSA. 44030000
- SPACE 1 44035000
- * SET ALL LOCKWORDS TO APPEAR 'OWNED' BY THIS PROCESSOR 44040000
- SLR R0,R0 CLEAR REGISTER 0 @VA12934 44045000
- LH R14,LPUADDR LOGICAL ADDRESS OF THIS PROC. @VA12934 44050000
- LA R15,LOCKTAB ADDRESS OF TABLE OF LOCKWORDS @VA12934 44055000
- LOCKLOOP L R1,0(R15) ADDRESS OF A LOCKWORD FROM TABLE @VA12934 44060000
- LTR R1,R1 AT END OF TABLE? @VA12934 44065000
- BM PSAFRET2 YES, BRANCH @VA12934 44070000
- BAL R7,SETLOCK GO SET LOCKWORD @VA12934 44075000
- LA R15,4(R15) POINT TO NEXT LOCKWORD IN TABLE @VA12934 44080000
- B LOCKLOOP LOOP TO SET NEXT LOCKWORD @VA12934 44085000
- SPACE 1 @VA12934 44090000
- PSAFRET1 SRL R7,8 LEAVE PAGE NUMBER * 16 @VA12934 44095000
- AL R7,ACORETBL CALCULATE THE CORTABLE ENTRY ADDRESS X44100000
- @V5BC0AB 44200000
- CALL DMKPTRFT FREE THE STORAGE @V5BC0AB 44300000
- PSAFRET2 L R1,CPPDMPSA @VA12934 44400000
- L R7,0(,R1) GET PSA ADDRESS OF REMAINING PROCESSOR X44500000
- @V5BC0AB 44600000
- SRL R7,8 LEAVE PAGE NUMBER * 16 @V5BC0AB 44700000
- AL R7,ACORETBL CALCULATE THE CORTABLE ENTRY ADDRESS X44800000
- @V5BC0AB 44900000
- CALL DMKPTRFT FREE A PAGE OF STORAGE @V5BC0AB 45000000
- L R1,CPPDMPSA GET PTR TO PSA ADDRESSES @V5BC0AB 45100000
- MVC 0(8,R1),ZEROES SET THE PSA ADDRESSES TO ZEROES @V5BC0AB 45200000
- ************************************************************** 45300000
- * THE SYSTEM IS NOW IN UP MODE * 45400000
- ************************************************************** 45500000
- SPACE 45600000
- * 45700000
- * THE FOLLOWING CODE RELEASES THE SYSTEM RESOURCES DESCRIBED BY THE 45800000
- * OFFLINE PROCESSOR'S COPY OF PAGE AND SWAP TABLES FOR SHARED SEGMENTS 45900000
- * 46000000
- L R11,ASYSVM GET ADDRESS OF SYSTEM VMBLOK @VMH0026 46100000
- L R11,VMPNT GET FIRST ADDR OF FIRST VMBLOK @VMH0026 46200000
- LR R10,R11 SAVE ADDRESS IN REGISTER 10 @VMH0026 46300000
- WAITONIO DS 0H @VMH0026 46400000
- TM VMRSTAT,VMPGWAIT IS VIRTUAL MACHINE WAITING @VMH0026 46500000
- * FOR PAGING I/O TO COMPLETE? 46600000
- BNO NEXTVMBK NO, BRANCH @VMH0026 46700000
- CALL DMKPTRPW GO WAIT FOR I/O TO COMPLETE @VMH0026 46800000
- NEXTVMBK DS 0H @VMH0026 46900000
- L R11,VMPNT GET NEXT VMBLOK ADDRESS @VMH0026 47000000
- CLR R11,R10 END OF CHAIN? @VMH0026 47100000
- BNE WAITONIO NO, BRANCH @VMH0026 47200000
- L R6,=A(DMKVMAS1) GET THE POINTER TO THE SHRTABLE ANCHOR X47300000
- @V5BC0AB 47400000
- L R7,0(,R6) GET ADDRESS OF FIRST SHRTABLE @V5BC0AB 47500000
- CR R7,R6 ARE THERE ANY SHRTABLES? @V5BC0AB 47600000
- BE UPMODE NO, CONTINUE WITH OFFLINE PROCESSING X47700000
- @V5BC0AB 47800000
- OI APSTAT2,CPPTLBR INDICATE A PTLB IS NECESSARY @V5BC0AB 47900000
- * NOTE THAT AT VARY ONLINE TIME, AS PART OF THE SIGNAL INITIAL 48000000
- * PROGRAM RESET (IPR), A PTLB IS DONE ON THE PROCESSOR BEING 48100000
- * SIGNALLED. 48200000
- SPACE 48300000
- USING SHRTABLE,R7 @V5BC0AB 48400000
- SPACE 48500000
- SHRTBLNX DS 0H @V5BC0AB 48600000
- TM SHRFLAG,SHRNOPRT IS NAMED SYSTEM UNPROTECTED? @VMI0032 48700000
- BNO PROTECT NO, BRANCH @VMI0032 48800000
- L R7,SHRFPNT GET ADDRESS OF NEXT SHRTABLE @VMI0032 48900000
- LA R7,0(,R7) ERASE SHRFLAG VALUE @VMI0085 49000000
- CR R7,R6 ANY MORE SHRTABLES? @VMI0032 49100000
- BE CHKCCPDU NO, BRANCH @VMI0032 49200000
- B SHRTBLNX YES, GO CHECK FOR PROTECT=NO @VMI0032 49300000
- PROTECT DS 0H @VMI0032 49400000
- L R10,SHRSEGCT GET NUMBER OF SEGMENTS @V5BC0AB 49500000
- LR R14,R10 GET NUMBER OF SEGMENTS @V5BC0AB 49600000
- LA R3,SHRSEGNM GET ADDRESS OF SHRSEGNM FIELD @V5BC0AB 49700000
- SHRPGT1 DS 0H @V5BC0AB 49800000
- LA R3,L'SHRPAGE(,R3) GET POSSIBLE ADDRESS OF 1ST SHRPAGE X49900000
- @V5BC0AB 50000000
- S R14,F4 UP TO 4 SEG. NOS/WORD @V5BC0AB 50100000
- BP SHRPGT1 LOOP UNTIL ADDRESSING 1ST SHRPAGE ENTRY X50200000
- @V5BC0AB 50300000
- SPACE 50400000
- USING SHRPAGE,R3 @V5BC0AB 50500000
- SPACE 50600000
- SHRPGTNX DS 0H @V5BC0AB 50700000
- L R4,SHRPAGE GET PAGE TABLE ADDRESS @V5BC0AB 50800000
- N R4,=A(X'FFFFFE') LEAVE PGT ADDRESS ONLY @V5BC0AB 50900000
- SL R4,F16 BACK UP TO HEADER @V5BC0AB 51000000
- TM APSTAT1,PROCIPL RUNNING ON MAIN (IPL) PROC? @V60B7AA 51100000
- BZ GOTPGT NO-WE ARE POINTING TO THE CORRECT@V60B7AA 51200000
- * (I.E., FIRST) SET OF TABLES 51300000
- LA R4,PAGBMP(,R4) ADDRESS THE ATT. PROC'S PGT @V5BC0AB 51400000
- GOTPGT SLR R9,R9 CLEAR REGISTER 9 @V60B7AA 51500000
- IC R9,SHRPAGE GET FIRST BYTE OF SHRPAGE @V5BC0AB 51600000
- SRL R9,4 LEAVE NUMBER OF PAGES MINUS ONE @V5BC0AB 51700000
- AL R9,F1 ADD ONE TO NUMBER OF PAGES @V5BC0AB 51800000
- SPACE 51900000
- USING PAGTABLE,R4 @V5BC0AB 52000000
- SPACE 52100000
- LA R8,PAGCORE GET POINTER TO 1ST PAGE ADDRESS @V5BC0AB 52200000
- SPACE 52300000
- USING PAGCORE,R8 @V5BC0AB 52400000
- SPACE 52500000
- LA R5,PAGTSWP(,R4) GET ADDRESS OF SWPTABLE @V5BC0AB 52600000
- SPACE 52700000
- USING SWPTABLE,R5 @V5BC0AB 52800000
- SPACE 52900000
- L R11,SWPVM GET VMBLOK ADDRESS @V5BC0AB 53000000
- LA R5,SWPFLAG ADDRESS THE FIRST SWPT ENTRY @V5BC0AB 53100000
- SPACE 53200000
- DROP R5 @V5BC0AB 53300000
- SPACE 53400000
- USING SWPFLAG,R5 @V5BC0AB 53500000
- SPACE 53600000
- DOAPGTE DS 0H @V5BC0AB 53700000
- TM PAGCORE+1,PAGINVAL IS PAGE IN CORE? @V5BC0AB 53800000
- BO SLOTRLSE NO, SEE IF SLOT MAY BE RELEASED @V5BC0AB 53900000
- LH R2,PAGCORE LOAD A PAGCORE ENTRY @V5BC0AB 54000000
- N R2,=A(X'FFF0') LEAVE ONLY PAGE NUMBER * 16 @V5BC0AB 54100000
- A R2,ACORETBL GET CORE TABLE ENTRY ADDRESS @V5BC0AB 54200000
- SPACE 54300000
- USING CORTABLE,R2 @V5BC0AB 54400000
- SPACE 54500000
- CNTRS DS 0H @V5BC0AB 54600000
- TM CORFLAG,CORRSV IS PAGE RESERVED? @V5BC0AB 54700000
- BZ DECPTRSC NO, BRANCH @V5BC0AB 54800000
- L R15,=A(DMKPTRRC) GET RESERVED PAGE COUNT ADDRESS X54900000
- @V5BC0AB 55000000
- L R14,0(,R15) PICK UP COUNT FIELD @V5BC0AB 55100000
- BCTR R14,0 DECREMENT COUNT @V5BC0AB 55200000
- ST R14,0(,R15) STORE NEW COUNT @V5BC0AB 55300000
- L R15,=A(DMKDSPNP) GET ADDRESS OF PAGEABLE PAGE COUNT X55400000
- @V5BC0AB 55500000
- LA R14,1 GET INCREMENT @V5BC0AB 55600000
- AL R14,0(,R15) INCREMENT COUNT @V5BC0AB 55700000
- ST R14,0(,R15) STORE NEW COUNT @V5BC0AB 55800000
- DECPTRSC DS 0H @V5BC0AB 55900000
- L R15,=A(DMKPTRSC) GET ADDRESS OF SHARED PAGES COUNT X56000000
- @V5BC0AB 56100000
- L R14,0(,R15) GET COUNT @V5BC0AB 56200000
- BCTR R14,0 DECREMENT COUNT @V5BC0AB 56300000
- ST R14,0(,R15) STORE COUNT @V5BC0AB 56400000
- L R14,CORVM GET VMBLOK ADDRESS OF OWNER @V5BC0AB 56500000
- LH R15,VMPAGES-VMBLOK(,R14) DECREMENT FRAME COUNT @V5BC0AB 56600000
- S R15,F1 BY ONE @V5BC0AB 56700000
- BM CPP1 COUNT IS NEGATIVE, TERMINATE CP @V5BC0AB 56800000
- STH R15,VMPAGES-VMBLOK(,R14) STORE NEW COUNT @V5BC0AB 56900000
- ZEROCORE DS 0H @V5BC0AB 57000000
- OI VMESTAT-VMBLOK(R14),VMINVPAG INDICATE INVALID PAGE X57100000
- @V5BC0AB 57200000
- XC CORPGPNT(4),CORPGPNT ZERO PAGE TABLE ADDRESS @V5BC0AB 57300000
- MVC PAGCORE,F8+2 INVALIDATE PAGE TABLE ENTRY @V5BC0AB 57400000
- ST R7,SAVEWRK7 SAVE SHRTABLE POINTER @V5BC0AB 57500000
- TM CORFLAG,CORIOLCK IS PAGE LOCKED FOR I/O? @V5BC0AB 57600000
- BZ PAGEFRET NO, GO FREE PAGE @V5BC0AB 57700000
- SR R0,R0 CLEAR REGISTER ZERO @V5BC0AB 57800000
- STCM R0,B'0111',CORSWPNT+1 CLEAR SWAP TABLE POINTER @V5BC0AB 57900000
- NI CORFLAG,FF-CORSHARE-CORRSV CLEAR SHARE AND RESERVED 58000000
- * @V5BC0AB 58100000
- B SLOTRLSE GO TEST FOR SLOT RELEASE @V5BC0AB 58200000
- PAGEFRET DS 0H @V5BC0AB 58300000
- LR R7,R2 R7 HAS THE ADDRESS OF CORTABLE ENTRY X58400000
- @V5BC0AB 58500000
- CALL DMKPTRFT RETURN PAGE TO FREE LIST @V5BC0AB 58600000
- L R7,SAVEWRK7 RESTORE SHRTABLE ADDRESS @V5BC0AB 58700000
- SLOTRLSE DS 0H @V5BC0AB 58800000
- TM SWPFLAG,SWPRECMP CAN DASD SLOT BE RELEASED? @V5BC0AB 58900000
- BO BMPCORE1 NO, BRANCH @V5BC0AB 59000000
- DROP R2 @V5BC0AB 59100000
- SPACE 59200000
- SR R2,R2 CLEAR REGISTER @V5BC0AB 59300000
- IC R2,SWPCODE GET VOLUME INDEX CODE @V5BC0AB 59400000
- SLL R2,3 GET VOLUME INDEX CODE @V5BC0AB 59500000
- AL R2,=A(DMKSYSOW) POINT TO OWNED LIST ENTRY @V5BC0AB 59600000
- LH R2,OWNDRDEV-OWNDLIST(,R2) GET RDEVBLOK INDEX @V5BC0AB 59700000
- SLL R2,3 CONVERT TO BYTE INDEX @V5BC0AB 59800000
- AL R2,ARIODV ADD TO ADDRESS OF FIRST RDEVBLOK @V5BC0AB 59900000
- SPACE 60000000
- USING RDEVBLOK,R2 @V5BC0AB 60100000
- SPACE 60200000
- LA R15,VMPDRUM-VMBLOK ASSUME ON DRUM @V5BC0AB 60300000
- CLI RDEVTYPE,TYP2305 IS IT A DRUM? @V5BC0AB 60400000
- BE DRUM YES, BRANCH IT IS A DRUM @V5BC0AB 60500000
- LA R15,VMPDISK-VMBLOK NO, RESET TO DISK COUNTER @V5BC0AB 60600000
- DRUM DS 0H @V5BC0AB 60700000
- LH R0,0(R15,R11) GET COUNTER @V5BC0AB 60800000
- S R0,F1 DECREMENT @V5BC0AB 60900000
- STH R0,0(R15,R11) STORE NEW COUNT @V5BC0AB 61000000
- SPACE 61100000
- DROP R2 @V5BC0AB 61200000
- SPACE 61300000
- CALL DMKPGTSP RELEASE THE SYSTEM DASD SLOT @V5BC0AB 61400000
- MVI SAVEWRK8,YES INDICATE CCPD'S MUST BE UPDATED @V5BC0AB 61500000
- * IN THE ATTCHED PROC'S COPY OF PGT/SWPT 61600000
- * I.E., AT LEAST ONE SWPRECMP FLAG WAS OFF 61700000
- BMPCORE1 DS 0H @V5BC0AB 61800000
- LA R5,8(,R5) ADDRESS NEXT SWAP TABLE ENTRY @V5BC0AB 61900000
- LA R8,L'PAGCORE(,R8) ADDRESS THE NEXT POSSIBLE PGT POINTER X62000000
- @V5BC0AB 62100000
- BCT R9,DOAPGTE AND PROCESS IT, IF THERE IS ANOTHER X62200000
- @V5BC0AB 62300000
- LA R3,L'SHRPAGE(,R3) ADDRESS NEXT SHRPAGE ENTRY @V5BC0AB 62400000
- BCT R10,SHRPGTNX IF THERE IS ANOTHER @V5BC0AB 62500000
- L R7,SHRFPNT GET NEXT SHRTABLE ADDRESS @V5BC0AB 62600000
- CR R7,R6 ARE THERE ANY MORE SHARE TABLES? @V5BC0AB 62700000
- BNE SHRTBLNX BRANCH IF THERE ARE MORE @V5BC0AB 62800000
- SPACE 62900000
- DROP R3,R4,R5,R7,R8 @V5BC0AB 63000000
- CHKCCPDU DS 0H @VMI0032 63100000
- SPACE 63200000
- CLI SAVEWRK8,YES MUST THE CCPDS BE UPDATED? @V5BC0AB 63300000
- BNE UPMODE NO, CONTINUE OFFLINE PROCESSING @V5BC0AB 63400000
- SPACE 4 63500000
- * THE FOLLOWING CODE WILL REINITIALIZE THE CCPDS OF THE * 63600000
- * OFFLINE PROCESSOR'S SET OF SWAP TABLES. 63700000
- L R6,=A(DMKVMAS1) GET THE POINTER TO THE SHRTABLE ANCHOR X63800000
- @V5BC0AB 63900000
- L R7,0(,R6) GET THE ADDRESS OF THE FIRST SHRTABLE X64000000
- @V5BC0AB 64100000
- BAL R5,GETSNTBL BRING IN AND LOCK THE SYSTEM NAME TABLE X64200000
- @V5BC0AB 64300000
- SPACE 64400000
- USING SYSTBL,R4 @V5BC0AB 64500000
- SPACE 64600000
- USING SHRTABLE,R7 @V5BC0AB 64700000
- SPACE 64800000
- SYSNAMEL DS 0H FIND THE SYSTABLE FOR THIS SHRTABLE X64900000
- @V5BC0AB 65000000
- TM SHRFLAG,SHRNOPRT IS NAMED SYSTEM UNPROTECTED? @VMI0032 65100000
- BNO COMPAREN NO, BRANCH @VMI0032 65200000
- L R7,SHRFPNT GET NEXT SHRTABLE ADDRESS @VMI0032 65300000
- LA R7,0(,R7) ERASE SHRFLAG VALUE @VMI0085 65400000
- CR R7,R6 ANY MORE SHRTABLES? @VMI0032 65500000
- BNE SYSNAMEL YES, BRANCH @VMI0032 65600000
- BAL R5,UNLSNTBL GO UNLOCK DMKSNT @VMI0032 65700000
- B UPMODE GO FINISH OFFLINE PROCESSING @VMI0032 65800000
- COMPAREN DS 0H @VMI0032 65900000
- CLC SYSNAME,SHRNAME DO THE NAMES MATCH? @V5BC0AB 66000000
- BE NAMEEQU YES, FOUND THE SYSTABLE FOR THE SHRTABLE X66100000
- @V5BC0AB 66200000
- L R3,SYSPNT GET DISPLACEMENT OF NEXT ENTRY @V5BC0AB 66300000
- AR R4,R3 COMPUTE ADDR OF NEXT ENTRY @V5BC0AB 66400000
- LTR R3,R3 LAST ENTRY @V5BC0AB 66500000
- BNZ SYSNAMEL LOOP UNTIL A MATCH IS FOUND @V5BC0AB 66600000
- SPACE 66700000
- * A CORRESPONDING SYSTABLE WAS NOT FOUND FOR THE SHARED SYSTEM. 66800000
- * THIS IS AN ERROR CONDITION. ISSUE ABEND, CPP002 66900000
- * 67000000
- NI APSTAT4,FF-POFFLINE CLEAR VARY IN PROCESS FLAG @V5BC0AB 67100000
- BAL R5,UNLSNTBL UNLOCK THE SNT @V5BC0AB 67200000
- B CPP2 ABEND CP @V5BC0AB 67300000
- * 67400000
- * 67500000
- NAMEEQU DS 0H @V5BC0AB 67600000
- LA R1,SYSVOL GET ADDRESS OF VOLUME SERIAL @V5BC0AB 67700000
- LA R0,L'SYSVOL GET LENGTH OF SERIAL @V5BC0AB 67800000
- CALL DMKSCNVS GET DEVICE BLOCK @V5BC0AB 67900000
- BZ DEVBK CONTINUE IF FOUND @V5BC0AB 68000000
- L R4,SAVEWRK4 GET ADDRESS OF 1ST SYSTABLE ENTRY X68100000
- @V5BC0AB 68200000
- L R7,SHRFPNT SKIP TO NEXT SHRTABLE @V5BC0AB 68300000
- CR R7,R6 END OF SHRTABLE CHAIN? @V5BC0AB 68400000
- BNE SYSNAMEL NO, PROCESS ALL SHRTABLES @V5BC0AB 68500000
- BAL R5,UNLSNTBL NO MORE. UNLOCK THE SNT @V5BC0AB 68600000
- B UPMODE CONTINUE OFFLINE PROCESSING @V5BC0AB 68700000
- DEVBK DS 0H @V5BC0AB 68800000
- USING RDEVBLOK,R1 @V5BC0AB 68900000
- L R5,SYSSTART LOAD CCPD OF START OF SYSTEM @V5BC0AB 69000000
- * ON SYSVOL 69100000
- IC R5,RDEVCODE+1 INSERT INDEX INTO OWNED LIST FOR X69200000
- @V5BC0AB 69300000
- * SYSVOL 69400000
- LA R0,PAGE2314 MAX. PAGES/CYL ON 2314 @V5BC0AB 69500000
- TM RDEVTYPE,TYP2314 2314? @V5BC0AB 69600000
- BO SAVEMAXP YES @V5BC0AB 69700000
- LA R0,PAGE3330 MAX. PAGES/CYL ON 3330 @V5BC0AB 69800000
- TM RDEVTYPE,TYP3330 3330? @V5BC0AB 69900000
- BO SAVEMAXP YES @V5BC0AB 70000000
- LA R0,PAGE3350 MAX. PAGES/CYL ON 3350 @V5BC0AB 70100000
- CLI RDEVTYPE,TYP3350 3350? @V5BC0AB 70200000
- BE SAVEMAXP YES @V5BC0AB 70300000
- LA R0,PAGE3375 Max. pages/cyl on 3375 HRC106DK 70300100
- CLI RDEVTYPE,TYP3375 3375? HRC106DK 70300200
- BE SAVEMAXP Yes HRC106DK 70300300
- LA R0,PAGE3380 Max. pages/cyl on 3380 HRC106DK 70300400
- CLI RDEVTYPE,TYP3380 3380? HRC106DK 70300500
- BE SAVEMAXP Yes HRC106DK 70300600
- LA R0,PAGE2305 MAX. PAGES/CYL ON 2305 AND 3340 @V5BC0AB 70400000
- * 70500000
- SPACE 70600000
- DROP R1 @V5BC0AB 70700000
- SPACE 70800000
- SAVEMAXP DS 0H @V5BC0AB 70900000
- SLL R0,8 @V5BC0AB 71000000
- ST R0,SAVEWRK9 SAVE PAGES/CYL VALUE @V5BC0AB 71100000
- L R6,F256 GET INCREMENT CONSTANT FOR CCPDS @V5BC0AB 71200000
- AR R5,R6 BUMP TO NEXT CCPD @V5BC0AB 71300000
- * THIS MOVES PASS THE PAGE CONTAINING 71400000
- * KEYS, ETC. 71500000
- LR R1,R5 PUT CCPD IN R1 @V5BC0AB 71600000
- N R1,WHEXFF00 LEAVE ONLY PAGE NUMBER @V5BC0AB 71700000
- CL R1,SAVEWRK9 LAST PAGE ON THIS CYLINDER? @V5BC0AB 71800000
- BNH SHRCT NO, BRANCH CYL OK @V5BC0AB 71900000
- A R5,HEX10000 YES, BUMP TO NEXT CYLINDER @V5BC0AB 72000000
- ICM R5,B'0010',F1+3 SET PAGE NUMBER TO 1 @V5BC0AB 72100000
- SHRCT DS 0H @V5BC0AB 72200000
- * 72300000
- * 72400000
- L R14,SHRSEGCT GET NO. OF SHARED SEGMENTS @VMH0007 72500000
- SLR R10,R10 ZERO REGISTER 10 @VMH0007 72600000
- LA R3,SHRSEGNM POINT TO SHRSEGNM FIELD @V5BC0AB 72700000
- SHRPGT DS 0H COMPUTE ADDRESS OF FIRST SHRPAGE FIELD X72800000
- @V5BC0AB 72900000
- LA R3,L'SHRPAGE(,R3) GET NEXT POSSIBLE SHRPAGE POINTER X73000000
- @V5BC0AB 73100000
- S R14,F4 SUBTRACT 4 (4 POSSIBLE ENTRIES/WORD) X73200000
- @V5BC0AB 73300000
- BP SHRPGT LOOP UNTIL R3 ADDRESSES 1ST SHRPAGE X73400000
- ENTRY 73500000
- ST R3,SAVEWRK3 SAVE SHRPAGE POINTER @V5BC0AB 73600000
- * CALCULATE THE ADDRESS OF SYSHRSEG 73700000
- LH R3,SYSPAGLN GET COUNT OF SYSPAGNM ENTRIES @V5BC0AB 73800000
- ST R3,SAVEWRK8 SAVE NUMBER OF SYSPAGNM ENTRIES @V5BC0AB 73900000
- SLL R3,2 TIMES FOUR @V5BC0AB 74000000
- LA R3,SYSPAGNM(R3) R3 = ADDRESS OF SYSSEGLN @V5BC0AB 74100000
- LA R3,2(,R3) R3 = ADDRESS OF SYSHRSEG @V5BC0AB 74200000
- * 74300000
- USING SYSHRSEG,R3 @V5BC0AB 74400000
- SPACE 74500000
- SR R2,R2 INDEX THRU SYSPAGNM ENTRIES @V5BC0AB 74600000
- * 74700000
- LOOPPAGE DS 0H @V5BC0AB 74800000
- L R8,SYSPAGNM(R2) LOAD RANGE OF PAGES @V5BC0AB 74900000
- ST R2,SAVEWRK2 SAVE SYSPAGNM INDEX @V5BC0AB 75000000
- SRDL R8,16 RIGHT JUSTIFY START PAGE IN R8 @V5BC0AB 75100000
- SRL R9,16 RIGHT JUSTIFY END PAGE IN R9 @V5BC0AB 75200000
- SLL R8,12 COMPUTE START PAGE ADDRESS @V5BC0AB 75300000
- SLL R9,12 COMPUTE END PAGE ADDRESS @V5BC0AB 75400000
- * 75500000
- GETSEGNO DS 0H @V5BC0AB 75600000
- LR R1,R8 PUT PAGE ADDRESS IN R1 @V5BC0AB 75700000
- SRL R1,16 RIGHT JUSTIFY SEGMENT NO. @V5BC0AB 75800000
- SR R2,R2 CLEAR REGISTER 2 @V5BC0AB 75900000
- IC R2,SYSHRSEG(R10) GET SHARED SEGMENT NUMBER @VMH0007 76000000
- LR R14,R2 PUT SHARED SEG NO. IN REGISTER 14 X76100000
- @V5BC0AB 76200000
- SLL R14,16 FORM SEGMENT START PAGE ADDRESS @V5BC0AB 76300000
- AL R14,HEX10000 ADD IN 16 * 4096 @V5BC0AB 76400000
- ST R14,SAVEWRK6 SAVE SEGMENT END PAGE ADDRESS @V5BC0AB 76500000
- L R14,SAVEWRK3 YES,THEY MATCH. GET SHRPAGE PTR @VMH0007 76600000
- L R14,0(,R14) ADDRESS THE PAGE TABLE (LOAD @VMH0007 76700000
- * SHRPAGE) 76800000
- N R14,=A(X'FFFFFE') LEAVE PGT ADDRESS ONLY @VMH0007 76900000
- SL R14,F16 BACK UP TO PAGE TABLE HEADER @V60B7AA 77000000
- TM APSTAT1,PROCIPL RUNNING ON MAIN (IPL) PROC? @V60B7AA 77100000
- BZ GOTPGT2 NO-WE ARE POINTING AT THE CORRECT@V60B7AA 77200000
- * SET OF PG/SWAP TABLES 77300000
- LA R14,PAGBMP(,R14) ADDRESS DUPLICATE COPY OF PAGE @VMH0007 77400000
- * TABLES 77500000
- GOTPGT2 LA R14,PAGTSWP(,R14) GET SWPT ADDRESS FOR OTHER @V60B7AA 77600000
- * PROC'S COPY 77700000
- USING SWPTABLE,R14 @VMH0007 77800000
- LA R14,SWPFLAG ADDRESS THE FIRST SWPTABLE ENTRY @VMH0007 77900000
- DROP R14 @VMH0007 78000000
- SPACE 78100000
- LR R15,R8 GET PAGE ADDRESS @V5BC0AB 78200000
- SRL R15,12 LEAVE SEG/PAGE NUMBER @V5BC0AB 78300000
- N R15,F15 LEAVE ONLY PAGE NUMBER @V5BC0AB 78400000
- SLL R15,3 GET SWPT INDEX (PAGE NO. * 8) @V5BC0AB 78500000
- ALR R15,R14 ADD IN ADDRESS OF 1ST SWAP TABLE @VMH0007 78600000
- * ENTRY 78700000
- S R15,F8 SUBTRACT 8 FROM THE SWPTE @VMH0021 78800000
- ************************************************************** 78900000
- * NOTE THAT THIS SUBTRACT IS NECESSARY BECAUSE THE SWPTE 79000000
- * ADDRESS IS INCREMENTED BY 8 AT LABEL, UPDTCCPD. 79100000
- ************************************************************** 79200000
- SPACE 79300000
- USING SWPFLAG,R15 @V5BC0AB 79400000
- CLR R1,R2 DO SEGMENTS MATCH? @VMH0020 79500000
- BNE CCPDBUMP NO, INCREMENT CCPD BY ONE @VMH0020 79600000
- SPACE 79700000
- UPDTCCPD DS 0H @V5BC0AB 79800000
- LA R15,8(,R15) ADDRESS THE SWAP TABLE ENTRY @VMH0021 79900000
- ST R5,SWPCYL STORE CCPD IN DUPLICATE COPY OF SWPT X80000000
- @V5BC0AB 80100000
- OI SWPFLAG,SWPRECMP+SWPCHG1 TURN ON RECOMPUTE BIT @VMH0007 80200000
- * AND CHANGED BIT 80300000
- CCPDBUMP DS 0H @V5BC0AB 80400000
- AR R5,R6 BUMP TO NEXT CCPD @V5BC0AB 80500000
- LR R14,R5 PUT CCPD IN R14 @VMH0007 80600000
- N R14,WHEXFF00 @VMH0007 80700000
- CL R14,SAVEWRK9 @VMH0007 80800000
- BNH ADDAPAGE CYL IS STILL OK, CONTINUE @V5BC0AB 80900000
- A R5,HEX10000 BUMP TO NEXT CYLINDER @V5BC0AB 81000000
- ICM R5,B'0010',F1+3 SET PAGE NUMBER TO 1 @V5BC0AB 81100000
- * 81200000
- ADDAPAGE DS 0H @V5BC0AB 81300000
- AL R8,F4096 INCREASE SYSPAGNM START ADDRESS BY 1 X81400000
- PAGE 81500000
- CL R8,SAVEWRK6 OUT OF THIS SEGMENT'S PAGE RANGE @V5BC0AB 81600000
- BNL TSPAGNM1 YES, DONE WITH THIS SHARED SEGT. @VMH0007 81700000
- LR R1,R8 GET PAGE RANGE START ADDRESS @VMH0016 81800000
- SRL R1,16 LEAVE ONLY SEGMENT NUMBER @VMH0016 81900000
- CLR R1,R2 DID THEY MATCH? @VMH0007 82000000
- BE INRANGE GO SEE IF WITHIN SYSPAGNM RANGE @VMH0007 82100000
- CLR R8,R9 @VMH0007 82200000
- BNH CCPDBUMP @VMH0007 82300000
- B NEXTPAGE @VMH0007 82400000
- INRANGE DS 0H @VMH0021 82500000
- CLR R8,R9 OUT OF SYSPAGNM RANGE? @V5BC0AB 82600000
- BNH UPDTCCPD NO, GO UPDATE NEXT SWPT ENTRY @VMH0007 82700000
- NEXTPAGE L R2,SAVEWRK2 YES, LOAD CURRENT SYSPAGNM PTR. @VMH0007 82800000
- LA R2,4(,R2) BUMP ADDRESS TO NEXT ENTRY @V5BC0AB 82900000
- ST R2,SAVEWRK2 SAVE CURRENT SYSPAGNM POINTER @VMH0007 83000000
- L R8,SAVEWRK8 GET COUNT OF SYSPAGNM ENTRIES @V5BC0AB 83100000
- S R8,F1 DECREMENT BY ONE @V5BC0AB 83200000
- ST R8,SAVEWRK8 SAVE COUNT OF SYSPAGNM ENTRIES @V5BC0AB 83300000
- BNZ LOOPPAGE GO LOOK FOR THIS SHARED SEGMENT'S PAGE X83400000
- @V5BC0AB 83500000
- * RANGE WITHIN THE NEXT SYSPAGNM ENTRY 83600000
- B NXSYSTEM BRANCH IF SYSPAGNM EXHAUSTED @V5BC0AB 83700000
- TSPAGNM1 DS 0H A SHARED SEGMENT HAS BEEN REINITIALIZED X83800000
- @V5BC0AB 83900000
- L R15,SAVEWRK3 GET SHRPAGE POINTER @V5BC0AB 84000000
- LA R15,4(,R15) BUMP POINTER TO NEXT SHRPAGE ENTRY X84100000
- @V5BC0AB 84200000
- ST R15,SAVEWRK3 SAVE SHRPAGE POINTER @V5BC0AB 84300000
- CR R8,R9 THIS PAGNM ENTRY COMPLETE? @V5BC0AB 84400000
- BH NEXTPAGN YES, GO GET NEXT SYSPAGNM POINTER X84500000
- @V5BC0AB 84600000
- * THIS SYSHRSEG HAS BEEN UPDATED, BUT THIS SYSPAGNM ENTRY IS NOT 84700000
- * EXHAUSTED. 84800000
- A R10,F1 ADD 1 TO NO. OF SEGS PROCESSED @VMH0007 84900000
- C R10,SHRSEGCT ANY MORE SYSHRSEG ENTRIES? @VMH0007 85000000
- BNE GETSEGNO PROCESS NEXT SYSHRSEG ENTRY @VMH0007 85100000
- * 85200000
- B NXSYSTEM BRANCH, DONE WITH THIS SYSTABLE @V5BC0AB 85300000
- * 85400000
- NEXTPAGN DS 0H @V5BC0AB 85500000
- L R2,SAVEWRK2 LOAD PAGNM POINTER @V5BC0AB 85600000
- LA R2,4(,R2) BUMP TO NEXT ENTRY @V5BC0AB 85700000
- * 85800000
- A R10,F1 ADD 1 TO NO. OF SEGS PROCESSED @VMH0007 85900000
- C R10,SHRSEGCT ANY MORE SYSHRSEG ENTRIES? @VMH0007 86000000
- BNE LOOPPAGE PROCESS NEXT SYSHRSEG ENTRY, IF @VMH0007 86100000
- * THERE IS ANOTHER ONE 86200000
- NXSYSTEM DS 0H @V5BC0AB 86300000
- L R4,SAVEWRK4 GET FIRST SYSTABLE ENTRY @V5BC0AB 86400000
- L R7,SHRFPNT GET NEXT SHRTABLE POINTER @V5BC0AB 86500000
- L R6,=A(DMKVMAS1) GET SHRTABLE ANCHOR ADDRESS @VMH0001 86600000
- CR R7,R6 END OF CHAIN? @V5BC0AB 86700000
- BNE SYSNAMEL NO, PROCESS ALL SHRTABLES @V5BC0AB 86800000
- BAL R5,UNLSNTBL OTHERWISE, GO UNLOCK THE SNT @V5BC0AB 86900000
- SPACE 87000000
- DROP R3,R4,R7,R15 @V5BC0AB 87100000
- EJECT 87200000
- UPMODE DS 0H @V5BC0AB 87300000
- SPACE 87400000
- SR R15,R15 SET REGISTER TO 0 @VA12934 87500000
- ST R15,SAVER1 STORE IN CALLER'S REG 1 @VA12934 87600000
- EXIT RETURN TO CALLER @VA12934 87700000
- SPACE 87800000
- ERCPP192 DS 0H @VA12934 87900000
- LA R15,192 GET MESSAGE NUMBER @VA12934 88000000
- ST R15,SAVER1 AND SAVE IT IN HIS REGISTER 1 @VA12934 88100000
- EXIT RETURN TO CALLER @VA12934 88200000
- SPACE 88300000
- ************************************************************** 88400000
- * TRANS, LOCK, UNLOCK THE SYSTEM NAME TABLE * 88500000
- ************************************************************** 88600000
- GETSNTBL DS 0H @V5BC0AB 88700000
- L R1,=A(DMKSNTBL) GET ADDRESS OF THE SNT @V5BC0AB 88800000
- TRANS 2,1,OPT=(BRING,DEFER,LOCK,SYSTEM) @V5BC0AB 88900000
- LR R4,R2 PUT ADDRESS OF THE SNT IN REGISTER 4 X89000000
- @V5BC0AB 89100000
- ST R4,SAVEWRK4 SAVE THE ADDRESS OF THE SNT @V5BC0AB 89200000
- BR R5 RETURN TO THE CALLER @V5BC0AB 89300000
- * 89400000
- UNLSNTBL DS 0H @V5BC0AB 89500000
- L R2,SAVEWRK4 GET SNT ADDRESS @V5BC0AB 89600000
- CALL DMKPTRUL GO UNLOCK THE SNT @V5BC0AB 89700000
- BR R5 RETURN TO THE CALLER @V5BC0AB 89800000
- EJECT 89805000
- ************************************************************** 89810000
- * SET A LOCKWORD TO CONTAIN VALUE OF LPUADDR 89815000
- ************************************************************** 89820000
- SETLOCK DS 0H @VA12934 89825000
- CLC LPUADDR,2(R1) IS LOCK ALREADY OWNED BY THIS @VA15414 89831000
- * PROCESSOR? 89835000
- BE LOCKOK YES -- OK @VA12934 89840000
- CS R0,R14,0(R1) PLACE LPUADDR IN LOCKWORD @VA12934 89845000
- BNZ WAIT019 IF CS FAILED, IT IS BECAUSE THE @VA12934 89850000
- * OTHER PROCESSOR NOW OWNS THE LOCK 89855000
- * LOAD DISABLED WAIT -- OTHER PROC. 89860000
- * IS STILL RUNNING, AND TO CONTINUE 89865000
- * MIGHT JEOPARDIZE SYSTEM INTEGRITY 89870000
- LOCKOK BR R7 RETURN TO THE CALLER @VA12934 89875000
- SPACE 2 89880000
- WAIT019 LPSW DISABPSW LOAD DISABLED WAIT @VA12934 89885000
- EJECT 89900000
- ABEND 1 VMPAGES IS NEGATIVE, TERMINATE CP X90000000
- @V5BC0AB 90100000
- ABEND 2 THE SYSTEM NAME TABLE DID NOT HAVE @V5BC0AB 90200000
- * AN ENTRY FOR A NAME SYSTEM @V5BC0AB 90300000
- * DECLARES * 90400000
- PAGE2314 EQU 32 PAGES/CYL FOR 2314/2319 @V5BC0AB 90500000
- PAGE3330 EQU 57 PAGES/CYL FOR 3330 @V5BC0AB 90600000
- PAGE3350 EQU 120 PAGES/CYL FOR 3350 @V5BC0AB 90700000
- PAGE3375 EQU 96 Pages/cyl for 3375 HRC106DK 90700100
- PAGE3380 EQU 150 Pages/cyl for 3380 HRC106DK 90700200
- PAGE2305 EQU 24 PAGES/CYL FOR 2305/3340 @V5BC0AB 90800000
- YES EQU C'Y' @V5BC0AB 90900000
- FF EQU X'FF' @V5BC0AB 91000000
- MCTFS EQU X'80' TO TEST DMKMCT'S FLAG BYTE FOR @VA12934 91030000
- * DMKMCTFS ENTRY @VA12934 91060000
- DS 0D @V5BC0AB 91100000
- WHEXFF00 DC X'0000FF00' @V5BC0AB 91200000
- HEX10000 DC X'00010000' @V5BC0AB 91300000
- DS 0F @V5BC0AB 91400000
- CPPDSPRQ DC A(DMKDSPRQ) DISPATCHER QUEUE ANCHORS @VA09324 91500000
- CPPEXTST DC A(DMKEXTST) ADDR OF FIELD CONTAINING THE @VA10010 91600000
- * LOGICAL ADDR. OF THE STOPPED PROC. 91700000
- CPPDMPMA DC A(DMKDMPMA) PROCESSOR ADDRESS OF MAIN @V5BC0AB 91800000
- DS 0D @V60B7AB 91900000
- CPWAIT16 DC X'0002000000000016' CONCS OR DISCS FAILED @V60B7AB 92000000
- CPPDMPAA DC A(DMKDMPAA) ATTACHED PROCESSOR'S ADDRESS @V5BC0AB 92100000
- CPPDMPSA DC A(DMKDMPSA) POINTERTO PSA ADDRESSES @V5BC0AB 92200000
- CPPFREAP DC A(DMKFREAP) POINTER TO FREE STORAGE FOR DMKFRE X92300000
- @V5BC0AB 92400000
- CPPSCHCA DC A(DMKSCHCA) PTR TO DMKSCH AP WAIT VALUES @VMH0008 92500000
- CPPSCHCU DC A(DMKSCHCU) @VMV0008 92600000
- * THE FOLLOWING FOUR AP WAIT VALUES MUST REMAIN CONTIGUOUS 92700000
- INITWAIT DC X'00000078' @VMH0008 92800000
- DC X'FFFFFFFF' @VMV0007 92900000
- DC X'FFFFFFFF' @VMV0007 93000000
- DC X'FFFFFFFF' @VMV0007 93100000
- * THE FOLLOWING 8 BYTES MUST REMAIN CONTIGUOUS 93200000
- WAITSAV8 DC X'7FFFFFFF' WAITSAVE VALUE FOR THE ATTACHED @VMH0012 93300000
- DC X'FFFFF000' PROCESSOR @VMH0012 93400000
- CPPPAGWS DC A(DMKPAGWS) POINTER TO DMKPAG WAITSAVE VALUES @VMV0007 93500000
- MFAESEXT DC X'0FFF' USED TO DISABLE MALFUNCTION ALERT, @VMH0029 93600000
- * EMERGENCY SIGNAL, EXTERNAL SIGNAL AND TOD CLOCK 93700000
- * SYNC CHECK INTERRUPTS 93800000
- DISABPSW DS 0D @VA12934 93809000
- DC X'00020000',X'00000019' @VA12934 93818000
- SPACE 2 93827000
- LOCKTAB DC A(DMKLOKSY) @VA12934 93836000
- DC A(DMKLOKDS) @VA12934 93845000
- DC A(DMKLOKTR) @VA12934 93854000
- DC A(DMKLOKRL) @VA12934 93863000
- DC A(DMKLOKFR) @VA12934 93872000
- DC F'-1' @VA12934 93881000
- SPACE 2 93890000
- *************************************************************** 93900000
- * MESSAGES * 94000000
- *************************************************************** 94100000
- * 94200000
- CPP623MG DC X'151515' @V60B7AB 94300000
- DC C'DMKCPP623I CHANNEL SET CONNECTED TO PROCESSOR ' @V60B7AB 94400000
- CPPID623 DC C' ' @V60B7AB 94500000
- DC X'1515' @V60B7AB 94600000
- CPP623LN EQU *-CPP623MG @V60B7AB 94700000
- * 94800000
- LTORG 94900000
- EJECT 95000000
- COPY SHRTABLE 95100000
- COPY SYSTBL 95200000
- PSA 95300000
- COPY CORE 95400000
- COPY EQU 95500000
- COPY SAVE 95600000
- COPY VMBLOK 95700000
- COPY RBLOKS 95800000
- COPY VBLOKS 95900000
- COPY DEVTYPES 96000000
- COPY ALLOC 96100000
- COPY TIMER 96200000
- COPY MCHAREA 96300000
- END 96400000
ibm/vm370-lib/cp/dmkcpp.assemble_src.txt ยท Last modified: 2023/08/06 13:36 by Site Administrator