Table of Contents

CUESHEL

Table Of Contents

  • [00007] CUESHEL - CUSTOMIZED USER ENVIRONMENT VALIDATOR.
  • [00012] CUSTOMIZED USER ENVIRONMENT VALIDATOR.
  • [00018] CUSTOMIZED USER ENVIRONMENT VALIDATOR.
  • [00080] MAIN PROGRAM.
  • [00291] SUBROUTINES.
  • [00388] TABLES AND BUFFERS.
  • [00390] CMDS - TABLE OF VALID COMMANDS.

Source Code

CUESHEL.txt
  1. IDENT CUESHEL,FWA
  2. ABS
  3. ENTRY CDSHELL
  4. ENTRY RMSHELL
  5. ENTRY RFL=
  6. SYSCOM B1
  7. TITLE CUESHEL - CUSTOMIZED USER ENVIRONMENT VALIDATOR.
  8. *COMMENT CUESHEL - CUSTOMIZED USER VALIDATOR.
  9. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  10. RMSHELL SPACE 4,10
  11. CUESHEL SPACE 4,10
  12. *** CUESHEL - CUSTOMIZED USER ENVIRONMENT VALIDATOR.
  13. *
  14. * M. D. LEMBCKE. 81/10/30.
  15. * P. A. GILLESBY. 84/10/15.
  16.  
  17. SPACE 4,10
  18. *** CUESHEL - CUSTOMIZED USER ENVIRONMENT VALIDATOR.
  19. *
  20. * *CUESHEL* IS DESIGNED TO ACCOMODATE MULTIPLE SHELL PROGRAMS,
  21. * EACH SPECIFIED WITH A SEPARATE ENTRY POINT.
  22. *
  23. * FLAG = 1 IF RMSHELL
  24. * FLAG = 2 IF CDSHELL
  25. *
  26. * WHEN A COMMAND IS DETECTED, THE COMMAND WILL BE MATCHED
  27. * AGAINST A VALIDATED LIST. IF A MATCH IS FOUND,
  28. * THE VALIDATION BITS WILL BE CHECKED TO ENSURE THE COMMAND
  29. * IS VALID FOR THE SHELL PROGRAM SPECIFIED. IF VALID,
  30. * THE COMMAND WILL BE ISSUED TO THE SYSTEM VIA *EXCST*
  31. * (WITH A *$* PREFIX TO FORCE SYSTEM LIBRARY LOAD). IF
  32. * NO MATCH IS FOUND BUT *CDSHELL* WAS SELECTED, THE
  33. * COMMAND WILL STILL BE ISSUED TO THE SYSTEM.
  34. * HOWEVER, IF NO MATCH IS FOUND AND *RMSHELL* WAS
  35. * SELECTED, AN ERROR MESSAGE WILL BE ISSUED TO THE
  36. * DAYFILE.
  37. *
  38. * THERE ARE FOUR ERRORS THAT WILL CAUSE THE PROGRAM TO
  39. * TERMINATE. THE FIRST IS WHEN THE STATEMENT EXCEEDS SEVEN
  40. * CHARACTERS. SECOND IS NO MATCH; WHERE THE USER IS
  41. * UNAUTHORIZED TO USE THE STATEMENT AND/OR THE STATEMENT WAS
  42. * NOT RECOGNIZED. THE THIRD IS WHEN THE COMMAND EXCEEDS
  43. * 80 CHARACTERS AND THE FOURTH IS WHEN A TERMINATING
  44. * DELIMITER IS NOT FOUND WITHIN THE COMMAND PARAMETERS.
  45. *
  46. *
  47. * NOTES USB (LINE FOLLOWING CUE1) RETURNS THE LWA OF THE
  48. * BUFFER IN REGISTER B7. THIS VALUE IS NEEDED WHEN
  49. * REPACKING THE COMMAND. ANY MODIFICATIONS SHOULD
  50. * AVOID USING B7.
  51. SPACE 4,10
  52. *** DAYFILE ERROR MESSAGES.
  53. *
  54. * * COMMAND KEYWORD TOO LONG.* THIS MESSAGE WILL BE
  55. * ISSUED WHEN THE COMMAND EXCEEDS SEVEN CHARACTERS.
  56. *
  57. * * INCORRECT COMMAND.* THIS MESSAGE IS ISSUED IF ONE OF THE
  58. * *CUESHEL* ENTRY POINTS IS EXECUTED AS A COMMAND RATHER THAN
  59. * AS A SHELL PROCESSOR.
  60. *
  61. * * INPUT LINE TOO LONG.* THIS MESSAGE WILL BE ISSUED TO THE
  62. * DAYFILE WHEN THE COMMAND IS GREATER THAN 80 CHARACTERS.
  63. *
  64. * * NO MATCHING DELIMITER.* THIS MESSAGE WILL BE
  65. * ISSUED WHENEVER A DOLLAR SIGN ($) APPEARS AS A
  66. * DELIMITER AND AN ENDING DELIMITER IS NOT FOUND.
  67. *
  68. * * UNAUTHORIZED COMMAND.* THE USER IS AUTHORIZED TO EXECUTE
  69. * ONLY A LIMITED SUBSET OF COMMANDS. THIS MESSAGE IS ISSUED
  70. * WHENEVER THE COMMAND IS LESS THAN EIGHT CHARACTERS AND DOES
  71. * NOT MATCH AGAINST THE VALIDATED LIST (*RMSHELL*), OR MATCHES
  72. * AN ENTRY IN THE LIST WHICH IS NOT AUTHORIZED FOR THE ENTRY
  73. * POINT IN USE (*CDSHELL* OR *RMSHELL*).
  74.  
  75. SPACE 4,10
  76. *** COMMON DECKS.
  77.  
  78. *CALL COMCCMD
  79. *CALL COMCMAC
  80. TITLE MAIN PROGRAM.
  81.  
  82. ORG 111B
  83. FWA BSS 0
  84. CDSHELL SX7 2 SET (X7) TO 2 IF *CDSHELL* PROGRAM
  85. EQ CUESHEL ENTER MAIN PROGRAM
  86.  
  87. RMSHELL SX7 1 SET (X7) TO 1 IF *RMSHELL* PROGRAM
  88. * EQ CUESHEL ENTER MAIN PROGRAM
  89. SPACE 4,10
  90. CUESHEL SA7 SHELFLG SAVE VALUE
  91. SB1 1
  92. GETSHC USBB CHECK SHELL CONTROLS
  93. SA1 USBB
  94. LX1 59-11
  95. NG X1,CUE0 IF EXECUTING AS A SHELL
  96. MESSAGE CUED,0,R * INCORRECT COMMAND.*
  97. ABORT
  98.  
  99. CUE0 SA2 CCDR FWA OF PACKED DATA = RA + 70
  100. NZ X2,CUE1 IF INPUT PRESENT
  101. RJ GII GET INTERACTIVE INPUT
  102. EQ B7,B1,CUE22 IF NO INPUT
  103.  
  104. * UNPACK INPUT STRING INTO BUFFER. THEN CHECK FIRST NON-BLANK
  105. * CHARACTER. IF IT IS A $, REPLACE IT WITH A BLANK.
  106.  
  107. CUE1 SB2 CCDR
  108. RJ USB UNPACKS 1 CHARACTER/WORD RIGHT JUSTIFIED
  109. SB3 -1
  110. SB5 B7-USBB+1 MAXIMUM CHARACTER INDEX
  111. CUE2 SB3 B3+1
  112. SA2 USBB+B3
  113. GE B3,B5,CUE22 IF INPUT IS ALL BLANKS
  114. SX3 X2-1R
  115. ZR X3,CUE2 IF A BLANK
  116. SX3 X2-1R$
  117. SB3 B3-1
  118. NZ X3,CUE4 IF NOT *$*
  119. SX6 1R
  120. SA6 A2+ REPLACE *$* WITH BLANK
  121.  
  122. * CHECK FOR EXISTING TERMINATOR TO DETERMINE IF ONE
  123. * MUST BE ADDED.
  124.  
  125. CUE4 SB3 B3+1
  126. SA2 USBB+B3 GET NEXT CHARACTER
  127. GE B3,B5,CUE5 IF AT END OF COMMAND
  128. SX3 X2-1R)
  129. ZR X3,CUE8 IF TERMINATOR FOUND
  130. SX3 X2-1R.
  131. ZR X3,CUE8 IF TERMINATOR FOUND
  132. SX3 X2-1R$
  133. ZR X3,CUE6 IF *$* DELIMITER FOUND
  134. EQ CUE4 CHECK NEXT CHARACTER
  135.  
  136. CUE5 SA5 RI
  137. ZR X5,CUE8 IF INPUT RECEIVED FROM SYSTEM
  138. SX6 1R. APPEND *.* TO INTERACTIVE INPUT
  139. SB7 B7+B1
  140. SA6 B7
  141. EQ CUE8 PACK COMMAND
  142.  
  143. * LOOK FOR MATCHING *$*.
  144.  
  145. CUE6 SB3 B3+1
  146. SA2 USBB+B3 CHECK NEXT CHARACTER
  147. LE B3,B5,CUE7 IF NOT END OF COMMAND
  148. SX7 CUEC *NO MATCHING DELIMITER.*
  149. SA5 RI
  150. ZR X5,CUE15 IF INPUT RECEIVED FROM SYSTEM
  151. SX6 1R. APPEND *.* TO INTERACTIVE INPUT
  152. SB7 B7+B1
  153. SA6 B7
  154. EQ CUE15 SET ERROR AND COMPLETE
  155.  
  156. CUE7 SX3 X2-1R$
  157. ZR X3,CUE4 IF MATCHING DELIMITER FOUND
  158. EQ CUE6 CHECK NEXT CHARACTER
  159.  
  160. * PACK COMMAND TOGETHER.
  161.  
  162. CUE8 SB6 B0+ SET NO ERROR
  163. SA2 CTRLC
  164. BX3 X3-X3
  165. SB3 0 SET CHARACTER COUNTER
  166. SB4 7 SET MAXIMUM CHARACTERS PER COMMAND
  167. CUE9 SA2 A2+1
  168. SX6 X2-1R
  169. ZR X6,CUE9 IF CHARACTER = BLANK
  170. SX6 X2-1R+
  171. PL X6,CUE10 IF SEPARATOR FOUND
  172. SB3 B3+1
  173. SB4 B4-1 DECREASE CHARACTER COUNT
  174. SX7 CUEA *COMMAND KEYWORD TOO LONG.*
  175. NG B4,CUE15 IF MAXIMUM LENGTH EXCEEDED
  176. LX3 6
  177. BX3 X3+X2 APPEND CHARACTER TO COMMAND
  178. EQ CUE9 GET NEXT CHARACTER
  179.  
  180. CUE10 SB4 10 LEFT JUSTIFY CONTROL STATEMENT
  181. SX2 6
  182. SX4 B4-B3 CHARACTER POSITIONS TO SHIFT
  183. IX4 X4*X2 BITS TO SHIFT
  184. SB4 X4
  185. LX6 X3,B4
  186. SA6 PCS
  187.  
  188. * DO A BINARY TREE SEARCH TO FIND STATEMENT WITHIN THE LIST.
  189.  
  190. SX3 CMDSL LENGTH OF LIST TO CHECK (MAX)
  191. SX0 B1
  192. IX4 X3+X0 ADD IN ROUND UP FACTOR
  193. AX4 1 X4 = (MAX/2) ROUNDED UP
  194. BX5 X4 X5 = CURRENT POSITION IN LIST (CUR)
  195. SA1 PCS X1 = PACKED CONTROL WORD
  196. CUE11 SA2 X5+CMDS GET COMMAND AND VALIDATION BITS
  197. MX0 42 MASK OFF COMMAND ONLY
  198. BX2 X0*X2
  199. IX2 X2-X1
  200. IX4 X3-X5 HOW MANY POSITIONS LEFT TO CHECK (MAX-CUR)
  201. ZR X2,CUE14 IF COMMAND MATCH FOUND IN TABLE
  202. NZ X4,CUE12 IF MORE ENTRIES IN TABLE TO CHECK
  203. SB3 2
  204. SA2 SHELFLG
  205. SB4 X2
  206. EQ B3,B4,CUE16 IF *CDSHELL* AND NOT IN TABLE
  207. SX7 CUEB *UNAUTHORIZED COMMAND.*
  208. EQ CUE15 IF ERROR
  209. CUE12 SX0 B1
  210. IX4 X4+X0 ADD IN ROUND-UP FACTOR
  211. AX4 1 (MAX-CUR)/2 HALF THE AMOUNT LEFT TO CHECK
  212. PL X2,CUE13 IF POSITIVE, SKIPPED AHEAD TOO FAR
  213. IX5 X5+X4 SEARCH AHEAD CUR+((MAX-CUR)/2)
  214. EQ CUE11 CHECK NEXT CALCULATED ENTRY IN THE LIST
  215.  
  216. CUE13 BX3 X5 NUMBER COMMANDS LEFT TO CHECK (MAX=CUR)
  217. IX5 X5-X4 SEARCH BACKWARDS HALFWAY OF WHAT IS LEFT
  218. EQ CUE11 CHECK NEXT CALCULATED ENTRY IN THE LIST
  219.  
  220. * DETERMINE IF COMMAND IS VALIDATED FOR THE SHELL PROGRAM
  221. * SPECIFIED.
  222.  
  223. CUE14 SA2 A2 RESET COMMAND AT CURRENT POSITION
  224. SA3 SHELFLG RETRIEVE SHELL FLAG
  225. BX2 X3*X2
  226. NZ X2,CUE16 IF VALID COMMAND
  227. SX7 CUEB *UNAUTHORIZED COMMAND.*
  228.  
  229. * STORE APPROPRIATE ERROR MESSAGE AND SET ERROR FLAG.
  230.  
  231. CUE15 SA7 ERRM
  232. SB6 1
  233.  
  234. * REPACK COMMAND WITH *$* PREFIX AND CALL *EXCST*.
  235.  
  236. CUE16 SA1 CTRLC-1 B7 = LWA IN *USBB* (SET BY *COMCUSB*)
  237. SB4 B0 B4 = COUNT OF WORDS REPACKED
  238. SB2 B0
  239. CUE17 SX6 B0+ INITIALIZE EMPTY WORD
  240. SB3 10 B3 = NUMBER CHARACTERS PER WORD (0-9)
  241. CUE18 SA1 A1+B1 GET NEXT CHARACTER
  242. SX3 X1-1R$
  243. ZR X3,CUE18.1 IF CHARACTER IS *$*
  244. NZ B2,CUE18.1 IF HAVE FOUND FIRST NON-BLANK
  245. SX3 X1-1R
  246. ZR X3,CUE18 IF CHARACTER IS BLANK
  247. SB2 1 SET B2 TO INDICATE FIRST NON-BLANK
  248. CUE18.1 LX6 6
  249. BX6 X6+X1 APPEND CHARACTER
  250. SB5 A1 B5 = CURRENT ADDRESS IN *USBB*
  251. EQ B5,B7,CUE19 IF END OF BUFFER
  252. SB3 B3-1
  253. NZ B3,CUE18 IF CURRENT WORD NOT YET FULL
  254. SA6 MCCDR+B4 STORE FULL WORD
  255. SB4 B4+1 INCREASE WORD COUNT
  256. EQ CUE17 PROCESS UNTIL LWA OF BUFFER IS REACHED
  257.  
  258. CUE19 SX2 B3-B1 LEFT JUSTIFY LAST WORD OF COMMAND
  259. SX3 6
  260. IX2 X2*X3
  261. SB2 X2
  262. LX6 B2
  263. SA6 MCCDR+B4
  264. NZ B6,CUE20 IF ERROR FLAG SET
  265. EXCST MCCDR PASS MODIFIED COMMAND TO SYSTEM
  266. EQ CUE22 EXIT
  267.  
  268. * ISSUE ERROR MESSAGE.
  269.  
  270. CUE20 SA5 ERRM
  271. SA2 RI
  272. ZR X2,CUE21 IF NO REQUESTED INPUT
  273. WRITEW OUTPUT,X5,3
  274. WRITER OUTPUT,R
  275. CUE21 SX0 CUEB
  276. BX0 X0-X5
  277. ZR X0,CUE21.1 IF *UNAUTHORIZED COMMAND*
  278. SX0 3
  279. CUE21.1 MESSAGE MCCDR,X0,R
  280. MESSAGE X5,X0,R
  281. ABORT
  282.  
  283. CUE22 ENDRUN
  284.  
  285. * ERROR MESSAGE DATA.
  286.  
  287. CUEA DATA C* COMMAND KEYWORD TOO LONG.*
  288. CUEB DATA C* UNAUTHORIZED COMMAND.*
  289. CUEC DATA C* NO MATCHING DELIMITER.*
  290. CUED DATA C* INCORRECT COMMAND.*
  291. TITLE SUBROUTINES.
  292. GII SPACE 4,15
  293. *** GII - GET INTERACTIVE INPUT.
  294. *
  295. * CALLED TO PROMPT AND GET A SINGLE INPUT LINE.
  296. *
  297. * ENTRY CCDR = ADDRESS OF 8-WORD AREA.
  298. *
  299. * EXIT CCDR = INPUT LINE.
  300. * CCDR = 0 IF EOR/EOF/EOI.
  301. * (B7) = 1 IF ENDRUN REQUIRED.
  302. *
  303. * USES X - 2, 6, 7.
  304. * A - 2, 6, 7.
  305. * B - 7.
  306. *
  307. * CALLS SUT.
  308. *
  309. * MACROS CSET, MESSAGE, PROMPT, READ, READW, WRITER, WRITEW.
  310.  
  311.  
  312. GII1 SB7 B1+ FLAG TO END-RUN
  313.  
  314. GII SUBR
  315. CSET NORMAL
  316. RJ SUT SET UP TERMINAL
  317. SX6 B0
  318. SA6 CCDR ZERO FIRST AND LAST WORD OF BUFFER
  319. SA6 CCDR+8
  320. SX7 B1
  321. SA7 RI SET FLAG FOR THE REQUESTED INPUT
  322. PROMPT OFF TURN OFF AUTO PROMPT
  323. WRITEW OUTPUT,OUT,1 WRITE PROMPT
  324. READ INPUT,R GET INPUT LINE
  325. READW INPUT,CCDR,9
  326. CSET RESTORE
  327. SB7 B0+
  328. SA2 CCDR
  329. ZR X2,GII1 IF NO INPUT DATA
  330. SA2 CCDR+8
  331. ZR X2,GIIX IF NOT TOO MUCH DATA
  332. MESSAGE CCDR,3,R ISSUE ERROR MESSAGE AND ENDRUN
  333. MESSAGE GIIA,3,R
  334. WRITEW OUTPUT,GIIA,3
  335. WRITER OUTPUT,R
  336. EQ GII1 SET FLAG TO REQUIRE ENDRUN
  337.  
  338. GIIA DATA C* INPUT LINE TOO LONG.*
  339. SUT SPACE 4,15
  340. *** SUT - SET UP TERMINAL.
  341. *
  342. * SETS UP THE LIST-OF-FILES FOR *OUTPUT*.
  343. * SUT CAN ONLY BE CALLED FOR AN INTERACTIVE JOB; IT VERIFIES
  344. * THAT FILES *INPUT* AND *OUTPUT* HAVE DEVICE TYPE *TT*
  345. * BY RETURNING THEM.
  346. * ONLY THE FIRST CALL TO SUT IS ACTED UPON.
  347. *
  348. * USES X - 1, 6.
  349. * A - 1, 6.
  350. *
  351. * MACROS RETURN, SETLOF.
  352.  
  353.  
  354. SUT SUBR
  355. SA1 LOFF CHECK FOR LIST OF FILES ALREADY PRESENT
  356. NZ X1,SUTX IF ALREADY SET UP, RETURN
  357. MX6 1 SET LIST OF FILES PRESENT FLAG
  358. SA6 A1
  359. RETURN INPUT,R RETURN FILES
  360. RETURN OUTPUT,R
  361. SA1 OUTPUT CLEAR FET STATUS
  362. MX6 49
  363. LX6 1
  364. BX6 X6*X1
  365. SA6 A1
  366. MX6 1 SET FLUSH BIT
  367. LX6 36+1
  368. SA1 OUTPUT+1
  369. BX6 X6+X1
  370. SA6 A1
  371. SETLOF LOFP SET LIST-OF-FILES
  372. EQ SUTX RETURN
  373. SPACE 4,10
  374. *** COMMON DECKS.
  375.  
  376. * BUFFER FOR *COMCUSB*. *CTRLC* MUST BE JUST BEFORE *USBB*.
  377.  
  378. CTRLC DATA 1R$ CONTROL CARD BUFFER
  379. USBB BSSZ 81 USED IN COMCUSB TO UNPACK STRING OF CHARS
  380.  
  381. *CALL COMCCIO
  382. *CALL COMCCPM
  383. *CALL COMCRDH
  384. *CALL COMCRDW
  385. *CALL COMCSYS
  386. *CALL COMCUSB
  387. *CALL COMCWTW
  388. TITLE TABLES AND BUFFERS.
  389. CMDS SPACE 4,10
  390. ** CMDS - TABLE OF VALID COMMANDS.
  391. *
  392. *T 42/COMMAND,16/0,1/C,1/R
  393. *
  394. * COMMAND = COMMAND NAME.
  395. * C = 1 IF CDSHELL COMMAND.
  396. * R = 1 IF RMSHELL COMMAND.
  397. *
  398. * NOTE - THIS TABLE MUST BE IN ALPHABETICAL ORDER.
  399.  
  400.  
  401. CMDS BSS 0
  402. VFD 42/0LACCESS,16/0,1/1,1/0
  403. VFD 42/0LALGOL5,16/0,1/0,1/0
  404. VFD 42/0LALX,16/0,1/0,1/1
  405. VFD 42/0LAPEX,16/0,1/0,1/0
  406. VFD 42/0LAPL,16/0,1/0,1/0
  407. VFD 42/0LAPPEND,16/0,1/1,1/0
  408. VFD 42/0LAP1,16/0,1/0,1/1
  409. VFD 42/0LASCII,16/0,1/1,1/0
  410. VFD 42/0LASSIGN,16/0,1/1,1/1
  411. VFD 42/0LATTACH,16/0,1/1,1/1
  412. VFD 42/0LAUTO,16/0,1/1,1/1
  413. VFD 42/0LBASIC,16/0,1/0,1/0
  414. VFD 42/0LBATCH,16/0,1/1,1/1
  415. VFD 42/0LBEGIN,16/0,1/1,1/1
  416. VFD 42/0LBINDER,16/0,1/1,1/0
  417. VFD 42/0LBKSP,16/0,1/1,1/0
  418. VFD 42/0LBLANK,16/0,1/1,1/0
  419. VFD 42/0LBRIEF,16/0,1/1,1/0
  420. VFD 42/0LBYE,16/0,1/1,1/1
  421. VFD 42/0LCATALOG,16/0,1/1,1/1
  422. VFD 42/0LCATLIST,16/0,1/1,1/1
  423. VFD 42/0LCD2UTIL,16/0,1/1,1/0
  424. VFD 42/0LCD2000,16/0,1/1,1/0
  425. VFD 42/0LCFO,16/0,1/1,1/0
  426. VFD 42/0LCHANGE,16/0,1/1,1/1
  427. VFD 42/0LCHARGE,16/0,1/1,1/1
  428. VFD 42/0LCHVAL,16/0,1/1,1/0
  429. VFD 42/0LCKP,16/0,1/1,1/0
  430. VFD 42/0LCLASS,16/0,1/1,1/0
  431. VFD 42/0LCLEAR,16/0,1/1,1/1
  432. VFD 42/0LCOBOL5,16/0,1/0,1/0
  433. VFD 42/0LCOMMENT,16/0,1/1,1/0
  434. VFD 42/0LCOMMON,16/0,1/0,1/0
  435. VFD 42/0LCOMPASS,16/0,1/0,1/0
  436. VFD 42/0LCOPY,16/0,1/1,1/1
  437. VFD 42/0LCOPYBF,16/0,1/1,1/1
  438. VFD 42/0LCOPYBR,16/0,1/1,1/1
  439. VFD 42/0LCOPYCF,16/0,1/1,1/1
  440. VFD 42/0LCOPYCR,16/0,1/1,1/1
  441. VFD 42/0LCOPYEI,16/0,1/1,1/1
  442. VFD 42/0LCOPYER,16/0,1/0,1/1
  443. VFD 42/0LCOPYL,16/0,1/1,1/0
  444. VFD 42/0LCOPYLM,16/0,1/1,1/0
  445. VFD 42/0LCOPYSBF,16/0,1/1,1/1
  446. VFD 42/0LCOPYX,16/0,1/1,1/0
  447. VFD 42/0LCSET,16/0,1/1,1/0
  448. VFD 42/0LCSU,16/0,1/0,1/1
  449. VFD 42/0LCTB,16/0,1/0,1/1
  450. VFD 42/0LCTIME,16/0,1/1,1/0
  451. VFD 42/0LCT3,16/0,1/1,1/1
  452. VFD 42/0LCT7,16/0,1/1,1/1
  453. VFD 42/0LCT8,16/0,1/1,1/1
  454. VFD 42/0LCU1,16/0,1/0,1/1
  455. VFD 42/0LDAYFILE,16/0,1/1,1/1
  456. VFD 42/0LDEBUG,16/0,1/0,1/0
  457. VFD 42/0LDEFINE,16/0,1/1,1/1
  458. VFD 42/0LDETACH,16/0,1/1,1/0
  459. VFD 42/0LDIAL,16/0,1/1,1/0
  460. VFD 42/0LDISPLAY,16/0,1/1,1/1
  461. VFD 42/0LDMB,16/0,1/1,1/0
  462. VFD 42/0LDMD,16/0,1/1,1/1
  463. VFD 42/0LDMDECS,16/0,1/1,1/1
  464. VFD 42/0LDMP,16/0,1/1,1/1
  465. VFD 42/0LDMPECS,16/0,1/1,1/1
  466. VFD 42/0LDOCMENT,16/0,1/1,1/0
  467. VFD 42/0LDROP,16/0,1/1,1/1
  468. VFD 42/0LEALOGCD,16/0,1/1,1/0
  469. VFD 42/0LEALOGSV,16/0,1/1,1/0
  470. VFD 42/0LEALOGVS,16/0,1/1,1/0
  471. VFD 42/0LEAPREVC,16/0,1/1,1/0
  472. VFD 42/0LEAPREVS,16/0,1/1,1/0
  473. VFD 42/0LEAUL101,16/0,1/1,1/0
  474. VFD 42/0LEAVL105,16/0,1/1,1/0
  475. VFD 42/0LEC3,16/0,1/0,1/1
  476. VFD 42/0LEC8,16/0,1/0,1/1
  477. VFD 42/0LEDIT,16/0,1/1,1/1
  478. VFD 42/0LELD,16/0,1/0,1/1
  479. VFD 42/0LELSE,16/0,1/1,1/0
  480. VFD 42/0LENDIF,16/0,1/1,1/0
  481. VFD 42/0LENDW,16/0,1/1,1/0
  482. VFD 42/0LENQUIRE,16/0,1/1,1/1
  483. VFD 42/0LENTER,16/0,1/1,1/0
  484. VFD 42/0LEVICT,16/0,1/1,1/0
  485. VFD 42/0LEXECUTE,16/0,1/0,1/1
  486. VFD 42/0LEXIT,16/0,1/1,1/1
  487. VFD 42/0LEXPLAIN,16/0,1/1,1/0
  488. VFD 42/0LFCOPY,16/0,1/1,1/0
  489. VFD 42/0LFILE,16/0,1/1,1/0
  490. VFD 42/0LFSE,16/0,1/1,1/1
  491. VFD 42/0LFS8,16/0,1/0,1/1
  492. VFD 42/0LFTN,16/0,1/0,1/0
  493. VFD 42/0LFTN5,16/0,1/0,1/0
  494. VFD 42/0LF45,16/0,1/0,1/0
  495. VFD 42/0LGET,16/0,1/1,1/1
  496. VFD 42/0LGETLOG,16/0,1/0,1/1
  497. VFD 42/0LGO,16/0,1/1,1/1
  498. VFD 42/0LGOODBYE,16/0,1/1,1/1
  499. VFD 42/0LGPSS,16/0,1/0,1/0
  500. VFD 42/0LGTR,16/0,1/1,1/0
  501. VFD 42/0LHELLO,16/0,1/1,1/1
  502. VFD 42/0LHELLO7,16/0,1/1,1/0
  503. VFD 42/0LHELP,16/0,1/1,1/1
  504. VFD 42/0LHELPME,16/0,1/1,1/1
  505. VFD 42/0LHPA,16/0,1/0,1/1
  506. VFD 42/0LHTIME,16/0,1/1,1/0
  507. VFD 42/0LICEMDDN,16/0,1/1,1/0
  508. VFD 42/0LIEDIT,16/0,1/1,1/0
  509. VFD 42/0LIF,16/0,1/1,1/0
  510. VFD 42/0LIFE,16/0,1/1,1/0
  511. VFD 42/0LITEMIZE,16/0,1/1,1/0
  512. VFD 42/0LKRONREF,16/0,1/1,1/0
  513. VFD 42/0LLABEL,16/0,1/1,1/1
  514. VFD 42/0LLBC,16/0,1/0,1/0
  515. VFD 42/0LLDI,16/0,1/1,1/0
  516. VFD 42/0LLDSET,16/0,1/1,1/0
  517. VFD 42/0LLENGTH,16/0,1/1,1/0
  518. VFD 42/0LLGO,16/0,1/0,1/1
  519. VFD 42/0LLIB,16/0,1/0,1/0
  520. VFD 42/0LLIBEDIT,16/0,1/1,1/0
  521. VFD 42/0LLIBGEN,16/0,1/1,1/0
  522. VFD 42/0LLIBLOAD,16/0,1/1,1/0
  523. VFD 42/0LLIBRARY,16/0,1/1,1/0
  524. VFD 42/0LLIBTASK,16/0,1/1,1/0
  525. VFD 42/0LLIMITS,16/0,1/1,1/1
  526. VFD 42/0LLINE,16/0,1/1,1/1
  527. VFD 42/0LLISTLB,16/0,1/1,1/1
  528. VFD 42/0LLIST80,16/0,1/1,1/0
  529. VFD 42/0LLOAD,16/0,1/0,1/0
  530. VFD 42/0LLOC,16/0,1/0,1/0
  531. VFD 42/0LLOCK,16/0,1/1,1/0
  532. VFD 42/0LLOGIN,16/0,1/1,1/1
  533. VFD 42/0LLOGOUT,16/0,1/1,1/1
  534. VFD 42/0LLO72,16/0,1/1,1/0
  535. VFD 42/0LMACHINE,16/0,1/1,1/0
  536. VFD 42/0LMALET,16/0,1/0,1/1
  537. VFD 42/0LMAP,16/0,1/1,1/1
  538. VFD 42/0LMAPINI,16/0,1/0,1/1
  539. VFD 42/0LMFL,16/0,1/1,1/1
  540. VFD 42/0LMFLINK,16/0,1/1,1/0
  541. VFD 42/0LMFQUEUE,16/0,1/1,1/0
  542. VFD 42/0LMODE,16/0,1/1,1/1
  543. VFD 42/0LMODIFY,16/0,1/1,1/0
  544. VFD 42/0LMRG,16/0,1/0,1/1
  545. VFD 42/0LNEW,16/0,1/1,1/1
  546. VFD 42/0LNOEXIT,16/0,1/1,1/1
  547. VFD 42/0LNORERUN,16/0,1/1,1/0
  548. VFD 42/0LNORM,16/0,1/1,1/1
  549. VFD 42/0LNORMAL,16/0,1/1,1/1
  550. VFD 42/0LNOSORT,16/0,1/1,1/0
  551. VFD 42/0LNOTE,16/0,1/1,1/0
  552. VFD 42/0LNULL,16/0,1/1,1/0
  553. VFD 42/0LOFFSW,16/0,1/1,1/1
  554. VFD 42/0LOLD,16/0,1/1,1/1
  555. VFD 42/0LOMREF,16/0,1/1,1/0
  556. VFD 42/0LONEXIT,16/0,1/1,1/1
  557. VFD 42/0LONSW,16/0,1/1,1/1
  558. VFD 42/0LOPLEDIT,16/0,1/1,1/0
  559. VFD 42/0LOPMSG,16/0,1/0,1/1
  560. VFD 42/0LOUT,16/0,1/1,1/1
  561. VFD 42/0LOVWRITE,16/0,1/1,1/0
  562. VFD 42/0LPACK,16/0,1/1,1/1
  563. VFD 42/0LPACKNAM,16/0,1/1,1/1
  564. VFD 42/0LPASCAL,16/0,1/0,1/0
  565. VFD 42/0LPASSWOR,16/0,1/1,1/0
  566. VFD 42/0LPAUSE,16/0,1/1,1/0
  567. VFD 42/0LPBC,16/0,1/0,1/0
  568. VFD 42/0LPDU,16/0,1/1,1/0
  569. VFD 42/0LPERMIT,16/0,1/1,1/1
  570. VFD 42/0LPLI,16/0,1/0,1/0
  571. VFD 42/0LPRESET,16/0,1/1,1/1
  572. VFD 42/0LPRIMARY,16/0,1/1,1/1
  573. VFD 42/0LPROFILE,16/0,1/1,1/0
  574. VFD 42/0LPROTECT,16/0,1/1,1/0
  575. VFD 42/0LPURGALL,16/0,1/1,1/0
  576. VFD 42/0LPURGE,16/0,1/1,1/1
  577. VFD 42/0LQGET,16/0,1/1,1/0
  578. VFD 42/0LQUEUE7,16/0,1/1,1/0
  579. VFD 42/0LRBR,16/0,1/0,1/0
  580. VFD 42/0LRECOVER,16/0,1/1,1/1
  581. VFD 42/0LREDO,16/0,1/1,1/0
  582. VFD 42/0LREDUCE,16/0,1/1,1/1
  583. VFD 42/0LREGEN,16/0,1/0,1/1
  584. VFD 42/0LRENAME,16/0,1/1,1/1
  585. VFD 42/0LREPLACE,16/0,1/1,1/1
  586. VFD 42/0LREQUEST,16/0,1/1,1/1
  587. VFD 42/0LRERUN,16/0,1/1,1/0
  588. VFD 42/0LRESEQ,16/0,1/1,1/0
  589. VFD 42/0LRESOURC,16/0,1/1,1/1
  590. VFD 42/0LRESTART,16/0,1/1,1/0
  591. VFD 42/0LRETURN,16/0,1/1,1/1
  592. VFD 42/0LREVERT,16/0,1/1,1/1
  593. VFD 42/0LREVIEW,16/0,1/1,1/0
  594. VFD 42/0LREWIND,16/0,1/1,1/1
  595. VFD 42/0LRFL,16/0,1/1,1/1
  596. VFD 42/0LROLLOUT,16/0,1/1,1/0
  597. VFD 42/0LROUTE,16/0,1/1,1/1
  598. VFD 42/0LRTIME,16/0,1/1,1/0
  599. VFD 42/0LRUN,16/0,1/0,1/1
  600. VFD 42/0LSATISFY,16/0,1/1,1/0
  601. VFD 42/0LSAVE,16/0,1/1,1/1
  602. VFD 42/0LSCOPY,16/0,1/1,1/0
  603. VFD 42/0LSCREEN,16/0,1/1,1/1
  604. VFD 42/0LSECHDR,16/0,1/1,1/0
  605. VFD 42/0LSET,16/0,1/1,1/1
  606. VFD 42/0LSETASL,16/0,1/1,1/0
  607. VFD 42/0LSETCORE,16/0,1/1,1/0
  608. VFD 42/0LSETFAL,16/0,1/1,1/0
  609. VFD 42/0LSETFS,16/0,1/1,1/0
  610. VFD 42/0LSETJAL,16/0,1/1,1/0
  611. VFD 42/0LSETJOB,16/0,1/1,1/0
  612. VFD 42/0LSETJSL,16/0,1/1,1/0
  613. VFD 42/0LSETPFAC,16/0,1/1,1/0
  614. VFD 42/0LSETPFAL,16/0,1/1,1/0
  615. VFD 42/0LSETPR,16/0,1/1,1/0
  616. VFD 42/0LSETTL,16/0,1/1,1/1
  617. VFD 42/0LSHELL,16/0,1/0,1/0
  618. VFD 42/0LSKIP,16/0,1/1,1/1
  619. VFD 42/0LSKIPEI,16/0,1/1,1/1
  620. VFD 42/0LSKIPF,16/0,1/1,1/1
  621. VFD 42/0LSKIPFB,16/0,1/1,1/1
  622. VFD 42/0LSKIPR,16/0,1/1,1/1
  623. VFD 42/0LSLOAD,16/0,1/1,1/0
  624. VFD 42/0LSORT,16/0,1/1,1/0
  625. VFD 42/0LSORTMRG,16/0,1/1,1/0
  626. VFD 42/0LSTATUS,16/0,1/1,1/1
  627. VFD 42/0LSTIME,16/0,1/1,1/0
  628. VFD 42/0LSUBMIT,16/0,1/1,1/1
  629. VFD 42/0LSWITCH,16/0,1/1,1/1
  630. VFD 42/0LTCOPY,16/0,1/1,1/0
  631. VFD 42/0LTDU,16/0,1/1,1/1
  632. VFD 42/0LTDUMP,16/0,1/1,1/1
  633. VFD 42/0LTEXT,16/0,1/1,1/1
  634. VFD 42/0LTIMEOUT,16/0,1/1,1/0
  635. VFD 42/0LTIO,16/0,1/0,1/1
  636. VFD 42/0LTRMDEF,16/0,1/1,1/1
  637. VFD 42/0LULIB,16/0,1/1,1/0
  638. VFD 42/0LUNIPOST,16/0,1/1,1/0
  639. VFD 42/0LUNLOAD,16/0,1/1,1/1
  640. VFD 42/0LUNLOCK,16/0,1/1,1/0
  641. VFD 42/0LUPDATE,16/0,1/1,1/1
  642. VFD 42/0LUPROC,16/0,1/1,1/0
  643. VFD 42/0LUSECPU,16/0,1/1,1/1
  644. VFD 42/0LUSER,16/0,1/1,1/1
  645. VFD 42/0LVERIFY,16/0,1/1,1/1
  646. VFD 42/0LVFYLIB,16/0,1/1,1/0
  647. VFD 42/0LVSN,16/0,1/1,1/1
  648. VFD 42/0LWBR,16/0,1/0,1/0
  649. VFD 42/0LWHATJSN,16/0,1/1,1/0
  650. VFD 42/0LWHILE,16/0,1/1,1/0
  651. VFD 42/0LWRITEF,16/0,1/1,1/1
  652. VFD 42/0LWRITER,16/0,1/1,1/1
  653. VFD 42/0LX,16/0,1/0,1/0
  654. VFD 42/0LXEDIT,16/0,1/1,1/1
  655. CMDSL EQU *-CMDS LENGTH OF COMMAND LIST
  656. BUFFERS SPACE 4,10
  657.  
  658. * BUFFERS.
  659.  
  660. ERRM BSSZ 1 STORE APPROPRIATE ERROR MESSAGE
  661. SHELFLG BSSZ 1 SHELL PROGRAM FLAG
  662. MCCDR BSSZ 9 MODIFIED CCDR
  663. PCS BSSZ 1 PACKED CONTROL STATEMENT
  664. RI BSSZ 1 REQUESTED INPUT FROM TERMINAL
  665. INPUT FILEC IBUF,101B
  666. OUTPUT FILEC OBUF,101B
  667. LOFP VFD 12/0,18/LOF,30/0
  668. LOFF CON 0 LIST OF FILES FLAG
  669. LOF VFD 1/0,41/0,18/3
  670. VFD 42/0LOUTPUT,18/OUTPUT
  671. VFD 60/0
  672. OUT VFD 12/1L/,12/1,36/0
  673. IBUF EQU *
  674. OBUF EQU IBUF+101B
  675. RFL= EQU OBUF+101B+10B
  676.  
  677. END