* /* START OF SPECIFICATIONS **** 00050002 *01* PROCESSOR = ASSEMXF-370R 00060002 **** END OF SPECIFICATIONS ***/ 00070002 IGG019VK CSECT ENTRY PINT FOR RESCN MODULE 00100019 TITLE 'IGG019VK---RESCN ROUTINE,OCR' 00200019 *********************************************************************** 00400019 *MODULE-NAME @YM00638 00450002 * IGG019VK @YM00638 00500002 * @YM00638 00550002 *DESCRIPTIVE-NAME @YM00638 00560002 * OCR RESCAN MODULE @YM00638 00570002 * @YM00638 00580002 *COPYRIGHT @YM00638 00590002 * NONE @YM00638 00592002 * @YM00638 00594002 *CHANGE-ACTIVITY @YM00638 00596002 * RELEASE 20 ADDITIONS/CHANGES/DELETIONS 00600001 *D408000,522000,524000,526000 A33939 00660001 *A252000,262000,406500-409000 A33939 00720001 * RELEASE 21 ADDITIONS/CHANGES/DELETIONS 00800001 * RELEASE 22 ADDITIONS/CHANGES/DELETIONS 01000001 * RELEASE 23 ADDITIONS/CHANGES/DELETIONS 01200001 * RELEASE 24 ADDITIONS/CHANGES/DELETIONS 01400001 * RELEASE 25 ADDITIONS/CHANGES/DELETIONS 01600001 * RELEASE 26 ADDITIONS/CHANGES/DELETIONS 01800001 * RELEASE 27 ADDITIONS/CHANGES/DELETIONS 02000001 * RELEASE 28 ADDITIONS/CHANGES/DELETIONS 02200001 * * 02400019 *STATUS - RELEASE 20 CHANGE LEVEL 001 * 02600001 * * 02800019 *FUNCTION/OPERATION - TO PROVIDE THE USER WITH THE ABILITY TO REREAD A* 03000019 * FIELD IN ERROR UP TO 9 TIMES. IF THE FIELD CAN * 03200019 * NOT BE SUCCESSFULLY READ, A READ WITH ON-LINE * 03400019 * CORRECTION MAY BE CALLED FOR BY THE USER. * 03600019 * * 03800019 *ENTRY POINTS - IGG019VK CSECT CALLING SEQUENCE - * 04000019 * LOAD DCB ADDRESS IN REGISTER 1 * 04200019 * IF ISSUED OUTSIDE THE SYNAD ROUTINE* 04400019 * THE FOLLOWING INSTRUCTIOS ARE * 04600019 * REQUIRED - * 04800019 * L 15,68(1) GET IOB ADDRESS * 05000019 * MVC 48(16,15),0(R1) MOVE TWO LOAD * 05200019 * FORMAT CCW'S TO* 05400019 * IOB+48 * 05600019 * MVC 40(8,15),0(R2) MOVE READ CCW * 05800019 * TO IOB+40 * 06000019 * THE FOLLOWING INSTRUCTIONS ARE * 06200019 * ALWAYS REQUIRED - * 06400019 * LA 0,X'0N' RETRY N TIMES * 06600019 * OR * 06800019 * LA 0,X'FN' RETRY N TIMES, THEN FORC* 07000019 * ON-LINE CORRECTION * 07200019 * L 15,12(1) GET ADDRESS OF RESCN * 07400019 * MODULE * 07600019 * BALR 14,15 LINK TO RESCN MODULE * 07800019 * * 08000019 *INPUT - IOB * 08200019 * IOBCSW - ADDRESS OF FAILING CCW IF IN SYNAD ROUTINE * 08400019 * DCB * 08600019 * DCBIOBA - ADDRESS OF THE IOB * 08800019 * DCBSYNAD - ADDRESS OF THE SYNAD ROUTINE * 09000019 *OUTPUT - COMPLETION CODE IN REGISTER 15 * 09200019 * UPDATED IOB ERROR COUNTERS * 09400019 * IF UNIT EXCEPTION OCCURS, EOF(X'40') IS POSTED IN DCBORBYT * 09600019 * IF ANY PERMANENT ERRORS OCCUR, THE EIB IS UPDATED * 09800019 * * 10000019 *EXTERNAL ROUTINES - IOS VIA EXCP * 10200019 * ERROR COUNTER UPDATE IN SYNCH ROUTINE * 10400019 * EIB UPDATE ROUTINE IN SYNCH ROUTINE * 10600019 * COMPLETION CODE ROUTINE IN SYNCH ROUTINE * 10800019 * USER SYNAD ROUTINE * 11000019 * * 11200019 *EXITS/NORMAL - RETURN TO CALLER - BR 14 * 11400019 * * 11600019 *EXITS/ERROR - ABEND, CODE 001 EOV 0(REG1) * 11800019 * * 12000019 *TABLES/WORK AREAS - USER SAVE AREA POINTED AT BY REGISTER 13 * 12200019 * * 12400019 *ATRIBUTES - REENTRANT,REUSABLE,PROBLEM PROGRAM MODE * 12600019 * * 12800019 *NOTES - N/A * 13000019 * * 13200019 *********************************************************************** 13400019 *********************************************************************** 13500019 * * 13600019 * REGISTER EQUATES * 13700019 * * 13800019 *********************************************************************** 13900019 REG0 EQU 0 GENERAL REGISTER 0 14000019 NUMF EQU 0 PARAMETER PESSER 14100019 REG1 EQU 1 GENERAL REGISTER 1 14200019 DCBR EQU 2 ADDRESS OF THE DCB 14300019 REG2 EQU 2 GENERAL REGISTER 2 14400019 IOBR EQU 3 ADDRESS OF THE IOB 14500019 REG3 EQU 3 REGISTER 3 14600019 CCWR EQU 4 CCW POINTER 14700019 WKREG1 EQU 5 WORK REGISTER 14800019 WKREG2 EQU 6 WORK REGISTER 14900019 WKREG3 EQU 7 WORK REGISTER 15000019 PARM1 EQU 7 HOLD POSSIBLE PASSED 'F' 15100019 PARM2 EQU 8 RETRY COUNTER 15200019 REG8 EQU 8 WORK REGISTER 15300019 REG9 EQU 9 GENERAL REGISTER 9 15400019 BASER EQU 9 BASE REGISTER 15500019 SAVR EQU 13 ADDRESS OF SAVE AREA 15600019 BACK EQU 14 USER RETURN ADDRESS 15700019 RETCODE EQU 15 USED TO PASS RETURN CODE 15800019 *********************************************************************** 15900019 * * 16000019 * IOB EQUATES * 16100019 * * 16200019 *********************************************************************** 16300019 IOBSTUS EQU 3 DISPLACEMENT TO IOB STATUS 16400019 IOBFLGS EQU 8 OFFSET TO IOBFLGS IN THE IOB 16500019 ECBADR EQU 12 OFFSET OF ECB ADDRESS IN IOB 16600019 IOBCSW EQU 17 DISPLACEMENT TO CSW IN IOB 16700019 DATADR EQU 0 DATA ADDRESS OFFSET IN CSW 16800019 STRTADR EQU 24 DISPLACEMENT TO IOB START ADDRESS 16900019 OFFSET1 EQU 40 OFFSET OF FIRST CCW 17000019 OFFSET2 EQU 48 OFFSET OF SECOND CCW 17100019 OFFSET3 EQU 56 OFFSET OF THIRD CCW 17200019 PERR EQU X'41' TEST FOR PERM ERROR IN ECB 17300019 UNEXCP EQU X'01' TEST UNIT EXCEPTION BIT 17400019 CCFLGON EQU X'40' SET COMM CHAIN BIT ON IN IOBFLGS 17500019 CCFLGOFF EQU X'BF' SET COMM CHAIN BIT OFF IN IOBFLGS 17600019 *********************************************************************** 17700019 * * 17800019 * DCB EQUATES * 17900019 * * 18000019 *********************************************************************** 18100019 SNBITOFF EQU X'7F' SET SYNAD IN PROCESS BIT OFF 18200019 SYNADBIT EQU X'80' SET SYNAD IN PROCESS BIT OF 18300019 PSYNAD EQU 1 TEST FOR PRESENCE OF SYNAD ROUTINE 18400019 HEOPTCD EQU X'10' TEST FOR HOPPER EMPTY EXIT REQUEST 18500019 HPREMPTY EQU X'02' TEST HOPPER EMPTY IN EIB 18600019 ERROFF EQU X'3F' TURN ERROR FLAGS OFF IN DCBIFLGS 18700019 EOF EQU X'40' SET EOF BIT IN DCBORBYT 18800019 *********************************************************************** 18900019 * * 19000019 * DECB EQUATES * 19100019 * * 19200019 *********************************************************************** 19300019 XDECB EQU 48 OFFSET OF DECB 19400019 XLNGTYP EQU 52 OFFSET OF LENGTH AND TYPE 19500019 XDCBADR EQU 56 OFFSET OF DCB ADDRESS 19600019 XCCWADR EQU 60 OFFSET OF CCW ADDRESS 19700019 XIOBADR EQU 64 OFFSET OF IOB ADDRESS 19800019 *********************************************************************** 19900019 * * 20000019 * CCW EQUATES * 20100019 * * 20200019 *********************************************************************** 20300019 COUNT EQU 6 OFFSET OF COUNT FIELD IN A CCW 20400019 CCWFLAGS EQU 4 DISPLACEMENT TO CCW FLAGS 20500019 RBCOMM EQU X'0C' READ BACKWARD COMMAND 20600019 CCOFF EQU X'BF' SET COMMAND CHAINING BIT OFF 20700019 CCON EQU X'40' SET COMMAND CHAINING BIT ON 20800019 RBDCOC EQU X'6C' RBDCOC COMMAND CODE 20900019 *********************************************************************** 21000019 * * 21100019 * SAVE AREA EQUATES * 21200019 * * 21300019 *********************************************************************** 21400019 USERSAVE EQU 12 DISPLACEMENT TO REGISTERS IN SAVE 21500019 SAVE39 EQU 16 SAVE AREA POINTER FOR REGISTERS 3-9 21600019 RETSAVE EQU 44 DISPLACEMENT TO RETURN ADDRESS SAVE 21700019 PARMSAVE EQU 48 PARAMETER SAVE AREA 21800019 FSAVE EQU 48 F SAVE AREA 21900019 RETRYSAV EQU 52 RETRY SAVE AREA 22000019 DCBSAVE EQU 68 DCB ADDRESS SAVE AREA 22100019 SAVE9 EQU 68 SAVE AREA POINTER FOR REGISTER 9 22200019 *********************************************************************** 22300019 * * 22400019 * MISCELLANEOUS EQUATES * 22500019 * * 22600019 *********************************************************************** 22700019 CNTRLB EQU X'20' SET CNTRL BIT FOR SYNAD REGISTER 22800019 ZERO EQU 0 ZERO A BYTE 22900019 SHIFTHI EQU 24 SHIFT COUNT FOR HIGH ORDER BYTE SHIFT 23000019 LNTYPLEN EQU 4 LENGTH OF LENGTH & TYPE TO MOVE 23100019 ECBMOVE EQU 4 LENGTH TO MOVE FOR ECB 23200019 CCRTN EQU 16 DISPLACEMENT TO CONDITION CODE RTN 23300019 EIBRTN EQU 8 DISPLACEMENT TO EIB ROUTINE ADDRESS 23400019 FORCECNT EQU X'02' FORCE AN EXCP FOR OLC 23500019 ERRCTADR EQU 24 DISPLACEMENT TO ADDR OF COUNTER RTN 23600019 ACTIOB EQU 8 POINT TO ACTUAL IOB 23700019 NELIM EQU X'F0' SAVE F 23800019 FELIM EQU X'0F' SAVE NUMBER OF RETRIES 23900019 CCWMOVE EQU 8 LENGTH OF CCW TO MOVE 24000019 TWELVE EQU 12 SHIFT COUNT TO SET ABEND COMP CODE 24100019 ONE EQU 1 ABEND COMPLETION CODE 24200019 RETRYEND EQU X'01' TEST FOR END OF RETRY REQUESTS A33939 25200001 ONLINE EQU X'F0' TEST FOR ON-LINE CORRECTION A33939 26200001 USING IGG019VK,RETCODE ESTABLISH TEMP BASE REG 30000019 USING IHADCB,DCBR ESTABLISH DCB REG 30200019 STM REG2,REG9,USERSAVE(SAVR) SAVE USER REGISTERS 30400019 ST BACK,RETSAVE(SAVR) SAVE RETURN ADDRESS 30600019 LR BASER,RETCODE LOAD NEW BASE REGISTER 30800019 DROP RETCODE 31000019 USING IGG019VK,BASER ESTABLISH AXDRESSIBILITY 31200019 LR DCBR,REG1 LOAD DCB REGISTER 31400019 L IOBR,DCBIOBA LOAD IOB ADDRESS 31600019 LR PARM1,NUMF SAVE PASSED PARAMETER 31800019 LR PARM2,NUMF SAVE PASSED PARAMETER 32000019 LA WKREG1,FELIM GET F ELIMINATOR 32200019 NR PARM2,WKREG1 LEAVE ONLY NUMBER OF RETRIES 32400019 LA WKREG1,NELIM GET NUMBER ELIMINATOR 32600019 NR PARM1,WKREG1 LEAVE ONLY POSSIBLE FORCE 32800019 LA PARM2,1(PARM2) BUMP COUNT BY ONE 33000019 STM PARM1,PARM2,PARMSAVE(SAVR) SAVE PASSED PARAMETERS 33200019 TM DCBORBYT,SYNADBIT TEST IF IN SYNAD ROUTINE 33400019 BZ NOTINSYN BRANCH IF NOT IN SYNAD 33600019 *********************************************************************** 33800019 * 34000019 * THIS CODE EXECUTED IF RESCN IS ISSUED IN THE SYNAD ROUTINE 34200019 * 34400019 *********************************************************************** 34600019 L CCWR,IOBCSW-1(IOBR) GET CCW ADDRESS 34800019 LA CCWR,0(CCWR) CLEAR HIGH ORDER BYTE 35000019 SH CCWR,EIGHT BACK UP BY 8 35200019 MVC OFFSET1(CCWMOVE,IOBR),0(CCWR) MOVE CCW TO IOB + 40 35400019 NI OFFSET1+CCWFLAGS(IOBR),CCOFF SET COMMAND CHAONING OFF 35600019 LA CCWR,OFFSET1(IOBR) LOAD ADDRESS OF READ COMMAND 35800019 NI IOBFLGS(IOBR),CCFLGOFF TURN COMM CHAIN BIT OF IN IOBFLGS 36000019 B RDREADY GO GET READY TO READ 36200019 *********************************************************************** 36400019 * 36600019 * THIS CODE EXECUTED IF RESCN IS NOT ISSUED IN THE SYNAD ROUTINE 36800019 * 37000019 *********************************************************************** 37200019 NOTINSYN OI OFFSET1+CCWFLAGS(IOBR),CCON SET COMMAND CHAINING ON IN 37400019 * CCW 1 37600019 OI OFFSET2+CCWFLAGS(IOBR),CCON SET CHAINING ON IN CCW 2 37800019 NI OFFSET3+CCWFLAGS(IOBR),CCOFF SET CHAINING OFF IN CCW 3 38000019 LA CCWR,OFFSET3(IOBR) LOAD ADDRESS OF READ COMMAND 38200019 *********************************************************************** 38400019 * 38600019 * THIS CODE EXECUTED WHENEVER RESCN IS ISSUED 38800019 * 39000019 *********************************************************************** 39200019 RDREADY L WKREG1,DATADR(CCWR) GET DATA ADDRESS 39400019 LA WKREG1,0(WKREG1) CLEAR HIGH ORDER BYTE 39600019 LH WKREG2,COUNT(CCWR) LOAD COUNT FROM CCW 39800019 BCTR WKREG2,0 DECREMENT COUNT BY 1 40000019 TM 0(CCWR),RBCOMM IS COMMAND A READ BACKWARD 40200019 BNO RDFWD NO DON'T ADJUST I/O AREA ADDRESS 40400019 SR WKREG1,WKREG2 ADJUST I/O AREA ADDRESS 40600019 RDFWD EQU * A33939 40650001 CLI FSAVE+3(SAVR),ONLINE IS THERE ONLINE CORRECTION A33939 40700001 BE EXCLEAR YES, CLEAR I/O AREA A33939 40750001 CLI RETRYSAV+3(SAVR),RETRYEND ARE ALL RETRIES DONE A33939 40800001 BE GOTOEIB YES, GO TO EIB ROUTINE A33939 40850001 EXCLEAR EX WKREG2,CLEAR CLEAR I/O AREA A33939 40900001 CPSRTADR EQU * 41000019 L WKREG3,STRTADR(IOBR) SAVE IOB START ADDRESS 41200019 LA WKREG2,OFFSET1(IOBR) LOAD CHANNEL PROG START ADDR 41400019 ST WKREG2,STRTADR(IOBR) SET NEW IOB START ADDRESS 41600019 NI DCBIFLGS,ERROFF TURN ERROR FLAGS OFF 41800019 L PARM2,RETRYSAV(SAVR) LOAD RETRY COUNT 42000019 BCT PARM2,READ READ UNTIL COUNT IS EXHAUSTED 42200019 B TRYOLC TRY POSSIBLE ON LINE CORRECTION 42400019 *********************************************************************** 42600019 * 42800019 * EXECUTE CHANNEL PROGRAM AND WAIT 43000019 * 43200019 *********************************************************************** 43400019 READ EQU * RETRY ROUTINE 43600019 ST PARM2,RETRYSAV(SAVR) SAVR RETRY COUNT 43800019 L REG8,IOBCSW-1(IOBR) SAVE FAILING CCW ADDRESS 44000019 EXCP ACTIOB(IOBR) EXECUTE CHANNEL PROGRAM 44200019 L REG1,ECBADR(IOBR) LOAD ECB ADDRESS 44400019 WAIT ECB=(REG1) WAIT FOR EVENT TO COMPLETE 44600019 ST REG8,IOBCSW-1(IOBR) RESTORE FAILING CCW ADDRESS 44800019 ST WKREG3,STRTADR(IOBR) RESTORE START ADDRESS 45000019 *********************************************************************** 45200019 * 45400019 * BRANCH AND LINK TO ERROR COUNTER ROUTINE 45600019 * 45800019 *********************************************************************** 46000019 L RETCODE,DCBCHECK LOAD ADDRESS OF CHECK ROUTINE 46200019 BAL BACK,ERRCTADR(RETCODE) LINK TO COUNTER UPDATE TOUTINE 46400019 *********************************************************************** 46600019 SR RETCODE,RETCODE SET RETURN CODE TO ZERO 46800019 CLI 0(CCWR),RBDCOC IS COMMAND CODE RBDCOC 47000019 BNE UETEST NO TEST FOR UNIT EXCEPTION 47200019 L REG1,ECBADR(IOBR) LOAD ECB ADDRESS 47400019 CLI 0(REG1),PERR DID ANY PERMANENT ERRORS OCCUR 47600019 BE GOTOEIB YES GO TO EIB ROUTINE 47800019 DONE NI DCBIFLGS,ERROFF RESET DCB ERROR FLAGS 48800019 OI IOBFLGS(IOBR),CCFLGON TURN COMM CHAIN BIT ON IN IOBFLGS 49000019 L BACK,RETSAVE(SAVR) RESTORE RETURN ADDRESS 49200019 LM REG2,REG9,USERSAVE(SAVR) RESTORE USER REGISTERS 49400019 BR BACK RETURN TO USER 49600019 UETEST TM IOBCSW+IOBSTUS(IOBR),UNEXCP DID UNIT EXCEPTION OCCUR 49800019 BZ NOUNEX NO TEST FOR ERRORS 50000019 OI DCBORBYT,EOF POST EOF IN DCBORBYT 50200019 NOUNEX L REG1,ECBADR(IOBR) LOAD ECB ADDRESS 50400019 CLI 0(REG1),PERR DID ANY PERMANENT ERRORS OCCUR 50600019 BE RDREADY YES GO RETRY 50800019 B DONE RETURN TO USER 51800019 TRYOLC EQU * 52000019 TM 0(CCWR),RBCOMM IS COMMAND CODE READ BACKWARD 52800019 BO RDBKWD YES DONT ADJUST I/O AREA ADDRESS 53000019 L WKREG1,0(CCWR) GET INPUT AREA ADDRESS 53200019 LA WKREG1,0(WKREG1) CLEAR HIGH ORDER BYTE 53400019 LH WKREG2,COUNT(CCWR) GET CCW BYTE COUNT 53600019 BCTR WKREG2,0 DECREMENT COUNT BY 1 53800019 AR WKREG1,WKREG2 ADD COUNT TO ADDRESS 54000019 ST WKREG1,0(CCWR) UPDATE DATA ADDRESS 54200019 RDBKWD MVI 0(CCWR),RBDCOC FORCE COMMAND CODE TO RBDCOC 54400019 MVI RETRYSAV+3(SAVR),FORCECNT SET FOR ONE NORE TIME 54600019 B CPSRTADR BRANCH TO STORE AND EX CHAN PROG 54800019 *********************************************************************** 55000019 * 55200019 * BRANCH AND LINK TO SET ERROR INDICATOR BYTE ROUTINE 55400019 * 55600019 *********************************************************************** 55800019 GOTOEIB EQU * 56000019 ERRORS L RETCODE,DCBCHECK LOAD ADDRESS OF CHECK ROUTINE 56200019 BAL BACK,EIBRTN(RETCODE) LINK TO EIB ROUTINE 56400019 *********************************************************************** 56600019 * 56800019 * BRANCH AND LINK TO SET COMPLETION CODE ROUTINE 57000019 * 57200019 *********************************************************************** 57400019 L RETCODE,DCBCHECK LOAD ADDRESS OF THE CHECK ROUTINE 57600019 BAL BACK,CCRTN(RETCODE) LINK TO CONDITION CODE ROUTINE 57800019 *********************************************************************** 58000019 TM IOBCSW+3(IOBR),UNEXCP DID UNIT EXCEPTION OCCUR 58200019 BZ SYNADCK NO CHECK FOR SYNSD 58400019 OI DCBORBYT,EOF POST EOF IN DCBORBYT 58600019 B DONE RETURN TO USER 58800019 SYNADCK TM DCBORBYT,SYNADBIT IS SYNAD ROUTINE IN CONTROL 59000019 BO DONE YES RETURN TO USER 59200019 TM DCBSYNAD+3,PSYNAD SYNAD ROUTINE PRESENT 59400019 BZ SYNPROC YES PROCESS FOR SYNAD 59600019 LA REG0,ONE SET COMPLETION CODE TO 1 59700019 SLL REG0,TWELVE ADJUST FOR EOV 59800019 LR REG1,DCBR SET REG1 TO DCB ADDRESS 60000019 EOV 0(REG1) GO TO EOV TO ABEND 60200019 *********************************************************************** 60400019 * 60600019 * RETURN TO THE USER 60800019 * 61000019 *********************************************************************** 61200019 SYNPROC TM DCBEIB,HPREMPTY HOPPER EMPTY PRESENT 61400019 BZ HPRFULL NO 61600019 TM DCBOPTCD,HEOPTCD HOPPER EMPTY EXIT SPECIFIED 61800019 BZ DONE NO RETURN TO USER 62000019 *********************************************************************** 62200019 * 62400019 * GO TO THE USER'S SYNAD ROUTINE 62600019 * 62800019 *********************************************************************** 63000019 HPRFULL L WKREG1,ECBADR(IOBR) LOAD ECB ADDRESS 63200019 MVC XDECB(ECBMOVE,SAVR),0(WKREG1) MOVE ECB TO DECB 63400019 STC RETCODE,DCBEIB+1 SAVE RETURN CODE 63600019 MVC XLNGTYP(LNTYPLEN,SAVR),LNGTYP MOVE LENGTH & TYPE TO DECB 63800019 LA WKREG2,OFFSET1(IOBR) LOAD ADDRESS OF CHANNEL PROGRAM 64000019 ST WKREG2,XCCWADR(SAVR) STORE CCW ADDRESS TO DECB 64200019 ST DCBR,XDCBADR(SAVR) STORE DCB ADDRESS TO DECB 64400019 ST IOBR,XIOBADR(SAVR) STORE IOB ADDRESS TO DECB 64600019 LA REG0,XDECB(SAVR) GET DECB ADDRESS IN REG0 64800019 LA REG1,CNTRLB SET CNTRL BIT ON IN REG1 65000019 SLL REG1,SHIFTHI SHIFT TO HIGH ORDER BYTE 65200019 OR REG1,DCBR DCB ADDRESS TO REG1 65400019 NI DCBIFLGS,ERROFF TURN ERROR FLAGS OFF 65600019 OI DCBORBYT,SYNADBIT TURN SYNAD BIT ON 65800019 L RETCODE,DCBSYNAD LOAD ADDRESS OF SYNAD ROUTINE 66000019 ST REG9,SAVE9(SAVR) SAVE REGISTER 9 66200019 LM REG2,REG9,USERSAVE(SAVR) RESTORE USER REGISTERS 66400019 ST REG1,USERSAVE(SAVR) SAVE DCB ADDRESS 66600019 BALR BACK,RETCODE BRANCH AND LINK TO USER SYNAD RTN 66800019 STM REG3,REG9,SAVE39(SAVR) SAVE USER REGISTERS 67000019 L REG9,SAVE9(SAVR) RESTORE REGISTER 9 67200019 L REG3,USERSAVE(SAVR) GEF DCB ADDRESS 67400019 ST REG2,USERSAVE(SAVR) SAVE USER REGISTER 2 67600019 LR DCBR,REG3 RESTORE DCB POINTER 67800019 NI DCBIFLGS,ERROFF TURN OFF ERROR FLAGS 68000019 NI DCBORBYT,SNBITOFF TURN OFF SYNAD BIT 68200019 LTR RETCODE,RETCODE TEST IF ADDRESS IS SPECIFIED 68400019 BZ LODRETCD RESTORE RETURN CODE IF ZERO 68600019 NI DCBORBYT,ZERO RESET OCR FLAGS 68800019 LM REG2,REG9,USERSAVE(SAVR) RESTORE USER REGISTERS 69000019 BR RETCODE BRANCH TO SPECIFIED ADDRESS 69200019 LODRETCD IC RETCODE,DCBEIB+1 RESTORE RETURN CODE 69400019 MVI DCBEIB+1,ZERO CLEAR RETURN CODE SAVE AREA 69600019 B DONE RETURN TO USER 69800019 CLEAR XC 0(1,WKREG1),0(WKREG1) EXECUTED INSTRUCTION TO CLEAR AREA 70000019 EIGHT DC H'8' HALF WORD CONSTANT 70200019 LNGTYP DC X'00008000' LENGTH AND TYPE 70400019 IHADCB DCBD DSORG=PS,DEVD=OR DCB DSECT @YM00635 70600002 END IGG019VK 70800019