ITP TITLE 'DMSITP (CMS) VM/370 - RELEASE 6' 00001000 SPACE 2 00002000 *. 00003000 * 00004000 * 00005000 * 00006000 * 00007000 * MODULE NAME - 00008000 * 00009000 * DMSITP (INTPROG) 00010000 * 00011000 * FUNCTION - 00012000 * 00013000 * HANDLE PROGRAM INTERRUPTS, PROCESS SPIE EXITS, PASS 00014000 * CONTROL TO PROGRAM CHECK ROUTINE (CMSDOS), PASS CONTROL 00014100 * TO DMSBAB TO CHECK FOR LINKAGE TO ABNORMAL TERMINATION 00014200 * ROUTINE (CMSDOS). 00014300 * 00015000 * ATTRIBUTES - 00016000 * 00017000 * RE-ENTRANT, NUCLEUS-RESIDENT 00018000 * 00019000 * ENTRY POINTS - 00020000 * 00021000 * DMSITP 00022000 * 00023000 * ENTRY CONDITIONS - 00024000 * 00025000 * REGISTERS SET AS OF POINT OF INTERRUPT, PGMOPSW CONTAINS THE 00026000 * PROGRAM OLD PSW. 00027000 * 00028000 * EXIT CONDITIONS - 00029000 * 00030000 * NORMAL - 00031000 * CMS/OS: 00031100 * IF NO SPIE EXIT ROUTINE CAN BE TAKEN, THEN CONTROL PASSES 00032000 * TO DMSABN. 00033000 * IF A 'SPIE' EXIT ROUTINE IS TAKEN, THEN EXECUTION RESUMES BY 00034000 * LOADING THE PROGRAM OLD PSW, AS ALTERED BY THE SPIE EXIT 00035000 * ROUTINE. 00036000 * 00036100 * CMS/DOS: 00036200 * IF LINKAGE HAS BEEN ESTABLISHED TO A PROGRAM CHECK 00036300 * ROUTINE (STXIT PC), CONTROL IS PASSED TO THIS ROUTINE. 00036400 * IF NO LINKAGE HAS BEEN ESTABLISHED TO A PROGRAM CHECK 00036500 * ROUTINE, A CHECK IS MADE TO SEE IF LINKAGE HAS BEEN 00036600 * ESTABLISHED TO AN ABNORMAL TERMINATION ROUTINE (STXIT AB). 00036700 * IF SO, CONTROL IS PASSED TO DMSBAB WHICH WILL GIVE CONTROL 00036800 * TO THE STXIT AB ROUTINE. 00036900 * IF NO PC OR AB ROUTINE CAN BE GIVEN CONTROL, CONTROL 00037000 * PASSES TO DMSABN. 00037100 * 00037200 * ERROR - 00038000 * SEE 'NORMAL'. 00039000 * 00040000 * CALLS TO OTHER ROUTINES - 00041000 * 00042000 * DMSABNGO -- TO ABEND THE USER. 00043000 * 00044000 * DMSFREE -- TO ALLOCATE USER FREE STORAGE FOR A 'PIE'. 00045000 * 00046000 * DMSERR -- TO TYPE OUT THE PROGRAM CHECK ERROR MESSAGE. 00047000 * 00048000 * 00049000 * EXTERNAL REFERENCES - 00050000 * 00051000 * DMSABNGO 00052000 * DMSFREB 00053000 * DMSERR 00054000 * DMSABW -- DMSABN WORK AREA 00055000 * DOSAVE - CMS/DOS SAVE AREA 00055100 * BGCOM - CMS/DOS PARTITION COMMUNICATION REGION 00055200 * SYSCOM - CMS/DOS SYSTEM COMMUNICATION REGION 00055300 * PIBTAB - CMS/DOS PROGRAM INFORMATION BLOCK 00055400 * 00056000 * TABLES / WORKAREAS - 00057000 * 00058000 * REFERENCES 'PGMSECT', IN THE NUCON PAGES. 00059000 * 00060000 * REGISTER USAGE - 00061000 * 00062000 * R1 -> WORK REGISTER 00062100 * R3 -> PGMSECT WORK AREA 00063000 * R4 -> FVSECT 00064000 * R5 -> SCRATCH AREA, WORK REGISTER 00065000 * R6 = SCRATCH 00066000 * R7 -> PICA, WORK REGISTER 00067000 * R8 -> DMSABW, THE DMSABN WORK AREA 00068000 * R9 -> SSAVE, THE CURRENT SYSTEM SAVE AREA 00069000 * R10 -> WORK REGISTER 00069100 * R11 -> WORK REGISTER 00069200 * 00070000 * NOTES - 00071000 * 00072000 * NONE 00073000 * 00074000 * OPERATION - 00075000 * 00076000 * CMS/OS: 00076100 * IF A SPIE EXIT ROUTINE HAS BEEN SPECIFIED, AND IT IS NOT 00077000 * ALREADY ACTIVE, THEN CONTROL PASSES THERE, AFTER A 'PIE' HAS 00078000 * BEEN ALLOCATED IN USER STORAGE. WHEN CONTROL RETURNS FROM 00079000 * THE EXIT ROUTINE, THE MODIFIED PGM OLD PSW IS LOADED, AFTER 00080000 * ANY MODIFIED REGISTERS HAVE BEEN RE-LOADED. 00081000 * 00082000 * IF A SPIE EXIT ROUTINE CANNOT BE TAKEN, THEN AN ERROR MESSAGE 00083000 * IS TYPED OUT, AND CONTROL IS PASSED TO DMSABN, THE ABEND 00084000 * RECOVERY ROUTINE. 00085000 * 00086000 * CMS/DOS: 00087000 * IF LINKAGE HAS BEEN ESTABLISHED TO A PROGRAM CHECK 00087100 * ROUTINE (STXIT PC), CONTROL IS PASSED TO THIS ROUTINE. 00087200 * IF NO LINKAGE HAS BEEN ESTABLISHED TO A PROGRAM CHECK 00087300 * ROUTINE, A CHECK IS MADE TO SEE IF LINKAGE HAS BEEN 00087400 * ESTABLISHED TO AN ABNORMAL TERMINATION ROUTINE (STXIT AB). 00087500 * IF SO, CONTROL IS PASSED TO DMSBAB WHICH WILL GIVE CONTROL 00087600 * TO THE STXIT AB ROUTINE. 00087700 * IF NO PC OR AB ROUTINE CAN BE GIVEN CONTROL, CONTROL 00087800 * PASSES TO DMSABN. 00087900 *. 00089000 EJECT 00090000 DMSITP CSECT 00092000 REGEQU 00093000 SPACE 2 00094000 BR EQU R12 BASE REGISTER 00095000 WR EQU R3 POINTER TO PGMSECT WORK AREA 00096000 FVR EQU R4 POINTER TO FVSECT 00097000 XR EQU R5 SCRATCH REGISTER 00098000 WORDP EQU R6 POINTER TO DESCRIPTIVE WORD 00099000 PCR EQU R7 POINTER TO PICA, IF ANY 00100000 ABWR EQU R8 POINTER TO DMSABW 00101000 SSVR EQU R9 POINTER TO SSAVE 00102000 SPACE 2 00103000 USING DMSITP,BR 00104000 USING PGMSECT,WR 00105000 USING FVSECT,FVR 00106000 USING NUCON,R0 00107000 USING ABWSECT,ABWR 00108000 USING SSAVE,SSVR 00109000 DMSITP CSECT 00111000 ST WR,0 SAVE WR TEMPORARILY 00112000 L WR,APGMSECT POINT TO PGMSECT 00113000 STM R0,R15,PSAVE SAVE ALL REGISTERS 00114000 MVC PSAVE+4*WR(4),0 COPY CORRECT WR REG 00115000 BALR BR,0 ESTABLISH ADDRESSABILITY 00116000 USING *,BR 00117000 L BR,=A(DMSITP) SET UP CORRECT BASE 00118000 USING DMSITP,BR 00119000 L FVR,AFVS POINT TO FVSECT 00120000 L ABWR,=V(DMSABW) POINT TO DMSABW 00121000 L SSVR,CURRSAVE POINT TO SSAVE, CURRENT *00122000 SYSTEM SAVE AREA 00123000 MVC OPSW(8),PGMOPSW COPY OLD PSW INTO WORK AREA 00124000 STM R14,R2,OPSW+8 SAVE REGS @VA02039 00124100 SPACE 00125000 * SET UP REG WORDP SO THAT IT POINTS TO A DESCRIPTIVE WORD, 00126000 * DESCRIBING THE TYPE OF INTERRUPT. 00127000 SR WORDP,WORDP 00128000 IC WORDP,OPSW+3 GET INTERRUPT CODE 00129000 MH WORDP,=AL2(TABLEN) MULTIPLY BY TABLE ELEMENT LENGTH 00130000 LA WORDP,TYPTAB(WORDP) POINT TO CORRECT WORD 00131000 LM R0,R1,CALLEE GET CALLEE NAME ENTERED. 00131100 L R15,=V(ABBREV) GET ABBREV ROUTINE ADDRESS. 00131200 BALR R14,R15 ... 00131300 STM R0,R1,CALLEE USE ABBREV COMMAND NAME. 00131400 LM R0,R1,PSAVE RESTORE R0, R1 V0727 00131500 LM R14,R15,PSAVE+4*R14 RESTORE R14 AND R15 @VA01033 00131600 SPACE 00132000 * IF UFDBUSY IS NON-ZERO, THEN WE ARE IN THE MIDST OF A DISASTER. 00133000 CLI UFDBUSY,0 USER FILE DIRECTORY BUSY? 00134000 BNE ERRUFD DISASTER ERROR IF NONZERO 00135000 SPACE 00136000 * IF A SYSTEM ROUTINE WAS ACTIVE AT THE TIME, THEN WE'RE IN BAD SHAPE. 00137000 TM TYPFLAG,TPFUSR 'USER' FLAG SET? 00138000 BNO ERRNUSR GO IF NOT 00139000 TM DOSFLAGS,DOSMODE+DOSSVC DOS ENVIRONMENT ACTIVE @V305066 00140100 BNO ISITSTAE NO, MUST BE CMS/OS @VM03203 00140125 TM VSAMFLG1,VSAMSERV IS AMSERV RUNNING ? @VM03203 00140150 BO NOSPIE YES, TERMINATE HERE... @VM03203 00140175 USING BGCOM,R5 BACKGROUND COMREG ADDRESSABILITY @V305066 00140200 L R5,ASYSREF BGCOM ADDRESS @V305066 00140250 SPACE 1 00140300 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00140350 * THE FOLLOWING CODE STORES INTERRUPT INFORMATION IN THE PIB * 00140400 * EXTENSION AFTER A PROGRAM CHECK HAS OCCURRED. THIS ROUTINE ALSO * 00140450 * STORES THE OLD PSW AND THE USER REGISTERS AT THE TIME OF THE * 00140500 * PROGRAM CHECK IN THE USER SAVEAREA. * 00140550 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00140600 SPACE 1 00140650 LH R7,PIK PROGRAM INTERRUPT KEY @V305066 00140700 USING PIBADR,R7 ESTABLISH ADDRESSABILITY @V305066 00140750 AH R7,PIBPT INCREM R7 BY ADD OF PIB @V305066 00140800 SPACE 1 00140850 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00140900 * R7 NOW POINTS TO THE PARTITION PIB * 00140950 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141000 SPACE 1 00141050 SH R7,PIBDIFF @V305066 00141100 SPACE 1 00141150 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141200 * R7 NOW POINTS TO THE PARTITION PIB EXTENSION * 00141250 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141300 SPACE 1 00141350 SR R10,R10 CLEAR WORK REG @V305066 00141400 SPACE 1 00141450 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141500 * THE FOLLOWING INSTRUCTIONS PLACE THE INTERRUPT INFORMATION * 00141550 * IN THE PARTITION PIB EXTENSION * 00141600 * THE FORMAT OF THE INTERRUPT INFORMATION IN THE PIB EXTENSION * 00141650 * IS AS FOLLOWS: * 00141700 * * 00141750 * BYTE 0 - X'00' * 00141800 * BYTE 1 - ILC IN BITS 5,6; OTHER BITS ARE ZERO * 00141850 * BYTES 2,3 - INTERRUPTION CODE * 00141900 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141950 SPACE 1 00142000 IC R10,OPSW+4 INSERT ILC @V305066 00142050 SRL R10,6 SHIFT RIGHT TO ELIMINATE GARBAGE @V305066 00142100 SLL R10,17 SHIFT LEFT TO POSITION IN REG @V305066 00142150 IC R10,OPSW+3 COMPLETE INTERRUPT CODE @V305066 00142200 ST R10,INTINFO STORE SVC INTERR INFO IN PIB EXT @V305066 00142250 LAPIB LA R7,32(R7) RE-ESTABLISH PIB POINTER @V305066 00142300 PIBDIFF EQU LAPIB+2 DISP BETWEEN PIB AND PIB EXT @V305066 00142350 L R11,PIBSAVE GET SAVE AREA ADDRESS @V305066 00142400 USING SVEARA,R11 ESTABLISH ADDRESSABILITY @V305066 00142450 MVC SVEPSW(8),OPSW SAVE OLD PSW @V305066 00142500 MVC SVER09(28),PSAVE+36 USER'S REGS TO PP/LTA SAVE @V305066 00142550 MVC SVER00(36),PSAVE STORE REST OF USER'S REGISTERS @V305066 00142600 LH R10,PIK GET REQUESTOR'S KEY @V305066 00142650 LH R2,PCPTR PC OPTION TABLE POINTER @V305066 00142700 SRL R10,1 PC OPT TABLE HAS 8-BYTE ENTRY @V305066 00142750 AR R2,R10 CALCULATE ENTRY TO PC OPTION TAB @V305066 00142800 LM R10,R11,0(R2) LOAD ROUTINE/SAVEAREA ADD @V305066 00142850 LTR R10,R10 IS EXIT ROUTINE AVAILABLE? @V305066 00142900 BP PCROUT YES, SET UP FOR USER EXIT @V305066 00142950 ABTERM L R11,ASYSCOM ADDRESS SYSCOM @V305066 00143000 USING SYSCOM,R11 SYSCOM ADDRESSABILITY @V305066 00143050 L R11,IJBABTAB AB OPTION TABLE ADDRESS @V305066 00143100 LH R10,PIK PROGRAM REQUEST KEY @V305066 00143150 SRL R10,1 AB OPT TAB 8-BYTE ENTRIES @V305066 00143200 AR R11,R10 CAL. AB TAB ENTRY @V305066 00143250 L R10,0(R11) AB ROUTINE ADDRESS @V305066 00143300 LTR R10,R10 AB ROUT AVAILABLE @V305066 00143350 BZ RESET NO, ISSUE PC ERROR MSG @V305066 00143400 SR R0,R0 CLEAR REGISTER 0 @V305066 00143450 IC R0,=XL1'20' PC ERROR CODE @V305066 00143500 LA R1,=CL8'$$BABEND' PREPARE TO SEE IF STXIT AB @V305066 00143550 SVC SVC2 HAS BEEN SET UP @V305066 00143600 RESET XC LTK(2),LTK ZERO LOG. TRANS. KEY @V305066 00143650 LH R11,PIBPT PIB ADDRESS @V305066 00143700 L R10,ALTASAVE LTA SAVE ADDRESS @V305066 00143750 ST R10,8(,R11) STORE LTA IN ATTENT. PIB @V305066 00143800 L R10,APPSAVE PPSAVE ADDRESS @V305066 00143850 LA R11,16(,R11) POINT TO PART. PIB @V305066 00143900 ST R10,4(,R11) STORE IN PART. PIB @V305066 00143950 B NOSPIE BR TO ISSUE ERR MSG @V305066 00144000 PCROUT CLC ALTASAVE+1(3),PIBSAVE+1 REQUEST FROM LTA @V305066 00144050 BNE CONTINUE OK, KEEP PROCESSING @V305066 00144100 B ABTERM ABNORMALLY TERM @V305066 00144150 CONTINUE L R1,PIBSAVE @V305066 00144200 USING SVUARA,R11 USER SAVEAREA ADDRESSABILITY @V305066 00144250 USING SVEARA,R1 PPSAVE ADDRESSABILITY @V305066 00144300 MVC SVUPSW(8),SVEPSW MOVE PSW AND REGISTERS @V305066 00144350 MVC SVUR00(36),SVER00 TO USER SAVE AREA IN @V305066 00144400 MVC SVUR09(28),SVER09 SEQUENCE R0-R15 @V305066 00144450 ST R10,SVEPSW2 STORE ROUTINE ADDRESS IN PSW @V305066 00144500 LCR R10,R10 CONVERT ROUTINE ADDRESS @V305066 00144550 ST R10,0(R2) STORE ROUTINE IN PC TABLE @V305066 00144600 MVC PGMOPSW(8),SVEPSW MOVE USER'S PSW AND @V305066 00144650 LM R9,R15,SVER09 RETURN CONTROL TO INST IND IN @V305066 00144700 LM R0,R8,SVER00 REGISTERS TO CMS LOCATIONS @V305066 00144750 LPSW PGMOPSW @V305066 00144800 ISITSTAE L PCR,PICADDR POINT TO PICA @V305066 00144850 LTR PCR,PCR IS THERE ANY? @V305066 00144900 BZ CKSTAE @V305066 00144950 SPACE 1 00145000 * IF PICADDR IS NEGATIVE, THEN A PROGRAM CHECK OCCURRED IN A SPIE 00145050 * EXIT ROUTINE WHICH IS ALREADY ACTIVE. 00145100 BM BADSPIE SPIE ALREADY ACTIVE @V305066 00145150 SPACE 1 00145200 * OTHERSWISE, A SPIE IS CURRENTLY IN EFFECT. 00145250 L R0,4(PCR) GET MASK BITS SPECIFIED IN SPIE 00150000 SR XR,XR 00151000 IC XR,OPSW+3 GET INTERRUPT CODE 00152000 SLL R0,0(XR) MOVE MASK BIT INTO HIGH ORDER 00153000 LTR R0,R0 IS THE BIT 1 OR 0? 00154000 BM TAKESPIE @V1D1709 00155000 CKSTAE CLC SCBPTR,=F'0' ANY 'STAE' EXIT ROUTINE? @V1D1709 00155500 BNE GOABN YES, GO DO DMSABN @V1D1709 00156000 B NOSPIE NO, PUT OUT MESSAGE @V1D1709 00156500 TAKESPIE MVI PICADDR,X'80' INDICATE 'SPIE' ACTIVE @V1D1709 00157000 SPACE 00160000 * ALLOCATE USER STORAGE FOR A PIE, SO THAT THE USER CAN MODIFY IT. 00161000 DMSFREE DWORDS=4,TYPE=USER,TYPCALL=BALR 00162000 ST R1,AUPIE SAVE ADDR OF USER PIE V0007 00163100 MVC 0(32,R1),PIE COPY PGMSECT PIE INTO USER PIE 00164000 L R15,0(PCR) R15 -> EXIT ROUTINE 00165000 ST R15,PGMOPSW+4 STORE ADDR IN PGMOPSW 00166000 LA R14,SPIERET POINT TO SPIE EXIT ROUTINE *00167000 RETURN ADDRESS 00168000 LM R2,R13,PSAVE+4*R2 RESTORE REGS 2 THRU 13 00169000 LPSW PGMOPSW BRANCH TO EXIT ROUTINE 00170000 SPACE 5 00171000 * RETURN HERE AT END OF EXIT ROUTINE 00172000 SPIERET EQU * 00173000 SSM PGMNPSW DISABLE INTERRUPTS @VA01561 00173100 DMSKEY NUCLEUS,NOSTACK GET NUCLEUS PROTECTION KEY 00174000 L R15,APGMSECT POINT TO PGMSECT 00175000 USING PGMSECT,R15 00176000 STM R3,R13,PSAVE+4*R3 SAVE CORRECTED REGS 00177000 LR WR,R15 COPY WORK SPACE POINTER 00178000 BALR R15,0 ESTABLISH ADDRESSABILITY 00179000 USING *,R15 00180000 L BR,=A(DMSITP) LOAD CORRECT BASE REG 00181000 DROP R15 00182000 L R1,AUPIE POINT TO USER'S PIE V0007 00183100 SPACE 00184000 * WE COPY THE USER MODIFIED FIELDS FROM THE USER PIE TO THE SYSTEM 00185000 * PIE. WE COPY THE 5 REGISTERS, AS WELL AS THE SECOND HALF OF 00186000 * THE PSW. 00187000 MVC OPSW+4(4+5*4),OPSW+4-PIE(R1) 00188000 DMSFRET DWORDS=4,LOC=(1),TYPCALL=BALR RELEASE USER'S PIE 00191000 MVC PGMOPSW,OPSW SET UP RETURN PSW IN PGMOPSW 00192000 MVI PICADDR,X'00' NO LONGER IN AN EXIT ROUTINE 00193000 LM R14,R2,OPSW+8 RESTORE REGS R14-R2 00194000 LM R3,R13,PSAVE+4*R3 RESTORE REGS R3-R13 00195000 LPSW PGMOPSW RETURN 00196000 * CONTROL COMES HERE TO ENTER THE ABEND RECOVERY ROUTINE. 00198000 GOABN EQU * 00199000 MVC ABNPSW,OPSW COPY OVER PSW 00200000 OI ABNPSW+3,X'C0' THE ABEND CODE IS '0CX' 00201000 CLC SCBPTR,=F'0' ANY 'STAE' EXIT ROUTINE? V0007 00201100 BE GOABN1 GO IF THERE IS NOT V0007 00201200 LH R1,ABNPSW+2 GET ABEND CODE V0007 00201300 LM R2,R15,PSAVE+8 RESTORE SOME REGS @V1D1709 00201350 SPACE 1 00201400 * ABEND (R1) 00201500 SVC 13 V0007 00201600 SPACE 1 00201700 GOABN1 EQU * V0007 00201800 LH R0,ABNPSW+2 PUT ABEND CODE INTO R0 00202000 MVC ABNREGS(4*16),PSAVE COPY REGS INTO ABN WORK AREA 00203000 L R15,=V(DMSABNGO) CORRECT ADDRESS IN DMSABN 00204000 BALR R14,R15 GO THERE 00205000 * NO SPIE EXIT ROUTINE HAS BEEN SPECIFIED. 00207000 NOSPIE EQU * 00208000 DMSERR NUM=141,LET=T,TYPCALL=BALR, *00209000 MF=(E,ABNERLST), *00210000 TEXT='..................... EXCEPTION OCCURRED AT ......*00211000 IN ROUTINE ........', *00212000 SUB=(CHARA,(WORDP),HEXA,OPSW+4,CHARA,CALLEE) 00213000 B GOABN 00214000 SPACE 5 00215000 * A PROGRAM CHECK OCCURRED IN A SPIE EXIT ROUTINE. 00216000 BADSPIE EQU * 00217000 DMSERR NUM=142,LET=T,TYPCALL=BALR, *00218000 MF=(E,ABNERLST), *00219000 TEXT='..................... EXCEPTION OCCURRED AT ......*00220000 IN ROUTINE ........ DURING ''SPIE'' EXIT ROUTINE', *00221000 SUB=(CHARA,(WORDP),HEXA,OPSW+4,CHARA,CALLEE) 00222000 B GOABN 00223000 SPACE 5 00224000 * A PROGRAM CHECK OCCURRED IN A SYSTEM ROUTINE. 00225000 ERRNUSR EQU * 00226000 DMSERR NUM=143,LET=T,TYPCALL=BALR, *00227000 MF=(E,ABNERLST), *00228000 HALT=YES, *00229000 TEXT='..................... EXCEPTION OCCURRED AT ......*00230000 IN SYSTEM ROUTINE ........, RE-IPL CMS', *00231000 SUB=(CHARA,(WORDP),HEXA,OPSW+4,CHARA,CALLEE) 00232000 SPACE 00233000 * IF THE USER TURNS OFF THE WAIT STATE BIT, THEN WE CONTINUE WITH THE 00234000 * ABEND. 00235000 B GOABN 00236000 SPACE 5 00237000 * THE UFDBUSY BYTE WAS NON-ZERO WHEN THE PROGRAM CHECK OCCURRED. THIS 00238000 * IS A VERY DANGEROUS SITUATION. 00239000 ERRUFD EQU * 00240000 DMSERR NUM=144,LET=T,TYPCALL=BALR, *00241000 HALT=YES,DISP=SIO, *00242000 MF=(E,ABNERLST), *00243000 TEXT='..................... EXCEPTION OCCURRED AT ......*00244000 IN ROUTINE ........ WHILE ''UFDBUSY'' = .., RE-IPL CMS'*00245000 , *00246000 SUB=(CHARA,(WORDP),HEXA,OPSW+4,CHARA,CALLEE, *00247000 HEX4A,UFDBUSY) 00248000 SPACE 00249000 * IF THE USER TURNS OFF THE WAIT STATE BIT, THEN WE CONTINUE WITH THE 00250000 * ABEND. 00251000 B GOABN 00252000 * TABLE OF DESCRIPTIVE WORDS 00254000 TABLEN EQU 21 LENGTH OF EACH ELEMENT OF TABLE 00255000 SPACE 00256000 TYPTAB DC CL21'IMPRECISE' 00257000 DC CL21'OPERATION' 00258000 DC CL21'PRIVILEGED OPERATION' 00259000 DC CL21'EXECUTE' 00260000 DC CL21'PROTECTION' 00261000 DC CL21'ADDRESSING' 00262000 DC CL21'SPECIFICATION' 00263000 DC CL21'DECIMAL DATA' 00264000 DC CL21'FIXED-POINT OVERFLOW' 00265000 DC CL21'FIXED-POINT DIVIDE' 00266000 DC CL21'DECIMAL OVERFLOW' 00267000 DC CL21'DECIMAL DIVIDE' 00268000 DC CL21'EXPONENT OVERFLOW' 00269000 DC CL21'EXPONENT UNDERFLOW' 00270000 DC CL21'SIGNIFICANCE' 00271000 DC CL21'FLOATING-POINT DIVIDE' 00272000 SVC2 EQU 2 @V305066 00272100 SPACE 00273000 LTORG 00274000 PGMSECT 00276000 NUCON 00277000 FVS 00278000 SVCSAVE 00279000 DMSABW @V305066 00280000 DOSAVE @V305066 00280100 SYSCOM @V305066 00280200 BGCOM @V305066 00280300 PIBTAB @V305066 00280400 SVUARA DSECT USER SAVE AREA @V305066 00280500 SVUPSW DS F FIRST HALF PSW @V305066 00280600 SVUPSW2 DS F SECOND HALF PSW @V305066 00280700 SVUR00 DS 9F REGISTERS 0-8 @V305066 00280800 SVUR09 DS 7F REGISTERS 9-15 @V305066 00280900 END 00281000