SUBROUTINE USEROPTS(OPTIONS.PASSED) * Name - USEROPTS * Called By - ALL SCREEN PROGS * Description - PRINT RELEVANT SCREEN COMMAND KEYS * Version - 10 Nov 2000 * *<----------------------------------- COPYRIGHT NOTICE -----------------------------------> * Copyright 2000 - code@nineelms.com * * THIS HEADER MUST REMAIN INTACT IN THIS AND ANY CHANGED VERSION OF THIS ROUTINE * * USEROPTS may be used and modified free of charge by anyone so long as this * copyright notice and comments above remain intact. By using this code you * agree to indemnify Nine Elms Solutions Ltd from any liability that may arise from its use. * * Selling the code for this program without prior written consent is * expressly forbidden. In other words, please ask first before you try and * make money off my program. * * Obtain permission before redistributing this software over the Internet or * in any other medium. In all cases copyright and the header must remain intact * *<------------------------------------------------------------------------------------------> * * * OPTION.LINE is the line to be displayed * CHAR.POS is the next character position on OPTION.LINE * COMMAND.TEXT is the requested command * COMMAND.LTH is the length of the command (1 in most cases) PROMPT "" * EQU TILDE TO CHAR(126) EQU BUZ TO CHAR(7), SVM TO CHAR(252), VM TO CHAR(253), AM TO CHAR(254) REVON = '' ;* Set to your own Preference REVOFF = '' ;* Set to your own Preference EOL = @(-4) EOS = @(-3) ESC = CHAR(27) * * Main Routine * NOPTS = LEN(OPTIONS.PASSED) IF NOPTS > 0 THEN OPTION.LINE = '' CHAR.POS = 0 * * Loop through all the requested OPTIONS.PASSED * FOR C = 1 TO NOPTS COMMAND.TEXT = OPTIONS.PASSED[C,1] COMMAND.LTH = 1 * * Set up command PROMPT.NARRATIVE * BEGIN CASE CASE OPTIONS.PASSED[C,1] = 'R' OR OPTIONS.PASSED[C,1] = '{' PROMPT.NARRATIVE = 'NEXT' COMMAND.TEXT = 'RETURN' COMMAND.LTH = 6 CASE OPTIONS.PASSED[C,1] = '<' PROMPT.NARRATIVE = 'BACK' CASE OPTIONS.PASSED[C,1] = '?' PROMPT.NARRATIVE = 'HELP' CASE OPTIONS.PASSED[C,2] = 'FI' PROMPT.NARRATIVE = 'FILE' C = C + 1 COMMAND.TEXT = 'FI' COMMAND.LTH = 2 CASE OPTIONS.PASSED[C,1] = '*' PROMPT.NARRATIVE = 'QUIT' CASE OPTIONS.PASSED[C,2] = 'P#' PROMPT.NARRATIVE = 'PAGE#' C = C+1 COMMAND.LTH = 2 COMMAND.TEXT = 'P#' CASE OPTIONS.PASSED[C,1] = 'N' PROMPT.NARRATIVE = 'NEXT' CASE OPTIONS.PASSED[C,1] = 'F' PROMPT.NARRATIVE = 'PAGE 1' CASE OPTIONS.PASSED[C,1] = '-' PROMPT.NARRATIVE = '-PAGE' CASE OPTIONS.PASSED[C,1] = '|' PROMPT.NARRATIVE = 'DELETE' CASE OPTIONS.PASSED[C,1] = '+' PROMPT.NARRATIVE = '+PAGE' CASE OPTIONS.PASSED[C,3] = 'DIR' PROMPT.NARRATIVE = 'SEARCH' C = C + 2 COMMAND.LTH = 2 COMMAND.TEXT = 'DIR' CASE OPTIONS.PASSED[C,1] = '@' PROMPT.NARRATIVE = 'SELECT' CASE OPTIONS.PASSED[C,1] = '&' PROMPT.NARRATIVE = 'SWITCH' CASE 1 PROMPT.NARRATIVE = '' END CASE * * If PROMPT.NARRATIVE has been set * IF PROMPT.NARRATIVE > '' THEN ENDCOM = CHAR.POS + COMMAND.LTH + 1 OPTION.LINE = OPTION.LINE:@(CHAR.POS,22):REVON OPTION.LINE = OPTION.LINE:@(CHAR.POS+1,22):COMMAND.TEXT OPTION.LINE = OPTION.LINE:@(ENDCOM,22):REVOFF:@(ENDCOM + 1,22):' = ':PROMPT.NARRATIVE CHAR.POS = CHAR.POS + COMMAND.LTH + LEN(PROMPT.NARRATIVE) + 5 END NEXT C CRT @(0,22):EOL:OPTION.LINE:@(79,22):REVOFF: END * * End of Run Procedures * 7000 * RETURN