Table of Contents

DMSTPE Source

References

Source Listing

DMSTPE.ASSEMBLE.txt
  1. TPE TITLE 'DMSTPE (CMS) VM/370 - RELEASE 6' 00001000
  2. SPACE 2 00002000
  3. *. 00003000
  4. * MODULE NAME - 00004000
  5. * 00005000
  6. * DMSTPE (TAPE) 00006000
  7. * 00007000
  8. * FUNCTION - 00008000
  9. * 00009000
  10. * TAPE COMMAND. TO PERFORM CERTAIN TAPE FUNCTIONS, I.E. 00010000
  11. * DUMP A CMS FILE, LOAD A CMS FILE, SET TAPE MODE, SCAN,SKI 00011000
  12. * REW, RUN, FSF, FSR, BSF, BSR, ERG, AND WTM 00012000
  13. * 00013000
  14. * ATTRIBUTES - 00014000
  15. * 00015000
  16. * TRANSIENT, REFRESHABLE, CALLED VIA SVC 202 00016000
  17. * 00017000
  18. * ENTRY POINTS - 00018000
  19. * 00019000
  20. * DMSTPE, TAPE - SEE FUNCTION DESCRIPTION 00020000
  21. * 00021000
  22. * ENTRY CONDITIONS - 00022000
  23. * 00023000
  24. * GPR1 = A(PLIST) 00024000
  25. * GPR14 = RETURN ADDRESS 00025000
  26. * GPR15 = A(DMSTPE) 00026000
  27. * PLIST = CL8'TAPE': COMMAND NAME 00027000
  28. * CL8'DUMP'|'LOAD'|'SCAN'|'SKIP'|'MODESET'|'REW'| 00028000
  29. * 'FSF'|'FSR'|'BSF'|'BSR'|'ERG'|'WTM'|'RUN' 00029000
  30. * 00030000
  31. * OPTIONAL - 00031000
  32. * CL8 - FILENAME IF FUNCTION = DUMP,LOAD,SKIP,SCAN 00032000
  33. * N IF FUNCTIO =WTM,ERG,FSF,FSR,BSF,BSR 00033000
  34. * CL8 - FILETYPE IF FUNCTION = DUMP,LOAD OR SCAN 00034000
  35. * CL8 - FILEMODE IF FUNCTION = DUMP, LOAD OR SCAN 00035000
  36. * CL8'(': BEGINNING OF OPTIONS LIST 00036000
  37. * CL8'WTM'|'NOWTM': FOR 'DUMP' ONLY, DEFAULT = NOWTM 00037000
  38. * CL8 - TAPI|CUU: SYMBOLIC OR ACTUAL TAPE UNIT 00038000
  39. * CL8 - EOT|EOF N: IF LOAD, SKIP, SCAN 00039000
  40. * CL8'NOPRINT'|'TERM'|'PRINT'|'DISK':DUMP,LOAD OR SCAN 00040000
  41. * CL8'9TRACK'|'7TRACK' 00041000
  42. * CL8'DEN' 00042000
  43. * CL8'1600'|'800'|'556'|'200'|'6250' 00043000
  44. * CL8'TRTCH' 00044000
  45. * CL8'0'|'0T'|'OC'|'E'|'ET' 00045000
  46. * CL8')': END OF OPTIONS LIST 00046000
  47. * 00047000
  48. * 8XL1'FF': END OF PARAMETER LIST 00048000
  49. * 00049000
  50. * EXIT CONDITIONS - 00050000
  51. * 00051000
  52. * NORMAL - 00052000
  53. * GPR15 = 0: TAPE FUNCTION PERFORMED AS REQUESTED 00053000
  54. * 00054000
  55. * ERROR - 00055000
  56. * GPR15 = 28 : FILE NOT FOUND 00056000
  57. * 24 : NO FUNCTION SPECIFIED 00057000
  58. * 24 : INVALID OPTION 00058000
  59. * 40 : PREMATURE EOF ON TAPE INPUT FILE 00059000
  60. * 24 : NO FILEID SPECIFIED 00060000
  61. * 24 : INVALID FUNCTION 00061000
  62. * 24 : NO FILETYPE SPECIFIED 00062000
  63. * 24 : INVALID DEVICE ADDRESS 00063000
  64. * 24 : INVALID DEVICE 00064000
  65. * 24 : INVALID PARAMETER FOR AN OPTION SPECIFIED 00065000
  66. * 36 : MODE OF DISK SPECIFIED IS READ/ONLY 00066000
  67. * 36 : TAPE FILE IS FILE PROTECTED 00067000
  68. * 36 : TARGET DISK NOT ACCESSED @VA14196 00067500
  69. * 24 : INVALID MODE 00068000
  70. * 32 : INVALID RECORD FORMAT 00069000
  71. * 24 : INVALID PARAMETER 00070000
  72. * 100 : ERROR READING A FILE FROM DISK 00071000
  73. * 100 : ERROR WRITING A FILE ON DISK 00072000
  74. * 100 : ERROR READING FROM TAPE 00073000
  75. * 100 : ERROR WRITING ON TAPE 00074000
  76. * 100 : TAPE NOT ATTACHED 00075000
  77. * 00076000
  78. * CALLS TO OTHER ROUTINES - 00077000
  79. * 00078000
  80. * TYPLIN - TYPE A LINE ON THE TERMINAL 00079000
  81. * PRINTIO - PRINT A LINE ON THE PRINTER 00080000
  82. * WRBUF - WRITE A FILE ON THE DISK 00081000
  83. * RDBUF - READ A FILE FROM THE DISK 00082000
  84. * FINIS - CLOSE A FILE ON THE DISK 00083000
  85. * ERASE - ERASE A FILE ON THE DISK 00084000
  86. * FSTLKP - FIND THE FILE STATUS TABLE FOR A FILE 00085000
  87. * UPDISK - UPDATE THE USER'S FILE DIRECTORY 00086000
  88. * TAPEIO - PHYSICALLY PERFORMS THE TAPE FUNCTION REQUESTED 00087000
  89. * KILLEX - IF 'KX' IS ENTERED 00088000
  90. * 00089000
  91. * EXTERNAL REFERENCES - 00090000
  92. * 00091000
  93. * NUCON - NUCLEUS CONSTANTS AREA 00092000
  94. * FSTSECT - FILE STATUS TABLES 00093000
  95. * ADTSECT - ACTIVE DISK TABLES 00094000
  96. * DEVSECT - DEVICE TABLE 00095000
  97. * 00096000
  98. * TABLES/WORKAREAS - 00097000
  99. * 00098000
  100. * CARDOUT - BUFFER FROM WHICH FILES ARE 'DUMPED' 00099000
  101. * CARDIN - BUFFER INTO WHICH FILES ARE 'LOADED' 00100000
  102. * 00101000
  103. * REGISTER USAGE - 00102000
  104. * 00103000
  105. * GPR0,GPR1 = CALLING EXTERNAL ROUTINES 00104000
  106. * GPR3 = A(TAPE PARAMETER LIST) 00105000
  107. * GPR11,GPR12 = BASE REGISTERS 00106000
  108. * GPR14 = LINK REGISTER 00107000
  109. * GPR15 = BRANCH REGISTER, RETURN CODE 00108000
  110. * GPR4, GPR5, GPR6, GPR7, GPR8, GPR9, GPR10 = WORK REGS. 00109000
  111. * GPR13 = A(FVS) 00110000
  112. * 00111000
  113. * NOTES - 00112000
  114. * 00113000
  115. * NONE 00114000
  116. * 00115000
  117. * OPERATION - 00116000
  118. * 00117000
  119. * 1. TAPE LOOKS FOR AN OPTIONS LIST. IF IT FINDS ONE, IT THEN 00118000
  120. * PROCESSES EACH ONE BY SETTING A FLAG IN OPTBYTE OR 00119000
  121. * CHANGING THE ENTRIES IN THE TAPEIO PARAMETER LIST. 00120000
  122. * 00121000
  123. * 2. AFTER ALL OPTIONS HAVE BEEN PROCESSED(IF ANY), IT FINDS 00122000
  124. * THE MODESET BYTE IN THE DEVICE TABLE FOR THE SYMBOLIC TAPE 00123000
  125. * UNIT SPECIFIED IN THE TAPEIO PARAMETER LIST. IF THE 00124000
  126. * USER HAS SPECIFIED A MODESETB(NOW IN THE TAPEIO PARAMETER 00125000
  127. * LIST) IT IS STORED IN THE APPROPRIATE PLACE IN THE DEVICE 00126000
  128. * TABLE. IF NOT, THE MODESET BYTE FROM THE DEVICE TABLE IS 00127000
  129. * STORED IN THE APPROPRIATE SLOT OF THE TAPEIO PARAMETER 00128000
  130. * LIST. 00129000
  131. * THE SAVING OF THE MODE SETTING BETWEEN 00130000
  132. * COMMANDS OCCURS ONLY IF TAPES WITH VIRTUAL ADDRESS 00131000
  133. * IN RANGE OF 180-187, 288-28F (TAP0-TAP7, TAP8-TAPF) ARHRC002DS 00132490
  134. * 00133000
  135. * 3. TAPE LOOKS FOR THE FUNCTION THE USER WANTS PERFORMED. 00134000
  136. * 00135000
  137. * DUMP - 00136000
  138. * 1. FSTLKP IS CALLED TO FIND THE FILE TO BE DUMPED. IF IT IS 00137000
  139. * FOUND, 'HX' IS PREVENTED AND IT'S FST IS ALTERED TO INDI 00138000
  140. * CATE A FIXED LENGTH FILE WITH A RECORD LENGTH OF 800 00139000
  141. * BYTES. THEN EACH RECORD IS READ(VIA RDBUF) AND WRITTEN 00140000
  142. * ONTO TAPE(VIA TAPEIO) UNTIL EOF IS REACHED. 00141000
  143. * 00142000
  144. * 2. AT EOF, THE REAL FST IS WRITTEN AND A CHECK IS MADE TO SEE 00143000
  145. * IF THE USER WANTS TO WTM. IF SO, ONE IS WRITTEN. THEN 00144000
  146. * 2 WTM ARE WRITTEN(VIA TAPEIO) AND BACKSPACED OVER. 00145000
  147. * 00146000
  148. * 3. A CHECK IS MADE TO SEE IF * WAS ENTERED FOR FILENAME, 00147000
  149. * FILETYPE OR FILEMODE. IF SO 1. IS REPEATED. ELSE RETURN. 00148000
  150. * 00149000
  151. * LOAD, SCAN, SKIP(AS INDICATED BY THE SETTING OF A SWITCH) 00150000
  152. * FOR SCANNING OR SKIPPING THE TAPE, 00151000
  153. * 1. THE TAPE IS READ(VIA TAPEIO) UNTIL THE NAME OF THE FILE 00152000
  154. * ENCOUNTERED. IF A FILID HAD BEEN ENTERED, IT IS 00153000
  155. * COMPARED WITH THAT ON THE TAPE FOR A MATCH. 00154000
  156. * FOR LOADING A FILE, EACH RECORD IS READ 00155000
  157. * (VIA TAPEIO) AND WRITTEN INTO A TEMPORARY FILE(TAPE 00156000
  158. * CMSUT1) VIA WRBUF. *WHEN THE LAST RECORD IS READ, THE 00157000
  159. * FILEID (IF GIVEN) IS CHECKED, AND IF MATCH, THE 00158000
  160. * FILE STATUS TABLE AND THE USERS FILE DIRECTORY ARE UPDATED 00159000
  161. * 00160000
  162. * 2. IF THE FILENAME AND FILETYPE MATCHED THE ONE SPECIFIED 00161000
  163. * BY THE USER, RETURN. IF NOT CONTINUE WITH 1. 00162000
  164. * 00163000
  165. * 3. ON EOF, CHECK TO SEE IF THE USER SPECIFIED EOFN. IF SO, 00164000
  166. * SEE IF THE NUMBER OF EOF MARKS HIT EQUALS THE NUMBER 00165000
  167. * SPECIFIED. IF SO RETURN. IF NOT SEE IF THE USER 00166000
  168. * SPECIFIED EOT. IF NOT, RETURN. IF SO, CHECK 00167000
  169. * FOR 2 CONSECUTIVE TAPE MARKS; IF FOUND, STOP. 00168000
  170. * IF ONLY ONE TAPE MARK, CONTINUE AT STEP 1. 00169000
  171. * 00170000
  172. * 00171000
  173. * REW,RUN,ERG,WTM,FSF,FSR,BSF,BSR - 00172000
  174. * 1. THE FUNCTION IS MOVED INTO THE TAPEIO PARAMETER LIST. 00173000
  175. * 00174000
  176. * 2. TAPEIO IS CALLED 'N' TIMES TO PERFORM THE FUNCTION. 00175000
  177. *. 00176000
  178. EJECT 00177000
  179. SPACE 3 00178000
  180. ********************************************************************** 00179000
  181. * 00180000
  182. * INITIALIZATION 00181000
  183. * 00182000
  184. ********************************************************************** 00183000
  185. DMSTPE START 0 00184000
  186. ENTRY TAPE 00185000
  187. TAPE EQU DMSTPE 00186000
  188. USING *,R12,R11 00187000
  189. LR R12,R15 SET UP ADDRESSIBILITY 00188000
  190. USING TAPE,R12,R11 00189000
  191. LA R11,4095(,R12) IN REGISTER 11 ALSO 00190000
  192. LA R11,1(,R11) 00191000
  193. SSM =X'FF' ENABLE INTERRUPTS V0762 00192000
  194. USING NUCON,R0 SET UP ACCESS TO NUCLEUS AREA 00193000
  195. L R13,AFVS V0403 00194000
  196. USING FVSECT,R13 V0403 00195000
  197. USING TAPEBUF,R10 ADDRESSABILITY FOR I/O BUFFERS @VA03003 00196000
  198. ST R14,SAVER14 SAVE RETURN ADDRESS 00197000
  199. MVI FREESTOR,NOTUSED INDICATE NOT USED @VA04052 00198000
  200. MVI MESSAGE,C' ' INITIALIZE MESSAGE AREA TO BLANK 00199000
  201. MVC MESSAGE+1(L'MESSAGE-1),MESSAGE SET LENGTH OF MSG 00200000
  202. MVC LMSG,=AL2(L'DUMPING+1) INITIALIZE THE LENGTH 00201000
  203. MVC SYMTAPA,TAP1 DEFAULT THE SYMBOLIC DEVICE ADDRESS 00202000
  204. MVC SAVEFN(16),MESSAGE BLANK THE FILEID OF THE INPUT FILE 00203000
  205. MVC SAVEFM(2),=C'A ' DEFAULT FILE MODE TO 'A ' P0953 00204000
  206. MVC STATFM(2),SAVEFM ALSO STATE FILEMODE @VA01313 00205000
  207. MVC EOFN,=AL4(1) DEFAULT EOFN TO 1 00206000
  208. MVI OPTBYTE,X'EC' DEFAULT THE OPTIONS BYTE 00207000
  209. MVI AFSTPLST,X'00' INDICATE FIRST CALL TO FSTLKP 00208000
  210. MVI FLAGS,X'00' INITIALIZE SELECTION FLAGS 00209000
  211. MVI TPEFLG,X'00' INITIALIZE FLAGS 00210000
  212. LA R5,1 SET-UP COUNTER FOR PRINTING, @VA00983 00211000
  213. STH R5,LINECT SO THAT EJECT IS DONE BEFORE @VA00983 00212000
  214. * BEFORE LINE OUTPUT TO PRINTER 00213000
  215. LA R5,OUTTERM INITIALIZE MAP FILE TO TERM 00214000
  216. ST R5,POUTPUT 00215000
  217. MVI MODESETB,X'00' SET MODESET BYTE TO DEFAULT 00216000
  218. LA R1,0(,R1) ZERO OUT THE HIGH ORDER BYTE 00217000
  219. LR R3,R1 LET R3 CONTAIN A(PLIST) 00218000
  220. CLI 8(R3),X'FF' ANY FUNCTION SPECIFIED 00219000
  221. BE ERROR047 NO, RETURN ERROR MSG 00220000
  222. LM R5,R7,INDEXS SET UP BXLE LOOP 00221000
  223. TAPE05 EQU * SEE WHICH TAPE FUNCTION SPECIFIED 00222000
  224. CLC 8(8,R3),0(R5) IS THIS THE FUNCTION SPECIFIED 00223000
  225. BE TAPE06 SET THE FLAG AND BRANCH POINT 00224000
  226. BXLE R5,R6,TAPE05 NO, SEE IF IT'S THE NEXT FUNCTION 00225000
  227. B ERROR014 NONE OF THE ABOVE, RETURN ERROR 00226000
  228. TAPE06 EQU * SET FLAGS AND BRANCH POINT FOR FUNCTION 00227000
  229. OC FLAGS,8(R5) SET THE FLAG 00228000
  230. L R9,8(R5) SET THE BRANCH POINT @VA03003 00229000
  231. LA R1,16(,R1) POINT TO PARAMETER PAST FUNCTION 00230000
  232. TAPE07 EQU * DETERMINE IF OPTIONS LIST 00231000
  233. CLI 0(R1),C'(' IS IT BEGINNING OF OPTIONS LIST 00232000
  234. BE TAPE08 YES, SAVE THE POINTER 00233000
  235. CLI 0(R1),X'FF' IS IT END OF COMMAND LINE 00234000
  236. BE TAPE08 YES, SAVE THE POINTER 00235000
  237. LA R1,8(,R1) POINT TO NEXT PARAMETER 00236000
  238. B TAPE07 SEE IF THIS BEGINS OPTION LIST 00237000
  239. TAPE08 EQU * 00238000
  240. ST R1,SAVER1 SAVE A(BEGINNING OF OPTIONS OR FENCE) 00239000
  241. CLI 0(R1),X'FF' NO OPTIONS, HIT END OF PLIST ? 00240000
  242. BE TAPE300 YES, SEE WHICH OPTIONS WERE SPECIFIED 00241000
  243. TAPE10 EQU * 00242000
  244. LA R1,8(,R1) CHECK FIRST (OR NEXT) OPTION SPECIFIED 00243000
  245. CLI 0(R1),FF END OF COMMAND LINE? @VA07150 00244000
  246. BE TAPE300 BRANCH IF YES, PROCESS @VA07150 00245000
  247. LA R5,FIRSTOPT POINT TO FIRST OPTION 00246000
  248. LA R6,12 BXLE INCREMENT 00247000
  249. LA R7,AFTRLST END OF OPTION DEFINITION TABLE 00248000
  250. LR R8,R1 GET POINTER TO OPTION 00249000
  251. LA R15,EIGHT SET LENGTH OF PLIST ELEM. @VA07150 00250000
  252. TAPE13 CLI 0(R8),C' ' IS THIS END OF OPTION 00251000
  253. BE TAPE15 YES, GO SET ITS LENGTH 00252000
  254. LA R8,1(,R8) SEE IF NEXT CHAR. IS A BLANK 00253000
  255. BCT R15,TAPE13 AND LOOP FOR LENGTH OF ELEM. @VA07150 00254000
  256. TAPE15 EQU * DETERMINE LENGTH OF OPTION 00255000
  257. SR R8,R1 BY SUBRACTING OUT START OF OPTION 00256000
  258. STC R8,CHLINK SAVE THE LENGTH OF THE OPTION 00257000
  259. BCTR R8,R0 LESS 1 FOR CLC 00258000
  260. TAPE20 EQU * 00259000
  261. CLC CHLINK(1),8(R5) CHECK MIN LENGTH P0735 00260000
  262. BL TAPE23 IF LOW, ERROR P0735 00261000
  263. EX R8,COMPOPT IS THIS THE OPTION SPECIFIED 00262000
  264. BE TAPE45 FOUND OPTION, SET IT'S FLAGS 00263000
  265. TAPE23 EQU * 00264000
  266. BXLE R5,R6,TAPE20 MATCH ALL OPTIONS 00265000
  267. * 00266000
  268. * SEE IF CUU WAS SPECIFIED 00267000
  269. * 00268000
  270. TM 0(R1),X'F0' SEE IF IT'S A NUMBER 00269000
  271. BNO ERROR003 NO, INVALID ARGUMENT 00270000
  272. CLI 3(R1),C' ' IS 4TH BYTE BLANK? P0917 00271000
  273. BNE ERROR017 NO, INVALID ADDR P0917 00272000
  274. * 00273000
  275. * ASSUME CUU AND CONVERT TO BINARY 00274000
  276. * 00275000
  277. XC DBLWRD1(L'DBLWRD1+L'DBLWRD2),DBLWRD1 ZERO CONV. AREA 00276000
  278. MVC DBLWRD1+5(3),0(R1) MOVE CCU TO LAST 3 BYTES 00277000
  279. PACK DBLWRD2,DBLWRD1 REMOVE ZONES 00278000
  280. L R4,DBLWRD2+4 GET THE HEX NUMBER 00279000
  281. SRL R4,4 SHIFT OFF THE SIGN BITS 00280000
  282. * 00281000
  283. * FIND IT'S SYMBOLIC NAME IN THE DEVICE TABLE 00282000
  284. * 00283000
  285. L R5,ADEVTAB A(DEVICE TABLE) 00284000
  286. USING DEVSECT,R5 00285000
  287. LA R6,DEVSIZE LENGTH OF AN ENTRY IN THE DEVICE TABLE 00286000
  288. L R7,ATABEND A(END OF DEVICE TABLE) 00287000
  289. TAPE30 EQU * START THE BXLE LOOP HERE 00288000
  290. CH R4,DEVADDR DOES CUU MATCH ONE IN DEVICE TABLE 00289000
  291. BE TAPE40 YES, PICK UP IT'S SYMBOLIC NAME 00290000
  292. BXLE R5,R6,TAPE30 KEEP MATCHING 00291000
  293. B ERROR017 NO MATCH, RETURN ERROR TO CALLER 00292000
  294. TAPE40 EQU * PICK UP SYMBOLIC NAME 00293000
  295. MVC SYMTAPA,DEVNAME MOVE TO TAPEIO PARAMETER LIST 00294000
  296. B TAPE10 ANY MORE OPTIONS ? 00295000
  297. SPACE 2 00296000
  298. TAPE45 EQU * GET THE ADDRESS OF THE OPTION PROCESSOR 00297000
  299. L R5,8(,R5) FROM THE TABLE 00298000
  300. BR R5 SET THE FLAGS, ETC. 00299000
  301. SPACE 2 00300000
  302. * 00301000
  303. * OPTIONS LIST AND BRANCH POINT 00302000
  304. * 00303000
  305. FIRSTOPT DS 0F 00304000
  306. DC CL8'TAP0' TAP0 HRC002DS 00305190
  307. DC AL1(4),AL3(TAPE50) HRC002DS 00305380
  308. TAP1 DC CL8'TAP1' TAP1 HRC002DS 00305570
  309. DC AL1(4),AL3(TAPE50) 00306000
  310. DC CL8'TAP2' TAP2 00307000
  311. DC AL1(4),AL3(TAPE50) 00308000
  312. DC CL8'TAP3' TAP3 00309000
  313. DC AL1(4),AL3(TAPE50) 00310000
  314. DC CL8'TAP4' TAP4 00311000
  315. DC AL1(4),AL3(TAPE50) HRC002DS 00312030
  316. DC CL8'TAP5' TAP5 HRC002DS 00312060
  317. DC AL1(4),AL3(TAPE50) HRC002DS 00312090
  318. DC CL8'TAP6' TAP6 HRC002DS 00312120
  319. DC AL1(4),AL3(TAPE50) HRC002DS 00312150
  320. DC CL8'TAP7' TAP7 HRC002DS 00312180
  321. DC AL1(4),AL3(TAPE50) HRC002DS 00312210
  322. DC CL8'TAP8' TAP8 HRC002DS 00312240
  323. DC AL1(4),AL3(TAPE50) HRC002DS 00312270
  324. DC CL8'TAP9' TAP9 HRC002DS 00312300
  325. DC AL1(4),AL3(TAPE50) HRC002DS 00312330
  326. DC CL8'TAPA' TAPA HRC002DS 00312360
  327. DC AL1(4),AL3(TAPE50) HRC002DS 00312390
  328. DC CL8'TAPB' TAPB HRC002DS 00312420
  329. DC AL1(4),AL3(TAPE50) HRC002DS 00312450
  330. DC CL8'TAPC' TAPC HRC002DS 00312480
  331. DC AL1(4),AL3(TAPE50) HRC002DS 00312510
  332. DC CL8'TAPD' TAPD HRC002DS 00312540
  333. DC AL1(4),AL3(TAPE50) HRC002DS 00312570
  334. DC CL8'TAPE' TAPE HRC002DS 00312600
  335. DC AL1(4),AL3(TAPE50) HRC002DS 00312630
  336. DC CL8'TAPF' TAPF HRC002DS 00312660
  337. DC AL1(4),AL3(TAPE50) HRC002DS 00312690
  338. DC CL8'WTM' WTM 00313000
  339. DC AL1(3),AL3(TAPE65) 00314000
  340. DC CL8'NOWTM' NOWTM 00315000
  341. DC AL1(5),AL3(TAPE70) 00316000
  342. DC CL8'EOF' EOF 00317000
  343. DC AL1(3),AL3(TAPE60) 00318000
  344. DC CL8'EOT' EOT 00319000
  345. DC AL1(3),AL3(TAPE80) 00320000
  346. DC CL8'NOPRINT' NOPRINT 00321000
  347. DC AL1(4),AL3(TAPE90) 00322000
  348. DC CL8'TERM' TERM 00323000
  349. DC AL1(1),AL3(TAPE100) 00324000
  350. DC CL8'PRINT' PRINT 00325000
  351. DC AL1(2),AL3(TAPE110) 00326000
  352. DC CL8'DISK' DISK 00327000
  353. DC AL1(4),AL3(TAPE120) 00328000
  354. DC CL8'7TRACK' 7TRACK 00329000
  355. DC AL1(6),AL3(TAPE130) 00330000
  356. DC CL8'9TRACK' 9TRACK 00331000
  357. DC AL1(6),AL3(TAPE140) 00332000
  358. DC CL8'DEN' DEN 00333000
  359. DC AL1(3),AL3(TAPE150) 00334000
  360. DC CL8'TRTCH' TRTCH 00335000
  361. DC AL1(5),AL3(TAPE160) 00336000
  362. DC CL8')' END OF OPTIONS LIST 00337000
  363. DC AL1(1),AL3(TAPE300) 00338000
  364. AFTRLST EQU *-12 END OF OPTIONS LIST 00339000
  365. EJECT 00340000
  366. TAPE50 EQU * USER MODIFIES I/O UNIT 00341000
  367. MVC SYMTAPA,0(R1) MOVE USER SYMBOLIC TAPE ADDRESS TO PLIST 00342000
  368. B TAPE10 ANY MORE OPTIONS ? 00343000
  369. * 00344000
  370. TAPE60 EQU * USER MODIFIES EOFN 00345000
  371. TM FLAGS,LOADSWT+SCNSWT+SKPSWT LOAD, SCAN, OR SKIP 00346000
  372. BZ ERROR003 NO, INVALID OPTION 00347000
  373. LA R1,8(,R1) POINT TO THE NUMBER OF 'EOF' 'S 00348000
  374. XC DBLWRD1(L'DBLWRD1+L'DBLWRD2),DBLWRD1 ZERO CONV. AREA 00349000
  375. CLI 0(R1),C'0' P0735 00350000
  376. BL ERROR029 ERROR IF NOT 0 - 9 P0735 00351000
  377. CLI 0(R1),C'9' P0735 00352000
  378. BH ERROR029 P0735 00353000
  379. LA R6,0(,R1) POINT TO BEGINNING OF NUMBER 00354000
  380. LA R4,1(,R1) POINT TO BEGINNING OF NUMBER +1 00355000
  381. LA R5,0 R5 = NUMBER OF N'S IN EOFN 00356000
  382. TAPE61 EQU * 00357000
  383. CLI 0(R4),X'40' ANY MORE N'S ? 00358000
  384. BE TAPE62 NO 00359000
  385. CLI 0(R4),C'0' P0735 00360000
  386. BL ERROR029 ERROR IF NOT 0 - 9 P0735 00361000
  387. CLI 0(R4),C'9' P0735 00362000
  388. BH ERROR029 P0735 00363000
  389. LA R4,1(,R4) INCREMENT ADDRESS 00364000
  390. LA R5,1(,R5) ADD 1 N 00365000
  391. CH R5,=H'7' NO MORE THAN 8 ALLOWED 00366000
  392. BL TAPE61 CONTINUE 00367000
  393. TAPE62 EQU * 00368000
  394. LA R4,DBLWRD1+7 A(DBLWRD1) 00369000
  395. SR R4,R5 NUM. CHARS. TO MOVE NOT MORE THAN 8 00370000
  396. EX R5,MVCNUM MOVE THE NUMBER TO A DOUBLE WORD 00371000
  397. PACK DBLWRD2,DBLWRD1 PUT NUMBER INTO PACKED FORMAT 00372000
  398. SR R4,R4 ZERO R4 00373000
  399. CVB R4,DBLWRD2 CONVERT NUMBER TO BINARY 00374000
  400. ST R4,EOFN STORE THE NUMBER 00375000
  401. NI OPTBYTE,255-NOEOFN SET NOEOFN STATUS FLAG OFF 00376000
  402. OI OPTBYTE,NOEOT SET EOT STATUS FLAG ON 00377000
  403. B TAPE10 ANY MORE OPTIONS ? 00378000
  404. * 00379000
  405. TAPE65 EQU * USER MODIFIES WTM 00380000
  406. TM FLAGS,DUMPSWT DUMP 00381000
  407. BZ ERROR003 NO, INVALID OPTION 00382000
  408. NI OPTBYTE,255-NOWTM SET WTM STATUS FLAG OFF 00383000
  409. B TAPE10 ANY MORE OPTIONS ? 00384000
  410. * 00385000
  411. TAPE70 EQU * USER SPECIFIES NOWTM 00386000
  412. TM FLAGS,DUMPSWT DUMP 00387000
  413. BZ ERROR003 NO, INVALID OPTION 00388000
  414. OI OPTBYTE,NOWTM SET WTM STATUS FLAG ON 00389000
  415. B TAPE10 ANY MORE OPTIONS ? 00390000
  416. * 00391000
  417. TAPE80 EQU * USER SPECIFIES EOT 00392000
  418. TM FLAGS,LOADSWT+SKPSWT+SCNSWT LOAD, SKIP OR SCAN 00393000
  419. BZ ERROR003 NO, INVALID OPTION 00394000
  420. NI OPTBYTE,255-NOEOT SET NOEOT STATUS FLAG OFF 00395000
  421. OI OPTBYTE,NOEOFN SET NOEOFN STATUS FLAG ON 00396000
  422. B TAPE10 ANY MORE OPTIONS ? 00397000
  423. * 00398000
  424. TAPE90 EQU * USER SPECIFIES NOPRINT 00399000
  425. TM FLAGS,DUMPSWT+LOADSWT+SCNSWT+SKPSWT 00400000
  426. BZ ERROR003 NO, INVALID OPTION 00401000
  427. OI OPTBYTE,NOPRINT+NOTERM+NODISK NO OUTPUT MESSAGES REQUEST 00402000
  428. B TAPE10 ANY MORE OPTIONS ? 00403000
  429. * 00404000
  430. TAPE100 EQU * USER SPECIFIES TERM 00405000
  431. TM FLAGS,DUMPSWT+LOADSWT+SCNSWT+SKPSWT 00406000
  432. BZ ERROR003 NO, INVALID OPTION 00407000
  433. LA R5,OUTTERM A(TYPLIN PARAMETER LIST) 00408000
  434. ST R5,POUTPUT 00409000
  435. NI OPTBYTE,255-NOTERM SEND MESSAGES TO TERMINAL 00410000
  436. OI OPTBYTE,NOPRINT+NODISK NOT TO PRINTER OR DISK 00411000
  437. B TAPE10 ANY MORE OPTIONS ? 00412000
  438. * 00413000
  439. TAPE120 EQU * USER SPECIFIES DISK 00414000
  440. TM FLAGS,DUMPSWT+LOADSWT+SCNSWT+SKPSWT 00415000
  441. BZ ERROR003 NO, INVALID OPTIN 00416000
  442. ST R1,DBLWRD1 SAVE R1 IN TEMPORARY STORAGE 00417000
  443. LA R1,PERASE ERASE 'TAPE MAP A5' IF IT EXISTS @VA11834 00418000
  444. SSM TPEDIS DISABLE INTERRUPTS @VA06258 00419000
  445. L R15,AERASE ERASE @V305066 00420000
  446. BALR R14,R15 ... @V305066 00421000
  447. SSM TPEENA ENABLE INTERRUPTS @VA06258 00422000
  448. LA R5,OUTDISK A(WRBUF PARAMETER LIST) 00423000
  449. ST R5,POUTPUT 00424000
  450. MVC OUTCOMM,WRBUF SET COMMAND TO WRITE @VA00898 00425000
  451. NI OPTBYTE,255-NODISK SEND MESSAGES TO A DISK FILE 00426000
  452. OI OPTBYTE,NOTERM+NOPRINT NOT TO THE TERMINAL OR PRINTER 00427000
  453. L R1,DBLWRD1 GET R1 BACK 00428000
  454. B TAPE10 ANY MORE OPTIONS ? 00429000
  455. * 00430000
  456. TAPE110 EQU * USER SPECIFIES PRINT 00431000
  457. TM FLAGS,DUMPSWT+LOADSWT+SCNSWT+SKPSWT 00432000
  458. BZ ERROR003 NO, INVALID OPTION 00433000
  459. LA R5,OUTPRINT A(PRINTIO PARAMTER LIST) 00434000
  460. ST R5,POUTPUT 00435000
  461. NI OPTBYTE,255-NOPRINT SEND MESSAGES TO THE PRINTER 00436000
  462. OI OPTBYTE,NOTERM+NODISK NOT TO THE TERMINAL OR DISK 00437000
  463. B TAPE10 ANY MORE OPTIONS ? 00438000
  464. * 00439000
  465. TAPE130 EQU * USER SPECIFIES 7TRACK 00440000
  466. TM FLAGS,DENSITY DENSITY BEEN SET ? V0312 00441000
  467. BNO RESET7 NO...RESET MODE V0312 00442000
  468. TM TPEFLG,NINETK HAS 9TRACK BEEN SET ? @V200414 00443000
  469. BO RESET7 YES..RESET 7TRACK @V200414 00444000
  470. TM MODESETB,DRESET 800 9TK SET ? V0312 00445000
  471. BO RESET7 YES...RESET MODE V0312 00446000
  472. TM MODESETB,PCT TRTCH DONE ? V0312 00447000
  473. BO TAPE10 YES...GET NEXT OPT. V0312 00448000
  474. NI MODESETB,KEEPDEN7 STRIP ALL BUT DENSITY BITS V0312 00449000
  475. OI MODESETB,TRTCHOC RESET MODE 7 TRACK V0312 00450000
  476. B TAPE10 GET NEXT OPT. V0312 00451000
  477. RESET7 MVI MODESETB,RESETM7 RESET MODE 7 TRACK V0312 00452000
  478. NI TPEFLG,NINEOFF INDICATE 7TRACK SET @V200414 00453000
  479. B TAPE10 GET NEXT OPTION V0312 00454000
  480. * 00455000
  481. TAPE140 EQU * USER SPECIFIES 9TRACK 00456000
  482. TM TPEFLG,NINETK HAS 9TRACK BEEN SET ? @V200414 00457000
  483. BO TAPE10 YES..GET NEXT OPTION @V200414 00458000
  484. OI TPEFLG,NINETK NO..SET IT @V200414 00459000
  485. MVI MODESETB,DRESET @V200414 00460000
  486. B TAPE10 ANY MORE OPTIONS ? 00461000
  487. * 00462000
  488. TAPE150 EQU * USER SPECIFIES DEN 00463000
  489. OI FLAGS,DENSITY INDICATE THAT DENSITY HAS BEEN SET 00464000
  490. LA R1,8(,R1) ADVANCE OPTION POINTER TO DEN SPECIFIED 00465000
  491. CLC C6250,0(R1) DEN=6250? @VA07148 00466000
  492. BE TAPE157 BRANCH IF YES @VA07148 00467000
  493. CLC =C'1600 ',0(R1) DID THE USER WANT DEN=1600 00468000
  494. BE TAPE153 YES, SET IT 00469000
  495. CLC =C'800 ',0(R1) DEN=800 ? 00470000
  496. BE TAPE154 YES, SET IT 00471000
  497. TM TPEFLG,NINETK HAS 9TRACK BEEN SET @V200414 00472000
  498. BO TAPE156 YES..SET 7TRACK RESET @V200414 00473000
  499. TM MODESETB,PCT HAVE THE CONV. TRAN. BITS BEEN SET ? 00474000
  500. BZ TAPE156 NO, SET THEM FIRST, THEN CHECK DEN 00475000
  501. NI MODESETB,KEEPTRK7 YES, AND OUT THE DENSITY BITS ONLY 00476000
  502. TAPE151 EQU * SEE WHICH DENSITY WAS SPECIFIED ? 00477000
  503. CLC =C'556 ',0(R1) DEN=556 ? 00478000
  504. BE TAPE152 YES, SET IT 00479000
  505. CLC =C'200 ',0(R1) DEN=200 ? 00480000
  506. BNE ERROR029 NO, NOTHING LEFT, RETURN ERROR 00481000
  507. B TAPE10 YES, ALL SET, RETURN 00482000
  508. TAPE152 EQU * DEN=556 00483000
  509. OI MODESETB,D556 SET THE DENSITY BITS IN THE MODESET 00484000
  510. B TAPE10 ANY MORE OPTIONS ? 00485000
  511. TAPE153 EQU * DEN=1600 00486000
  512. MVI MODESETB,DRESET SET THE DENSITY AND THE MODESET 00487000
  513. OI TPEFLG,NINETK SET 9TRACK INDICATOR @V200414 00488000
  514. B TAPE10 ANY MORE OPTIONS ? 00489000
  515. TAPE154 EQU * DEN=800 00490000
  516. TM TPEFLG,NINETK HAS 9TRACK BEEN SET ? @V200414 00491000
  517. BO TAPE155 YES..SET RESET MODE @V200414 00492000
  518. TM MODESETB,PCT HAVE THE CONV. TRANS. BITS BEEN SET ? 00493000
  519. BZ TAPE155 NO, SET DEN=800 FOR 9 TRACK TAPE 00494000
  520. NI MODESETB,KEEPTRK7 YES, ZERO ONLY THE DENSITY BITS 00495000
  521. OI MODESETB,D8007TRK SET ONLY THE DENSITY BITS 00496000
  522. B TAPE10 ANY MORE OPTIONS 00497000
  523. TAPE155 EQU * DEN=800 FOR 9 TRACK TAPES 00498000
  524. MVI MODESETB,D8009TRK SET THE MODESET BYTE 00499000
  525. OI TPEFLG,NINETK SET 9TRACK INDICATOR @V200414 00500000
  526. B TAPE10 ANY MORE OPTIONS ? 00501000
  527. TAPE156 EQU * SET THE CONV. TRANS. BITS FOR 7TRACK TAPE 00502000
  528. MVI MODESETB,TRTCHOC 7 TRK RESET V0312 00503000
  529. B TAPE151 SEE IF DEN=200 OR DEN=556 00504000
  530. * 00505000
  531. TAPE157 EQU * @V200414 00506000
  532. MVI MODESETB,D6250 SET MODESET BYTE @V200414 00507000
  533. OI TPEFLG,NINETK SET 9TRACK INDICATOR @V200414 00508000
  534. B TAPE10 GET NEXT OPTION @V200414 00509000
  535. * 00510000
  536. TAPE160 EQU * USER SPECIFIES TRTCH 00511000
  537. TM MODESETB,DRESET SEE IF 9TRACK IS SPECIFIED 00512000
  538. BO SETD7TRK RESET DENSITY TO 800BPI FOR 7 TRACK 00513000
  539. TM FLAGS,DENSITY HAS ANY DENSITY BEEN SPECIFIED ? 00514000
  540. BO SETRTCH YES, SET TRTCH 00515000
  541. SETD7TRK EQU * SET DENSITY=800BPI FOR 7 TRACK 00516000
  542. MVI MODESETB,D8007TRK 00517000
  543. OI FLAGS,DENSITY SET DENSITY FLAG V0312 00518000
  544. SETRTCH EQU * SET TRTCH 00519000
  545. NI MODESETB,KEEPDEN7 LEAVE ONLY THE DENSITY SETTING 00520000
  546. LA R1,8(,R1) ADVANCE POINTER TO TRTCH SETTING 00521000
  547. CLC =C'OC ',0(R1) 'OC' SPECIFIED ? 00522000
  548. BE TAPE161 YES, SET MODESET 00523000
  549. CLC =C'OT ',0(R1) 'OT' SPECIFIED ? 00524000
  550. BNE TAPE163 NO, CHECK THE OTHERS 00525000
  551. OI MODESETB,TRTCHOT SET MODESET 00526000
  552. B TAPE10 ANY MORE OPTIONS ? 00527000
  553. TAPE161 EQU * 00528000
  554. OI MODESETB,TRTCHOC SET MODESET FOR 'OC' 00529000
  555. B TAPE10 ANY MORE OPTIONS ? 00530000
  556. TAPE163 EQU * 00531000
  557. CLC =C'ET ',0(R1) 'ET' SPECIFIED ? 00532000
  558. BE TAPE165 YES, SET MODESET 00533000
  559. CLC =C'E ',0(R1) 'E ' SPECIFIED ? 00534000
  560. BNE TAPE167 NO, SEE IF 'O' 00535000
  561. OI MODESETB,TRTCHE SET 'E' MODESET 00536000
  562. B TAPE10 ANY MORE OPTIONS ? 00537000
  563. TAPE165 EQU * 00538000
  564. OI MODESETB,TRTCHET 00539000
  565. B TAPE10 ANY MORE OPTIONS ? 00540000
  566. TAPE167 EQU * SEE IF TRTCH = O 00541000
  567. CLC =C'O ',0(R1) 'O' SPECIFIED ? 00542000
  568. BNE ERROR029 NO, RETURN WITH ERROR 00543000
  569. OI MODESETB,TRTCHO SET MODESET FOR 'O' 00544000
  570. B TAPE10 ANY MORE OPTIONS ? 00545000
  571. EJECT 00546000
  572. * 00547000
  573. * IF THE USER SPECIFIED A MODESET BYTE, STORE IT IN 00548000
  574. * THE DEVICE TABLE. IF NOT PICK UP THE THE ONE IN THE 00549000
  575. * DEVICE TABLE AND STORE IT IN TAPEIO PARAMETER LIST. 00550000
  576. * 00551000
  577. TAPE300 EQU * 00552000
  578. L R5,ADEVTAB A(DEVICE TABLE) 00553000
  579. LA R6,DEVSIZE LENGTH OF AN ENTRY IN THE DEVICE TABLE 00554000
  580. L R7,ATABEND A(END OF DEVICE TABLES) 00555000
  581. TAPE301 EQU * BEGIN BXLE LOOP HERE 00556000
  582. CLC DEVNAME,SYMTAPA DO SYMBOLIC DEVICE NAMES MATCH ? 00557000
  583. BE TAPE302 YES, TAPE UNIT = ONE IN DEVICE TABLE 00558000
  584. BXLE R5,R6,TAPE301 KEEP COMPARING 00559000
  585. B ERROR027 NO MATCH, RETURN TO CALLER 00560000
  586. * 00561000
  587. * CHECK MODESET BYTE IN DEVICE TABLE 00562000
  588. * 00563000
  589. TAPE302 EQU * 00564000
  590. MVC TAPECCU,DEVADDR SAVE THE CCU OF THE TAPE 00565000
  591. LR R10,R5 SAVE DEVICE TABLE POINTER @VA03003 00566000
  592. LH R5,DEVADDR PROVIDE CP VIRTUAL DEV ADDR P0917 00567000
  593. DC X'83560024' DIAGNOSE TO CHECK FEATURES P0917 00568000
  594. BC 1,ERROR113 ERR IF NOT ATTACHED P0917 00569000
  595. CLM R7,B'1000',CLASTAPE IF DEVICE EXISTS, CHEK TAPE P0917 00570000
  596. BNE ERROR027 IF NOT TAPE, INVALID DEVICE P0917 00571000
  597. LR R5,R10 RESTORE DEVICE TABLE POINTER @VA03003 00572000
  598. CLI MODESETB,X'00' HAS THE USER SPECIFIED THE MODESET BYTE 00573000
  599. BNE STDEVTAB YES, STORE IT IN THE DEVICE TABLE 00574000
  600. MVC MODESETB,DEVMISC NO, USE THE ONE IN THE DEVICE TABLE 00575000
  601. ST R7,FDIAG STORE REAL DEV INFO @VA08371 00575100
  602. CLI MODESETB,X'00' IS IT STILL 00 @VA08371 00575200
  603. BNE TAPE303 MODSETB IS SET @VA08371 00575300
  604. TM FDIAG+3,FTRDLDNS DUAL DENSITY DRIVE ? @VA08371 00575400
  605. BNO TAPE303 IF NOT DEN ALL SET @VA08371 00575500
  606. OI MODESETB,DRESET SET DEFAULT FOR DUAL DEN @VA08371 00575600
  607. * TAPE DRIVES AS 1600 BPI 00575700
  608. B STORMODE AND STORE IN DEVTBL @VA08371 00576100
  609. STDEVTAB EQU * SAVE THE USER'S MODESET IN THE DEVICE TBL 00577000
  610. ST R7,FDIAG SAVE REAL DEVICE INFO. P0917 00578000
  611. TM MODESETB,TRACK9 P0917 00579000
  612. BO TEST9TRK DROP TO CHEK 9TRACK SETTING P0917 00580000
  613. SPACE 1 00581000
  614. TM FDIAG+3,FTR7TRK CHEK 7TRACK FEATURE P0917 00582000
  615. LA R8,ERR7TRK P0917 00583000
  616. BZ ERR115S ERR IF NO 7TRK FEAT. P0917 00584000
  617. TM MODESETB,D200+D556+D8007TRK BETTER BE 7 TRK @VA03003 00585000
  618. BNZ TTRANS DENSITY SETTING ... @VA03003 00586000
  619. LA R8,ERRDLDNS OTHERWISE, ERROR @VA02112 00587000
  620. B ERR115S PRINT ERROR MESSAGE @VA02112 00588000
  621. TTRANS TM MODESETB,TRTCHET TRANSLATION WANTED? @VA02112 00589000
  622. BNO TESTOC NO, CHEK CONVERSION P0917 00590000
  623. TM FDIAG+3,FTRTRANS YES, CHEK FEATURE P0917 00591000
  624. LA R8,ERRTRANS P0917 00592000
  625. BZ ERR115S ERR IF NO TRANS. FEAT. P0917 00593000
  626. TESTOC EQU * P0917 00594000
  627. TM MODESETB,TRTCHOC DATA CONVERSION WANTED? P0917 00595000
  628. BNO STORMODE NO, WE'RE SAFE P0917 00596000
  629. TM FDIAG+3,FTRDCONV YES, CHEK FEATURE P0917 00597000
  630. LA R8,ERRDCONV P0917 00598000
  631. BZ ERR115S P0917 00599000
  632. B STORMODE WE'RE SAFE P0917 00600000
  633. SPACE 1 00601000
  634. TEST9TRK EQU * P0917 00602000
  635. TM FLAGS,DENSITY DENSITY SPECIFIED? P0917 00603000
  636. BZ STORMODE IF NOT, NO SENSE CHEKING P0917 00604000
  637. TM MODESETB,D6250 6250 BPI ? @V200414 00605000
  638. BO TEST6250 YES..CHECK FOR FEATURE @V200414 00606000
  639. TM FDIAG+1,TYP3420 3420 TAPE DRIVE? @VA02112 00607000
  640. BO TEST3420 YES, DO SPECIFIC CHECKS @VA02112 00608000
  641. TM FDIAG+1,TYP2420 2420 TAPE DRIVE? @VA02112 00609000
  642. BO TEST2420 YES, DO SPECIFIC CHECKS @VA02112 00610000
  643. TESTMOD TM MODESETB,D8009TRK IS IT 800 BPI, 9 TRACK? @VA02112 00611000
  644. BNO TESTMOD2 NO, CHECK FOR HIGHER MODELS @VA02112 00612000
  645. CLM R7,B'0010',MODEL3 MODEL 3 OR LESS? @VA02112 00613000
  646. BNH STORMODE YES, OKAY @VA02112 00614000
  647. B TESTDDEN DO MORE CHECKS @VA02112 00615000
  648. TESTMOD2 TM FDIAG+1,TYP2401 2401 TAPE DRIVE? @VA02112 00616000
  649. BNO TESTMOD3 NO, CONTINUE CHECKING @VA02112 00617000
  650. CLM R7,B'0010',MODEL8 IS IT MODEL 8? @VA02112 00618000
  651. BL TESTMOD3 NO, CONTINUE CHECKING @VA02112 00619000
  652. LA R8,ERR9TRK ERROR, 9 TRACK NOT SUPPORTED @VA02112 00620000
  653. B ERR115S PRINT ERROR MESSAGE @VA02112 00621000
  654. TESTMOD3 CLM R7,B'0010',MODEL3 HIGHER THAN MODEL 3? @VA02112 00622000
  655. BH STORMODE YES, OKAY @VA02112 00623000
  656. TESTDDEN TM FDIAG+3,FTRDLDNS DUAL DENSITY? @VA02112 00624000
  657. LA R8,ERRDLDNS GET ERROR MSG ADDR. IN CASE @VA02112 00625000
  658. BZ ERR115S NO, ERROR @VA02112 00626000
  659. B STORMODE OTHERWISE, OKAY @VA02112 00627000
  660. TEST2420 EQU * @VA02112 00628000
  661. TM MODESETB,D8009TRK 800 BPI, 9 TRACK? @VA02112 00629000
  662. LA R8,ERR800BP GET ADDRESS JUST IN CASE @VA02112 00630000
  663. BO ERR115S YEP, IT'S AN ERROR @VA02112 00631000
  664. CLM R7,B'0010',MODEL5 MODEL 5? @VA02112 00632000
  665. BE STORMODE YES, OKAY @VA02112 00633000
  666. CLM R7,B'0010',MODEL7 MODEL 7? @VA02112 00634000
  667. BE STORMODE YES, OKAY @VA02112 00635000
  668. LA R8,ERRDLDNS GET ADDRESS @VA02112 00636000
  669. B ERR115S PRINT ERROR MESSAGE @VA02112 00637000
  670. TEST3420 CLM R7,B'0010',MODEL3 MODEL 3 OR LESS? @VA02112 00638000
  671. BNH TST34208 GO CHECK 800 BPI @VA04963 00639000
  672. CLM R7,B'0010',MODEL5 MODEL 5? @VA02112 00640000
  673. BE TST34208 GO CHECK 800 BPI @VA04963 00641000
  674. CLM R7,B'0010',MODEL7 MODEL 7? @VA02112 00642000
  675. BE TST34208 GO CHECK 800 BPI @VA04963 00643000
  676. TM MODESETB,D8009TRK 800 BPI? @VA02112 00644000
  677. LA R8,ERR800BP GET ADDRESS @VA02112 00645000
  678. BO ERR115S YES, ERROR 800 BPI NOT SUPPORTED @VA02112 00646000
  679. LA R8,ERR16BP GET ERROR ADDRESS @VA04963 00647000
  680. TM FDIAG+3,FTRDLDNS DUAL DENSITY FEATURE? @VA04963 00648000
  681. BZ ERR115S 1600 NOT SUPPORTED FOR 4,6,8 @VA04963 00649000
  682. B STORMODE OTHERWISE, OK @VA04963 00650000
  683. TST34208 EQU * @VA04963 00651000
  684. TM MODESETB,D8009TRK IS THIS 800 BPI ? @VA05789 00652000
  685. BNO STORMODE BRANCH IF NOT @VA04963 00653000
  686. LA R8,ERR800BP GET ERROR ADDRESS @VA04963 00654000
  687. TM FDIAG+3,FTRDLDNS DUAL DENSITY FEATURE? @VA04963 00655000
  688. BZ ERR115S 800 BPI NOT SUPPORTED @VA04963 00656000
  689. B STORMODE OTHERWISE, OK @VA04963 00657000
  690. TEST6250 TM FDIAG+1,TYP3420 3420 TAPE DRIVE? @VA02112 00658000
  691. BZ HIERR NO, ERROR @VA02112 00659000
  692. CLM R7,B'0010',MODEL3 MODEL 3 OR LESS? @VA02112 00660000
  693. BNH HIERR YES, ERROR @VA02112 00661000
  694. CLM R7,B'0010',MODEL5 MODEL 5? @VA02112 00662000
  695. BE HIERR YES, ERROR @VA02112 00663000
  696. CLM R7,B'0010',MODEL7 MODEL 7? @VA02112 00664000
  697. BNE STORMODE NO, THIS IS OKAY @VA02112 00665000
  698. HIERR LA R8,ERRHIDEN YES..ERROR @V200414 00666000
  699. B ERR115S SAY SO.. @V200414 00667000
  700. STORMODE EQU * P0917 00668000
  701. LR R5,R10 RESTORE DEVICE TABLE POINTER @VA03003 00669000
  702. MVC DEVMISC(1),MODESETB SET MODESET IN DEVTAB @V305066 00670000
  703. TAPE303 EQU * 00671000
  704. DMSFREE DWORDS=202 @VA03003 00672000
  705. STM R0,R1,FREESTOR SAVE FREE STOR INFO FOR FRET @VA03003 00673000
  706. LR R10,R1 PERMANENT ADDRESSABLIITY @VA03003 00674000
  707. SPACE 1 00675000
  708. SR R7,R7 NOW CLEAR THE FREE STOR @VA03003 00676000
  709. SLL R0,3 OBTAINED, USING MVCL @VA03003 00677000
  710. LR R1,R0 .... @VA03003 00678000
  711. L R0,FREESTOR+4 .... @VA03003 00679000
  712. MVCL R0,R6 .... @VA03003 00680000
  713. SPACE 1 00681000
  714. ************************************************************** 00682000
  715. * INITIALIZE PLISTS AND ADDRESS REFERENCES 00683000
  716. * TO FREE STORAGE AREA AND ALSO TAPE HEADER 00684000
  717. ************************************************************** 00685000
  718. MVC CARDOUT(4),HEADER @VA03003 00686000
  719. LA R7,CARDOUT @VA03003 00687000
  720. STCM R7,B'0111',AIOBUFF @VA03003 00688000
  721. STCM R7,B'0111',ACARDOUT @VA03003 00689000
  722. LA R7,DATAIN @VA03003 00690000
  723. ST R7,WRBUFF @VA03003 00691000
  724. LA R7,DATAOUT @VA03003 00692000
  725. ST R7,INBUFF @VA03003 00693000
  726. LA R7,CARDIN @VA03003 00694000
  727. STCM R7,B'0111',ACARDIN @VA03003 00695000
  728. SPACE 1 00696000
  729. BR R9 BRANCH TO FUNCTION SPECIFIED @VA03003 00697000
  730. EJECTRTN EQU * @VA00983 00698000
  731. L R1,POUTPUT A(OUTPUT MESSAGE PLIST) @VA00983 00699000
  732. CL R1,=A(OUTPRINT) IS OUTPUT GOING TO PRINTER? @VA00983 00700000
  733. BNE EXECSVC1 NO, REGULAR PROCESSING @VA00983 00701000
  734. LH R2,LINECT YES @VA03003 00702000
  735. BCT R2,EXECSVC2 IS IT TIME TO EJECT ? @VA03003 00703000
  736. MVI CARCTL,X'8B' YES, EJECT @VA00983 00704000
  737. LA R2,55 SET-UP COUNTER TO ALLOW @VA03003 00705000
  738. * 55 MORE LINES BEFORE NEXT EJECT 00706000
  739. SVC 202 GO DO EJECT @VA00983 00707000
  740. DC AL4(*+4) NO-OP ERROR RETURN @VA00983 00708000
  741. MVI CARCTL,X'09' SPACE CONTROL IS NOW AT THE @VA00983 00709000
  742. * BEGINNING OF EACH OUTPUT LINE 00710000
  743. EXECSVC2 STH R2,LINECT STORE LINE COUNTER @VM03203 00711000
  744. SVC 202 OUTPUT THE MESSAGE @VM03203 00712000
  745. DC AL4(PRTERR) PRINT ERROR RETURN @VM03203 00713000
  746. BR R14 RETURN TO CALLER @VM03203 00714000
  747. PRTERR CH R15,=H'2' CHANNEL 12 SENSED ? @VM03203 00715000
  748. BE CLR NOT A GREAT PROBLEM @VM03203 00716000
  749. CH R15,=H'3' CHANNEL 9 SENSED ? @VM03203 00717000
  750. BCR 7,R14 RETURN THIS ERROR TO CALLER @VM03203 00718000
  751. CLR SR R15,R15 IGNORE CHAN 9 OR 12 @VM03203 00719000
  752. BR R14 RETURN TO CALLER @VM03203 00720000
  753. EXECSVC1 SVC 202 OUTPUT THE MESSAGE @VM03203 00721000
  754. DC AL4(*+4) NO-OP ERROR RETURN @VA00983 00722000
  755. BR R14 RETURN @VA00983 00723000
  756. EJECT 00724000
  757. * 00725000
  758. * TAPE DUMP 00726000
  759. * 00727000
  760. TPDUMP EQU * 00728000
  761. USING FSTSECT,R1 FILE STATUS BLOCK 00729000
  762. L R5,SAVER1 A(BEGINNING OF OPTIONS LIST OR FENCE) 00730000
  763. SR R5,R3 MINUS A(BEGINNING OF PLIST) 00731000
  764. CH R5,=H'16' ANY FILEID SPECIFIED ? 00732000
  765. BE ERROR042 NO, AN ERROR 00733000
  766. CH R5,=H'32' SEE IF BOTH FILENAME AND FILETYPE THERE 00734000
  767. BL ERROR023 NO, INVALID PARAMETER LIST 00735000
  768. CH R5,=H'40' MORE THAN FN,FT,FM SUPPLIED ? 00736000
  769. BNH S17 YES, IGNORE THE REST 00737000
  770. LA R3,40(,R3) POINT TO UNEXPECTED PARAMETER 00738000
  771. B ERROR070 OUTPUT THE ERROR MESSAGE 00739000
  772. S17 EQU * 00740000
  773. SH R5,=H'17' SUBTRACT 17 BYTES FOR MVC 00741000
  774. * 00742000
  775. * PREPARE PARAMETER LISTS FOR TAPEIO, FSTLKP AND RDBUF 00743000
  776. * 00744000
  777. EX R5,MVCFILID MOVE FILID FOR FSTLKP PLIST 00745000
  778. MVC STATFN(16),SAVEFN HAVE STATE CHECK FN AND FT @VA14821 00745500
  779. MVC STATFM(8),SAVEFM P0953 00746000
  780. LA R1,STATLST CHECK FILEMODE P0953 00747000
  781. SSM TPEDIS DISABLE INTERRUPTS @VA06258 00748000
  782. L R15,ASTATE STATE @V305066 00749000
  783. BALR R14,R15 ... @V305066 00750000
  784. SSM TPEENA ENABLE INTERRUPTS @VA06258 00751000
  785. LTR R15,R15 P0953 00752000
  786. BZ FMOK1 P0953 00753000
  787. CH R15,=H'36' DISK NOT ACCESSED @VA14196 00753500
  788. BE ERROR069 YES, ISSUE ERROR MSG @VA14196 00753550
  789. CH R15,=H'28' IGNORE 'NOT FOUND' ERR P0953 00754000
  790. BNE ERRET30 MODE ERROR P0953 00755000
  791. FMOK1 EQU * P0953 00756000
  792. SR R0,R0 INDICATE FIRST TIME ACCESS OF FSTLKP 00757000
  793. MVC AIOBUFF,ACARDOUT WRITE CARDS FROM HERE 00758000
  794. TM OPTBYTE,NOPRINT+NOTERM+NODISK OUTPUT MSG ? 00759000
  795. BO TPDUMP10 USER REQUESTED NOMSG 00760000
  796. MVC MESSAGE+1(L'DUMPING),DUMPING INDICATE DUMPING BEGINS 00761000
  797. BAL R14,EJECTRTN OUTPUT MESSAGES @VA00983 00762000
  798. LTR R15,R15 AN ERROR? @VA00983 00763000
  799. BNZ ERROR1 YES, OUTPUT ERROR MESSAGE @VA00983 00764000
  800. MVC MESSAGE+1(L'MESSAGE-1),MESSAGE BLANK OUT MSG LINE 00765000
  801. MVC LMSG,=H'21' INSERT THE LENGTH OF THE MESSAGE 00766000
  802. TPDUMP10 EQU * 00767000
  803. MVC CONTROL,WRITE TAPEIO FUNCTION = 'WRITE' 00768000
  804. MVC INCOMM,RDBUF FUNCTION NAME = 'RDBUF' 00769000
  805. L R1,AFSTPLST A(FSTLKP PARAMETER LIST) 00770000
  806. L R15,VCFSTLKP GET A(FSTLKP) @VM03093 00771000
  807. BALR R14,R15 GO GET FST FOR REQUESTED FILE 00772000
  808. BNZ NOTFOUND FILE NOT FOUND 00773000
  809. LR R9,R0 GET THE A(ADT) 00774000
  810. USING ADTSECT,R9 ACCESS THE ACTIVE DISK TABLE 00775000
  811. OI AFSTPLST,X'80' INDICATE FSTLKP CALLED ONCE 00776000
  812. CLI SAVEFM+1,C' ' ALL FM TYPES WANTED? P0953 00777000
  813. BE DUMPIT YES, DUMP THIS FILE P0953 00778000
  814. CLC FSTM+1(1),SAVEFM+1 NO, CHEK MODE TYPE MATCH P0953 00779000
  815. BNE ERROR002 NO MATCH, FILE NOT FOUND @VA03136 00780000
  816. DUMPIT EQU * P0953 00781000
  817. MVC SAVEMODE(1),FSTM+1 SAVE MODE NUMBER @VA01998 00782000
  818. ST R1,FSTSAVAD SAVE FST ENTRY ADDRESS @VA01998 00783000
  819. SR R0,R0 INDICATE SEARCH ALL @VA00859 00784000
  820. MVC FNACT(16),0(R1) FN FT FOR ACTLKP @VA00859 00785000
  821. MVC FMACT,ADTM CORRECT MODE LETTER @VA00859 00786000
  822. LA R1,CMDACT ADDRESS FOR ACTLKP @VA00859 00787000
  823. LA R13,SAVE10R NEED TO SAVE 10 REGS @VA00859 00788000
  824. L R15,AACTLKP ACTIVE FILE TABLE LOOKUP @VA00859 00789000
  825. BALR 14,15 FIND IF FILE IS ACTIVE @VA00859 00790000
  826. L R13,AFVS RESTORE FVS ADDRESS @VA01242 00791000
  827. BNZ NOTACTV IT IS NOT - NO PROBLEM @VA00859 00792000
  828. LA R1,AFTFST-AFTSECT(R1) GET FST COPY ADDRESS @VA00859 00793000
  829. MVC SAVERPTR,FSTRP SAVE RD PTR FOR LATER OPEN @VA00859 00794000
  830. OI ACTFLAG,RESET REMEMBER TO RE-OPEN @VA00859 00795000
  831. LA R1,CMDACT GET COMMAND LIST @VA00859 00796000
  832. MVC CMDACT,FINIS SET FOR FINIS @VA00859 00797000
  833. SSM TPEDIS DISABLE INTERRUPTS @VA06258 00798000
  834. L R15,AFINIS FINIS @V305066 00799000
  835. BALR R14,R15 ... @V305066 00800000
  836. SSM TPEENA ENABLE INTERRUPTS @VA06258 00801000
  837. SPACE 00802000
  838. NOTACTV L R1,FSTSAVAD RESET LIKE THE OTHERS @VA01998 00803000
  839. MVC FSTSAVE,FSTWP SAVE PART OF FST 00804000
  840. OI UFDBUSY,WRBIT PREVENT 'KX' WHILE FST-ENTRY IS FUDGED JS 00805000
  841. MVC FSTSAVE+20(4),FSTD SAVE DATE LAST UPDATED, TOO 00806000
  842. CLI FSTFV,C'F' IS THIS FIXED FORMAT @VA03003 00807000
  843. BNE SETUP NO, SETUP @VA01751 00808000
  844. L R3,FSTIL ITEM LENGTH @VA01751 00809000
  845. LH R2,FSTIC EVEN REG IMMATERIAL FOR MULT. SO @VA01751 00810000
  846. N R2,=XL4'0000FFFF' USE IT FOR FULL WORD MULT @VA01751 00811000
  847. MR R2,R2 AVOID LARGE IC CONFUSION @VA01751 00812000
  848. AH R3,CONSTANT ADD 799, THIS WILL ADD A BLOCK @VA03003 00813000
  849. * FOR REMAINDER 00814000
  850. SR R2,R2 ZERO OUT FOR DIVIDE @VA01751 00815000
  851. D R2,EIGHTHD DIVIDE BY 800 TO DETERMINE REAL @VA01751 00816000
  852. * DATA COUNT, COUNTING NULL BLOCKS 00817000
  853. STH R3,FSTDBC REAL DATA BLOCK COUNT CALCULATED @VA01751 00818000
  854. SETUP MVI FSTFV,C'F' SET F/V FLAG TO FIXED @VA03003 00819000
  855. MVC FSTIL,=F'800' SET ITEM LENGTH TO 800 00820000
  856. MVC FSTIC,FSTDBC NO. ITEMS = NO. QTRK 00821000
  857. MVC INMODE,ADTM PROPER MODE LETTER FOR READ 00822000
  858. MVC INMODE+1(1),FSTM+1 AND MODE NUMBER FROM FST 00823000
  859. MVC INNAME(16),FSTN MOVE FILENAME AND FILETYPE 00824000
  860. TM OPTBYTE,NOPRINT+NOTERM+NODISK ANY RECORD OF DUMP WANTED? 00825000
  861. BO LOOP NO, JUST DUMP 00826000
  862. MVC MESSAGE+1(8),INNAME MOVE FILENAME TO MSG 00827000
  863. MVC MESSAGE+10(8),INTYPE MOVE FILETYPE TO MSG 00828000
  864. MVC MESSAGE+19(2),INMODE MOVE FILEMODE TO MSG 00829000
  865. BAL R14,EJECTRTN OUTPUT MESSAGES @VA00983 00830000
  866. LTR R15,R15 AN ERROR? @VA00983 00831000
  867. BNZ ERR1 YES, OUTPUT ERROR MESSAGE @VA00983 00832000
  868. LOOP EQU * 00833000
  869. L R1,FSTSAVAD RESTORE FST POINTER @VA04989 00834000
  870. LA R2,1 USE FOR DECR BLOK COUNT @VA04989 00835000
  871. LH R3,FSTDBC GET NO. PHYS BLOKS @VA04989 00836000
  872. LOOPEY EQU * ACTUAL READ/WRITE LOOP @VA04989 00837000
  873. LA R1,INFILE SET LOCATION OF PARAMETER LIST 00838000
  874. SVC 202 ISSUE CMS CALL 00839000
  875. DC AL4(EOFCHK) ERROR RETURN 00840000
  876. MVI FLAGOUT,BLANK RESET FLAG FIELD @VA04989 00841000
  877. CLI INFLAG,BZERO NULL BLOK READ? @VA04989 00842000
  878. BNE WRTAPE IF NOT, CONTINUE AS USUAL @VA04989 00843000
  879. MVI FLAGOUT,CZERO SET NULL BLOK FLAG @VA04989 00844000
  880. SR R3,R2 SUB 1 FOR NULL BLOK @VA04989 00845000
  881. WRTAPE EQU * @VA04989 00846000
  882. LA R1,PTAPEIO SET LOCATION OF PARAMETER LIST 00847000
  883. SVC 202 ISSUE CALL TO TAPEIO 00848000
  884. DC AL4(ERR111) V0155 00849000
  885. B LOOPEY CONTINUE... @VA04989 00850000
  886. * 00851000
  887. * 00852000
  888. EOFCHK C 15,=F'12' IS IT EOF 00853000
  889. BNE ERR104 V0155 00854000
  890. MVC DATAOUT(L'FSTSAVE),FSTSAVE GET FST INFO 00855000
  891. STH R3,DATAOUT+16 RECORD NON-NULL BLOK COUNT @VA04989 00856000
  892. MVI DATAOUT-1,C'N' INDICATE END RECORD 00857000
  893. MVC DATAOUT+L'FSTSAVE(18),INNAME P0735 00858000
  894. LA R1,PTAPEIO A(TAPEIO PLIST) 00859000
  895. SVC 202 ISSUE CALL TO TAPEIO 00860000
  896. DC AL4(ERR111) V0155 00861000
  897. LA R8,DUMPOK NORMAL COMPLETION V0155 00862000
  898. FINE EQU * CLOSE OUT THE FILE TR 00863000
  899. LA R1,INFILE SET A(PARAMETER LIST FOR FINIS) 00864000
  900. MVC INCOMM,FINIS FUNCTION NAME = 'FINIS' 00865000
  901. SSM TPEDIS DISABLE INTERRUPTS @VA06258 00866000
  902. L R15,AFINIS FINIS @V305066 00867000
  903. BALR R14,R15 ... @V305066 00868000
  904. SSM TPEENA ENABLE INTERRUPTS @VA06258 00869000
  905. LR R0,R9 RESTORE ADT REG @VA01998 00870000
  906. CLI SAVEMODE,C'3' MODE THREE FILES WILL BE GO@VA01998 00871000
  907. BE BRR8 SO SKIP RESTORE @VA01998 00872000
  908. L R1,FSTSAVAD ADDRESS THE ENTRY @VA01998 00873000
  909. MVC FSTWP(20),FSTSAVE RESTORE 2ND HALF OF 40 BYTE ENTRY, 00874000
  910. TM ACTFLAG,RESET RE-OPEN THE FILE ? @VA00859 00875000
  911. BZ BRR8 NOPE, ALL SET @VA00859 00876000
  912. NI ACTFLAG,255-RESET CLEAN UP INDICATOR @VA00859 00877000
  913. MVC CMDACT,POINT RESET READ POINTER @VA00859 00878000
  914. MVC ITNOACT,SAVERPTR SET ITEM AS IT WAS @VA00859 00879000
  915. LA R1,CMDACT SET ACTIVE FILE AS IT WAS @VA00859 00880000
  916. SVC 202 MAKE IT ALL BETTER @VA00859 00881000
  917. DC AL4(*+4) @VA00859 00882000
  918. BRR8 KXCHK WRBIT CHECK FOR 'KX' DESIRED; IF NOT, JS 00883000
  919. L R15,SAVER1+4 RESTORE RETURN CODE (IF ERR) V0155 00884000
  920. L R1,SAVER1 AND PLIST ADDRESS V0155 00885000
  921. BCR 15,R8 EITHER NORMAL OR ERR RETURN V0155 00886000
  922. * 00887000
  923. ERR1 LA R8,ERROR1 ERROR RETURN V0155 00888000
  924. B SAVERR BUT FIRST RESTORE FST ENTRY V0155 00889000
  925. ERR111 LA R8,ERROR111 V0155 00890000
  926. B SAVERR V0155 00891000
  927. ERR104 LA R8,ERROR104 V0155 00892000
  928. ST R1,SAVER1 SAVE PLIST FOR ERR MSG V0155 00893000
  929. SAVERR ST R15,SAVER1+4 SAVE ERR RETCODE FOR LATER V0155 00894000
  930. B FINE NOW RESTORE THE FUDGED FST V0155 00895000
  931. * 00896000
  932. * WRITE TWO TAPE-MARKS, AND THEN BACKSPACE OVER THEM ... 00897000
  933. * 00898000
  934. DUMPOK EQU * V0155 00899000
  935. MVC CONTROL,WTM TAPEIO FUNCTION = 'WTM' 00900000
  936. LA R1,PTAPEIO 00901000
  937. SVC 202 LL 00902000
  938. DC AL4(ERROR111) ERROR 2 IF ERROR WRITING EOF MARK. JS 00903000
  939. SVC 202 00904000
  940. DC AL4(ERROR111) 00905000
  941. MVC CONTROL,BSF TAPEIO FUNCTION = 'BSF' 00906000
  942. SVC 202 00907000
  943. DC AL4(ERROR111) ERROR RETURN 00908000
  944. TM OPTBYTE,NOWTM WTM REQUESTED 00909000
  945. BNO WTM2 YES, ONLY BSF ONE FILE MARK 00910000
  946. SVC 202 00911000
  947. DC AL4(ERROR111) ERROR RETURN 00912000
  948. WTM2 EQU * 00913000
  949. CLC =C'* ',SAVEFN ASTERISK IN PLACE OF FILENAME 00914000
  950. BE TPDUMP10 YES, SEE IF ANY MORE FILES TO BE DUMPED 00915000
  951. CLC =C'* ',SAVEFT ASTERISK IN PLACE OF FILETYPE 00916000
  952. BE TPDUMP10 YES, SEE IF ANY MORE FILES TO BE DUMPED 00917000
  953. CLC =C'* ',SAVEFM ASTERISK IN PLACE OF FILEMODE 00918000
  954. BNE RETURN RETURN TO CALLER, ALL DONE 00919000
  955. B TPDUMP10 CONTINUE DUMPING 00920000
  956. * 00921000
  957. NOTFOUND EQU * 00922000
  958. TM AFSTPLST,X'80' HAS FSTLKP BEEN CALLED SUCCESSFULLY ONCE? 00923000
  959. BNO ERROR002 NO, FILE NOT FOUND ERROR 00924000
  960. B RETURN RETURN TO CALLER, ALL DONE 00925000
  961. DROP R9 00926000
  962. EJECT 00927000
  963. ********************************************************************** 00928000
  964. * 00929000
  965. * TAPE SCAN, SKIP, LOAD 00930000
  966. * 00931000
  967. ********************************************************************** 00932000
  968. TPSCAN EQU * 00933000
  969. MVC MESSAGE+1(L'SCANNING),SCANNING INDICATE SCANNING 00934000
  970. B CHCKFILE CHECK FOR FILE ID 00935000
  971. TPLOAD EQU * 00936000
  972. MVC MESSAGE+1(L'LOADING),LOADING INDICATE LOADING 00937000
  973. B CHCKFILE CHECK FOR FILE ID 00938000
  974. TPSKIP EQU * SKIP A FEW FILES 00939000
  975. MVC MESSAGE+1(L'SKIPPING),SKIPPING INDICATE SKIPPING 00940000
  976. CHCKFILE EQU * 00941000
  977. L R5,SAVER1 A(BEGINNING OF OPTIONS LIST OR FENCE) 00942000
  978. SR R5,R3 MINUS A(BEGINNING OF PLIST) 00943000
  979. CH R5,=H'32' SEE IF BOTH FILENAME AND FILETYPE THERE 00944000
  980. BNL CHKFT SEE IF MORE THAN FILETYPE SUPPLIED 00945000
  981. CH R5,=H'24' WAS ONLY FILENAME SPECIFIED ? 00946000
  982. BL EOFNEOT NO, FN NOT SPECIFIED, ASSUME EOF|EOT 00947000
  983. B ERROR023 ONLY FILENAME SPECIFIED, NO FILETYPE 00948000
  984. CHKFT EQU * 00949000
  985. CH R5,=H'32' ONLY FN AND FT SPECIFIED ? @VA01201 00950000
  986. BE CHKFT10 YES, OKAY THEN @VA01201 00951000
  987. TM FLAGS,SKPSWT+SCNSWT SKIP OR SCAN 00952000
  988. BZ CHKFT10 NO, MUST BE LOADING @VA01201 00953000
  989. LA R3,32(,R3) POINT TO INVALID PARAMETER 00954000
  990. B ERROR070 TYPE OUT THE MESSAGE 00955000
  991. CHKFT10 EQU * 00956000
  992. CH R5,=H'40' MORE THAN FN,FT,FM SUPPLIED 00957000
  993. BNH S17A YNO, MOVE THE FILEID 00958000
  994. LA R3,40(,R3) POINT TO THE UNKNOWN PARAMETER 00959000
  995. B ERROR070 TYPE OUT AN ERROR MESSAGE 00960000
  996. S17A EQU * 00961000
  997. CH R5,=H'32' FILEMODE GIVEN? V0037 00962000
  998. BE PREPSTAT IF NOT, SKIP OVER V0037 00963000
  999. LA R7,32(,R3) POINT TO THE MODE LETTER 00964000
  1000. CLI 0(R7),C'*' WAS AN '*' SPECIFIED ? 00965000
  1001. BE ERROR048 YES, OUTPUT AN ERROR MESSAGE 00966000
  1002. MVC STATFM(8),0(R7) USER MODE FOR STATE V0037 00967000
  1003. PREPSTAT EQU * V0037 00968000
  1004. SH R5,=H'17' SUBTRACT 17 BYTES FOR MVC FILEID 00969000
  1005. EX R5,MVCFILID MOVE FILEID FOR FUTURE REFERENCE 00970000
  1006. TM FLAGS,LOADSWT LOADING? @VA02759 00971000
  1007. BO STFILE YES, DO STATE @VA02759 00972000
  1008. TM OPTBYTE,NODISK OUTPUT TO DISK? @VA02759 00973000
  1009. BO FMOK2 NO, DON'T DO STATE @VA02759 00974000
  1010. STFILE LA R1,STATLST CHECK FILEMODE @VA02759 00975000
  1011. MVC STATFN(16),SAVEFN HAVE STATE CHECK FN AND FT @VA14821 00975500
  1012. SSM TPEDIS DISABLE INTERRUPTS @VA06258 00976000
  1013. L R15,ASTATE STATE @V305066 00977000
  1014. BALR R14,R15 ... @V305066 00978000
  1015. SSM TPEENA ENABLE INTERRUPTS @VA06258 00979000
  1016. LTR R15,R15 P0953 00980000
  1017. BZ FMOK2 P0953 00981000
  1018. CH R15,=H'36' DISK NOT ACCESSED @VA14196 00981500
  1019. BE ERROR069 YES, ISSUE ERROR MSG @VA14196 00981550
  1020. CH R15,=H'28' IGNORE 'NOT FOUND' ERR P0953 00982000
  1021. BNE ERRET30 MODE ERROR P0953 00983000
  1022. FMOK2 EQU * P0953 00984000
  1023. CLC 16(10,R3),=C'* * ' FN, FT = * 00985000
  1024. BE EOFNEOT PRINT ALL FILEIDS 00986000
  1025. OI TPEFLG,PRTMATCH MATCH FOR PRINTING 00987000
  1026. EOFNEOT EQU * 00988000
  1027. TM OPTBYTE,NOPRINT+NOTERM+NODISK USER WANT ANY OUTPUT ? 00989000
  1028. BO TPINIT NO INITIALIZE FOR SCAN|LOAD OPERATION 00990000
  1029. BAL R14,EJECTRTN OUTPUT MESSAGES @VA00983 00991000
  1030. LTR R15,R15 AN ERROR? @VA00983 00992000
  1031. BNZ ERROR1 YES, OUTPUT ERROR MESSAGE @VA00983 00993000
  1032. MVC MESSAGE+1(L'MESSAGE-1),MESSAGE BLANK OUT MSG LINE 00994000
  1033. MVC LMSG,=H'21' INSERT LENGTH OF FILEID + 1 00995000
  1034. TPINIT EQU * 00996000
  1035. MVC CONTROL,READ TAPEIO FUNCTION = 'READ' 00997000
  1036. MVC AIOBUFF,ACARDIN A(INPUT BUFFER) 00998000
  1037. XR R7,R7 NUMBER EOF'S HIT = 0 00999000
  1038. TPSRSET EQU * RESET FOR READING ANOTHER FILE 01000000
  1039. TM FLAGS,MATCH FIRST, SEE IF HAD AN EXACT FILEID MATCH ? 01001000
  1040. BO RETURN YES, ALL DONE 01002000
  1041. XR R6,R6 ZERO THE NUMBER OF RECORDS READ 01003000
  1042. TPSLOOP EQU * 01004000
  1043. TM FLAGS,LOADSWT LOADING? P0735 01005000
  1044. BO LOADWR YES P0735 01006000
  1045. LA R1,PTAPEIO A(LOCATION OF PARAMETER LIST 01007000
  1046. SVC 202 ISSUE CALL TO TAPEIO 01008000
  1047. DC AL4(TAPEOF) ERROR RETURN 01009000
  1048. NI TPEFLG,255-EOTF JUST ONE TAPE MARK P0735 01010000
  1049. LA R6,1(,R6) UPDATE NUMBER OF RECORDS READ 01011000
  1050. CLC IOBUFF(4),BYTESRD SHOULD READ 805 BYTES @VA02415 01012000
  1051. BNE ERROR057 INVALID FORMAT IF NOT @VA02415 01013000
  1052. CLC CARDIN(4),HEADER IS THIS PROPER FORMAT @VA03003 01014000
  1053. BE FORMOK1 YES-CONTINUE @VA08107 01015000
  1054. TM MODESETB,TRTCHET TRANSLATION IN EFFECT @VA08107 01015100
  1055. BNO ERROR057 NO-INVALID FORMAT @VA08107 01015200
  1056. CLC CARDIN(4),HEADERTR IS FORMAT OK @VA08107 01015300
  1057. BNE ERROR057 NO-INVALID FORMAT @VA08107 01015400
  1058. FORMOK1 EQU * @VA08107 01015500
  1059. CLI CARDIN+4,C'N' IS THIS THE END RECORD JR 01016000
  1060. BNE TPSLOOP BR ON NO TO TRY AGAIN JR 01017000
  1061. LOADMACH EQU * CHECK ID MATCH P0735 01018000
  1062. NI TPEFLG,255-LOADPROC NO LONGER LOADING... P0735 01019000
  1063. CLI SAVEFN,C' ' ANY FILE ID SUPPLIED ? 01020000
  1064. BE OUTPUT NO, OUTPUT FILE ID MESSAGE 01021000
  1065. CLC =C'* ',SAVEFN DOES FILENAME MATTER ? 01022000
  1066. BE CHKTYPE NO, SEE IF FILETYPE MATTERS 01023000
  1067. CLC SAVEFN,DATAIN+L'FSTSAVE SEE CURRENT FNAME MATCHES USERS 01024000
  1068. BNE CHKSCNSW 01025000
  1069. OI TPEFLG,MATCHFN MATCH ON FILENAME 01026000
  1070. B CHKTYPE SEE IF MATCH ON FILETYPE 01027000
  1071. CHKSCNSW EQU * 01028000
  1072. TM FLAGS,SCNSWT SCANNING? P0953 01029000
  1073. BO OUTPUT YES, OUTPUT FILE ID SCANNED P0953 01030000
  1074. MVC WRCOMM(8),FINIS FINIS THE DUMMY WORK FILE V0155 01031000
  1075. LA R1,WRFILE V0155 01032000
  1076. SSM TPEDIS DISABLE INTERRUPTS @VA06258 01033000
  1077. L R15,AFINIS FINIS @V305066 01034000
  1078. BALR R14,R15 ... @V305066 01035000
  1079. SSM TPEENA ENABLE INTERRUPTS @VA06258 01036000
  1080. B TPSRSET NO, CONTINUE SCAN FOR LOADING 01037000
  1081. CHKTYPE EQU * SEE IF FILETYPE MATCHES USER'S 01038000
  1082. CLC =C'* ',SAVEFT DOES FILETYPE MATTER 01039000
  1083. BE CHKMODE NO, CHEK FILEMODE TYPE P0953 01040000
  1084. CLC SAVEFT,DATAIN+L'FSTSAVE+8 CHECK FILETYPE 01041000
  1085. BNE CHKSCNSW DOESN'T MATCH, SEE IF SCANNING OR LOADING 01042000
  1086. OI TPEFLG,MATCHFT MATCH ON FILETYPE 01043000
  1087. CHKMODE EQU * P0953 01044000
  1088. CLI SAVEFM+1,C' ' ALL MODE TYPES WANTED? P0953 01045000
  1089. BE MATCHALL YES, LOAD THIS FILE P0953 01046000
  1090. CLC SAVEFM+1(1),DATAIN+5 MATCH ON FILEMODE TYPE P0953 01047000
  1091. BNE CHKSCNSW NO,DON'T LOAD THIS ONE V0155 01048000
  1092. OI TPEFLG,MATCHFM YES, LOAD IT P0953 01049000
  1093. MATCHALL EQU * P0953 01050000
  1094. TM TPEFLG,MATCHFT MATCH ON FILETYPE? P0953 01051000
  1095. BZ OUTPUT NO, CONTINUE... P0953 01052000
  1096. TM TPEFLG,MATCHFN WAS THERE A MATCH ON FILENAME 01053000
  1097. BZ OUTPUT NO, NOT AN EXACT MATCH 01054000
  1098. OI FLAGS,MATCH YES, INDICATE EXACT MATCH 01055000
  1099. OUTPUT EQU * 01056000
  1100. CLC DATAIN+L'FSTSAVE(16),TEMPFILE+8 WORK FILE NAME? P0917 01057000
  1101. BNE NOWORK P0917 01058000
  1102. MVI DATAIN+L'FSTSAVE+13,C'2' MAKE IT 'CMSUT2' P0917 01059000
  1103. NOWORK EQU * P0917 01060000
  1104. OI FLAGS2,NOTBLANK TAPE IS NOT A BLANK. @VA11948 01060500
  1105. TM TPEFLG,MATCHFN+MATCHFT+MATCHFM ANY MATCH ? @VA11305 01061000
  1106. BZ PRTFILID NO MATCH, DON'T SET FLAG @VA11305 01061100
  1107. OI TPEFLG,INPUT NOTE THAT A FILE WAS FOUND @VA11305 01061200
  1108. PRTFILID EQU * @VA11305 01061300
  1109. TM OPTBYTE,NOPRINT+NOTERM+NODISK RECORD OF OPERATION REQ.? 01062000
  1110. BO CHECKSCN NO, SEE IF SCANNING 01063000
  1111. TM TPEFLG,PRTMATCH PRINT THE FILEID 01064000
  1112. BZ OUTPUT10 YES, UNDER ALL CIRCUMSTANCES 01065000
  1113. TM TPEFLG,MATCHFN+MATCHFT+MATCHFM ANY MATCH? P0953 01066000
  1114. BZ CHECKSCN NO, DON'T PRINT THE FILEID 01067000
  1115. NI TPEFLG,255-MATCHFN-MATCHFT-MATCHFM RESET P0953 01068000
  1116. OUTPUT10 EQU * OUTPUT THE FILEID 01069000
  1117. MVC MESSAGE+1(8),DATAIN+L'FSTSAVE MOVE FILENAME TO MSG 01070000
  1118. MVC MESSAGE+10(8),DATAIN+L'FSTSAVE+8 01071000
  1119. MVC MESSAGE+19(2),DATAIN+L'FSTSAVE+16 01072000
  1120. TM FLAGS,LOADSWT LOADING? P0735 01073000
  1121. BZ OUTSVC P0735 01074000
  1122. MVC MESSAGE+19(1),SAVEFM IF SO, NEW MODE P0953 01075000
  1123. OUTSVC EQU * P0735 01076000
  1124. BAL R14,EJECTRTN OUTPUT MESSAGES @VA00983 01077000
  1125. LTR R15,R15 AN ERROR? @VA00983 01078000
  1126. BNZ ERROR1 YES, OUTPUT ERROR MESSAGE @VA00983 01079000
  1127. CHECKSCN EQU * 01080000
  1128. TM FLAGS,SKPSWT SKIPPING ? 01081000
  1129. BO TPSRSET YES, CONTINUE SKIP 01082000
  1130. TM FLAGS,SCNSWT SCANNING ? 01083000
  1131. BNO AROUND NO, MUST BE LOADING 01084000
  1132. TM FLAGS,MATCH ENCOUNTERED EXACT MATCH ? 01085000
  1133. BNO TPSRSET NO, CONTINUE SCAN 01086000
  1134. AROUND EQU * BACKSPACE TO BEGINNING OF FILE 01087000
  1135. TM FLAGS,LOADSWT LOADING? P0735 01088000
  1136. BO TPEND YES, GOTTA MATCH, TOO P0735 01089000
  1137. MVC CONTROL,BSR BACKSPACE RECORD OPERATION 01090000
  1138. LA R1,PTAPEIO PARAMETER FOR TAPEIO 01091000
  1139. TPSBSR EQU * BACKSPACE RECORD 01092000
  1140. SVC 202 ISSUE CALL TO TAPEIO 01093000
  1141. DC AL4(ERROR110) ERROR RETURN 01094000
  1142. BCT R6,TPSBSR DO AS MANY AS RECORDS IN FILE 01095000
  1143. TM FLAGS,SCNSWT SCANNING ? 01096000
  1144. BO RETURN ALL DONE, RETURN TO CALLER 01097000
  1145. LOADWR EQU * P0735 01098000
  1146. MVC WRFILE(L'WRCOMM+L'WRNAME+L'WRTYPE+L'WRMODE),TEMPFILE 01099000
  1147. MVC WRMODE(1),SAVEFM ERASE TEMP FILE IF IT EXISTS P0953 01100000
  1148. MVI WRMODE+1,C'1' DUMMY MODE TYPE P0953 01101000
  1149. LA R1,WRFILE ERASE 'TAPE CMSUT1' 01102000
  1150. SSM TPEDIS DISABLE INTERRUPTS @VA06258 01103000
  1151. L R15,AERASE ... @V305066 01104000
  1152. BALR R14,R15 ... @V305066 01105000
  1153. SSM TPEENA ENABLE INTERRUPTS @VA06258 01106000
  1154. MVC CONTROL,READ TAPEIO FUNCTION = 'READ' 01107000
  1155. MVC WRCOMM,WRBUF FUNCTION NAME = 'WRBUF' 01108000
  1156. SR R8,R8 CLEAR BLOK COUNTER @VA04989 01109000
  1157. STH R8,WRITNO CLEAR PHYS BLOK COUNT @VA04989 01110000
  1158. TPLD1 EQU * CONTINUE READING TAPE 01111000
  1159. LA R1,PTAPEIO PARAMETER LIST FOR TAPEIO READ 01112000
  1160. SVC 202 ISSUE CALL TO TAPEIO 01113000
  1161. DC AL4(TAPEOF) ERROR RETURN 01114000
  1162. OI TPEFLG,LOADPROC LOADING IN PROGRESS P0735 01115000
  1163. CLC IOBUFF(4),BYTESRD SHOULD READ 805 BYTES @VA02415 01116000
  1164. BNE ERROR057 INVALID FORMAT IF NOT @VA02415 01117000
  1165. NI TPEFLG,255-EOTF JUST ONE TAPE MARK P0735 01118000
  1166. CLC CARDIN(4),HEADER PROPER FORMAT ? @VA03003 01119000
  1167. BE FORMOK2 YES-CONTINUE @VA08107 01120000
  1168. TM MODESETB,TRTCHET TRANSLATION IN EFFECT @VA08107 01120100
  1169. BNO ERROR057 NO-INVALID FORMAT @VA08107 01120200
  1170. CLC CARDIN(4),HEADERTR IS FORMAT OK @VA08107 01120300
  1171. BNE ERROR057 NO-INVALID FORMAT @VA08107 01120400
  1172. FORMOK2 EQU * @VA08107 01120500
  1173. CLI CARDIN+4,C'N' TEST FOR END RECORD 01121000
  1174. BE LOADMACH GO LOOK FOR ID MATCH P0735 01122000
  1175. LH R8,WRITNO GET PHYS BLOK NUMBER @VA04989 01123000
  1176. LA R8,1(,R8) BUMP BY 1 BLOKNUMBER @VA04989 01124000
  1177. STH R8,WRITNO AND STORE FOR NEXT WRITE @VA04989 01125000
  1178. CLI FLAGIN,CZERO NULL BLOK DUMPED? @VA04989 01126000
  1179. BE TPLD1 IF SO, IGNORE & READ NEXT @VA04989 01127000
  1180. LA R1,WRFILE PARAMETER LIST FOR WRBUF 01128000
  1181. L R15,AWRBUF WRBUF @V305066 01129000
  1182. SSM TPEDIS DISABLE INTERRUPTS @VA07792 01129500
  1183. BALR R14,R15 ... @V305066 01130000
  1184. SSM TPEENA ENABLE INTERRUPTS @VA07792 01130500
  1185. BNZ ERROR105 ERROR RETURN @V305066 01131000
  1186. B TPLD1 CONTINUE 01132000
  1187. * 01133000
  1188. * 01134000
  1189. TPEND EQU * 01135000
  1190. LA R1,WRFILE PARAMETER LIST FOR WRBUF 01136000
  1191. MVC WRCOMM,FINIS FUNCTION NAME = 'FINIS' 01137000
  1192. SSM TPEDIS DISABLE INTERRUPTS @VA06258 01138000
  1193. L R15,AFINIS ... @V305066 01139000
  1194. BALR R14,R15 ISSUE CALL TO FINIS IN @V305066 01140000
  1195. SSM TPEENA ENABLE INTERRUPTS @VA06258 01141000
  1196. BNZ MSG701 CASE OF NULL FILE @V305066 01142000
  1197. L R15,VCFSTLKW FIND UTILITY FILE @VA04519 01143000
  1198. BALR R14,R15 @VA04519 01144000
  1199. USING FSTSECT,R1 FILE STATUS TABLE @VA04519 01145000
  1200. CLC DATAIN+(FSTDBC-FSTWP)(2),FSTDBC BLK CNT OK ? @VA04519 01146000
  1201. BNE ERROR096 NO, ERROR 096E @VA04519 01147000
  1202. DROP R1 @VA04519 01148000
  1203. MVC ACTFN(16),DATAIN+L'FSTSAVE P0735 01149000
  1204. MVC ACTFM(1),SAVEFM REQUESTED DISK MODE P0953 01150000
  1205. MVC ACTFM+1(1),DATAIN+L'FSTSAVE+17 AND MODE TYPE P0953 01151000
  1206. LA R1,ACTERS R1 = A(ERASE ACTIVE FILE) 01152000
  1207. SSM TPEDIS DISABLE INTERRUPTS @VA06258 01153000
  1208. L R15,AERASE ERASE @V305066 01154000
  1209. BALR R14,R15 ISSUE CALL TO ERASE IN CASE FILE @V305066 01155000
  1210. L R15,VCFSTLKW CALL TO FIND WHERE THE FILE IS @VM03093 01156000
  1211. LA R1,WRFILE ADDRESS OF PARAMETER LIST 01157000
  1212. BALR 14,15 ... 01158000
  1213. USING FSTSECT,R1 FILE STATUS TABLE 01159000
  1214. MVC CHLINK,FSTFCL SAVE CHAIN LINK TEMPORARILY 01160000
  1215. MVC FSTWP(20),DATAIN RESET BOTTOM PART OF FST 01161000
  1216. MVC FSTD,DATAIN+20 RESET DATE LAST UPDATED, TOO 01162000
  1217. MVC FSTN(16),DATAIN+L'FSTSAVE RESET FN, FT P0735 01163000
  1218. MVC FSTFCL,CHLINK RESTORE CHAIN LINK ADDRESS 01164000
  1219. L R15,AUPDISK NOW UPDATE UFD AFTER TAPE LOAD JS 01165000
  1220. BALR R14,R15 (R0 & R1 OK FROM FSTLKP ABOVE) 01166000
  1221. LR R9,R0 GET A(ADT) 01167000
  1222. USING ADTSECT,R9 ACCESS VARIABLES IN THE ADT 01168000
  1223. LM R0,R1,FSTT REAL FILETYPE INTO R0-R1, 01169000
  1224. DROP R1 01170000
  1225. L R15,ATYPSRCH CHECK REAL FILETYPE 01171000
  1226. BALR R14,R15 VIA "TYPSRCH" 01172000
  1227. O R15,ADTFTYP-3 "OR" IN THE POSSIBLE BIT 01173000
  1228. ST R15,ADTFTYP-3 FOR THE REAL FILETYPE. 01174000
  1229. SSM TPEENA ENABLE INTERRUPTS @VA06258 01175000
  1230. B TPSRSET SEE IF ANY MORE FILES ARE TO BE LOADED 01176000
  1231. * 01177000
  1232. * WHEN HIT TAPE READING ERROR COME HERE 01178000
  1233. * 01179000
  1234. TAPEOF EQU * 01180000
  1235. CH R15,=H'8' IS IT INCORRECT LENGTH? @VA03457 01181000
  1236. BE ERROR110 YES, THEN SAY SO @VA03457 01182000
  1237. CH R15,=H'2' TEST FOR EOF 01183000
  1238. BNE ERROR110 IF NOT, SEE WHAT ELSE IT COULD BE 01184000
  1239. TM TPEFLG,LOADPROC LOADING IN PROGRESS? P0735 01185000
  1240. BO ERROR010 YES, PREMATURE END OF FILE 01186000
  1241. SPACE 2 01187000
  1242. TM OPTBYTE,NOTERM+NOPRINT+NODISK ANY OUTPUT MSG REQUESTED 01188000
  1243. BO CHKEOF NO 01189000
  1244. MVC LMSG,=AL2(L'EOFM+1) INSERT THE LENGTH OF THE MESSAGE 01190000
  1245. MVC MESSAGE+1(L'EOFM),EOFM INFORM USER OF END OF FILE 01191000
  1246. BAL R14,EJECTRTN OUTPUT MESSAGES @VA00983 01192000
  1247. LTR R15,R15 AN ERROR? @VA00983 01193000
  1248. BNZ ERROR1 YES, OUTPUT ERROR MESSAGE @VA00983 01194000
  1249. MVC MESSAGE+1(L'MESSAGE-1),MESSAGE BLANK OUT MSG LINE 01195000
  1250. MVC LMSG,=H'21' INSERT LENGTH OF FILEID+1 01196000
  1251. CHKEOF EQU * ANY MORE SCANNING REQUIRED 01197000
  1252. TM OPTBYTE,NOEOT EOT SPECIFIED ? 01198000
  1253. BNZ NOTEOT P0735 01199000
  1254. TM TPEFLG,EOTF SECOND SUCCESSIVE TAPE MARK? P0735 01200000
  1255. BO CHKINPUT YES, CHECK IF A FILE FOUND @VA01415 01201000
  1256. OI TPEFLG,EOTF FIRST TAPE MARK SIGNAL P0735 01202000
  1257. B TPSRSET P0735 01203000
  1258. NOTEOT EQU * P0735 01204000
  1259. LA R7,1(,R7) INCREMENT NUMBER OF TAPE MARKS HIT 01205000
  1260. C R7,EOFN SEE IF MATCHES NUMBER USER REQUESTED 01206000
  1261. BL TPSRSET NO, CONTINUE SCANNING OR LOADING 01207000
  1262. CHKINPUT EQU * @VA11948 01207500
  1263. TM FLAGS2,NOTBLANK IS TAPE A BLANK TAPE? @VA11948 01207600
  1264. BNO ERR2RC GIVE RETURN CODE. @VA11948 01207700
  1265. TM TPEFLG,INPUT ANYTHING LOADED? @VA11948 01207800
  1266. BO RETURN YES, RETURN TO CALLER @VA01415 01209000
  1267. TM TPEFLG,PRTMATCH FILEID SPECIFIED ? @VA01415 01210000
  1268. BO ERROR002 YES, TELL USER @VA01415 01211000
  1269. TM FLAGS,SCNSWT+LOADSWT+SKPSWT WITH NO FILEID @VA13090 01211100
  1270. BM RETURN WE DON'T CARE @VA11305 01211200
  1271. B ERR2RC OTHERWISE JUST GIVE R.C. @VA01415 01212000
  1272. DROP R9 01213000
  1273. EJECT 01214000
  1274. * 01215000
  1275. * TAPE BSF, BSR, ERG, FSF, REW, RUN, WTM, FSR 01216000
  1276. * 01217000
  1277. TPCONTL EQU * 01218000
  1278. MVC CONTROL,8(R3) SET TAPE CONTROL FUNCTION 01219000
  1279. XC DBLWRD1(L'DBLWRD1+L'DBLWRD2),DBLWRD1 ZERO CONV. AREA 01220000
  1280. L R5,SAVER1 A(BEGINNING OF OPTIONS LIST OR FENCE) 01221000
  1281. SR R5,R3 MINUS BEGINNING OF PLIST 01222000
  1282. CH R5,=H'24' SEE IF 'N' SUPPLIED 01223000
  1283. BE CONVERT YES, CONVERT IT TO BINARY 01224000
  1284. LA R3,24(,R3) POINT TO THE UNKNOWN PARAMETER 01225000
  1285. BH ERROR070 AN UNKNOWN PARAMETER HAS BEEN INPUT 01226000
  1286. LA R5,1 PERFORM CONTROL FUNCTION ONLY ONCE 01227000
  1287. B PERFORM GO DO IT 01228000
  1288. CONVERT EQU * CONVERT 'N' TO BINARY 01229000
  1289. LA R6,16(,R3) NUMBER BEGINS HERE 01230000
  1290. CLI CONTROL,C'R' IS IT CONTROL FUNC. REW OR RUN? @VA03003 01231000
  1291. BE ERR70E YES, SHOULDN'T HAVE A PARAMETER @VA03257 01232000
  1292. CLI CONTROL,C'E' IS IT CONTROL FUNCTION ERG? @VA03003 01233000
  1293. BE ERR70E YES, SHOULDN'T HAVE A PARAMETER @VA03257 01234000
  1294. CLI 0(R6),C'0' P0953 01235000
  1295. BL ERR70E ERROR IF LT '0' @VA03257 01236000
  1296. CLI 0(R6),C'9' P0953 01237000
  1297. BH ERR70E ERROR IF GT '9' @VA03257 01238000
  1298. LA R4,17(,R3) NUMBER +1 STARTS HERE 01239000
  1299. LA R5,0 R5 = NUMBER OF NUMBERS IN 'N' - 1 01240000
  1300. CONVERT1 EQU * 01241000
  1301. CLI 0(R4),C' ' SEE IF CHARACTER IS BLANK 01242000
  1302. BE CONVERT2 YES, END OF 'N', DO CONVERSION 01243000
  1303. TM 0(R4),X'F0' P0953 01244000
  1304. BNO ERR70E ERROR IF NOT NUMERIC @VA03257 01245000
  1305. LA R4,1(,R4) INCREMENT A(POINTER TO 'N') 01246000
  1306. LA R5,1(,R5) INCREMENT NUMBER OF NUMBERS IN 'N' 01247000
  1307. CH R5,=H'7' SEE IF REACHED 8 NUMBERS YES 01248000
  1308. BL CONVERT1 NO, CONTINUE 01249000
  1309. CONVERT2 EQU * 01250000
  1310. LA R4,DBLWRD1+7 A(DBL WORD USED FOR CONVERSIONT) 01251000
  1311. SR R4,R5 MINUS NUMBER OF NUMBERS IN 'N' 01252000
  1312. EX R5,MVCNUM MOVE THE NUMBER FOR CONVERSION 01253000
  1313. PACK DBLWRD2,DBLWRD1 PACK IT 01254000
  1314. AR R5,R5 01255000
  1315. CVB R5,DBLWRD2 CONVERT TO BINARY 01256000
  1316. LTR R5,R5 IS 'N' EQUAL TO ZERO? @VA02967 01257000
  1317. BZ RETURN YES, DON'T DO ANYTHING @VA02967 01258000
  1318. PERFORM EQU * EXECUTE TAPE CONTROL FUNCTION 01259000
  1319. LA R1,PTAPEIO SET LOCATION OF PARAMETER LIST 01260000
  1320. PERFORM1 EQU * 01261000
  1321. SVC 202 ISSUE CALL TO TAPEIO 01262000
  1322. DC AL4(ERROR2) ERROR RETURN 01263000
  1323. BCT R5,PERFORM1 PERFORM AS OFTER AS REQUESTED 01264000
  1324. B RETURN ALL DONE, RETURN TO CALLER 01265000
  1325. EJECT 01266000
  1326. * 01267000
  1327. * TAPE MODESET 01268000
  1328. * 01269000
  1329. TPMODEST EQU * 01270000
  1330. L R5,SAVER1 GET POINTER TO OPTIONS LIST 01271000
  1331. SR R5,R3 SUBTRACT OUT POINTER TO PLIST 01272000
  1332. LA R3,16(,R3) POINT TO INVALID PARAMETER (IF ANY) 01273000
  1333. CH R5,=H'16' ANY INVALID PARAMETER 01274000
  1334. BH ERROR070 YES, TYPE MSG. P0735 01275000
  1335. B RETURN NO, RETURN TO CALLER 01276000
  1336. EJECT 01277000
  1337. ********************************************************************** 01278000
  1338. * 01279000
  1339. * ERROR RETURNS 01280000
  1340. * 01281000
  1341. ********************************************************************** 01282000
  1342. SPACE 2 01283000
  1343. ERROR1 EQU * ERROR WRITING TAPE MAP FILE 01284000
  1344. L R2,POUTPUT GET ADDR. OF STATUS OUTPUT PLIST 01285000
  1345. CLC 0(8,R2),OUTCOMM SEE IF IT'S A 'WRBUF' 01286000
  1346. BNE ERRET10 NO, ERROR HAS BEEN TAKEN CARE OF 01287000
  1347. MVC WRMODE(2),OUTMODE ENSURE OUTPUT MSG CORRECT @VA04663 01288000
  1348. LA R2,OUTNAME GET THE ADDR. OF THE FILE NAME 01289000
  1349. B ERROROUT OUTPUT MESSAGE 105 01290000
  1350. SPACE 2 01291000
  1351. ERROR2 EQU * ERROR DOING TAPEIO CONTROL 01292000
  1352. CLC CONTROL,WTM WRITING A TAPE MARK ? 01293000
  1353. BE ERROR111 YES, WRITING ERROR 01294000
  1354. CLC CONTROL,ERG ERASE RECORD GAP ? 01295000
  1355. BE ERROR111 WRITING ERROR 01296000
  1356. B ERROR110 READING ERROR 01297000
  1357. SPACE 2 01298000
  1358. ERROR002 EQU * 01299000
  1359. LA R2,SAVEFN A(FILEID) 01300000
  1360. DMSERR NUM=2,LET=E,SUB=(CHAR8A,(R2)),TEXT='FILE(S) ''.........+01301000
  1361. ............'' NOT FOUND' 01302000
  1362. ERR2RC LA R15,28 COMPLETION CODE @VA01415 01303000
  1363. B ERRET10 RETURN TO CALLER 01304000
  1364. SPACE 2 01305000
  1365. ERROR003 EQU * 01306000
  1366. LR R2,R1 SAVE R1 01307000
  1367. DMSERR NUM=3,LET=E,SUB=(CHARA,(R2)),TEXT='INVALID OPTION ''...+01308000
  1368. .....''' 01309000
  1369. LA R15,24 COMPLETION CODE 01310000
  1370. B ERRET20 RETURN TO CALLER 01311000
  1371. SPACE 2 01312000
  1372. ERROR010 EQU * 01313000
  1373. LA R2,ACTFN ACTIVE FILENAME P0735 01314000
  1374. DMSERR NUM=10,LET=E,SUB=(CHAR8A,(R2)),TEXT='PREMATURE EOF ON F+01315000
  1375. ILE ''.................''' 01316000
  1376. LA R15,40 COMPLETION CODE 01317000
  1377. B ERRET10 RETURN TO CALLER 01318000
  1378. SPACE 2 01319000
  1379. ERROR042 EQU * 01320000
  1380. DMSERR NUM=42,LET=E,TEXT='NO FILEID SPECIFIED' 01321000
  1381. LA R15,24 COMPLETION CODE 01322000
  1382. B ERRET20 RETURN TO CALLER 01323000
  1383. SPACE 2 01324000
  1384. ERROR014 EQU * 01325000
  1385. LA R3,8(,R3) POINT TO THE UNEXPECTED FUNCTION 01326000
  1386. DMSERR NUM=14,LET=E,SUB=(CHARA,(R3)),TEXT='INVALID FUNCTION ''+01327000
  1387. ........''' 01328000
  1388. LA R15,24 COMPLETION CODE 01329000
  1389. B ERRET20 RETURN TO CALLER 01330000
  1390. SPACE 2 01331000
  1391. ERROR023 EQU * 01332000
  1392. DMSERR NUM=23,LET=E,TEXT='NO FILETYPE SPECIFIED' 01333000
  1393. LA R15,24 COMPLETION CODE 01334000
  1394. B ERRET20 RETURN TO CALLER 01335000
  1395. SPACE 2 01336000
  1396. ERROR017 EQU * 01337000
  1397. LR R2,R1 SAVE REGISTER 1 01338000
  1398. DMSERR NUM=17,LET=E,SUB=(CHARA,(R2)),TEXT='INVALID DEVICE ADDR+01339000
  1399. ESS ''........''' 01340000
  1400. LA R15,24 COMPLETION CODE 01341000
  1401. B ERRET20 RETURN TO CALLER 01342000
  1402. SPACE 2 01343000
  1403. ERROR027 EQU * 01344000
  1404. LA R2,SYMTAPA POINT TO NAME @VA07458 01345500
  1405. DMSERR NUM=27,LET=E,SUB=(CHARA,(R2)),TEXT='INVALID DEVICE ''..+01347000
  1406. ..''' @VA07458 01348100
  1407. LA R15,24 COMPLETION CODE 01349000
  1408. B ERRET20 01350000
  1409. SPACE 2 01351000
  1410. ERR29A LR R1,R6 POINT TO PARAMETER P0953 01352000
  1411. ERROR029 EQU * 01353000
  1412. LR R2,R1 GET POINTER TO PARAMETER IN R1 01354000
  1413. LR R3,R1 SAVE REGISTER 1 01355000
  1414. SH R3,=H'8' BACK UP TO OPTION 01356000
  1415. DMSERR NUM=29,LET=E,SUB=(CHARA,(R2),CHARA,(R3)),RENT=NO,TEXT='+01357000
  1416. INVALID PARAMETER ''........'' IN THE OPTION ''........'+01358000
  1417. ' FIELD' 01359000
  1418. LA R15,24 COMPLETION CODE 01360000
  1419. B ERRET20 RETURN TO CALLER 01361000
  1420. SPACE 2 01362000
  1421. ERROR037 EQU * 01363000
  1422. DMSERR NUM=37,LET=E,SUB=(CHARA,((R7),1)), @VA05245+01364000
  1423. TEXT='DISK ''..'' IS READ/ONLY' @VA05245 01365000
  1424. MVC CONTROL,BSR BACKSPACE RECORD OPERATION @VA03886 01366000
  1425. LA R1,PTAPEIO PARAMETER FOR TAPEIO @VA03886 01367000
  1426. SVC 202 ISSUE CALL TO TAPEIO @VA03886 01368000
  1427. DC AL4(*+4) ERROR RETURN @VA03886 01369000
  1428. LA R15,36 COMPLETION CODE 01370000
  1429. B ERRET10 RETURN TO CALLER 01371000
  1430. SPACE 2 01372000
  1431. ERROR043 EQU * 01373000
  1432. DMSERR NUM=43,LET=E,SUB=(CHARA,(R3),HEX,(R2)),TEXT='''....(...+01374000
  1433. )'' IS FILE PROTECTED',RENT=NO 01375000
  1434. LA R15,36 COMPLETION CODE 01376000
  1435. B ERRET10 RETURN TO CALLER 01377000
  1436. SPACE 2 01378000
  1437. ERROR047 EQU * 01379000
  1438. DMSERR NUM=47,LET=E,TEXT='NO FUNCTION SPECIFIED' 01380000
  1439. LA R15,24 COMPLETION CODE 01381000
  1440. B ERRET20 RETURN TO CALLER 01382000
  1441. SPACE 2 01383000
  1442. ERROR048 EQU * 01384000
  1443. DMSERR NUM=48,LET=E,SUB=(CHARA,(R7)),TEXT='INVALID MODE ''..''+01385000
  1444. ' 01386000
  1445. LA R15,24 COMPLETION CODE 01387000
  1446. B ERRET10 RETURN TO CALLER 01388000
  1447. SPACE 2 01389000
  1448. ERROR057 EQU * 01390000
  1449. DMSERR NUM=57,LET=E,TEXT='INVALID RECORD FORMAT' 01391000
  1450. LA R15,32 COMPLETION CODE 01392000
  1451. B ERRET10 RETURN TO CALLER 01393000
  1452. SPACE 2 01394000
  1453. ERROR058 EQU * 01395000
  1454. TM TPEFLG,EOTF SECOND TAPE MARK? P0953 01396000
  1455. BO RETURN O.K. IF SO P0953 01397000
  1456. DMSERR NUM=58,LET=E,TEXT='END-OF-FILE OR END-OF-TAPE' 01398000
  1457. LA R15,40 COMPLETION CODE 01399000
  1458. B ERRET10 RETURN TO CALLER 01400000
  1459. * @VA14196 01400500
  1460. ERROR069 EQU * @VA14196 01400520
  1461. DMSERR TEXT='DISK ''..'' NOT ACCESSED',NUM=69, X01400540
  1462. LET=E,SUB=(CHARA,(STATFM,1)) @VA14196 01400560
  1463. LA R15,36 RETURN CODE = 36 @VA14196 01400580
  1464. B ERRET30 @VA14196 01400600
  1465. SPACE 2 01401000
  1466. ERR70E LR R3,R6 GET INCORRECT PARAMETER @VA03257 01402000
  1467. ERROR070 EQU * 01403000
  1468. DMSERR NUM=70,LET=E,SUB=(CHARA,(R3)),TEXT='INVALID PARAMETER '+01404000
  1469. '........''' 01405000
  1470. LA R15,24 COMPLETION CODE 01406000
  1471. B ERRET20 RETURN TO CALLER 01407000
  1472. SPACE 2 01408000
  1473. ERROR096 LA R2,DATAIN+L'FSTSAVE ADDR. OF FNAME AND FTYPE @VA04519 01409000
  1474. DMSERR NUM=96,LET=E,SUB=(CHAR8A,(R2)),TEXT='FILE ''...........X01410000
  1475. ......'' DATA BLOCK COUNT INCORRECT' @VA04519 01411000
  1476. LA R15,32 SET RETURN CODE @VA04519 01412000
  1477. B ERRET10 ABORT LOAD @VA04519 01413000
  1478. SPACE 2 @VA04519 01414000
  1479. ERROR104 EQU * 01415000
  1480. LA R2,8(,R1) POINT TO FHE FILE ID 01416000
  1481. DMSERR NUM=104,LET=S,SUB=(DECA,SAVER1+4,CHAR8A,(R2)),TEXT='ERR+01417000
  1482. OR ''..'' READING FILE ''....................'' FROM DIS+01418000
  1483. K',RENT=NO V0314 01419000
  1484. LA R15,100 COMPLETION CODE 01420000
  1485. B ERRET10 RETURN TO CALLER 01421000
  1486. SPACE 2 01422000
  1487. ERROR105 EQU * 01423000
  1488. LA R2,WRNAME GET NAME OF FILE BEING WRITTEN 01424000
  1489. ERROROUT EQU * 01425000
  1490. LA R7,WRMODE R7 POINTS TO MODE OF FILE 01426000
  1491. CH R15,=H'5' INVALID MODE SPECIFIED ? 01427000
  1492. BNH ERROR048 YES, TYPE OUT THE MESSAGE 01428000
  1493. CH R15,=H'12' DISK IS READ/ONLY ? 01429000
  1494. BE ERROR037 YES, TYPE OUT THE MESSAGE 01430000
  1495. LR R3,R15 GET THE RETURN CODE PASSED BY WRBUF 01431000
  1496. DMSERR NUM=105,LET=S,SUB=(DEC,(R3),CHAR8A,(R2)),TEXT='ERROR ''+01432000
  1497. ...'' WRITING FILE ''.....................'' ON DISK',RE+01433000
  1498. NT=NO 01434000
  1499. LA R15,100 COMPLETION CODE 01435000
  1500. B ERRET10 RETURN TO CALLER 01436000
  1501. SPACE 2 01437000
  1502. ERROR110 EQU * 01438000
  1503. LH R2,TAPECCU GET THE DEVICE ADDRESS 01439000
  1504. LA R3,SYMTAPA GET IT'S SYMBOLIC NAME 01440000
  1505. DMSERR NUM=110,LET=S,SUB=(CHARA,(R3),HEX,(R2)),TEXT='ERROR REA+01441000
  1506. DING ''....(...)''',RENT=NO 01442000
  1507. LA R15,100 COMPLETION CODE 01443000
  1508. B ERRET10 RETURN TO CALLER 01444000
  1509. SPACE 2 01445000
  1510. ERROR111 EQU * 01446000
  1511. LH R2,TAPECCU GET THE DEVICE ADDRESS 01447000
  1512. LA R3,SYMTAPA SYMBOLIC DEVICE NAME 01448000
  1513. CH R15,=H'2' EOF OR EOT 01449000
  1514. BE ERROR058 YES, TYPE OUT THE MESSAGE 01450000
  1515. CH R15,=H'6' IS TAPE FILE PROTECTED ? 01451000
  1516. BE ERROR043 YES, TYPE OUT ERROR MESSAGE 01452000
  1517. DMSERR NUM=111,LET=S,SUB=(CHARA,(R3),HEX,(R2)),TEXT='ERROR WRI+01453000
  1518. TING ''....(...)''',RENT=NO 01454000
  1519. LA R15,100 COMPLETION CODE 01455000
  1520. B ERRET10 RETURN TO CALLER 01456000
  1521. SPACE 2 01457000
  1522. ERROR113 EQU * 01458000
  1523. LH R2,TAPECCU TAPE DEVICE ADDRESS 01459000
  1524. LA R3,SYMTAPA SYMBOLIC TAPE NAME 01460000
  1525. DMSERR NUM=113,LET=S,SUB=(CHARA,(R3),HEX,(R2)),TEXT='''....(..+01461000
  1526. .)'' NOT ATTACHED',RENT=NO 01462000
  1527. LA R15,100 COMPLETION CODE 01463000
  1528. B ERRET10 RETURN TO CALLER 01464000
  1529. SPACE 2 01465000
  1530. ERR115S EQU * P0917 01466000
  1531. LH R5,0(R5) POINT TO DEVICE V0037 01467000
  1532. DMSERR NUM=115,LET=S,SUB=(CHARA,(R8),HEX,(R5)), *01468000
  1533. TEXT='............ FEATURE NOT SUPPORTED ON DEVICE ''...*01469000
  1534. .''',RENT=NO 01470000
  1535. LA R15,88 RETURN CODE = 88 P0917 01471000
  1536. B ERRET30 P0917 01472000
  1537. SPACE 2 01473000
  1538. MSG701 EQU * USER READ IN A NULL FILE 01474000
  1539. DMSERR NUM=701,LET=I,TEXT='NULL FILE' 01475000
  1540. B TPSRSET SEE IF ANY MORE FILES TO BE LOOKED AT 01476000
  1541. * 01477000
  1542. * 01478000
  1543. * 01479000
  1544. * EXIT TO CALLER 01480000
  1545. * 01481000
  1546. * 01482000
  1547. RETURN EQU * 01483000
  1548. SR R15,R15 NO ERROR RETURN 01484000
  1549. ERRET10 EQU * 01485000
  1550. TM OPTBYTE,NODISK HAS A TRANSACTION RECORD BEEN CREATED 01486000
  1551. BO ERRET20 NO, RETURN 01487000
  1552. LR R3,R15 SAVE R15 (RETURN CODE ) 01488000
  1553. LA R1,OUTDISK R1=A(FINIS PARAMETER LIST) 01489000
  1554. MVC OUTCOMM,FINIS FUNCTION NAME = 'FINIS' 01490000
  1555. L R15,AFINIS FINIS @V305066 01491000
  1556. SSM TPEDIS DISABLE INTERRUPTS @VA07792 01491500
  1557. BALR R14,R15 ISSUE CALL TO FINIS TO CLOSE @V305066 01492000
  1558. SSM TPEENA ENABLE INTERRUPTS @VA07792 01492500
  1559. LR R15,R3 RESTORE R15 01493000
  1560. ERRET20 EQU * 01494000
  1561. TM OPTBYTE,NOPRINT WAS A PRINT FILE CREATED 01495000
  1562. BO ERRET30 NO, EXIT 01496000
  1563. LR R3,R15 SAVE THE RETURN CODE FROM TAPE 01497000
  1564. LA R1,CPCLOSE GET PLIST FOR CPF 01498000
  1565. SVC 202 CLOSE THE PRINTER FILE 01499000
  1566. LR R15,R3 RESTORE THE TAPE RETURN CODE 01500000
  1567. ERRET30 EQU * EXIT 01501000
  1568. TM FREESTOR,NOTUSED WAS STORAGE USED? @VA04052 01502000
  1569. BO ERRET40 BRANCH IF NOT @VA04052 01503000
  1570. LR R3,R15 SAVE R15 RETURN CODE @VA04052 01504000
  1571. LM R0,R1,FREESTOR POINT TO DMSFRET INFO @VA04052 01505000
  1572. DMSFRET DWORDS=(0),LOC=(1) @VA04052 01506000
  1573. LR R15,R3 RESTORE RETURN CODE @VA04052 01507000
  1574. ERRET40 EQU * @VA04052 01508000
  1575. L R14,SAVER14 RETURN USER'S R14 01509000
  1576. BR R14 EXIT 01510000
  1577. EJECT 01511000
  1578. ********************************************************************** 01512000
  1579. * 01513000
  1580. * STORAGE SPACE AND CONSTANTS 01514000
  1581. * 01515000
  1582. ********************************************************************** 01516000
  1583. * 01517000
  1584. DS 0F JS 01518000
  1585. LINECT DS H LINE COUNTER @VA00983 01519000
  1586. PTAPEIO DS 0F PARAMETER LIST FOR TAPEIO 01520000
  1587. DC CL8'TAPEIO' FUNCTION NAME 01521000
  1588. CONTROL DS CL8 TAPEIO FUNCTION 01522000
  1589. SYMTAPA DS CL4 SYMBOLIC TAPE ADDRESS 01523000
  1590. MODESETB DS BL1 MODESET BYTE 01524000
  1591. AIOBUFF DC AL3(0) A(I/O BUFFER) @VA03003 01525000
  1592. IOBUFF DC F'805' I/O BUFFER SIZE 01526000
  1593. BYTESRD DS F NUMBER OF BYTES READ/WRITTEN 01527000
  1594. ACARDIN DC AL3(0) A(INPUT BUFFER) @VA03003 01528000
  1595. ACARDOUT DC AL3(0) A(I/O BUFFER) @VA03003 01529000
  1596. WRITE DC CL8'WRITE' FOR TAPEIO WRITE CONTROL 01530000
  1597. READ DC CL8'READ' FOR TAPEIO READ CONTROL 01531000
  1598. SENSE DC CL8'SENSE' SENSE THE TAPE DEVICE 01532000
  1599. * 01533000
  1600. * MODESET OPTIONS - SET UP FOR 'ANDING' OPERATIONS 01534000
  1601. * 01535000
  1602. D200 EQU B'00000011' DENSITY = 200 01536000
  1603. D556 EQU B'01000011' DENSITY = 556 01537000
  1604. D8007TRK EQU B'10000011' DENSITY = 800BPI FOR 7 TRACK TAPE 01538000
  1605. D8009TRK EQU B'11001011' DENSITY = 800BPI FOR 9 TRACK TAPE 01539000
  1606. DRESET EQU B'11000011' DENSITY = RESET CONDITION, 1600BPI 01540000
  1607. D6250 EQU B'11010011' DENSITY=6250 @V200414 01541000
  1608. TRTCHO EQU B'00110011' ODD,CONV-OFF,TRANS-OFF,7TRACK ASSUMED 01542000
  1609. TRTCHOC EQU B'00010011' ODD,CONV-ON,TRANS-OFF,7TRACK ASSUMED 01543000
  1610. TRTCHOT EQU B'00111011' ODD,CONV-OFF,TRANS-ON,7TRACK ASSUMED 01544000
  1611. TRTCHE EQU B'00100011' EVEN,CONV-OFF,TRANS-OFF,7TRACK ASSUMED 01545000
  1612. TRTCHET EQU B'00101011' EVEN,CONV-OFF,TRANS-ON,7TRACK ASSUMED 01546000
  1613. TRACK7 EQU B'00110011' ODD,CONV-OFF,TRANS-OFF,7TRACK,DENSITY=800 01547000
  1614. TRACK9 EQU B'11000011' 9TRACK, 1600 BPI 01548000
  1615. PCT EQU B'00110000' TESTS THE PARITY AND CONVERTER BITS 01549000
  1616. KEEPDEN7 EQU X'C0' KEEP THE DENSITY SETTING FOR 7TRACK 01550000
  1617. KEEPDEN9 EQU X'C8' KEEP THE DENSITY SETTING FOR 9TRACK 01551000
  1618. KEEPTRK7 EQU X'3F' KEEP THE CONV. TRANS. BITS FOR 7TRACK 01552000
  1619. RESETM7 EQU X'93' 7 TRACK RESET CONDITION V0312 01553000
  1620. * 01554000
  1621. MVCNUM MVC 0(*-*,R4),0(R6) MOVE NUMBER FOR CONVERSION 01555000
  1622. EOFN DS 1F STORE NUMBER OF EOF'S WANTED, DEFAULT = 1 01556000
  1623. DBLWRD1 DS 1D FOR DEC-BIN CONVERSION 01557000
  1624. DBLWRD2 DS 1D FOR DEC-BIN CONVERSION 01558000
  1625. * 01559000
  1626. FREESTOR DS 2F DWORDS + ADDRESS OF FREE STOR @VA03003 01560000
  1627. NOTUSED EQU X'FF' @VA04052 01561000
  1628. EIGHTHD DC F'800' @VA03003 01562000
  1629. CONSTANT DC H'799' @VA03003 01563000
  1630. OPTBYTE DC BL1'11101100' OPTION BYTE 01564000
  1631. NOWTM EQU X'80' WTM|NOWTM 01565000
  1632. NOEOT EQU X'40' EOT|NOEOT 01566000
  1633. NOPRINT EQU X'20' PRINT|NOPRINT 01567000
  1634. NOTERM EQU X'10' TERM|NOTERM 01568000
  1635. NODISK EQU X'08' DISK|NODISK 01569000
  1636. NOEOFN EQU X'04' EOFN|NOEOFN 01570000
  1637. * 01571000
  1638. AFSTPLST DC A(FSTCMMD) FSTLKP PARAMETER LIST 01572000
  1639. FSTCMMD DS CL8 ROUTINE INVOKED = 'FSTLKP' OR 'ERASE' 01573000
  1640. SAVEFN DS CL8 FILENAME 01574000
  1641. SAVEFT DS CL8 FILETYPE 01575000
  1642. SAVEFM DS CL8 FILEMODE 01576000
  1643. * 01577000
  1644. COMPOPT CLC 0(*-*,R1),0(R5) DOES THIS FUNCTION MATCH 01578000
  1645. MVCFILID MVC SAVEFN(*-*),16(R3) MOVE FILED TO SAVE AREA 01579000
  1646. * 01580000
  1647. * FOLLOWING ARE CODES USED TO CHEK REAL DEVICE INFO FROM CP 01581000
  1648. * 01582000
  1649. FTR7TRK EQU X'80' P0917 01583000
  1650. FTRTRANS EQU X'20' P0917 01584000
  1651. FTRDCONV EQU X'10' P0917 01585000
  1652. FTRDLDNS EQU X'40' P0917 01586000
  1653. SPACE 1 01587000
  1654. TYP2401 EQU X'80' 2401 SERIES TAPE DRIVE P0917 01588000
  1655. TYP2415 EQU X'40' 2415 SERIES P0917 01589000
  1656. MODEL3 DC X'03' P0917 01590000
  1657. MODEL5 DC X'05' @VA02112 01591000
  1658. MODEL7 DC X'07' @VA02112 01592000
  1659. MODEL8 DC X'08' @VA02112 01593000
  1660. CLASTAPE DC X'08' TAPE DEVICE CODE P0917 01594000
  1661. FDIAG DC F'0' CP DIAGNOSE INFO FOR FEATURES P0917 01595000
  1662. ERR7TRK DC CL12'7-TRACK' P0917 01596000
  1663. ERRTRANS DC CL12'TRANSLATION' P0917 01597000
  1664. ERRDCONV DC CL12'CONVERSION' P0917 01598000
  1665. ERRDLDNS DC CL12'DUAL-DENSITY' P0917 01599000
  1666. TYP3420 EQU X'10' 3420 TYPE TAPE DRIVE @V200414 01600000
  1667. TYP2420 EQU X'20' 2420 TYPE TAPE DRIVE @V200414 01601000
  1668. ERRHIDEN DC CL12'6250 BPI' @V200414 01602000
  1669. ERR800BP DC CL12'800 BPI' @VA02112 01603000
  1670. ERR9TRK DC CL12'9-TRACK' @VA02112 01604000
  1671. ERR16BP DC CL12'1600 BPI' @VA04963 01605000
  1672. * 01606000
  1673. * PARAMETER LIST FOR RDBUF CALLS 01607000
  1674. * 01608000
  1675. INFILE DS 0D 01609000
  1676. INCOMM DS CL8 COMMAND NAME 01610000
  1677. INNAME DS CL8 FILE NAME 01611000
  1678. INTYPE DS CL8 FILE TYPE 01612000
  1679. INMODE DS CL2 FILE MODE 01613000
  1680. INITNO DC H'0' ITEM NUMBER 01614000
  1681. INBUFF DC A(0) BUFFER AREA @VA03003 01615000
  1682. INSIZE DC A(800) BUFFER SIZE 01616000
  1683. INFV DC CL1'F' FIXED/VARIABLE FLAG @VA04989 01617000
  1684. INFLAG DC CL1' ' NULL BLOK FLAG (NULL=X'00') @VA04989 01618000
  1685. INNOIT DC H'1' NUMBER OF ITEMS 01619000
  1686. INNORD DC F'0' NUMBER OF BYTES ACTUALLY READ 01620000
  1687. * 01621000
  1688. * PARAMETER LIST FOR WRBUF OR FINIS CALLS 01622000
  1689. * 01623000
  1690. WRFILE DS 0D 01624000
  1691. WRCOMM DS CL8 COMMAND NAME 01625000
  1692. WRNAME DS CL8 FILENAME 01626000
  1693. WRTYPE DS CL8 FILETYPE 01627000
  1694. WRMODE DS CL2 FILEMODE 01628000
  1695. WRITNO DC H'0' ITEM NUMBER 01629000
  1696. WRBUFF DC A(0) BUFFER AREA @VA03003 01630000
  1697. WRSIZE DC A(800) BUFFER SIZE 01631000
  1698. WRFV DC CL2'F' FIXED/VARIABLE FLAG 01632000
  1699. WRNOIT DC H'1' NUMBER OF ITEMS 01633000
  1700. WRNORD DC F'0' NUMBER OF BYTES READ 01634000
  1701. * 01635000
  1702. * ERASE PARAMETER LIST FOR TEMPORARY FILE 01636000
  1703. * 01637000
  1704. DS 0D 01638000
  1705. TEMPFILE DC CL8'ERASE' COMMAND NAME = 'ERASE' 01639000
  1706. DC CL8'TAPE' FILENAME = 'TAPE' 01640000
  1707. DC CL8'CMSUT1' FILETYPE = 'CMSUT1' 01641000
  1708. DC CL2' ' FILEMODE SUPPLIED AT EXECUTION TIME 01642000
  1709. * 01643000
  1710. * PARAMETER LIST FOR OUTPUTTING THE RECORD OF TAPE TRANSACTIONS 01644000
  1711. * 01645000
  1712. POUTPUT DS A A(WHERE OUTPUT WILL BE PUT FOR MAP) 01646000
  1713. * 01647000
  1714. OUTTERM DC CL8'TYPLIN' OUTPUT TO TERMINAL VIA TYPLIN 01648000
  1715. DC A(MESSAGE) MESSAGE TO BE OUTPUT 01649000
  1716. DC C'B',X'00' DO IT IN BLACK 01650000
  1717. LMSG DS AL2 LENGTH OF MESSAGE OUTPUT TO THE TERMINAL 01651000
  1718. OUTPRINT DC CL8'PRINTR' CALL DMSPIO FOR MSG OUTPUT 01652000
  1719. DC A(CARCTL) CARR CONTROL (EJECT OR SPACE) @VA00983 01653000
  1720. DC AL4(L'MESSAGE+L'CARCTL) LEN OF OUTPUT MESSAGE @VA00983 01654000
  1721. * PLUS LENGTH OF CARRIAGE CONTROL 01655000
  1722. * 01656000
  1723. OUTDISK DS 0D OUTPUT TO FILE TAPE MAP A5 @VA11834 01657000
  1724. OUTCOMM DC CL8'WRBUF' 01658000
  1725. OUTNAME DC CL8'TAPE' FILE NAME 01659000
  1726. OUTTYPE DC CL8'MAP' FILE TYPE 01660000
  1727. OUTMODE DC CL2'A5' FILE MODE @VA11834 01661000
  1728. OUTITNO DC H'0' ITEM NUMBER 01662000
  1729. OUTBUFF DC A(MESSAGE) BUFFER AREA 01663000
  1730. OUTSIZE DC A(80) BUFFER SIZE 01664000
  1731. OUTFV DC CL2'F' FIXED/VARIABLE FLAG 01665000
  1732. OUTNOIT DC H'1' NUMBER OF ITEMS 01666000
  1733. OUTNORD DC F'0' NUMBER OF BYTES ACTUALLY READ 01667000
  1734. * 01668000
  1735. CPCLOSE DS 0F CLOSE THE 'PRINT' FILE 01669000
  1736. DC CL8'CP' CALL DMSCPF 01670000
  1737. DC C'C E NAME TAPE MAP' 01671000
  1738. DC 4XL1'FF' END OF PLIST TO DMSPIO 01672000
  1739. * 01673000
  1740. CARCTL DS 1X ONE BYTE FOR CARRIAGE CONTROL @VA00983 01674000
  1741. MESSAGE DC CL80' ' MESSAGE CONTAINS FILE ID 01675000
  1742. SCANNING DC C'SCANNING....' USED WHEN SCANNING 01676000
  1743. LOADING DC C'LOADING.....' USED WHEN LOADING 01677000
  1744. DUMPING DC C'DUMPING.....' USED WHEN DUMPING 01678000
  1745. SKIPPING DC C'SKIPPING....' USED WHEN SKIPPING 01679000
  1746. EOFM DC C'END-OF-FILE OR END-OF-TAPE' 01680000
  1747. * 01681000
  1748. * REGISTER SAVE AREA 01682000
  1749. * 01683000
  1750. SAVER1 DS 1F A(BEGINNING OF OPTIONS OR FENCE IN PLIST) 01684000
  1751. DS 1F V0155 01685000
  1752. SAVER14 DS 1F RETURN ADDRESS 01686000
  1753. * 01687000
  1754. RDBUF DC CL8'RDBUF' FOR CALLS TO RDBUF 01688000
  1755. WRBUF DC CL8'WRBUF' FOR CALLS TO WRBUF 01689000
  1756. FINIS DC CL8'FINIS' FOR CALLS TO FINIS 01690000
  1757. * 01691000
  1758. TAPECCU DS 1H SAVE THE DEVICE ADDRESS 01692000
  1759. SPACE 01693000
  1760. DS 0D @VA00859 01694000
  1761. CMDACT DC CL8'FINIS' CLOSE AN ACTIVE FILE @VA00859 01695000
  1762. FNACT DC CL8' ' COPY FNAME @VA00859 01696000
  1763. DC CL8' ' COPY FTYPE @VA00859 01697000
  1764. FMACT DC CL2' ' COPY FMODE @VA00859 01698000
  1765. ITNOACT DC H'0' ITEM NUMBER FOR POINT @VA00859 01699000
  1766. SPACE 01700000
  1767. SAVE10R DC 10F'0' SAVE AREA FOR ACTLKP @VA00859 01701000
  1768. SAVERPTR DC H'0' SAVE AN ACTIVE FILES READ PTR@VA00859 01702000
  1769. ACTFLAG DC X'00' ACTIVE FILE FLAG @VA00859 01703000
  1770. RESET EQU X'80' RE-OPEN THE CURRENT FILE @VA00859 01704000
  1771. POINT DC CL8'POINT' @VA00859 01705000
  1772. * 01706000
  1773. DS 0D 01707000
  1774. STATLST DC CL8'STATE' P0953 01708000
  1775. STATFN DC CL8' ' @VA14821 01709500
  1776. DC CL8' ' P0953 01710000
  1777. STATFM DC CL8' ' P0953 01711000
  1778. PERASE DC CL8'ERASE' 01712000
  1779. DC CL8'TAPE' ACTIVE FILENAME 01713000
  1780. DC CL8'MAP' ACTIVE FILETYPE 01714000
  1781. DC CL2'A5' A DISK ONLY @VA11834 01715000
  1782. DS 0D 01716000
  1783. ACTERS DC CL8'ERASE' COMMAND NAME = 'ERASE' 01717000
  1784. ACTFN DS CL8 FILENAME 01718000
  1785. ACTFT DS CL8 FILETYPE 01719000
  1786. ACTFM DS CL2 FILEMODE 01720000
  1787. DS 0F 01721000
  1788. FSTSAVE DS CL(16*4) 01722000
  1789. FSTSAVAD DC F'0' SAVE THE ENTRY ADDRESS @VA01998 01723000
  1790. SAVEMODE DC X'0' SAVE THE MODE NUMBER @VA01998 01724000
  1791. CHLINK DS CL2 01725000
  1792. * 01726000
  1793. TPEFLG DS 1X TAPE FLAGS 01727000
  1794. PRTMATCH EQU X'80' MATCH FOR PRINTOUT 01728000
  1795. MATCHFN EQU X'40' MATCH ON FILENAME 01729000
  1796. MATCHFT EQU X'20' MATCH ON FILETYPE 01730000
  1797. MATCHFM EQU X'10' MATCH ON FILEMODE (NUMBER) P0953 01731000
  1798. EOTF EQU X'01' ON SIGNALS 1 TAPE MARK READ P0735 01732000
  1799. LOADPROC EQU X'08' LOADING IN PROGRESS P0735 01733000
  1800. INPUT EQU X'04' ONE MATCH FOUND @VA01415 01734000
  1801. NINETK EQU X'02' 9TRACK MODE SET @V200414 01735000
  1802. NINEOFF EQU X'FD' USED TO SET 7TRACK IND. @V200414 01736000
  1803. * 01737000
  1804. FLAGS DC X'00' INTERNAL FLAGS 01738000
  1805. DENSITY EQU X'80' DENSITY HAS BEEN SPECIFIED BY USER 01739000
  1806. MATCH EQU X'40' EXACT FILID MATCH REQUESTED 01740000
  1807. SCNSWT EQU X'20' SCANNING, NOT DUMPING 01741000
  1808. SKPSWT EQU X'10' SKIPPING 01742000
  1809. LOADSWT EQU X'08' INDICATES THAT TAPE LOADING IN PROCESS 01743000
  1810. DUMPSWT EQU X'04' DUMP FUNCTION 01744000
  1811. MODESWT EQU X'02' MODESET FUNCTION 01745000
  1812. CONTLSWT EQU X'01' TAPE CONTROL FUNCTION 01746000
  1813. FLAGS2 DC X'00' SECOND INTERNAL FLAG BYTE. @VA11948 01746100
  1814. NOTBLANK EQU X'40' TAPE IS NOT BLANK. @VA11948 01746200
  1815. * @VA04989 01747000
  1816. * MISC. EQUATES @VA04989 01748000
  1817. CZERO EQU C'0' @VA04989 01749000
  1818. BZERO EQU 0 @VA04989 01750000
  1819. BLANK EQU C' ' @VA04989 01751000
  1820. FF EQU X'FF' @VA07150 01752000
  1821. EIGHT EQU 8 @VA07150 01753000
  1822. * 01754000
  1823. C6250 DC CL5'6250 ' @VA07148 01755000
  1824. * @VA07148 01756000
  1825. * TABLE OF TAPE COMMANDS 01757000
  1826. * 01758000
  1827. DS 0F 01759000
  1828. TAB EQU * 01760000
  1829. DUMP DC CL8'DUMP' JS 01761000
  1830. DC AL1(DUMPSWT),AL3(TPDUMP) 01762000
  1831. LOAD DC CL8'LOAD' 01763000
  1832. DC AL1(LOADSWT),AL3(TPLOAD) 01764000
  1833. SKIP DC CL8'SKIP' 01765000
  1834. DC AL1(SKPSWT),AL3(TPSKIP) 01766000
  1835. SCAN DC CL8'SCAN' 01767000
  1836. DC AL1(SCNSWT),AL3(TPSCAN) 01768000
  1837. MODESET DC CL8'MODESET' MODESET 01769000
  1838. DC AL1(MODESWT),AL3(TPMODEST) 01770000
  1839. BSF DC CL8'BSF' BSF 01771000
  1840. DC AL1(CONTLSWT),AL3(TPCONTL) 01772000
  1841. BSR DC CL8'BSR' BSR 01773000
  1842. DC AL1(CONTLSWT),AL3(TPCONTL) 01774000
  1843. ERG DC CL8'ERG' ERG 01775000
  1844. DC AL1(CONTLSWT),AL3(TPCONTL) 01776000
  1845. FSF DC CL8'FSF' FSF 01777000
  1846. DC AL1(CONTLSWT),AL3(TPCONTL) 01778000
  1847. REW DC CL8'REW' REW 01779000
  1848. DC AL1(CONTLSWT),AL3(TPCONTL) 01780000
  1849. RUN DC CL8'RUN' RUN 01781000
  1850. DC AL1(CONTLSWT),AL3(TPCONTL) 01782000
  1851. WTM DC CL8'WTM' WTM 01783000
  1852. DC AL1(CONTLSWT),AL3(TPCONTL) 01784000
  1853. FSR DC CL8'FSR' FSR 01785000
  1854. DC AL1(CONTLSWT),AL3(TPCONTL) P0735 01786000
  1855. TABN EQU * END OF FUNCTION LIST 01787000
  1856. INDEXS DC A(TAB,12,TABN-12) 01788000
  1857. TPEENA DC X'FF' @VA06258 01789000
  1858. TPEDIS DC X'00' @VA06258 01790000
  1859. * 01791000
  1860. * LITERALS 01792000
  1861. * 01793000
  1862. LTORG 01794000
  1863. HEADER DC X'02C3D4E2' TAPE RECORD HEADER @VA03003 01795000
  1864. HEADERTR DC X'C2C3D4E2' TAPE HEADER READ WITH TRANSLATION @VA08107 01795100
  1865. TAPEBUF DSECT @VA03003 01796000
  1866. DS CL3 @VA03003 01797000
  1867. CARDOUT DS CL4 X'02', C'CMS' @VA04989 01798000
  1868. FLAGOUT DS CL1 'N'=END OF FILE, '0'=NULL BLOK @VA04989 01799000
  1869. DATAOUT DS CL800 @VA03003 01800000
  1870. DS 3C @VA03003 01801000
  1871. CARDIN DS CL4 X'02', C'CMS' @VA04989 01802000
  1872. FLAGIN DS CL1 'N'=END OF FILE, '0'=NULL BLOK @VA04989 01803000
  1873. DATAIN DS CL800 @VA03003 01804000
  1874. EJECT 01805000
  1875. PRINT GEN 01806000
  1876. NUCON 01807000
  1877. REGEQU 01808000
  1878. ADT (R12) 01809000
  1879. AFT @VA00859 01810000
  1880. EJECT 01811000
  1881. FVS 01812000
  1882. EJECT 01813000
  1883. FSTB 01814000
  1884. DEVSECT 01815000
  1885. END 01816000