ibm:vm370-lib:cp:dmkeig.assemble_src
Table of Contents
DMKEIG Source
References
- Fixes Applied : 0
- This Source Date : Thursday, December 7, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMKEIG.ASSEMBLE.txt
- EIG TITLE 'DMKEIG (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE INPUT SEQUENCE FIELDS @V200820 00002000
- DMKEIG CSECT 00003000
- MODULEID DC CL8'DMKEIG' @VA01068 00004000
- ********************************************************************** 00005000
- * 00006000
- * MODULE NAME - DMKEIG 00007000
- * 00008000
- * FUNCTION 00009000
- * THIS ROUTINE WILL ANALYZE THE 2880 CHANNEL LOGOUT AND 00010000
- * SET APPROPRIATE BITS IN THE ECSW FIELD ACCORDING TO THE 00011000
- * RESULTS OF THIS ANALYSIS. IT WILL ALSO MOVE THE CHANNEL 00012000
- * LOGOUT TO THE CHANNEL CHECK RECORD. 00013000
- * 00014000
- * ENTRY POINTS 00015000
- * DMKEIG - FROM THE CHANNEL CONTROL ROUTINE 00016000
- * 00017000
- * INPUT 00018000
- * 1. CHANNEL LOGOUT DATA 00019000
- * 2. POINTER TO THE CHANNEL CHECK RECORD 00020000
- * 3. POINTER TO THE CCH SWITCH FIELD (ENTSW) 00021000
- * 00022000
- * OUTPUT 00023000
- * 1. APPROPRIATE BITS ARE SET IN THE CCH RECORD 00024000
- * FIELD (FAILECSW). 00025000
- * 2. THE CHANNEL LOGOUT IS MOVE TO THE CCH RECORD. 00026000
- * 00027000
- * EXTERNAL REFERENCES 00028000
- * THE POINTER AT LOCATION 172 POINTS TO THE CHANNEL LOGOUT. 00029000
- * 00030000
- * EXIT - NORMAL 00031000
- * RETURN TO THE CCH CONTROL ROUTINE VIA REGISTER 14. 00032000
- * 00033000
- * EXIT - ERROR 00034000
- * NONE 00035000
- * 00036000
- * TABLES / WORK AREA 00037000
- * THE CHANNEL CHECK RECORD 00038000
- * 00039000
- * ATTRIBUTES 00040000
- * DMKEIG IS PRIVILEGED AND REUSABLE 00041000
- * 00042000
- * CHARACTER CODE DEPENDENCIES 00043000
- * NONE 00044000
- * 00045000
- * NOTE 00046000
- * NONE 00047000
- * 00048000
- ********************************************************************** 00049000
- EJECT 00050000
- ********************************************************************** 00051000
- ********************************************************************** 00052000
- *********** 2880 LOGOUT INDICATORS *********************** 00053000
- ********************************************************************** 00054000
- CCHDCIN EQU X'01' DISCONNECT IN INDICATION 00055000
- SCANMAJR EQU X'80' SCAN MAJOR BIT 00056000
- UCWARCK EQU X'20' UCWAR UNIT ADDR CHECK 00057000
- PSEUDOCC EQU X'80' PSEUDO CONTROL CHECK 00058000
- SCSPCK EQU X'04' SCS PARITY CHECK 00059000
- PRIORCK EQU X'80' PRIORITY CHECK 00060000
- SIOMAJOR EQU X'20' SIO MAJOR OP 00061000
- IRPTRESP EQU X'20' INTERRUPT RESPONSE BIT 00062000
- CCRESELM EQU X'02' CC RESELECT MAJOR 00063000
- CCWLATCH EQU X'80' CCW LATCH BIT 00064000
- CMDADDRV EQU X'04' CMD ADDRESS VALID 00065000
- USVALID EQU X'08' UNIT STATUS VALID 00066000
- CMDOUT EQU X'80' CMD OUT SENT 00067000
- DATAXFER EQU X'40' DATA TRANSFER INDICATOR 00068000
- INITDATA EQU X'10' INITIAL DATA 00069000
- DATAXMAJ EQU X'04' DATA XFER MAJOR 00070000
- CURMAJOR EQU X'40' CUR MAJOR OP 00071000
- UCW0111 EQU X'18' UCW0 AND 1 OP 00072000
- ICBD EQU 10 ICB EQUAL 5 00073000
- UNITSEL EQU X'80' UNIT SELECT 00074000
- SHARSUBC EQU X'10' SHARED SUBCHANNEL BIT 00075000
- ********************************************************************** 00076000
- EJECT 00077000
- ********************************************************************** 00078000
- ENTRY DMKEIG80 00079000
- DMKEIG80 EQU * 00080000
- USING PSA,R0 SETUP ADDRESSABILITY FOR LOWCORE 00081000
- USING SAVEAREA,R13 SETUP ADDRESSABILITY FOR SAVE AREA 00082000
- USING *,R12 SETUP ADDRESSABILITY FOR MODULE 00083000
- USING CCHREC,R9 SETUP ADDRESSABILITY FOR CCH RECORD 00084000
- USING IOERBLOK,R4 SETUP ADDRESSABILITY FO I/O ERROR 00085000
- USING IOELOG,R1 SETUP ADDRESSABILITY FOR LOGOUT AREA 00086000
- * BLOCK 00087000
- LR R1,R12 SAVE THE BASE REG. TO AVIOD DESTROYING 00088000
- LR R12,R15 SETUP BASE ADDRESS 00089000
- STM R2,R0,CCHSAVE SAVE ALL REGS. EXECPT REGISTER 1 00090000
- ST R1,CCHSAVE+40 SAVE THE CONTENT OF REGISTER 12 00091000
- LA R2,6 SETUP COUNT VALUE FOR LOOP 00092000
- ICM R1,15,IOELPNTR GET THE I/O EXTENDED LOGOUT POINTER 00093000
- BZ CLEANUP IF ADDR IS ZERO, GO INDICATE TERMINATION 00094000
- * OPERATING SYSTEM 00095000
- CCHLOGU EQU * 00096000
- CLC 0(4,R1),FFS HAS CHANNEL LOGOUT ? 00097000
- BE SETRCINV NO, GO SET SYSTEM TERMINATION 00098000
- LA R1,4(R1) UPDATE THE I/O EXTENDED LOGOUT POINTER 00099000
- BCT R2,CCHLOGU GO TEST NEXT LOCATION 00100000
- ICM R1,15,IOELPNTR GET THE I/O EXTENDED LOGOUT POINTER 00101000
- TM CSW+5,CCC+IFCC IS INTERFACE OR CHANNEL CONTROL 00102000
- * CHECK SET ? 00103000
- BZ CKTIOADR NO, MUST BE CDC 00104000
- TM LW1,CCHDCIN WAS UNIT DISCONNECTED ? 00105000
- BZ ANALBEG NO, GO TEST MAJOR SCAN 00106000
- OI IGTERMSQ,CCHDI SET DISCONNECT IN FLAG 00107000
- ANALBEG EQU * 00108000
- TM LW3,SCANMAJR IS THIS A MAJOR SCAN ? 00109000
- BZ CHECKCLR NO, GO INDICATE UNIT ADDR IS VALID 00110000
- TM LW1,UCWARCK IS THIS CCWAR UA CHECK ? 00111000
- BO SET0303 YES, GO SET CODE @VA03071 00112000
- SET0301 EQU * 00113000
- OI IGTERMSQ,RTCODE3+COMPFES SET RETRY CODE TO 3,TERM TO 1 00114000
- B CCHRETRN GO INDICATE THE SOURCE OF THE ERROR 00115000
- SET0303 EQU * 00116000
- OI IGTERMSQ,RTCODE3+COMPSYS SET RETRY CODE TO 3, TERM TO 3 00117000
- B CLEANUP1 GO SET SYSTEM TERMINATION FLAG 00118000
- CHECKCLR EQU * 00119000
- TM ENTSW,INTERCCH WAS THIS ERROR ON AN INTERRUPT ? 00120000
- BO CKPSEUDO YES, GO SET UNIT ADDRESS VALID 00121000
- TM ENTSW,TIOCCH WAS THIS ON A TIO INSTRUCTION ? 00122000
- BO TIOSYNCH YES, GO TEST TIO FLAG 00123000
- TM LW3+3,X'02' WAS THIS ON A HIO INSTRUCTION ? 00124000
- BZ CKPSEUDO NO, GO SET UNIT ADDRESS VALID 00125000
- SETRCINV EQU * 00126000
- NI IGVALIDB,X'FF'-CCHRCV SET RETRY CODE INVALID 00127000
- B CLEANUP1 GO SET SYSTEM TERMINATION FLAG 00128000
- TIOSYNCH EQU * 00129000
- TM LW27,X'40' IS THE TIO SYNCH LATCH ON ? 00130000
- BO CKPSEUDO YES, GO SET UNIT ADDRESS VALID 00131000
- LH R2,LW2 GET THE TIO UNIT ADDRESS 00132000
- N R2,MASK1 CLEAR UNWANTED BITS 00133000
- LH R3,LW2+2 GET THE UCWAR AND IAB 00134000
- N R3,MASK1 CLEAR UNWANTED BITS 00135000
- CR R2,R3 ARE THE ADDRESSES EQUAL ? 00136000
- BNE HIONBCK NO, GO TEST FOR HIO 00137000
- CKPSEUDO EQU * 00138000
- OI IGVALIDB,CCHDAV SET UNIT ADDRESS VALID 00139000
- HIONBCK EQU * 00140000
- TM LW3,X'08' IS HIO BUSY STATE SET ? 00141000
- BZ TESTSIOM NO, GO TEST SIO FLAG 00142000
- TM LW7+1,X'20' IS THE OP-IN ON ? 00143000
- BZ SET0401 NO, GO SET RETRY CODE 00144000
- SET0410 EQU * 00145000
- OI IGTERMSQ,RTCODE4+COMPSEL SET RETRY CODE TO (4) AND 00146000
- * TERMINATION CODE TO (10) 00147000
- B LASTVAL GO CHECK LAST VALIDITY FLAG 00148000
- TESTSIOM EQU * 00149000
- TM LW3,SIOMAJOR IS THIS A SIO MAJOR OP 00150000
- BO CKCCWLCH YES, GO TEST CCW LCA 00151000
- TM LW3,CCRESELM IS THIS CC RESELECT MAJOR 00152000
- BNO CKDATATR NO, GO CHECK DATA XFER 00153000
- CKCCWLCH EQU * 00154000
- TM LW3+2,CCWLATCH IS CCW LATCH SET ? 00155000
- BO CKCMDOUT YES, GO SEE IF CMD OUT IS ON 00156000
- SET0401 EQU * 00157000
- OI IGTERMSQ,RTCODE4+COMPFES SET RETRY CODE TO 4 AND 00158000
- * TERMINATION CODE TO 01 00159000
- LASTVAL EQU * 00160000
- TM LW0+2,SCSPCK IS THIS A SCS P CHECK ? 00161000
- BO CLEANUP1 YES, GO SET SYSTEM TERMINATION 00162000
- TM LW2,CMDADDRV IS COMMAND ADDRESS VALID ? 00163000
- BNO CKUSVAL NO, GO CHECK US VALID FLAG 00164000
- OI IGVALIDB,CCHCMDV SET CMD ADDRESS VALID BIT 00165000
- CKUSVAL EQU * 00166000
- TM LW2,USVALID IS UNIT STATUS VALID FLAG ON ? 00167000
- BNO SETRCVAL NO, GO SET RC VALID FLAG 00168000
- OI IGVALIDB,CCHUSV SET UNIT STATUS VALIDITY FLAG 00169000
- SETRCVAL EQU * 00170000
- OI IGVALIDB,CCHRCV SET RETRY CODE VALIDITY FLAG 00171000
- CKDCIN EQU * 00172000
- TM LW1,CCHDCIN IS UNIT DISCONNECTED ? 00173000
- BZ CCHRETRN NO, GO INITIALIZE THE LOGOUT AREA 00174000
- NI IGTERMSQ,X'FF'-COMPSYS RESET TERMINATION CODE 00175000
- OI IGTERMSQ,COMPSEL SET SELECTIVE RESET FLAG 00176000
- B CCHRETRN GO INITIALIZE LOGOUT AREA 00177000
- CKCMDOUT EQU * 00178000
- TM LW3+3,CMDOUT HAS DATA BEEN XFERRED ? 00179000
- BNO SET0410 NO, GO SET THE RETRY CODE (4) AND 00180000
- * TERMINATION CODE (10) 00181000
- CKDATAXR EQU * 00182000
- TM LW9,DATAXFER HAS DATA BEEN XFERRED ? 00183000
- BO CKINDATA YES, GO TEST INITIAL DATA 00184000
- SET0110 EQU * 00185000
- OI IGTERMSQ,RTCODE1+COMPSEL SET RETRY CODE TO (1) AND 00186000
- * TERMINATION CODE TO (10) 00187000
- B LASTVAL GO CHECK LAST VALIDITY FLAG 00188000
- CKINDATA EQU * 00189000
- TM LW9,INITDATA IS THIS THE INITIAL DATA ? 00190000
- BO SET0210 YES, GO SET CODES 00191000
- SET0310 EQU * 00192000
- OI IGTERMSQ,RTCODE3+COMPSEL SET RETRY CODE TO (3) AND 00193000
- * TERMINATION CODE TO (10) 00194000
- B LASTVAL GO CHECK LAST VALIDITY FLAG 00195000
- SET0210 EQU * 00196000
- OI IGTERMSQ,RTCODE2+COMPSEL SET RETRY CODE TO (2) AND 00197000
- * TERMINATION CODE TO (10) 00198000
- B LASTVAL GO CHECK LAST VALIDITY FLAG 00199000
- CKDATATR EQU * 00200000
- TM LW3,DATAXMAJ IS THIS DATA XFER MAJOR 00201000
- BO CKINDATA YES, GO CHECK INITIAL DATA 00202000
- TM LW3,CURMAJOR IS CUR MAJOR UP ? 00203000
- BNO CKTIOMAJ NO, GO CHECK RESPONSE 00204000
- TM LW3+3,CMDOUT IS COMMAND OUT ? 00205000
- BNO SETUAINV NO, GO SET UA INVALID 00206000
- TM LW2+2,SHARSUBC IS THIS A SHARED SUBCHANNEL ? 00207000
- BNO SET0510 NO, GO SET RETRY CODE 00208000
- TM LW3+3,UCW0111 IS UCW 0 AND 1 SET TO ONE ? 00209000
- BO SET0510 YES, GO SET RETRY CODE 00210000
- SETUAINV EQU * 00211000
- NI IGVALIDB,X'FF'-CCHDAV SET UNIT ADDRESS INVALID 00212000
- SET0510 EQU * 00213000
- OI IGTERMSQ,RTCODE5+COMPSEL SET RETRY CODE TO (5) AND 00214000
- * TERMINATION CODE TO (10) 00215000
- B LASTVAL GO CHECK LAST VALIDITY FLAG 00216000
- SET0501 EQU * 00217000
- OI IGTERMSQ,RTCODE5+COMPFES SET RETRY CODE TO (5) AND 00218000
- * TERMINATION CODE TO (1) 00219000
- B LASTVAL GO CHECK VALIDITY FLAG 00220000
- CKTIOMAJ EQU * 00221000
- TM LW3,X'10' IS TIO MAJOR ON ? 00222000
- BO CKSCS YES, GO GET SCS INDICATORS 00223000
- TM LW3+1,IRPTRESP IRPT RESPONSE UP ? 00224000
- BNO CLEANUP1 NO, GO SET SYSTEM TERMINATION 00225000
- TM LW2+2,X'0E' DOES ICB EQUAL 7 ? 00226000
- BO SET0501 YES, GO SET RETRY CODE 00227000
- TM LW2+2,ICBD IS ICB EQUAL D ? 00228000
- BO SET0501 YES, GO SET CODE 00229000
- CKUNITSL EQU * 00230000
- TM LW9,UNITSEL IS UNIT SELECT ON ? 00231000
- BO SET0010 YES, GO SET RETRY CODE 00232000
- SET0001 EQU * 00233000
- OI IGTERMSQ,RTCODE0+COMPFES SET RETRY CODE TO (0) AND 00234000
- * TERMINATION CODE TO (01) 00235000
- B LASTVAL GO CHECK VALIDITY FLAG 00236000
- SET0010 EQU * 00237000
- OI IGTERMSQ,RTCODE0+COMPSEL SET RETRY CODE TO (0) AND 00238000
- * TERMINATION CODE TO (10) 00239000
- B LASTVAL GO CHECK VALIDITY FLAG 00240000
- CKSCS EQU * 00241000
- SR R2,R2 CLEAR REGISTER 2 00242000
- IC R2,LW22 GET THE SCS INDICATORS 00243000
- LA R3,14 GET THE MASK FLAGS 00244000
- NR R2,R3 CLEAR THE UNWANTED BITS 00245000
- IC R2,SCSLIST(R2) GET THE SCS INDICATOR 00246000
- CR R2,R3 IS THE INDICATOR EQUAL TO 14 ? 00247000
- BNE SET0001 NO, GO SET RETRY CODE 00248000
- B CKUNITSL GO TEST FOR UNIT SELECT 00249000
- CKTIOADR EQU * 00250000
- TM ENTSW,TIOCCH IS THIS ERROR ON A TIO ? 00251000
- BZ CCHRETRN NO, GO INITIALIZE THE LOGOUT 00252000
- CLC SIOADDR+1(1),LW2+3 IS THE UNIT ADDRESS SAME AS 00253000
- * IN THE LOGOUT ? 00254000
- BE CCHRETRN YES, GO INITIALIZE LOGOUT 00255000
- CLEANUP EQU * 00256000
- OI ENTSW,TERMSYS SET SYSTEM TERMINATION 00257000
- B CCHEXIT4 GO RESTORE REGISTERS 00258000
- CLEANUP1 EQU * 00259000
- OI ENTSW,TERMSYS SET SYSTEM TERMINATION 00260000
- CCHRETRN EQU * 00261000
- SR R2,R2 CLEAR REGISTER 2 00262000
- IC R2,BLAME GET SOURCE OF ERROR 00263000
- SLL R2,3 SETUP CORRECT FORMAT 00264000
- STC R2,IGBLAME SAVE IN CCH RECORD (ECSW) 00265000
- MVC CCHLOG80(112),0(R1) SAVE THE I/O EXTENDED LOGOUT 00266000
- MVI 0(R1),X'FF' INITIALIZE THE I/O EXTENDED LOGOUT 00267000
- MVC 1(111,R1),0(R1) TO ALL ONES 00268000
- MVI CCHSAVE+59,X'18' CHANGE THE LENGTH OF THE CCH @VA00881 00269000
- * RECORD 00270000
- CCHEXIT4 EQU * 00271000
- LM R2,R0,CCHSAVE RESTORE THE REGISTERS 00272000
- BR R14 RETURN TO CCH CONTROL ROUTINE 00273000
- ********************************************************************** 00274000
- SPACE 2 00275000
- ********************************************************************** 00276000
- ********************************************************************** 00277000
- EJECT 00278000
- ********************************************************************** 00279000
- CCHSAVE DS 16F 00280000
- MASK1 DC X'000001FF' CLEAR UNWANTED BITS WITH THIS MASK 00281000
- SCSLIST DC X'0E' SUBCHANNEL STATUS BITS 00282000
- DC 5X'00' 00283000
- DC X'0E000E' 00284000
- DC 6X'00' 00285000
- ******************************************************************** 00286000
- ********************************************************************** 00287000
- ********************************************************************** 00288000
- EJECT 00289000
- ********************************************************************** 00290000
- ********************************************************************** 00291000
- ******** DESECT FOR THE 2880 CHANNEL LOGOUT AREA 00292000
- ********************************************************************** 00293000
- IOELOG DSECT 00294000
- LW0 DS F I/O LOGOUT WORD 0 00295000
- LW1 DS F I/O LOGOUT WORD 1 00296000
- LW2 DS 0F I/O LOGOUT WORD 2 00297000
- CHANLID DS C CHANNEL NUMBER 00298000
- DS 3C PART OF WORD 2 00299000
- LW3 DS F I/O LOGOUT WORD 3 00300000
- LW4 DS F I/O LOGOUT WORD 4 00301000
- LW5 DS F I/O LOGOUT WORD 5 00302000
- LW6 DS F I/O LOGOUT WORD 6 00303000
- LW7 DS F I/O LOGOUT WORD 7 00304000
- LW8 DS F I/O LOGOUT WORD 8 00305000
- LW9 DS F I/O LOGOUT WORD 9 00306000
- LW10 DS F I/O LOGOUT WORD 10 00307000
- LW11 DS F I/O LOGOUT WORD 11 00308000
- LW12 DS F I/O LOGOUT WORD 12 00309000
- LW13 DS F I/O LOGOUT WORD 13 00310000
- LW14 DS F I/O LOGOUT WORD 14 00311000
- LW15 DS F I/O LOGOUT WORD 15 00312000
- LW16 DS F I/O LOGOUT WORD 16 00313000
- LW17 DS F I/O LOGOUT WORD 17 00314000
- LW18 DS F I/O LOGOUT WORD 18 00315000
- LW19 DS F I/O LOGOUT WORD 19 00316000
- LW20 DS F I/O LOGOUT WORD 20 00317000
- LW21 DS F I/O LOGOUT WORD 21 00318000
- LW22 DS F I/O LOGOUT WORD 22 00319000
- LW23 DS F I/O LOGOUT WORD 23 00320000
- LW24 DS F I/O LOGOUT WORD 24 00321000
- LW25 DS F I/O LOGOUT WORD 25 00322000
- LW26 DS F I/O LOGOUT WORD 26 00323000
- LW27 DS 0F I/O LOGOUT WORD 27 00324000
- OPERATN DS CL1 MAJOROPERATION INDICATOR 00325000
- BLAME DS CL1 SOURCE OF ERROR 00326000
- DS CL2 LAST TWO BYTES 00327000
- ********************************************************************** 00328000
- EJECT 00329000
- PSA 00330000
- COPY EQU 00331000
- COPY DEVTYPES 00332000
- COPY SAVE 00333000
- ENTSW EQU SAVEWRK1 @VA01638 00334000
- SIOADDR EQU SAVEWRK9 00335000
- COPY IOER 00336000
- COPY CCHREC 00337000
- END 00338000
ibm/vm370-lib/cp/dmkeig.assemble_src.txt ยท Last modified: 2023/08/06 13:36 by Site Administrator