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