addupd;
 NAME = CONF.DESYIN;
 COMMAND = - no choice old-new screen, simply call GENERIC2.XSCREEN2;
 COMMAND = !SET NOLIST NOECHO;
 COMMAND = ..GENERIC2.XSCREEN2 CONF 5 7;
 COMMAND = RETURN;
 SUBJECT = XSCREEN;
 SUBJECT = CONF;
 SUBJECT = DESY INPUT;
;
addupd;
 NAME = GENERIC2.XSCREEN2;
 COMMAND = SET NOECHO NOLIST NOSTOP;
 COMMAND = -$SUBJECT converted;
 COMMAND = - Converted and renamed, lxa, 3/18/97;
 COMMAND = - Added the transfer command, lxa, 5/1/00;
 COMMAND = - Two Screen Version - generic - Addis revision, 11/17/94;
 COMMAND = - The two screens must be given sequentially in the call;
 COMMAND = - Example:  ..GENERIC2.XSCREEN2 CONF 11 12;
 COMMAND = - Where CONF is the subfile and CONF.SCREEN11 & CONF.SCREEN12 are
formats;
 COMMAND = - There must be a protocol in NEWPROTO called subfilename.HELP.MENU;
 COMMAND = - i.e. CONF.HELP.MENU, etc.;
 COMMAND = - If the cursor positions do not suit your formats, you'll need;
 COMMAND = - to make a special version of this driver with the cursor positions;
 COMMAND = - edited.  There are provisions for ADD and UPDATE cursor positions.;
 COMMAND = -;
 COMMAND = -;
 COMMAND = DECLARE GLOBAL VGROUPS;
 COMMAND = "allocate orv.li.lib.xscreen.vars;";
 COMMAND = ENDDECLARE;
 COMMAND = DECLARE VGROUP GEN.XSCR;
 COMMAND = "VARIABLE = CurrentScreen;";
 COMMAND = "LENGTH = 80;";
 COMMAND = "VARIABLE = HelpMenu;";
 COMMAND = "LENGTH = 80;";
 COMMAND = "VARIABLE = NewScreen1;";
 COMMAND = "LENGTH = 80;";
 COMMAND = "VARIABLE = NewScreen2;";
 COMMAND = "LENGTH = 80;";
 COMMAND = "VARIABLE = ScreenNum;";
 COMMAND = "LENGTH = 80;";
 COMMAND = ENDDECLARE;
 COMMAND = If $ASK = '': * Must be called with subfile name  and screennumber;
 COMMAND = "              Then Return";
 COMMAND = Let Subfile = $LEFTSUB($CAP($ASK),' ');
 COMMAND = "              If $SIZE(#Subfile) = 0: Let Subfile = $ASK";
 COMMAND = Let ScreenNum = $RIGHTSUB($ASK,' ');
 COMMAND = "              If $SIZE(#ScreenNum) = 0: * Must be called with two
screen Nos.";
 COMMAND = "              then return";
 COMMAND = Let NewScreen2 = $RIGHTSUB(#ScreenNum,' ');
 COMMAND = "               If $SIZE(#NewScreen2) = 0: * Must be called with two
screen Nos.";
 COMMAND = "               then return";
 COMMAND = Let NewScreen1 = $LEFTSUB(#ScreenNum,' ');
 COMMAND = -;
 COMMAND = Let HelpMenu = #Subfile||.HELP.MENU;
 COMMAND = "; if not called with a screen, defaults to screen1";
 COMMAND = -;
 COMMAND = * Just a minute please while things set up!!!;
 COMMAND =
-************************************************************************;
 COMMAND = -******** Allow updating of the information in #Subfile
      ***********;
 COMMAND =
-************************************************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = SET Supermax 64k;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** Main SET up Section
********************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = If $SELECT ~= #Subfile: /SELECT #Subfile;
 COMMAND = If $SELECT ~= #Subfile : / * Unable to select #SELECT;
 COMMAND = Then Return;
 COMMAND = -;
 COMMAND = SET MESSAGES 0;
 COMMAND = - SET MESSAGES 4;
 COMMAND = SET NOWRITE;
 COMMAND = -;
 COMMAND = THR PUB SEL NEWPROTO;
 COMMAND = THR PUB SET FOR $MAKEHELP;
 COMMAND = THR NOFORMAT CLR FORMAT;
 COMMAND = -;
 COMMAND = Let CurrentScreen = #Subfile||'.SCREEN'||#NewScreen1;
 COMMAND = Let NewScreen1 = #CurrentScreen;
 COMMAND = Let NewScreen2 = #Subfile||'.SCREEN'||#NewScreen2;
 COMMAND = /* #NewScreen2;
 COMMAND = IF $MATCH($ACCOUNT,ADDIS?): /* 'CurrentScreen = '#CurrentScreen;
 COMMAND = /SET FORMAT #CurrentScreen;
 COMMAND = If $NO: SET FORMAT **ADDIS:TARGET87.SCREEN;
 COMMAND = SET GLOBAL FORMAT  ORV.LI.LIB.XSCREEN.HEADFOOT;
 COMMAND = /Let XScreenTop = '#Subfile Maintenance Screen';
 COMMAND = -;
 COMMAND = - THR BINS SEL BINLIST;
 COMMAND = - THR BINS SET FORMAT DEFAULT;
 COMMAND = - THR INST SEL INSTITUTIONS;
 COMMAND = -;
 COMMAND = Let ErrLoc = 20;
 COMMAND = Let AddCursor = '2,14';
 COMMAND = Let UpdCursor = '2,14';
 COMMAND = Let CmdCursor = '22,5';
 COMMAND = SET CRT HOME 3,10;
 COMMAND = -;
 COMMAND = "Let XPFKV::1 = 'Menu'         ; MENU";
 COMMAND = "Let XPFKV::2 = 'Add'          ; Prepare to ADD a record";
 COMMAND = "Let XPFKV::3 = 'End'          ; END, QUIT";
 COMMAND = "Let XPFKV::4 = 'Cancel'       ; CANCEL the add or update";
 COMMAND = "Let XPFKV::5 = 'Screen2'      ; JUMP to next screen";
 COMMAND = "Let XPFKV::6 = 'Clear'        ; Clear form, present blank form";
 COMMAND = "Let XPFKV::9 = 'Fix'          ; MENU";
 COMMAND = "Let XPFKV::7 = 'Backward'     ;";
 COMMAND = "Let XPFKV::8 = 'Forward'      ;";
 COMMAND = "Let XPFKV::10 = 'Clone'       ; Use old record as basis for add";
 COMMAND = "Let XPFKV::12 = 'Print'       ; Print record on screen";
 COMMAND = -;
 COMMAND = If #ScreenNum = 1 Then Let XPFKV::5  = 'Screen2';
 COMMAND = "                  Then Let XPFKV::2  = 'Add'";
 COMMAND = "                  Then Let UpdCursor = '2,14'";
 COMMAND = If #ScreenNum = 2 Then Let XPFKV::5  = 'Screen1';
 COMMAND = "                  Then Let XPFKV::2  = '      '";
 COMMAND = "                  Then Let UpdCursor = '2,20'";
 COMMAND;
 COMMAND = Let PAD = ' ';
 COMMAND = Let Function = 'COMMAND';
 COMMAND = Let XScreenMessage = '';
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** Area SET up Section
********************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++AREAS10;
 COMMAND = -;
 COMMAND = DEFINE AREA SCREEN(24,79) ON CRT (1,1) PTUNPROTECT;
 COMMAND = DEFINE AREA HEADER(2,79) ON SCREEN (1,1) PROTECT;
 COMMAND = DEFINE AREA UPDATE(21,79) ON SCREEN (3,1) IODATA;
 COMMAND = DEFINE AREA FOOTER(3,79) ON SCREEN (22,1) IODATA;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++MENU15;
 COMMAND = -;
 COMMAND = Let XScreenCommand = '';
 COMMAND = BLANK CRT;
 COMMAND = /IN UPDATE THRU PUB DIS #HelpMenu;
 COMMAND = Let Menu = YES;
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** Get commands from screen
**************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++TESTXPFK20;
 COMMAND = -;
 COMMAND = /Let XScreenCommand = $STRIP($GETAREA(CRT,READ,#CmdCursor,50),' ');
 COMMAND = Let XPFK = $GETAREA(CRT,FKEY);
 COMMAND = If #XPFK = 161 : Let XScreenCommand = ' ';
 COMMAND = If #XPFK < 200 : Return;
 COMMAND = If #XPFK > 212 : Return;
 COMMAND = Let XPFK = #XPFK-200;
 COMMAND = If #XPFKV::#XPFK : Let XScreenCommand = $CAP(#XPFKV::#XPFK);
 COMMAND = Return;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** Interpret the command
*****************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++COMMAND25;
 COMMAND = -;
 COMMAND = Let SaveCmd = #XScreenCommand;
 COMMAND = Let SaveMes = #XScreenMessage;
 COMMAND = Let XScreenStatus = 'RUNNING';
 COMMAND = IN HEADER, XEQ GLOBAL FRAME XSCREEN.HEAD;
 COMMAND = IN FOOTER, XEQ GLOBAL FRAME XSCREEN.FOOT;
 COMMAND = if $stack > 0: let myresult = stack;
 COMMAND = "   else let myresult = result";
 COMMAND;
 COMMAND;
 COMMAND = /WRITE SCREEN, READ CURSOR (#CmdCursor);
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++MATCH30;
 COMMAND = -;
 COMMAND = Let XScreenStatus = 'RUNNING';
 COMMAND = XEQ PROC TESTXPFK20;
 COMMAND = Let Search = $RSUB(#XScreenCommand,' ');
 COMMAND = Let Function = $CAP($BREAK(#XScreenCommand,' '));
 COMMAND = Let ActualCommand = #XScreenCommand;
 COMMAND = "; WRITE SCREEN";
 COMMAND = If #Menu = YES: If $PMATCH(#Function,'ADD'): XEQ PROC CLEAR73;
 COMMAND = Let Menu = NO;
 COMMAND = -;
 COMMAND = If $PMATCH(#Function,'NEX?T','FOR?WARD')          : Jump NEXT50;
 COMMAND = If $PMATCH(#Function,'BACK?WARD')                 : Jump PREVIOUS35;
 COMMAND = If $PMATCH(#Function,'FIX?','COR?RECT','UPD?ATE','CHA?NGE') : Jump
MODIFY75;
 COMMAND = If $PMATCH(#Function,'END?','QQ?','QUI?T')        : Jump END140;
 COMMAND = If $PMATCH(#Function,'CLEAR?','CLR')              : Jump CLEAR72;
 COMMAND = If $PMATCH(#Function,'AD?D')                      : Jump ADD64;
 COMMAND = If $PMATCH(#Function,'CL?ONE','DUP?LICATE')       : Jump CLONE63;
 COMMAND = If $PMATCH(#Function,'GET?')                      : Jump GET133;
 COMMAND = If $PMATCH(#Function,'MEN?U')                     : Jump MENU15;
 COMMAND = If $PMATCH(#Function,'FIN?D')                     : Jump FIND40;
 COMMAND = If $PMATCH(#Function,'AND')                       : Jump FIND40;
 COMMAND = If $PMATCH(#Function,'OR')                        : Jump FIND40;
 COMMAND = If $PMATCH(#Function,'ALSO')                      : Jump FIND40;
 COMMAND = If $PMATCH(#Function,'SEQ?UENCE')                 : Jump FIND40;
 COMMAND = If $PMATCH(#Function,'TYP?E')                     : Jump TYPE127;
 COMMAND = If $PMATCH(#Function,'EXP?LAIN')                  : Jump BROWSE130;
 COMMAND = If $PMATCH(#Function,'BRO?WSE')                   : Jump BROWSE130;
 COMMAND = If $PMATCH(#Function,'REM?OVE','DEL?ETE')         : Jump REMOVE125;
 COMMAND = If $PMATCH(#Function,'DEQ?UEUE')                  : Jump DEQ124;
 COMMAND = If $PMATCH(#Function,'PRI?NT')                    : Jump PRINT105;
 COMMAND = If $PMATCH(#Function,'HLP?',HEL?P)                : Jump MENU15;
 COMMAND = If $PMATCH(#Function,'CMS?','CP?','QSPI?RES','BIN?LIST') : XEQ PROC
PASS115;
 COMMAND = If $PMATCH(#Function,'BRE?AK')                    : Jump BREAK120;
 COMMAND = If $PMATCH(#Function,'SHO?W')                     : Jump SHOW126;
 COMMAND = IF $PMATCH(#FUNCTION,'TRA?NSFER')                 : JUMP TRANSFER128;
 COMMAND = If $PMATCH(#Function,'DIS?PLAY')                  : Jump DISPLAY35;
 COMMAND = "   Then Let XScreenCommand = ''";
 COMMAND = "   Then Jump COMMAND25";
 COMMAND = If $PMATCH(#Function,'CAN?CEL')                   : Jump CANCEL100;
 COMMAND = "   Then Let XScreenCommand = ''";
 COMMAND = "   Then Jump COMMAND25";
 COMMAND = If $PMATCH(#Function,'SCREEN1?') Then /Let CurrentScreen =
#NewScreen1;
 COMMAND = "   Then Let ScreenNum = 1";
 COMMAND = "   Then Let XPFKV::5  = 'Screen2'";
 COMMAND = "   Then Let XPFKV::2  = 'Add'";
 COMMAND = "   Then Let UpdCursor = '2,14'";
 COMMAND = "   Then Jump CHANGESCR";
 COMMAND = If $PMATCH(#Function,'SCREEN2?') Then /Let CurrentScreen =
#NewScreen2;
 COMMAND = "   Then Let ScreenNum = 2";
 COMMAND = "   Then Let XPFKV::5  = 'Screen1'";
 COMMAND = "   Then Let XPFKV::2  = '       '";
 COMMAND = "   Then Let UpdCursor = '2,20'";
 COMMAND = "   Then Jump CHANGESCR";
 COMMAND = -;
 COMMAND = Let XScreenMessage = 'Unrecognized command';
 COMMAND = If #Function = '' : Let XScreenMessage = 'No command';
 COMMAND = Let XScreenCommand = '';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND = ++CHANGESCR;
 COMMAND = -;
 COMMAND = /SET FORMAT #CurrentScreen;
 COMMAND = /IN UPDATE, USING INPUT.OUT DISPLAY *;
 COMMAND = Let XScreenCommand = #SaveCmd;
 COMMAND = Let XScreenMessage = '['$KEY'] '$GXCOUNT' of '$RESULT;
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** When going through a group of commands, allow the
*************;
 COMMAND = -******** user to go backwards as well as forwards
**********************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++PREVIOUS35;
 COMMAND = -;
 COMMAND = Let Skip = $GXCOUNT - 2;
 COMMAND = If #Skip < 0 Then Let Skip = 0;
 COMMAND = If $FORTYPE = 0 : // Let Skip = #MyResult - 1;
 COMMAND = /FOR #MyResult;
 COMMAND = /SKIP #Skip;
 COMMAND = Let XScreenMessage = #SaveMes;
 COMMAND = Let XScreenCommand = #SaveCmd;
 COMMAND = Jump NEXT50;
 COMMAND = -;
 COMMAND = ++DISPLAY35;
 COMMAND = -;
 COMMAND = Let ActualCommand = 'FIND CONFEREE '#Search;
 COMMAND = -;
 COMMAND = Jump FIND40;
 COMMAND = -;
 COMMAND;
 COMMAND =
-************************************************************************;
 COMMAND = -******** Using the Indexes, FIND a record
******************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++FIND40;
 COMMAND = Let XScreenStatus = 'SearchING';
 COMMAND = IN FOOTER XEQ GLOBAL FRAME XSCREEN.FOOT;
 COMMAND = WRITE SCREEN;
 COMMAND = -;
 COMMAND = /#ActualCommand;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++RESULT45;
 COMMAND = -;
 COMMAND = If $RESULT = 0 Then Jump NOFIND60;
 COMMAND = Let MyResult = RESULT;
 COMMAND = If $STACK > 0: Let MyResult = STACK;
 COMMAND = /FOR #MyResult;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** Now display the 'next' record, depending on the
***************;
 COMMAND = -******** value of $GXCOUNT
*********************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++NEXT50;
 COMMAND = -;
 COMMAND = If $FORTYPE = 0: If $RESULT > 0: /FOR #MyResult;
 COMMAND = IN UPDATE, USING INPUT.OUT DISPLAY END = 'Jump END.NEXT55';
 COMMAND = Let XScreenMessage = '['$KEY'] '$GXCOUNT' of '$RESULT;
 COMMAND = If $GXCOUNT < $RESULT Then Let XScreenCommand = 'NEXT';
 COMMAND = Else Let XScreenCommand = '';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++END.NEXT55;
 COMMAND = -;
 COMMAND = Let XScreenMessage = 'End of selected record(s)';
 COMMAND = Let Function = 'COMMAND';
 COMMAND = Let XScreenCommand = '';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** If the record cannot be found
*********************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++NOFIND60;
 COMMAND = -;
 COMMAND = CLR REF;
 COMMAND = ENDF;
 COMMAND = ENDF;
 COMMAND = If #Search Then Let XScreenMessage = 'Record '#Search' not found';
 COMMAND = Else Let XScreenMessage = 'No records found';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND = ++CLONE63;
 COMMAND = -;
 COMMAND;
 COMMAND = "If $MATCH($KEY,XSCREEN?): XEQ PROC CLEAR73         ; clears menu";
 COMMAND = "     Then Let XScreenMessage = 'No record to clone'";
 COMMAND = "     Then Let XScreenCommand = ''";
 COMMAND = "     Then Jump COMMAND25";
 COMMAND = If #Search = '' Then Let Search = $KEY;
 COMMAND = If #Search = '' : Let XScreenMessage = 'You haven't specified a
record to dup';
 COMMAND = "     Then Let XScreenCommand = ''";
 COMMAND = "     Then Jump COMMAND25";
 COMMAND = If $RECTEST(#Search) < 1 : Let XScreenCommand = '';
 COMMAND = "    /Then Let XScreenMessage = 'Record '#Search' does not exist'";
 COMMAND = "     Then Jump COMMAND25";
 COMMAND = Let XScreenMessage = 'Edit the record, press ENTER/RETURN to ADD';
 COMMAND = If $FORTYPE > 0: Let Search = '*';
 COMMAND = /IN UPDATE, USING CLONE.OUT DISPLAY #Search;
 COMMAND = Jump CREATE65;
 COMMAND = -;
 COMMAND = ++ADD64;
 COMMAND = -;
 COMMAND = If $SETFORMAT ~= 'CONF.SCREEN2' Then Jump CREATE645;
 COMMAND = Let CurrentScreen = $SETFORMAT;
 COMMAND = /SET FORMAT #CurrentScreen;
 COMMAND = IN UPDATE, USING INPUT.OUT DISPLAY *;
 COMMAND = Let XScreenCommand = #SaveCmd;
 COMMAND = Let XScreenMessage = 'You cannot ADD from this screen. ';
 COMMAND = Let XPFKV::2 = '       ';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND = ++CREATE645;
 COMMAND = -;
 COMMAND = IN UPDATE, USING INPUT.OUT NODATA DISPLAY;
 COMMAND = Let XScreenMessage = ' Enter new record, RETURN/ENTER to complete';
 COMMAND = -;
 COMMAND = ++CREATE65;
 COMMAND = -;
 COMMAND = If $FORTYP: ENDF;
 COMMAND = CLEAR REF;
 COMMAND = GENERATE REFERENCE;
 COMMAND = FOR *;
 COMMAND = -;
 COMMAND = -;
 COMMAND = -;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** SET  up the screen to add a record
 ****************************;
 COMMAND =
-************************************************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++DOADD70;
 COMMAND = -;
 COMMAND = Let PAD = ' ';
 COMMAND = Let XScreenCommand = 'ADD';
 COMMAND = IN HEADER, XEQ GLOBAL FRAME XSCREEN.HEAD;
 COMMAND = IN FOOTER, XEQ GLOBAL FRAME XSCREEN.FOOT;
 COMMAND;
 COMMAND = ++DOADD71;
 COMMAND;
 COMMAND = /WRITE SCREEN, READ CURSOR ( #AddCursor ) ATTN= 'Jump DOADD71';
 COMMAND = XEQ PROC TESTXPFK20;
 COMMAND = If $PMATCH(#XScreenCommand,'CAN?CEL','END?','QQ?','QUI?T'): Jump
CANCEL100;
 COMMAND = If $PMATCH(#XScreenCommand,'EXP?LAIN'): XEQ PROC EXPLAINPROC132;
 COMMAND = "   Then Jump DOADD70";
 COMMAND = -;
 COMMAND = Let I1 = #ErrLoc;
 COMMAND = /IN UPDATE, USING INPUT.IN MERGE;
 COMMAND = If $NO Then Jump ADDFAIL90;
 COMMAND = ENDF;
 COMMAND = ADD CLEAR;
 COMMAND = If $NO : Jump ADDFAIL90;
 COMMAND = /IN UPDATE, USING INPUT.OUT  DISPLAY $KEY;
 COMMAND = Let XScreenMessage = '['$KEY'] Add Successful';
 COMMAND = Let XScreenCommand = '';
 COMMAND = /FIND KEY $KEY;
 COMMAND = FOR RES;
 COMMAND = IN NULL DISPLAY NEXT;
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -********     Clear the form for new input
              ****************;
 COMMAND =
-************************************************************************;
 COMMAND = ++CLEAR72;
 COMMAND = -;
 COMMAND = IN UPDATE, USING INPUT.OUT NODATA DISPLAY;
 COMMAND = Let XScreenMessage = 'Record cleared, no current command';
 COMMAND = Let XScreenCommand = '';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND =
**********************************************************************;
 COMMAND = ***********     Clear and return to next command
*********************;
 COMMAND =
**********************************************************************;
 COMMAND = -;
 COMMAND = ++CLEAR73;
 COMMAND = -;
 COMMAND = IN UPDATE, USING INPUT.OUT NODATA DISPLAY;
 COMMAND = Return;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** SET  up the screen to Update an existing record
****************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++MODIFY75;
 COMMAND = -;
 COMMAND = If $FORTYPE = 0: If #Search = '': Let XScreenMessage = 'No record to
fix';
 COMMAND = "         Then Let XScreenCommand = ''";
 COMMAND = "         Then Jump COMMAND25";
 COMMAND = If #Search ~= '': If $FORTYPE > 0: ENDFOR;
 COMMAND = If #Search ~= '': If $TYPETEST(#Search,INT) ~= INT: XEQ PROC
FIXBYNAMEPROC89;
 COMMAND = If $FORTYPE > 0:   Let Search = '*';
 COMMAND = If $FORTYPE = 0: If $RECTEST(#Search) < 1 : Let XScreenCommand = '';
 COMMAND = "         /Then Let XScreenMessage = 'Record '#Search' does not
exist'";
 COMMAND = "          Then XEQ PROC BELLPROC136";
 COMMAND = "          Then Jump COMMAND25";
 COMMAND = -;
 COMMAND = ++MODIFYRET80;
 COMMAND = -;
 COMMAND = Let PAD = ' ';
 COMMAND = Let XScreenCommand = 'UPD';
 COMMAND = /IN UPDATE, USING INPUT.OUT DISPLAY #Search;
 COMMAND = If $NO Then Jump NOFIND60;
 COMMAND = Let XScreenMessage = '['$KEY'] Enter corrections, RETURN/ENTER to
complete';
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++MODIFY82;
 COMMAND = -;
 COMMAND = IN HEADER, XEQ GLOBAL FRAME XSCREEN.HEAD;
 COMMAND = IN FOOTER, XEQ GLOBAL FRAME XSCREEN.FOOT;
 COMMAND;
 COMMAND = ++MODIFY83;
 COMMAND;
 COMMAND = /WRITE SCREEN, READ CURSOR ( #UpdCursor )      ATTN= 'Jump MODIFY83';
 COMMAND = XEQ PROC TESTXPFK20;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++UPDATE85;
 COMMAND = -;
 COMMAND = If $MATCH($CAP(#XScreenCommand),CAN?): Jump CANCEL100;
 COMMAND = If $PMATCH($CAP(#XScreenCommand),'END?','QQ','QUI?T'): Jump
CANCEL100;
 COMMAND = -;
 COMMAND = Let I1 = #ErrLoc;
 COMMAND = /IN UPDATE, USING INPUT.IN MERGE #Search;
 COMMAND = -;
 COMMAND = If $NO Then Jump UPDATEFAILED95;
 COMMAND = UPDATE CLR;
 COMMAND = /IN UPDATE, USING INPUT.OUT DISPLAY #Search;
 COMMAND = -;
 COMMAND = Let XScreenMessage = '['$KEY'] update successful';
 COMMAND = Let XScreenCommand = '';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND = ++FIXBYNAMEPROC89;
 COMMAND = -;
 COMMAND = /FIND NAME #Search;
 COMMAND = If $RESULT = 0: Return;
 COMMAND = If $RESULT > 1:     /Then Let XScreenMessage = 'More than one
#Search, pls be more specific';
 COMMAND = "    Then XEQ PROC BELLPROC136";
 COMMAND = "    Then Let XScreenCommand = ''";
 COMMAND = "    Then Return Jump COMMAND25";
 COMMAND = FOR RES;
 COMMAND = IN MEM DIS;
 COMMAND = Return;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** If the Add doesn't work
***************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++ADDFAIL90;
 COMMAND = -;
 COMMAND = /Let XScreenMessage = 'Add failed, code= S$SNUM E$ENUM  $UCODE, try
again';
 COMMAND = XEQ PROC BELLPROC136;
 COMMAND = Let Function = '';
 COMMAND = Let XScreenCommand = 'ADD';
 COMMAND = Jump DOADD70;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** Update failed
*************************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++UPDATEFAILED95;
 COMMAND = -;
 COMMAND = Let Function = '';
 COMMAND = Let XScreenCommand = 'UPD';
 COMMAND = /Let XScreenMessage = 'Try again, update failed Snum=S$SNUM
Enum=E$ENUM  $UCODE';
 COMMAND = XEQ PROC BELLPROC136;
 COMMAND = Jump MODIFY82;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** Cancel current input
******************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++CANCEL100;
 COMMAND = -;
 COMMAND = CLR REF;
 COMMAND = Let Function = '';
 COMMAND = Let XScreenCommand = '';
 COMMAND = /Let XScreenMessage = 'Input cancelled ';
 COMMAND = XEQ PROC CLEAR73;
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND = ++PRINT105;
 COMMAND = -;
 COMMAND = If $MATCH($KEY,XSCREEN?): /IN ACTIVE CLR THRU PUB DIS #HelpMenu;
 COMMAND = "     Then Let XScreenMessage = 'Menu printed'";
 COMMAND = "     Then  IMPRT ACTIVE FILE A (NOTI QUIET";
 COMMAND = "     Then Let XScreenCommand = ''";
 COMMAND = "     Then Jump COMMAND25";
 COMMAND = If #Search = '' Then Let Search = $KEY;
 COMMAND = If #Search = '' : Let XScreenMessage = 'You haven't specified a
record to print';
 COMMAND = "     Then Let XScreenCommand = ''";
 COMMAND = "     Then Jump COMMAND25";
 COMMAND = If $RECTEST(#Search) < 1 : Let XScreenCommand = '';
 COMMAND = "    /Then Let XScreenMessage = 'Record '#Search' does not exist'";
 COMMAND = "     Then Jump COMMAND25";
 COMMAND = /Let XScreenMessage = '[#Search ] record printed';
 COMMAND = If $FORTYPE > 0: Let Search = '*';
 COMMAND = Let CurrentScreen = $SETFORMAT;
 COMMAND = CLR ACTIVE;
 COMMAND = /WDSE #XScreenMessage;
 COMMAND = -;
 COMMAND = /SET FORMAT #NewScreen1;
 COMMAND = /IN ACTIVE CON USING INPUT.OUT DISPLAY #Search;
 COMMAND = /SET FORMAT #NewScreen2;
 COMMAND = /IN ACTIVE CON USING INPUT.OUT DISPLAY #Search;
 COMMAND = IMPRT ACTIVE FILE A (NOTI QUIET;
 COMMAND = Jump PRINT107;
 COMMAND = -;
 COMMAND = ++PRINTSCR5;
 COMMAND = SET MESSAGE 4;
 COMMAND = /IN ACTIVE CON USING INPUT.OUT DISPLAY #Search;
 COMMAND = IMPRT ACTIVE FILE A (NOTI QUIET;
 COMMAND = Jump PRINT107;
 COMMAND = -;
 COMMAND = ++PRINT107;
 COMMAND = /SET FORMAT #CurrentScreen;
 COMMAND = /IN UPDATE  USING INPUT.OUT DISPLAY #Search;
 COMMAND = Let XScreenCommand = '';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** If Break or Attn is hit
***************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++ATTN110;
 COMMAND = -;
 COMMAND = Let Function = '';
 COMMAND = Let XScreenCommand = '';
 COMMAND = "Let XScreenMessage = 'Attention received; type ""END"" to exit'";
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** If the command is for the system
******************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++PASS115;
 COMMAND = -;
 COMMAND = /WITHIN INT #XScreenCommand;
 COMMAND = Return;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** If Break is typed
*********************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++BREAK120;
 COMMAND = -;
 COMMAND = BREAK XEQ;
 COMMAND = Let XScreenCommand = '';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND = ++DEQ124;
 COMMAND = -;
 COMMAND = " CLR REF";
 COMMAND;
 COMMAND = LET XSCREENCOMMAND = '';
 COMMAND = IF $FORTYPE = 0:  LET XSCREENMESSAGE = 'No record to deq';
 COMMAND = "    THEN JUMP COMMAND25";
 COMMAND = DEQ *;
 COMMAND = IF $NO: LET XSCREENMESSAGE = 'Dequeue failed';
 COMMAND = "   THEN JUMP COMMAND 25";
 COMMAND = / LET XSCREENMESSAGE = '$KEY Dequeued';
 COMMAND = /IN UPDATE, USING INPUT.OUT DIS *;
 COMMAND = "   JUMP COMMAND25";
 COMMAND;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** If user tries to remove a record
******************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++REMOVE125;
 COMMAND = -;
 COMMAND = CLR REF;
 COMMAND = Let XScreenCommand = '';
 COMMAND = If $FORTYPE = 0: If #Search = '': Let XScreenMessage = 'No record to
remove';
 COMMAND = "   Then Jump COMMAND25";
 COMMAND = If #Search ~= '': /FIND CONFEREE #Search;
 COMMAND = Then  If $RESULT ~= 1: /Let XScreenMessage = '$KEY not found to
remove';
 COMMAND = "   Then Jump COMMAND25";
 COMMAND = If #Search ~= '': FOR RESULT;
 COMMAND = If #Search ~= '': IN UPDATE, USING INPUT.OUT DIS END = 'Jump
COMMAND25';
 COMMAND = REMOVE *;
 COMMAND = "   If $NO:  Let XScreenMessage = 'REMOVE failed'";
 COMMAND = /  Else Let XScreenMessage = '$KEY removed';
 COMMAND = Else XEQ PROC CLEAR73;
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** If user asks to see indexes
***********************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++SHOW126;
 COMMAND = -;
 COMMAND = / WITHIN INT #XScreenCommand;
 COMMAND = Let XScreenCommand = '';
 COMMAND = Jump MENU15;
 COMMAND = -;
 COMMAND = -;
 COMMAND =
-************************************************************************;
 COMMAND = -******** If user asks to TYPE, show the native SPIRES record
***********;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++TYPE127;
 COMMAND = -;
 COMMAND = / THRU NOFORMAT WITHIN INT #XScreenCommand;
 COMMAND = Let XScreenCommand = '';
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND = -;
 COMMAND = "   THEN JUMP COMMAND25   THEN JUMP COMMAND25";
 COMMAND;
 COMMAND;
 COMMAND =
-************************************************************************;
 COMMAND = -******** If user asks to transfer a record
*****************************;
 COMMAND =
-************************************************************************;
 COMMAND;
 COMMAND = ++TRANSFER128;
 COMMAND;
 COMMAND = "   -";
 COMMAND = "   CLR REF";
 COMMAND = "   LET XSCREENCOMMAND = ''";
 COMMAND = "   IF $FORTYPE = 0: IF #SEARCH = '': LET XSCREENMESSAGE = 'No record
to transfer";
 COMMAND = "   THEN JUMP COMMAND25";
 COMMAND = "   IF #SEARCH ~= '': /FIND $RESNAME #SEARCH";
 COMMAND = "   THEN  IF $RESULT ~= 1: /LET XSCREENMESSAGE = '$KEY not found to
remove'";
 COMMAND = "   THEN JUMP COMMAND25";
 COMMAND = "   IF #SEARCH ~= '': FOR RESULT";
 COMMAND = "   TRA * CLEAR";
 COMMAND = "   IF $NO:  LET XSCREENMESSAGE = 'Transfer failed'";
 COMMAND = "   -";
 COMMAND;
 COMMAND = "   ..x";
 COMMAND = " ; unix command";
 COMMAND = "   UPD";
 COMMAND = "   IF $NO:  LET XSCREENMESSAGE = 'Update failed'";
 COMMAND = "   ELSE LET XSCREENMESSAGE = $KEY' updated'";
 COMMAND = "   ELSE IN UPDATE, USING INPUT.OUT DIS *";
 COMMAND = "   JUMP COMMAND25";
 COMMAND = "   -";
 COMMAND =
-************************************************************************;
 COMMAND = -******** If user asks to browse
     ***********************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++BROWSE130;
 COMMAND = -;
 COMMAND = /WITHIN INT #XScreenCommand;
 COMMAND = Let XScreenCommand = '';
 COMMAND = Jump MENU15;
 COMMAND = -;
 COMMAND = -******************** Explain procedure
*******************************;
 COMMAND = -;
 COMMAND = ++EXPLAINPROC132;
 COMMAND = -;
 COMMAND = /WITHIN INT #XScreenCommand;
 COMMAND = Let XScreenCommand = '';
 COMMAND = Return;
 COMMAND = -;
 COMMAND = -**************************GET BINLIST OR INST INFO
********************;
 COMMAND = -;
 COMMAND = ++GET133;
 COMMAND = -;
 COMMAND = If $MATCH($CAP(#Search),NAME?): SET PATH BINS;
 COMMAND = "        Else Jump GET134";
 COMMAND = /  FIND #Search;
 COMMAND = If $RESULT = 0:/ Let XScreenMessage = '#Search not found';
 COMMAND = "   Then Let XScreenCommand = ''";
 COMMAND = "   Then SET PAT";
 COMMAND = "   Then XEQ PROC BELLPROC136";
 COMMAND = "   Then Jump COMMAND25";
 COMMAND = If $RESULT > 1: Jump GET133.1;
 COMMAND = IN MEM, TYPE;
 COMMAND = SET PAT;
 COMMAND = IN UPDATE,  USING BINLOAD.OUT NODATA DISPLAY;
 COMMAND = Let XScreenCommand = 'ADD';
 COMMAND = Let XScreenMessage = 'Edit the record, press ENTER/Return to ADD';
 COMMAND = Jump CREATE65;
 COMMAND = -;
 COMMAND = ++GET133.1;
 COMMAND = -;
 COMMAND = WITHIN INT, TYPE;
 COMMAND = Let XScreenMessage = 'More than one record found, pls be more
specific';
 COMMAND = Let XScreenCommand = '';
 COMMAND = XEQ PROC BELLPROC136;
 COMMAND = SET PAT;
 COMMAND = Jump COMMAND25;
 COMMAND = -;
 COMMAND;
 COMMAND;
 COMMAND = ++GET134;
 COMMAND = If $MATCH($CAP(#Search),ADDR?): SET PATH INST;
 COMMAND = "        Else Jump COMMAND25";
 COMMAND = /  FIND #Search;
 COMMAND = If $RESULT = 0:/ Let XScreenMessage = '#Search not found';
 COMMAND = "   Then Let XScreenCommand = ''";
 COMMAND = "   Then SET PAT";
 COMMAND = "   Then XEQ PROC BELLPROC136";
 COMMAND = "   Then Jump COMMAND25";
 COMMAND = If $RESULT > 1: Jump GET134.1;
 COMMAND = IN MEM, TYPE;
 COMMAND = SET PAT;
 COMMAND = IN UPDATE,  USING INSTLOAD.OUT NODATA DISPLAY;
 COMMAND = Let XScreenCommand = 'ADD';
 COMMAND = Let XScreenMessage = 'Edit the record, press ENTER/Return to ADD';
 COMMAND = Jump CREATE65;
 COMMAND = -;
 COMMAND = ++GET134.1;
 COMMAND = -;
 COMMAND = WITHIN INT, TYPE;
 COMMAND = Let XScreenMessage = 'More than one record found, pls be more
specific';
 COMMAND = Let XScreenCommand = '';
 COMMAND = XEQ PROC BELLPROC136;
 COMMAND = SET PAT;
 COMMAND = Jump COMMAND25;
 COMMAND =
-************************************************************************;
 COMMAND = -******** End the program
***********************************************;
 COMMAND =
-************************************************************************;
 COMMAND = -;
 COMMAND = ++FINDRECORD135;
 COMMAND = -;
 COMMAND = "; Find the record and establish record";
 COMMAND = /FIND CONFEREE #Search;
 COMMAND = FOR RESULT;
 COMMAND = IN NULL, USING INPUT.OUT DISPLAY;
 COMMAND = Return;
 COMMAND = -;
 COMMAND = ++BELLPROC136;
 COMMAND = -;
 COMMAND = EVAL $GETAREA(CRT,BELL);
 COMMAND = Return;
 COMMAND = -;
 COMMAND = ++END140;
 COMMAND = -;
 COMMAND = BLANK CRT EXTERNAL;
 COMMAND = SET WRITE;
 COMMAND = SET PATH;
 COMMAND = CLR REF;
 COMMAND = If $FORTYPE > 0: ENDF;
 COMMAND = ";DEALLOCATE PEOPLE:BINLOAD";
 COMMAND = ";DEALLOCATE LIRYG:INSTLOAD";
 COMMAND = SET MESSAGES 2;
 COMMAND = - SET MESSAGES 4;
 COMMAND = CLEAR FORMAT;
 COMMAND = CLEAR GLOBAL FORMAT;
 COMMAND = SET STOP;
 COMMAND = Return;
 DEFDATE = 11/04/94;
 MODDATE = 11/04/04;
 MODTIME = 13:09:36;
 MODACCT = LI.SUL;
 SUBJECT = CONVERTED;
;
addupd;
 NAME = CONF.HELP.MENU;
 COMMAND = "    You may issue the following commands from the command line:";
 COMMAND = "       END or QQ - To EXIT the SCREEN input system";
 COMMAND = "       FIND x x  - To search (if you know the search term desired)";
 COMMAND = "       AND, etc. - Use AND, OR, AND NOT, and BACKUP to revise your
search";
 COMMAND = "       SHOW x    - SHO INDEXES, SHO ELEMENTS, SHO FILESIZE, SHO
SEARCH";
 COMMAND = "       BROWSE x  - To review contents of any index. BRO AUTHOR, BRO
PUB";
 COMMAND = "       SEQuence  - To sort your result. SEQ NEG sorts by negative
No.";
 COMMAND = "       ADD       - To add a new record";
 COMMAND = "       CLONE     - Use old record on screen as basis for new
record";
 COMMAND = "       FIX       - Get ready to change the record on the screen";
 COMMAND = "       CANCEL    - Cancels current ADD or CLONE or FIX";
 COMMAND = "       REMOVE    - To completely discard the record on the screen";
 COMMAND = "       MENU      - To return to this menu";
 COMMAND = "       PRINT     - Print the screen(this is how you print the help
scrn)";
 COMMAND = "       BINLIST n - To look up name, bin, etc. for SLAC staff";
 COMMAND = "       CMS or CP - Prefix any non-SPIRES command (like TELL)";
 COMMAND = " SAMPLE COMMANDS: FIND DATE 1990, FIND DATE > 6/90, FIN PLACE
PARIS,";
 COMMAND = "                  AND DATE 1990, BACKUP, FIN TITLE LEPTON AND DATE
1989,";
 COMMAND;
 DEFDATE = 02/19/87;
 MODDATE = 06/26/90;
 MODTIME = 00:43:02;
 MODACCT = ADDIS ;
;
addupd;
 NAME = X;
 COMMAND = !set nolist noecho;
 COMMAND = -$SUBJECT uspires utility;
 COMMAND = - foreign site will call xedit, htp 2007
 COMMAND = - changed call to unixedit to include -C. xe alone now gets GUI;
 COMMAND = -    version on X-terminals.  lxa, 4/24/97;
 COMMAND = - added call to 'ss' (Paul Raines script which preserves;
 COMMAND = - contents of screen on NCD terminals in Solaris on return from xe);
 COMMAND = -   lxa, 8/24/97;
 COMMAND = - moved ss to ~slaclib/bin/ss which is still in nfs, 7/25/98, lxa;
 COMMAND = -   When copied to foreign site, will work if 'xe' is a command;
 COMMAND = if $size($ASK) = 0: let myactive = $syseval(prefix);
 COMMAND = "     else let myactive = $ASK";
 COMMAND = "let ss = 'xedit'";
 COMMAND = if $match($syseval('env:host'),sunspi?): let ss =
'/u/li/slaclib/bin/ss xe -C';
 COMMAND = / % #ss #myactive;
 COMMAND = return;
 DEFDATE = 12/22/96;
 MODDATE = 12/16/99;
 MODTIME = 11:35:58;
 MODACCT = LI.ADD;
 SUBJECT = USPIRES UTILITY;
