Table of Contents

CPMOD Source

References

Source Listing

CPMOD.MACRO.txt
  1. CATALS A.CPMOD 00001000
  2. MACRO 00002000
  3. &NAME CPMOD &TYPEFLE=,&IOAREA2=,&DISK=,&IOPTR=,&RETRY=,&SEPASMB=, X00003000
  4. &RDONLY=,&ASCII=,&RPS= 00004000
  5. LCLB &SWITCH,&RDNLYSW,&IO2SW 00005000
  6. LCLC &NAM,&R 00006000
  7. * IOCS AND DEV INDEPENDANT I/O CPMOD 5745-SC-IOX - REL. 34.0 @DA11146 00007000
  8. AIF ('&ASCII' NE 'YES').NOASCII 00008000
  9. &SWITCH SETB (1) 00009000
  10. AIF ('&RPS' EQ 'SVA').RPSOPTA 00010000
  11. AIF ('&TYPEFLE' EQ 'INPUT').ASCMNOT 00011000
  12. AIF ('&IOAREA2' EQ 'YES').ASCMNOT 00012000
  13. AIF (T'&DISK EQ 'O').ASCMNOT 00013000
  14. AIF (T'&IOPTR NE 'O').ASCMNOT 00014000
  15. AIF ('&RETRY' NE 'NO').ASCMNOT 00015000
  16. AGO .NOASCII 00016000
  17. .ASCMNOT ANOP 00017000
  18. MNOTE 1,'CONFLICTING ASCII SPECIFICATION.MACRO GENERATION *00018000
  19. TERMINATED.' 3-8 00019000
  20. MEXIT 00020000
  21. .RPSOPTA ANOP 00021000
  22. * RPS=SVA, ASCII=YES IMPLIES THE FOLLOWING OPTIONS - DISK, @DL30SMT 00022000
  23. * OUTPUT, NO I/O POINTER, ONE I/O AREA, @DL30SMT 00023000
  24. * NO RETRY, SEPARATE ASSEMBLY AND READ ONLY @DL30SMT 00024000
  25. .NOASCII ANOP 00025000
  26. AIF ('&RPS' EQ 'SVA' AND '&ASCII' NE 'YES' AND T'&IOPTR EQ 'X00026000
  27. O').SET2 00027000
  28. AIF ('&IOAREA2' NE 'YES').TSTRNLY 00028000
  29. .SET2 ANOP 00029000
  30. &IO2SW SETB (1) 00030000
  31. .TSTRNLY ANOP 00031000
  32. AIF (T'&RDONLY EQ 'O' OR '&RDONLY' EQ 'YES').OK1A 00032000
  33. MNOTE 0,'IMPROPER RDONLY. ''YES'' ASSUMED' 3-3 00033000
  34. .OK1A ANOP 00034000
  35. &R SETC 'P' 00035000
  36. AIF (T'&RDONLY EQ 'O' AND '&RPS' NE 'SVA').OK1AA 00036000
  37. &RDNLYSW SETB (1) 00037000
  38. &R SETC 'O' 00038000
  39. AIF ('&RPS' NE 'SVA').OK1AA 00039000
  40. &R SETC 'V' 00040000
  41. .OK1AA ANOP 00041000
  42. AIF (T'&TYPEFLE NE 'O' OR '&RPS' EQ 'SVA').OK1B 00042000
  43. MNOTE 1,'TYPEFLE OMMITTED, OUTPUT ASSUMED-HANDLES INPUT' 00043000
  44. .OK1B ANOP 00044000
  45. AIF (T'&IOPTR NE 'O' AND T'&IOAREA2 NE 'O').OK1 00045000
  46. AGO .OK1C 00046000
  47. .OK1 ANOP 00047000
  48. AIF ('&IOAREA2' EQ 'NO').OK1C 00048000
  49. MNOTE 1,'IMPROPER IOAREA2, ONE IOAREA ASSUMED' 3-3 00049000
  50. .OK1C ANOP 00050000
  51. AIF ('&RPS' EQ 'SVA').RSEP 00051000
  52. AIF ('&SEPASMB' NE 'YES').OK1D 00052000
  53. .RSEP ANOP 00053000
  54. AIF (T'&NAME NE 'O').SEP1 00054000
  55. AIF (NOT &SWITCH).NOASC 00055000
  56. &NAM SETC 'IJJC&R.A1N' 00056000
  57. AGO .SEP 00057000
  58. .NOASC ANOP 00058000
  59. AIF ('&RPS' NE 'SVA').NORPS 00059000
  60. AIF (T'&IOPTR NE 'O').RPSOPTB 00060000
  61. * RPS=SVA IMPLIES THE FOLLOWING OPTIONS - DISK, OUTPUT, @DL30SMT 00061000
  62. * NO I/O POINTER, TWO I/O AREAS, RETRY, NOT ASCII, @DL30SMT 00062000
  63. * SEPARATE ASSEMBLY AND READ ONLY @DL30SMT 00063000
  64. AGO .GRTY1 00064000
  65. .RPSOPTB ANOP 00065000
  66. * RPS=SVA, IOPTR=YES IMPLIES THE FOLLOWING OPTIONS - DISK, @DL30SMT 00066000
  67. * OUTPUT, NO I/O AREAS, RETRY, NOT ASCII, @DL30SMT 00067000
  68. * SEPARATE ASSEMBLY AND READ ONLY @DL30SMT 00068000
  69. AGO .GRTY3 00069000
  70. .NORPS ANOP 00070000
  71. AIF ('&TYPEFLE' NE 'INPUT').GOTPT 00071000
  72. AIF (T'&IOPTR NE 'O').GVARND 00072000
  73. AIF ('&IOAREA2' NE 'YES').GWIN 00073000
  74. AIF (T'&DISK EQ 'O').GND1 00074000
  75. &NAM SETC 'IJJC&R.D2' 00075000
  76. AGO .SEP 00076000
  77. .GVARND ANOP 00077000
  78. AIF (T'&DISK EQ 'O').GNDVAR 00078000
  79. &NAM SETC 'IJJC&R.DV2' 00079000
  80. AGO .SEP 00080000
  81. .GNDVAR ANOP 00081000
  82. &NAM SETC 'IJJC&R.V2' 00082000
  83. AGO .SEP 00083000
  84. .GND1 ANOP 00084000
  85. &NAM SETC 'IJJC&R.2' 00085000
  86. AGO .SEP 00086000
  87. .GOTPT ANOP 00087000
  88. AIF (T'&IOPTR NE 'O').GVAROD 00088000
  89. AIF ('&IOAREA2' NE 'YES').GWOUT 00089000
  90. AIF (T'&DISK EQ 'O').GND3 00090000
  91. AIF ('&RETRY' NE 'NO').GRTY1 00091000
  92. &NAM SETC 'IJJC&R.D0N' 00092000
  93. AGO .SEP 00093000
  94. .GRTY1 ANOP 00094000
  95. &NAM SETC 'IJJC&R.D0' 00095000
  96. AGO .SEP 00096000
  97. .GVAROD ANOP 00097000
  98. AIF (T'&DISK EQ 'O').GNDVO 00098000
  99. AIF ('&RETRY' NE 'NO').GRTY3 00099000
  100. &NAM SETC 'IJJC&R.DV1' 00100000
  101. AGO .SEP 00101000
  102. .GRTY3 ANOP 00102000
  103. &NAM SETC 'IJJC&R.DV' 00103000
  104. AGO .SEP 00104000
  105. .GNDVO ANOP 00105000
  106. AIF ('&RETRY' NE 'NO').GRTYV 00106000
  107. &NAM SETC 'IJJC&R.V1' 00107000
  108. AGO .SEP 00108000
  109. .GRTYV ANOP 00109000
  110. &NAM SETC 'IJJC&R.V' 00110000
  111. AGO .SEP 00111000
  112. .GND3 ANOP 00112000
  113. AIF ('&RETRY' NE 'NO').GRTYN1 00113000
  114. &NAM SETC 'IJJC&R.0N' 00114000
  115. AGO .SEP 00115000
  116. .GRTYN1 ANOP 00116000
  117. &NAM SETC 'IJJC&R.0' 00117000
  118. AGO .SEP 00118000
  119. .GWOUT ANOP 00119000
  120. AIF (T'&DISK EQ 'O').GND5 00120000
  121. AIF ('&RETRY' NE 'NO').GRTY2 00121000
  122. &NAM SETC 'IJJC&R.D1N' 00122000
  123. AGO .SEP 00123000
  124. .GRTY2 ANOP 00124000
  125. &NAM SETC 'IJJC&R.D1' 00125000
  126. AGO .SEP 00126000
  127. .GND5 ANOP 00127000
  128. AIF ('&RETRY' NE 'NO').GRTYN2 00128000
  129. &NAM SETC 'IJJC&R.1N' 00129000
  130. AGO .SEP 00130000
  131. .GRTYN2 ANOP 00131000
  132. &NAM SETC 'IJJC&R.1' 00132000
  133. AGO .SEP 00133000
  134. .GWIN ANOP 00134000
  135. AIF (T'&DISK EQ 'O').GND7 00135000
  136. &NAM SETC 'IJJC&R.D3' 00136000
  137. AGO .SEP 00137000
  138. .GND7 ANOP 00138000
  139. &NAM SETC 'IJJC&R.3' 00139000
  140. AGO .SEP 00140000
  141. .SEP1 ANOP 00141000
  142. &NAM SETC '&NAME' 00142000
  143. .SEP ANOP 00143000
  144. AIF ('&RPS' NE 'SVA').SEPNRPS 00144000
  145. PUNCH ' CATALR &NAM,34.0 ' @D34DEF4 00145000
  146. PUNCH ' PHASE &NAM,*,NOAUTO,SVA ' @DM08008 00146000
  147. AGO .OK1D 00147000
  148. .SEPNRPS ANOP 00148000
  149. PUNCH ' CATALR &NAM,34.0' @D34DEF4 00149000
  150. .OK1D ANOP 00150000
  151. IJJCPTAB DSECT 00151000
  152. AIF (T'&DISK EQ 'O' AND '&RPS' NE 'SVA').TAPES 00152000
  153. IJJCPCCB DS CL30 CCB, ADDR OF LOGIC, DTF TYPE, OPEN SW, FILE NAME 00153000
  154. IJJCOMBT EQU IJJCPCCB+2 1ST COMMUNICATION BYTE 00154000
  155. IJJCMBT2 EQU IJJCPCCB+3 2ND COMMUNICATION BYTE 00155000
  156. IJJCPCB4 EQU IJJCPCCB+4 CSW STATUS 00156000
  157. AIF (NOT &SWITCH).NOASC0 00157000
  158. IJJASCSU EQU IJJCPCCB+6 SYMBOLIC UNIT ADDRESS 3-8 00158000
  159. .NOASC0 ANOP 00159000
  160. IJJCPTCB EQU IJJCPCCB+8 CCW ADDR 00160000
  161. AIF (NOT &SWITCH).NOASC1 00161000
  162. IJJASCII EQU IJJCPCCB+16 ASCII INDICATOR 3-8 00162000
  163. .NOASC1 ANOP 00163000
  164. IJJFLNME EQU IJJCPCCB+22 FILE NAME 00164000
  165. IJJCPDDI EQU IJJCPCCB+29 DASDI DEVICE INDICATORS @DL30SMT 00165000
  166. IJJCPF1 DS CL10 F1 ADDR, WORK AREA OR FLAG & SEQ. NO. & OPEN SW 00166000
  167. IJJCPLD2 EQU IJJCPF1+2 LOAD INSTRUCTION FOR SYSTEM UNIT 00167000
  168. IJJCPXTN DS CL2 XTNT SEQ. NO. OF LAST XTNT & WORK AREA 00168000
  169. IJJCPHCD EQU IJJCPXTN FOR ADJUSTMENT OF PUNCH CODE 00169000
  170. IJJCPSWS DS CL1 DEV IND & RPS SWITCH @DL30SMT 00170000
  171. IJJC2NSW DS CL1 INDICATOR FOR OPEN AND LOGIC 00171000
  172. IJJALSW DS CL1 LOGICAL INDICATORS 00172000
  173. IJJCP2ND DS CL3 I/O AREA 00173000
  174. IJJCPSCW DS CL4 CCW OR WORK AREA 00174000
  175. IJJLOHED DS CL2 HH LOWER HEAD LIMIT 00175000
  176. IJJCPMAX DS CL6 CCHH UPPER LIMIT & BB SEEK ADDR 00176000
  177. IJJCCWE1 EQU IJJCPMAX+2 PUNCH ERROR CCW IF DEVICE IS 2540 PUNCH 00177000
  178. IJJCPSEK DS CL4 CCHH 00178000
  179. IJJCPREC DS CL4 00179000
  180. IJJCCWE2 EQU IJJCPREC PUNCH ERROR CCW2 IF DEVICE IS 2540 PUNCH 00180000
  181. IJJCPSSV EQU IJJCPREC PUNCH STACKER SELECT V CI 00181000
  182. IJJCPSSW EQU IJJCPREC+1 PUNCH STACKER SELECT W CI 00182000
  183. IJJCPEAD EQU IJJCPREC EOF ADD 00183000
  184. IJJCPUPP DS CL4 UPPER LIMIT 00184000
  185. IJJCPRMX DS CL1 NO. OF RECORDS/TRACK 00185000
  186. IJJCPSV1 EQU IJJCPRMX 80 BYTE CARD IMAGE SAVEAREA 00186000
  187. IJJFRSTR DS CL1 1 FIRST REC FOR INPUT OR OUTPUT 00187000
  188. IJJCPADJ DS CL2 ADJUSTMENT FOR CCW ADDRESS 00188000
  189. IJJCPCNT DS CL4 CCHH COUNT FIELD 00189000
  190. IJJCPCTR DS CL2 RECORD & KEY LENGTH 00190000
  191. IJJCPDAT DS CL2 DATA LENGTH 00191000
  192. IJJLOAD DS CL4 00192000
  193. IJJCPSST DS CL24 SEEK, SEARCH, TIC CCW'S 00193000
  194. IJJCPCCW DS CL16 CCW'S FOR INPUT AND OUTPUT 00194000
  195. IJJCPVER DS CL24 VERIFY CCW'S 00195000
  196. IJJECCW1 DS CL8 2540 PUNCH ERROR CCW1 00196000
  197. IJJCPSV2 EQU IJJECCW1 80 BYTE CARD IMAGE SAVEAREA 00197000
  198. IJJECCW2 DS CL8 2540 PUNCH ERROR CCW2 00198000
  199. IJJSAVEA DS CL64 RESERVED FOR SAVE AREA 00199000
  200. SPACE 2 @DL30SMT 00200000
  201. AIF (NOT &RDNLYSW).ELIM 00201000
  202. AIF ('&RPS' EQ 'SVA').RPSDSCT 00202000
  203. IJJXNTAB DSECT @DL30SMT 00203000
  204. * USER REGISTER SAVE AREA FOR READ ONLY @DL30SMT 00204000
  205. DS 0F @DL30SMT 00205000
  206. IJJCPSAF DS 0CL48 USER REGISTER SAVE AREA @DL30SMT 00206000
  207. DS CL20 @DL30SMT 00207000
  208. IJJCPTMP DS CL4 ADDRESS WORK AREA @DL30SMT 00208000
  209. DS CL4 DTF ADDR ADDR - TEMP @DL30SMT 00209000
  210. DS CL1 PARM LIST END INDICATOR @DL30SMT 00210000
  211. AIF (&SWITCH).ASC1 00211000
  212. DS CL19 NOT USED @DL30SMT 00212000
  213. AGO .DSEND1 00213000
  214. .ASC1 ANOP 00214000
  215. DS CL2 NOT USED @DL30SMT 00215000
  216. IJJASCSW DS CL1 ASCII SWITCH @DL30SMT 00216000
  217. IJJASCSV DS CL4 ASCII SAVE AREA @DL30SMT 00217000
  218. DS CL12 NOT USED @DL30SMT 00218000
  219. .DSEND1 ANOP 00219000
  220. IXEND EQU *-IJJXNTAB LENGTH OF WORK SAVE AREA@DL30SMT 00220000
  221. SPACE 2 @DL30SMT 00221000
  222. AGO .ELIM 00222000
  223. .RPSDSCT ANOP 00223000
  224. IJJXNTAB DSECT @DL30SMT 00224000
  225. * RPS DTF EXTENSION WORK AREA @DL30SMT 00225000
  226. DS CL32 SEEK, SET SECTOR, SEARCH@DL30SMT 00226000
  227. * AND TIC CCW'S @DL30SMT 00227000
  228. IJJXRDWR DS 0D READ/WRITE CCW @DL30SMT 00228000
  229. DS CL6 @DL30SMT 00229000
  230. IJJLGFLD DS CL2 . RECORD LENGTH @DL30SMT 00230000
  231. DS CL72 BALANCE OF CCW CHAIN @DL30SMT 00231000
  232. DS CL52 RESERVED @DL30SMT 00232000
  233. AIF (&SWITCH).ASC2 00233000
  234. IJJCPTMP DS CL4 ADDRESS WORK AREA @DL30SMT 00234000
  235. AGO .NASC1 00235000
  236. .ASC2 ANOP 00236000
  237. IJJASCSV DS CL4 ASCII SAVE AREA @DL30SMT 00237000
  238. .NASC1 ANOP 00238000
  239. IJJXDTF DS CL4 DTF POINTER @DL30SMT 00239000
  240. DS CL1 SECTOR VALUE @DL30SMT 00240000
  241. AIF (&SWITCH).ASC3 00241000
  242. DS CL3 @DL30SMT 00242000
  243. AGO .NASC2 00243000
  244. .ASC3 ANOP 00244000
  245. DS CL2 @DL30SMT 00245000
  246. IJJASCSW DS CL1 ASCII SWITCH @DL30SMT 00246000
  247. .NASC2 ANOP 00247000
  248. DS CL4 ORIGINAL CCW CHAIN PTR @DL30SMT 00248000
  249. DS CL4 ORIGINAL LOGIC MOD PTR @DL30SMT 00249000
  250. IJJXNSAV DS 0CL72 REGISTER SAVE AREA @DL30SMT 00250000
  251. DS CL8 @DL30SMT 00251000
  252. IJJX1312 DS 0CL64 REGISTERS 13 THRU 12 @DL30SMT 00252000
  253. IJJXRG13 DS CL4 REG 13 @DL30SMT 00253000
  254. IJJXRG14 DS CL16 REGS 14, 15, 0, 1 @DL30SMT 00254000
  255. IJJCPSAF DS CL20 REGS 2, 3, 4, 5, 6 @DL30SMT 00255000
  256. DS CL24 REGS 7, 8, 9, 10, 11, 12@DL30SMT 00256000
  257. IXEND EQU *-IJJXNTAB LENGTH OF RPS EXTENSION @DL30SMT 00257000
  258. SPACE 2 @DL30SMT 00258000
  259. AGO .ELIM 00259000
  260. .TAPES ANOP 00260000
  261. IJJCPCCB DS CL16 THE CCB 00261000
  262. IJJCOMBT EQU IJJCPCCB+2 1ST COMMUNICATION BYTE 00262000
  263. IJJCMBT2 EQU IJJCPCCB+3 2ND COMMUNICATION BYTE 00263000
  264. IJJSTSBT EQU IJJCPCCB+4 STATUS BYTES 00264000
  265. IJJLOGMD DS CL4 ADDRESS OF LOGIC MODULE 00265000
  266. IJJDTFTY DS CL1 DTF TYPE 00266000
  267. IJJSWITH DS CL1 NO. OF I/O AREAS, DEVICE TYPE 00267000
  268. IJJFLNME DS CL8 FILENAME OUTPUT 00268000
  269. IJJEOFAD EQU IJJFLNME+2 EOF ADDRESS INPUT 00269000
  270. IJJPCHCD DS CL1 TO OBTAIN CORRECT PUNCH CODES 00270000
  271. IJJCPLSW DS CL2 INDICATORS FOR LOGIC MODULE 00271000
  272. IJJALTIO DS CL3 SECOND I/O AREA 00272000
  273. IJJLOAD DS CL4 INSTRUCTION TO LOAD USER I/O REG 00273000
  274. IJJCPCCW DS CL8 THE CCW 00274000
  275. IJJIOARE EQU IJJCPCCW CCW DATA ADDRESS 00275000
  276. AIF ('&TYPEFLE' EQ 'INPUT').ELIM 00276000
  277. IJJCCWE1 DS CL8 PUNCH ERROR CCW1-OUTPUT 00277000
  278. IJJCCWE2 DS CL8 PUNCH ERROR CCW2 00278000
  279. IJJCPSSV EQU IJJCCWE2 PUNCH STACKER SELECT V CI 00279000
  280. IJJCPSSW EQU IJJCCWE2+1 PUNCH STACKER SELECT W CI 00280000
  281. IJJCPSV1 DS CL80 00281000
  282. IJJCPSV2 DS CL80 00282000
  283. .ELIM ANOP 00283000
  284. AIF (T'&NAME NE 'O').USRNM 00284000
  285. AIF (NOT &SWITCH).NOTASC 00285000
  286. IJJC&R.A1N CSECT @DL30SMT 00286000
  287. AGO .STRT 00287000
  288. .NOTASC ANOP 00288000
  289. AIF ('&RPS' NE 'SVA').NOTRPS 00289000
  290. AIF (T'&IOPTR NE 'O').RTY3 00290000
  291. AGO .RTY1 00291000
  292. .NOTRPS ANOP 00292000
  293. AIF ('&TYPEFLE' NE 'INPUT').OTPT 00293000
  294. AIF (T'&IOPTR NE 'O').VARND 00294000
  295. AIF ('&IOAREA2' NE 'YES').WIN 00295000
  296. AIF (T'&DISK EQ 'O').ND1 00296000
  297. IJJC&R.D2 CSECT 3-3 00297000
  298. IJJC&R.D3 EQU * 3-3 00298000
  299. ENTRY IJJC&R.D3 3-3 00299000
  300. AGO .STRT 00300000
  301. .VARND ANOP 00301000
  302. AIF (T'&DISK EQ 'O').NDVAR 00302000
  303. IJJC&R.DV2 CSECT 3-3 00303000
  304. AGO .STRT 00304000
  305. .NDVAR ANOP 00305000
  306. IJJC&R.V2 CSECT 3-3 00306000
  307. AGO .STRT 00307000
  308. .ND1 ANOP 00308000
  309. IJJC&R.2 CSECT 3-3 00309000
  310. IJJC&R.3 EQU * 3-3 00310000
  311. ENTRY IJJC&R.3 3-3 00311000
  312. AGO .STRT 00312000
  313. .OTPT ANOP 00313000
  314. AIF (T'&IOPTR NE 'O').VAROD 00314000
  315. AIF ('&IOAREA2' NE 'YES').WOUT 00315000
  316. AIF (T'&DISK EQ 'O').ND3 00316000
  317. AIF ('&RETRY' NE 'NO').RTY1 00317000
  318. IJJC&R.D0N CSECT 3-3 00318000
  319. IJJC&R.D1N EQU * 3-3 00319000
  320. IJJC&R.D2 EQU * 3-3 00320000
  321. IJJC&R.D3 EQU * 3-3 00321000
  322. ENTRY IJJC&R.D1N,IJJC&R.D2,IJJC&R.D3 3-3 00322000
  323. AGO .STRT 00323000
  324. .RTY1 ANOP 00324000
  325. IJJC&R.D0 CSECT 3-3 00325000
  326. AIF ('&RPS' EQ 'SVA').STRT 00326000
  327. IJJC&R.D0N EQU * 3-3 00327000
  328. IJJC&R.D1 EQU * 3-3 00328000
  329. IJJC&R.D1N EQU * 3-3 00329000
  330. IJJC&R.D2 EQU * 3-3 00330000
  331. IJJC&R.D3 EQU * 3-3 00331000
  332. ENTRY IJJC&R.D1,IJJC&R.D2,IJJC&R.D3,IJJC&R.D0N,IJJC&R.D1N 3-3 00332000
  333. AGO .STRT 00333000
  334. .VAROD ANOP 00334000
  335. AIF (T'&DISK EQ 'O').NDVO 00335000
  336. AIF ('&RETRY' NE 'NO').RTY3 00336000
  337. IJJC&R.DV1 CSECT 3-3 00337000
  338. IJJC&R.DV2 EQU * 3-3 00338000
  339. ENTRY IJJC&R.DV2 3-3 00339000
  340. AGO .STRT 00340000
  341. .RTY3 ANOP 00341000
  342. IJJC&R.DV CSECT 3-3 00342000
  343. AIF ('&RPS' EQ 'SVA').STRT 00343000
  344. IJJC&R.DV1 EQU * 3-3 00344000
  345. IJJC&R.DV2 EQU * 3-3 00345000
  346. ENTRY IJJC&R.DV1,IJJC&R.DV2 3-3 00346000
  347. AGO .STRT 00347000
  348. .NDVO ANOP 00348000
  349. AIF ('&RETRY' NE 'NO').RTYV 00349000
  350. IJJC&R.V1 CSECT 3-3 00350000
  351. IJJC&R.V2 EQU * 3-3 00351000
  352. ENTRY IJJC&R.V2 3-3 00352000
  353. AGO .STRT 00353000
  354. .RTYV ANOP 00354000
  355. IJJC&R.V CSECT 3-3 00355000
  356. IJJC&R.V1 EQU * 3-3 00356000
  357. IJJC&R.V2 EQU * 3-3 00357000
  358. ENTRY IJJC&R.V1,IJJC&R.V2 3-3 00358000
  359. AGO .STRT 00359000
  360. .ND3 ANOP 00360000
  361. AIF ('&RETRY' NE 'NO').RTYN1 00361000
  362. IJJC&R.0N CSECT 3-3 00362000
  363. IJJC&R.1N EQU * 3-3 00363000
  364. IJJC&R.2 EQU * 3-3 00364000
  365. IJJC&R.3 EQU * 3-3 00365000
  366. ENTRY IJJC&R.1N,IJJC&R.2,IJJC&R.3 3-3 00366000
  367. AGO .STRT 00367000
  368. .RTYN1 ANOP 00368000
  369. IJJC&R.0 CSECT 3-3 00369000
  370. IJJC&R.0N EQU * 3-3 00370000
  371. IJJC&R.1 EQU * 3-3 00371000
  372. IJJC&R.1N EQU * 3-3 00372000
  373. IJJC&R.2 EQU * 3-3 00373000
  374. IJJC&R.3 EQU * 3-3 00374000
  375. ENTRY IJJC&R.1,IJJC&R.2,IJJC&R.3,IJJC&R.0N,IJJC&R.1N 3-3 00375000
  376. AGO .STRT 00376000
  377. .WOUT ANOP 00377000
  378. AIF (T'&DISK EQ 'O').ND5 00378000
  379. AIF ('&RETRY' NE 'NO').RTY2 00379000
  380. IJJC&R.D1N CSECT 3-3 00380000
  381. IJJC&R.D3 EQU * 3-3 00381000
  382. ENTRY IJJC&R.D3 3-3 00382000
  383. AGO .STRT 00383000
  384. .RTY2 ANOP 00384000
  385. IJJC&R.D1 CSECT 3-3 00385000
  386. IJJC&R.D1N EQU * 3-3 00386000
  387. IJJC&R.D3 EQU * 3-3 00387000
  388. ENTRY IJJC&R.D1N,IJJC&R.D3 3-3 00388000
  389. AGO .STRT 00389000
  390. .ND5 ANOP 00390000
  391. AIF ('&RETRY' NE 'NO').RTYN2 00391000
  392. IJJC&R.1N CSECT 3-3 00392000
  393. IJJC&R.3 EQU * 3-3 00393000
  394. ENTRY IJJC&R.3 3-3 00394000
  395. AGO .STRT 00395000
  396. .RTYN2 ANOP 00396000
  397. IJJC&R.1 CSECT 3-3 00397000
  398. IJJC&R.1N EQU * 3-3 00398000
  399. IJJC&R.3 EQU * 3-3 00399000
  400. ENTRY IJJC&R.1N,IJJC&R.3 3-3 00400000
  401. AGO .STRT 00401000
  402. .WIN ANOP 00402000
  403. AIF (T'&DISK EQ 'O').ND7 00403000
  404. IJJC&R.D3 CSECT 3-3 00404000
  405. AGO .STRT 00405000
  406. .ND7 ANOP 00406000
  407. IJJC&R.3 CSECT 3-3 00407000
  408. AGO .STRT 00408000
  409. .USRNM ANOP 00409000
  410. &NAME CSECT 00410000
  411. .STRT ANOP 00411000
  412. AIF (T'&DISK EQ 'O' AND '&RPS' NE 'SVA').TPESY 00412000
  413. USING *,IJJCPBAS BASE FOR LOGIC 00413000
  414. USING IJJCPTAB,IJJCPTBB ESTABLISH BASE FOR TABLE 00414000
  415. AIF (NOT &RDNLYSW).NRPS1 00415000
  416. USING IJJXNTAB,IJJCPSAV REG 13 WORK & SAVE BASE @DL30SMT 00416000
  417. .NRPS1 ANOP 00417000
  418. AIF ('&TYPEFLE' EQ 'INPUT' AND '&RPS' NE 'SVA').ISDIF 00418000
  419. DS 0F 00419000
  420. IJJERRAD DC C'$$BERRTN' ERROR ROUTINE NAME 00420000
  421. AGO .CMTT1 00421000
  422. .ISDIF ANOP 00422000
  423. AIF (&RDNLYSW).BK001 00423000
  424. DC F'0' USED FOR DISPLACEMENT @DM11837 00424000
  425. .BK001 ANOP 00425000
  426. IJJSKP DC H'04' CONSTANT 00426000
  427. DC H'0' 00427000
  428. .CMTT1 ANOP 00428000
  429. B IJJCPGP ENTRY FOR GET 00429000
  430. B IJJCPGP ENTRY FOR PUT 00430000
  431. AIF ('&TYPEFLE' EQ 'INPUT').NOCLOS 00431000
  432. AIF (NOT &IO2SW OR T'&IOPTR NE 'O').CLOS1 00432000
  433. B IJJCLDU TEST 3540 @DA08318 00433000
  434. IJJCPNC XC IJJCPDAT(2),IJJCPDAT DSK CLOSE, ZERO DATA LTH @DA08318 00434000
  435. BAL IJJCPRGA,IJJCPDSK WRITE FILEMARK @DM08144 00435000
  436. AGO .CLOS2 00436000
  437. .CLOS1 ANOP 00437000
  438. B IJJCLDU TEST 3540 @DA08318 00438000
  439. IJJCPNC XC IJJCPDAT(2),IJJCPDAT DSK CLOSE, ZERO DATA LGTH@DA08318 00439000
  440. BAL IJJBRG,IJJCPDSK WRITE FILEMARK @DM08144 00440000
  441. .CLOS2 ANOP 00441000
  442. AIF ('&RPS' EQ 'SVA').RPS1 00442000
  443. LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGS @DM08144 00443000
  444. IJJCPNCL EQU * @DM08144 00444000
  445. AGO .CLOS3 00445000
  446. .RPS1 ANOP 00446000
  447. LM IJJCPSAV,IJJREG12,IJJXRG13 RESTORE REGS @DM08144 00447000
  448. IJJCPNCL EQU * @DM08144 00448000
  449. .CLOS3 ANOP 00449000
  450. AIF (&RDNLYSW).SVC9 00450000
  451. TM IJJCPCCB+16,IJJXBKSP Q-FROM DISK BKSP RTN @DM08144 00451000
  452. BCR 1,IJJCPRTR YES,RETURN BY REG 14 @DM08144 00452000
  453. .SVC9 ANOP 00453000
  454. SVC 9 RETURN TO CLOSE @DM08144 00454000
  455. IJJCLDU CLI IJJCPF1-1,IJJCPFDT 3540 DEVICE @DM08144 00455000
  456. BE IJJCPNCL YES,3540, GET OUT @DM08144 00456000
  457. AIF ('&RPS' EQ 'SVA').RPS2 00457000
  458. STM IJJCP1ST,IJJCPLST,IJJCPSAF SAVE USER REGS @DM08144 00458000
  459. AGO .CLOS4 00459000
  460. .RPS2 ANOP 00460000
  461. L IJJCPTBB,IJJCPTCB LOAD RPS EXIT ADDR @DM08144 00461000
  462. ST IJJCPSAV,IJJONE92(IJJCPTBB) SAVE REG 13 @DM08144 00462000
  463. LR IJJCPSAV,IJJCPTBB LOAD EXTENS. BASE @DM08144 00463000
  464. L IJJCPTBB,IJJXDTF RESTORE DTF ADDRESS @DM08144 00464000
  465. STM IJJCPRTR,IJJREG12,IJJXRG14 SAVE REGS @DM08144 00465000
  466. .CLOS4 ANOP 00466000
  467. AIF (NOT &IO2SW OR T'&IOPTR NE 'O').CLOS5 00467000
  468. B IJJCPNC PROCEED CLOSE @DA08318 00468000
  469. SPACE 1 @DM08144 00469000
  470. AGO .NOCLOS 00470000
  471. .CLOS5 ANOP 00471000
  472. B IJJCPNC PROCEED CLOSE @DA08318 00472000
  473. SPACE 1 @DM08144 00473000
  474. .NOCLOS ANOP 00474000
  475. AIF ('&RPS' EQ 'SVA').RPS3 00475000
  476. DS 0H @D34DE97 00476000
  477. DC X'FFFFD9E5FFFF' LOGIC MOD LEVEL ID @D34DE97 00477000
  478. DC X'3400' LOGIC MOD RELEASE LVL @D34DE97 00478000
  479. IJJCPGP STM IJJCP1ST,IJJCPLST,IJJCPSAF SAVE USER REGISTERS 3-3 00479000
  480. AGO .ASCLR2 00480000
  481. .RPS3 ANOP 00481000
  482. DS 0H @D34DE97 00482000
  483. DC X'FFFFD9E5FFFF' LOGIC MOD LEVEL ID @D34DE97 00483000
  484. DC X'3400' LOGIC MOD RELEASE LVL @D34DE97 00484000
  485. IJJCPGP L IJJCPTBB,IJJCPTCB LOAD RPS EXT ADDR @DL30SMT 00485000
  486. ST IJJCPSAV,IJJONE92(IJJCPTBB) SAVE REG 13 @DL30SMT 00486000
  487. LR IJJCPSAV,IJJCPTBB LOAD EXTENSION BASE @DL30SMT 00487000
  488. L IJJCPTBB,IJJXDTF RESTORE DTF ADDRESS @DL30SMT 00488000
  489. STM IJJCPRTR,IJJREG12,IJJXRG14 SAVE REGISTERS @DL30SMT 00489000
  490. .ASCLR2 ANOP 00490000
  491. AIF (NOT &SWITCH).BK007 00491000
  492. AIF (NOT &RDNLYSW).BK007 00492000
  493. NI IJJASCSW,IJJASCOF CLEAR ASCII SWITCH @DL30SMT 00493000
  494. .BK007 ANOP 00494000
  495. L IJJCPCWR,IJJCPTCB LOAD CCW ADDRESS 00495000
  496. AIF (NOT &SWITCH).NOASC2 00496000
  497. CLI IJJCPSWS,IJJASCTP IS DEVICE TAPE 3-8 00497000
  498. BNE IJJASCNO NOT A TAPE 3-8 00498000
  499. TM IJJASCII,IJJASCIS ASCII SPECIFIED 3-8 00499000
  500. BZ IJJASCNO NO 3-8 00500000
  501. TM IJJASCSU,IJJASCSY Q- SYSTEM UNIT ON ASCII TAPE 3-8 00501000
  502. BO IJJASCOK NO,BRANCH 3-8 00502000
  503. SVC 50 YES, CANCEL JOB 3-8 00503000
  504. IJJASCOK OI IJJASCSW,IJJASCMK TURN ASCII SWITCH ON 3-8 00504000
  505. ST IJJCPTBB,IJJASCSV SAVE REGISTER 3-8 00505000
  506. COMRG 3-8 00506000
  507. L IJJASCR2,136(IJJCPTBB) POINTER TO COMREG EXTENSION 3-8 00507000
  508. L IJJASCR2,44(IJJASCR2) POINTER TO TRANSLATE TABLE 3-8 00508000
  509. L IJJCPTBB,IJJASCSV RESTORE REGISTER 3-8 00509000
  510. IJJASCNO CLI IJJCPF1,IJJCPSYT IS DISK POSSIBLE WITH THIS TABLE 3-8 00510000
  511. AGO .NOASC3 00511000
  512. .NOASC2 ANOP 00512000
  513. CLI IJJCPF1,IJJCPSYT IS DISK POSSIBLE WITH THIS TABLE 3-8 00513000
  514. .NOASC3 ANOP 00514000
  515. AIF (NOT &IO2SW OR T'&IOPTR NE 'O').STWON 00515000
  516. BE IJJCPST NO 00516000
  517. AGO .ADDJ 00517000
  518. .STWON ANOP 00518000
  519. BE IJJCPIO NO 00519000
  520. .ADDJ ANOP 00520000
  521. AH IJJCPCWR,IJJCPADJ ADJUST ADDRESS FOR TABLE TYPE 00521000
  522. AIF ('&RPS' NE 'SVA').NRPS2 00522000
  523. LA IJJCPCWR,IJJEIGHT(IJJCPCWR) ADD MORE FOR RPS @DL30SMT 00523000
  524. .NRPS2 ANOP 00524000
  525. AIF ('&TYPEFLE' EQ 'INPUT' AND '&RPS' NE 'SVA').INMD 00525000
  526. AIF (NOT &IO2SW OR T'&IOPTR NE 'O').WOTMD 00526000
  527. IJJCPST TM IJJALSW,IJJCP2FT OVERLAP AND/OR FIRST PASS 00527000
  528. BO IJJCPSLO NOT FIRST PASS, BUT OVERLAP 00528000
  529. BAL IJJCPRGA,IJJCPIO GET I/O 00529000
  530. IJJCPSLO BAL IJJBRG,IJJWCHED WAIT FOR CHANNEL END 00530000
  531. IJJCPUNX TM IJJCPCB4,IJJCPNEX HAS UNIT EXCEPTION OCCURRED 00531000
  532. BO IJJCPMG1 YES 3-8 00532000
  533. TM IJJALSW,X'80' Q - INPUT OR OUTPUT FILE 3-10 00533000
  534. BZ IJJCPTOV IF OUTPUT FILE BYPASS /* CHECK 3-10 00534000
  535. CLI IJJCPDDI,IJJCPFDT DEVICE 3540 @DL30SMT 00535000
  536. BNE IJJCPF01 NO, CONTINUE @DL29R05 00536000
  537. TM IJJCMBT2,IJJCHEND ' SPECIAL RECORD ' @DL29R05 00537000
  538. BZ IJJCPF01 NO, CONTINUE @DL29R05 00538000
  539. OI IJJCPLD2+6,IJJCPX40 SET DELETE REC SW @DL29R05 00539000
  540. XI IJJCMBT2,IJJCHEND SET OFF SPECIAL REC SW @DL29R05 00540000
  541. AIF ('&RPS' NE 'SVA').NRPS3 00541000
  542. IJJCPF01 L IJJCTL,IJJXRDWR LOAD INPUT AREA ADDRESS @DL30SMT 00542000
  543. AGO .RPS6 00543000
  544. .NRPS3 ANOP 00544000
  545. IJJCPF01 L IJJCTL,IJJCPCCW LOAD I/O AREA ADDR @DL29R05 00545000
  546. .RPS6 ANOP 00546000
  547. LA IJJCTL,0(IJJCTL) CLEAR HI ORDER BTYE @DL30SMT 00547000
  548. CLC 0(3,IJJCTL),IJJEOF HAS /* BEEN READ @DA10192 00548000
  549. BNE IJJCPTOV NO 3-8 00549000
  550. IJJCPMG1 TM IJJCPSWS,IJJCPRT IS DEVICE A PRINTER 3-8 00550000
  551. BO IJJCPTOV YES HANDLED BY LINE COUNT 00551000
  552. TM IJJALSW,IJJTPHLT IS THIS SYSPCH OR SYSLST ON OUTPUT TAPE 00552000
  553. BO IJJCPEOV TO EOV ROUTINE 00553000
  554. IJJCPEND EQU * EOF PT FOR 3540 @DL29R05 00554000
  555. L IJJCPZRO,IJJCPEAD EOF ADDRESS TO RETURN REGISTER 00555000
  556. B IJJCEXEC BRANCH TO EOF ADDRESS 3-10 00556000
  557. IJJCPEOV LR IJJDTFPS,IJJCPTBB ADDRESS OF DTF TABLE TO REGISTER 00557000
  558. LH IJJZRO,6(IJJDTFPS) PASS LOGICAL UNIT AND CLASS 00558000
  559. LA IJJCPTBB,IJJFLNME ADDRESS OF MULTI-VOLUME ROUTINE NAME 00559000
  560. SVC 2 CALL IN TRANSIENT TO HANDLE EOV CONDITION 00560000
  561. LR IJJCPTBB,IJJDTFPS RESTORE DTF TABLE ADDRESS TO REGISTER1 00561000
  562. IJJCPTOV TM IJJALSW,IJJCPOLP ARE THER E 2 I/O AREAS 00562000
  563. BZ IJJRTRN NO 00563000
  564. XC IJJCP2ND(3),1(IJJCPCWR) SWAP I/O AREAS 00564000
  565. XC 1(3,IJJCPCWR),IJJCP2ND NEW I/O AREA ADDRESS TO CCW 00565000
  566. EX 0,*-12 COMPLETE THE EXCHANGE 00566000
  567. BAL IJJCPRGA,IJJCPIO GET I/O 00567000
  568. IJJRTRN LR IJJZRO,IJJCPRTR SAVE RETURN REGISTER 00568000
  569. L IJJCPRTR,IJJALSW NEXT I/O AREA 00569000
  570. TM IJJCPSWS,IJJCPTPH IS DEVICE A PRINTER OR PUNCH 00570000
  571. BZ IJJCEXEC BRANCH TO EOF ADDRESS 3-10 00571000
  572. BCTR IJJCPRTR,0 POINT TO CONTROL CHAR 3-10 00572000
  573. AIF ('&RPS' EQ 'SVA').RPS7 00573000
  574. IJJCEXEC LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGISTERS 3-3 00574000
  575. AGO .BK009B 00575000
  576. .RPS7 ANOP 00576000
  577. IJJCEXEC LM IJJCP1ST,IJJREG12,IJJCPSAF RESTORE REGISTERS @DL30SMT 00577000
  578. L IJJCPSAV,IJJXRG13 RESTORE EXTN ADDR @DL30SMT 00578000
  579. .BK009B ANOP 00579000
  580. TM IJJCPF1,IJJCPSYT IS THIS A SYSTEM UNIT TABLE 00580000
  581. BO IJJCPSLD YES 00581000
  582. TM IJJCPSWS,IJJCPMFC TEST MFCM/U CI 00582000
  583. BNZ IJJCPSLD YES CI 00583000
  584. EX 0,IJJLOAD LOAD I/O REG 00584000
  585. B IJJCPRES 00585000
  586. IJJCPSLD EX 0,IJJCPLD2 LOAD I/O REGISTER 00586000
  587. IJJCPRES LR IJJCPRTR,IJJCPZRO RESTORE RETURN REGISTER 00587000
  588. OI IJJALSW,IJJCPNTF INDICATE NOT FIRST PASS 00588000
  589. CLI IJJCPF1-1,IJJCPFDT 3540 DEVICE ? @DL29R05 00589000
  590. BNE IJJCPF50 NO, CONTINUE @DL29R05 00590000
  591. TM IJJCPLD2+6,IJJCPX40 'DELETE REC' SW ON ? @DL29R05 00591000
  592. BZ IJJCPF50 NO, CONTINUE @DL29R05 00592000
  593. XI IJJCPLD2+6,IJJCPX40 SET OFF DELETE SW @DL29R05 00593000
  594. B IJJCPGP IGNORE READ @DL29R05 00594000
  595. IJJCPF50 EQU * TO USER @DL29R05 00595000
  596. BR IJJCPRTR TO USER 00596000
  597. .WOTMD ANOP 00597000
  598. AIF (T'&IOPTR EQ 'O').NDVRY 00598000
  599. IJJCPIO TM IJJCPSWS,IJJDSKTP IS THIS A TAPE OR A DISK 00599000
  600. BZ IJJCPSTO NO 00600000
  601. TM IJJALSW,IJJLSTPH IS THIS SYSLST OR SYSPCH 00601000
  602. BZ IJJCPSTO NO 00602000
  603. BCTR IJJIOPTR,IJJIOPTR POINT TO CONTROL CHARACTER 00603000
  604. IJJCPSTO ST IJJIOPTR,IJJCPTMP STORE DATA ADDRESS 3-3 00604000
  605. MVC 1(3,IJJCPCWR),IJJCPTMP+1 MOVE ADDRESS TO CCW 3-3 00605000
  606. TM IJJC2NSW,IJJCPRTD IS DEVICE READER, TAPE OR DISK 00606000
  607. AGO .IOCOM 00607000
  608. .NDVRY ANOP 00608000
  609. IJJCPIO TM IJJC2NSW,IJJCPRTD IS DEVICE READER, TAPE OR DISK 00609000
  610. .IOCOM ANOP 00610000
  611. BO IJJCPDSK A DISK 00611000
  612. BM IJJCPCAL DEVICE IS READER OR TAPE 00612000
  613. TM IJJALSW,IJJCPEJT EJECT NEEDED FOR READER-PUNCH CI 00613000
  614. BZ IJJCPMF1 NO EJECT NEEDED CI 00614000
  615. NI IJJALSW,IJJCPNEJ INDICATE NO EJECT NEEDED CI 00615000
  616. BAL IJJBRG,IJJCAL2 EJECT FIRST CARD CI 00616000
  617. IJJCPMF1 L IJJCPCTL,0(IJJCPCWR) MUST BE PUNCH OR PRINTER CI 00617000
  618. BCTR IJJCPCTL,0 POINT TO CONTROL CHAR 00618000
  619. TM IJJCPSWS,IJJCPMFC TEST MFCM/U CI 00619000
  620. BZ IJJCPTAS NO, TEST ASA CONTROL CHAR CI 00620000
  621. OI IJJCPSCW+4,X'60' SET CHAIN BIT IN 1ST CCW CI 00621000
  622. MVC IJJCPSCW(1),IJJCPSSW STACKER SELECT W TO 1ST CCW CI 00622000
  623. CLI 0(IJJCPCTL),IJJCPTCW TEST W CONTROL CHAR CI 00623000
  624. BE IJJCPAD8 RETURN CI 00624000
  625. MVC IJJCPSCW(1),IJJCPSSV STACKER SELECT V TO 1ST CCW CI 00625000
  626. CLI 0(IJJCPCTL),IJJCPTCV TEST V CONTROL CHAR CI 00626000
  627. BE IJJCPAD8 RETURN CI 00627000
  628. MVC IJJCPSCW(1),0(IJJCPCTL) CURRENT CTL CHAR TO 1ST CCW CI 00628000
  629. IJJCPAD8 B IJJCPCAL BRANCH TO GET I/O CI 00629000
  630. IJJCPTAS EQU * CI 00630000
  631. LR IJJCMP,IJJCPZRO 00631000
  632. IC IJJCPZRO,0(IJJCPCTL) CONTROL CHAR TO REG 00632000
  633. LA IJJCPCTL,IJJNUMCH NO. OF CHAR TO COMPARE 00633000
  634. IJJCPLUP IC IJJCMP,IJJCPASA(IJJCPCTL) ASA CHAR FROM TABLE 00634000
  635. CR IJJCMP,IJJCPZRO SAME CHAR 00635000
  636. BE IJJCFOND YES-THIS IS THE ONE 00636000
  637. BCT IJJCPCTL,IJJCPLUP NOT THE ONE, CHECK NEXT 00637000
  638. IJJCFOND CH IJJCPCTL,IJJSKP IS COMMAND A SKIP 00638000
  639. BNL IJJMOV NO, NOT A SKIP CI 00639000
  640. MVI 0(IJJCPCWR),IJJCPSP SPACE COMMAND TO CCW 00640000
  641. BAL IJJBRG,IJJCAL2 SPACE FROM CHANNEL 00641000
  642. IJJMOV LA IJJCPCTL,IJJCP360(IJJCPCTL) CONTROL CHAR ADDR 00642000
  643. MVC 0(1,IJJCPCWR),0(IJJCPCTL) CONTROL CHARACTER TO CCW 00643000
  644. OC 0(1,IJJCPCWR),IJJCPHCD PRODUCE CORRECT PUNCH CODE 00644000
  645. AIF ('&RETRY' EQ 'NO' AND &SWITCH).NNRTY1 00645000
  646. AIF ('&RETRY' EQ 'NO' AND '&RPS' NE 'SVA').NNRTY1 00646000
  647. TM IJJALSW,IJJ2540 IS DEVICE 2540 PUNCH 00647000
  648. BZ IJJCPCAL NO, GET I/O 00648000
  649. IJJCPWDE TM IJJCOMBT,IJJDEVED WAIT FOR DEVICE END 00649000
  650. BO *+6 00650000
  651. SVC 7 WAIT 00651000
  652. TM IJJCMBT2,IJJCP010 TEST IF PUNCH ERROR 00652000
  653. BZ IJJSAVE NO, SAVE CARD IMAGES AND COMMAND CODES 00653000
  654. IJJERRTN CLC IJJCPDAT(2),IJJDTZRO ENTERED FROM CLOSE 3-8 00654000
  655. BNE IJJERROR NO, BRANCH TO ERROR RTN 3-8 00655000
  656. OI IJJFRSTR,IJJNOEOF INDICATE NO EOF WRITTEN 3-8 00656000
  657. BR IJJBRG RETURN TO CORRECT INSTRUCTION 3-8 00657000
  658. IJJERROR LR IJJBRG,IJJCPTBB ADDRESS OF DTF TABLE TO REG 4 3-8 00658000
  659. LA IJJCPTBB,IJJERRAD ADDRESS OF ERROR RECOVERY ROUTINE NAME 00659000
  660. SVC 2 CALL IN TRANSIENT ROUTINE 00660000
  661. LR IJJCPTBB,IJJBRG RESTORE DTF TABLE ADDRESS TO REGISTER 1 00661000
  662. IJJSAVE MVC IJJCCWE2(1),IJJCCWE1 OPCODE 1ST ERR CCW INTO 2ND ERR CCW 00662000
  663. MVC IJJCCWE1(1),IJJCPSCW OPCODE CURRENT CCW TO 1ST ERR CCW 00663000
  664. MVC IJJCPSV2(80),IJJCPSV1 CARD IMAGE FROM SVAREA1 TO SVAREA2 00664000
  665. L IJJIOADR,IJJCPSCW CALCULATE CURRENT I/O AREA ADDRESS 00665000
  666. MVC IJJCPSV1(80),0(IJJIOADR) SAVE CURRENT CARD IMAGE 00666000
  667. .NNRTY1 ANOP 00667000
  668. AIF (NOT &IO2SW OR T'&IOPTR NE 'O').ONE 00668000
  669. IJJCPCAL SVC 0 GET I/O 00669000
  670. TM IJJCPSWS,IJJCPRT IS THIS A PRINTER 00670000
  671. BCR 8,IJJCPRGA NOT PRINTER, GO TO CORRECT INSTRUCT 00671000
  672. BAL IJJBRG,IJJWCHED A PRINTER, WAIT FOR CHANNEL END 00672000
  673. MVI 0(IJJCPCWR),IJJCPRTC MOVE PRINT COMMAND TO CCW 00673000
  674. SVC 0 START I/O FOR ACTUAL PRINT 00674000
  675. BR IJJCPRGA TO CORRECT INSTRUCTION 00675000
  676. IJJCAL2 SVC 0 START I/O FOR CONTROL 00676000
  677. IJJWCHED TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 00677000
  678. BO *+6 00678000
  679. SVC 7 WAIT 00679000
  680. TM IJJCPSWS,IJJCPMFC MULTIFUNC CARD MCH ? @DA11146 00680000
  681. BZR IJJBRG IF NOT BRANCH @DA11146 00681000
  682. TM IJJALSW,X'80' INPUT OR OUTPUT FILE ? @DA11146 00682000
  683. BOR IJJBRG IF INPUT FILE BRANCH @DA11146 00683000
  684. LA IJJCPCWR,IJJCPSCW GET CCW ADDR. @DA11146 00684000
  685. ST IJJCPCWR,IJJCPTCB STORE CCW ADDR. @DA11146 00685000
  686. AH IJJCPCWR,IJJCPADJ ADJUST CCW ADDR. @DA11146 00686000
  687. BR IJJBRG RETURN TO CORRECT INSTRUCTION 00687000
  688. AGO .COMT 00688000
  689. .ONE ANOP 00689000
  690. IJJCPCAL BAL IJJBRG,IJJCAL2 GET I/O 00690000
  691. TM IJJCPSWS,IJJCPRT IS THIS A PRINTER 00691000
  692. BZ IJJUNITX NOT A PRINTER 00692000
  693. IJJPWT MVI 0(IJJCPCWR),IJJCPRTC PRINTER, MOVE PRINT COMMAND TO CCW 00693000
  694. BAL IJJBRG,IJJCAL2 00694000
  695. IJJUNITX TM IJJCPCB4,IJJCPNEX HAS UNIT EXCEPTION OCCURRED 00695000
  696. BO IJJCPMG3 GO TO EOF 3-8 00696000
  697. TM IJJALSW,X'80' Q - INPUT OR OUTPUT FILE 3-10 00697000
  698. BZ IJJC1RT IF OUTPUT FILE BYPASS /* CHECK 3-10 00698000
  699. AIF ('&RPS' EQ 'SVA').RPS9 00699000
  700. L IJJCTL,IJJCPCCW LOAD I/O AREA ADDRESS 3-8 00700000
  701. AGO .NRPS4 00701000
  702. .RPS9 ANOP 00702000
  703. L IJJCTL,IJJXRDWR LOAD INPUT AREA ADDRESS @DL30SMT 00703000
  704. .NRPS4 ANOP 00704000
  705. LA IJJCTL,0(IJJCTL) CLEAR HI ORDER BTYE @DL30SMT 00705000
  706. CLC 0(3,IJJCTL),IJJEOF HAS /* BEEN READ @DA10192 00706000
  707. BNE IJJC1RT NO 00707000
  708. IJJCPMG3 TM IJJALSW,IJJTPHLT Q- SYSLST OR SYSPCH ON OUTPUT TAPE 00708000
  709. BO IJJCPEOV TO EOV ROUTINE 00709000
  710. TM IJJCPSWS,IJJCPRT A PRINTER 00710000
  711. BO IJJC1RT YES, HANDLED BY USER LINE COUNT 00711000
  712. IJJCPEND EQU * EOF PT FOR 3540 @DL29R05 00712000
  713. L IJJCPRTR,IJJCPEAD EOF ADDRESS TO RETURN REGISTER 00713000
  714. AIF ('&RPS' EQ 'SVA').RPS10 00714000
  715. IJJC1RT LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGISTERS 3-3 00715000
  716. AGO .NRPS5 00716000
  717. .RPS10 ANOP 00717000
  718. IJJC1RT LM IJJCP1ST,IJJREG12,IJJCPSAF RESTORE REGISTERS @DL30SMT 00718000
  719. L IJJCPSAV,IJJXRG13 RESTORE EXTN ADDR @DL30SMT 00719000
  720. .NRPS5 ANOP 00720000
  721. OI IJJALSW,IJJCPNTF INDICATE NOT FIRST PASS @DL30SMT 00721000
  722. CLI IJJCPF1-1,IJJCPFDT 3540 ? @DL29R05 00722000
  723. BNE IJJCPF50 NO, CONTINUE @DL29R05 00723000
  724. TM IJJCMBT2,IJJCHEND 'SPECIAL RECORD ' ? @DL29R05 00724000
  725. BZ IJJCPF50 NO, CONTINUE @DL29R05 00725000
  726. XI IJJCMBT2,IJJCHEND SET OF 'SPEC REC' SW @DL29R05 00726000
  727. B IJJCPGP IGNORE RECORD @DL29R05 00727000
  728. IJJCPF50 EQU * CONTINUE @DL29R05 00728000
  729. BR IJJCPRTR TO USER 00729000
  730. AGO .COMT 00730000
  731. .INMD ANOP 00731000
  732. AIF (T'&IOPTR NE 'O' OR NOT &IO2SW).WIMD 00732000
  733. IJJCPST TM IJJALSW,IJJCP2FT OVERLAP AND/OR 1ST PASS 00733000
  734. BO IJJSLOWI NOT FIRST PASS, BUT OVERLAP 00734000
  735. BAL IJJCPRGA,IJJCP2IO GET I/O 00735000
  736. IJJSLOWI TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 00736000
  737. BO *+6 00737000
  738. SVC 7 WAIT 00738000
  739. TM IJJCPSWS,IJJCPDSC IS THIS A DISK 00739000
  740. BZ IJJCPINX NO 00740000
  741. IC IJJCTL,IJJCPREC PICK UP REC NO. 00741000
  742. LA IJJCTL,1(IJJCTL) ADD ONE 00742000
  743. STC IJJCTL,IJJCPREC STROE NEW REC NO. IN SEARCH ADDR 00743000
  744. IJJCPINX TM IJJCPCB4,IJJCPNEX HAS UNIT EXCEPTION OCCURRED 00744000
  745. BO IJJCPMG2 00745000
  746. TM IJJALSW,X'80' Q - INPUT OR OUTPUT FILE 3-10 00746000
  747. BZ IJJTEST IF OUTPUT FILE BYPASS /* CHECK 3-10 00747000
  748. CLI IJJCPF1-1,IJJCPFDT 3540 ? @DL29R05 00748000
  749. BNE IJJCPF01 NO, CONTINUE @DL29R05 00749000
  750. TM IJJCMBT2,IJJCHEND ' SPEC REC ' ? @DL29R05 00750000
  751. BZ IJJCPF01 NO, CONTINUE @DL29R05 00751000
  752. OI IJJCPLD2+6,IJJCPX40 SET DELETE REC SW @DL29R05 00752000
  753. XI IJJCMBT2,IJJCHEND SET OFF SPEC REC SW @DL29R05 00753000
  754. IJJCPF01 EQU * CONTINUE @DL29R05 00754000
  755. L IJJCTL,0(IJJCPCWR) LOAD I/O AREA ADDR CI 00755000
  756. LA IJJCTL,0(IJJCTL) CLEAR HI ORDER BYTE 3-8 00756000
  757. CLC 0(3,IJJCTL),IJJEOF HAS /* BEEN READ @DA10192 00757000
  758. BNE IJJTEST 3-8 00758000
  759. IJJCPMG2 EQU * 00759000
  760. AGO .COMN 00760000
  761. .WIMD ANOP 00761000
  762. AIF (T'&IOPTR EQ 'O').NDVRI 00762000
  763. IJJCPIO ST IJJIOPTR,IJJCPTMP STORE DATA ADDRESS 3-3 00763000
  764. MVC 1(3,IJJCPCWR),IJJCPTMP+1 MOVE ADDRESS TO CCW 3-3 00764000
  765. TM IJJCPSWS,IJJCPDSC IS THIS A DISK 3-3 00765000
  766. AGO .NDVR2 00766000
  767. .NDVRI ANOP 00767000
  768. IJJCPIO TM IJJCPSWS,IJJCPDSC IS DEVICE A DISK 00768000
  769. .NDVR2 ANOP 00769000
  770. BO IJJCPDSK YES 00770000
  771. IJJCNDSK SVC 0 EXCP 00771000
  772. IJJC2SLO TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 00772000
  773. BO *+6 00773000
  774. SVC 7 WAIT 00774000
  775. TM IJJCPSWS,IJJCPDSC IS THIS A DISK 00775000
  776. BZ IJJWINX NO 00776000
  777. IC IJJCTL,IJJCPREC PIK UP REC NO. 00777000
  778. LA IJJCTL,1(IJJCTL) ADD ONE 00778000
  779. STC IJJCTL,IJJCPREC STROE NEW REC NO. IN SEARCH ADDR 00779000
  780. IJJWINX TM IJJCPCB4,IJJCPNEX HAS UNIT EXCEPTION OCCURRED 00780000
  781. BO IJJCPMG4 YES 3-8 00781000
  782. TM IJJALSW,X'80' Q - INPUT OR OUTPUT FILE 3-10 00782000
  783. BZ IJJCNOEX IF OUTPUT FILE BYPASS /* CHECK 3-10 00783000
  784. L IJJCTL,0(IJJCPCWR) LOAD I/O AREA ADDRESS CI 00784000
  785. LA IJJCTL,0(IJJCTL) CLEAR HI ORDER BTYE 3-8 00785000
  786. CLC 0(3,IJJCTL),IJJEOF HAS /* BEEN READ @DA10192 00786000
  787. BNE IJJCNOEX NO 3-8 00787000
  788. IJJCPMG4 EQU * 3-8 00788000
  789. .COMN ANOP 00789000
  790. AIF (&IO2SW AND T'&IOPTR EQ 'O').TWIN 00790000
  791. IJJCPEND EQU * EOF PT FOR 3540 @DL29R05 00791000
  792. L IJJCPRTR,IJJCPEAD EOF ADDRESS TO RETURN REGISTER 00792000
  793. IJJCNOEX LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGISTERS 3-3 00793000
  794. CLI IJJCPF1-1,IJJCPFDT 3540 ? @DL29R05 00794000
  795. BNE IJJCPF50 NO, CONTINUE @DL29R05 00795000
  796. TM IJJCMBT2,IJJCHEND ' SPEC REC ' ? @DL29R05 00796000
  797. BZ IJJCPF50 NO, CONTINUE @DL29R05 00797000
  798. XI IJJCMBT2,IJJCHEND SET OFF SPEC REC SW @DL29R05 00798000
  799. B IJJCPGP IGNORE RECORD @DL29R05 00799000
  800. IJJCPF50 EQU * CONTINUE @DL29R05 00800000
  801. BR IJJCPRTR TO USER 00801000
  802. AGO .COMT1 00802000
  803. .TWIN ANOP 00803000
  804. AIF ('&RPS' EQ 'SVA').TWIN1 00804000
  805. IJJCPEND EQU * EOF PT FOR 3540 @DL29R05 00805000
  806. .TWIN1 ANOP 00806000
  807. L IJJCPZRO,IJJCPEAD EOF ADDR TO RETURN REGISTER @DL30SMT 00807000
  808. B IJJEXEC BRANCH TO EOF ADDRESS 00808000
  809. IJJTEST TM IJJALSW,IJJCPOLP ARE THERE 2 I/O AREAS 00809000
  810. BZ IJJRTRN NO 00810000
  811. XC IJJCP2ND(3),1(IJJCPCWR) SWAP I/O AREAS 00811000
  812. XC 1(3,IJJCPCWR),IJJCP2ND NEW I/O AREA ADDRESS TO CCW 00812000
  813. EX 0,*-12 COMPLETE THE EXCHANGE 00813000
  814. BAL IJJCPRGA,IJJCP2IO GET I/O 00814000
  815. IJJRTRN LR IJJCPZRO,IJJCPRTR SAVE RETURN REGISTER 00815000
  816. L IJJCPRTR,IJJCP2ND-1 NEXT I/O AREA 00816000
  817. IJJEXEC LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGISTERS 3-3 00817000
  818. TM IJJCPF1,IJJCPSYT IS THIS A SYSTEM UNIT TABLE 00818000
  819. BO IJJC2SLD YES 00819000
  820. EX 0,IJJLOAD LOAD I/O REG 00820000
  821. B IJJC2RES 00821000
  822. IJJC2SLD EX 0,IJJCPLD2 LOAD I/O REG 00822000
  823. IJJC2RES LR IJJCPRTR,IJJCPZRO RESTORE RETURN REGISTER 00823000
  824. OI IJJALSW,IJJCPNTF INDICATE NOT FIRST PASS 00824000
  825. CLI IJJCPF1-1,IJJCPFDT 3540 ? @DL29R05 00825000
  826. BNE IJJCPF50 NO, CONTINUE @DL29R05 00826000
  827. TM IJJCPLD2+6,IJJCPX40 'DELETE ' REC SW ON @DL29R05 00827000
  828. BZ IJJCPF50 NO, CONTINUE @DL29R05 00828000
  829. XI IJJCPLD2+6,IJJCPX40 SET OFF ' DELETE' SW @DL29R05 00829000
  830. B IJJCPGP IGNORE RECORD @DL29R05 00830000
  831. IJJCPF50 EQU * CONTINUE @DL29R05 00831000
  832. BR IJJCPRTR TO USER 00832000
  833. IJJCP2IO TM IJJCPSWS,IJJCPDSC IS DEVICE A DISK 00833000
  834. BO IJJCPDSK YES 00834000
  835. IJJCNDSK SVC 0 EXCP 00835000
  836. BR IJJCPRGA TO CORRECT INSTRUCT 00836000
  837. .COMT1 ANOP 00837000
  838. IJJCPDSK CLC IJJCPREC(1),IJJCPRMX HAS REC LIMIT BEEN REACHED 00838000
  839. AGO .CMTT2 00839000
  840. .COMT ANOP 00840000
  841. IJJCPDSK MVC IJJCPREC(1),IJJCPCTR UPDATE SEEK RECORD NO. 00841000
  842. CLC IJJCPREC(1),IJJCPRMX HAS REC LIMIT BEEN REACHED 00842000
  843. .CMTT2 ANOP 00843000
  844. BNE IJJDKFST NO 00844000
  845. AIF ('&TYPEFLE' EQ 'INPUT' OR &IO2SW).CMTT2A 00845000
  846. LR IJJCPRGA,IJJBRG SAVE RETURN REGISTER 00846000
  847. .CMTT2A ANOP 00847000
  848. L IJJWRK,IJJCPSEK PICK UP CCHH 4-0 00848000
  849. AH IJJWRK,IJJCPONE ADD 1 TO HEAD 4-0 00849000
  850. LR IJJCTL,IJJWRK EQUATE REGISTERS 4-0 00850000
  851. IC IJJCTL,IJJCPUPP+3 TAKE UPPER HEAD LIMIT 4-0 00851000
  852. CR IJJWRK,IJJCTL COMPARE HEADS 4-0 00852000
  853. BNH IJJCPSTS BRANCH IF LIMIT NOT EXCEEDED4-0 00853000
  854. A IJJWRK,IJJCPONE ADD 1 TO CYLINDER 4-0 00854000
  855. IC IJJWRK,IJJLOHED+1 SET LOWER HEAD LIMIT 4-0 00855000
  856. IJJCPSTS ST IJJWRK,IJJCPSEK UPDATE SEEK FIELD 4-0 00856000
  857. AIF ('&TYPEFLE' EQ 'INPUT' AND '&RPS' NE 'SVA').CPCOMN 00857000
  858. AIF (&IO2SW).CMTT2B 00858000
  859. LR IJJBRG,IJJCPRGA RESTORE RETURN REG 00859000
  860. .CMTT2B ANOP 00860000
  861. CLC IJJCPSEK(4),IJJCPMAX UPPER XTENT EXCEEDED 00861000
  862. BL IJJCPF05 NO, CONTINUE @DL29R05 00862000
  863. BE IJJCPF02 TEST IF 3540 @DL29R05 00863000
  864. CLI IJJCPF1-1,IJJCPFDT 3540 DEVICE @DL29R05 00864000
  865. BNE IJJERRTN CANCEL JOB @DL29R05 00865000
  866. BE IJJCPF03 YES, ISSUE FEED @DL29R05 00866000
  867. IJJCPF02 CLI IJJCPF1-1,IJJCPFDT 3540 DEVICE @DL29R05 00867000
  868. BNE IJJCPF05 NO, CONTINUE @DL29R05 00868000
  869. AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').NOIOA2 00869000
  870. TM IJJALSW,IJJCHEND INPUT FILE @DL29R05 00870000
  871. BZ IJJCPF03 NO, OUTPUT, CONTINUE @DL29R05 00871000
  872. TM IJJALSW,IJJCPOLP DUAL I/O AREAS @DL29R05 00872000
  873. BZ IJJCPF03 NO, AT EOE, HANDLE IT @DL29R05 00873000
  874. TM IJJCPLD2+6,IJJCHEND MORE EXTENTS @DL29R05 00874000
  875. BZ IJJCPF03 YES, BRANCH TO FEED @DL29R05 00875000
  876. MVC IJJCPREC(1),IJJFRSTR MOVE 1ST REC TO PASTN @DL29R05 00876000
  877. B IJJRTRN GIVE USER LAST REC @DL29R05 00877000
  878. .NOIOA2 ANOP 00878000
  879. IJJCPF03 TM IJJCPLD2+6,IJJCHEND MORE EXTENTS @DL29R05 00879000
  880. BZ IJJCPFA3 YES, FEED @DL29R05 00880000
  881. TM IJJALSW,IJJCHEND INPUT FILE @DL29R05 00881000
  882. BZ IJJCPF04 NO, OUTPUT, GET EXTENT @DL29R05 00882000
  883. B IJJCPEND BR TO USER EOF RTN @DL29R05 00883000
  884. IJJCPFA3 LA IJJWRK,IJJCPFED LA OF FEED CCW @DL29R05 00884000
  885. ST IJJWRK,IJJCPTCB SET CCB CCW ADDRS @DL29R05 00885000
  886. SVC 0 ISSUE FEED TO 3540 @DL29R05 00886000
  887. TM IJJCOMBT,IJJCHEND TEST FOR CHAN END @DL29R05 00887000
  888. BO *+6 YES, CONTINUE @DL29R05 00888000
  889. SVC 7 WAIT @DL29R05 00889000
  890. LA IJJWRK,IJJCPSST PT TO PROPER CCW @DL29R05 00890000
  891. ST IJJWRK,IJJCPTCB SET CCB CCW ADDRS @DL29R05 00891000
  892. IJJCPF04 STM IJJZRO,IJJCPLST,IJJCPSAF+20 SAVE REGS 0-6 @DL29R05 00892000
  893. MVI IJJCPSAF+28,IJJCPSYT SET PARM LIST END IND @DL29R05 00893000
  894. LA IJJZRO,IJJCPSAF+24 SET UP DTF ADRS ADRS @DL29R05 00894000
  895. LA IJJCPTBB,IJJCPFDR PT TO OPEN TRANS. NAME @DL29R05 00895000
  896. SVC 2 CALL OPEN TRANSIENT @DL29R05 00896000
  897. MVI IJJCPSAF+28,IJJCPZRO RESET PARM LIST END IND @DL29R05 00897000
  898. LM IJJZRO,IJJCPLST,IJJCPSAF+20 RSTR REGS 0-6 @DL29R05 00898000
  899. IJJCPF05 MVC IJJCPREC(1),IJJFRSTR MOVE 1ST REC TO POSITION @DL29R05 00899000
  900. MVC IJJCPCNT(4),IJJCPSEK MOVE IN ID 00900000
  901. IJJDKFST IC IJJCTL,IJJCPREC PICK UP RECORD NO. 00901000
  902. LA IJJCTL,1(IJJCTL) ADD ONE 00902000
  903. STC IJJCTL,IJJCPCTR STORE IN COUNT FIELD 00903000
  904. AIF (&IO2SW AND T'&IOPTR EQ 'O').XCP1 00904000
  905. CLC IJJCPDAT(2),IJJDTZRO ENTERED FROM CLOSE 00905000
  906. BNE IJJCPCAL NO GET I/O 00906000
  907. AIF (NOT &SWITCH).NOASC4 00907000
  908. IJJCAL2 TM IJJASCSW,IJJASCMK ASCII SWITCH ON 3-8 00908000
  909. BZ IJJASCN1 NO 3-8 00909000
  910. AH IJJASCR2,IJJASCHW PTR TO EBCDIC-ASCII TR TAB 3-8 00910000
  911. AIF ('&RPS' EQ 'SVA').RPS11 00911000
  912. L IJJASCR4,IJJCPCCW INIT POINTER FOR IOAREA 3-8 00912000
  913. LH IJJASCR5,IJJCPCCW+6 GET RECORD LENGTH 3-8 00913000
  914. AGO .NRPS6 00914000
  915. .RPS11 ANOP 00915000
  916. L IJJASCR4,IJJXRDWR INIT POINTER FOR IOAREA @DL30SMT 00916000
  917. LH IJJASCR5,IJJLGFLD GET RECORD LENGTH @DL30SMT 00917000
  918. .NRPS6 ANOP 00918000
  919. IJJASCS1 SH IJJASCR5,IJJASCHW SUBTRACT 256 3-8 00919000
  920. LTR IJJASCR5,IJJASCR5 BRANCH IF 3-8 00920000
  921. BNP IJJASCA1 NOT POSITIVE 3-8 00921000
  922. TR 0(256,IJJASCR4),0(IJJASCR2) TR 256 BYTES TO ASCII 3-8 00922000
  923. LA IJJASCR4,256(IJJASCR4) UPDATE IOAREA POINTER 3-8 00923000
  924. B IJJASCS1 3-8 00924000
  925. IJJASCA1 LA IJJASCR5,255(IJJASCR5) ADD 255 3-8 00925000
  926. EX IJJASCR5,IJJASCTR TRANSLATE TO ASCII 3-8 00926000
  927. IJJASCN1 SVC 0 EXCP 3-8 00927000
  928. AGO .NOASC5 00928000
  929. .NOASC4 ANOP 00929000
  930. IJJCAL2 SVC 0 EXCP 00930000
  931. .NOASC5 ANOP 00931000
  932. IJJWCHED TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 00932000
  933. BO *+6 00933000
  934. SVC 7 WAIT 00934000
  935. AIF (NOT &SWITCH).NOASC6 00935000
  936. TM IJJASCSW,IJJASCMK ASCII SWITCH ON 3-8 00936000
  937. BZ IJJASCN2 NO 3-8 00937000
  938. SH IJJASCR2,IJJASCHW PTR TO ASCII-EBCDIC TR TAB 3-8 00938000
  939. AIF ('&RPS' EQ 'SVA').RPS12 00939000
  940. L IJJASCR4,IJJCPCCW INIT POINTER FOR IOAREA 3-8 00940000
  941. LH IJJASCR5,IJJCPCCW+6 GET RECORD LENGTH 3-8 00941000
  942. AGO .NRPS7 00942000
  943. .RPS12 ANOP 00943000
  944. L IJJASCR4,IJJXRDWR INIT POINTER FOR IOAREA @DL30SMT 00944000
  945. LH IJJASCR5,IJJLGFLD GET RECORD LENGTH @DL30SMT 00945000
  946. .NRPS7 ANOP 00946000
  947. IJJASCS2 SH IJJASCR5,IJJASCHW SUBTRACT 256 3-8 00947000
  948. LTR IJJASCR5,IJJASCR5 BRANCH IF 3-8 00948000
  949. BNP IJJASCA2 NOT POSITIVE 3-8 00949000
  950. TR 0(256,IJJASCR4),0(IJJASCR2) TR 256 BYTES TO EBCDIC 3-8 00950000
  951. LA IJJASCR4,256(IJJASCR4) UPDATE IOAREA POINTER 3-8 00951000
  952. B IJJASCS2 3-8 00952000
  953. IJJASCA2 LA IJJASCR5,255(IJJASCR5) ADD 255 3-8 00953000
  954. EX IJJASCR5,IJJASCTR TRANSLATE TO EBCDIC 3-8 00954000
  955. IJJASCN2 BR IJJBRG RETURN TO CORRECT INSTRUCTION 3-8 00955000
  956. AGO .NOASC7 00956000
  957. NI IJJASCSW,255-IJJASCMK TURN ASCII SWITCH OFF 3-8 00957000
  958. .NOASC6 ANOP 00958000
  959. BR IJJBRG RETURN TO CORRECT INSTRUCTION 3-8 00959000
  960. .NOASC7 ANOP 00960000
  961. IJJCPEOV LR IJJDTFPS,IJJCPTBB ADDRESS OF DTF TABLE TO REGISTER 00961000
  962. LH IJJZRO,6(IJJDTFPS) PASS LOGICAL UNIT AND CLASS 00962000
  963. LA IJJCPTBB,IJJFLNME ADDRESS OF MULTI-VOLUME ROUTINE NAME 00963000
  964. SVC 2 CALL IN TRANSIENT TO HANDLE EOV CONDITION 00964000
  965. LR IJJCPTBB,IJJDTFPS RESTORE DTF TABLE ADDRESS TO REGISTER1 00965000
  966. B IJJC1RT PREPARE TO RETURN TO USER 00966000
  967. AGO .XCP2 00967000
  968. .XCP1 ANOP 00968000
  969. B IJJCPCAL GET I/O 00969000
  970. .XCP2 ANOP 00970000
  971. AIF ('&RETRY' NE 'NO' OR '&RPS' EQ 'SVA').YESRTY 00971000
  972. IJJERRTN CLC IJJCPDAT(2),IJJDTZRO ENTER FROM CLOSE 3-8 00972000
  973. BNE IJJERROR NO, BRANCH TO ERROR RTN 3-8 00973000
  974. OI IJJFRSTR,IJJNOEOF INDICATE NO EOF WRITTEN 3-8 00974000
  975. BR IJJBRG RETURN TO CORRECT INSTRUCTION 3-8 00975000
  976. IJJERROR LR IJJBRG,IJJCPTBB ADDRESS OF DTF TABLE TO REG 4 3-8 00976000
  977. LA IJJCPTBB,IJJERRAD ADDRESS OF ERROR RECOVERY ROUTINE NAME 00977000
  978. SVC 2 CALL IN TRANSIENT ROUTINE 00978000
  979. .YESRTY ANOP 00979000
  980. AIF (&IO2SW).OUT2 00980000
  981. AIF (T'&IOPTR EQ 'O').OUT1 00981000
  982. IJJDTZRO DC H'0' CONSTANT 00982000
  983. IJJSKP DC H'04' CONSTANT 00983000
  984. AIF (&RDNLYSW).BK017 00984000
  985. IJJCPTMP DC F'0' USED FOR STORAGE 3-3 00985000
  986. IJJCPSAF DC 12F'0' REGISTER SAVE AREA @DL29R05 00986000
  987. .BK017 ANOP 00987000
  988. IJJCPASA EQU *-1 00988000
  989. DC C'9C1+VW-0 ' ASA COMMAND CODES 00989000
  990. IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING SYS/360 CODES 00990000
  991. AGO .SAME 00991000
  992. .OUT1 ANOP 00992000
  993. AIF (NOT &SWITCH).NOASC8 00993000
  994. IJJASCTR TR 0(0,IJJASCR4),0(IJJASCR2) ASCII TRANSLATE INSTR 3-8 00994000
  995. AIF (&RDNLYSW).RPS13 00995000
  996. IJJASCSW DC X'00' ASCII SWITCH 3-8 00996000
  997. IJJASCSV DS F SAVE AREA 3-8 00997000
  998. .RPS13 ANOP 00998000
  999. IJJASCHW DC H'256' CONSTANT 3-8 00999000
  1000. .NOASC8 ANOP 01000000
  1001. IJJDTZRO DC H'0' CONSTANT 01001000
  1002. IJJSKP DC H'04' CONSTANT 01002000
  1003. AIF (&RDNLYSW).BK018 01003000
  1004. IJJCPTMP DC F'0' @DM11873 01004000
  1005. IJJCPSAF DC 12F'0' REGISTER SAVE AREA @DL29R05 01005000
  1006. .BK018 ANOP 01006000
  1007. IJJCPASA EQU *-1 01007000
  1008. DC C'9C1+VW-0 ' ASA COMMAND CODES 01008000
  1009. IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING SYS/360 CODES 01009000
  1010. AGO .SAME 01010000
  1011. .OUT2 ANOP 01011000
  1012. AIF (&RDNLYSW).BK019 01012000
  1013. IJJCPTMP DC F'0' @DM11873 01013000
  1014. IJJCPSAF DC 12F'0' REGISTER SAVE AREA @DL29R05 01014000
  1015. .BK019 ANOP 01015000
  1016. IJJSKP DC H'04' CONSTANT 01016000
  1017. IJJDTZRO DC H'0' 3-8 01017000
  1018. IJJCPASA EQU *-1 01018000
  1019. DC C'9C1+VW-0 ' ASA COMMAND CODES 01019000
  1020. IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING SYS/360 CODES 01020000
  1021. AGO .SAME 01021000
  1022. .CPCOMN ANOP 01022000
  1023. CLI IJJCPF1-1,IJJCPFDT IS THIS 3540 DEVICE @DL29R05 01023000
  1024. BNE IJJCPF11 NO, CONTINUE @DL29R05 01024000
  1025. CLC IJJCPSEK(4),IJJCPMAX END OF EXT ON 3540 @DL29R05 01025000
  1026. AIF ('&IOAREA2' EQ 'YES' AND T'&IOPTR EQ 'O').YIOA12 01026000
  1027. BNL IJJCPF13 YES, HANDLE IT @DL29R05 01027000
  1028. AGO .FDCONT 01028000
  1029. .YIOA12 ANOP 01029000
  1030. BH IJJCPF13 YES, HANDLE IT @DL29R05 01030000
  1031. BL IJJCPF11 NO, CONTINUE @DL29R05 01031000
  1032. TM IJJALSW,IJJCPOLP DUAL I/O AREAS @DL29R05 01032000
  1033. BZ IJJCPF13 NO, AT EOE, HANDLE IT @DL29R05 01033000
  1034. TM IJJCPLD2+6,IJJCHEND MORE EXTENTS @DL29R05 01034000
  1035. BZ IJJCPF13 YES, BRANCH TO FEED @DL29R05 01035000
  1036. MVC IJJCPREC(1),IJJFRSTR MOVE 1ST REC TO PASTN @DL29R05 01036000
  1037. B IJJRTRN GIVE USER LAST REC @DL29R05 01037000
  1038. .FDCONT ANOP 01038000
  1039. IJJCPF11 MVC IJJCPREC(1),IJJFRSTR MOVE 1ST REC # TO PASTN @DL29R05 01039000
  1040. IJJDKFST B IJJCNDSK GET I/O 01040000
  1041. IJJCPF13 TM IJJCPLD2+6,IJJCHEND MORE EXTENTS @DL29R05 01041000
  1042. BO IJJCPEND NO, BR TO USERS EOF RTN @DL29R05 01042000
  1043. LA IJJWRK,IJJCPFED LA OF FEED CCW @DL29R05 01043000
  1044. ST IJJWRK,IJJCPTCB SET CCB CCW ADDRS @DL29R05 01044000
  1045. SVC 0 ISSUE FEED TO 3540 @DL29R05 01045000
  1046. TM IJJCOMBT,IJJCHEND TEST FOR CHAN. END @DL29R05 01046000
  1047. BO *+6 YES, CONTINUE @DL29R05 01047000
  1048. SVC 7 WAIT @DL29R05 01048000
  1049. LA IJJWRK,IJJCPSST PT TO PROPER CCW @DL29R05 01049000
  1050. ST IJJWRK,IJJCPTCB SET CCB CCW ADDRS @DL29R05 01050000
  1051. IJJCPF14 STM IJJZRO,IJJCPLST,IJJCPSAF+20 SAVE REGS 0-6 @DL29R05 01051000
  1052. MVI IJJCPSAF+28,IJJCPSYT SET PARM LIST END IND @DL29R05 01052000
  1053. LA IJJZRO,IJJCPSAF+24 SET UP DTF ADRS ADRS @DL29R05 01053000
  1054. LA IJJCPTBB,IJJCPFDR PT TO OPEN TRANS. NAME @DL29R05 01054000
  1055. SVC 2 CALL OPEN TRANSIENT @DL29R05 01055000
  1056. MVI IJJCPSAF+28,IJJCPZRO RESET PARM LIST END IND @DL29R05 01056000
  1057. LM IJJZRO,IJJCPLST,IJJCPSAF+20 RSTR REGS 0-6 @DL29R05 01057000
  1058. B IJJCPF11 CONT WITH NEXT VOL @DL29R05 01058000
  1059. AIF (&RDNLYSW).SAME 01059000
  1060. IJJCPTMP DC F'0' @DM11873 01060000
  1061. IJJCPSAF DC 12F'0' SAVE AREA @DL29R05 01061000
  1062. .SAME ANOP 01062000
  1063. IJJCPFED CCW 23,*,0,1 3540 FEED CCW @DL29R05 01063000
  1064. IJJCPFDR DC CL8'$$BOPEN' OPEN NEXT VOL FOR 3540 @DL29R05 01064000
  1065. IJJCPONE DC F'65536' X'00010000' ADD 1 AT CYL. 4-0 01065000
  1066. IJJEOF DC C'/* ' TEST FOR /* ON INPUT @DA10192 01066000
  1067. IJJCPTBB EQU 1 DTF FILE BASE 01067000
  1068. IJJCPBAS EQU 15 BASE REGISTER 01068000
  1069. IJJZRO EQU 0 WORK REGISTER 01069000
  1070. IJJCPRTR EQU 14 RETURN REGISTER 01070000
  1071. IJJCPZRO EQU 0 WORK REGISTER 01071000
  1072. IJJCPRGA EQU 5 WORK REGISTER 01072000
  1073. IJJCPRG1 EQU 0 LOWER DISK ADDRESS 01073000
  1074. IJJIOADR EQU 3 USED TO CALCULATE I/O AREA ADDRESS 01074000
  1075. IJJCMP EQU 3 WORK REGISTER 01075000
  1076. IJJCTL EQU 4 WORK REGISTER 01076000
  1077. IJJWRK EQU 2 WORK REGISTER 01077000
  1078. IJJCP1ST EQU 2 WORK REGISTER 01078000
  1079. IJJCPLST EQU 6 WORK REGISTER 01079000
  1080. IJJCPCWR EQU 6 CONTAINS CCW ADDRESS 01080000
  1081. IJJDTFPS EQU 2 USED TO PASS DTF TABLE ADDRESS TO TRANSIENT 01081000
  1082. IJJTPHLT EQU X'02' TEST FOR SYSLST OR SYSPCH ON OUTPUT TAPE 01082000
  1083. IJJCPNEX EQU X'01' TEST FOR UNIT EXCEPTION 01083000
  1084. IJJCPSYT EQU X'FF' TEST TABLE FORMAT 01084000
  1085. IJJCPKN4 EQU 3 CONSTANT FOR COUNTER 01085000
  1086. IJJCPKN1 EQU 1 CONSTANT OF 1 @DL30SMT 01086000
  1087. AIF ('&RPS' NE 'SVA').NRPS8 01087000
  1088. IJJONE92 EQU 192 OFFSET TO SAVEAREA + 8 @DL30SMT 01088000
  1089. IJJEIGHT EQU 8 CONSTANT OF 8 @DL30SMT 01089000
  1090. IJJREG12 EQU 12 REGISTER 12 @DL30SMT 01090000
  1091. .NRPS8 ANOP 01091000
  1092. IJJCPSAV EQU 13 POINTER TO SAVE AREA 3-3 01092000
  1093. IJJXBKSP EQU X'04' TEST FOR BACKSPACE RTN 01093000
  1094. IJJCPNTF EQU X'20' INDICATE NOT FIRST PASS 01094000
  1095. IJJCPOLP EQU X'10' TEST FOR 2 I/O AREAS 01095000
  1096. IJJCPDSC EQU X'20' TEST FOR A DISK 01096000
  1097. IJJCP2FT EQU X'30' TEST FOR OVERLAP AND FIRST PASS 01097000
  1098. IJJCHEND EQU X'80' TEST FOR CHANNEL END 01098000
  1099. IJJCPFDT EQU X'06' TEST FOR 3540 @DL29R05 01099000
  1100. IJJCPX40 EQU X'40' MASK FOR 3540 DELETE @DL29R05 01100000
  1101. IJJCPMFC EQU X'80' TEST MFCM/U @DM08032 01101000
  1102. IJJCPTCV EQU X'E5' TEST CONTROL CHAR V CI 01102000
  1103. IJJCPTCW EQU X'E6' TEST CONTROL CHAR W CI 01103000
  1104. IJJNOEOF EQU X'F0' INDICATOR FOR NO EOF WRITTEN 3-8 01104000
  1105. AIF (T'&IOPTR EQ 'O').NOPTR 01105000
  1106. IJJIOPTR EQU 0 REGISTER POINTING TO I/O AREA 01106000
  1107. IJJLSTPH EQU X'04' TEST FOR SYSLST OR SYSPCH 01107000
  1108. IJJDSKTP EQU X'30' TEST FOR DISK OR TAPE 01108000
  1109. .NOPTR ANOP 01109000
  1110. AIF ('&TYPEFLE' EQ 'INPUT' AND '&RPS' NE 'SVA').FIN 01110000
  1111. IJJCPTPH EQU X'0C' TEST FOR PRINTER OR PUNCH 01111000
  1112. IJJCPSP EQU X'0B' SPACE COMMAND FOR PRINTER 01112000
  1113. IJJCPRTC EQU X'01' PRINT COMMAND 01113000
  1114. IJJCPRT EQU X'08' TEST FOR A PRINTER 01114000
  1115. IJJCPNEJ EQU X'BF' TURN OFF EJECT NEEDED 01115000
  1116. IJJCPEJT EQU X'40' TEST FOR EJECT NEEDED 01116000
  1117. IJJCPRTD EQU X'03' TEST FOR READER, TAPE OR DISK 01117000
  1118. IJJNUMCH EQU 9 NO. OF CONTROL CHARS 01118000
  1119. IJJBRG EQU 3 BRANCH REGISTER 01119000
  1120. IJJCPCTL EQU 4 WORK REGISTER 01120000
  1121. AIF (NOT &SWITCH).NOASC9 01121000
  1122. IJJASCIS EQU X'02' TEST FOR ASCII 3-8 01122000
  1123. IJJASCTP EQU X'10' TEST FOR A TAPE 3-8 01123000
  1124. IJJASCMK EQU X'01' ASCII MASK 3-8 01124000
  1125. IJJASCOF EQU X'FE' ASCII SWITCH OFF MASK @DL30SMT 01125000
  1126. IJJASCSY EQU X'01' TEST FOR SYSTEM UNIT 3-8 01126000
  1127. IJJASCR2 EQU 2 WORK REGISTER 3-8 01127000
  1128. IJJASCR4 EQU 4 WORK REGISTER 3-8 01128000
  1129. IJJASCR5 EQU 5 WORK REGISTER 3-8 01129000
  1130. .NOASC9 ANOP 01130000
  1131. AIF ('&RETRY' EQ 'NO' AND '&RPS' NE 'SVA').FIN 01131000
  1132. IJJ2540 EQU X'08' TEST FOR 2540 PUNCH 01132000
  1133. IJJDEVED EQU X'80' TEST FOR DEVICE END 01133000
  1134. IJJCP010 EQU X'10' TEST FOR PUNCH ERROR 01134000
  1135. AGO .FIN 01135000
  1136. .TPESY ANOP 01136000
  1137. USING *,IJJCPBAS BASE FOR LOGIC 01137000
  1138. USING IJJCPTAB,IJJTABAS ESTABLISH BASE FOR DTF TABLE 01138000
  1139. AIF ('&TYPEFLE' EQ 'INPUT').INMDT 01139000
  1140. AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').WOTMDT 01140000
  1141. IJJCPSKP DC H'04' CONSTANT FOR SKIP TEST 01141000
  1142. DC H'0' 01142000
  1143. DC F'0' 01143000
  1144. B IJJGET 01144000
  1145. AIF (T'&RDONLY NE 'O').BK020 01145000
  1146. IJJGET STM IJJNXTRG,IJJENDRG,IJJCPSVE SAVE REGS THAT ARE USED 3-3 01146000
  1147. AGO .BK021 01147000
  1148. .BK020 ANOP 01148000
  1149. IJJGET STM IJJNXTRG,IJJENDRG,0(IJJRGSAV) SAVE USER REGS 3-3 01149000
  1150. .BK021 ANOP 01150000
  1151. IJJLAPOV TM IJJSWITH,IJJOLPFT OVERLAP AND/OR FIRST PASS 01151000
  1152. BO IJJTEST NOT FIRST PASS BUT OVERLAP 01152000
  1153. OI IJJSWITH,IJJFIRST INDICATE NOT FIRST PASS 01153000
  1154. BAL IJJRTBCK,IJJGETIO GET I/O 01154000
  1155. IJJTEST BAL IJJBRG,IJJWCHED TEST FOR CHANNEL END 01155000
  1156. TM IJJSTSBT,IJJUNTEX HAS UNIT EXCEPTION OCCURRED 01156000
  1157. BO IJJCPMG5 YES 3-8 01157000
  1158. L IJJENDRG,IJJCPCCW LOAD I/O AREA ADDRESS 3-8 01158000
  1159. LA IJJENDRG,0(IJJENDRG) CLEAR HI ORDER BYTE 3-8 01159000
  1160. CLC 0(3,IJJENDRG),IJJIEOF HAS /* BEEN READ @DA10192 01160000
  1161. BNE IJJT2IOA NO 3-8 01161000
  1162. IJJCPMG5 TM IJJSWITH,IJJPRNTR IS THIS A PRINTER 3-8 01162000
  1163. BO IJJT2IOA YES, HANDLED BY LINE COUNT 01163000
  1164. TM IJJCPLSW,IJJTPHLT IS SYSLST OR SYSPCH ON OUTPUT TAPE 01164000
  1165. BO IJJCPEOV TO EOV ROUTINE 01165000
  1166. TM IJJSWITH,X'08' TEST PUNCH FILE CI 01166000
  1167. BO IJJCPEXC YES CI 01167000
  1168. IJJCPEND L IJJZRO,IJJEOFAD PREPARE TO GO TO EOF ADDRESS 01168000
  1169. B IJJCPEXC BRANCH TO EOF ADDRESS 01169000
  1170. IJJCPEOV LR IJJDTFPS,IJJTABAS ADDRESS OF DTF TABLE TO REGISTER 01170000
  1171. LH IJJZRO,6(IJJDTFPS) PASS LOGICAL UNIT AND CLASS 01171000
  1172. LA IJJTABAS,IJJFLNME NAME OF TRANSIENT TO BE CALLED 01172000
  1173. SVC 2 CALL IN TRANSIENT ROUTINE TO HANDLE EOV CONDITION 01173000
  1174. LR IJJTABAS,IJJDTFPS RESTORE DTF TABLE ADDRESS TO REGISTER1 01174000
  1175. IJJT2IOA TM IJJSWITH,IJJOVLAP 2 I/O AREAS 01175000
  1176. BZ IJJRTRN NO 01176000
  1177. LA IJJRTBCK,IJJCPCCW CI 01177000
  1178. TM IJJCPLSW,IJJCPMFC TEST MFCM/U CI 01178000
  1179. BZ IJJCP2I NO CI 01179000
  1180. TM IJJCPLSW,IJJCPIN TEST INPUT FILE CI 01180000
  1181. BNZ IJJCP2I YES CI 01181000
  1182. LA IJJRTBCK,8(IJJRTBCK) POINTER TO 2ND OUTPUT CCW CI 01182000
  1183. IJJCP2I XC IJJALTIO(3),1(IJJRTBCK) SWAP I/O AREAS CI 01183000
  1184. XC 1(3,IJJRTBCK),IJJALTIO NEW I/O AREA ADDRESS TO CCW CI 01184000
  1185. EX 0,*-12 COMPLETE THE EXCHANGE 01185000
  1186. BAL IJJRTBCK,IJJGETIO GET I/O 01186000
  1187. IJJRTRN LR IJJZRO,IJJRTREG SAVE RETURN REGISTER 01187000
  1188. L IJJRTREG,IJJALTIO-1 NEXT I/O AREA 01188000
  1189. TM IJJCPLSW,IJJPTPH IS THIS A PUNCH OR A PRINTER 01189000
  1190. BZ IJJCPEXC NO 01190000
  1191. BCTR IJJRTREG,0 POINT TO CONTROL CHARACTER 01191000
  1192. AIF (T'&RDONLY NE 'O').BK022 01192000
  1193. IJJCPEXC LM IJJNXTRG,IJJENDRG,IJJCPSVE RESTORE REGISTERS 3-3 01193000
  1194. AGO .BK023 01194000
  1195. .BK022 ANOP 01195000
  1196. IJJCPEXC LM IJJNXTRG,IJJENDRG,0(IJJRGSAV) RESTORE USER REGS 3-3 01196000
  1197. .BK023 ANOP 01197000
  1198. EX 0,IJJLOAD LOAD I/O REGISTER WITH NEXT I/O AREA 01198000
  1199. LR IJJRTREG,IJJZRO RESTORE RETURN REGISTER 01199000
  1200. BR IJJRTREG TO USER 01200000
  1201. AGO .NOVAR 01201000
  1202. .WOTMDT ANOP 01202000
  1203. IJJCPSVE DC 2F'0' 01203000
  1204. B IJJGET 01204000
  1205. IJJGET STM IJJNXTRG,IJJENDRG,IJJCPSVE SAVE REGS THAT ARE USED 01205000
  1206. AGO .BK025 01206000
  1207. .BK024 ANOP 01207000
  1208. B IJJGET 3-3 01208000
  1209. IJJGET STM IJJNXTRG,IJJENDRG,0(IJJRGSAV) SAVE USER REGS 3-3 01209000
  1210. .BK025 ANOP 01210000
  1211. AIF (T'&IOPTR EQ 'O').NOVAR 01211000
  1212. IJJGETIO TM IJJSWITH,IJJCPTAP IS DEVICE A TAPE 01212000
  1213. BZ IJJSTOR NO 01213000
  1214. TM IJJCPLSW,IJJLTPCH SYSLST OR SYSPCH ON TAPE 01214000
  1215. BZ IJJSTOR NO 01215000
  1216. IJJADJJS BCTR IJJIOPTR,IJJIOPTR POINT TO CONTROL CHARACTER 01216000
  1217. AIF (T'&RDONLY NE 'O').BK026 01217000
  1218. IJJSTOR ST IJJIOPTR,IJJTEMP STORE ON FULL WORD BOUNDARY 3-3 01218000
  1219. MVC IJJCPCCW+1(3),IJJTEMP+1 MOVE DATA ADDRESS TO CCW 3-3 01219000
  1220. AGO .BK027 01220000
  1221. .BK026 ANOP 01221000
  1222. IJJSTOR ST IJJIOPTR,16(IJJRGSAV) DATA ADDR TO FULL WORD BOUNDR3-3 01222000
  1223. MVC IJJCPCCW+1(3),17(IJJRGSAV) MOVE DATA ADDR TO CCW 3-3 01223000
  1224. .BK027 ANOP 01224000
  1225. TM IJJSWITH,IJJRDTP IS DEVICE READER OR TAPE 01225000
  1226. AGO .WTCOM 01226000
  1227. .NOVAR ANOP 01227000
  1228. IJJGETIO TM IJJSWITH,IJJRDTP IS DEVICE READER OR TAPE 01228000
  1229. .WTCOM ANOP 01229000
  1230. BC 7,IJJCPCLL YES 01230000
  1231. TM IJJSWITH,IJJEJT IS EJECT NEEDED FOR A PUNCH CI 01231000
  1232. BZ IJJCPMF2 NO EJECT NEEDED CI 01232000
  1233. NI IJJSWITH,IJJNOEJ INDICATE NO EJECT NEEDED CI 01233000
  1234. BAL IJJBRG,IJJCAL2 EJECT FIRST CARD CI 01234000
  1235. IJJCPMF2 TM IJJCPLSW,IJJCPMFC TEST MFCM/U CI 01235000
  1236. BZ IJJCPTAS NO, TEST ASA CONTROL CHAR CI 01236000
  1237. AIF (T'&IOPTR EQ 'O').MF02 01237000
  1238. MVC IJJCCWE1+1(3),IJJCPCCW+1 IOADDR TO PUNCH CCW CI 01238000
  1239. .MF02 ANOP 01239000
  1240. L IJJCMDCD,IJJCCWE1 CI 01240000
  1241. BCTR IJJCMDCD,0 CI 01241000
  1242. OI IJJCPCCW+4,X'60' SET CHAIN BIT IN 1ST CCW CI 01242000
  1243. MVC IJJCPCCW(1),IJJCPSSW STACKER SELECT W TO 1ST CCW CI 01243000
  1244. CLI 0(IJJCMDCD),IJJCPTCW TEST W CONTROL CHAR CI 01244000
  1245. BE IJJCPAD8 RETURN CI 01245000
  1246. MVC IJJCPCCW(1),IJJCPSSV STACKER SELECT V TO 1ST CCW CI 01246000
  1247. CLI 0(IJJCMDCD),IJJCPTCV TEST V CONTROL CHAR CI 01247000
  1248. BE IJJCPAD8 RETURN CI 01248000
  1249. MVC IJJCPCCW(1),0(IJJCMDCD) CURRENT CTL CHAR TO 1ST CCW CI 01249000
  1250. IJJCPAD8 B IJJCPCLL BRANCH TO GET I/O CI 01250000
  1251. IJJCPTAS EQU * CI 01251000
  1252. L IJJCMDCD,IJJIOARE PUNCH OR PRINTER CI 01252000
  1253. BCTR IJJCMDCD,0 POINT TO COMMAND CODE 01253000
  1254. LA IJJCNTRL,IJJNMCHR NO. OF CHARACTERS TO COMPARE 01254000
  1255. LR IJJCOMPR,IJJCMDCD EQUATE REGISTERS 01255000
  1256. IC IJJCOMPR,0(IJJCMDCD) USER CONTROL CHARACTER TO REGISTER 01256000
  1257. IJJCPLUP IC IJJCMDCD,IJJCPASA(IJJCNTRL) ASA CHARACTER FROM TABLE 01257000
  1258. CR IJJCOMPR,IJJCMDCD USER CNTRL CHARACTER EQUAL ASA CHARCTR 01258000
  1259. BE IJJCPFND YES, THIS IS CHARACTER 01259000
  1260. BCT IJJCNTRL,IJJCPLUP NOT THE ONE, CHECK THE NEXT 01260000
  1261. IJJCPFND CH IJJCNTRL,IJJCPSKP IS COMMAND A SKIP 01261000
  1262. BNL IJJNOSK NO, NOT A SKIP 01262000
  1263. MVI IJJCPCCW,IJJCPSP MOVE SPACE COMMAND TO CCW 01263000
  1264. BAL IJJBRG,IJJCAL2 SPACE FROM CHANNEL 01264000
  1265. IJJNOSK TM IJJSWITH,IJJEJT IS EJECT NEEDED FOR A PUNCH 01265000
  1266. BZ IJJCPMOV NO EJECT NEEDED 01266000
  1267. NI IJJSWITH,IJJNOEJ INDICATE NO EJECT 01267000
  1268. BAL IJJBRG,IJJCAL2 EJECT FIRST CARD 01268000
  1269. IJJCPMOV LA IJJCNTRL,IJJCP360(IJJCNTRL) 360 CONTROL CHARACTER ADDR 01269000
  1270. MVC IJJCPCCW(1),0(IJJCNTRL) 360 CONTROL CHARACTER TO CCW 01270000
  1271. OC IJJCPCCW(1),IJJPCHCD PRODUCE CORRECT PUNCH CODE 01271000
  1272. AIF ('&RETRY' EQ 'NO').NRTY 01272000
  1273. TM IJJCPLSW,IJJ2540 IS DEVICE 2540 PUNCH 01273000
  1274. BZ IJJCPCLL NO, GET I/O 01274000
  1275. IJJCPWDE TM IJJCOMBT,IJJDEVED WAIT DEVICE END 01275000
  1276. BO *+6 01276000
  1277. SVC 7 WAIT 01277000
  1278. TM IJJCMBT2,IJJCP010 TEST IF PUNCH ERROR 01278000
  1279. BZ IJJSAVE NO, SAVE CARD IMAGES AND COMMAND CODES 01279000
  1280. LR IJJBRG,IJJTABAS ADDRESS OF DTF TABLE TO REGISTER 4 01280000
  1281. LA IJJTABAS,=C'$$BERRTN' ADDRESS OF PUNCH ERROR RECOVERY 01281000
  1282. SVC 2 CALL IN TRANSIENT ROUTINE 01282000
  1283. LR IJJTABAS,IJJBRG RESTORE DTF TABLE ADDRESS TO REGISTER 1 01283000
  1284. IJJSAVE MVC IJJCCWE2(1),IJJCCWE1 OPCODE 1ST ERR CCW INTO 2ND ERR CCW 01284000
  1285. MVC IJJCCWE1(1),IJJCPCCW OPCODE CURRENT CCW TO 1ST ERR CCW 01285000
  1286. MVC IJJCPSV2(80),IJJCPSV1 CARD IMAGE FROM SVAREA1 TO SVAREA2 01286000
  1287. L IJJIOADR,IJJIOARE CALCULATE CURRENT I/O AREA ADDRESS 01287000
  1288. MVC IJJCPSV1(80),0(IJJIOADR) SAVE CURRENT CARD IMAGE 01288000
  1289. .NRTY ANOP 01289000
  1290. IJJCPCLL SVC 0 EXCP 01290000
  1291. TM IJJSWITH,IJJPRNTR IS THIS A PRINTER 01291000
  1292. AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').ONET 01292000
  1293. BZ 0(IJJRTBCK) NO, RETURN TO CORRECT INSTRUCTION 01293000
  1294. IJJPWT BAL IJJBRG,IJJWCHED WAIT FOR CHANNEL END 01294000
  1295. MVI IJJCPCCW,IJJPRTC MOVE PRINT COMMAND TO CCW 01295000
  1296. SVC 0 EXCP START I/O FOR ACTUAL PRINT 01296000
  1297. BR IJJRTBCK RETURN TO PROPER INSTRUCTION 01297000
  1298. IJJCAL2 SVC 0 EXCP 01298000
  1299. IJJWCHED TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 01299000
  1300. BO *+6 01300000
  1301. SVC 7 WAIT 01301000
  1302. BR IJJBRG RETURN TO CORRECT INSTRUCTION 01302000
  1303. AGO .COMTT 01303000
  1304. .ONET ANOP 01304000
  1305. BZ IJJTEST NOT A PRINTER 01305000
  1306. IJJPWT BAL IJJBRG,IJJWCHED A PRINTER, WAIT FOR CHANNEL END 01306000
  1307. MVI IJJCPCCW,IJJPRTC MOVE PRINT COMMAND TO CCW 01307000
  1308. SVC 0 EXCP START I/O FOR ACTUAL PRINT 01308000
  1309. IJJTEST BAL IJJBRG,IJJWCHED TEST FOR CHANNEL END 01309000
  1310. TM IJJSTSBT,IJJUNTEX HAS UNIT EXCEPTION OCCURED 01310000
  1311. BO IJJCPMG6 YES 3-8 01311000
  1312. L IJJENDRG,IJJCPCCW LOAD I/O AREA ADDRESS 3-8 01312000
  1313. LA IJJENDRG,0(IJJENDRG) CLEAR HI ORDER BYTE 3-8 01313000
  1314. CLC 0(3,IJJENDRG),IJJIEOF HAS /* BEEN READ @DA10192 01314000
  1315. BNE IJJCPEXC NO 3-8 01315000
  1316. IJJCPMG6 TM IJJSWITH,IJJPRNTR IS THIS A PRINTER 3-8 01316000
  1317. BO IJJCPEXC YES, HANDLED BY LINE COUNT 01317000
  1318. TM IJJCPLSW,IJJTPHLT IS SYSLST OR SYSPCH ON OUTPUT TAPE 01318000
  1319. BO IJJCPEOV TO EOV ROUTINE 01319000
  1320. TM IJJSWITH,X'08' TEST PUNCH FILE CI 01320000
  1321. BO IJJCPEXC YES CI 01321000
  1322. IJJCPEND L IJJRTREG,IJJEOFAD EOF ADDRESS TO RETURN REGISTER 01322000
  1323. AIF (T'&RDONLY NE 'O').BK028 01323000
  1324. IJJCPEXC LM IJJNXTRG,IJJENDRG,IJJCPSVE RESTORE REGISTERS 3-3 01324000
  1325. AGO .BK029 01325000
  1326. .BK028 ANOP 01326000
  1327. IJJCPEXC LM IJJNXTRG,IJJENDRG,0(IJJRGSAV) RESTORE USER REGS 3-3 01327000
  1328. .BK029 ANOP 01328000
  1329. BR IJJRTREG RETURN TO USER 01329000
  1330. IJJCAL2 SVC 0 EXCP 01330000
  1331. IJJWCHED TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 01331000
  1332. BO *+6 01332000
  1333. SVC 7 WAIT 01333000
  1334. TM IJJCPLSW,IJJCPMFC MULTIFUNC CARD MCH ? @DA11146 01334000
  1335. BZR IJJBRG IF NOT BRANCH @DA11146 01335000
  1336. TM IJJCPLSW,IJJCPIN INPUT OR OUTPUT FILE ? @DA11146 01336000
  1337. BOR IJJBRG IF INPUT FILE BRANCH @DA11146 01337000
  1338. LA IJJRTBCK,IJJCPCCW+8 GET CCW ADDR. @DA11146 01338000
  1339. ST IJJRTBCK,IJJCPCCB+8 STORE CCW ADDR. @DA11146 01339000
  1340. BR IJJBRG RETURN TO CORRECT INSTRUCTION 01340000
  1341. IJJCPEOV LR IJJDTFPS,IJJTABAS ADDRESS OF DTF TABLE TO REGISTER 01341000
  1342. LH IJJZRO,6(IJJDTFPS) PASS LOGICAL UNIT AND CLASS 01342000
  1343. LA IJJTABAS,IJJFLNME NAME OF TRANSIENT TO BE CALLED 01343000
  1344. SVC 2 CALL IN TRANSIENT ROUTINE TO HANDLE EOV CONDITION 01344000
  1345. LR IJJTABAS,IJJDTFPS RESTORE DTF TABLE ADDRESS TO REGISTER1 01345000
  1346. B IJJCPEXC PREPARE RETURN TO USER 01346000
  1347. .COMTT ANOP 01347000
  1348. AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').DIFT 01348000
  1349. AIF (T'&RDONLY NE 'O').BK030 01349000
  1350. IJJCPSVE DC 3F'0' 3-3 01350000
  1351. .BK030 ANOP 01351000
  1352. LTORG 01352000
  1353. AIF (T'&IOPTR EQ 'O').KGO 01353000
  1354. AIF (T'&RDONLY NE 'O').KGO 01354000
  1355. IJJTEMP DC F'0' TEMPORARY STORAGE AREA 01355000
  1356. AGO .KGO 01356000
  1357. .DIFT ANOP 01357000
  1358. AIF (T'&IOPTR EQ 'O').NTPA 01358000
  1359. AIF (T'&RDONLY NE 'O').BK032 01359000
  1360. IJJTEMP DC F'0' TEMPORARY STORAGE AREA 3-3 01360000
  1361. .BK032 ANOP 01361000
  1362. LTORG 01362000
  1363. IJJCPSKP DC H'04' CONSTANT FOR SKIP TEST 01363000
  1364. AGO .KGO 01364000
  1365. .NTPA ANOP 01365000
  1366. LTORG 01366000
  1367. IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING SYS/360 CODES 01367000
  1368. IJJCPSKP DC H'04' CONSTANT FOR SKIP TEST 01368000
  1369. IJJCPASA EQU *-1 01369000
  1370. DC C'9C1+VW-0 ' ASA COMMAND CODES 01370000
  1371. AGO .REGS 01371000
  1372. .KGO ANOP 01372000
  1373. IJJCPASA EQU *-1 01373000
  1374. DC C'9C1+VW-0 ' ASA COMMAND CODES 01374000
  1375. IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING S/360 CODES 01375000
  1376. .REGS ANOP 01376000
  1377. IJJRGSAV EQU 13 POINTER TO SAVE AREA 3-3 01377000
  1378. IJJCPBAS EQU 15 BASE REGISTER 01378000
  1379. IJJBRG EQU 3 BRANCH REGISTER 01379000
  1380. IJJRTBCK EQU 2 BRANCH REGISTER 01380000
  1381. IJJCOMPR EQU 0 COMPARE REGISTER 01381000
  1382. IJJCMDCD EQU 3 INSERTS CONTROL COMMAND TO CCW 01382000
  1383. IJJNXTRG EQU 2 WORK REG 01383000
  1384. AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').DODIF 01384000
  1385. IJJCNTRL EQU 4 COMPARE REGISTER 01385000
  1386. IJJENDRG EQU 4 WORK REG 01386000
  1387. IJJIEOF DC C'/* ' @DA10192 01387000
  1388. AGO .KGOO 01388000
  1389. .DODIF ANOP 01389000
  1390. IJJCNTRL EQU 2 COMPARE REGISTER 01390000
  1391. IJJENDRG EQU 3 WORK REG 01391000
  1392. IJJIEOF DC C'/* ' @DA10192 01392000
  1393. .KGOO ANOP 01393000
  1394. IJJRTREG EQU 14 HAS RETURN ADDRESS 01394000
  1395. IJJTABAS EQU 1 BASE REGISTER FOR DTF TABLE 01395000
  1396. IJJZRO EQU 0 WORK REGISTER 01396000
  1397. IJJDTFPS EQU 2 USED TO PASS DTF TABLE ADDRESS TO TRANSIENT 01397000
  1398. IJJTPHLT EQU X'08' TEST FOR SYSLST OR SYSPCH ON OUTPUT TAPE 01398000
  1399. IJJIOADR EQU 3 USED TO CALCULATE I/O AREA ADDRESS 01399000
  1400. IJJEJT EQU X'80' TEST FOR EJECT NEEDED 01400000
  1401. IJJFIRST EQU X'10' TURN OFF FIRST PASS BIT 01401000
  1402. IJJNOEJ EQU X'7F' TURN OFF EJECT BIT 01402000
  1403. IJJNMCHR EQU 9 NUMBER OF CHARACTERS TO COMPARE 01403000
  1404. IJJOLPFT EQU X'30' TEST FOR 2 I/O AREAS AND FIRST PASS 01404000
  1405. IJJOVLAP EQU X'20' TEST FOR 2 I/O AREAS 01405000
  1406. IJJPRNTR EQU X'04' TEST FOR A PRINTER 01406000
  1407. IJJPRTC EQU X'01' PRINT COMMAND 01407000
  1408. IJJPTPH EQU X'10' TEST FOR A PRINTER OR A PUNCH 01408000
  1409. IJJRDTP EQU X'03' TEST FOR READER OR TAPE 01409000
  1410. IJJCPSP EQU X'0B' SPACE COMMAND 01410000
  1411. IJJUNTEX EQU X'01' TEST FOR UNIT EXCEPTION 01411000
  1412. IJJCHEND EQU X'80' TEST FOR CHANNEL END 01412000
  1413. IJJCPIN EQU X'80' TEST INPUT FILE CI 01413000
  1414. IJJCPMFC EQU X'03' TEST FOR MFCM/U CI 01414000
  1415. IJJCPTCV EQU X'E5' TEST CONTROL CHAR V CI 01415000
  1416. IJJCPTCW EQU X'E6' TEST CONTROL CHAR W CI 01416000
  1417. AIF ('&RETRY' EQ 'NO').FINOT 01417000
  1418. IJJ2540 EQU X'20' TEST FOR 2540 PUNCH 01418000
  1419. IJJDEVED EQU X'80' TEST FOR DEVICE END 01419000
  1420. IJJCP010 EQU X'10' TEST FOR PUNCH ERROR 01420000
  1421. .FINOT ANOP 01421000
  1422. AIF (T'&IOPTR EQ 'O').FIN 01422000
  1423. IJJIOPTR EQU 0 REGISTER POINTING TO I/O AREA 01423000
  1424. IJJCPTAP EQU X'01' TEST FOR A TAPE 01424000
  1425. IJJLTPCH EQU X'40' TEST FOR SYSLST OR SYSPCH 01425000
  1426. AGO .FIN 01426000
  1427. .INMDT ANOP 01427000
  1428. AIF (T'&RDONLY NE 'O').BK033 01428000
  1429. IJJCPSVE DC F'0' REGISTER SAVE AREA 3-3 01429000
  1430. .BK033 ANOP 01430000
  1431. IJJSKP DC H'04' CONSTANT 01431000
  1432. DC H'0' 01432000
  1433. B IJJGET 01433000
  1434. AIF (T'&IOPTR NE 'O' OR '&IOAREA2' NE 'YES').WIMDT 01434000
  1435. AIF (T'&RDONLY NE 'O').BK034 01435000
  1436. IJJGET ST IJJCPWRK,IJJCPSVE SAVE WORK REGISTER 3-3 01436000
  1437. AGO .BK035 01437000
  1438. .BK034 ANOP 01438000
  1439. IJJGET ST IJJCPWRK,0(IJJREGSV) SAVE USER REG 3-3 01439000
  1440. .BK035 ANOP 01440000
  1441. IJJLAPOV TM IJJSWITH,IJJOLPFT OVERLAP AND/OR FIRST PASS 01441000
  1442. BO IJJTEST NOT FIRST PASS, BUT OVERLAP 01442000
  1443. OI IJJSWITH,IJJFIRST INDICATE NOT FIRST PASS 01443000
  1444. BAL IJJRTBCK,IJJGETIO GET I/O 01444000
  1445. IJJTEST TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 01445000
  1446. BO *+6 01446000
  1447. SVC 7 WAIT 01447000
  1448. TM IJJSTSBT,IJJUNTEX HAS UNIT EXCEPTION OCCURRED 01448000
  1449. BO IJJCPEND YES 3-8 01449000
  1450. ST IJJENDRG,IJJENDSV SAVE USER REGISTER 4-0 01450000
  1451. L IJJENDRG,IJJCPCCW LOAD I/O AREA ADDRESS 3-8 01451000
  1452. LA IJJENDRG,0(IJJENDRG) CLEAR HI ORDER BYTE 3-8 01452000
  1453. CLC 0(3,IJJENDRG),IJJIEOF HAS /* BEEN READ @DA10192 01453000
  1454. L IJJENDRG,IJJENDSV RESTORE USER REGISTER 4-0 01454000
  1455. BNE IJJT2IOA NO, TEST FOR 2 I/O AREAS 3-8 01455000
  1456. AGO .TWIT 01456000
  1457. .WIMDT ANOP 01457000
  1458. AIF (T'&IOPTR EQ 'O').NOVRI 01458000
  1459. AIF (T'&RDONLY NE 'O').BK036 01459000
  1460. IJJGET ST IJJIOPTR,IJJTEMP STORE I/O AREA ADDRESS 3-3 01460000
  1461. MVC IJJCPCCW+1(3),IJJTEMP+1 I/O AREA ADDRESS TO CCW 3-3 01461000
  1462. SVC 0 GET I/O 3-3 01462000
  1463. AGO .NVR2 01463000
  1464. .BK036 ANOP 01464000
  1465. IJJGET ST IJJIOPTR,0(IJJREGSV) SAVE I/O AREA ADDR 3-3 01465000
  1466. MVC IJJCPCCW+1(3),1(IJJREGSV) MOVE I/O AREA ADDR TO CCW 3-3 01466000
  1467. SVC 0 GET I/O 3-3 01467000
  1468. AGO .NVR2 01468000
  1469. .NOVRI ANOP 01469000
  1470. IJJGET SVC 0 EXCP 01470000
  1471. .NVR2 ANOP 01471000
  1472. IJJTEST TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 01472000
  1473. BO *+6 01473000
  1474. SVC 7 WAIT 01474000
  1475. TM IJJSTSBT,IJJUNTEX HAS UNIT EXCEPTION OCCURRED 01475000
  1476. BO IJJCPEND YES 3-8 01476000
  1477. ST IJJENDRG,IJJENDSV SAVE USER REGISTER 4-0 01477000
  1478. L IJJENDRG,IJJIOARE LOAD I/O AREA ADDRESS 3-8 01478000
  1479. LA IJJENDRG,0(IJJENDRG) CLEAR HI ORDER BYTE 3-8 01479000
  1480. CLC 0(3,IJJENDRG),IJJIEOF HAS /* BEEN READ @DA10192 01480000
  1481. L IJJENDRG,IJJENDSV RESTORE USER REGISTER 4-0 01481000
  1482. BNE IJJCPEXT NO 3-8 01482000
  1483. IJJCPEND L IJJRTREG,IJJEOFAD PREPARE TO GO TO EOF ADDRESS 01483000
  1484. IJJCPEXT BR IJJRTREG RETURN TO USER 01484000
  1485. AGO .LABINT 01485000
  1486. .TWIT ANOP 01486000
  1487. IJJCPEND L IJJZRO,IJJEOFAD PREPARE TO GO TO EOF ADDRESS 01487000
  1488. B IJJCPEXC BRANCH TO EOF ADDRESS 01488000
  1489. IJJT2IOA TM IJJSWITH,IJJOVLAP 2 I/O AREAS 01489000
  1490. BZ IJJRTRN NO 01490000
  1491. XC IJJALTIO(3),IJJIOARE+1 SWAP I/O AREAS 01491000
  1492. XC IJJIOARE+1(3),IJJALTIO NEW I/O AREA ADDRESS TO CCW 01492000
  1493. EX 0,*-12 COMPLETE THE EXCHANGE 01493000
  1494. BAL IJJRTBCK,IJJGETIO GET I/O 01494000
  1495. IJJRTRN LR IJJZRO,IJJRTREG SAVE RETURN REGISTER 01495000
  1496. L IJJRTREG,IJJALTIO-1 NEXT I/O AREA 01496000
  1497. AIF (T'&RDONLY NE 'O').BK037 01497000
  1498. IJJCPEXC L IJJCPWRK,IJJCPSVE RESTORE WORK REGISTER 3-3 01498000
  1499. AGO .BK038 01499000
  1500. .BK037 ANOP 01500000
  1501. IJJCPEXC L IJJCPWRK,0(IJJREGSV) RESTORE USER REG 3-3 01501000
  1502. .BK038 ANOP 01502000
  1503. EX 0,IJJLOAD LOAD I/O REGISTER WITH NEXT I/O AREA 01503000
  1504. LR IJJRTREG,IJJZRO RESTORE RETURN REGISTER 01504000
  1505. BR IJJRTREG RETURN TO USER 01505000
  1506. IJJGETIO SVC 0 EXCP 01506000
  1507. BR IJJRTBCK RFTURN TO PROPER INSTRUCTION 01507000
  1508. .LABINT ANOP 01508000
  1509. IJJENDSV DC F'0' SAVE AREA TO ENABLE USE OF IJJENDRG 4-0 01509000
  1510. IJJREGSV EQU 13 POINTER TO SAVE AREA 3-3 01510000
  1511. IJJCPBAS EQU 15 PROGRAM BASE REGISTER 01511000
  1512. IJJENDRG EQU 4 3-8 01512000
  1513. IJJIEOF DC C'/* ' @DA10192 01513000
  1514. IJJTABAS EQU 1 BASE REGISTER FOR DTF TABLE 01514000
  1515. IJJCPWRK EQU 2 WORK REGISTER 01515000
  1516. IJJRTBCK EQU 2 BRANCH REGISTER 01516000
  1517. IJJZRO EQU 0 WORK REGISTER 01517000
  1518. IJJRTREG EQU 14 HAS RETURN ADDRESS 01518000
  1519. IJJOLPFT EQU X'30' TEST FOR 2 I/O AREAS AND FIRST PASS 01519000
  1520. IJJFIRST EQU X'10' TURN OFF FIRST PASS BIT 01520000
  1521. IJJCHEND EQU X'80' TEST FOR CHANNEL END 01521000
  1522. IJJUNTEX EQU X'01' TEST FOR UNIT EXCEPTION 01522000
  1523. IJJOVLAP EQU X'20' TEST FOR 2 I/O AREAS 01523000
  1524. AIF (T'&IOPTR EQ 'O').FIN 01524000
  1525. AIF (T'&RDONLY NE 'O').BK039 01525000
  1526. IJJTEMP EQU IJJSKP 3-3 01526000
  1527. .BK039 ANOP 01527000
  1528. IJJIOPTR EQU 0 REGISTER POINTING TO I/O AREA 3-3 01528000
  1529. .FIN ANOP 01529000
  1530. AIF (T'&SEPASMB NE 'O' OR '&RPS' EQ 'SVA').FINIS 01530000
  1531. &SYSECT CSECT 01531000
  1532. .FINIS ANOP 01532000
  1533. MEND 01533000
  1534. /* 01534000