IDENT CUESHEL,FWA ABS ENTRY CDSHELL ENTRY RMSHELL ENTRY RFL= SYSCOM B1 TITLE CUESHEL - CUSTOMIZED USER ENVIRONMENT VALIDATOR. *COMMENT CUESHEL - CUSTOMIZED USER VALIDATOR. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. RMSHELL SPACE 4,10 CUESHEL SPACE 4,10 *** CUESHEL - CUSTOMIZED USER ENVIRONMENT VALIDATOR. * * M. D. LEMBCKE. 81/10/30. * P. A. GILLESBY. 84/10/15. SPACE 4,10 *** CUESHEL - CUSTOMIZED USER ENVIRONMENT VALIDATOR. * * *CUESHEL* IS DESIGNED TO ACCOMODATE MULTIPLE SHELL PROGRAMS, * EACH SPECIFIED WITH A SEPARATE ENTRY POINT. * * FLAG = 1 IF RMSHELL * FLAG = 2 IF CDSHELL * * WHEN A COMMAND IS DETECTED, THE COMMAND WILL BE MATCHED * AGAINST A VALIDATED LIST. IF A MATCH IS FOUND, * THE VALIDATION BITS WILL BE CHECKED TO ENSURE THE COMMAND * IS VALID FOR THE SHELL PROGRAM SPECIFIED. IF VALID, * THE COMMAND WILL BE ISSUED TO THE SYSTEM VIA *EXCST* * (WITH A *$* PREFIX TO FORCE SYSTEM LIBRARY LOAD). IF * NO MATCH IS FOUND BUT *CDSHELL* WAS SELECTED, THE * COMMAND WILL STILL BE ISSUED TO THE SYSTEM. * HOWEVER, IF NO MATCH IS FOUND AND *RMSHELL* WAS * SELECTED, AN ERROR MESSAGE WILL BE ISSUED TO THE * DAYFILE. * * THERE ARE FOUR ERRORS THAT WILL CAUSE THE PROGRAM TO * TERMINATE. THE FIRST IS WHEN THE STATEMENT EXCEEDS SEVEN * CHARACTERS. SECOND IS NO MATCH; WHERE THE USER IS * UNAUTHORIZED TO USE THE STATEMENT AND/OR THE STATEMENT WAS * NOT RECOGNIZED. THE THIRD IS WHEN THE COMMAND EXCEEDS * 80 CHARACTERS AND THE FOURTH IS WHEN A TERMINATING * DELIMITER IS NOT FOUND WITHIN THE COMMAND PARAMETERS. * * * NOTES USB (LINE FOLLOWING CUE1) RETURNS THE LWA OF THE * BUFFER IN REGISTER B7. THIS VALUE IS NEEDED WHEN * REPACKING THE COMMAND. ANY MODIFICATIONS SHOULD * AVOID USING B7. SPACE 4,10 *** DAYFILE ERROR MESSAGES. * * * COMMAND KEYWORD TOO LONG.* THIS MESSAGE WILL BE * ISSUED WHEN THE COMMAND EXCEEDS SEVEN CHARACTERS. * * * INCORRECT COMMAND.* THIS MESSAGE IS ISSUED IF ONE OF THE * *CUESHEL* ENTRY POINTS IS EXECUTED AS A COMMAND RATHER THAN * AS A SHELL PROCESSOR. * * * INPUT LINE TOO LONG.* THIS MESSAGE WILL BE ISSUED TO THE * DAYFILE WHEN THE COMMAND IS GREATER THAN 80 CHARACTERS. * * * NO MATCHING DELIMITER.* THIS MESSAGE WILL BE * ISSUED WHENEVER A DOLLAR SIGN ($) APPEARS AS A * DELIMITER AND AN ENDING DELIMITER IS NOT FOUND. * * * UNAUTHORIZED COMMAND.* THE USER IS AUTHORIZED TO EXECUTE * ONLY A LIMITED SUBSET OF COMMANDS. THIS MESSAGE IS ISSUED * WHENEVER THE COMMAND IS LESS THAN EIGHT CHARACTERS AND DOES * NOT MATCH AGAINST THE VALIDATED LIST (*RMSHELL*), OR MATCHES * AN ENTRY IN THE LIST WHICH IS NOT AUTHORIZED FOR THE ENTRY * POINT IN USE (*CDSHELL* OR *RMSHELL*). SPACE 4,10 *** COMMON DECKS. *CALL COMCCMD *CALL COMCMAC TITLE MAIN PROGRAM. ORG 111B FWA BSS 0 CDSHELL SX7 2 SET (X7) TO 2 IF *CDSHELL* PROGRAM EQ CUESHEL ENTER MAIN PROGRAM RMSHELL SX7 1 SET (X7) TO 1 IF *RMSHELL* PROGRAM * EQ CUESHEL ENTER MAIN PROGRAM SPACE 4,10 CUESHEL SA7 SHELFLG SAVE VALUE SB1 1 GETSHC USBB CHECK SHELL CONTROLS SA1 USBB LX1 59-11 NG X1,CUE0 IF EXECUTING AS A SHELL MESSAGE CUED,0,R * INCORRECT COMMAND.* ABORT CUE0 SA2 CCDR FWA OF PACKED DATA = RA + 70 NZ X2,CUE1 IF INPUT PRESENT RJ GII GET INTERACTIVE INPUT EQ B7,B1,CUE22 IF NO INPUT * UNPACK INPUT STRING INTO BUFFER. THEN CHECK FIRST NON-BLANK * CHARACTER. IF IT IS A $, REPLACE IT WITH A BLANK. CUE1 SB2 CCDR RJ USB UNPACKS 1 CHARACTER/WORD RIGHT JUSTIFIED SB3 -1 SB5 B7-USBB+1 MAXIMUM CHARACTER INDEX CUE2 SB3 B3+1 SA2 USBB+B3 GE B3,B5,CUE22 IF INPUT IS ALL BLANKS SX3 X2-1R ZR X3,CUE2 IF A BLANK SX3 X2-1R$ SB3 B3-1 NZ X3,CUE4 IF NOT *$* SX6 1R SA6 A2+ REPLACE *$* WITH BLANK * CHECK FOR EXISTING TERMINATOR TO DETERMINE IF ONE * MUST BE ADDED. CUE4 SB3 B3+1 SA2 USBB+B3 GET NEXT CHARACTER GE B3,B5,CUE5 IF AT END OF COMMAND SX3 X2-1R) ZR X3,CUE8 IF TERMINATOR FOUND SX3 X2-1R. ZR X3,CUE8 IF TERMINATOR FOUND SX3 X2-1R$ ZR X3,CUE6 IF *$* DELIMITER FOUND EQ CUE4 CHECK NEXT CHARACTER CUE5 SA5 RI ZR X5,CUE8 IF INPUT RECEIVED FROM SYSTEM SX6 1R. APPEND *.* TO INTERACTIVE INPUT SB7 B7+B1 SA6 B7 EQ CUE8 PACK COMMAND * LOOK FOR MATCHING *$*. CUE6 SB3 B3+1 SA2 USBB+B3 CHECK NEXT CHARACTER LE B3,B5,CUE7 IF NOT END OF COMMAND SX7 CUEC *NO MATCHING DELIMITER.* SA5 RI ZR X5,CUE15 IF INPUT RECEIVED FROM SYSTEM SX6 1R. APPEND *.* TO INTERACTIVE INPUT SB7 B7+B1 SA6 B7 EQ CUE15 SET ERROR AND COMPLETE CUE7 SX3 X2-1R$ ZR X3,CUE4 IF MATCHING DELIMITER FOUND EQ CUE6 CHECK NEXT CHARACTER * PACK COMMAND TOGETHER. CUE8 SB6 B0+ SET NO ERROR SA2 CTRLC BX3 X3-X3 SB3 0 SET CHARACTER COUNTER SB4 7 SET MAXIMUM CHARACTERS PER COMMAND CUE9 SA2 A2+1 SX6 X2-1R ZR X6,CUE9 IF CHARACTER = BLANK SX6 X2-1R+ PL X6,CUE10 IF SEPARATOR FOUND SB3 B3+1 SB4 B4-1 DECREASE CHARACTER COUNT SX7 CUEA *COMMAND KEYWORD TOO LONG.* NG B4,CUE15 IF MAXIMUM LENGTH EXCEEDED LX3 6 BX3 X3+X2 APPEND CHARACTER TO COMMAND EQ CUE9 GET NEXT CHARACTER CUE10 SB4 10 LEFT JUSTIFY CONTROL STATEMENT SX2 6 SX4 B4-B3 CHARACTER POSITIONS TO SHIFT IX4 X4*X2 BITS TO SHIFT SB4 X4 LX6 X3,B4 SA6 PCS * DO A BINARY TREE SEARCH TO FIND STATEMENT WITHIN THE LIST. SX3 CMDSL LENGTH OF LIST TO CHECK (MAX) SX0 B1 IX4 X3+X0 ADD IN ROUND UP FACTOR AX4 1 X4 = (MAX/2) ROUNDED UP BX5 X4 X5 = CURRENT POSITION IN LIST (CUR) SA1 PCS X1 = PACKED CONTROL WORD CUE11 SA2 X5+CMDS GET COMMAND AND VALIDATION BITS MX0 42 MASK OFF COMMAND ONLY BX2 X0*X2 IX2 X2-X1 IX4 X3-X5 HOW MANY POSITIONS LEFT TO CHECK (MAX-CUR) ZR X2,CUE14 IF COMMAND MATCH FOUND IN TABLE NZ X4,CUE12 IF MORE ENTRIES IN TABLE TO CHECK SB3 2 SA2 SHELFLG SB4 X2 EQ B3,B4,CUE16 IF *CDSHELL* AND NOT IN TABLE SX7 CUEB *UNAUTHORIZED COMMAND.* EQ CUE15 IF ERROR CUE12 SX0 B1 IX4 X4+X0 ADD IN ROUND-UP FACTOR AX4 1 (MAX-CUR)/2 HALF THE AMOUNT LEFT TO CHECK PL X2,CUE13 IF POSITIVE, SKIPPED AHEAD TOO FAR IX5 X5+X4 SEARCH AHEAD CUR+((MAX-CUR)/2) EQ CUE11 CHECK NEXT CALCULATED ENTRY IN THE LIST CUE13 BX3 X5 NUMBER COMMANDS LEFT TO CHECK (MAX=CUR) IX5 X5-X4 SEARCH BACKWARDS HALFWAY OF WHAT IS LEFT EQ CUE11 CHECK NEXT CALCULATED ENTRY IN THE LIST * DETERMINE IF COMMAND IS VALIDATED FOR THE SHELL PROGRAM * SPECIFIED. CUE14 SA2 A2 RESET COMMAND AT CURRENT POSITION SA3 SHELFLG RETRIEVE SHELL FLAG BX2 X3*X2 NZ X2,CUE16 IF VALID COMMAND SX7 CUEB *UNAUTHORIZED COMMAND.* * STORE APPROPRIATE ERROR MESSAGE AND SET ERROR FLAG. CUE15 SA7 ERRM SB6 1 * REPACK COMMAND WITH *$* PREFIX AND CALL *EXCST*. CUE16 SA1 CTRLC-1 B7 = LWA IN *USBB* (SET BY *COMCUSB*) SB4 B0 B4 = COUNT OF WORDS REPACKED SB2 B0 CUE17 SX6 B0+ INITIALIZE EMPTY WORD SB3 10 B3 = NUMBER CHARACTERS PER WORD (0-9) CUE18 SA1 A1+B1 GET NEXT CHARACTER SX3 X1-1R$ ZR X3,CUE18.1 IF CHARACTER IS *$* NZ B2,CUE18.1 IF HAVE FOUND FIRST NON-BLANK SX3 X1-1R ZR X3,CUE18 IF CHARACTER IS BLANK SB2 1 SET B2 TO INDICATE FIRST NON-BLANK CUE18.1 LX6 6 BX6 X6+X1 APPEND CHARACTER SB5 A1 B5 = CURRENT ADDRESS IN *USBB* EQ B5,B7,CUE19 IF END OF BUFFER SB3 B3-1 NZ B3,CUE18 IF CURRENT WORD NOT YET FULL SA6 MCCDR+B4 STORE FULL WORD SB4 B4+1 INCREASE WORD COUNT EQ CUE17 PROCESS UNTIL LWA OF BUFFER IS REACHED CUE19 SX2 B3-B1 LEFT JUSTIFY LAST WORD OF COMMAND SX3 6 IX2 X2*X3 SB2 X2 LX6 B2 SA6 MCCDR+B4 NZ B6,CUE20 IF ERROR FLAG SET EXCST MCCDR PASS MODIFIED COMMAND TO SYSTEM EQ CUE22 EXIT * ISSUE ERROR MESSAGE. CUE20 SA5 ERRM SA2 RI ZR X2,CUE21 IF NO REQUESTED INPUT WRITEW OUTPUT,X5,3 WRITER OUTPUT,R CUE21 SX0 CUEB BX0 X0-X5 ZR X0,CUE21.1 IF *UNAUTHORIZED COMMAND* SX0 3 CUE21.1 MESSAGE MCCDR,X0,R MESSAGE X5,X0,R ABORT CUE22 ENDRUN * ERROR MESSAGE DATA. CUEA DATA C* COMMAND KEYWORD TOO LONG.* CUEB DATA C* UNAUTHORIZED COMMAND.* CUEC DATA C* NO MATCHING DELIMITER.* CUED DATA C* INCORRECT COMMAND.* TITLE SUBROUTINES. GII SPACE 4,15 *** GII - GET INTERACTIVE INPUT. * * CALLED TO PROMPT AND GET A SINGLE INPUT LINE. * * ENTRY CCDR = ADDRESS OF 8-WORD AREA. * * EXIT CCDR = INPUT LINE. * CCDR = 0 IF EOR/EOF/EOI. * (B7) = 1 IF ENDRUN REQUIRED. * * USES X - 2, 6, 7. * A - 2, 6, 7. * B - 7. * * CALLS SUT. * * MACROS CSET, MESSAGE, PROMPT, READ, READW, WRITER, WRITEW. GII1 SB7 B1+ FLAG TO END-RUN GII SUBR CSET NORMAL RJ SUT SET UP TERMINAL SX6 B0 SA6 CCDR ZERO FIRST AND LAST WORD OF BUFFER SA6 CCDR+8 SX7 B1 SA7 RI SET FLAG FOR THE REQUESTED INPUT PROMPT OFF TURN OFF AUTO PROMPT WRITEW OUTPUT,OUT,1 WRITE PROMPT READ INPUT,R GET INPUT LINE READW INPUT,CCDR,9 CSET RESTORE SB7 B0+ SA2 CCDR ZR X2,GII1 IF NO INPUT DATA SA2 CCDR+8 ZR X2,GIIX IF NOT TOO MUCH DATA MESSAGE CCDR,3,R ISSUE ERROR MESSAGE AND ENDRUN MESSAGE GIIA,3,R WRITEW OUTPUT,GIIA,3 WRITER OUTPUT,R EQ GII1 SET FLAG TO REQUIRE ENDRUN GIIA DATA C* INPUT LINE TOO LONG.* SUT SPACE 4,15 *** SUT - SET UP TERMINAL. * * SETS UP THE LIST-OF-FILES FOR *OUTPUT*. * SUT CAN ONLY BE CALLED FOR AN INTERACTIVE JOB; IT VERIFIES * THAT FILES *INPUT* AND *OUTPUT* HAVE DEVICE TYPE *TT* * BY RETURNING THEM. * ONLY THE FIRST CALL TO SUT IS ACTED UPON. * * USES X - 1, 6. * A - 1, 6. * * MACROS RETURN, SETLOF. SUT SUBR SA1 LOFF CHECK FOR LIST OF FILES ALREADY PRESENT NZ X1,SUTX IF ALREADY SET UP, RETURN MX6 1 SET LIST OF FILES PRESENT FLAG SA6 A1 RETURN INPUT,R RETURN FILES RETURN OUTPUT,R SA1 OUTPUT CLEAR FET STATUS MX6 49 LX6 1 BX6 X6*X1 SA6 A1 MX6 1 SET FLUSH BIT LX6 36+1 SA1 OUTPUT+1 BX6 X6+X1 SA6 A1 SETLOF LOFP SET LIST-OF-FILES EQ SUTX RETURN SPACE 4,10 *** COMMON DECKS. * BUFFER FOR *COMCUSB*. *CTRLC* MUST BE JUST BEFORE *USBB*. CTRLC DATA 1R$ CONTROL CARD BUFFER USBB BSSZ 81 USED IN COMCUSB TO UNPACK STRING OF CHARS *CALL COMCCIO *CALL COMCCPM *CALL COMCRDH *CALL COMCRDW *CALL COMCSYS *CALL COMCUSB *CALL COMCWTW TITLE TABLES AND BUFFERS. CMDS SPACE 4,10 ** CMDS - TABLE OF VALID COMMANDS. * *T 42/COMMAND,16/0,1/C,1/R * * COMMAND = COMMAND NAME. * C = 1 IF CDSHELL COMMAND. * R = 1 IF RMSHELL COMMAND. * * NOTE - THIS TABLE MUST BE IN ALPHABETICAL ORDER. CMDS BSS 0 VFD 42/0LACCESS,16/0,1/1,1/0 VFD 42/0LALGOL5,16/0,1/0,1/0 VFD 42/0LALX,16/0,1/0,1/1 VFD 42/0LAPEX,16/0,1/0,1/0 VFD 42/0LAPL,16/0,1/0,1/0 VFD 42/0LAPPEND,16/0,1/1,1/0 VFD 42/0LAP1,16/0,1/0,1/1 VFD 42/0LASCII,16/0,1/1,1/0 VFD 42/0LASSIGN,16/0,1/1,1/1 VFD 42/0LATTACH,16/0,1/1,1/1 VFD 42/0LAUTO,16/0,1/1,1/1 VFD 42/0LBASIC,16/0,1/0,1/0 VFD 42/0LBATCH,16/0,1/1,1/1 VFD 42/0LBEGIN,16/0,1/1,1/1 VFD 42/0LBINDER,16/0,1/1,1/0 VFD 42/0LBKSP,16/0,1/1,1/0 VFD 42/0LBLANK,16/0,1/1,1/0 VFD 42/0LBRIEF,16/0,1/1,1/0 VFD 42/0LBYE,16/0,1/1,1/1 VFD 42/0LCATALOG,16/0,1/1,1/1 VFD 42/0LCATLIST,16/0,1/1,1/1 VFD 42/0LCD2UTIL,16/0,1/1,1/0 VFD 42/0LCD2000,16/0,1/1,1/0 VFD 42/0LCFO,16/0,1/1,1/0 VFD 42/0LCHANGE,16/0,1/1,1/1 VFD 42/0LCHARGE,16/0,1/1,1/1 VFD 42/0LCHVAL,16/0,1/1,1/0 VFD 42/0LCKP,16/0,1/1,1/0 VFD 42/0LCLASS,16/0,1/1,1/0 VFD 42/0LCLEAR,16/0,1/1,1/1 VFD 42/0LCOBOL5,16/0,1/0,1/0 VFD 42/0LCOMMENT,16/0,1/1,1/0 VFD 42/0LCOMMON,16/0,1/0,1/0 VFD 42/0LCOMPASS,16/0,1/0,1/0 VFD 42/0LCOPY,16/0,1/1,1/1 VFD 42/0LCOPYBF,16/0,1/1,1/1 VFD 42/0LCOPYBR,16/0,1/1,1/1 VFD 42/0LCOPYCF,16/0,1/1,1/1 VFD 42/0LCOPYCR,16/0,1/1,1/1 VFD 42/0LCOPYEI,16/0,1/1,1/1 VFD 42/0LCOPYER,16/0,1/0,1/1 VFD 42/0LCOPYL,16/0,1/1,1/0 VFD 42/0LCOPYLM,16/0,1/1,1/0 VFD 42/0LCOPYSBF,16/0,1/1,1/1 VFD 42/0LCOPYX,16/0,1/1,1/0 VFD 42/0LCSET,16/0,1/1,1/0 VFD 42/0LCSU,16/0,1/0,1/1 VFD 42/0LCTB,16/0,1/0,1/1 VFD 42/0LCTIME,16/0,1/1,1/0 VFD 42/0LCT3,16/0,1/1,1/1 VFD 42/0LCT7,16/0,1/1,1/1 VFD 42/0LCT8,16/0,1/1,1/1 VFD 42/0LCU1,16/0,1/0,1/1 VFD 42/0LDAYFILE,16/0,1/1,1/1 VFD 42/0LDEBUG,16/0,1/0,1/0 VFD 42/0LDEFINE,16/0,1/1,1/1 VFD 42/0LDETACH,16/0,1/1,1/0 VFD 42/0LDIAL,16/0,1/1,1/0 VFD 42/0LDISPLAY,16/0,1/1,1/1 VFD 42/0LDMB,16/0,1/1,1/0 VFD 42/0LDMD,16/0,1/1,1/1 VFD 42/0LDMDECS,16/0,1/1,1/1 VFD 42/0LDMP,16/0,1/1,1/1 VFD 42/0LDMPECS,16/0,1/1,1/1 VFD 42/0LDOCMENT,16/0,1/1,1/0 VFD 42/0LDROP,16/0,1/1,1/1 VFD 42/0LEALOGCD,16/0,1/1,1/0 VFD 42/0LEALOGSV,16/0,1/1,1/0 VFD 42/0LEALOGVS,16/0,1/1,1/0 VFD 42/0LEAPREVC,16/0,1/1,1/0 VFD 42/0LEAPREVS,16/0,1/1,1/0 VFD 42/0LEAUL101,16/0,1/1,1/0 VFD 42/0LEAVL105,16/0,1/1,1/0 VFD 42/0LEC3,16/0,1/0,1/1 VFD 42/0LEC8,16/0,1/0,1/1 VFD 42/0LEDIT,16/0,1/1,1/1 VFD 42/0LELD,16/0,1/0,1/1 VFD 42/0LELSE,16/0,1/1,1/0 VFD 42/0LENDIF,16/0,1/1,1/0 VFD 42/0LENDW,16/0,1/1,1/0 VFD 42/0LENQUIRE,16/0,1/1,1/1 VFD 42/0LENTER,16/0,1/1,1/0 VFD 42/0LEVICT,16/0,1/1,1/0 VFD 42/0LEXECUTE,16/0,1/0,1/1 VFD 42/0LEXIT,16/0,1/1,1/1 VFD 42/0LEXPLAIN,16/0,1/1,1/0 VFD 42/0LFCOPY,16/0,1/1,1/0 VFD 42/0LFILE,16/0,1/1,1/0 VFD 42/0LFSE,16/0,1/1,1/1 VFD 42/0LFS8,16/0,1/0,1/1 VFD 42/0LFTN,16/0,1/0,1/0 VFD 42/0LFTN5,16/0,1/0,1/0 VFD 42/0LF45,16/0,1/0,1/0 VFD 42/0LGET,16/0,1/1,1/1 VFD 42/0LGETLOG,16/0,1/0,1/1 VFD 42/0LGO,16/0,1/1,1/1 VFD 42/0LGOODBYE,16/0,1/1,1/1 VFD 42/0LGPSS,16/0,1/0,1/0 VFD 42/0LGTR,16/0,1/1,1/0 VFD 42/0LHELLO,16/0,1/1,1/1 VFD 42/0LHELLO7,16/0,1/1,1/0 VFD 42/0LHELP,16/0,1/1,1/1 VFD 42/0LHELPME,16/0,1/1,1/1 VFD 42/0LHPA,16/0,1/0,1/1 VFD 42/0LHTIME,16/0,1/1,1/0 VFD 42/0LICEMDDN,16/0,1/1,1/0 VFD 42/0LIEDIT,16/0,1/1,1/0 VFD 42/0LIF,16/0,1/1,1/0 VFD 42/0LIFE,16/0,1/1,1/0 VFD 42/0LITEMIZE,16/0,1/1,1/0 VFD 42/0LKRONREF,16/0,1/1,1/0 VFD 42/0LLABEL,16/0,1/1,1/1 VFD 42/0LLBC,16/0,1/0,1/0 VFD 42/0LLDI,16/0,1/1,1/0 VFD 42/0LLDSET,16/0,1/1,1/0 VFD 42/0LLENGTH,16/0,1/1,1/0 VFD 42/0LLGO,16/0,1/0,1/1 VFD 42/0LLIB,16/0,1/0,1/0 VFD 42/0LLIBEDIT,16/0,1/1,1/0 VFD 42/0LLIBGEN,16/0,1/1,1/0 VFD 42/0LLIBLOAD,16/0,1/1,1/0 VFD 42/0LLIBRARY,16/0,1/1,1/0 VFD 42/0LLIBTASK,16/0,1/1,1/0 VFD 42/0LLIMITS,16/0,1/1,1/1 VFD 42/0LLINE,16/0,1/1,1/1 VFD 42/0LLISTLB,16/0,1/1,1/1 VFD 42/0LLIST80,16/0,1/1,1/0 VFD 42/0LLOAD,16/0,1/0,1/0 VFD 42/0LLOC,16/0,1/0,1/0 VFD 42/0LLOCK,16/0,1/1,1/0 VFD 42/0LLOGIN,16/0,1/1,1/1 VFD 42/0LLOGOUT,16/0,1/1,1/1 VFD 42/0LLO72,16/0,1/1,1/0 VFD 42/0LMACHINE,16/0,1/1,1/0 VFD 42/0LMALET,16/0,1/0,1/1 VFD 42/0LMAP,16/0,1/1,1/1 VFD 42/0LMAPINI,16/0,1/0,1/1 VFD 42/0LMFL,16/0,1/1,1/1 VFD 42/0LMFLINK,16/0,1/1,1/0 VFD 42/0LMFQUEUE,16/0,1/1,1/0 VFD 42/0LMODE,16/0,1/1,1/1 VFD 42/0LMODIFY,16/0,1/1,1/0 VFD 42/0LMRG,16/0,1/0,1/1 VFD 42/0LNEW,16/0,1/1,1/1 VFD 42/0LNOEXIT,16/0,1/1,1/1 VFD 42/0LNORERUN,16/0,1/1,1/0 VFD 42/0LNORM,16/0,1/1,1/1 VFD 42/0LNORMAL,16/0,1/1,1/1 VFD 42/0LNOSORT,16/0,1/1,1/0 VFD 42/0LNOTE,16/0,1/1,1/0 VFD 42/0LNULL,16/0,1/1,1/0 VFD 42/0LOFFSW,16/0,1/1,1/1 VFD 42/0LOLD,16/0,1/1,1/1 VFD 42/0LOMREF,16/0,1/1,1/0 VFD 42/0LONEXIT,16/0,1/1,1/1 VFD 42/0LONSW,16/0,1/1,1/1 VFD 42/0LOPLEDIT,16/0,1/1,1/0 VFD 42/0LOPMSG,16/0,1/0,1/1 VFD 42/0LOUT,16/0,1/1,1/1 VFD 42/0LOVWRITE,16/0,1/1,1/0 VFD 42/0LPACK,16/0,1/1,1/1 VFD 42/0LPACKNAM,16/0,1/1,1/1 VFD 42/0LPASCAL,16/0,1/0,1/0 VFD 42/0LPASSWOR,16/0,1/1,1/0 VFD 42/0LPAUSE,16/0,1/1,1/0 VFD 42/0LPBC,16/0,1/0,1/0 VFD 42/0LPDU,16/0,1/1,1/0 VFD 42/0LPERMIT,16/0,1/1,1/1 VFD 42/0LPLI,16/0,1/0,1/0 VFD 42/0LPRESET,16/0,1/1,1/1 VFD 42/0LPRIMARY,16/0,1/1,1/1 VFD 42/0LPROFILE,16/0,1/1,1/0 VFD 42/0LPROTECT,16/0,1/1,1/0 VFD 42/0LPURGALL,16/0,1/1,1/0 VFD 42/0LPURGE,16/0,1/1,1/1 VFD 42/0LQGET,16/0,1/1,1/0 VFD 42/0LQUEUE7,16/0,1/1,1/0 VFD 42/0LRBR,16/0,1/0,1/0 VFD 42/0LRECOVER,16/0,1/1,1/1 VFD 42/0LREDO,16/0,1/1,1/0 VFD 42/0LREDUCE,16/0,1/1,1/1 VFD 42/0LREGEN,16/0,1/0,1/1 VFD 42/0LRENAME,16/0,1/1,1/1 VFD 42/0LREPLACE,16/0,1/1,1/1 VFD 42/0LREQUEST,16/0,1/1,1/1 VFD 42/0LRERUN,16/0,1/1,1/0 VFD 42/0LRESEQ,16/0,1/1,1/0 VFD 42/0LRESOURC,16/0,1/1,1/1 VFD 42/0LRESTART,16/0,1/1,1/0 VFD 42/0LRETURN,16/0,1/1,1/1 VFD 42/0LREVERT,16/0,1/1,1/1 VFD 42/0LREVIEW,16/0,1/1,1/0 VFD 42/0LREWIND,16/0,1/1,1/1 VFD 42/0LRFL,16/0,1/1,1/1 VFD 42/0LROLLOUT,16/0,1/1,1/0 VFD 42/0LROUTE,16/0,1/1,1/1 VFD 42/0LRTIME,16/0,1/1,1/0 VFD 42/0LRUN,16/0,1/0,1/1 VFD 42/0LSATISFY,16/0,1/1,1/0 VFD 42/0LSAVE,16/0,1/1,1/1 VFD 42/0LSCOPY,16/0,1/1,1/0 VFD 42/0LSCREEN,16/0,1/1,1/1 VFD 42/0LSECHDR,16/0,1/1,1/0 VFD 42/0LSET,16/0,1/1,1/1 VFD 42/0LSETASL,16/0,1/1,1/0 VFD 42/0LSETCORE,16/0,1/1,1/0 VFD 42/0LSETFAL,16/0,1/1,1/0 VFD 42/0LSETFS,16/0,1/1,1/0 VFD 42/0LSETJAL,16/0,1/1,1/0 VFD 42/0LSETJOB,16/0,1/1,1/0 VFD 42/0LSETJSL,16/0,1/1,1/0 VFD 42/0LSETPFAC,16/0,1/1,1/0 VFD 42/0LSETPFAL,16/0,1/1,1/0 VFD 42/0LSETPR,16/0,1/1,1/0 VFD 42/0LSETTL,16/0,1/1,1/1 VFD 42/0LSHELL,16/0,1/0,1/0 VFD 42/0LSKIP,16/0,1/1,1/1 VFD 42/0LSKIPEI,16/0,1/1,1/1 VFD 42/0LSKIPF,16/0,1/1,1/1 VFD 42/0LSKIPFB,16/0,1/1,1/1 VFD 42/0LSKIPR,16/0,1/1,1/1 VFD 42/0LSLOAD,16/0,1/1,1/0 VFD 42/0LSORT,16/0,1/1,1/0 VFD 42/0LSORTMRG,16/0,1/1,1/0 VFD 42/0LSTATUS,16/0,1/1,1/1 VFD 42/0LSTIME,16/0,1/1,1/0 VFD 42/0LSUBMIT,16/0,1/1,1/1 VFD 42/0LSWITCH,16/0,1/1,1/1 VFD 42/0LTCOPY,16/0,1/1,1/0 VFD 42/0LTDU,16/0,1/1,1/1 VFD 42/0LTDUMP,16/0,1/1,1/1 VFD 42/0LTEXT,16/0,1/1,1/1 VFD 42/0LTIMEOUT,16/0,1/1,1/0 VFD 42/0LTIO,16/0,1/0,1/1 VFD 42/0LTRMDEF,16/0,1/1,1/1 VFD 42/0LULIB,16/0,1/1,1/0 VFD 42/0LUNIPOST,16/0,1/1,1/0 VFD 42/0LUNLOAD,16/0,1/1,1/1 VFD 42/0LUNLOCK,16/0,1/1,1/0 VFD 42/0LUPDATE,16/0,1/1,1/1 VFD 42/0LUPROC,16/0,1/1,1/0 VFD 42/0LUSECPU,16/0,1/1,1/1 VFD 42/0LUSER,16/0,1/1,1/1 VFD 42/0LVERIFY,16/0,1/1,1/1 VFD 42/0LVFYLIB,16/0,1/1,1/0 VFD 42/0LVSN,16/0,1/1,1/1 VFD 42/0LWBR,16/0,1/0,1/0 VFD 42/0LWHATJSN,16/0,1/1,1/0 VFD 42/0LWHILE,16/0,1/1,1/0 VFD 42/0LWRITEF,16/0,1/1,1/1 VFD 42/0LWRITER,16/0,1/1,1/1 VFD 42/0LX,16/0,1/0,1/0 VFD 42/0LXEDIT,16/0,1/1,1/1 CMDSL EQU *-CMDS LENGTH OF COMMAND LIST BUFFERS SPACE 4,10 * BUFFERS. ERRM BSSZ 1 STORE APPROPRIATE ERROR MESSAGE SHELFLG BSSZ 1 SHELL PROGRAM FLAG MCCDR BSSZ 9 MODIFIED CCDR PCS BSSZ 1 PACKED CONTROL STATEMENT RI BSSZ 1 REQUESTED INPUT FROM TERMINAL INPUT FILEC IBUF,101B OUTPUT FILEC OBUF,101B LOFP VFD 12/0,18/LOF,30/0 LOFF CON 0 LIST OF FILES FLAG LOF VFD 1/0,41/0,18/3 VFD 42/0LOUTPUT,18/OUTPUT VFD 60/0 OUT VFD 12/1L/,12/1,36/0 IBUF EQU * OBUF EQU IBUF+101B RFL= EQU OBUF+101B+10B END