Table of Contents

DMSRNM Source

References

Source Listing

DMSRNM.ASSEMBLE.txt
  1. RNM TITLE 'DMSRNM (CMS) VM/370 - RELEASE 6' 00001000
  2. * 00004000
  3. * MODULE NAME: 00005000
  4. * 00006000
  5. * DMSRNM (RENAME) 00007000
  6. * 00008000
  7. * FUNCTION: 00009000
  8. * 00010000
  9. * RENAME COMMAND. CHANGES THE FILEID OF THE SPECIFIED 00011000
  10. * FILE. 00012000
  11. * 00013000
  12. * ATTRIBUTES: 00014000
  13. * 00015000
  14. * TRANSIENT 00016000
  15. * NOTE: RENAME MUST BE GENMOD'D WITH THE SYSTEM OPTION 00016100
  16. * 00017000
  17. * ENTRY POINTS: 00018000
  18. * 00019000
  19. * DMSRNM - SEE FUNCTION DESCRIPTION 00020000
  20. * 00021000
  21. * ENTRY CONDITIONS: 00022000
  22. * 00023000
  23. * RENAME - GPR1 = A(PLIST) 00024000
  24. * GPR14 = RETURN ADDRESS 00025000
  25. * GPR15 = A(CALLED ROUTINE) 00026000
  26. * PLIST = CL8 - CALLED ROUTINE 00027000
  27. * CL8 - OFILENAME|* 00028000
  28. * CL8 - OFILETYPE|* 00029000
  29. * CL8 - OFILEMODE|* 00030000
  30. * CL8 - NFILENAME|= 00031000
  31. * CL8 - NFILETYPE|= 00032000
  32. * CL8 - NFILEMODE|= 00033000
  33. * CL8 - '(' - START OF OPTIONS, IF ANY 00034000
  34. * 00035000
  35. * OPTIONAL AND IN ANY ORDER (DEFAULTS APPEAR FIRST): 00036000
  36. * CL8'NOTYPE'|'TYPE' 00037000
  37. * CL8'UPDIRT'|'NOUPDIRT' 00038000
  38. * 00039000
  39. * XL8 - FENCE 00040000
  40. * 00041000
  41. * EXIT CONDITIONS: 00042000
  42. * 00043000
  43. * NORMAL - 00044000
  44. * 00045000
  45. * GPR15 = 0 : THE FILE ID IS CHANGED AS SPECIFIED. 00046000
  46. * 00047000
  47. * ERROR - 00048000
  48. * 00049000
  49. * GPR15 = XXX: 00050000
  50. * 28 FILE NOT FOUND 00051000
  51. * 28 NEW SPECIFIED FILE ALREADY EXISTS 00052000
  52. * 24 INVALID MODE 00053000
  53. * 28 IDENTICAL FILEIDS 00054000
  54. * 24 MODE CHANGE NOT ALLOWED 00055000
  55. * 36 DISK NOT READ/WRITE 00056000
  56. * 36 TARGET DISK NOT ACCESSED @VA12416 00056500
  57. * 24 INCOMPLETE FILEID 00057000
  58. * 28 SPECIFIED FILE IS ACTIVE 00058000
  59. * 24 INVALID OPTION 00059000
  60. * 00060000
  61. * CALLS TO OTHER ROUTINES - 00061000
  62. * 00062000
  63. * DMSLAFP - SEARCHES THE ACTIVE FILE TABLE 00063000
  64. * 00064000
  65. * DMSLFSW - SEARCHES FOR THE SPECIFIED FILE STATUS 00065000
  66. * TABLE ENTRY. 00066000
  67. * 00067000
  68. * DMSLADP - FIND THE ACTIVE DISK TABLE BLOCK WHOSE MODE 00068000
  69. * MATCHES. 00069000
  70. * 00070000
  71. * DMSFNSC - TO TEMPORARILY CLOSE A GIVEN FILE OR ACTIVE 00071000
  72. * DISK TABLE FOR THE PURPOSE OF UPDATING THE 00072000
  73. * FILE DIRECTORY. 00073000
  74. * 00074000
  75. * DMSAUDK - TO RESERVE SPACE ON DISK FOR REWRITING A 00075000
  76. * NEW COPY OF THE USER FILE DIRECTORY ON 00076000
  77. * DISK, AND THEN TO UPDATE THE UFD ON DISK. 00077000
  78. * 00078000
  79. * EXTERNAL REFERENCES - 00079000
  80. * 00080000
  81. * SYSREF - TABLE OF CMS ADDRESS CONSTANTS 00081000
  82. * FVSECT - FIXED/VARIABLE STORAGE 00082000
  83. * AFTSECT- ACTIVE FILE TABLE BLOCK 00083000
  84. * ADTSECT- ACTIVE DISK TABLE BLOCK 00084000
  85. * FSTSECT- FILE STATUS TABLE (FILE DIRECTORY) BLOCK 00085000
  86. * 00086000
  87. * TABLES / WORKAREAS - 00087000
  88. * 00088000
  89. * SEE EXTERNAL REFERENCES 00089000
  90. * 00090000
  91. * REGISTER USAGE - 00091000
  92. * 00092000
  93. * GPR1 = A(PLIST), A(ADTSECT), A(AFTSECT) 00093000
  94. * GPR12= ADDRESSABILITY 00094000
  95. * GPR2= A(PLIST) 00095000
  96. * GPR13= A(FVSECT) 00096000
  97. * 00097000
  98. * NOTES: 00098000
  99. * 00099000
  100. * | RENAME IS TREATED AS A "COMMAND" OR A "FUNCTION" 00099100
  101. * | ACCORDING TO THE HIGH-ORDER BYTE OF R1 AT INPUT, VIZ: 00099200
  102. * | IF = X'0C', IT WAS ISSUED AS A COMMAND FROM DMSINT. 00099300
  103. * | IF = X'0D', IT WAS ISSUED FROM AN EXEC FILE (DMSEXT), 00099400
  104. * | WITH "&CONTROL" SET TO EITHER "CMS" OR "ALL". 00099500
  105. * | IF = X'0E', IT WAS ISSUED FROM AN EXEC FILE (DMSEXT), 00099600
  106. * | WITH "&CONTROL OFF" IN EFFECT. 00099700
  107. * | IF < X'0C' OR > X'0E', IT IS ASSUMED TO BE A FUNCTION. 00099800
  108. * 00099900
  109. * | IF DMSERS IS CALLED AS A FUNCTION, THERE IS NO CHECK FOR 00100000
  110. * | THE "(TYPE" OPTION, AND ALL ERROR MESSAGES ARE OMITTED. 00100100
  111. * 00100200
  112. * | ALSO, IF RENAME IS CALLED FROM EXEC WITH "&CONTROL OFF" IN 00100300
  113. * | EFFECT, THE "FILE NOT FOUND" ERROR MESSAGE IS OMITTED. 00100400
  114. * 00101000
  115. * OPERATION: 00102000
  116. * 00103000
  117. * RENAME CHECKS THE PARAMETER LIST FOR VARIOUS TYPES OF 00104000
  118. * ERRORS, AND GIVES ERROR RETURNS, WITH MESSAGES, FOR 00105000
  119. * ANY ERROR DETECTED. 00106000
  120. * 00107000
  121. * ONLY READ-WRITE DISK(S) ARE CHECKED FOR THE FILES 00108000
  122. * SPECIFIED; READ-ONLY DISKS ARE IGNORED. 00109000
  123. * 00110000
  124. * WHEN THE PARAMETER LIST HAS BENN CHECKED AND 00111000
  125. * APPROPRIATE FLAG-BITS SET AS NEEDED, RENAME CHECKS 00112000
  126. * FOR EXISTENCE OF THE GIVEN FILE(S), AND CHANGES THE 00113000
  127. * FILE IDENTIFICATION, AS FOLLOWS: 00114000
  128. * 00115000
  129. * 1. ACTLKP IS CALLED TO CHECK IF THE FILE TO BE 00116000
  130. * CHANGED HAPPENS TO BE ACTIVE - THAT IS, IN THE 00117000
  131. * ACTIVE FILE TABLE. THIS IS TREATED AS AN ERROR. 00118000
  132. * IN A COUPLE OF CASES WHERE THIS ERROR HAS BEEN 00119000
  133. * KNOWN TO OCCUR, THE CALLING PROGRAM EITHER 00120000
  134. * FORGOT TO CLOSE THE FILE BEFORE CHANGING IT, OR 00121000
  135. * TRIED TO RENAME IT FIRST AND CLOSE IT 00122000
  136. * AFTERWARDS. THUS, IF THIS ERROR SHOULD OCCUR (A 00123000
  137. * MESSAGE IS TYPED TO WARN THE USER), LOOK FOR 00124000
  138. * THIS TYPE OF BUG IN THE CALLING PROGRAM. 00125000
  139. * 00126000
  140. * 2. IF THE GIVEN FILE IS NOT IN THE ACTIVE FILE TABLE, 00127000
  141. * RENAME CHECKS FOR THE FILE BY A CALL TO FSTLKW. 00128000
  142. * IF NOT FOUND, RENAME EXITS WITH A NORMAL RETURN 00129000
  143. * IF AT LEAST ONE FFILE WAS CHANGED, OR WITH AN 00130000
  144. * ERROR (WITH MESSAGE) IF NO FILES AT ALL WERE 00131000
  145. * CHANGED. 00132000
  146. * 00133000
  147. * 3. IF THE GIVEN FILE WAS FOUND BY FSTLKW, A CHECK IS 00134000
  148. * MADE TO ENSURE THAT THE FILE IDENTIFIED BY THE 00135000
  149. * NEW NAME AND TYPE DOES NOT ALREADY EXIST IN THE 00136000
  150. * ACTIVE FILE TABLE FOR THE SAME DISK (VIA ACTLKP 00137000
  151. * CALL - RETURN CODE 8 IF FOUND), OR IN THE FST 00138000
  152. * TABLES FOR THE SAME DISK (VIA FSTLKW). IF IT IS 00139000
  153. * FOUND, AN ERROR IS RETURNED BY RENAME. 00140000
  154. * 00141000
  155. * 4. IF NOT, THE FILE IDENTIFICATION IS ALTERED AS 00142000
  156. * SPECIFIED BY THE CALLER'S PARAMETER LIST, AND A 00143000
  157. * FLAG-BIT IS SET IF A CHANGE WAS ACTUALLY MADE 00144000
  158. * (FOR THE SUBSEQUENT EXIT AS DESCRIBED ABOVE IN 00145000
  159. * STEP 2). 00146000
  160. * 00147000
  161. * 5. RENAME THEN CHECKS THE NOUPDIRT FLAG BIT OF 00148000
  162. * ALTRFLG TO DETERMINE IF THAT OPTION - TO 00149000
  163. * PROHIBIT THE UPDATING OF THE FILE DIRECTORY - 00150000
  164. * WAS SPECIFIED. IF SO, THE FLAG BIT USED TO 00151000
  165. * SIGNAL THAT THE FILE DIRECTORY IS TO BE UPDATED 00152000
  166. * VIA A CALL TO UPDISK IS NOT TURNED ON. 00153000
  167. * 00154000
  168. * 6. RENAME THEN CHECKS THE FLAG BIT IN ALTRFLG TO 00155000
  169. * DETERMINE IF THE TYPE OPTION - TO TYPE THE 00156000
  170. * IDENTIFIER(S) OF THE FILE(S) ALTERED TO THE 00157000
  171. * CONSOLE - WAS SPECIFIED. IF TYPE WAS SPECIFIED, 00158000
  172. * THE PLIST IS SET UP, AND A CALL TO CONWRITE 00159000
  173. * TYPES THE IDENTIFIER OF THE FILE. 00160000
  174. * 00161000
  175. * 7. THEN A CALL TO THE TFINIS ROUTINE IS MADE (IF 00162000
  176. * NECESSARY) TO TEMPORARILY CLOSE ALL OUTPUT FILES 00163000
  177. * FOR THE DISK INVOLVED, AND THEN UPDISK IS CALLED 00164000
  178. * TO UPDATE THE FILE DIRECTORY. 00165000
  179. * 00166000
  180. * 8. FINALLY, IF THE PARAMETER LIST SPECIFIED ALL NAMES 00167000
  181. * AND/OR TYPES, THE PROCESS IS REPEATED, STARTING 00168000
  182. * AT STEP 1, TO ALTER ALL APPROPRIATE FILENAMES, 00169000
  183. * TYPES, OR MODES AS DESIRED. 00170000
  184. * 00171000
  185. *. 00172000
  186. EJECT 00173000
  187. DMSRNM START X'E000' TRANSIENT-DISK-RESIDENT 00174000
  188. LR R12,R15 @VA03668 00174100
  189. USING DMSRNM,R12 SET R12 BASE REG @VA03668 00174300
  190. * 00175000
  191. * ENTER HERE ... 00176000
  192. USING NUCON,R0 00178000
  193. L R15,AFVS A(FVS) INTO R15 00181000
  194. USING FVSECT,R15 00182000
  195. STM R0,R14,REGSAV1 -- SAVE R0 THRU 14 00183000
  196. XC ERRCOD1-3(4),ERRCOD1-3 CLEAR ERRCOD1 @VA03668 00183050
  197. LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA01154 00183100
  198. LR R10,R13 SAVE R13 PROVIDED BY SVCINT IN R10 00184000
  199. DROP R15 00185000
  200. LR R13,R15 -- REFERENCE 'FVS' INTO 00186000
  201. USING FVSECT,R13 00187000
  202. MVI MSGSWT,0 CLEAR ERROR MSG FLAG 00190000
  203. OI UFDBUSY,ERBIT SET 'OUR' BIT IN 'UFDBUSY' FLAG 00191000
  204. XC STATEFST(STFSTSIZ),STATEFST Clear STATEFST info HRC015DS 00192100
  205. XC FVSERAS0(12),FVSERAS0 CLEAR 3 WORDS OF ALTER STORAGE, 00193000
  206. ST R1,FVSERAS1 STORE R1 FOR USE BY ACTLKP & FSTLKW, 00194000
  207. MVI ERSFLAG,00 AND CLEAR ALTER-FLAG. 00195000
  208. CLI REGSAV1+4,X'0C' CALLED AS COMMAND FROM "INIT" ? @VA01154 00196100
  209. BL LETSGO IF < X'0C', TREAT AS A FUNCTION @VA01154 00197100
  210. CLI REGSAV1+4,X'0E' CALLED AS COMMAND FROM "EXEC" ? @VA01154 00198100
  211. BH LETSGO IF > X'0E', TREAT AS A FUNCTION @VA01154 00199100
  212. TURNON OI MSGSWT,PRINT YES - PRINT ALL ERROR MSGS 00204000
  213. * NOTE - 'ALTRFLG' = FIRST BYTE OF 'FVSERAS2' IS ALREADY CLEAR 00205000
  214. * CHECK FOR PARAMETER-LIST ERRORS ... 00206000
  215. LETSGO EQU * @VA08141 00207000
  216. MVC 8(18,R10),NEWNAM(R1) MOVE END OF LIST TO BUFFER @VA08141 00207500
  217. LR R2,R1 POINT TO PARAMETER-LIST VIA R2 00208000
  218. LA R9,ERR54E (FOR BCR'S BELOW) 00209000
  219. ***** LINES 210000 AND 211000 DELETED BY VM10652 ***** 00210000
  220. CLI PNAME(R2),X'FF' IS NAME PROVIDED ? 00212000
  221. BCR 8,R9 BAD P-LIST IF FENCE THERE INSTEAD 00213000
  222. CLI PNAME(R2),C'*' IS NAME = * ? 00214000
  223. BNE CHKTYP OK IF NOT. 00215000
  224. CLI PNAME+1(R2),C' ' IF NAME *, NEXT BYTE MUST BE A BLANK. 00216000
  225. BNE CHKTYP MUST BE OLD FILENAME 00217000
  226. OI ERSFLAG,ALLNAMES SET FLAG FOR ALL NAMES 00218000
  227. CHKTYP CLI PTYPE(R2),X'FF' IS TYPE PROVIDED ? 00219000
  228. BCR 8,R9 BAD P-LIST IF FENCE THERE INSTEAD 00220000
  229. CLI PTYPE(R2),C'*' IS TYPE = * ? 00221000
  230. BNE CHKMOD OK IF NOT 00222000
  231. CLI PTYPE+1(R2),C' ' IF TYPE *, NEXT BYTE MUST BE A BLANK. 00223000
  232. BNE CHKMOD MUST BE OLD FILETYPE 00224000
  233. OI ERSFLAG,ALLTYPES SET FLAG FOR ALL TYPES 00225000
  234. CHKMOD CLI PMODE(R2),X'FF' IS MODE PROVIDED? @VA10652 00226000
  235. BCR 8,R9 BAD P-LIST IF FENCE @VA10652 00226100
  236. CLI PMODE(R2),C'*' '*' MEANS ALL MODES @VA10652 00226200
  237. BNE STATC GO DO STATE ON FIRST FILEID @VA10652 00226300
  238. CLI PMODE+1(R2),C' ' COULD BE AN OLD FILEMODE 00228000
  239. BNE STATC YES, DO STATE ON 1ST FILEID @VA03000 00229100
  240. OI ERSFLAG,ANYMODE IF NOT, REMEMBER ALL MODES 00230000
  241. TM ERSFLAG,ALLNAMES+ALLTYPES IF MODE '*', CAN'T HAVE ALL 00231000
  242. BCR 1,R9 NAMES & TYPES TOO ("BO ERR54E" IF YES) 00232000
  243. STATC EQU * @VA08053 00232025
  244. TM MSGSWT,PRINT COMMAND ? @VA08053 00232050
  245. BZ STATE NO ,SKIP MODE CHECK @VA08053 00232075
  246. CLI PMODE+2(R2),C' ' MORE THAN TWO CHARACTERS? @VA08053 00232100
  247. BNE ERR48E1 ERROR IF MORE THAN TWO @VA08053 00232125
  248. STATE EQU * @VA08053 00232150
  249. MVC STATFN(18),PNAME(R2) GET FIRST FILEID FOR STATE @VA03000 00232175
  250. LA R1,STATLST GET ADDRESS OF PLIST @VA03000 00232200
  251. L R15,ASTATEW STATEW @V305066 00232300
  252. BALR R14,R15 ... @V305066 00232310
  253. XC STATEFST(STFSTSIZ),STATEFST Clear STATEFST info HRC015DS 00232510
  254. LTR R15,R15 IS EVERYTHING OKAY? @VA03000 00232600
  255. BZ CKNEWNAM YES @VA03000 00232700
  256. CH R15,=H'36' DISK NOT ACCESSED @VA12416 00232750
  257. BE ERRMSG36 YES, ISSUE MSG69E @VA12416 00232760
  258. CH R15,=H'28' IS THIS A SYNTAX ERROR? @VA03000 00232800
  259. BE CKNEWNAM @VA03668 00232910
  260. ST R15,ERRCOD1-3 LOAD ERROR CODE @VA03668 00232920
  261. B EXIT EXIT W/ERRCODE @VA03668 00232930
  262. CKNEWNAM CLI NEWNAM(R2),X'FF' NEW NAME OMITTED ? 00233000
  263. BCR 8,R9 THAT'S AN ERROR 00234000
  264. MVC STATFN(18),NEWNAM(R2) INITIAL. STATE PLIST 00235000
  265. CLI NEWNAM(R2),C'*' '*' IS NO GOOD IN FILEID2 00236000
  266. BE ERR62E 00237000
  267. CLI NEWNAM(R2),C'=' IS NEW NAME ' = ' (EQUAL SIGN) 00238000
  268. BNE CKNEWTYP IF NOT, NO PROBLEM. 00239000
  269. NAMESAM CLI NEWNAM+1(R2),C' ' IF YES, NEXT CHAR. MUST BE BLANK 00240000
  270. BNE STATCALL 00241000
  271. MVC STATFN(8),PNAME(R2) GET FILENAME FOR '=' @VA03000 00242100
  272. OI ERSFLAG,NEWNAME SET FLAG-BIT IF NO NAME-CHANGE WANTED 00243000
  273. CKNEWTYP CLI NEWTYP(R2),X'FF' NEW TYPE OMITTED ? 00244000
  274. BCR 8,R9 THAT'S AN ERROR 00245000
  275. CLI NEWTYP(R2),C'*' 00246000
  276. BE ERR62E 00247000
  277. CLI NEWTYP(R2),C'=' IS NEW TYPE ' = ' (EQUAL SIGN) 00248000
  278. BNE CKNEWMOD IF NOT, NO PROBLEM. 00249000
  279. TYPESAM CLI NEWTYP+1(R2),C' ' IF YES, NEXT CHAR. MUST BE BLANK 00250000
  280. BE GETTYPE YES, THIS IS OKAY @VA03000 00251100
  281. MVC STATFN(8),NEWNAM(R2) GET ORIGINAL FILEID @VA03000 00251200
  282. B STATCALL LET STATE GET IT @VA03000 00251300
  283. GETTYPE MVC STATFT(8),PTYPE(R2) GET FILETYPE FOR '=' @VA03000 00251400
  284. OI ERSFLAG,NEWTYPE SET FLAG-BIT IF NO TYPE-CHANGE WANTED 00253000
  285. CKNEWMOD CLI NEWMOD(R2),X'FF' NEW MODE OMITTED? 00254000
  286. BCR 8,R9 YES, ERROR 00255000
  287. CLI NEWMOD(R2),C'=' SAME MODE WANTED? 00256000
  288. BE SAMODE YES P3057 00257000
  289. CLI NEWMOD(R2),C'*' MAKE SURE P3057 00258000
  290. BNE MODENUM P3057 00259000
  291. SAMODE EQU * SAME MODE IS WANTED P3057 00260000
  292. CLI NEWMOD+1(R2),C' ' BETTER BE BLANK 00261000
  293. BE GETFM YES, THIS IS OKAY @VA03000 00262100
  294. MVC STATFN(8),NEWNAM(R2) GET ORIGINAL FILEID @VA03000 00262200
  295. MVC STATFT(8),NEWTYP(R2) GET ORIGINAL FILEID @VA03000 00262300
  296. B STATCALL LET STATE GET IT @VA03000 00262400
  297. GETFM TM ERSFLAG,NEWNAME+NEWTYPE IS EVERYTHING SAME? @VA03000 00263100
  298. BO ERR19E COULDN'T CHAGE ANYTHING... 00264000
  299. OI ERSFLAG,NEWMODE OTHERWISE O.K. 00265000
  300. MVC STATFM(2),PMODE(R2) GET FILEMODE FOR '=' @VA03000 00266100
  301. B STATCALL 00267000
  302. MODENUM EQU * IT'S A NORMAL MODE 00268000
  303. TM ERSFLAG,ANYMODE OLD MODE GIVEN DIRECTLY? 00273000
  304. BO STATCALL NO - O.K. 00274000
  305. CLC PMODE(1,R2),NEWMOD(R2) IF SO, BETTER MATCH 00275000
  306. BNE ERR51E ERROR IF MODE CHANGE 00276000
  307. STATCALL EQU * 00277000
  308. TM MSGSWT,PRINT COMMAND @VA08053 00277015
  309. BZ CALLSTAT NO ,SKIP MODE CHECK @VA08053 00277030
  310. CLI NEWMOD+2(R2),C' ' MORE THAN TWO CHARACTERS? @VA08053 00277045
  311. BNE ERR48E2 YES, ERROR IF MORE THAN TWO @VA08053 00277060
  312. CALLSTAT EQU * @VA08053 00277075
  313. LA R1,STATLST STATE NEW FILE FOR SYNTAX 00278000
  314. L R15,ASTATEW STATEW @V305066 00279100
  315. BALR R14,R15 ... @V305066 00279200
  316. XC STATEFST(STFSTSIZ),STATEFST Clear STATEFST info HRC015DS 00280200
  317. LTR R15,R15 00281000
  318. BZ PLISTOK IGNORE IF FILE FOUND 00282000
  319. CH R15,=H'36' DISK NOT ACCESSED @VA12416 00282500
  320. BE ERRMSG36 YES, ISSUE MSG69E @VA12416 00282600
  321. CH R15,=H'28' 00283000
  322. BE PLISTOK @VA03668 00284100
  323. ST R15,ERRCOD1-3 LOAD ERROR CODE @VA03668 00284200
  324. B EXIT EXIT W/ERRCODE @VA03668 00284300
  325. SPACE 2 00285000
  326. * 00286000
  327. PLISTOK CLI OPTSTART(R2),X'FF' FENCE NEXT ? 00287000
  328. BE ALTR01 YES, NO OPTIONS.. TRANSFER 00288000
  329. CLI OPTSTART(R2),C'(' ARE THERE ANY OPTIONS ????? 00289000
  330. BNE ERR3A NO, WHO KNOWS WHAT ... 00290000
  331. * 00291000
  332. LA R3,OPTION1(,R2) SKIP BY '('... 00292000
  333. * 00293000
  334. OPTSCAN CLC PARTYP(8),0(R3) 'TYPE' OPTION? 00294000
  335. BE SETYP 00295000
  336. CLC 0(2,R3),=CL2'T' ABBREV. ? 00296000
  337. BNE NOUPDCHK NEITHER 00297000
  338. SETYP OI ALTRFLG,TYPEM SET TYPING FLAG 00298000
  339. B NEXT 00299000
  340. NOUPDCHK CLC PARNOUPD(8),0(R3) 'NOUPDIRT' OPTION? 00300000
  341. BE SETNOUP 00301000
  342. CLC 0(5,R3),=CL5'NOUP' ABBREV.? 00302000
  343. BNE NOTYPCHK NEITHER 00303000
  344. SETNOUP OI ALTRFLG,NOUPD SET NO-UPDATE FLAG 00304000
  345. B NEXT 00305000
  346. NOTYPCHK CLC PARNOTYP(8),0(R3) 'NOTYPE' OPTION? 00306000
  347. BE SETNOTYP 00307000
  348. CLC 0(4,R3),=CL4'NOT' ABBREV.? 00308000
  349. BNE UPDCHK NEITHER 00309000
  350. SETNOTYP NI ALTRFLG,255-TYPEM SHUT OFF TYPING 00310000
  351. B NEXT 00311000
  352. UPDCHK CLC PARUPD(8),0(R3) 'UPDIRT' OPTION? 00312000
  353. BE SETUPD 00313000
  354. CLC 0(3,R3),=CL3'UP' ABBREV.? 00314000
  355. BNE ERR3E BAD OPTION 00315000
  356. SETUPD NI ALTRFLG,255-NOUPD UPDATE FILE DIRECTORY 00316000
  357. * 00317000
  358. NEXT LA R3,8(,R3) NEXT OPTION, PLEASE 00318000
  359. CLI 0(R3),X'FF' END OF PLIST ? 00319000
  360. BE ALTR01 YES - CONTINUE 00320000
  361. CLI 0(R3),C')' NO - END OF OPTIONS ? 00321000
  362. BNE OPTSCAN NO - PLAY IT AGAIN, SAM... 00322000
  363. * 00323000
  364. * 00324000
  365. ALTR01 SR R0,R0 SR=0 TO SEARCH FROM THE BEGINNING 00325000
  366. TM ERSFLAG,ANYMODE MODE SPECIFIED? 00326000
  367. BO ALTR02 NO. 00327000
  368. L R1,FVSERAS1 POINT TO 'OLD' FILEID P3057 00328000
  369. L R15,VCADTLKP LETS MAKE SURE IT'S R/W DISK @VM03093 00329100
  370. BALR R14,R15 00330000
  371. USING ADTSECT,R1 00331000
  372. TM ADTFLG1,ADTFRO WELL? 00332000
  373. BO ERR37E IT'S R/O 00333000
  374. DROP R1 00334000
  375. * 00335000
  376. ALTR02 L R1,FVSERAS1 SEARCH ACTIVE-TABLE 00336000
  377. L R15,AACTLKP CALL ACTLKP 00337000
  378. BALR R14,R15 ... 00338000
  379. BZ FOUND1 BRANCH IF ACTLKP FOUND IT. 00339000
  380. ALTR04 LM R0,R1,FVSERAS0 IF NOT, RE-LOAD R0 AND R1 AND 00340000
  381. L R15,VCFSTLKW CALL 'FSTLKW' @VM03093 00341100
  382. BALR R14,R15 ... 00342000
  383. BZ FOUND2 'FOUND' IF CONDITION-CODE = 0 00343000
  384. * 00344000
  385. ALTR05 TM ERSFLAG,FOUNDIT DID WE FIND ANYTHING AT ALL ? 00345000
  386. BZ ERR2E ERROR 2E IF WE DIDN'T. 00346000
  387. TM ERSFLAG,SUCCESS DID WE ALTER ANYTHING AT ALL ? 00347000
  388. BZ ERR19E ERROR 19E IF NOT 00348000
  389. SR R15,R15 CLEAR RETURN-CODE IF WE ALTERED SOMETHING 00349000
  390. TM ALTRFLG,UPNEED DO WE NEED TO UPDATE A DIRECTORY ? 00350000
  391. BZ EXIT TRF IF NOT (FORGET IT). 00351000
  392. L R0,FVSERAS0 R0 MUST POINT TO ACTIVE-DISK-TABLE 00352000
  393. SR R1,R1 CLEAR R1 (AS NECESSARY) 00353000
  394. L R15,ATFINIS CALL 'TFINIS' FOR THIS DISK 00354000
  395. BALR R14,R15 ... 00355000
  396. LA R1,1 R1 = 'PLUS' (ANYTHING) 00356000
  397. L R15,AUPDISK UPDATE THE DIRECTORY FOR GIVEN DISK 00357000
  398. BALR R14,R15 VIA 'UPDISK' 00358000
  399. EXIT KXCHK ERBIT CHECK FOR 'KX' WANTED... 00359000
  400. LM R0,R15,REGSAV1 RESTORE REGS @VA03668 00363100
  401. LTR R15,R15 SET CC @VA03668 00363400
  402. BR R14 RETURN TO SVCINT OR CALLER. 00364000
  403. * 00365000
  404. * 00366000
  405. FOUND1 DS 0H FILE-TO-BE-ALTERED 'FOUND' BY ACTLKP ... 00367000
  406. USING AFTSECT,R1 (BRIEFLY) 00368000
  407. L R11,AFTADT GET POINTER TO ACTIVE-DISK-TABLE 00369000
  408. USING ADTSECT,R11 REFERENCE SAME 00370000
  409. TM ADTFLG1,ADTFRW IS THIS A READ-WRITE DISK ? 00371000
  410. LR R0,R1 IF NOT, SET UP R0 AS NEEDED 00372000
  411. BZ ALTR02 AND RESUME SEARCHING. 00373000
  412. B ERR30E ERROR 30E IF ACTIVE-READ-WRITE FILE 00374000
  413. DROP R1 00375000
  414. * 00376000
  415. * 00377000
  416. FOUND2 OI FVSERAS1,X'80' SET SIGN-BIT 'ON' IN 'R1' FOR NEXT TIME 00378000
  417. LR R11,R0 REFERENCE THE ACTIVE-DISK-TABLE 00379000
  418. TM ERSFLAG,NEWMODE WAS NEW MODE SPECIFIED ? 00380000
  419. BO FOUND3 BO IF WAS '*' (ASSUME CORRECT DISK) 00381000
  420. CLC NEWMOD(1,R2),ADTM DOES MODE FROM DISK MATCH P-LIST ? 00382000
  421. BE FOUND3 IF YES, WE HAVE RIGHT DISK & FILE. 00383000
  422. ST R0,FVSERAS0 IF NOT, WRONG DISK, SET UP TO 00384000
  423. B ALTR04 RESUME SEARCHING, & GO TO IT. 00385000
  424. EJECT 00386000
  425. FOUND3 OI ERSFLAG,FOUNDIT FILE-TO-BE-ALTERED 'FOUND' BY FSTLKW 00387000
  426. LR R3,R1 REFERENCE THE FST-ENTRY VIA R3 00388000
  427. USING FSTSECT,R3 ... 00389000
  428. LM R7,R8,ADTCHBA PRESERVE KEY INFO. FOR CONTINUING, 00390000
  429. SR R0,R0 R0 = 0, 00391000
  430. LR R1,R10 R1 POINTS TO 'NEW' NAME-TYPE-MODE, ETC. 00392000
  431. TM ERSFLAG,NEWNAME NEW NAME = * ? 00393000
  432. BZ ALTR06 BZ IF NOT (WAS GIVEN) 00394000
  433. MVC PNAME(8,R1),FSTN SUBSTITUTE FOUND NAME FOR '*' 00395000
  434. ALTR06 TM ERSFLAG,NEWTYPE NEW TYPE = * ? 00396000
  435. BZ ALTR08 BZ IF NOT (WAS GIVEN) 00397000
  436. MVC PTYPE(8,R1),FSTT SUBSTITUTE FOUND TYPE FOR '*' 00398000
  437. ALTR08 TM ERSFLAG,NEWMODE NEW MODE = * ? 00399000
  438. BZ ALTR10 BZ IF NOT (WAS GIVEN) 00400000
  439. MVC PMODE(1,R1),ADTM SUBSTITUTE ACTIVE-DISK-TBL MODE 00401000
  440. MVI PMODE+1(R1),C' ' AND A BLANK 00402000
  441. ALTR10 L R15,AACTLKP BETTER NOT BE IN ACTIVE-TABLE, 00403000
  442. BALR R14,R15 ... 00404000
  443. LA R4,8(,R10) (R4 -> FILEID2 IN CASE ERROR) @VA05244 00405000
  444. BZ ALTR22 THAT'S PROBABLY AN ERROR 00406000
  445. LR R1,R10 MAKE SURE R1 SET AGAIN, AND 00407000
  446. L R15,VCFSTLKW LOOK UP ON R/W DISK(S) @VM03093 00408100
  447. BALR R14,R15 ... 00409000
  448. BNZ NEWOK GOOD SHOW IF 'ERROR' FROM FSTLKW 00410000
  449. * IF NEW FILE ALREADY EXISTS, MAYBE IT THE SAME AS THE 'OLD', 00411000
  450. * BUT A MODE-CHANGE IS WANTED ? 00412000
  451. CLC 0(16,R1),FSTN NAME & MODE THE SAME ? 00413000
  452. BNE ERR24E BNE IF NOT THE SAME, DEFINITELY ERROR 2. 00414000
  453. * 00415000
  454. NEWOK LA R5,ALTR16 SET R5 FOR NO CHANGES MADE YET 00416000
  455. CLC FSTN(16),PNAME(R10) NAME & TYPE ANY DIFFERENT ? 00417000
  456. BE ALTR12 BE IF THE SAME (NO CHANGE THERE) 00418000
  457. LA R5,ALTR15 SIGNAL CHANGE MADE 00419000
  458. MVC FSTN(16),PNAME(R10) SUBSTITUTE NEW NAME AND/OR TYPE 00420000
  459. LM R0,R1,FSTT NEW FILETYPE INTO R0-R1, 00421000
  460. L R15,ATYPSRCH CHECK NEW FILETYPE 00422000
  461. BALR R14,R15 VIA "TYPSRCH" 00423000
  462. O R15,ADTFTYP-3 "OR" IN THE POSSIBLE BITS 00424000
  463. ST R15,ADTFTYP-3 FOR THE FILETYPE. 00425000
  464. ALTR12 TM ERSFLAG,NEWMODE WAS NEW MODE SIMPLY '*' ? 00426000
  465. BO ALTR14 BO IF YES, LEAVE MODE 'AS IS' 00427000
  466. CLC FSTM+1(1),PMODE+1(R10) ANY CHANGE TO MAKE IN MODE ? 00428000
  467. BE ALTR14 BE IF NOT (IT'S THE SAME) 00429000
  468. CLI PMODE+1(R10),C' ' MODE LETTER SPECIFIED ? @VA04965 00429330
  469. BE ALTR14 YES, LEAVE IT AS IT WAS @VA04965 00429660
  470. MVC FSTM+1(1),PMODE+1(R10) MAKE THE CHANGE 00430000
  471. B ALTR15 AND GO UPDATE DISK, ETC. 00431000
  472. ALTR14 BR R5 CONTINUE, OR BRANCH TO ALTR16 00432000
  473. ALTR15 L R1,FVSERAS0 "OLD" ACTIVE-DISK-TABLE (IF ANY) INTO R1, 00433000
  474. CR R11,R1 IS "THIS" ADT THE SAME AS THE OLD ONE ? 00434000
  475. BE ALTR17 TRF IF YES - NO UPDISK NEEDED NOW 00435000
  476. LTR R0,R1 DOES OLD ACTIVE-DISK-TABLE EXIST AT ALL ? 00436000
  477. BZ ALTR17 IF NOT, FORGET IT. 00437000
  478. TM ALTRFLG,UPNEED IF YES, DID THE UFD WANT UPDATING ? 00438000
  479. BZ ALTR17 TRF IF NOT (FORGET IT). 00439000
  480. SR R1,R1 CLEAR R1 (AS NECESSARY) 00440000
  481. L R15,ATFINIS CALL 'TFINIS' FOR PREVIOUS DISK 00441000
  482. BALR R14,R15 ... 00442000
  483. LA R1,1 R1 = 'PLUS' (ANYTHING) 00443000
  484. L R15,AUPDISK THEN CALL 'UPDISK' 00444000
  485. BALR R14,R15 ... 00445000
  486. NI ALTRFLG,255-UPNEED CLEAR FLAG (UFD ALREADY UPDATED) 00446000
  487. * 00447000
  488. ALTR17 OI ERSFLAG,SUCCESS INDICATE WE ALTERED SOMETHING 00448000
  489. TM ALTRFLG,NOUPD DID WE WANT TO UPDATE DIRECTORY ? 00449000
  490. BO ALTR16 NO, TRANSFER OUT. DON'T UPDATE. 00450000
  491. OI ALTRFLG,UPNEED SIGNAL: UFD NEEDS UPDATING LATER PLEASE 00451000
  492. * 00452000
  493. ALTR16 STM R7,R8,ADTCHBA RESTORE KEY INFO FROM 1ST FSTLKW, 00453000
  494. ST R11,FVSERAS0 MAKE SURE FVSERAS0 POINTS TO 'THIS' DISK 00454000
  495. TM ERSFLAG,ALLNAMES+ALLTYPES+ANYMODE ANY MORE TO BE DONE ? 00455000
  496. BZ ALTR05 BZ IF NOT, GO EXIT. 00456000
  497. SSM ON PERMIT TIMER AND/OR TERMINAL INTERRUPT(S) 00457000
  498. SSM *+1 NOW INHIBIT ALL INTERRUPTS AGAIN. 00458000
  499. TM ALTRFLG,TYPEM IF 'ALL' SOMETHING, WAS TYPING WANTED ? 00459000
  500. BZ ALTR04 TRF IF NOT (FORGET IT). 00460000
  501. B TYPGO GET AROUND CONSTANTS 00461000
  502. * 00462000
  503. * SET UP TYPLIN PLIST RIGHT HERE ***** 00463000
  504. * 00464000
  505. DS 0F 00465000
  506. TYPOPT DC CL8'TYPLIN' 00466000
  507. DC AL1(1) 00467000
  508. DC AL3(TYPFIL) 00468000
  509. DC C'B' 00469000
  510. DC AL3(20) 00470000
  511. TYPFIL DS 5F 00471000
  512. * 00472000
  513. TYPGO MVI TYPFIL,X'40' TO CLEAR BUFFER 00473000
  514. MVC TYPFIL+1(19),TYPFIL 00474000
  515. MVC TYPFIL(8),FSTN MOVE IN NAME. 00475000
  516. MVC TYPFIL+18(1),ADTM MOVE IN MODE LETTER. 00476000
  517. MVC TYPFIL+19(1),FSTM+1 MOVE IN MODE NUMBER. 00477000
  518. OPT2 MVC TYPFIL+9(8),FSTT MOVE IN TYPE 00478000
  519. * 00479000
  520. * READY TO GO TO TYPLIN VIA 'SVC' 00480000
  521. * 00481000
  522. TYPIT LA R1,TYPOPT PUT IN ADDRESS OF TYPLIN PLIST 00482000
  523. SVC X'CA' GO TYPE IT 00483000
  524. * 00484000
  525. * ALL DONE WITH TYPLIN CONTINUE WITH ALTER. 00485000
  526. SPACE 00486000
  527. B ALTR04 GO CHECK FOR ADDITIONAL FILES TO ALTER. 00487000
  528. DROP R11 00488000
  529. SPACE 2 00489000
  530. * IF NEW FILE FOUND IN ACTIVE-TABLE, THAT'S PROBABLY AN ERROR... 00490000
  531. ALTR22 DS 0H 00491000
  532. USING AFTSECT,R1 (BRIEFLY) 00492000
  533. L R6,AFTADT GET POINTER TO ACTIVE-DISK-TABLE, 00493000
  534. USING ADTSECT,R6 REFERENCE SAME, 00494000
  535. TM ADTFLG1,ADTFRW IS THIS A READ-WRITE DISK ? 00495000
  536. LR R0,R1 IF NOT, SET UP R0 AS NEEDED 00496000
  537. BZ ALTR10 AND RESUME SEARCHING 00497000
  538. B ERR24E BUT ERROR 24E IF MATCHES A READ-WRITE DIS 00498000
  539. DROP R1,R6 00499000
  540. * 00500000
  541. ON DC X'81' PERMIT TIMER AND/OR TERMINAL INTERRUPT(S) 00501000
  542. MSGSWT DC X'00' ERROR MSG PRINT FLAG 00502000
  543. PRINT EQU X'80' 00503000
  544. EJECT 00504000
  545. ERR2E TM MSGSWT,PRINT SUPPRESS ERROR MSGS? 00505000
  546. BZ RET2 YES 00506000
  547. CLI REGSAV1+4,X'0E' WAS RENAME INVOKED FROM EXEC @VA01154 00506100
  548. * WITH "&CONTROL OFF" IN EFFECT ? 00506200
  549. BE RET2 IF YES, OMIT THE ERROR MESSAGE @VA01154 00506300
  550. * JUST AS IF IT HAD BEEN A FUNCTION CALL. 00506400
  551. * NO - USE THE USUAL ERROR MESSAGE ROUTINE: 00506500
  552. LA R2,PNAME(,R2) POINT TO FILEID 00507000
  553. DMSERR NUM=2,LET=E,SUB=(CHAR8A,(R2)),TEXT='FILE ''............*00508000
  554. ........'' NOT FOUND' 00509000
  555. RET2 MVI ERRCOD1,28 RETURN CODE = 28 @VA03668 00510100
  556. B EXIT 00511000
  557. SPACE 2 00512000
  558. ERR3A LA R3,OPTSTART(,R2) OPTION WITHOUT PARENS 00513000
  559. ERR3E TM MSGSWT,PRINT SUPPRESS MSGS? 00514000
  560. BZ RET3 YES 00515000
  561. DMSERR NUM=3,LET=E,SUB=(CHARA,(R3)),TEXT='INVALID OPTION ''...*00516000
  562. .....''' 00517000
  563. RET3 MVI ERRCOD1,24 RETURN CODE = 24 @VA03668 00518100
  564. B EXIT 00519000
  565. SPACE 2 00520000
  566. ERR19E TM MSGSWT,PRINT SUPPRESS ERR MSGS? 00521000
  567. BZ RET19 YES 00522000
  568. DMSERR NUM=19,LET=E,TEXT='IDENTICAL FILEIDS' 00523000
  569. RET19 MVI ERRCOD1,24 RETURN CODE = 24 @VA03668 00524100
  570. B EXIT 00525000
  571. SPACE 2 00526000
  572. ERR24E TM MSGSWT,PRINT SUPPRESS MSGS? 00527000
  573. BZ RET24 YES 00528000
  574. DMSERR NUM=24,LET=E,SUB=(CHAR8A,(R4)),TEXT='FILE ''...........*00529000
  575. .........'' ALREADY EXISTS' 00530000
  576. RET24 MVI ERRCOD1,28 RETURN CODE = 28 @VA03668 00531100
  577. B ALTR17 FINISH RENAME LIST @VA03668 00532100
  578. SPACE 2 00533000
  579. ERR30E TM MSGSWT,PRINT SUPPRESS MSGS? 00534000
  580. BZ RET30 YES 00535000
  581. LA R2,PNAME(,R2) POINT TO OLD FILEID 00536000
  582. DMSERR NUM=30,LET=E,SUB=(CHAR8A,(R2)),TEXT='FILE ''...........*00537000
  583. .........'' ALREADY ACTIVE' 00538000
  584. RET30 MVI ERRCOD1,28 RETURN CODE = 28 @VA03668 00539100
  585. B EXIT 00540000
  586. ERR37E TM MSGSWT,PRINT SUPPRESS MSGS? 00541000
  587. BZ RET37 00542000
  588. LA R2,PMODE(,R2) POINT TO OLD MODE 00543000
  589. DMSERR NUM=37,LET=E,SUB=(CHARA,(R2)),TEXT='DISK ''..'' IS READ*00544000
  590. /ONLY' 00545000
  591. RET37 MVI ERRCOD1,36 RETURN CODE = 36 @VA03668 00546100
  592. B EXIT 00547000
  593. SPACE 2 00548000
  594. ERR62E TM MSGSWT,PRINT SUPPRESS MSGS? 00549000
  595. BZ RET62 00550000
  596. DMSERR NUM=62,LET=E,TEXT='INVALID ''*'' IN OUTPUT FILEID' 00551100
  597. RET62 MVI ERRCOD1,20 RETURN CODE = 20 @VA03668 00552100
  598. B EXIT 00553000
  599. SPACE 2 00554000
  600. SPACE 2 00555000
  601. SPACE 2 00556000
  602. ERR51E TM MSGSWT,PRINT SUPPRESS MSGS? 00557000
  603. BZ RET51 YES 00558000
  604. DMSERR NUM=51,LET=E,TEXT='INVALID MODE CHANGE' 00559000
  605. RET51 MVI ERRCOD1,24 RETURN CODE = 24 @VA03668 00560100
  606. B EXIT 00561000
  607. SPACE 2 00562000
  608. ERR54E TM MSGSWT,PRINT SUPPRESS MSGS? 00563000
  609. BZ RET54 YES 00564000
  610. DMSERR NUM=54,LET=E,TEXT='INCOMPLETE FILEID SPECIFIED' 00565000
  611. RET54 MVI ERRCOD1,24 RETURN CODE = 24 @VA03668 00566100
  612. B EXIT 00567000
  613. ERR48E1 LA R2,PMODE(,R2) POINT TO INVALID INPUT MODE @VA05622 00567100
  614. B ERR48E JOIN COMMAND CODE @VA05622 00567200
  615. ERR48E2 LA R2,NEWMOD(,R2) POINTS TO INVALID OUTPUT MODE @VA05622 00567300
  616. ERR48E TM MSGSWT,PRINT SUPPRESS ERROR MSGS? @VA05622 00567400
  617. BZ RET48 YES,SKIP ERRMSG CALL @VA05622 00567500
  618. DMSERR NUM=48,LET=E,SUB=(CHARA,(R2)), *00567600
  619. TEXT='INVALID FILE MODE ''........''' 00567700
  620. RET48 MVI ERRCOD1,24 RETURN CODE 24 @VA05622 00567800
  621. B EXIT @VA05622 00567900
  622. SPACE 2 00568000
  623. ERRMSG36 EQU * @VA12416 00568100
  624. LA R2,PMODE(,R2) @VA12416 00568200
  625. DMSERR TEXT='DISK ''..'' NOT ACCESSED',NUM=69, X00568300
  626. LET=E,SUB=(CHARA,((R2),1)) @VA12416 00568400
  627. MVI ERRCOD1,36 RETURN CODE = 36 @VA12416 00568500
  628. B EXIT @VA12416 00568600
  629. * DISPLACEMENTS REFERENCING CALLER'S PARAMETER-LIST... 00569000
  630. PNAME EQU 8 00570000
  631. PTYPE EQU 16 00571000
  632. PMODE EQU 24 00572000
  633. NEWNAM EQU 32 00573000
  634. NEWTYP EQU 40 00574000
  635. NEWMOD EQU 48 00575000
  636. OPTSTART EQU 56 START OF OPTIONS ('(')...IF ANY 00576000
  637. OPTION1 EQU 64 FIRST OPTION...IF ANY 00577000
  638. * 00578000
  639. * 00579000
  640. PARTYP DC CL8'TYPE' CONSTANTS FOR OPTIONS... 00580000
  641. PARNOTYP DC CL8'NOTYPE' 00581000
  642. PARUPD DC CL8'UPDIRT' 00582000
  643. PARNOUPD DC CL8'NOUPDIRT' 00583000
  644. * 00584000
  645. DUMMY DC CL8'DUMMY' SUBSTITUTE FOR '=' 00585000
  646. ANYMD DC CL2'*' DITTO 00586000
  647. STATLST DS 0D 'STATE' PLIST 00587000
  648. DC CL8'STATEW' TO SYNTAX-CHECK NEW NAME @VA01560 00588100
  649. STATFN DC CL8' ' 00589000
  650. STATFT DC CL8' ' 00590000
  651. STATFM DC CL2' ' 00591000
  652. DC CL2' ' 00592000
  653. DC A(*-*) 00593000
  654. SPACE 00593100
  655. LTORG 00593200
  656. EJECT 00594000
  657. NUCON 00595000
  658. FVS 00596000
  659. SPACE 00597000
  660. ALTRFLG EQU FVSERAS2 NEEDED FLAG = FIRST BYTE OF 'FVSERAS2' 00598000
  661. * 00599000
  662. * 'ALTRFLG' DEFINITIONS: 00600000
  663. * 00601000
  664. UPNEED EQU X'80' UPDATE OF UFD NEEDED BEFORE WE EXIT 00602000
  665. TYPEM EQU X'40' TYPING WANTED PLEASE 00603000
  666. NOUPD EQU X'20' NO UPDATE OF DIRECTORY.. 00604000
  667. SPACE 3 00605000
  668. * 'ERSFLAG' DEFINITIONS: 00606000
  669. * 00607000
  670. ALLNAMES EQU X'80' ALL OLD NAMES 00608000
  671. ALLTYPES EQU X'40' ALL OLD TYPES 00609000
  672. ANYMODE EQU X'20' ANY OLD MODE 00610000
  673. NEWNAME EQU X'10' NEW NAME = * 00611000
  674. NEWTYPE EQU X'08' NEW TYPE = * 00612000
  675. NEWMODE EQU X'04' NEW MODE = * 00613000
  676. FOUNDIT EQU X'02' WE FOUND SOMETHING 00614000
  677. SUCCESS EQU X'01' WE ALTERED SOMETHING 00615000
  678. EJECT 00616000
  679. AFT 00617000
  680. EJECT 00618000
  681. ADT 00619000
  682. FSTB 00621000
  683. REGEQU 00623000
  684. SPACE 00624000
  685. END 00625000