home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / zsus / z3help / l.lbr / LSH.HZP / LSH.HLP
Encoding:
Text File  |  1991-11-18  |  14.3 KB  |  280 lines

  1. ;
  2.                                     LSH.COM                                   
  3.  
  4.              Size (recs) CRC   Version    Author/Latest Issue      Disk
  5. LSH10.3OM      8k (59)   FFE8  1.1        Rob Friefeld 8/91        Z3COM11
  6. LSH10.4OM      9k (68)   9256  1.1        Rob Friefeld 8/91        Z3COM11
  7.  
  8.   1- Usage  2- Commands  3- Configuration  4- Error Messages  5- Notes        
  9.  
  10.    Log SHell is  a screen oriented command line editing shell.   Its interface
  11. may  be toggled between  a normal  blank line  with system prompt  and  a full 
  12. screen text editor.  Command lines are saved in an ordinary text file, limited
  13. in size by disk capacity.  On callup, LSH reads the named log into the editor,
  14. and the user  can then  enter new command lines  or move among ones already in 
  15. the log.   On  a carriage return, LSH loads the current line into the multiple
  16. command line buffer and returns to ZCPR 3.3.
  17.  
  18.    LSHINST.COM  installs  the  program  defaults  and  control  key  bindings.
  19. HELPLSH.COM displays a help screen when run from LSH.
  20. :1
  21.    Syntax   LSH [logfile] [/C]
  22.  
  23.    Install LSH shell using the log  file specified.   The default type is CMD.
  24. If no DIR is specified,  the file is searched for in the  current DIR, then in
  25. LSH's  DIR.   If the file is  not  found,  and  no  DIR  is named, the file is
  26. created in LSH's DIR.  If no log  file is  specified,  LSH.CMD is the default.
  27. [The default name is LSH's current name.   If you rename the program to X.COM,
  28. the default log file becomes X.CMD.]
  29.  
  30.    As LSH is distributed,  you can't load a log file with a blank type because 
  31. LSH will look for a file with the default type.   If that is a problem, change 
  32. the default type to blanks.  Examples:
  33.  
  34.      LSH                 Start LSH with LSH.CMD.
  35.      LSH /C              Run LSH once, without invoking the shell.
  36.      LSH WORK            Use WORK.CMD in current DIR if it exists,
  37.                          else use or create it in LSH's DIR.
  38.      LSH FOO:WORK        Use or create WORK.CMD in FOO: directory.
  39.      LSH FOO:MY.LOG      Open specific file type.
  40.  
  41.                       >>> LSH 1.1 CONTROL LIST <<<
  42.  
  43.   ESC  LEAD-IN KEY #1         Z  Last Screen            ^KY  Clear Q         
  44.     K  LEAD-IN KEY #2         G  Delete Char             ^B  Duplicate Line  
  45.     Q  LEAD-IN KEY #3       DEL  Delete Left              O  Old Line Search 
  46.     P  LEAD-IN KEY #4         T  Delete Word Rt       ESC O  Toggle Direction
  47.    CR  ENTRY KEY              -  Delete Word Lt           L  Recall Next Line
  48.     H  Backspace              Y  Delete Line          ESC L  Auto Line Recall
  49.     S  Char Left            ^QY  Delete to EOL        ESC S  Toggle Save     
  50.     D  Char Right             -  Delete Command       ESC Q  Quit Shell      
  51.     E  Line Up                N  New Line             ESC [  Toggle Mode     
  52.     X  Line Down              V  Insert/Overwrite     ESC C  Warm Boot       
  53.     F  Word Right             U  Undelete             ESC M  Shell Pause     
  54.     A  Word Left            ^QU  Unchange Line        ESC T  Text Lines/ Time
  55.     J  Line End/ Start        -  Control Key            TAB  Repeat Token #  
  56.   ^QD  Line End             ^KZ  Clear to EOF           ^PZ  Set Place Mark  
  57.   ^QS  Line Start           ^KB  Yank Line to Q         ^QZ  Go To Next Mark 
  58.     R  Up Screen            ^KK  Yank & Kill Line       ^KH  Clear Markers   
  59.     C  Down Screen          ^KV  Insert Q & Clear      HOME  Complete Name   
  60.     W  First Screen         ^KI  Insert Q             ESC J  HELP (Run Cmd)   
  61.  Unchange Line:   ^QU
  62. Current line is restarted.  Does not work after line is deleted.
  63.  
  64.  Undelete:   ^U
  65. Recover the last "delete line", "delete to end of line", or token command
  66. at cursor position.
  67.  
  68.  Repeat Token:   TAB n
  69. TAB TAB   Put text from cursor to EOL into delete buffer.  Recover it with ^U.
  70. TAB 1..9  Put token #n into delete buffer and also enter it at cursor.
  71.  
  72.  Queue: 
  73. Use the queue to re-organize the history file by picking up lines one by one
  74. in the order you want them, then unloading the queue.
  75.  
  76.  Duplicate Line: 
  77. A single key-stroke duplicates the current line.  This command may be
  78. installed to automatically replace the first token (command verb) with GO.
  79.  
  80.  User Command:   ESC U
  81. Execute a user patch.  You may write a custom routine to toggle the
  82. printer, manipulate the terminal, etc.
  83.  Command Completion 
  84.  
  85.    Idea taken from PCED:   When completing the first token  on the line,  only
  86. .COM types are matched  (along the path),  and  a  trailing space is appended.
  87. Then you are immediately ready to add command arguments.  For example:
  88.  
  89.      c<COMMAND COMPLETE>
  90.      cl <AGAIN>
  91.      crunch
  92. then...
  93.      crunch f<COMMAND COMPLETE>
  94.      crunch foo.com<AGAIN>
  95.      crunch foo.z80
  96.      
  97.    Command Complete now recognizes "=" and ","  as  token  separators,  so  it
  98. works on argument lists and for  CP,  REN,  etc.   It also now  handles  lines
  99. starting with ":" or "." to force search of current directory on first token.
  100. :2 :LSH-C
  101. :3
  102.  Configuration - 1/3 
  103.  
  104.    Initial states of the toggles, default log file type,  prompt delay, number
  105. of records of the log  to read,  initial text lines,  and entry key can be set
  106. with  LSHINST.COM  or ZCNFG 1.3 (by A. E. Hawley)  and  LSH.CFG.   A  terminal
  107. specific  "clear to end of screen" string  may  also be installed  if desired.
  108. The editor control key bindings can only be installed with LSHINST.
  109.  
  110.                                 LINE SEQUENCING
  111.  
  112.    The automatic line  sequencing  command can be  configured to return to the
  113. same line rather than go to the next line.  This cannot be toggled within LSH,
  114. but must be configured with LSHINST.
  115.  Configuration - 2/3 
  116.  
  117.                                  USER ROUTINE
  118.  
  119.    A small user's routine can be installed in a 32 byte patch area.   The code
  120. there is run when the User Patch key is pressed.   The patch must end with RET
  121. if LSH is to keep running.  All registers are available for your use.
  122.  
  123.    Code can be assembled to an object file and overlayed on  LSH  with  BCOMP.
  124. The patch area is surrounded by "USR> ..patch..  <USR" markers.   You can also
  125. enter hex code directly with LSHINST.
  126.  
  127.    The patch could be used to send a terminal or printer init string.  Another
  128. possibility is a system  specific  patch to  turn  the printer on and off.  It
  129. does not work to use the usual ^P because the editor does not input characters
  130. via BDOS function 2.  (Embedding ^P in a command line does not work either.)
  131.  Configuration - 3/3 
  132.  
  133. ; Sample printer toggle user routine
  134.  
  135. dospat      equ  0d628h     ; Printer toggle location (in my DOS, not yours!)
  136.  
  137. patch:    ld   a,(dospat)    ; Get state
  138.           cpl                ; Flip it
  139.           ld   (dospat),a    ; Store it
  140.           ld   e,7           ; Beep
  141.           ld   c,2           ; Char out
  142.           jp   5
  143.  
  144.     if ($-patch) gt 32
  145. *** TOO BIG ***
  146.     endif
  147.           end
  148. :4
  149.  Error Messages  - 1/2 
  150.  
  151. MEM OVFL:        - There is not enough  TPA to hold the log  file.   Solution:
  152.                    reduce the default READ RECS (LSHINST item 1.1.1).  If your
  153.                    system has a very small TPA, use the Type4 version of LSH.
  154.  
  155. STACK FULL:      - The shell stack is either  non-existent or  full.   In  the
  156.                    latter case, pop something off the stack, then try again.
  157.  
  158. LOG?             - The log file in use can't be found (erased, disk changed).
  159.  
  160. NAME?            - The log file specification must be UNambiguous.
  161.  
  162. TCAP?            - The editor couldn't find needed support in your TCAP entry.
  163.  
  164. R/W ERR:         - On reading, attempt to read past end of file without  find-
  165.                    ing a 1AH text terminator.  On writing, disk full.  A hard-
  166.                    ware error gives this message for either operation.
  167.  Error Messages - 2/2 
  168.  
  169. [One condition that LSH does  NOT  complain about is a text line that is not a
  170. command line:  comments,  titles,  etc.   To insure that the command processor
  171. doesn't try to run them, start them with ";" or with NOTE.]  
  172. :5
  173.  LSH Notes - 1/6 
  174.  
  175.    a. System Requirements:
  176.       ZCPR 3.3 with external FCB,  shell stack,  TCAP.  Shell stack entry must 
  177.       be at least 32 bytes (standard).   Performance with a hard disk is good, 
  178.       with a RAM disk is excellent.
  179.  
  180.       [ In addition to its own name,  LSH uses the stack entry to keep part of
  181.       the fcb for its log file,  a save  to disk flag,  a command pointer, the
  182.       number of text lines to display,  the insert/overwrite toggle,  a string
  183.       search direction flag,  the current mode (screen oriented or line),  and
  184.       the command execution key.  When another shell is run on top, the entire
  185.       entry must be  pushed down in  the shell stack,  then moved up  when the
  186.       application is popped.  As far as I know,  all programs which use SYSLIB
  187.       will do this.  I have only tested it with ZFILER and EASE. ]
  188.  LSH Notes - 2/6 
  189.  
  190.    b. Security:  
  191.       The only  built-in  security  feature is  a check of the  DUOK  flag for
  192.       system prompts.   Wheel status is not required.   [Those concerned  with
  193.       system security should configure the command processor accordingly.]
  194.  
  195.    c. The editor  is intended to be comfortable to use for those familiar with 
  196.       VDE  or WordStar.   There  are  several  minor  differences  in  control 
  197.       function  from VDE which will become immediately evident.   Mostly,  the 
  198.       variations save  key strokes  and/or code.   The LSH  editor puts cursor 
  199.       mobility ahead of text alteration.  
  200.  
  201.    d. Fixed Log Version:   
  202.       There is now a separate version of LSH which uses  a  fixed size history
  203.       file.   Its purpose is to speed up operation on floppy  disks,  or  even
  204.       hard disks,  by allowing you to place the history file on the outer disk
  205.       tracks  (i.e. it will be one  of  the  first files on the disk) and know
  206.       that it will STAY there.   The Variable Log  version keeps adding to the
  207.       history indefinitely,  so you will eventually end  up  reading  from the
  208.       inner tracks.
  209.  LSH Notes - 3/6 
  210.  
  211.       - A new history file,  or an old  one  which is shorter than the nominal
  212.       length, is padded to the full size.   When the history is full, only the
  213.       end of the file is written to disk.   You lose the first  command lines.
  214.       - The file size is installed  with  LSHINST.   The  distributed  version
  215.       reserves 4k, but 2k may be all you need.
  216.       - CAUTION:   If you edit a history file  independently,  the text editor
  217.       will probably truncate it.   However, if LSH runs immediately afterward,
  218.       it will pad the file back out to its  reserved length  when  you execute
  219.       the next command.
  220.  
  221.    e. Vs 1.1 updates (8/25/91, Rob Friefeld):
  222.       - In previous versions,  the line editor would warm boot on ^C.   Vs 1.1
  223.         warmboots  (in  Line Mode  only)  when  the  "screen down"  command is
  224.         pressed.  That is still ^C for a WordStar-like installation, but could
  225.         be something else after running LSHINST.   You can also get a warmboot
  226.         using ESC C, just as for Screen Mode.   (This change is a  side effect
  227.         of some consolidation of the two editors.)
  228.       - Vs 1.1 does not rely on the integrity of alternate regs across  a call
  229.         to CIN.
  230.  LSH Notes - 4/6 
  231.  
  232.       - The DUOK flag is checked before displaying prompt.
  233.       - Terminal installation has been removed.   The full screen divider line
  234.         is now drawn with a call to VLIB routine GHBAR,  if available.   (This
  235.         one routine added almost 3 records to LSH.  Worth it?)
  236.       - LSH is coded to run safely as  Type3  or  Type4  under ZCPR3.4.   Those 
  237.         running ZCPR3.3 need to patch the first byte of the  Type 3  version to
  238.         C3h (JP),  rather than C7h (RST 0).   No Type 1 version is distributed.
  239.         I will be happy to assemble one for anyone who needs it.
  240.       - Screen mode now obeys the  CLS  flag  setting  when  a line is executed
  241.         with shell pause.
  242.       - Command  Complete and  Token  Repeat  control  bindings  are no longer
  243.         required to be single keys.  It is OK to use meta-key/key combinations
  244.         now.
  245.       - A half dozen small bugs were fixed.
  246.       - A new ZERRLSH, the error handler which corrects LSH's history file, is
  247.         needed for the  Fixed Log  version.   I also recommend the newer error
  248.         handler for the variable log version.   It signs on as  ZERR+LSH,  Vs.
  249.         1.5d.   The error handler part is the same as ZERR 1.5,  only the +LSH
  250.         part is new.
  251.  LSH Notes - 5/6 
  252.  
  253.    f. Vs. 1.0r updates:
  254.       -- The state of the recording toggle is now displayed continuously.
  255.       -- Optional terminal-specific  strings  are  now 8-bit data headed  by a 
  256.          character count rather than the previous 7-bit, 0-terminated strings.
  257.       -- In LINE mode,  LSH calls CLREOS to clean up dangling line wraps where
  258.          possible.  ^R will also Retype the line now.
  259.       -- A filename completion command,  similar to the one in EASE,  has been
  260.          implemented.   Complete  is  nominally assigned to  HOME key to avoid
  261.          conflict with documentation of Token Repeat (TAB key).   You can bind
  262.          it to TAB,  as EASE does,  if you want to use it  a lot.   Note that,
  263.          since Complete has  to look  back  to  see  what the previously typed
  264.          command was,  Complete and Token Repeat MUST be assigned to  a single 
  265.          control key, NOT a meta-key/control combination.
  266.  
  267.    g. Vs. 1.0q updates:
  268.       -- backspace is now destructive (same as delete key)
  269.       -- new time display routines, with installable option  to  show  time in 
  270.          standout video mode.  Shortened display format.
  271.       -- Queue commands implemented for LINE mode.
  272.  LSH Notes - 6/6 
  273.  
  274.       -- new command:  duplicate line (^B),  which  copies  current  line  for
  275.          modification and re-use.   LSHINST sets flag to allow this command to
  276.          automatically substitute "GO" for the first token on the line.
  277.       -- LINE mode echoes  a CR to show that something has happened  while LSH 
  278.          is busy updating the history file.
  279.       -- numerous bug fixes
  280.