Table of Contents

DMSEDX Source

References

Source Listing

DMSEDX.ASSEMBLE.txt
  1. EDX TITLE 'DMSEDX (CMS) VM/370 - RELEASE 6' 00001000
  2. * FORCE 3270 REMOTE TERMINAL TO 2741 MODE OF OPERATION. 00002000
  3. SPACE 2 00003000
  4. *. 00004000
  5. ***************************************************** 00005000
  6. * 00006000
  7. * MODULE NAME: 00007000
  8. * 00008000
  9. * DMSEDX 00009000
  10. * 00010000
  11. * FUNCTION: 00011000
  12. * 00012000
  13. * PERFORMS INITIALIZATION FOR THE CMS EDITOR. 00013000
  14. * 00014000
  15. * ATTRIBUTES: 00015000
  16. * 00016000
  17. * EXECUTES IN TRANSIENT AREA. REUSEABLE. 00017000
  18. * 00018000
  19. * ENTRY POINT: 00019000
  20. * 00020000
  21. * DMSEDX 00021000
  22. * 00022000
  23. * ENTRY CONDITIONS: 00023000
  24. * 00024000
  25. * GPR 1 CONTAINS THE ADDRESS OF THE EDIT COMMAND LINE. 00025000
  26. * 00026000
  27. * EXIT CONDITIONS: 00027000
  28. * 00028000
  29. * NORMAL .. GPR 15 = 0 00029000
  30. * 00030000
  31. * ERROR .. GPR 15 ¬= 0 00031000
  32. * 00032000
  33. * GPR 15 = 24 INCOMPLETE FILEID 00033000
  34. * 24 INVALID OPTION 00034000
  35. * 24 INVALID LRECL PARAMETER 00035000
  36. * 24 INVALID DISK MODE 00036000
  37. * 00037000
  38. * 28 EDIT WORK FILE ''EDIT CMSUT1'' EXISTS. 00038000
  39. * IF IT IS WANTED, RENAME THE FILENAME 00039000
  40. * OR FILETYPE; OTHERWISE, ERASE IT. 00040000
  41. * 00041000
  42. * 32 RECORD LENGTH TOO LARGE FOR EDIT 00042000
  43. * @VA12416 00042300
  44. * 36 TARGET DISK NOT ACCESSED. @VA12416 00042600
  45. * 00043000
  46. * 88 FILE TOO LARGE FOR EDIT ..INSUFFICIENT 00044000
  47. * STORAGE 00045000
  48. * 00046000
  49. * 88 REQUESTED FILE IN ACTIVE STATUS 00047000
  50. * 00048000
  51. * 100 I/O ERROR READING/WRITING FILE 00049000
  52. * 00050000
  53. * CALLS TO OTHER ROUTINES: 00051000
  54. * 00052000
  55. * DMSSTT,DMSERR,DMSEDF,DMSBRD,DMSFNS,DMSFREE,DMSFRET 00053000
  56. * DMSKEY,DMSCWT 00054000
  57. * 00055000
  58. * EXTERNAL REFERENCES: 00056000
  59. * 00057000
  60. * AFINIS .. ADDRESS OF CMS FILE ''CLOSE'' ROUTINE 00058000
  61. * IN CMS NUCLEUS 00059000
  62. * 00060000
  63. * ARDBUF .. ADDRESS OF DISK READ ROUTINE IN CMS 00061000
  64. * NUCLEUS 00062000
  65. * 00063000
  66. * ASTATE .. ADDRESS OF STATE ROUTINE IN CMS NUCLEUS 00064000
  67. * 00065000
  68. * ASTATEW .. ADDRESS OF STATE ROUTINE IN CMS NUCLEUS 00066000
  69. * FOR R/W DISKS 00067000
  70. * 00068000
  71. * ASTRINIT .. ADDRESS OF STORAGE INITIALIZATION 00069000
  72. * ROUTINE IN CMS NUCLEUS 00070000
  73. * 00071000
  74. * ASYSNAMS.. ADDRESS OF SYSNAME TABLE IN CMS NUCLEUS 00072000
  75. * 00073000
  76. * CONSTACK .. PENDING CONSOLE WRITE OPERATION IN 00074000
  77. * CMS NUCLEUS 00075000
  78. * 00076000
  79. * CPULOG .. CPU LOGOUT AREA IN CMS NUCLEUS 00077000
  80. * 00078000
  81. * DMPTITLE .. DUMP TITLE LINE IN CMS NUCLEUS 00079000
  82. * 00080000
  83. * DIAGTIME ..BUFFER FOR DIAGNOSE TIMER IN CMS 00081000
  84. * NUCLEUS 00082000
  85. * 00083000
  86. * FPRLOG .. FLOATING POINT REGISTER LOGOUT AREA IN 00084000
  87. * CMS NUCLEUS 00085000
  88. * 00086000
  89. * FSTFINRD .. FINISHED CONSOLE READ BUFFER IN 00087000
  90. * CMS NUCLEUS 00088000
  91. * 00089000
  92. * GPRLOG .. GENERAL PURPOSE REGISTER LOGOUT AREA IN 00090000
  93. * CMS NUCLEUS 00091000
  94. * 00092000
  95. * MISFLAGS .. MISCELLANEOUS FLAGS IN CMS NUCLEUS 00093000
  96. * 00094000
  97. * IPLPSW .. IPL PSW IN CMS NUCLEUS 00095000
  98. * 00096000
  99. * LASTTMOD .. NAME OF LAST TRANSIENT MODULE LOADED 00097000
  100. * IN CMS NUCLEUS 00098000
  101. * 00099000
  102. * LOWSAVE .. SAVE AREA FOR 1ST 160 BYTES OF 00100000
  103. * STORAGE 00101000
  104. * 00102000
  105. * SYSNAMES .. SAVED SYSTEM NAME TABLE IN CMS NUCLEUS 00103000
  106. * 00104000
  107. * OUTPUT: 00105000
  108. * 00106000
  109. * THE EDCB (EDIT CONTROL BLOCK) IN FREE STORAGE IS 00107000
  110. * INITIALIZED BY DMSEDX. IT IS FIRST CLEARED TO X'0', 00108000
  111. * THEN ALL NECESSARY INITIALIZATION IS DONE. 00109000
  112. * 00110000
  113. * OPERATION: 00111000
  114. * 00112000
  115. * DMSEDX LOADED INTO THE TRANSIENT AREA OF VIRTUAL 00113000
  116. * MACHINE STORAGE AND EXECUTED AS A RESULT OF THE CMS 00114000
  117. * EDIT COMMAND BEING ISSUED. DMSEDX FIRST ATTEMPTS 00115000
  118. * TO LOAD A SAVED SYSTEM WITH THE NAME AT THE ENTRY 00116000
  119. * FOR 'SHREXEC' IN THE CMS NUCLEUS SAVED SYSTEM NAME 00117000
  120. * TABLE ''SYSNAMES''. IF THE NAME PROVIDED IS NOT 00118000
  121. * VALID, AN ATTEMPT IS MADE TO LOADMOD A DMSEXT MODULE 00119000
  122. * USING THE USER'S ACCESSED DISKS. 00120000
  123. * DMSEDX NOW ISSUES A DMSFREE FOR ALL BUT 15K OF 00121000
  124. * VIRTUAL MACHINE STORAGE. THE FIRST PART OF THIS 00122000
  125. * FREE STORAGE IS CLEARED TO X'0' AND ALLOCATED TO 00123000
  126. * TE EDCB (EDIT CONTROL BLOCK) WHICH IS USED BY ALL 00124000
  127. * EDIT ROUTINES. THE EDCB CONTAINS ALL NECESSARY 00125000
  128. * ASSIGNMENTS TO ALLOW THE CMS EDITOR TO BE REENTRANT 00126000
  129. * AND THEREFORE BE ALLOWED TO BE LOADED INTO A VM/370 00127000
  130. * SHARED SEGMENT. 00128000
  131. * DMSEDX THEN INITIALIZES EDCB WITH ALL NECESSARY 00129000
  132. * PLIST, ETC. REQUIRED BY EDIT ROUTINES. 00130000
  133. * 00131000
  134. * DMSEDX SCANS THE EDIT COMMAND LINE FOR VALIDITY. 00132000
  135. * 00133000
  136. * IF A REMOTE 3270 TERMINAL IS IN USE IT IS FORCED TO 00134000
  137. * OPERATE IN 2741 OR TYPEWRITE MODE TO CUT DOWN ON THE 00135000
  138. * AMOUNT OF DATA TRANSMITTED. THIS MODE CAN BE 00136000
  139. * OVERRIDDEN BY THE FORMAT SUBCOMMAND. 00137000
  140. * 00138000
  141. * IF THE NODISP OPTION WAS SPECIFIED IN THE EDIT 00139000
  142. * COMMAND A 3270 TYPE TERMINAL IS FORCED TO OPERATE IN 00140000
  143. * 2741 MODE FOR THE DURATION OF THE EDIT SESSION. NO 00141000
  144. * OVERRIDE IS ALLOWED. 00142000
  145. * 00143000
  146. * IF THE FILE IS FOUND ON DISK BY THE CALL TO 00144000
  147. * DMSSTT, THE FILE IS READ FROM 00145000
  148. * DISK BY DMSBRD AND THE FILE PLACE IN THE EDIT FREE 00146000
  149. * STORAGE AREA WITH APPROPRIATE LINE POINTERS INCLUDED 00147000
  150. * IN EACH RECORD. 00148000
  151. * IF THE FILE IS NOT FOUND ON DISK, STORAGE IS 00149000
  152. * INITIALIZED AND A MESSAGE IS TYPED TELLING THE 00150000
  153. * USER THE FILE IS NEW. 00151000
  154. * AT THIS TIME THE FILE ATTRIBUTES, EXISTING, 00152000
  155. * SPECIFIED, OR DEFAULTED, ARE MOVED TO THE PROPER 00153000
  156. * AREA IN EDCB. 00154000
  157. * 00155000
  158. * DMSEDX THEN BRANCHES TO THE MAIN EDIT ROUTINE. 00156000
  159. * 00157000
  160. * MESSAGES: 00158000
  161. * 00159000
  162. * DMSEDI003E INVALID OPTION 'OPTION' 00160000
  163. * INVALID OPTION SPECIFIED ON EDIT COMMAND. 00161000
  164. * 00162000
  165. * DMSEDI024E FILE 'EDIT CMSUT1 FM' ALREADY EXISTS 00163000
  166. * THE EDITOR WORK FILE, EDIT CMSUT1, ALREADY EXISTS AS THE 00164000
  167. * RESULT OF A PREVIOUS EDIT SESSION ENDING ABNORMALLY. 00165000
  168. * 00166000
  169. * DMSEDI029E INVALID PARAMETER 'PARAM' IN THE OPTION 00167000
  170. * 'LRECL' FIELD 00168000
  171. * INVALID LRECL PARAMETER SPECIFIED 00169000
  172. * 00170000
  173. * DMSEDI044E RECORD LENGTH EXCEEDS ALLOWABLE MAXIMUM 00171000
  174. * LRECL SPECIFIED IS GREATER THAN 133. 00172000
  175. * 00173000
  176. * DMSEDI048E INVALID MODE 'FM' 00174000
  177. * INVALID MODE SPECIFIED IN EDIT COMMAND 00175000
  178. * 00176000
  179. * DMSEDI054E INCOMPLETE FILEID SPECIFIED 00177000
  180. * FILENAME OR FILETYPE WERE NOT INCLUDED IN EDIT COMMAND 00178000
  181. * 00179000
  182. * DMSEDI069E DISK 'MODE' NOT ACCESSED @VA12416 00179500
  183. * THE SPECIFIED DISK HAS NOT BEEN ACCESSED. @VA12416 00179600
  184. * @VA12416 00179700
  185. * DMSEDI076E ACTUAL RECORD LENGTH EXCEEDS THAT SPECIFIED 00180000
  186. * EXISTING FILE HAS A RECORD LENGTH GREATER THAN THAT 00181000
  187. * SPECIFIED IN THE COMMAND LINE 00182000
  188. * 00183000
  189. * DMSEDI104S ERROR 'NN' READING FILE 'FN FT FM' FROM DISK 00184000
  190. * UNRECOVERABLE ERROR OCCURRED READING THE FILE FROM 00185000
  191. * DISK. 00186000
  192. * 00187000
  193. * DMSEDI132S FILE 'FN FT FM' TOO LARGE 00188000
  194. * THE SPECIFIED FILE IS TOO LARGE FOR THE USER'S 00189000
  195. * MACHINE. 00190000
  196. * 00191000
  197. * DMSEDI143S UNABLE TO LOAD SAVED SYSTEM OR LOAD MODULE. 00192000
  198. * 00193000
  199. * DMSEDI144S REQUESTED FILE IS IN ACTIVE STATUS. 00194000
  200. * 00195000
  201. ***************************************************** 00196000
  202. MACRO 00197000
  203. &NAME CMS &PLIST,&PROG=,&ERROR= 00198000
  204. &NAME LA 1,&PLIST 00199000
  205. AIF (N'&PROG EQ 0).SEQ1 00200000
  206. MVC 0(8,1),=CL8'&PROG' 00201000
  207. .SEQ1 SVC X'CA' 00202000
  208. AIF (N'&ERROR EQ 0).SEQ2 00203000
  209. AIF ('&ERROR' EQ 'IGNORE').SEQ3 00204000
  210. DC AL4(&ERROR) 00205000
  211. MEXIT 00206000
  212. .SEQ3 DC AL4(*+4) 00207000
  213. .SEQ2 MEND 00208000
  214. EJECT 00209000
  215. * 00210000
  216. ************** 00211000
  217. * 00212000
  218. * EDITOR INITIALIZATION ... GO THROUGH PARAMETER LIST ... 00213000
  219. * LOOK FOR GIVEN FILE ... SET DEFAULTS. 00214000
  220. * 00215000
  221. ************** 00216000
  222. SPACE 00217000
  223. DMSEDX START 0 START OF INITIALIZATION 00218000
  224. LR R12,R15 LOAD STARTING ADDRESS INTO REGISTER. 00219000
  225. USING DMSEDX,R12,R11 SET UP ADDRESSABILITY. @VA12416 00220000
  226. LA R11,4095(,R12) SET UP SECOND BASE REG. @VA12416 00220300
  227. LA R11,1(,R11) @VA12416 00220600
  228. USING NUCON,R0 00221000
  229. TM SUBFLAG,SUBACT CALLED FROM CMS SUBSET ? @V305614 00222000
  230. BNO EDITGO NO, BRANCH @V305614 00223000
  231. OI SUBFLAG,SUBREJ SIGNAL INVALID SUBSET COMMAND @VM03083 00224000
  232. BR R14 AND RETURN TO SUBSET @V305614 00225000
  233. SPACE 1 00226000
  234. EDITGO L R10,ADEVTAB GET ADDRESS OF DEVICE TABLE @V305614 00227000
  235. USING DEVTAB,R10 FOR ADDRESSABILITY 00228000
  236. LR R9,R14 SAVE RETURN ADDRESS @V305614 00229000
  237. LR R2,R1 SAVE COMMAND LINE PTR @V305614 00230000
  238. MVC STTFM(2),NOTSFM INITIALIZE STATE FILEMODE @V305614 00231000
  239. SPACE 1 00232000
  240. STLOOP LA R1,STTPLIST POINT TO STATE PLIST @V305614 00233000
  241. L R15,VCFSTLKP GET FSTLKP ENTRY @VM03093 00234000
  242. BALR R14,R15 LOADMOD ON DISK ? @V305614 00235000
  243. BZ LOADIT YES, LOADMOD IT @V305614 00236000
  244. SPACE 1 00237000
  245. CLI STTFM,E2 WAS THAT FOR THE 'S' DISK ? @V305666 00238000
  246. BE ERR143 YES, NO EDMAIN AVAILABLE @V305614 00239000
  247. B TRYSYS OTHERWISE, TRY SAVED SYSTEM @V305614 00240000
  248. SPACE 1 00241000
  249. LOADIT DS 0H @VA07660 00242000
  250. LR R1,R0 ADT ADDRESS @VA07660 00242150
  251. USING ADTSECT,R1 ADT ADDRESSABILITY @VA07660 00242300
  252. MVC MODE(ONE),ADTM ADT FILE MODE @VA07660 00242450
  253. LA R1,LOADMOD LOADMOD EDMAIN MODULE @VA07660 00242600
  254. DROP R1 @VA07660 00242750
  255. SVC 202 ... @VM03083 00243000
  256. DC AL4(ERR143) OOPS - WE DIDN'T GET IT @VM03083 00244000
  257. SR R3,R3 R3 = 0 MEANS WE'LL USE A MODULE, @VM03083 00245000
  258. B MODLDED PROCEED ... @V305614 00246000
  259. SPACE 1 00247000
  260. GETSMOD MVC STTFM(2),SMODE TRY THE 'S' DISK @V305614 00248000
  261. B STLOOP LAST ATTEMPT @V305614 00249000
  262. SPACE 1 00250000
  263. TRYSYS TM DCSSFLAG,DCSSLDED+DCSSAVAL CHECK DCSS STATUS @V305614 00251000
  264. BZ GETSMOD BR, IF NO DCSS @V305614 00252000
  265. BM LOADSYS BR, IF AVAILABLE BUT NOT LOADED @V305614 00253000
  266. L R3,ACMSSEG GET ADR OF LOADED SEGMENT @V305614 00254000
  267. B SYSLDED GO AROUND LOADSYS @V305614 00255000
  268. SPACE 1 00256000
  269. LOADSYS L R5,ASYSNAMS POINT TO SAVED SYS NAME TABLE @V305614 00257000
  270. USING SYSNAMES,R5 @V305614 00258000
  271. LA R3,CMSSEG POINT TO EDIT SEGMENT NAME @V305614 00259000
  272. SR R4,R4 TELL DIAGNOSE THIS IS LOADSYS @V305614 00260000
  273. DC X'83340064' LOADSYS @V305614 00261000
  274. BC 3,GETSMOD BR, IF UNABLE TO LOAD @V305614 00262000
  275. OI DCSSFLAG,DCSSLDED TELL EVERYONE @V305614 00263000
  276. ST R3,ACMSSEG PLUG NUCLEUS ADDRESS @V305614 00264000
  277. SYSLDED MVC LOCCNT(4),AUSEAR FORCE INITIALIZATION @VM03182 00265000
  278. STRINIT OF FREE STORAGE POINTERS @VM03182 00266000
  279. L R3,8(R3) GET CMSSEG ENTRY POINT FOR EDIT @VM03182 00267000
  280. L R3,0(,R3) ONE EXTRA LOAD NEEDED ... @VM03154 00268000
  281. MODLDED L R0,FFREE ALLOW 15K FOR STACKING + EXEC @V305614 00269000
  282. DMSFREE DWORDS=(0),ERR=*,MIN=1,TYPE=NUCLEUS,TYPCALL=BALR 00270000
  283. LR R8,R1 SAVE STORAGE LOCATION @V305614 00271000
  284. STM R0,R1,0(R8) SAVE FOR DMSFRET, @VM03083 00272000
  285. SR R4,R4 R4=0 MEANS DOSFLAGS IS OK @VM03083 00273000
  286. TM DOSFLAGS,DOSSVC INTERNAL SVC-BIT SET ? @VM03083 00274000
  287. BZ DOSFOK1 IF 0 WE'RE OK @VM03083 00275000
  288. IC R4,DOSFLAGS IF NOT 0, REMEMBER DOSFLAGS, @VM03083 00276000
  289. NI DOSFLAGS,255-DOSSVC AND RESET FLAGBIT @VM03083 00277000
  290. DOSFOK1 GETMAIN VC,LA=LIMITS,A=FREEADR GET SOME USER STORAGE @VM03083 00278000
  291. LTR R15,R15 WAS GETMAIN SUCCESSFUL @VA07625 00278100
  292. BNZ ERR109S NO PUT OUT MSG @VA07625 00278200
  293. L R0,FREEBYT LENGTH INTO R0, AND ... @VM03083 00279000
  294. L R1,FREEADR ADDRESS INTO R1 PLEASE, @VM03083 00280000
  295. LTR R4,R4 WAS DOSFLAGS OK BEFORE ? @VM03083 00281000
  296. BZ DOSFOK2 IF YES WE'RE OK @VM03083 00282000
  297. STC R4,DOSFLAGS IF NOT, RESTORE IT AS IT WAS @VM03083 00283000
  298. DOSFOK2 LR R4,R1 NOW CLEAR JUST THE SPACE TO @VM03083 00284000
  299. LA R5,EDCBLTH CONTAIN EDCB .... @V305614 00285000
  300. SR R7,R7 ..... @V305614 00286000
  301. MVCL R4,R6 ..... @V305614 00287000
  302. SPACE 1 00288000
  303. LR R7,R1 ADDRESSABILITY FOR FREE STORAGE @V305614 00289000
  304. USING EDCB,R7 CONTROL BLOCK @V305614 00290000
  305. STM R0,R1,FREELEN SAVE FREE STORAGE PTRS @V305614 00291000
  306. ST R9,EDRET SAVE RETURN ADDRESS @V305614 00292000
  307. ST R3,MAINAD SAVE MAIN ROUTINE ADDRESS @V305614 00293000
  308. SPACE 1 00294000
  309. LM R0,R1,0(R8) GET FRET POINTERS @V305614 00295000
  310. * AND RETURN THE "STACKING STORAGE" 00296000
  311. DMSFRET DWORDS=(0),LOC=(1),TYPCALL=BALR ... @VM03083 00297000
  312. SPACE 1 00298000
  313. MVC CARDINCR+3(6),BLOCINIT NOW INITIALIZE AS MUCH @V305614 00299000
  314. LA R9,MSGINITL AS NECESSARY @V305614 00300000
  315. EX R9,MVCINIT ..... @V305614 00301000
  316. LA R9,ONE ..... @V305666 00302000
  317. ST R9,REPCNT ..... @V305614 00303000
  318. MVI TWITCH,ON INITIALIZE TO TOF @V305666 00304000
  319. MVI BLANK1,BLANK ...... @V305666 00305000
  320. MVI BLANK2,BLANK ..... @V305666 00306000
  321. MVI BLANK3,BLANK ..... @V305666 00307000
  322. MVI SEQNAME,BLANK ..... @VM03108 00308000
  323. MVC INVLDHDR(INVINITL),INVINIT SET EDLIN HEADERS @VA04733 00309100
  324. MVI PADBUF+8,BLANK ..... @VM03036 00310000
  325. LA R9,LPLIST GET LGTH OF PLIST INIT CODE @V305614 00311000
  326. EX R9,LISTMOVE AND MOVE IT .. @V305614 00312000
  327. LA R9,EDLIN INITIALIZE EDLIN ADR @V305614 00313000
  328. STCM R9,BIN0111,AEDLIN ..... @V305666 00314000
  329. LA R9,LINELOC NOW SET UP GIO PLIST @V305614 00315000
  330. ST R9,ALINELOC ..... @V305614 00316000
  331. LA R9,NUMLOC ..... @V305614 00317000
  332. ST R9,ANUMLOC ..... @V305614 00318000
  333. LA R9,FLAGLOC ..... @V305614 00319000
  334. ST R9,AFLAGLOC ..... @V305614 00320000
  335. MVC CMDBLOK(8),CCWINIT INITIALIZE DMSGIO CCW @VA05027 00321100
  336. SPACE 1 00322000
  337. LA R9,1 KEEP IT REUSABLE... @VM08583 00323000
  338. STH R9,RECS ...FOR V TYPE FILES @VM08583 00324000
  339. LH R8,CONSOLE GET VIRT CONS DEV ADR @V60A6B6 00325000
  340. DROP R10 FINISHED WITH DEVTAB. @V60A6B6 00325100
  341. DC X'83890024' DIAG FOR CONSOLE CLASS @V60A6B6 00326000
  342. BC 2,NOGRAF TREAT AS LINE DEVICE IF DISC. @V305614 00327000
  343. CLM R10,B'1000',CLASTERM REMOTE 3270? @V60A6B6 00328000
  344. BNE CHECKLOC NO,CHECK FOR LOCAL 3270 @V60A6B6 00329000
  345. CLM R10,B'0100',TYP3275 REMOTE 3275? @V60A6B6 00329100
  346. BE SETREMOT YES,SET FOR REMOTE 3270 @V60A6B6 00329200
  347. CLM R10,B'0100',TYP3277 REMOTE 3277? @V60A6B6 00329300
  348. BE SETREMOT YES,SET FOR REMOTE 3277 @V60A6B6 00329400
  349. B NOGRAF SET FOR TYPEWRITER TERMINAL @V60A6B6 00329500
  350. CHECKLOC DS 0H CHECK FOR LOCAL @V60A6B6 00329600
  351. CLM R10,B'1100',T3066 3066 DISPLAY CONSOLE ? @V60A6B6 00330000
  352. BE NODISPX YES,SET NODISP FLAG @VA09093 00331010
  353. CLM R10,B'0100',TYP3278 3278 DISPLAY CONSOLE ? @V60A6B6 00331100
  354. BE SETUBE YES...BR @V60A6B6 00331200
  355. CLM R10,B'1000',GRAFCON LOCAL DISPLAY STATION @V60A6B6 00332000
  356. BE SETUBE YES ... BR @V2D3914 00333000
  357. NODISPX EQU * 00333510
  358. OI FLAG2,NODISP INHIBIT DISPLAY MODE @VA09093 00333520
  359. B NOGRAF @VA09093 00333530
  360. SPACE 1 00335000
  361. SETREMOT OI FLAG2,REMOTE FORCE 2741 MODE @V2D3914 00336000
  362. B CONSGRAF GO GET TYPE OF DISPLAY TERMINAL @V60A6B6 00337000
  363. SPACE 1 00338000
  364. MVCINIT MVC CHNGMSG(*-*),MSGINIT @V305614 00339000
  365. LISTMOVE MVC TIN(*-*),INITLIST @V305614 00340000
  366. SPACE 1 00341000
  367. SETUBE EQU * TERMINAL IS A LOCAL 3270 DISPLAY @V60A6B6 00342000
  368. OI FLAG2,TUBE SET INDICATOR FOR DMSEDI @V60A6B6 00343000
  369. CONSGRAF STCM R10,B'0010',TYPSCR SAVE SCREEN SIZE INDEX HRC073DS 00344000
  370. NOGRAF EQU * TERMINAL IS NOT A DISPLAY TYPE HRC073DS 00345000
  371. MVC LINE(L'LINE),0(2) SAVE COMMAND LINE HRC073DS 00346000
  372. LA R15,FSTFINRD GET READ STACK ANCHOR ADDRESS 00347000
  373. ST R15,AFSTFNRD SAVE IT FOR LATER USE 00348000
  374. CLI 8(R2),X'FF' ANY PARAMETERS AT ALL? 00349000
  375. BE ERR54E SHOULD HAVE SPECIFIED SOMETHING! 00350000
  376. EJECT 00351000
  377. * 00352000
  378. ************** 00353000
  379. * 00354000
  380. * SCAN EDIT COMMAND LINE 00355000
  381. * 00356000
  382. ************** 00357000
  383. SPACE 1 00358000
  384. LA R2,8(,R2) POINT TO FILENAME (USE R1) 00359000
  385. MVC FNAME(8),0(R2) SET FILENAME 00360000
  386. LA R2,8(,2) POINT TO FILETYPE 00361000
  387. CLI 0(R2),X'FF' FILETYPE GIVEN ? 00362000
  388. BE ERR54E BRANCH IF NOT 00363000
  389. MVC ALTMODE(R2),DMODE SET A DEFAULT MODE 00364000
  390. MVC FTYPE(8),0(R2) SET THE FILETYPE 00365000
  391. LA R2,8(,R2) POINT TO NEXT ENTRY 00366000
  392. CLI 0(R2),X'FF' FILEMODE GIVEN ? 00367000
  393. BE TYPDATA BRANCH IF NOT 00368000
  394. SPACE 1 00369000
  395. CLI 0(R2),C'(' START OF OPTION ? 00370000
  396. BE ITCHK1 IF SO, GO AROUND MODE CHECK 00371000
  397. SPACE 1 00372000
  398. LA R14,ERR048E PENALTY ADDRESS FOR ANAMOLOUS MODE. 00373000
  399. MVC FMODE(2),0(R2) USE THE GIVEN MODE (FOR NOW) 00374000
  400. CLC =C'* ',0(R2) IS THIS '*' HRC002DS 00375890
  401. BE CONT2 YES, CONTINUE HRC002DS 00376780
  402. CLC =C' ',0(R2) IS IT BLANK? HRC002DS 00377670
  403. BE CONT0 YES, HRC002DS 00378560
  404. CLI 0(R2),C'A' 'A' ? HRC002DS 00379450
  405. BLR R14 < 'A' ERROR HRC002DS 00380340
  406. CLI 0(R2),C'I' 'I' ? HRC002DS 00381230
  407. BNH CONT1 <= 'I' O.K. HRC002DS 00382120
  408. CLI 0(R2),C'J' 'J' ? HRC002DS 00383010
  409. BLR R14 < 'J' ERROR HRC002DS 00383900
  410. CLI 0(R2),C'R' 'R' ? HRC002DS 00384790
  411. BNH CONT1 <= 'R' O.K. HRC002DS 00385680
  412. CLI 0(R2),C'S' 'S' ? HRC002DS 00386570
  413. BLR R14 < 'S' ERROR HRC002DS 00387460
  414. CLI 0(R2),C'Z' 'Z' ? HRC002DS 00388350
  415. BNH CONT1 <= 'Z' O.K. HRC002DS 00389240
  416. BR R14 RETURN WITH ERROR CC HRC002DS 00390130
  417. CONT0 MVC 0(2,R2),=C'* ' TREAT LIKE * HRC002DS 00391020
  418. B CONT2 HRC002DS 00391910
  419. CONT1 CLI 1(R2),C'5' MODE NUMBER GT '5' HRC002DS 00392800
  420. BHR R14 IF SO, ERROR RETURN HRC002DS 00393690
  421. CLI 1(R2),C'0' NUMBER LT '1' ? 00395000
  422. BNL CONT2 IF NOT, SHE'S IN THE RANGE... 00396000
  423. CLI 1(R2),C' ' IF SO, COULD BE BLANK 00397000
  424. BNER R14 ERROR IF NOT BLANK HRC002DS 00398490
  425. MVI FMODE+1,C'1' DEFAULT TO '1' MODE TYPE 00399000
  426. CONT2 CLI 2(R2),C' ' ANYTHING AFTER MODE NUMBER ? 00400000
  427. BCR 7,R14 WELL, THAT'S NOT ALLOWED. 00401000
  428. MVC ALTMODE(2),FMODE MOVE GIVEN FILEMODE TO ALTMODE 00402000
  429. MVC IOMODE(2),ALTMODE INITIALIZE MODE FOR 'STATE' 00403000
  430. LA R2,8(,R2) POINT TO NEXT ENTRY 00404000
  431. EJECT 00405000
  432. ITCHK EQU * CHECK WHETHER ITEM LENGTH GIVEN 00406000
  433. CLI 0(R2),X'FF' WELL? 00407000
  434. BE TYPDATA BRANCH IF IT'S NOT 00408000
  435. CLI 0(R2),C'(' START OF OPTION ? 00409000
  436. BNE ERR3E INVALID OPTION IF NOT 00410000
  437. ITCHK1 LA R2,8(,R2) IF SO, POINT TO NEXT ENTRY 00411000
  438. CLC 0(6,R2),=CL6'LRECL ' CHECK PROPER KEYWORD 00412000
  439. BNE CHKNOD NOT 'LRECL', SEE IF 'NODISP' @V2D3914 00413000
  440. LA R2,8(,R2) POINT TO NEXT ENTRY 00414000
  441. CLI 0(R2),X'FF' IS ACTUAL LRECL GIVEN ? 00415000
  442. BE ERR29E ERROR IF NOT 00416000
  443. SPACE 1 00417000
  444. LA R14,ERR29E LOAD ERROR VECTOR 00418000
  445. CLI 0(R2),C'0' < 0? 00419000
  446. BCR 4,R14 ERROR 00420000
  447. CLI 0(R2),C'9' > 9? 00421000
  448. BCR 2,R14 ERROR 00422000
  449. SR R6,R6 EMPTY A REGISTER 00423000
  450. SR R3,R3 AND ANOTHER 00424000
  451. LR R4,R2 SAVE PLIST POINTER 00425000
  452. LA R5,X'F0' LOAD APPROPRIATE MASK 00426000
  453. LA R15,8 SET MAXIMUM ARGUMENT LENGTH 00427000
  454. NUMLOOP CLI 0(R4),C' ' CHECK FOR BLANK 00428000
  455. BE NUMDONE DONE IF THIS IS ONE 00429000
  456. IC R3,0(,R4) PICK UP CHARACTER 00430000
  457. SR R3,R5 MAKE IT BINARY 00431000
  458. BCR 4,R14 ERROR IF NOT NUMERIC 00432000
  459. MH R6,TEN ADJUST 00433000
  460. AR R6,R3 SAVE IT AWAY 00434000
  461. LA R4,1(,R4) POINT TO THE NEXT POSITION 00435000
  462. BCT R15,NUMLOOP DECREMENT THE ARGUMENT LENGTH 00436000
  463. NUMDONE LTR R6,R6 CHECK THE SAVED PORTION 00437000
  464. BCR 13,R14 POSITIVE REQUIREMENT 00438000
  465. SPACE 1 00439000
  466. CH R6,=H'160' GIVEN ITEM LENGTH GT 160 ? @V2D3914 00440000
  467. BH ERR44E BRANCH IF TOO GREAT 00441000
  468. ST R6,ITEM SAVE FOR REAL 00442000
  469. CLI 8(R2),C')' CLOSING PARENS ? 00443000
  470. BE TYPDATA CONTINUE IF SO 00444000
  471. CLI 8(R2),X'FF' CHECK NO MORE PARMS 00445000
  472. BE TYPDATA CONTINUE IF NOT @V2D3914 00446000
  473. LA R2,8(,R2) POINT TO NEXT ENTRY @V2D3914 00447000
  474. CHKNOD CLC 0(7,R2),=CL7'NODISP ' IS IT 'NODISP' ? HRC002DS 00448490
  475. BNE ERR3E NO...INVALID OPTION @V2D3914 00449000
  476. MVI FLAG2,NODISP SET ONLY NODISP FLAG @V2D3914 00450000
  477. CLI 8(R2),C')' CLOSING PARENS ? @V2D3914 00451000
  478. BE TYPDATA CONTINUE IF SO @V2D3914 00452000
  479. CLI 8(R2),X'FF' ANY MORE OPTIONS ? @V2D3914 00453000
  480. BNE ITCHK1 SEE IF IT'S 'LRECL' @V2D3914 00454000
  481. B TYPDATA CONTINUE... @V2D3914 00455000
  482. EJECT 00456000
  483. * 00457000
  484. ************** 00458000
  485. * 00459000
  486. * FIND THE FILETYPE DATA (IN EDFILES) 00460000
  487. * 00461000
  488. ************** 00462000
  489. SPACE 00463000
  490. TYPDATA EQU * 00464000
  491. MVC FMODE(2),ALTMODE IN CASE NO FM SPECIFIED @VM08583 00465000
  492. MVC IOMODE(2),ALTMODE SET FMODE FOR STATE @VM08583 00466000
  493. LA R1,IOLIST POINT TO THE PLIST 00467000
  494. MVC IOLIST+8(16),=CL16'EDIT CMSUT1' 00468000
  495. MVC IOAD(4),=CL4'****' FOR REUSEABILITY @VM08650 00469000
  496. L R15,ASTATEW LOOK AT R/W DISKS 00470000
  497. BALR R14,R15 GO CHECK THEM 00471000
  498. LTR R2,R15 WORK FILE EXIST? 00472000
  499. BZ ERR24E YES, ERROR 00473000
  500. CH R15,=H'36' WAS DISK NOT ACCESSED? @VA12416 00473300
  501. BE ERRMSG36 GIVE MSG @VA12416 00473600
  502. CH R15,=H'28' 'NOT FOUND' CONDITION? 00474000
  503. BNE EDEXIT TERMINATE. 00475000
  504. L R1,=V(EDFILES) THIS IS WHERE IT STARTS 00476000
  505. SPACE 1 00477000
  506. MVC SPECFT,FTYPE PUT FILETYPE IN WKAREA 00478000
  507. CLC SPECFT(4),UPDT UPDATE FILE? 00479000
  508. BNE TYPDATLP NO WORRY IF NOT 00480000
  509. MVC SPECFT+4(4),XXXX DUMMY IT UP FOR TEST 00481000
  510. SPACE 00482000
  511. TYPDATLP EQU * SEARCH LOOP 00483000
  512. CLI 0(R1),X'FF' IS THIS THE DEFAULT ENTRY? 00484000
  513. BE TYPFND BRANCH IF SO (USE IT) 00485000
  514. CLC 0(8,1),SPECFT DOES THIS ENTRY MATCH OUR FILETYPE? 00486000
  515. BE TYPFND BRANCH IF SO (JOLLY GOOD) 00487000
  516. LA R1,12(,R1) LOOK AT NEXT FILETYPE IN THE TABLE 00488000
  517. B TYPDATLP AND LOOP 00489000
  518. SPACE 00490000
  519. TYPFND EQU * FOUND THE FILETYPE (REAL OR DEFAULT) 00491000
  520. L R10,8(,R1) ADDRESS OF FILETYPE DATA @V305614 00492000
  521. MVC CASESW(1),0(R10) MOVE IN THE CASESW PROMTO @V305614 00493000
  522. MVC FLAG(1),1(R10) SAME FOR FLAGS @V305614 00494000
  523. OI FLAG2,LONGSW+VER DEFAULT TO LONG MSGS 00495000
  524. EJECT 00496000
  525. * 00497000
  526. ************** 00498000
  527. * 00499000
  528. * LOOK FOR SOURCE FILE 00500000
  529. * 00501000
  530. ************** 00502000
  531. SPACE 00503000
  532. LA R1,IOLIST POINT TO THE PLIST 00504000
  533. MVC IOLIST+8(18),FNAME MOVE FILE DATA INTO PLIST 00505000
  534. MVC IOAD(4),=CL4'****' FOR REUSEABILITY @VM08650 00506000
  535. L R15,ASTATE GO TO STATE 00507000
  536. BALR R14,R15 ASK IF FILE EXISTS 00508000
  537. LTR R2,R15 ANY ERRORS? 00509000
  538. BZ OLDFST NO, FILE EXISTS. 00510000
  539. CH R15,=H'36' WAS DISK NOT ACCESSED? @VA12416 00510500
  540. BE ERRMSG36 GIVE MSG @VA12416 00510800
  541. CH R15,=H'28' FILE NOT FOUND? 00511000
  542. BE NEWFILE MUST BE NEW FILE... 00512000
  543. B EDEXIT SO TERMINATE 00513000
  544. SPACE 1 00514000
  545. OLDFST EQU * 00515000
  546. L R3,IOLIST+28 GET STATE DATA 00516000
  547. USING FSTD,R3 @V305614 00517000
  548. L R15,32(,R3) ITEM LENGTH 00518000
  549. CH R15,=H'160' TOO BIG ? @V2D3914 00519000
  550. BH ERR44E BRANCH IF SO 00520000
  551. ST R15,OLDITEM SAVE AS OLD FILE ITEM LENGTH 00521000
  552. MVC FV(1),FSTRECFM GET FST 'F' OR 'V' FLAG @V305614 00522000
  553. MVC IOLIST+36(1),FV SET UP THE RDBUF FORMAT 00523000
  554. CLI ITEM+3,0 HAS ITEM LENGTH BEEN SPECIFIED? 00524000
  555. BNE FORVIS BRANCH IF SO 00525000
  556. ST R15,ITEM USE THE OLD LENGTH 00526000
  557. CLI FV,C'V' VARIABLE LENGTH? 00527000
  558. BNE DEFAULT IF NOT, CONTINUE INIT'N. 00528000
  559. CLM R15,B'0001',3(R10) ACTUAL LENGTH > DEFAULT ? @V305614 00529000
  560. BH DEFAULT IF SO, USE IT 00530000
  561. MVC ITEM+3(1),3(R10) IF NOT, USE DMSEDF DEFAULT @V305614 00531000
  562. B DEFAULT AND CONTINUE... 00532000
  563. SPACE 00533000
  564. FORVIS EQU * IT'S F OR V FORMAT 00534000
  565. C R15,ITEM COMPARE ACTUAL AND SPECIFIED WIDTH 00535000
  566. BH ERR76E BRANCH IF REAL > SPECIFIED 00536000
  567. DEFAULT EQU * 00537000
  568. MVC FMODE(2),FSTFMODE SET FILEMODE @V305614 00538000
  569. BAL R4,CORINIT INITIALIZE CORE 00539000
  570. ST R8,PTR1 SET FIRST RECORD POINTER @V305614 00540000
  571. LA R1,PTR1 NOW INITIALIZE PTR2 @V305614 00541000
  572. ST R1,PTR2 ..... @V305614 00542000
  573. SR R0,R0 MAKE THE HALFWORD MORE @VA02566 00543000
  574. ICM R0,LOWHW,FSTRECCT MANAGEABLE @V305614 00544000
  575. DROP R3 ..... @V305614 00545000
  576. CR R15,R0 ENOUGH ROOM FOR THE FILE? @VA02566 00546000
  577. BL ERR132S BRANCH IF NOT 00547000
  578. MVC IOLIST+24(2),FMODE SET FILEMODE 00548000
  579. SR R0,R0 SET R0 = 0 00549000
  580. STH R0,IOLIST+26 SET FOR SEQUENTIAL 00550000
  581. L R6,ITEM SAVE THE ITEM LENGTH 00551000
  582. BCTR R6,0 DECREMENTED FOR EXECUTE 00552000
  583. CLI FV,C'V' V FORMAT FILE? 00553000
  584. BE XINVAR BRANCH IF SO 00554000
  585. CLC ITEM(4),OLDITEM COMPUTE OLD AND NEW ITEM LENGTHS 00555000
  586. BNE XINVAR BRANCH IF NOT EQUAL 00556000
  587. EJECT 00557000
  588. * 00558000
  589. ************** 00559000
  590. * 00560000
  591. * READ F FORMAT FILE FOR WHICH EDIT ITEM LENGTH <= ACTUAL 00561000
  592. * ITEM LENGTH. 00562000
  593. * 00563000
  594. ************** 00564000
  595. SPACE 1 00565000
  596. LA R3,BUFFER POINT TO PREALLOCATED BUFFER 00566000
  597. ST R3,IOLIST+28 SET UP A(USER AREA) 00567000
  598. LA R1,800 SIZE OF WORK AREA 00568000
  599. ST R1,IOLIST+32 STORE IN RDBUF PARM LIST 00569000
  600. SR R0,R0 CLEAR HIGH-ORDER DIVIDEND 00570000
  601. D R0,ITEM COMPUTE NUMBER OF ITEMS TO READ 00571000
  602. STH R1,IOLIST+38 STORE IN PARM LIST 00572000
  603. LA R1,IOLIST POINT TO RDBUF PLIST 00573000
  604. SPACE 00574000
  605. XINT01 EQU * 00575000
  606. L R15,ARDBUF GET ADDRESS OF DISK READ 00576000
  607. BALR R14,R15 GET A BLOCK OF RECORDS 00577000
  608. BNZ XINT06 CHECK FOR ERROR RETURN 00578000
  609. LA R2,BUFFER REINITIALIZE BUFFER POINTER 00579000
  610. L R5,IOLIST+40 GET NUMBER BYTES ACTUALLY READ 00580000
  611. L R4,OLDITEM LOAD INCREMENT FOR BXLE 00581000
  612. AR R5,R2 GET BXLE COMPARAND 00582000
  613. SR R5,R4 AND POINTER TO THE END 00583000
  614. SPACE 1 00584000
  615. XINT03 EQU * 00585000
  616. EX R6,BUFFMOVE PUT THE LINE INTO STORAGE 00586000
  617. BAL R14,XWRITEA PUT IT INTO CORE 00587000
  618. BXLE R2,R4,XINT03 LOOP THROUGH BLOCK 00588000
  619. B XINT01 FALL THROUGH, READ NEXT BUNCH 00589000
  620. SPACE 00590000
  621. BUFFMOVE MVC 8(*-*,8),0(R2) LINE MOVER 00591000
  622. EJECT 00592000
  623. * 00593000
  624. ************** 00594000
  625. * 00595000
  626. * READ V FORMAT FILE, OR ONE FOR WHICH EDIT ITEM LENGTH > ACTUAL 00596000
  627. * ITEM LENGTH. 00597000
  628. * 00598000
  629. ************** 00599000
  630. SPACE 1 00600000
  631. XINVAR EQU * 00601000
  632. LA R1,IOLIST PICK UP POINTER FOR PLIST 00602000
  633. LA R3,8(,R8) POINT 8 BEYOND AEXTEND TARGET 00603000
  634. ST R3,IOLIST+28 THIS IS THE BUFFER FOR RDBUF 00604000
  635. MVI 0(R3),C' ' WHICH... 00605000
  636. EX R6,LINECLR SHOULD BE CLEARED. 00606000
  637. L R15,ARDBUF GET ADDRESS OF DISK READ 00607000
  638. BALR R14,R15 READ A LINE INTO STORAGE 00608000
  639. BNZ XINT06 CHECK FOR ERROR 00609000
  640. BAL R14,XWRITEA PUT IN THE POINTERS 00610000
  641. B XINVAR AND LOOP UNTIL EOF @V305614 00611000
  642. SPACE 00612000
  643. LINECLR MVC 1(*-*,R3),0(R3) BLANK MOVER 00613000
  644. EJECT 00614000
  645. * 00615000
  646. ************** 00616000
  647. * 00617000
  648. * CLOSE THE INPUT FILE 00618000
  649. * 00619000
  650. ************** 00620000
  651. SPACE 1 00621000
  652. XINT06 EQU * 00622000
  653. LR R2,R15 SAVE ERROR CODE IN R0 00623000
  654. ST R8,AEXTEND POINT TO NEXT AVAIL. LINE 00624000
  655. S R8,CORITEM BACK UP BY CORITEM @V305614 00625000
  656. ST R8,PTR3 SET PTR3 EQUAL LAST LINE @V2D3913 00626000
  657. LA R8,PTR1 GET ADDRESS OF TOP POINTER @V305614 00627000
  658. ST R8,PTR2 SET PTR2 @V305614 00628000
  659. SR R8,R8 ZERO OUT @V305614 00629000
  660. L R9,PTR3 LAST RECORD @V305614 00630000
  661. ST R8,0(,R9) FORWARD POINTER @V305614 00631000
  662. L R15,AFINIS GET CLOSE ROUTINE ADDRESS 00632000
  663. BALR R14,R15 CLOSE THE FILE 00633000
  664. CH R2,=H'12' EOF? 00634000
  665. BNE ERR104S BRANCH IF NOT 00635000
  666. LA R2,ONE NOW REINITIALIZE @V305666 00636000
  667. STH R2,RECS THE IO PLIST FOR EDIT @V305614 00637000
  668. B ISORISNT GO TO COMMON IS OR ISN'T ROUTINE 00638000
  669. EJECT 00639000
  670. * 00640000
  671. ************** 00641000
  672. * 00642000
  673. * XWRITEA INSTALLS FORWARD AND BACKWARD POINTERS 00643000
  674. * INTO THE STORAGE COPY OF THE FILE BEING EDITTED 00644000
  675. * 00645000
  676. ************** 00646000
  677. SPACE 1 00647000
  678. DS 0H 00648000
  679. XWRITEA BCTR R13,0 REDUCE BY 1 00649000
  680. ST R13,SPARES AND STORE AS NEW VALUE OF SPARES 00650000
  681. L R9,PTR2 GR1=A(OLD ITEM) 00651000
  682. ST R8,PTR2 READ PTR POINTS TO ITEM 00652000
  683. L R3,0(,R9) GR14=A(OLD+1) @V305614 00653000
  684. ST R3,0(,R8) E =>OLD+1 @V305614 00654000
  685. ST R9,4(,R8) OLD <= E 00655000
  686. ST R8,0(,R9) OLD => E 00656000
  687. A R8,CORITEM ADDS CORE ITEM TO CURRENT POINTER@V305614 00657000
  688. BR R14 RETURN TO CALLER 00658000
  689. EJECT 00659000
  690. * 00660000
  691. ************** 00661000
  692. * 00662000
  693. * NEW FILE ... 00663000
  694. * 00664000
  695. ************** 00665000
  696. SPACE 00666000
  697. NEWFILE EQU * IT'S A NEW FILE 00667000
  698. CLC ALTMODE(FMOD),ASTRKMOD SET FILEMODE '*' TO A1 @VA06274 00667200
  699. BNE DRVDMODE MODE IS A1 OR GIVEN MODE @VA06274 00667400
  700. MVC ALTMODE(FMOD),DMODE REVERT TO MODE A1 @VA06274 00667600
  701. DRVDMODE EQU * @VA06274 00667800
  702. MVC FMODE(2),ALTMODE USE DERIVED FILEMODE 00668000
  703. MVC FV(1),2(R10) SET FV FLAG FROM FILETYPE DATA @V305614 00669000
  704. CLI ITEM+3,0 HAS ITEM LENGTH BEEN SPECIFIED? 00670000
  705. BNE *+10 SKIP IF SO 00671000
  706. MVC ITEM+3(1),3(R10) USE DEFAULT FOR FILETYPE @V305614 00672000
  707. BAL R4,CORINIT INITIALIZE CORE 00673000
  708. LTR R15,R15 HOW MANY LINES CAN WE FIT IN? 00674000
  709. BNH ERR132S BRANCH IF NONE 00675000
  710. SPACE 00676000
  711. L R15,PTR2 GET PTR2 VALUE @V305614 00677000
  712. ST R15,PTR3 AND AS VALUE OF PTR3 @V2D3913 00678000
  713. TM FLAG2,TUBE DISPLAY TYPE TERM ? 00679000
  714. BNO TYPMSG NO ... BR 00680000
  715. OI FLAG2,NUFILE INDICATE NEW FILE 00681000
  716. B ISORISNT 00682000
  717. TYPMSG LA R2,NEWMSG POINT TO THE MESSAGE 00683000
  718. BAL R14,WRTYPE TYPE 'NEW FILE:' 00684000
  719. EJECT 00685000
  720. * 00686000
  721. ************** 00687000
  722. * 00688000
  723. * NEW OR OLD FILE ... 00689000
  724. * 00690000
  725. ************** 00691000
  726. SPACE 00692000
  727. ISORISNT EQU * FILE IS OR FILE ISN'T 00693000
  728. L R15,ITEM GET ITEM LENGTH TO BE USED 00694000
  729. SR R0,R0 CLEAR R0 00695000
  730. IC R0,4(,R10) TRUNCATION COLUMN (AND END ZONE) @V305614 00696000
  731. LTR R0,R0 IS IT TO BE SET TO ITEM-LENGTH? 00697000
  732. BNZ *+6 SKIP IF NOT 00698000
  733. LR R0,R15 OTHERWISE USE ITEM LENGTH 00699000
  734. CR R0,R15 TOO BIG? 00700000
  735. BNH *+6 SKIP IF NOT 00701000
  736. LR R0,R15 USE ITEM LENGTH 00702000
  737. STC R0,TRUNCOL+1 SET TRUNCOL 00703000
  738. STC R0,ZONE2+1 AND END ZONE 00704000
  739. SPACE 00705000
  740. * DISABLE SERIALIZATION IF LRECL NOT 80. 00705100
  741. SPACE 1 00705200
  742. CH R15,H80 IS LRECL EQUAL TO 80? @VA04598 00705300
  743. BE NODISSER YES, SERIALIZATION UNAFFECTED @VA04598 00705400
  744. NI FLAG,X'FF'-(SERSW+SERNAME) NO, DISABLE SERIAL. @VA04598 00705500
  745. SPACE 1 00705600
  746. NODISSER EQU * @VA04598 00705700
  747. IC R0,5(,R10) PICK UP COLUMN OF VERIFICATION @V305614 00706000
  748. LTR R0,R0 IS IT TO BE SET TO THE ITEM-LENGTH? 00707000
  749. BNZ *+6 SKIP IF NOT 00708000
  750. LR R0,R15 SET IT TO THE ITEM-LENGTH 00709000
  751. CR R0,R15 TOO BIG? 00710000
  752. BNH *+6 SKIP IF NOT 00711000
  753. LR R0,R15 USE ITEM LENGTH 00712000
  754. SPACE 1 00713000
  755. STH R0,VERCOL2 SAVE AS VERIFY END COLUMN @V2D3914 00714000
  756. STH R0,VERLEN AND VERIFY LENGTH @V2D3914 00715000
  757. LA R1,1 INITIALIZE FIRST VERIFY @V2D3914 00716000
  758. STH R1,VERCOL1 COLUMN TO 1 @V2D3914 00717000
  759. SPACE 00718000
  760. L R1,8(,R10) ADDRESS OF DEFAULT TABS @V305614 00719000
  761. MVC TABS(ENDTABS-TABS),0(R1) MOVE THEM INTO 'TABS' 00720000
  762. SR R1,R1 CLEAR REG FOR ZONE SET 00721000
  763. IC R1,TABS GET STARTING TAB 00722000
  764. BCTR R1,0 STORE 1 LESS FOR CALC. EASE 00723000
  765. STH R1,ZONE1 STORE IN FIRST ZONE ENTRY 00724000
  766. MVI PADCHAR,C'0' INITIALIZE PADCHAR 00725000
  767. MVI LMSTART+1,75 AND LMSTART 00726000
  768. TM FLAG,LEFT LINEMODE LEFT? 00727000
  769. BZ IS1 SKIP IF NOT 00728000
  770. SPACE 1 00729000
  771. TM FLAG,LINE8 ARE LINENUMBERS THE LONG KIND? 00730000
  772. BO *+8 WELL THEN, THEY'RE ZERO FILLED. 00731000
  773. MVI PADCHAR,C' ' PAD CHARACTER FOR LEFT 00732000
  774. MVI LMSTART+1,0 AND STARTING POSITION 00733000
  775. SPACE 1 00734000
  776. IS1 EQU * 00735000
  777. MVC JAR(ENDBLOC-BLOC),BLOC INITIAL PRESERVE @V305614 00736000
  778. SR R2,R2 CLEAR R2 = "RETURN CODE" @VM03083 00737000
  779. CL R2,MAINAD SHOULD WE USE A MODULE ? @VM03083 00738000
  780. BE NOSEG YES (IF MAINAD = 0) - BRANCH @VM03083 00739000
  781. L R14,MAINAD OTHERWISE, GET ADDRESS OF EDMAIN @VM03108 00740000
  782. B EXIT USE IT ... @V305614 00741000
  783. NOSEG L R14,AUSEAR GET LOADMOD ENTRY POINT @VM03182 00742000
  784. B EXIT GO TO NORMAL EXIT RTN @V305614 00743000
  785. EJECT 00744000
  786. * 00745000
  787. ************** 00746000
  788. * 00747000
  789. * CORINIT IS A SUBROUTINE WHICH INITIALIZES CORE. 00748000
  790. * 00749000
  791. * 1. COMPUTES NO. OF BYTES REQUIRED PER LINE (CORITEM) 00750000
  792. * 2. CALLS GETMAIN 00751000
  793. * 3. COMPUTES NUMBER OF LINES WE CAN FIT IN (SPARES) 00752000
  794. * 00753000
  795. * CALL: 00754000
  796. * BAL 4,CORINIT 00755000
  797. * 00756000
  798. ************** 00757000
  799. SPACE 00758000
  800. CORINIT DS 0H 00759000
  801. LA R14,PTR1 LOCATE PTR1 00760000
  802. ST 14,PTR2 MAKE PTR2 POINT TO IT 00761000
  803. L R14,ITEM ITEM LENGTH 00762000
  804. LA R14,3(,R14) ROUND TO WORD 00763000
  805. N R14,FMINUS4 ... 00764000
  806. LA R14,8(,R14) ADD ROOM FOR POINTERS @V305614 00765000
  807. ST R14,CORITEM STORE AS CORITEM @V305614 00766000
  808. SPACE 00767000
  809. L R15,FREELEN GET LENGTH OF FREE STORAGE @VM03108 00768000
  810. LA R8,EDCBLTH GET LENGTH OF EDCB @V305614 00769000
  811. SR R15,R8 DEDUCT EDCB LENGTH @V305614 00770000
  812. LA R8,EDCBEND POINT TO AREA AFTER EDCB @V305614 00771000
  813. SPACE 1 00772000
  814. TM FLAG2,TUBE+REMOTE DEALING WITH GRAPHICS? @V2D3914 00773000
  815. BZ REGCALC EASY, IF NOT. @V2D3913 00774000
  816. ST R8,SCRBUFAD RESERVE A SCREEN BUFFER @V2D3913 00775000
  817. SLR R13,R13 CLEAR SCREEN INDEX REGISTER @V60A6B6 00775100
  818. SPACE 00775110
  819. *********************************************************************** 00775120
  820. ** THE FOLLOWING CODE CHANGES THE MODEL NUMBER OF A 3278 MODEL 2A TO ** 00775130
  821. ** A 6 IN TYPSCR SO THAT THE DISPLACEMENT OF 16 (6-2*4=16) CAN BE 73DS 00775140
  822. ** ESTABLISHED. IF THE ACTUAL MODEL NUMBER OF 6 IS EVER USED THEN 73DS 00775150
  823. ** THIS CODE MUST BE CHANGED..THAT IS BE SURE TO GET THE CORRECT ** 00775160
  824. ** DISPLACEMENT. ** 00775170
  825. *********************************************************************** 00775180
  826. SPACE 00775190
  827. CLI TYPSCR,MODEL2A IS MODEL A 3278 MODEL 2A? @V60A6B6 00775200
  828. BNE NOT2A NO... DO NORMAL INDEX COMP.. @V60A6B6 00775210
  829. MVI TYPSCR,6 MOVE 6 INTO FIELD HRC073DS 00775220
  830. IC R13,TYPSCR PICK IT OUT TO START INDEXING @V60A6B6 00775230
  831. SH R13,TWO COMPUTE INDEX @V60A6B6 00775240
  832. MH R13,FOUR . . . @V60A6B6 00775250
  833. B INDEXSET DON'T REDO INDEXING @V60A6B6 00775260
  834. NOT2A EQU * 00775270
  835. IC R13,TYPSCR GET THE DISPLAY ALT. SIZE INDEX @V60A6B6 00776000
  836. SH R13,TWO COMPUTE INDEX @V60A6B6 00776010
  837. MH R13,FOUR . . . @V60A6B6 00776020
  838. INDEXSET EQU * 00776030
  839. L R13,SCRSIZES(R13) AND GET SCREEN BUFFER. @V60A6B6 00776100
  840. AR R8,R13 OFFSET STORAGE START @V2D3913 00777000
  841. SR R15,R13 REDUCE LENGTH @V2D3913 00778000
  842. BNP ERR132S MUST HAVE SOME @V2D3913 00779000
  843. REGCALC EQU * @V2D3913 00780000
  844. ST R8,AEXTEND MAKE IT THE STANDARD 00781000
  845. SR R14,R14 ZERO FOR DIVIDE 00782000
  846. D R14,CORITEM NO. OF LINES WE CAN HANDLE 00783000
  847. LR R13,R15 SAVE FOR COMPUTING LATER. 00784000
  848. ST R15,SPARES SAVE AS SPARES 00785000
  849. BR R4 RETURN 00786000
  850. EJECT 00787000
  851. * 00788000
  852. ************** 00789000
  853. * 00790000
  854. * TERMINAL ERRORS ... 00791000
  855. * 00792000
  856. ************** 00793000
  857. SPACE 00794000
  858. ERR3E DMSERR NUM=3,LET=E,SUB=(CHARA,(2)),TEXT='Invalid option ''....*00795490
  859. ....''',CSECT=EDI 00796000
  860. LA R2,24 RETURN CODE = 24 00797000
  861. B EDEXIT FREEMAIN AND EXIT @V305614 00798000
  862. SPACE 2 00799000
  863. ERR24E DMSERR NUM=24,LET=E,SUB=(CHAR8A,EDWORK),TEXT='File ''.........*00800590
  864. ...........'' already exists',CSECT=EDI HRC002DS 00801180
  865. LA 2,28 RETURN CODE = 28 00802000
  866. B EDEXIT FREEMAIN AND EXIT @V305614 00803000
  867. SPACE 2 00804000
  868. ERR29E DMSERR NUM=29,LET=E,SUB=(CHARA,(2)),TEXT='Invalid parameter ''*00805590
  869. ........'' in the option ''LRECL'' field',CSECT=HRC002DS 00806180
  870. LA R2,24 RETURN CODE = 24 00807000
  871. B EDEXIT FREEMAIN AND EXIT @V305614 00808000
  872. SPACE 2 00809000
  873. ERR44E DMSERR NUM=44,LET=E,TEXT='Record length exceeds allowable maxi*00810590
  874. mum',CSECT=EDI HRC002DS 00811180
  875. LA R2,32 RETURN CODE = 32 @V305614 00812000
  876. B EDEXIT FREEMAIN AND EXIT @V305614 00813000
  877. SPACE 2 00814000
  878. ERR048E DMSERR NUM=48,LET=E,SUB=(CHARA,(2)),TEXT='Invalid mode ''.....*00815490
  879. ...''',CSECT=EDI 00816000
  880. LA R2,24 RETURN CODE = 24 00817000
  881. B EDEXIT FREEMAIN AND EXIT @V305614 00818000
  882. SPACE 2 00819000
  883. ERR54E DMSERR NUM=54,LET=E,TEXT='Incomplete fileid specified',CSECT=E*00820490
  884. DI 00821000
  885. LA R2,24 RETURN CODE = 24 00822000
  886. B EDEXIT FREEMAIN AND EXIT @V305614 00823000
  887. ERRMSG36 EQU * @VA12416 00823150
  888. LA R0,24(R1) POINT TO MODE LETTER @VA12416 00823300
  889. DMSERR TEXT='Disk ''..'' not accessed',NUM=69, X00823510
  890. LET=E,SUB=(CHARA,((R0),1)) @VA12416 00823600
  891. LA R2,36 GIVE RETCODE @VA12416 00823750
  892. B EDEXIT AND GO RETURN TO CALLER @VA12416 00823900
  893. SPACE 2 00824000
  894. ERR76E DMSERR TEXT='Actual record length exceeds that specified', X00825490
  895. NUM=76,LET=E,CSECT=EDI @VA03885 00826000
  896. LA R2,40 RETURN CODE = 40 00827000
  897. SR R0,R0 CLEAN A REG @VA02417 00828000
  898. ST R0,ITEM CLEAR UP MISTAKES BEFORE LEAVING @VA02417 00829000
  899. B EDEXIT FREEMAIN AND EXIT @V305614 00830000
  900. SPACE 2 00831000
  901. ERR104S DMSERR NUM=104,LET=S,SUB=(DEC,(2),CHAR8A,IOID),TEXT='Error ''.*00832590
  902. .'' reading file ''....................'' from disk',REN*00833180
  903. T=NO,CSECT=EDI 00834000
  904. LA R1,IOLIST ATTEMPT TO CLOSE THE FILE @VM03083 00835000
  905. L R15,AFINIS ... @VM03083 00836000
  906. BALR R14,R15 ... @VM03083 00837000
  907. LA R2,100 RETURN CODE = 100 00838000
  908. B EDEXIT AND QUIT.. @V305614 00839000
  909. SPACE 00840000
  910. ERR132S DMSERR NUM=132,LET=S,SUB=(CHAR8A,FNAME),TEXT='File ''.........*00841590
  911. ...........'' too large',CSECT=EDI HRC002DS 00842180
  912. LA R2,88 RETURN CODE = 88 00843000
  913. B EDEXIT FREEMAIN AND EXIT @V305614 00844000
  914. SPACE 1 00845000
  915. SPACE , HRC104DS 00846000
  916. ERR143 DMSERR NUM=143,LET=S,TEXT=' Unable to load SAVED SYSTEM or loaX00846590
  917. d module',CSECT=EDI HRC002DS 00847180
  918. LA R2,FORTY SET RETURN CODE @V305666 00848000
  919. LR R14,R9 SET UP CMS RETURN @V305614 00849000
  920. B EXIT AND RETURN @V305614 00850000
  921. ERR109S EQU * @VA07625 00850100
  922. DMSERR NUM=109,LET=S,TEXT='Virtual storage capacity exceeded' *00850220
  923. HRC002DS 00850240
  924. LM R0,R1,0(R8) SET UP FOR FRET @VA07625 00850300
  925. DMSFRET DWORDS=(0),LOC=(1),TYPCALL=BALR FRET @VA07625 00850400
  926. SR R7,R7 CLEAR R7 @VA07625 00850500
  927. LA R2,RET88 PUT RET CODE IN R2 @VA07625 00850600
  928. LR R14,R9 GET RETURN ADDRESS @VA07625 00850700
  929. B EXIT GO EXIT @VA07625 00850800
  930. SPACE 1 00851000
  931. EJECT 00852000
  932. * 00853000
  933. ************** 00854000
  934. * 00855000
  935. * GENERAL TERMINAL WRITE ROUTINE 00856000
  936. * 00857000
  937. ************** 00858000
  938. SPACE 1 00859000
  939. WRTYPE EQU * @V305614 00860000
  940. LA R1,WRLIST POINT TO PLIST @V305614 00861000
  941. MVI 0(R1),HEX80 SET 1ST FLAG @V305666 00862000
  942. MVI 1(R1),HEX81 AND 2ND FLAG @VM03210 00863000
  943. STCM R2,BIN0111,2(R1) AND MSG ADDRESS @V305666 00864000
  944. SVC 203 @V305614 00865000
  945. DC H'-6' @V305614 00866000
  946. BR R14 RETURN TO THE CALLER 00867000
  947. SPACE 1 00868000
  948. EJECT 00869000
  949. * 00870000
  950. ************** 00871000
  951. * 00872000
  952. * RETURN TO THE CALLER (DMSEDI) 00873000
  953. * 00874000
  954. ************** 00875000
  955. SPACE 1 00876000
  956. EDEXIT EQU * 00877000
  957. SR R1,R1 GET A ZERO @VA02874 00878000
  958. ST R1,ITEM CLEAN UP ERROR @VA02874 00879000
  959. L R1,AFSTFNRD ADDRESS OF ANCHOR FOR STACKED READS 00880000
  960. L R1,0(,R1) CHECK THE CHAIN. 00881000
  961. LTR R1,R1 ARE THERE ANY? 00882000
  962. BZ FREECORE IF NOT, GO FREE STORAGE @V305614 00883000
  963. CMS CONWAIT WAIT FOR PEACE AND QUIET 00884000
  964. CMS DESBUF DESTROY STACKED LINES 00885000
  965. LR 5,2 SAVE RETURN CODE 00886000
  966. LA R2,CLRMSG POINT TO THE MESSAGE. 00887000
  967. BAL R14,WRTYPE TYPE WARNING MESSAGE 00888000
  968. LR 2,5 GET SAVED RETURN CODE 00889000
  969. FREECORE L R14,EDRET SET CMSRETURN ADDRESS @V305614 00890000
  970. SPACE 1 00891000
  971. LM R0,R1,FREELEN GIVE BACK FREE STORAGE @V305614 00892000
  972. SR R4,R4 R4=0 MEANS DOSFLAGS IS OK @VM03083 00893000
  973. TM DOSFLAGS,DOSSVC INTERNAL SVC-BIT SET ? @VM03083 00894000
  974. BZ DOSFOK3 IF 0 WE'RE OK @VM03083 00895000
  975. IC R4,DOSFLAGS IF NOT 0, REMEMBER DOSFLAGS, @VM03083 00896000
  976. NI DOSFLAGS,255-DOSSVC AND RESET FLAGBIT @VM03083 00897000
  977. DOSFOK3 FREEMAIN R,LV=(0),A=(1) RETURN THE USER STORAGE @VM03083 00898000
  978. LTR R4,R4 WAS DOSFLAGS OK BEFORE ? @VM03083 00899000
  979. BZ EXIT IF YES WE'RE OK @VM03083 00900000
  980. STC R4,DOSFLAGS IF NOT, RESTORE IT AS IT WAS @VM03083 00901000
  981. EXIT EQU * GO TO EDMAIN OR RETURN TO CMS: @VM03083 00902000
  982. LR R15,R2 SET RETURN CODE @V305614 00903000
  983. LR R1,R7 PASS ALONG THE FREE STOR ADR @V305614 00904000
  984. BR R14 GO BACK TO CMS OR MAIN RTN @V305614 00905000
  985. SPACE 1 00906000
  986. EJECT 00907000
  987. * 00908000
  988. ************** 00909000
  989. * 00910000
  990. * PARAMETER LISTS AND MESSAGE DUMMIES 00911000
  991. * 00912000
  992. ************** 00913000
  993. SPACE 1 00914000
  994. INITLIST DS 0F @V305614 00915000
  995. DC CL8'WAITRD' @V305614 00916000
  996. DC AL1(1) @V305614 00917000
  997. DS AL3 @V305614 00918000
  998. DC C'U' @V305614 00919000
  999. DS AL3 @V305614 00920000
  1000. DC CL8'TYPLIN' @V305614 00921000
  1001. DC AL1(1) @V305614 00922000
  1002. DS AL3 @V305614 00923000
  1003. DC C'B' @V305614 00924000
  1004. DC X'10' @VA06190 00925500
  1005. DS H @V305614 00926000
  1006. DC CL8'STATE' @V305614 00927000
  1007. DC CL8'EDIT' @V305614 00928000
  1008. DC CL8'CMSUT1' @V305614 00929000
  1009. DC CL2'A1' @V305614 00930000
  1010. DS H @V305614 00931000
  1011. DC CL4'****' @V305614 00932000
  1012. DC F'160' @V305614 00933000
  1013. DC CL2' ' @V305614 00934000
  1014. DC H'1' @V305614 00935000
  1015. DS F @V305614 00936000
  1016. DC CL8'RENAME' @V305614 00937000
  1017. DC CL8'EDIT' @V305614 00938000
  1018. DC CL8'CMSUT1' @V305614 00939000
  1019. DC CL8'A1' @V305614 00940000
  1020. DS CL8 @V305614 00941000
  1021. DS CL8 @V305614 00942000
  1022. DC CL2'*',CL6' ' @V305614 00943000
  1023. DC 8X'FF' @V305614 00944000
  1024. DC CL8'ATTN' @V305614 00945000
  1025. DC CL4'FIFO' @V305614 00946000
  1026. DS AL1,AL3 @V305614 00947000
  1027. DC CL8'ATTN' @V305614 00948000
  1028. DC CL4'LIFO' @V305614 00949000
  1029. DS AL1,AL3 @V305614 00950000
  1030. DC CL8'RENUM' @V305614 00951000
  1031. DS 8F @V305614 00952000
  1032. ENDPLIST DS 0F @V305614 00953000
  1033. LPLIST EQU (ENDPLIST-INITLIST) @V305614 00954000
  1034. SPACE 1 00955000
  1035. CCWINIT DC X'1900000020000000' @VA05027 00956100
  1036. SPACE 1 00958000
  1037. SPACE 1 00959000
  1038. CONWAIT DS 0F 00960000
  1039. DC CL8'CONWAIT' 00961000
  1040. DC CL4'CON1' 00962000
  1041. SPACE 00963000
  1042. DESBUF DS 0F 00964000
  1043. DC CL8'DESBUF' 00965000
  1044. SPACE 00966000
  1045. CLRMSG DC AL1(L'KILMES) 00967000
  1046. KILMES DC C'Stacked lines cleared' HRC002DS 00968490
  1047. SPACE 1 00969000
  1048. NEWMSG DC AL1(L'NOTFND) 00970000
  1049. NOTFND DC C'New file:' HRC002DS 00971490
  1050. SPACE 00972000
  1051. EJECT 00973000
  1052. * 00974000
  1053. ************** 00975000
  1054. * 00976000
  1055. * MISCELLANEOUS DATA FIELDS 00977000
  1056. * 00978000
  1057. ************** 00979000
  1058. SPACE 1 00980000
  1059. FREEADR DC A(0) ADDRESS OF "GETMAIN" BUFFER @VM03083 00981000
  1060. FREEBYT DC A(0) AND LENGTH OF SAME @VM03083 00982000
  1061. SPACE 00983000
  1062. FFREE DC F'1960' NO. DBLWDS FOR STACK AND EXEC 00984000
  1063. LIMITS DC F'88' RANGE FOR CONDITIONAL GETMAIN 00985000
  1064. DC F'16777215' 00986000
  1065. AUSEAR DC F'131072' 20000 @VM03182 00987000
  1066. FMINUS4 DC F'-4' USED FOR ROUNDING 00988000
  1067. TEN DC H'10' JUST LIKE THE 'NEW MATH' 00989000
  1068. H80 DC H'80' HALFWORD 80 @VA04598 00989100
  1069. DMODE DC CL2'A1' DEFAULT MODE 00990000
  1070. ASTRKMOD DC CL2'* ' FILEMODE ASTERISK @VA06274 00990500
  1071. UPDT DC CL4'UPDT' POSSIBLE UPDATE FT PREFIX 00991000
  1072. XXXX DC CL4'XXXX' DUMMY SUFFIX 00992000
  1073. TWO DC H'2' USED TO COMPUTE SCREEN SIZE @V60A6B6 00992100
  1074. FOUR DC H'4' USED TO COMPUTE SCREEN SIZE @V60A6B6 00992200
  1075. FIVE EQU X'05' USED TO COMPUTE SCREEN SIZE @V60A6B6 00992300
  1076. MODEL2A EQU X'2A' @V60A6B6 00992400
  1077. MODEL02 EQU X'02' HRC104DS 00992500
  1078. MODEL03 EQU X'03' HRC104DS 00992600
  1079. MODEL04 EQU X'04' HRC104DS 00992700
  1080. MODEL05 EQU X'05' HRC104DS 00992800
  1081. SPACE 1 00993000
  1082. BLOCINIT DC X'0A004B000AF0' @V305614 00994000
  1083. MSGINIT DC C'.... line(s) changed' HRC002DS 00995090
  1084. DC C', ' @VA04193 00995200
  1085. DC C'.... line(s) ' HRC002DS 00995590
  1086. DC C'truncated' HRC002DS 00995780
  1087. DC CL4'A1' CMODE @V305614 00996000
  1088. DC C'Set new FILEXXXX and retry' HRC002DS 00997490
  1089. MSGLIMIT EQU * @V305614 00998000
  1090. MSGINITL EQU (MSGLIMIT-MSGINIT) @V305614 00999000
  1091. SPACE 1 00999300
  1092. INVINIT EQU * START OF EDLIN HEADERS @VA04733 00999600
  1093. DC CL6'?EDIT:' HEADER FOR INVALID REQUEST MSG @VA04733 00999900
  1094. DC CL4'EXEC' HEADER FOR EDIT MACRO STACKING @VA04733 01000200
  1095. DC CL6' ' SPOT TO HOLD SELECTED HEADER @VA04733 01000500
  1096. DC CL1' ' BLANK TO OFFSET SELECTED HEADER @VA04733 01000800
  1097. INVINITL EQU *-INVINIT LENGTH OF EDLIN HEADERS (PLUS) @VA04733 01001100
  1098. SPACE 1 01001400
  1099. GRAFCON DC X'40' DISPLAY CLASS TERMINAL 01002000
  1100. REMOTUBE DC X'8080' REMOTE DISPLAY TERMINAL TYPE @V2D3914 01003000
  1101. TYP3275 DC X'02' 3275 DISPLAY STATION @V60A6B6 01003100
  1102. TYP3277 DC X'04' 3277 DISPLAY STATION @V60A6B6 01003200
  1103. TYP3278 DC X'01' 3278 DISPLAY STATION @V60A6B6 01003300
  1104. CLASTERM DC X'80' TERMINAL CLASS @V60A6B6 01003400
  1105. T3066 DC X'4010' 3066 CONSOLE TYPE @VA07296 01004000
  1106. SCRSIZES DC A(1920,2560,3440,3564,1600) SCREEN BUFFER SIZES HRC073DS 01004490
  1107. SPACE 1 01005000
  1108. STTPLIST DS 0F @V305614 01006000
  1109. DC CL8'STATE' @V305614 01007000
  1110. DC CL8'EDMAIN' @V305614 01008000
  1111. DC CL8'MODULE' @V305614 01009000
  1112. STTFM DC CL4'*' @V305614 01010000
  1113. DC A(*-*) @V305614 01011000
  1114. SPACE 1 01012000
  1115. LOADMOD DS 0F LOADMOD PLIST @V305614 01013000
  1116. DC CL8'LOADMOD' @V305614 01014000
  1117. DC CL8'EDMAIN' @V305614 01015000
  1118. DC CL8'MODULE' FILE TYPE @VA07660 01015300
  1119. MODE DC XL2'FF40' FILE MODE @VA07660 01015600
  1120. DC 8X'FF' FENCE @V305614 01016000
  1121. SPACE 1 01017000
  1122. LFSDIFF EQU 4 A(FSTLKP)-A(DMSLFS) @V305614 01018000
  1123. SMODE DC CL2'S ' FOR 'S' DISK' STATE @V305614 01019000
  1124. NOTSFM DC CL2'-S' STATE FOR ALL BUT 'S' DISK @V305614 01020000
  1125. SPACE 1 01021000
  1126. * SYMBOLIC REGISTER EQUATES FOR MOVEREGS 01022000
  1127. SPACE 1 01023000
  1128. BLOCREG EQU 3 01024000
  1129. PTREG EQU 4 01025000
  1130. JAREG EQU 5 01026000
  1131. SPACE 1 01027000
  1132. * EQUATES USED IN FLAG 01028000
  1133. SPACE 1 01029000
  1134. CAN EQU X'01' 01030000
  1135. SERSW EQU X'04' SERIALIZATION IS REQUIRED @VA04598 01030100
  1136. SERNAME EQU X'08' SERIALIZATION IS WITH 3-CHAR NAME@VA04598 01030200
  1137. LINE8 EQU X'10' 01031000
  1138. LEFT EQU X'40' 01032000
  1139. SPACE 1 01033000
  1140. * EQUATES USED IN FLAG2 01034000
  1141. SPACE 1 01035000
  1142. VER EQU X'01' 01036000
  1143. LONGSW EQU X'02' 01037000
  1144. TUBE EQU X'04' INDICATES DISPLAY TERMINAL 01038000
  1145. NUFILE EQU X'08' INDICATES NEW FILE 01039000
  1146. SPACE 1 01040000
  1147. * EQUATES FOR ICM INSTRUCTIONS 01041000
  1148. SPACE 1 01042000
  1149. LOWHW EQU B'0011' INSERT INTO LOW-ORDER HALF @VA02566 01043000
  1150. BIN0111 EQU B'0111' @V305066 01044000
  1151. SPACE 2 01045000
  1152. REMOTE EQU X'20' INDICATES REMOTE DISPLAY TERM. @V2D3914 01046000
  1153. SWITCH EQU X'40' USED BY INPUT RTN IN DMSEDI @V2D3914 01047000
  1154. NODISP EQU X'80' NODISP OPTION INCLUDED @V2D3914 01048000
  1155. E2 EQU X'E2' @V305066 01049000
  1156. ONE EQU 1 @V305066 01050000
  1157. ON EQU X'01' @V305066 01051000
  1158. BLANK EQU X'40' @V305066 01052000
  1159. FORTY EQU 40 RETURN CODE = 40 @V305066 01053000
  1160. HEX80 EQU X'80' @V305066 01054000
  1161. HEX81 EQU X'81' @V305066 01055000
  1162. FMOD EQU 2 2-BYTE FILEMODE FIELD @VA06274 01055500
  1163. RET88 EQU X'88' @VA07625 01055550
  1164. SPACE 1 01056000
  1165. EJECT 01057000
  1166. OLDITEM DS F SPOT FOR ACTUAL ITEM LENGTH OF FI@V305614 01058000
  1167. SPECFT DS CL8 HOLDING FIELD FOR FT @V305614 01059000
  1168. WRLIST DS 22X GENERAL WRITE RTN PLIST @V305614 01060000
  1169. * RDBUF BUFFER FOR READING FIXED-BLOCKED 01061000
  1170. SPACE 1 01062000
  1171. BUFFER DS CL800 @V305614 01063000
  1172. SPACE 1 01064000
  1173. * COMMAND LINE BUFFER FOR BETTER PAGING 01065000
  1174. SPACE 01066000
  1175. LTORG (AS NEEDED) @VM03083 01067000
  1176. EJECT 01068000
  1177. EDCB @V305614 01069000
  1178. FSTD @V305614 01070000
  1179. ADT @VA08391 01070500
  1180. NUCON @V305614 01071000
  1181. DEVTAB @V305614 01072000
  1182. SYSNAMES @V305614 01073000
  1183. REGEQU 01074000
  1184. END 01075000