User Tools

Site Tools


ibm:vm370-lib:cms:dmsitp.assemble_src

DMSITP Source

References

Source Listing

DMSITP.ASSEMBLE.txt
  1. ITP TITLE 'DMSITP (CMS) VM/370 - RELEASE 6' 00001000
  2. SPACE 2 00002000
  3. *. 00003000
  4. * 00004000
  5. * 00005000
  6. * 00006000
  7. * 00007000
  8. * MODULE NAME - 00008000
  9. * 00009000
  10. * DMSITP (INTPROG) 00010000
  11. * 00011000
  12. * FUNCTION - 00012000
  13. * 00013000
  14. * HANDLE PROGRAM INTERRUPTS, PROCESS SPIE EXITS, PASS 00014000
  15. * CONTROL TO PROGRAM CHECK ROUTINE (CMSDOS), PASS CONTROL 00014100
  16. * TO DMSBAB TO CHECK FOR LINKAGE TO ABNORMAL TERMINATION 00014200
  17. * ROUTINE (CMSDOS). 00014300
  18. * 00015000
  19. * ATTRIBUTES - 00016000
  20. * 00017000
  21. * RE-ENTRANT, NUCLEUS-RESIDENT 00018000
  22. * 00019000
  23. * ENTRY POINTS - 00020000
  24. * 00021000
  25. * DMSITP 00022000
  26. * 00023000
  27. * ENTRY CONDITIONS - 00024000
  28. * 00025000
  29. * REGISTERS SET AS OF POINT OF INTERRUPT, PGMOPSW CONTAINS THE 00026000
  30. * PROGRAM OLD PSW. 00027000
  31. * 00028000
  32. * EXIT CONDITIONS - 00029000
  33. * 00030000
  34. * NORMAL - 00031000
  35. * CMS/OS: 00031100
  36. * IF NO SPIE EXIT ROUTINE CAN BE TAKEN, THEN CONTROL PASSES 00032000
  37. * TO DMSABN. 00033000
  38. * IF A 'SPIE' EXIT ROUTINE IS TAKEN, THEN EXECUTION RESUMES BY 00034000
  39. * LOADING THE PROGRAM OLD PSW, AS ALTERED BY THE SPIE EXIT 00035000
  40. * ROUTINE. 00036000
  41. * 00036100
  42. * CMS/DOS: 00036200
  43. * IF LINKAGE HAS BEEN ESTABLISHED TO A PROGRAM CHECK 00036300
  44. * ROUTINE (STXIT PC), CONTROL IS PASSED TO THIS ROUTINE. 00036400
  45. * IF NO LINKAGE HAS BEEN ESTABLISHED TO A PROGRAM CHECK 00036500
  46. * ROUTINE, A CHECK IS MADE TO SEE IF LINKAGE HAS BEEN 00036600
  47. * ESTABLISHED TO AN ABNORMAL TERMINATION ROUTINE (STXIT AB). 00036700
  48. * IF SO, CONTROL IS PASSED TO DMSBAB WHICH WILL GIVE CONTROL 00036800
  49. * TO THE STXIT AB ROUTINE. 00036900
  50. * IF NO PC OR AB ROUTINE CAN BE GIVEN CONTROL, CONTROL 00037000
  51. * PASSES TO DMSABN. 00037100
  52. * 00037200
  53. * ERROR - 00038000
  54. * SEE 'NORMAL'. 00039000
  55. * 00040000
  56. * CALLS TO OTHER ROUTINES - 00041000
  57. * 00042000
  58. * DMSABNGO -- TO ABEND THE USER. 00043000
  59. * 00044000
  60. * DMSFREE -- TO ALLOCATE USER FREE STORAGE FOR A 'PIE'. 00045000
  61. * 00046000
  62. * DMSERR -- TO TYPE OUT THE PROGRAM CHECK ERROR MESSAGE. 00047000
  63. * 00048000
  64. * 00049000
  65. * EXTERNAL REFERENCES - 00050000
  66. * 00051000
  67. * DMSABNGO 00052000
  68. * DMSFREB 00053000
  69. * DMSERR 00054000
  70. * DMSABW -- DMSABN WORK AREA 00055000
  71. * DOSAVE - CMS/DOS SAVE AREA 00055100
  72. * BGCOM - CMS/DOS PARTITION COMMUNICATION REGION 00055200
  73. * SYSCOM - CMS/DOS SYSTEM COMMUNICATION REGION 00055300
  74. * PIBTAB - CMS/DOS PROGRAM INFORMATION BLOCK 00055400
  75. * 00056000
  76. * TABLES / WORKAREAS - 00057000
  77. * 00058000
  78. * REFERENCES 'PGMSECT', IN THE NUCON PAGES. 00059000
  79. * 00060000
  80. * REGISTER USAGE - 00061000
  81. * 00062000
  82. * R1 -> WORK REGISTER 00062100
  83. * R3 -> PGMSECT WORK AREA 00063000
  84. * R4 -> FVSECT 00064000
  85. * R5 -> SCRATCH AREA, WORK REGISTER 00065000
  86. * R6 = SCRATCH 00066000
  87. * R7 -> PICA, WORK REGISTER 00067000
  88. * R8 -> DMSABW, THE DMSABN WORK AREA 00068000
  89. * R9 -> SSAVE, THE CURRENT SYSTEM SAVE AREA 00069000
  90. * R10 -> WORK REGISTER 00069100
  91. * R11 -> WORK REGISTER 00069200
  92. * 00070000
  93. * NOTES - 00071000
  94. * 00072000
  95. * NONE 00073000
  96. * 00074000
  97. * OPERATION - 00075000
  98. * 00076000
  99. * CMS/OS: 00076100
  100. * IF A SPIE EXIT ROUTINE HAS BEEN SPECIFIED, AND IT IS NOT 00077000
  101. * ALREADY ACTIVE, THEN CONTROL PASSES THERE, AFTER A 'PIE' HAS 00078000
  102. * BEEN ALLOCATED IN USER STORAGE. WHEN CONTROL RETURNS FROM 00079000
  103. * THE EXIT ROUTINE, THE MODIFIED PGM OLD PSW IS LOADED, AFTER 00080000
  104. * ANY MODIFIED REGISTERS HAVE BEEN RE-LOADED. 00081000
  105. * 00082000
  106. * IF A SPIE EXIT ROUTINE CANNOT BE TAKEN, THEN AN ERROR MESSAGE 00083000
  107. * IS TYPED OUT, AND CONTROL IS PASSED TO DMSABN, THE ABEND 00084000
  108. * RECOVERY ROUTINE. 00085000
  109. * 00086000
  110. * CMS/DOS: 00087000
  111. * IF LINKAGE HAS BEEN ESTABLISHED TO A PROGRAM CHECK 00087100
  112. * ROUTINE (STXIT PC), CONTROL IS PASSED TO THIS ROUTINE. 00087200
  113. * IF NO LINKAGE HAS BEEN ESTABLISHED TO A PROGRAM CHECK 00087300
  114. * ROUTINE, A CHECK IS MADE TO SEE IF LINKAGE HAS BEEN 00087400
  115. * ESTABLISHED TO AN ABNORMAL TERMINATION ROUTINE (STXIT AB). 00087500
  116. * IF SO, CONTROL IS PASSED TO DMSBAB WHICH WILL GIVE CONTROL 00087600
  117. * TO THE STXIT AB ROUTINE. 00087700
  118. * IF NO PC OR AB ROUTINE CAN BE GIVEN CONTROL, CONTROL 00087800
  119. * PASSES TO DMSABN. 00087900
  120. *. 00089000
  121. EJECT 00090000
  122. DMSITP CSECT 00092000
  123. REGEQU 00093000
  124. SPACE 2 00094000
  125. BR EQU R12 BASE REGISTER 00095000
  126. WR EQU R3 POINTER TO PGMSECT WORK AREA 00096000
  127. FVR EQU R4 POINTER TO FVSECT 00097000
  128. XR EQU R5 SCRATCH REGISTER 00098000
  129. WORDP EQU R6 POINTER TO DESCRIPTIVE WORD 00099000
  130. PCR EQU R7 POINTER TO PICA, IF ANY 00100000
  131. ABWR EQU R8 POINTER TO DMSABW 00101000
  132. SSVR EQU R9 POINTER TO SSAVE 00102000
  133. SPACE 2 00103000
  134. USING DMSITP,BR 00104000
  135. USING PGMSECT,WR 00105000
  136. USING FVSECT,FVR 00106000
  137. USING NUCON,R0 00107000
  138. USING ABWSECT,ABWR 00108000
  139. USING SSAVE,SSVR 00109000
  140. DMSITP CSECT 00111000
  141. ST WR,0 SAVE WR TEMPORARILY 00112000
  142. L WR,APGMSECT POINT TO PGMSECT 00113000
  143. STM R0,R15,PSAVE SAVE ALL REGISTERS 00114000
  144. MVC PSAVE+4*WR(4),0 COPY CORRECT WR REG 00115000
  145. BALR BR,0 ESTABLISH ADDRESSABILITY 00116000
  146. USING *,BR 00117000
  147. L BR,=A(DMSITP) SET UP CORRECT BASE 00118000
  148. USING DMSITP,BR 00119000
  149. L FVR,AFVS POINT TO FVSECT 00120000
  150. L ABWR,=V(DMSABW) POINT TO DMSABW 00121000
  151. L SSVR,CURRSAVE POINT TO SSAVE, CURRENT *00122000
  152. SYSTEM SAVE AREA 00123000
  153. MVC OPSW(8),PGMOPSW COPY OLD PSW INTO WORK AREA 00124000
  154. STM R14,R2,OPSW+8 SAVE REGS @VA02039 00124100
  155. SPACE 00125000
  156. * SET UP REG WORDP SO THAT IT POINTS TO A DESCRIPTIVE WORD, 00126000
  157. * DESCRIBING THE TYPE OF INTERRUPT. 00127000
  158. SR WORDP,WORDP 00128000
  159. IC WORDP,OPSW+3 GET INTERRUPT CODE 00129000
  160. MH WORDP,=AL2(TABLEN) MULTIPLY BY TABLE ELEMENT LENGTH 00130000
  161. LA WORDP,TYPTAB(WORDP) POINT TO CORRECT WORD 00131000
  162. LM R0,R1,CALLEE GET CALLEE NAME ENTERED. 00131100
  163. L R15,=V(ABBREV) GET ABBREV ROUTINE ADDRESS. 00131200
  164. BALR R14,R15 ... 00131300
  165. STM R0,R1,CALLEE USE ABBREV COMMAND NAME. 00131400
  166. LM R0,R1,PSAVE RESTORE R0, R1 V0727 00131500
  167. LM R14,R15,PSAVE+4*R14 RESTORE R14 AND R15 @VA01033 00131600
  168. SPACE 00132000
  169. * IF UFDBUSY IS NON-ZERO, THEN WE ARE IN THE MIDST OF A DISASTER. 00133000
  170. CLI UFDBUSY,0 USER FILE DIRECTORY BUSY? 00134000
  171. BNE ERRUFD DISASTER ERROR IF NONZERO 00135000
  172. SPACE 00136000
  173. * IF A SYSTEM ROUTINE WAS ACTIVE AT THE TIME, THEN WE'RE IN BAD SHAPE. 00137000
  174. TM TYPFLAG,TPFUSR 'USER' FLAG SET? 00138000
  175. BNO ERRNUSR GO IF NOT 00139000
  176. TM DOSFLAGS,DOSMODE+DOSSVC DOS ENVIRONMENT ACTIVE @V305066 00140100
  177. BNO ISITSTAE NO, MUST BE CMS/OS @VM03203 00140125
  178. TM VSAMFLG1,VSAMSERV IS AMSERV RUNNING ? @VM03203 00140150
  179. BO NOSPIE YES, TERMINATE HERE... @VM03203 00140175
  180. USING BGCOM,R5 BACKGROUND COMREG ADDRESSABILITY @V305066 00140200
  181. L R5,ASYSREF BGCOM ADDRESS @V305066 00140250
  182. SPACE 1 00140300
  183. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00140350
  184. * THE FOLLOWING CODE STORES INTERRUPT INFORMATION IN THE PIB * 00140400
  185. * EXTENSION AFTER A PROGRAM CHECK HAS OCCURRED. THIS ROUTINE ALSO * 00140450
  186. * STORES THE OLD PSW AND THE USER REGISTERS AT THE TIME OF THE * 00140500
  187. * PROGRAM CHECK IN THE USER SAVEAREA. * 00140550
  188. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00140600
  189. SPACE 1 00140650
  190. LH R7,PIK PROGRAM INTERRUPT KEY @V305066 00140700
  191. USING PIBADR,R7 ESTABLISH ADDRESSABILITY @V305066 00140750
  192. AH R7,PIBPT INCREM R7 BY ADD OF PIB @V305066 00140800
  193. SPACE 1 00140850
  194. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00140900
  195. * R7 NOW POINTS TO THE PARTITION PIB * 00140950
  196. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141000
  197. SPACE 1 00141050
  198. SH R7,PIBDIFF @V305066 00141100
  199. SPACE 1 00141150
  200. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141200
  201. * R7 NOW POINTS TO THE PARTITION PIB EXTENSION * 00141250
  202. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141300
  203. SPACE 1 00141350
  204. SR R10,R10 CLEAR WORK REG @V305066 00141400
  205. SPACE 1 00141450
  206. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141500
  207. * THE FOLLOWING INSTRUCTIONS PLACE THE INTERRUPT INFORMATION * 00141550
  208. * IN THE PARTITION PIB EXTENSION * 00141600
  209. * THE FORMAT OF THE INTERRUPT INFORMATION IN THE PIB EXTENSION * 00141650
  210. * IS AS FOLLOWS: * 00141700
  211. * * 00141750
  212. * BYTE 0 - X'00' * 00141800
  213. * BYTE 1 - ILC IN BITS 5,6; OTHER BITS ARE ZERO * 00141850
  214. * BYTES 2,3 - INTERRUPTION CODE * 00141900
  215. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00141950
  216. SPACE 1 00142000
  217. IC R10,OPSW+4 INSERT ILC @V305066 00142050
  218. SRL R10,6 SHIFT RIGHT TO ELIMINATE GARBAGE @V305066 00142100
  219. SLL R10,17 SHIFT LEFT TO POSITION IN REG @V305066 00142150
  220. IC R10,OPSW+3 COMPLETE INTERRUPT CODE @V305066 00142200
  221. ST R10,INTINFO STORE SVC INTERR INFO IN PIB EXT @V305066 00142250
  222. LAPIB LA R7,32(R7) RE-ESTABLISH PIB POINTER @V305066 00142300
  223. PIBDIFF EQU LAPIB+2 DISP BETWEEN PIB AND PIB EXT @V305066 00142350
  224. L R11,PIBSAVE GET SAVE AREA ADDRESS @V305066 00142400
  225. USING SVEARA,R11 ESTABLISH ADDRESSABILITY @V305066 00142450
  226. MVC SVEPSW(8),OPSW SAVE OLD PSW @V305066 00142500
  227. MVC SVER09(28),PSAVE+36 USER'S REGS TO PP/LTA SAVE @V305066 00142550
  228. MVC SVER00(36),PSAVE STORE REST OF USER'S REGISTERS @V305066 00142600
  229. LH R10,PIK GET REQUESTOR'S KEY @V305066 00142650
  230. LH R2,PCPTR PC OPTION TABLE POINTER @V305066 00142700
  231. SRL R10,1 PC OPT TABLE HAS 8-BYTE ENTRY @V305066 00142750
  232. AR R2,R10 CALCULATE ENTRY TO PC OPTION TAB @V305066 00142800
  233. LM R10,R11,0(R2) LOAD ROUTINE/SAVEAREA ADD @V305066 00142850
  234. LTR R10,R10 IS EXIT ROUTINE AVAILABLE? @V305066 00142900
  235. BP PCROUT YES, SET UP FOR USER EXIT @V305066 00142950
  236. ABTERM L R11,ASYSCOM ADDRESS SYSCOM @V305066 00143000
  237. USING SYSCOM,R11 SYSCOM ADDRESSABILITY @V305066 00143050
  238. L R11,IJBABTAB AB OPTION TABLE ADDRESS @V305066 00143100
  239. LH R10,PIK PROGRAM REQUEST KEY @V305066 00143150
  240. SRL R10,1 AB OPT TAB 8-BYTE ENTRIES @V305066 00143200
  241. AR R11,R10 CAL. AB TAB ENTRY @V305066 00143250
  242. L R10,0(R11) AB ROUTINE ADDRESS @V305066 00143300
  243. LTR R10,R10 AB ROUT AVAILABLE @V305066 00143350
  244. BZ RESET NO, ISSUE PC ERROR MSG @V305066 00143400
  245. SR R0,R0 CLEAR REGISTER 0 @V305066 00143450
  246. IC R0,=XL1'20' PC ERROR CODE @V305066 00143500
  247. LA R1,=CL8'$$BABEND' PREPARE TO SEE IF STXIT AB @V305066 00143550
  248. SVC SVC2 HAS BEEN SET UP @V305066 00143600
  249. RESET XC LTK(2),LTK ZERO LOG. TRANS. KEY @V305066 00143650
  250. LH R11,PIBPT PIB ADDRESS @V305066 00143700
  251. L R10,ALTASAVE LTA SAVE ADDRESS @V305066 00143750
  252. ST R10,8(,R11) STORE LTA IN ATTENT. PIB @V305066 00143800
  253. L R10,APPSAVE PPSAVE ADDRESS @V305066 00143850
  254. LA R11,16(,R11) POINT TO PART. PIB @V305066 00143900
  255. ST R10,4(,R11) STORE IN PART. PIB @V305066 00143950
  256. B NOSPIE BR TO ISSUE ERR MSG @V305066 00144000
  257. PCROUT CLC ALTASAVE+1(3),PIBSAVE+1 REQUEST FROM LTA @V305066 00144050
  258. BNE CONTINUE OK, KEEP PROCESSING @V305066 00144100
  259. B ABTERM ABNORMALLY TERM @V305066 00144150
  260. CONTINUE L R1,PIBSAVE @V305066 00144200
  261. USING SVUARA,R11 USER SAVEAREA ADDRESSABILITY @V305066 00144250
  262. USING SVEARA,R1 PPSAVE ADDRESSABILITY @V305066 00144300
  263. MVC SVUPSW(8),SVEPSW MOVE PSW AND REGISTERS @V305066 00144350
  264. MVC SVUR00(36),SVER00 TO USER SAVE AREA IN @V305066 00144400
  265. MVC SVUR09(28),SVER09 SEQUENCE R0-R15 @V305066 00144450
  266. ST R10,SVEPSW2 STORE ROUTINE ADDRESS IN PSW @V305066 00144500
  267. LCR R10,R10 CONVERT ROUTINE ADDRESS @V305066 00144550
  268. ST R10,0(R2) STORE ROUTINE IN PC TABLE @V305066 00144600
  269. MVC PGMOPSW(8),SVEPSW MOVE USER'S PSW AND @V305066 00144650
  270. LM R9,R15,SVER09 RETURN CONTROL TO INST IND IN @V305066 00144700
  271. LM R0,R8,SVER00 REGISTERS TO CMS LOCATIONS @V305066 00144750
  272. LPSW PGMOPSW @V305066 00144800
  273. ISITSTAE L PCR,PICADDR POINT TO PICA @V305066 00144850
  274. LTR PCR,PCR IS THERE ANY? @V305066 00144900
  275. BZ CKSTAE @V305066 00144950
  276. SPACE 1 00145000
  277. * IF PICADDR IS NEGATIVE, THEN A PROGRAM CHECK OCCURRED IN A SPIE 00145050
  278. * EXIT ROUTINE WHICH IS ALREADY ACTIVE. 00145100
  279. BM BADSPIE SPIE ALREADY ACTIVE @V305066 00145150
  280. SPACE 1 00145200
  281. * OTHERSWISE, A SPIE IS CURRENTLY IN EFFECT. 00145250
  282. L R0,4(PCR) GET MASK BITS SPECIFIED IN SPIE 00150000
  283. SR XR,XR 00151000
  284. IC XR,OPSW+3 GET INTERRUPT CODE 00152000
  285. SLL R0,0(XR) MOVE MASK BIT INTO HIGH ORDER 00153000
  286. LTR R0,R0 IS THE BIT 1 OR 0? 00154000
  287. BM TAKESPIE @V1D1709 00155000
  288. CKSTAE CLC SCBPTR,=F'0' ANY 'STAE' EXIT ROUTINE? @V1D1709 00155500
  289. BNE GOABN YES, GO DO DMSABN @V1D1709 00156000
  290. B NOSPIE NO, PUT OUT MESSAGE @V1D1709 00156500
  291. TAKESPIE MVI PICADDR,X'80' INDICATE 'SPIE' ACTIVE @V1D1709 00157000
  292. SPACE 00160000
  293. * ALLOCATE USER STORAGE FOR A PIE, SO THAT THE USER CAN MODIFY IT. 00161000
  294. DMSFREE DWORDS=4,TYPE=USER,TYPCALL=BALR 00162000
  295. ST R1,AUPIE SAVE ADDR OF USER PIE V0007 00163100
  296. MVC 0(32,R1),PIE COPY PGMSECT PIE INTO USER PIE 00164000
  297. L R15,0(PCR) R15 -> EXIT ROUTINE 00165000
  298. ST R15,PGMOPSW+4 STORE ADDR IN PGMOPSW 00166000
  299. LA R14,SPIERET POINT TO SPIE EXIT ROUTINE *00167000
  300. RETURN ADDRESS 00168000
  301. LM R2,R13,PSAVE+4*R2 RESTORE REGS 2 THRU 13 00169000
  302. LPSW PGMOPSW BRANCH TO EXIT ROUTINE 00170000
  303. SPACE 5 00171000
  304. * RETURN HERE AT END OF EXIT ROUTINE 00172000
  305. SPIERET EQU * 00173000
  306. SSM PGMNPSW DISABLE INTERRUPTS @VA01561 00173100
  307. DMSKEY NUCLEUS,NOSTACK GET NUCLEUS PROTECTION KEY 00174000
  308. L R15,APGMSECT POINT TO PGMSECT 00175000
  309. USING PGMSECT,R15 00176000
  310. STM R3,R13,PSAVE+4*R3 SAVE CORRECTED REGS 00177000
  311. LR WR,R15 COPY WORK SPACE POINTER 00178000
  312. BALR R15,0 ESTABLISH ADDRESSABILITY 00179000
  313. USING *,R15 00180000
  314. L BR,=A(DMSITP) LOAD CORRECT BASE REG 00181000
  315. DROP R15 00182000
  316. L R1,AUPIE POINT TO USER'S PIE V0007 00183100
  317. SPACE 00184000
  318. * WE COPY THE USER MODIFIED FIELDS FROM THE USER PIE TO THE SYSTEM 00185000
  319. * PIE. WE COPY THE 5 REGISTERS, AS WELL AS THE SECOND HALF OF 00186000
  320. * THE PSW. 00187000
  321. MVC OPSW+4(4+5*4),OPSW+4-PIE(R1) 00188000
  322. DMSFRET DWORDS=4,LOC=(1),TYPCALL=BALR RELEASE USER'S PIE 00191000
  323. MVC PGMOPSW,OPSW SET UP RETURN PSW IN PGMOPSW 00192000
  324. MVI PICADDR,X'00' NO LONGER IN AN EXIT ROUTINE 00193000
  325. LM R14,R2,OPSW+8 RESTORE REGS R14-R2 00194000
  326. LM R3,R13,PSAVE+4*R3 RESTORE REGS R3-R13 00195000
  327. LPSW PGMOPSW RETURN 00196000
  328. * CONTROL COMES HERE TO ENTER THE ABEND RECOVERY ROUTINE. 00198000
  329. GOABN EQU * 00199000
  330. MVC ABNPSW,OPSW COPY OVER PSW 00200000
  331. OI ABNPSW+3,X'C0' THE ABEND CODE IS '0CX' 00201000
  332. CLC SCBPTR,=F'0' ANY 'STAE' EXIT ROUTINE? V0007 00201100
  333. BE GOABN1 GO IF THERE IS NOT V0007 00201200
  334. LH R1,ABNPSW+2 GET ABEND CODE V0007 00201300
  335. LM R2,R15,PSAVE+8 RESTORE SOME REGS @V1D1709 00201350
  336. SPACE 1 00201400
  337. * ABEND (R1) 00201500
  338. SVC 13 V0007 00201600
  339. SPACE 1 00201700
  340. GOABN1 EQU * V0007 00201800
  341. LH R0,ABNPSW+2 PUT ABEND CODE INTO R0 00202000
  342. MVC ABNREGS(4*16),PSAVE COPY REGS INTO ABN WORK AREA 00203000
  343. L R15,=V(DMSABNGO) CORRECT ADDRESS IN DMSABN 00204000
  344. BALR R14,R15 GO THERE 00205000
  345. * NO SPIE EXIT ROUTINE HAS BEEN SPECIFIED. 00207000
  346. NOSPIE EQU * 00208000
  347. DMSERR NUM=141,LET=T,TYPCALL=BALR, *00209000
  348. MF=(E,ABNERLST), *00210000
  349. TEXT='..................... EXCEPTION OCCURRED AT ......*00211000
  350. IN ROUTINE ........', *00212000
  351. SUB=(CHARA,(WORDP),HEXA,OPSW+4,CHARA,CALLEE) 00213000
  352. B GOABN 00214000
  353. SPACE 5 00215000
  354. * A PROGRAM CHECK OCCURRED IN A SPIE EXIT ROUTINE. 00216000
  355. BADSPIE EQU * 00217000
  356. DMSERR NUM=142,LET=T,TYPCALL=BALR, *00218000
  357. MF=(E,ABNERLST), *00219000
  358. TEXT='..................... EXCEPTION OCCURRED AT ......*00220000
  359. IN ROUTINE ........ DURING ''SPIE'' EXIT ROUTINE', *00221000
  360. SUB=(CHARA,(WORDP),HEXA,OPSW+4,CHARA,CALLEE) 00222000
  361. B GOABN 00223000
  362. SPACE 5 00224000
  363. * A PROGRAM CHECK OCCURRED IN A SYSTEM ROUTINE. 00225000
  364. ERRNUSR EQU * 00226000
  365. DMSERR NUM=143,LET=T,TYPCALL=BALR, *00227000
  366. MF=(E,ABNERLST), *00228000
  367. HALT=YES, *00229000
  368. TEXT='..................... EXCEPTION OCCURRED AT ......*00230000
  369. IN SYSTEM ROUTINE ........, RE-IPL CMS', *00231000
  370. SUB=(CHARA,(WORDP),HEXA,OPSW+4,CHARA,CALLEE) 00232000
  371. SPACE 00233000
  372. * IF THE USER TURNS OFF THE WAIT STATE BIT, THEN WE CONTINUE WITH THE 00234000
  373. * ABEND. 00235000
  374. B GOABN 00236000
  375. SPACE 5 00237000
  376. * THE UFDBUSY BYTE WAS NON-ZERO WHEN THE PROGRAM CHECK OCCURRED. THIS 00238000
  377. * IS A VERY DANGEROUS SITUATION. 00239000
  378. ERRUFD EQU * 00240000
  379. DMSERR NUM=144,LET=T,TYPCALL=BALR, *00241000
  380. HALT=YES,DISP=SIO, *00242000
  381. MF=(E,ABNERLST), *00243000
  382. TEXT='..................... EXCEPTION OCCURRED AT ......*00244000
  383. IN ROUTINE ........ WHILE ''UFDBUSY'' = .., RE-IPL CMS'*00245000
  384. , *00246000
  385. SUB=(CHARA,(WORDP),HEXA,OPSW+4,CHARA,CALLEE, *00247000
  386. HEX4A,UFDBUSY) 00248000
  387. SPACE 00249000
  388. * IF THE USER TURNS OFF THE WAIT STATE BIT, THEN WE CONTINUE WITH THE 00250000
  389. * ABEND. 00251000
  390. B GOABN 00252000
  391. * TABLE OF DESCRIPTIVE WORDS 00254000
  392. TABLEN EQU 21 LENGTH OF EACH ELEMENT OF TABLE 00255000
  393. SPACE 00256000
  394. TYPTAB DC CL21'IMPRECISE' 00257000
  395. DC CL21'OPERATION' 00258000
  396. DC CL21'PRIVILEGED OPERATION' 00259000
  397. DC CL21'EXECUTE' 00260000
  398. DC CL21'PROTECTION' 00261000
  399. DC CL21'ADDRESSING' 00262000
  400. DC CL21'SPECIFICATION' 00263000
  401. DC CL21'DECIMAL DATA' 00264000
  402. DC CL21'FIXED-POINT OVERFLOW' 00265000
  403. DC CL21'FIXED-POINT DIVIDE' 00266000
  404. DC CL21'DECIMAL OVERFLOW' 00267000
  405. DC CL21'DECIMAL DIVIDE' 00268000
  406. DC CL21'EXPONENT OVERFLOW' 00269000
  407. DC CL21'EXPONENT UNDERFLOW' 00270000
  408. DC CL21'SIGNIFICANCE' 00271000
  409. DC CL21'FLOATING-POINT DIVIDE' 00272000
  410. SVC2 EQU 2 @V305066 00272100
  411. SPACE 00273000
  412. LTORG 00274000
  413. PGMSECT 00276000
  414. NUCON 00277000
  415. FVS 00278000
  416. SVCSAVE 00279000
  417. DMSABW @V305066 00280000
  418. DOSAVE @V305066 00280100
  419. SYSCOM @V305066 00280200
  420. BGCOM @V305066 00280300
  421. PIBTAB @V305066 00280400
  422. SVUARA DSECT USER SAVE AREA @V305066 00280500
  423. SVUPSW DS F FIRST HALF PSW @V305066 00280600
  424. SVUPSW2 DS F SECOND HALF PSW @V305066 00280700
  425. SVUR00 DS 9F REGISTERS 0-8 @V305066 00280800
  426. SVUR09 DS 7F REGISTERS 9-15 @V305066 00280900
  427. END 00281000
ibm/vm370-lib/cms/dmsitp.assemble_src.txt ยท Last modified: 2023/08/06 13:35 by Site Administrator