Table of Contents

DMSFNC Source

References

Source Listing

DMSFNC.ASSEMBLE.txt
  1. FNC TITLE 'DMSFNC (CMS) VM/370 - RELEASE 6' 00001000
  2. SPACE 2 00002000
  3. *. 00004000
  4. * 00005000
  5. * MODULE NAME: 00006000
  6. * 00007000
  7. * DMSFNC (FUNCTAB) 00008000
  8. * 00009000
  9. * FUNCTION: 00010000
  10. * 00011000
  11. * CONTAINS TWO TABLES USED BY DMSITS 00012000
  12. * 00013000
  13. * ATTRIBUTES: 00014000
  14. * 00015000
  15. * NUCLEUS RESIDENT 00016000
  16. * 00017000
  17. * ENTRY POINTS: 00018000
  18. * 00019000
  19. * DMSFNC - NUCLEUS RESIDENT COMMAND NAME TABLE 00020000
  20. * DMSFNCSV - STANDARD SVC TABLE 00021000
  21. * 00022000
  22. * ENTRY CONDITIONS: 00023000
  23. * 00024000
  24. * N/A 00025000
  25. * 00026000
  26. * EXIT CONDITIONS: 00027000
  27. * 00028000
  28. * N/A 00029000
  29. * 00030000
  30. * CALLS TO OTHER ROUTINES: 00031000
  31. * 00032000
  32. * N/A 00033000
  33. * 00034000
  34. * EXTERNAL REFERENCES: 00035000
  35. * 00036000
  36. * MODULES REFERENCED IN THE TABLES. 00037000
  37. * 00038000
  38. * TABLES/WORKAREAS: 00039000
  39. * 00040000
  40. * N/A 00041000
  41. * 00042000
  42. * REGISTER USAGE: 00043000
  43. * 00044000
  44. * N/A 00045000
  45. * 00046000
  46. * NOTES: 00047000
  47. * 00048000
  48. * DMSFNC CONTAINS NO EXECUTABLE CODE. 00049000
  49. * 00050000
  50. * OPERATION: 00051000
  51. * 00052000
  52. * N/A 00053000
  53. * 00054000
  54. *. 00055000
  55. EJECT 00056000
  56. * 00057000
  57. * FUNCTAB = SPECIAL 'SHORT' TABLE, ONLY 12 BYTES PER ENTRY, FOR 00058000
  58. * USE BY SVCINT IN TRANSFERRING CONTROL TO A CORE-RESIDENT 00059000
  59. * CMS COMMAND OR FUNCTION. 00060000
  60. * 00061000
  61. * FIRST 8 BYTES = NAME OF CALLEE (COMMAND OR FUNCTION) 00062000
  62. * NEXT 4 BYTES = CORE-ADDRESS OF CALLEE 00063000
  63. * 00064000
  64. * NOTE -- IF CORE-ADDRESS IS ZERO, SVCINT 00065000
  65. * CALLS 'LOADMOD' TO GET A DISK-RESIDENT MODULE. 00066000
  66. * 00067000
  67. MACRO 00068000
  68. &LABEL JFUN &NAME,&ADDR 00069000
  69. &LABEL DC CL8'&NAME' 00070000
  70. AIF (N'&ADDR EQ 0).SEQ1 00071000
  71. DC V(&ADDR) 00072000
  72. AGO .SEQ2 00073000
  73. .SEQ1 DC V(&NAME) 00074000
  74. .SEQ2 SPACE 1 00075000
  75. MEND 00076000
  76. * 00077000
  77. MACRO 00078000
  78. JOST &NUM,&LOC 00079000
  79. AIF (K'&LOC EQ 0).S1 00080000
  80. DC AL1(&NUM),VL3(&LOC) 00081000
  81. MEXIT 00082000
  82. .S1 DC AL1(&NUM),AL3(0) 00083000
  83. MEND 00084000
  84. EJECT 00085000
  85. MACRO 00086000
  86. TAB203 &LIST 00087000
  87. LCLA &I,&K 00088000
  88. LCLC &LET 00089000
  89. &K SETA N'&SYSLIST 00090000
  90. * THIS MACRO GENERATES THE TABLE FOR SVC 203 CALLS 00091000
  91. SPACE 00092000
  92. DMSFNC3 DS 0F 00093000
  93. DC A(&K) NUMBER OF ENTRIES IN TABLE 00094000
  94. .LOOP ANOP 00095000
  95. &I SETA &I+1 00096000
  96. MNOTE *,'&I = &SYSLIST(&I,3)' 00097000
  97. &LET SETC 'V' 00098000
  98. AIF (T'&SYSLIST(&I,2) EQ 'U').V 00099000
  99. &LET SETC 'A' 00100000
  100. .V ANOP 00101000
  101. DC CL8'&SYSLIST(&I,3)' NAME OF MACRO OR ROUTINE 00102000
  102. AIF ('&SYSLIST(&I,1)' EQ '').L 00103000
  103. DC AL1(&SYSLIST(&I,1)),&LET.L3(&SYSLIST(&I,2)) 00104000
  104. AGO .C 00105000
  105. .L DC &LET.(&SYSLIST(&I,2)) 00106000
  106. .C ANOP 00107000
  107. AIF (&I LT N'&SYSLIST).LOOP 00108000
  108. MEND 00109000
  109. EJECT 00110000
  110. DMSFNC CSECT 00111000
  111. ENTRY DMSFNC3 SVC 203 TABLE 00113000
  112. EJECT 00115000
  113. * FOR CMS/370, THE ENTRY NAMES IN THIS ROUTINE ARE CHANGED, AS 00116000
  114. * FOLLOWS: 00117000
  115. SPACE 2 00118000
  116. * OLD NAME NEW NAME 00119000
  117. * ---------------------------- ----------- 00120000
  118. * FUNCTAB DMSFNC 00121000
  119. * (NEW SVC 203 BRANCH TABLE) DMSFNC3 00125000
  120. EJECT 00126000
  121. USING *,R0 (FOR 'CLEAN' S-TYPE ADCON'S BELOW...) 00127000
  122. * 00128000
  123. DC S(A,B,C,D,E,F,G,H,I) FIRST 9 LETTERS 00129000
  124. DC 7S(J) (GAP) 00130000
  125. DC S(J,K,L,M,N,O,P,Q,R) NEXT 9 LETTERS 00131000
  126. DC 8S(S) (GAP) 00132000
  127. DC S(S,T,U,V,W,X,Y,Z) LAST 8 LETTERS 00133000
  128. DC S(LASTFUN) (MUST FOLLOW Z) 00134000
  129. * 00135000
  130. R0 EQU 0 00136000
  131. * 00137000
  132. DS 0F 00138000
  133. SPACE 2 00139000
  134. * COMMANDS MUST BE KEPT IN ALPHABETIC ORDER PER FIRST LETTER 00140000
  135. * I.E. ALL A'S FIRST, ALL Z'S LAST, ETC. 00141000
  136. * 00142000
  137. * ORDER WITHIN EACH LETTER-GROUP, HOWEVER, IS NOT CRITICAL, 00143000
  138. * AND MOST-OFTEN-USED COMMANDS FOR EACH LETTER CAN BE 00144000
  139. * PUT FIRST (IF KNOWN). 00145000
  140. EJECT 00146000
  141. A EQU * 00147000
  142. JFUN ATTN,DMSCAT 00148000
  143. B EQU * 00149000
  144. C EQU * 00150000
  145. JFUN CARDRD V0742 00151100
  146. JFUN CARDPH V0742 00151200
  147. JFUN CMSTIME,GETCLK 00154000
  148. JFUN CONREAD,DMSCRD 00155000
  149. JFUN CONWAIT,DMSCWT 00156000
  150. JFUN CP,DMSCPF 00157000
  151. D EQU * 00158000
  152. JFUN DEBUG,DMSDBG 00159000
  153. JFUN DMSCIOSI V0742 00159100
  154. JFUN DMSPIOCC V0742 00159200
  155. JFUN DMSPIOSI V0742 00159300
  156. JFUN DESBUF,DMSCITDB 00160000
  157. JFUN DMSLADAD V0742 00160100
  158. JFUN DMSERR 00161000
  159. JFUN DMSSMNAT,DMSSTGAT @V305665 00161150
  160. JFUN DMSVSR @V305101 00161200
  161. E EQU * 00162000
  162. JFUN EXEC,DMSEXC 00163000
  163. JFUN ERASE 00164000
  164. F EQU * 00165000
  165. JFUN FINIS 00166000
  166. JFUN FETCH,DMSFET @V305001 00166100
  167. G EQU * 00167000
  168. JFUN GENMOD,DMSMOD 00168000
  169. H EQU * 00169000
  170. I EQU * 00170000
  171. JFUN INCLUDE,DMSLOA 00171000
  172. J EQU * 00172000
  173. K EQU * 00173000
  174. L EQU * 00174000
  175. JFUN LOADMOD,DMSMOD 00175000
  176. JFUN LOAD,DMSLOA 00176000
  177. M EQU * 00178000
  178. N EQU * 00179000
  179. O EQU * 00180000
  180. P EQU * 00181000
  181. JFUN PRINTIO,DMSPIO 00182000
  182. JFUN PRINTR 00183000
  183. JFUN POINT 00184000
  184. Q EQU * 00185000
  185. R EQU * 00186000
  186. JFUN RDBUF 00187000
  187. JFUN RETURN,RETSET @VA00871 00188100
  188. S EQU * 00189000
  189. JFUN STATE 00190000
  190. JFUN STATEW 00191000
  191. JFUN SUBSET 00192000
  192. JFUN SVCFREE,DMSFREES 00193000
  193. JFUN SVCFRET,DMSFRETS 00194000
  194. JFUN START,DMSLDRA 00195000
  195. T EQU * 00196000
  196. JFUN TYPLIN,DMSCWR 00197000
  197. JFUN TAPEIO 00198000
  198. JFUN TRAP,DMSITET P3105 00199000
  199. U EQU * 00200000
  200. V EQU * 00201000
  201. W EQU * 00202000
  202. JFUN WRBUF,DMSBWR 00203000
  203. JFUN WAITRD,DMSCRD 00204000
  204. JFUN WAIT 00205000
  205. X EQU * 00206000
  206. Y EQU * 00207000
  207. Z EQU * 00208000
  208. * 00209000
  209. LASTFUN EQU *-12 (MUST FOLLOW LAST COMMAND) 00210000
  210. * 00211000
  211. * 00212000
  212. DC F'0' **'NECESSARY EVIL' IF AND ONLY IF NO 'Z' COMMANDS** 00213000
  213. EJECT 00277000
  214. TAB203 (,DMSFREEX,OLDFREE), *00278000
  215. (,DMSFRETX,OLDFRET), *00279000
  216. (,0,DSSSVT), @V305665*00280100
  217. (NSF+R01,DMSFREB,DMSFREE), *00281000
  218. (NSF,DMSFREB,DMSFRET), *00282000
  219. (,DMSERR,DMSERR), *00283000
  220. (NSF,DMSSTGSB,STRINIT), @V305665*00284100
  221. (NSF,DMSITSK,DMSKEY), *00285000
  222. (NSF,DMSITSXS,DMSEXS), *00286000
  223. (NSF+R01,DMSFRES,DMSFRES), *00287000
  224. (NSF,DMSABNSV,DMSABN), *00288000
  225. (,DMSSTGCL,DMSSMNCL), @V305665*00289100
  226. (NSF+R01,DMSSTGSV,TSOGET), @V305665*00289200
  227. (NSF,DMSSTGSV,RELPAGES), @V305665*00289300
  228. (NSF,DMSSTGSV,COMPSWT), @VM03048*00289400
  229. (NSF,0,CMSLINK) @VM03048 00289500
  230. SPACE 3 00293000
  231. * FLAG VALUES 00294000
  232. NSF EQU X'80' DON'T ALLOCATE A SAVE AREA 00295000
  233. R01 EQU X'40' 00296000
  234. END 00297000