ibm:vm370-lib:cp:dmksix.assemble_src
Table of Contents
DMKSIX Source
References
- Fixes Applied : 0
- This Source Date : Thursday, December 7, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMKSIX.ASSEMBLE.txt
- SIX TITLE 'DMKSIX (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE INPUT SEQUENCE FIELDS @V200820 00002000
- DMKSIX CSECT 00003000
- MODULEID DC CL8'DMKSIX' @VA01068 00004000
- ********************************************************************** 00005000
- * 00006000
- * MODULE NAME - DMKSIX 00007000
- * 00008000
- * FUNCTION 00009000
- * THIS ROUTINE WILL ANALYZE THE 2860 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
- * DMKSIX - 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
- * CHANNEL LOGOUT (LOCATION X'130') 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
- * DMKSIX IS PRIVILEGED AND REUSABLE 00041000
- * 00042000
- * CHARACTER CODE DEPENDENCIES 00043000
- * NONE 00044000
- * 00045000
- * NOTE 00046000
- * NONE 00047000
- * 00048000
- ********************************************************************** 00049000
- EJECT 00050000
- ********************************************************************** 00051000
- ********************************************************************** 00052000
- LOGWD1A EQU 304 1ST HALF OF LOGOUT WORD 1 00053000
- LOGWD1B EQU 308 2ND HALF OF LOGOUT WORD 1 00054000
- LOGWD2A EQU 312 1ST HALF OF LOGOUT WORD 2 00055000
- LOGWD2B EQU 316 12ND HALF OF LOGOUT WORD 2 00056000
- LOGWD3A EQU 320 1ST HALF OF LOGOUT WORD 3 00057000
- LOGWD3B EQU 324 2ND HALF OF LOGOUT WORD 3 00058000
- CCHOPIN EQU X'80' TEST FOR OPERATION IN 00059000
- CCHPIT EQU X'02' POLLING INTERRUPT BIT 00060000
- CCHSIOLH EQU X'02' SIO LATCH 00061000
- CCHSTGCK EQU X'04' STORAGE CHECK BIT 00062000
- CCHSETUP EQU X'10' SET UP BIT IN LOG 00063000
- CCHCMDRG EQU X'20' COMMAND REGISTER PARITY VALID @VA01068 00064000
- ********************************************************************** 00065000
- EJECT 00066000
- ********************************************************************** 00067000
- ENTRY DMKSIX60 00068000
- DMKSIX60 EQU * 00069000
- USING PSA,R0 SETUP ADDRESSABILITY FOR LOWCORE 00070000
- USING SAVEAREA,R13 SETUP ADDRESSABILITY FOR SAVE AREA 00071000
- USING *,R12 SETUP ADDRESSABILITY FOR MODULE 00072000
- USING CCHREC,R9 SETUP ADDRESSABILITY FOR CCH RECORD 00073000
- USING IOERBLOK,R4 SETUP ADDRESSABILITY FO I/O ERROR 00074000
- * BLOCK 00075000
- LR R1,R12 SAVE THE BASE REG. TO AVIOD DESTROYING 00076000
- LR R12,R15 SETUP BASE ADDRESS 00077000
- STM R2,R0,CCHSAVE SAVE ALL REGS. EXECPT REGISTER 1 00078000
- ST R1,CCHSAVE+40 SAVE THE CONTENT OF REGISTER 12 00079000
- LA R2,6 SETUP COUNT VALUE FOR LOOP 00080000
- LA R1,X'130' GET THE ADDRESS OF THE I/O EXTENDED 00081000
- * LOGOUT 00082000
- CCHLOGU EQU * 00083000
- CLC 0(4,R1),FFS HAS CHANNEL LOGOUT ? 00084000
- BE CLEANUP NO, GO SET SYSTEM TERMINATION 00085000
- LA R1,4(R1) UPDATE THE I/O EXTENDED LOGOUT POINTER 00086000
- BCT R2,CCHLOGU GO TEST NEXT LOCATION 00087000
- IC R2,LOGWD3B+3 GET UNIT ADDRESS PARITY BIT 00088000
- SRL R2,7 ISOLATE PARITY BIT 00089000
- STC R2,PARIT SETUP PARITY TEST PARAMETER 00090000
- BAL R14,LOGPAR GO TEST PARITY BYTE 00091000
- DC AL2(LOGWD2A+3) LOCATION OF BYTE TO BE TESTED 00092000
- DC X'01' NUMBER OF BYTES TO BE TESTED 00093000
- PARIT DS X PARITY BYTE 00094000
- BNE CCH109A BAD PARITY IS INDICATED 00095000
- TM ENTSW,TIOCCH IS THIS AN ERROR ON A TIO ? 00096000
- BZ VALIDCCH NO, GO SET UNIT ADDRESS VALID 00097000
- CLC SIOADDR+1(1),LOGWD2A+3 IS THE UNIT ADDRESS EQUAL THE 00098000
- * UNIT ADDRESS IN THE LOGOUT 00099000
- BNE CCH109A NO, GO TEST PARITY BYTE 00100000
- VALIDCCH EQU * 00101000
- OI IGVALIDB,CCHDAV SET UNIT ADDRESS VALID FLAG 00102000
- CCH109A EQU * 00103000
- IC R2,LOGWD3B+3 GET PARITY BYTE FOR COMMAND REG 00104000
- SRL R2,2 ISOLATE PARITY BIT 00105000
- STC R2,PARIT1 SETUP PARITY TEST PARAMETER 00106000
- BAL R14,LOGPAR GO TEST PARITY BYTE 00107000
- DC AL2(LOGWD2A+1) LOCATION OF BYTE TO BE TESTED 00108000
- DC X'01' NUMBER OF BYTES TO BE TESTED 00109000
- PARIT1 DS X PARITY BYTE 00110000
- BNE CCH109D BAD PARITY IS INDICATED 00111000
- OI ENTSW,CCHCMDRG SET COMMAND REG VALID FLAG 00112000
- CCH109D EQU * 00113000
- TM CSW+5,IFCC IS THIS AN INTERFACE CONTROL CHECK ? 00114000
- BO CCH110 YES, GO INDICATE TERMINATION CODE 00115000
- OI IGTERMSQ,COMPFES SET FES TERMINATION CODE 00116000
- TM LOGWD3B,X'80' IS OP-IN UP ? 00117000
- BZ CCH109B NO, GET PARITY BYTE FOR COMMAND ADDR. 00118000
- OI IGVALIDB,CCHUSV SET VALID UNIT STATUS FLAG 00119000
- CCH109B EQU * 00120000
- IC R2,LOGWD3B+2 GET PARITY BYTE FOR COMMAND ADDRESS 00121000
- SRL R2,4 ISOLATE PARITY BIT 00122000
- STC R2,PARIT2 SETUP PARITY TEST PARAMETER 00123000
- BAL R14,LOGPAR GO TEST PARITY BYTE 00124000
- DC AL2(LOGWD1A+1) LOCATION OF BYTE TO BE TESTED 00125000
- DC X'03' NUMBER OF BYTES TO BE TESTED 00126000
- PARIT2 DS X PARITY BYTE 00127000
- BNE CCH112 BAD PARITY IS INDICATED 00128000
- CLC LOGWD1A+1(3),CSW+1 IS THE CSW ADDRESS THE SAME AS 00129000
- * IN THE LOGOUT 00130000
- BL CCH112 NO, COMMAND ADDRESS IS INVALID 00131000
- OI IGVALIDB,CCHCMDV SET COMMAND ADDRESS VALID FLAG 00132000
- CCH112 EQU * 00133000
- TM ENTSW,TIOCCH+HIOCCH IS THIS AN ERROR ON A TIO OR HIO ? 00134000
- BNZ CCH128 YES, GO CHECK COMMAND CHAIN 00135000
- CCH112G EQU * 00136000
- TM LOGWD3A+1,CCHSETUP IS SET UP ON IN LOGOUT ? 00137000
- BO CCH113 YES, GO SET RETRY CODE 00138000
- TM ENTSW,CCHCMDRG IS COMMAND REG PARITY VALID ? 00139000
- BZ CCH113 NO, GO SET RETRY CODE 00140000
- TM LOGWD3B,CCHOPIN IS OP-IN UP ? 00141000
- BO CCH112H YES, GO TEST LOGOUT 00142000
- NI IGTERMSQ,X'FF'-COMPFES SET TERMINATION CODE TO (00) 00143000
- CCH112H EQU * 00144000
- TM ENTSW,TIOCCH IS THIS AN ERROR ON A TIO ? 00145000
- BO CCH114 YES, GO CHECK SEQ. TRIGER 00146000
- TM LOGWD3A,X'08' IS SEQ TWO TRIGER ON ? 00147000
- BO CCH115 YES, GO CHECK DATA TRANFER 00148000
- TM LOGWD3B+1,CCHSTGCK IS THIS A STORAGE ERROR ? 00149000
- BO CCH112D YES, GO TEST COMMAND ADDRESS FLAG 00150000
- CCH112A EQU * 00151000
- OI IGBLAME,CCHCHNL INTERNAL CHANNEL ERROR 00152000
- CCH112B EQU * 00153000
- OI IGTERMSQ,RTCODE4 SET RETRY CODE TO (01) 00154000
- TM LOGWD3B,CCHSIOLH IS SIO LATCH ON ? 00155000
- BZ CCHRETRN NO, GO INITIALIZE THE LOGOUT AREA 00156000
- CCH112C EQU * 00157000
- OI IGVALIDB,CCHUSV SET UNIT STATUS VALID FLAG 00158000
- B CCHRETRN GO INITIALIZE THE LOGOUT AREA 00159000
- CCH112D EQU * 00160000
- TM IGVALIDB,CCHCMDV IS THE COMMAND ADDRESS VALID F? 00161000
- BZ CCH112A NO, GO INDICATE CHANNEL ERROR 00162000
- OI IGBLAME,CCHSTG INDICATE STORAGE IS THE SOURCE OF THE 00163000
- * ERROR 00164000
- B CCH112B GO SET THE RETRY CODE 00165000
- CCH110 EQU * 00166000
- OI IGTERMSQ,COMPSEL SET THE TERMINATION CODE FOR THE 00167000
- * SELECTOR RESET 00168000
- OI IGVALIDB,CCHCMDV SET THE COMMAND ADDRESS VALID FLAG 00169000
- TM LOGWD3B+1,X'20' IS DISCONNECT SET ? 00170000
- BZ CCH110D NO, GO TEST FOR POLLING INTERUPT 00171000
- OI IGTERMSQ,CCHDI SET THE DISCONNECT FLAG 00172000
- CCH110D EQU * 00173000
- TM LOGWD3A+1,CCHPIT IS POLLING INTERUPT FLAG SET ? 00174000
- BZ CCH110A NO, GO TEST INDICATOR IN LOGUT 00175000
- OI IGBLAME,CCHINTFC INDICATE INTERFACE IS THE SOURCE 00176000
- * OF THE ERROR 00177000
- OI IGTERMSQ,RTCODE3 SET THE RETRY CODE TO (011) 00178000
- B CCHRETRN GO INITIALIZE THE LOGOUT AREA 00179000
- CCH110A EQU * 00180000
- TM ENTSW,TIOCCH+HIOCCH IS THIS AN ERROR ON A TIO OR HIO ? 00181000
- BNZ CCH123 YES, GO CHECK COMMAND CHAIN 00182000
- CCH110B EQU * 00183000
- TM LOGWD3A+1,CCHSETUP IS SET UP BIT ON IN LOGOUT 00184000
- BO CCH116 YES, GO SET THE RETRY CODE 00185000
- TM ENTSW,CCHCMDRG DOES THE COMMAND REG HAVE VALID 00186000
- * PARITY ? 00187000
- BZ CCH116 NO, GO SET RETRY CODE 00188000
- TM LOGWD3A,X'20' IS COMMAND CHAINING INDICATED ? 00189000
- BO CCH110C YES, GO SET INTERFACE ERROR 00190000
- TM LOGWD3B,CCHSIOLH IS THE SIO LATCH ON ? 00191000
- BO CCH110C YES, GO SET INTERFACE ERROR 00192000
- TM LOGWD3A,X'08' IS SEQ TWO TRIGER ON ? 00193000
- BO CCH115 YES, GO CHECK FOR DATA TRANSFER 00194000
- CCH110C EQU * 00195000
- OI IGBLAME,CCHINTFC INDICATE INTERFACE IS THE SOURCE OF 00196000
- * THE ERROR 00197000
- OI IGTERMSQ,RTCODE1 SET RETRY CODE TO (001) 00198000
- B CCHRETRN GO INITIALIZE LOGOUT AREA 00199000
- CCH113 EQU * 00200000
- OI IGTERMSQ,RTCODE4 SET THE RETRY CODE TO (100) 00201000
- TM IGVALIDB,CCHDAV IS THE UNIT ADDRESS VALID ? 00202000
- BO CCH113A YES, GO TEST FOR STORAGE CHECK 00203000
- TM LOGWD3B,CCHSIOLH IS SIO LATCH ON ? 00204000
- BZ CCH113B NO, GO SET INTERNAL CHANNEL ERRO FLAG 00205000
- OI IGBLAME,CCHCPU INDICATE THAT CPU WAS THE SOURCE OF THE 00206000
- * ERROR 00207000
- B CCH113C GO TEST THE LOGOUT AREA 00208000
- CCH113A EQU * 00209000
- TM LOGWD3B+1,CCHSTGCK IS STORAGE ERROR INDICATED IN 00210000
- * LOGOUT ? 00211000
- BZ CCH113B NO, INDICATE CHANNEL ERROR IN ECSW 00212000
- OI IGBLAME,CCHSTG INDICATE SOURCE OF ERROR IS STORAGE 00213000
- B CCH113C GO TO STORAGE ERROR SECTION 00214000
- CCH113B EQU * 00215000
- OI IGBLAME,CCHCHNL CHANNEL IS THE SOURCE OF THE ERROR 00216000
- CCH113C EQU * 00217000
- TM LOGWD3B,CCHSIOLH IS SIO LATCH ON ? 00218000
- BZ CCHRETRN NO, GO INITIALIZE LOGOUT AREA 00219000
- NI IGVALIDB,X'FF'-CCHCMDV TURN OFF COMMAND ADDRESS VALID 00220000
- * FLAG 00221000
- B CCHRETRN GO INITIALIZE LOGOUT AREA 00222000
- CCH114 EQU * 00223000
- TM LOGWD3A,X'0E' ANY SEQ. TRIGERS ? 00224000
- BNZ CCH115 YES, GO CHECK DATA TRANFER 00225000
- TM LOGWD3A,X'20' IS THE COMMAND CHAINING BIT ON ? 00226000
- BZ CCH114B NO, GO SET THE RETRY CODE 00227000
- TM LOGWD3B,CCHOPIN IS OP-IN UP ? 00228000
- BO CCH115 YES, GO CHECK FOR DATA TRANFER 00229000
- OI IGBLAME,CCHCHNL INDICATE CHANNEL IS THE SOURCE OF 00230000
- * ERROR 00231000
- OI IGTERMSQ,RTCODE1 SET RETRY CODE TO (001) 00232000
- B CCHRETRN GO INITIALIZE LOGOUT 00233000
- CCH114B EQU * 00234000
- OI IGTERMSQ,RTCODE4 SET THE RETRY CODE TO (100) 00235000
- OI IGBLAME,CCHCHNL INDICATE CHANNEL IS THE SOURCE 00236000
- * OF THE ERROR 00237000
- B CCH117 GO CHECK FOR ICC ERROR 00238000
- CCH115 EQU * 00239000
- TM LOGWD3B,X'80' IS OP-IN UP ? 00240000
- BO CCH115B NO, GO TEST FOR INTERFACE CONTROL CHECK 00241000
- TM CSW+5,IFCC IS THIS AN INTERFACE CONTROL @VA01068 00242000
- * CHECK 00243000
- BZ CCH115C NO, SET CHANNEL ERROR FLAG @VA01068 00244000
- CCH115A EQU * 00245000
- OI IGBLAME,CCHINTFC ERROR WAS DUE TO INTERFACE 00246000
- B CCH118 GO SET RETRY CODE 00247000
- CCH115B EQU * 00248000
- TM CSW+5,IFCC IS THIS AN INTERFACE CONTROL CHECK ? 00249000
- BO CCH115A YES, GO SET INTERFACE AS BEING THE 00250000
- * SOURCE OF THE ERROR 00251000
- TM LOGWD3B+1,CCHSTGCK IS THIS A STORAGE CHECK ? 00252000
- BO CCH115D YES, GO INDICATE STORAGE ERROR 00253000
- CCH115C EQU * 00254000
- OI IGBLAME,CCHCHNL INDICATE CHANNEL ERROR AS SOURCE 00255000
- * OF ERROR 00256000
- B CCH115E GO CHECK THE COMMAND VALID FLAG 00257000
- CCH115D EQU * 00258000
- OI IGBLAME,CCHSTG INDICATE THAT STORAGE WAS THE SOURCE OF 00259000
- * THE ERROR 00260000
- CCH115E EQU * 00261000
- TM IGVALIDB,CCHCMDV IS THE COMMAND VALID BIT ON IN LOGOUT 00262000
- BZ CCH118 NO, GO SET RETRY CODE 00263000
- MVC PARIT3(1),LOGWD3B+2 MOVE PARITY BYTE INTO PARAMETER 00264000
- BAL R14,LOGPAR GO TEST PARITY BYTE 00265000
- DC AL2(LOGWD1B+2) LOCATION OF BYTE TO BE TESTED IN LOGOUT 00266000
- DC X'02' NUMBER OF BYTES TO BE TESTED 00267000
- PARIT3 DS X PARITY BYTE 00268000
- BNE CCH118 BAD PARITY WAS INDICATED 00269000
- NI LOGWD3A+2,X'0F' CLEAR UNWANTED BITS 00270000
- BAL R14,LOGPAR GO TEST PARITY BYTE 00271000
- DC AL2(LOGWD3A+2) LOCATION OF BYTE TO BE TESTED IN LOGOUT 00272000
- DC X'01' NUMBER OF BYTES TO BE TESTED 00273000
- DC X'00' PARITY BYTE 00274000
- BE CCH120 GOOD PARITY INDICATED 00275000
- CCH118 EQU * 00276000
- OI IGTERMSQ,RTCODE5 SET THE RETRY CODE TO (101) 00277000
- B CCHRETRN GO INITIALIZE LOGOUT AREA 00278000
- CCH120 EQU * 00279000
- L R2,CSW GET THE CSW ADDRESS 00280000
- LA R2,0(R2) CLEAR THE HIGH ORDER BYTE 00281000
- S R2,F8 GET THE ADDRESS OF THE LAST CCW 00282000
- BM CCH118 NEGATIVE VALUE , GO INDICATE THAT 00283000
- * IT IS INVALID 00284000
- LH R3,6(R2) GET COUNT FROM CCW 00285000
- N R3,XRIGHT16 CLEAR LOW ORDER BITS 00286000
- IC R2,3(R2) GET LOW ORDER BYTE OF DATA ADDRESS 00287000
- N R2,F7 CLEAR LOW ORDER BITS 00288000
- CH R3,CSW+6 IS CCW COUNT LOWER THAN CSW COUNT ? 00289000
- BL CCH122 YES, GO GET COUNT 00290000
- CCH120A EQU * 00291000
- AR R3,R2 ADD THE COUNTS TOGETHER 00292000
- CH R3,LOGWD1B+2 DOES COUNT EQUAL LOGOUT COUNT ? 00293000
- BNE CCH121 NO, GO SET RETRY CODE 00294000
- IC R3,LOGWD3A+2 GET BYTE COUNT REGISTER 00295000
- N R3,F7 CLEAR UNWANTED BITS 00296000
- CR R2,R3 ARE THE COUNTS EQUAL ? 00297000
- BNE CCH121 NO, GO SET CONDITION CODE 00298000
- OI IGTERMSQ,RTCODE2 SET RETRY CODE TO (010) 00299000
- B CCH117 GO SET COUNT VALID BIT 00300000
- CCH121 EQU * 00301000
- OI IGTERMSQ,RTCODE3 SET RETRY CODE TO (011) 00302000
- CCH117 EQU * 00303000
- TM CSW+5,IFCC IS THIS AN INTERFACE CONTROL CHECK ? 00304000
- BO CCHRETRN YES, GO INITIALIZE LOGOUT AREA 00305000
- OI IGPRGFLG,CCHCNTB SET COUNT VALID FLAG 00306000
- B CCHRETRN GO INITIALIZE LOGOUT AREA 00307000
- CCH122 EQU * 00308000
- LH R1,CSW+6 GET CSW BYTE COUNT 00309000
- N R1,XRIGHT16 CLEAR UNWANTED BITS 00310000
- SR R1,R2 SUBTRACT DAB FROM COUNT 00311000
- CR R1,R3 IS CSW COUNT HIGHER THAN CCW COUNT 00312000
- BH CCH118 YES, GO SET THE RETRY CODE 00313000
- B CCH120A GO CHECK FOR DATA TRANFER 00314000
- CCH123 EQU * 00315000
- TM LOGWD3A,X'2E' IS COMMAND CHAIN OR SEQ. TRIGERS ON ? 00316000
- BNZ CCH110B YES, GO CHECK FOR SETUP BIT 00317000
- TM LOGWD3A+1,CCHSETUP IS SETUP ON IN LOGOUT ? 00318000
- BO CCH125 YES, GO CHECK FOR SELECT OUT 00319000
- TM ENTSW,HIOCCH IS THIS AN ERROR ON A HIO ? 00320000
- BO CCH126 YES, GO INDICATE TYPE OF ERROR 00321000
- CCH116 EQU * 00322000
- OI IGTERMSQ,RTCODE4 SET THE RETRY CODE TO (100) 00323000
- OI IGBLAME,CCHINTFC INDICATE THAT INTERFACE IS THE 00324000
- * SOURCE OF THE ERROR 00325000
- B CCHRETRN GO INITIALIZE THE LOGOUT AREA 00326000
- CCH125 EQU * 00327000
- TM LOGWD3B,X'10' IS SELECT OUT ON ? 00328000
- BO CCH116 YES, GO SET RETRY CODE 00329000
- CCH126 EQU * 00330000
- OI IGBLAME,CCHCHNL INDICATE CHANNEL IS THE SOURCE OF 00331000
- * THE ERROR 00332000
- CCH130 EQU * 00333000
- OI IGTERMSQ,RTCODE4 SET RETRY CODE TO (100) 00334000
- B CCHRETRN GO INITIALIZE THE LOGOUT 00335000
- CCH128 EQU * 00336000
- TM LOGWD3A,X'2E' IS COMMAND CHAIN OR SEQ. TRIGGERS ON 00337000
- BNZ CCH112G YES, GO TEST FOR SETUP 00338000
- TM ENTSW,TIOCCH IS THIS AN ERROR ON A TIO ? 00339000
- BO CCH114B YES, GO SET RETRY CODE 00340000
- TM IGVALIDB,CCHDAV IS THE UNIT ADDRESS VALID ? 00341000
- BO CCH126 YES, GO SET RETRY CODE 00342000
- OI IGBLAME,CCHCPU SET CPU AS SOURCE OF ERROR 00343000
- B CCH130 GO INDICATE THE RETRY CODE 00344000
- CLEANUP EQU * 00345000
- OI ENTSW,TERMSYS SET SYSTEM TERMINATION 00346000
- B CCHEXIT4 GO RESTORE REGISTERS 00347000
- CCHRETRN EQU * 00348000
- LA R1,X'130' GET THE ADDRESS OF THE I/O EXTENDED 00349000
- * LOGOUT 00350000
- MVC CCHLOG60(24),0(R1) SAVE THE I/O EXTENDED LOGOUT 00351000
- MVI 0(R1),X'FF' INITIALIZE THE I/O EXTENDED LOGOUT 00352000
- MVC 1(23,R1),0(R1) TO ALL ONES 00353000
- MVI CCHSAVE+59,X'0D' CHANGE THE LENGTH OF THE CCH @VA00881 00354000
- * RECORD 00355000
- CCHEXIT4 EQU * 00356000
- LM R2,R0,CCHSAVE RESTORE THE REGISTERS 00357000
- BR R14 RETURN TO CCH CONTROL ROUTINE 00358000
- ********************************************************************** 00359000
- SPACE 2 00360000
- ********************************************************************** 00361000
- LOGPAR EQU * 00362000
- LH R1,0(R14) GET ADDRESS OF BYTE TO BE CHECKED 00363000
- SR R2,R2 CLEAR REGISTER 2 00364000
- IC R2,2(R14) GET COUNT OF NUMBER OF BYTES 00365000
- CCH202 EQU * 00366000
- MVI CCHPARBT,X'01' CLEAR PARITY BYTE 00367000
- SR R3,R3 CLEAR REGISTER 00368000
- IC R3,0(R1) GET BYTE TO BE CHECKED 00369000
- CCH201 EQU * 00370000
- LTR R3,R3 IS CONTENT OF REGISTER 3 ZERO ? 00371000
- BZ CCH200 YES, GO COMPARE PARITY BIT 00372000
- EX R3,CCHXOR CALCULATE PARITY 00373000
- SRL R3,1 GET NEXT BIT 00374000
- B CCH201 GO TEST NEXT BIT 00375000
- CCH200 EQU * 00376000
- NI CCHPARBT,X'01' REMOVE UNWANTED BITS 00377000
- IC R3,3(R14) GET PARITY BITS 00378000
- BCTR R2,R0 REDUCE THE NUMBER OF BYTES 00379000
- SRL R3,0(R2) ISOLATE PARITY BIT TO BE CHECKED 00380000
- N R3,F1 REMOVE UNWANTED BITS 00381000
- EX R3,CCHCLI TEST FOR PARITY BIT 00382000
- BNE 4(R14) RETURN TO IN LINE CODE - BAD PARITY 00383000
- LTR R2,R2 IS THIS LAST TEST ? 00384000
- BE 4(R14) YES, RETURN TO IN LINE CODE - GOOD 00385000
- * PARITY 00386000
- LA R1,1(R1) UPDATE ADDRESS POINTER BY ONE 00387000
- B CCH202 GO TEST FOR PARITY AGAIN 00388000
- ********************************************************************** 00389000
- EJECT 00390000
- ********************************************************************** 00391000
- CCHSAVE DS 16F 00392000
- CCHPARBT DC X'00' PARITY CHECK BYTE 00393000
- ******************************************************************** 00394000
- CCHXOR XI CCHPARBT,X'00' 00395000
- CCHCLI CLI CCHPARBT,X'00' 00396000
- ********************************************************************** 00397000
- ********************************************************************** 00398000
- EJECT 00399000
- ********************************************************************** 00400000
- PSA 00401000
- COPY EQU 00402000
- COPY DEVTYPES 00403000
- COPY SAVE 00404000
- ENTSW EQU SAVEWRK1 @VA01638 00405000
- SIOADDR EQU SAVEWRK9 SAVE THE DEVICE ADDRESS 00406000
- EJECT 00407000
- COPY IOER 00408000
- COPY CCHREC 00409000
- END 00410000
ibm/vm370-lib/cp/dmksix.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator