CHANGES TO SH.COM MADE IN VERSION 2.0 COMMAND-LINE HISTORY AND EDITING The principal change is the addition of a 20-line command history capability. The up- and down-arrow keys, as defined in the TCAP, allow you to move backward or forward through the history list. Several other new commands were added to the input editor. A complete list of commands is: Line editor: ^S or left-arrow key defined in TCAP : move left 1 char ^D or right-arrow key defined in TCAP : move right 1 char ^E : erase to [E]nd of line ^U : delete char [U]nder cursor ^W : delete [W]ord forward ^X : kill entire line, OR EXIT if at beginning of empty line DEL : delete char before cursor TAB : move to end of line, or if at end, to beginning ^A : move to beginning of previous word ^F : move to beginning of next word ^H : delete char before cursor ^Q : [Q]uote next char--insert char literal ^C : reboot if at beginning of line. History control: ^P or up-arrow key defined in TCAP : previous command line ^N or down-arrow key defined in TCAP : next (old) command line. ^R : previous command line (same as up-arrow) Cursor keys are evaluated first, and may override others if they generate a corresponding code. For instance, on '83 Kaypros the backspace key will move left rather than deleting left. Use of CP/M standard line editing keys (^E, ^U, ^R, & ^X) will, it is hoped, reduce other such conflicts. Note that the ^P printer toggle does not work inside this input editor; the keystroke now defaults to another function. As with version 1.1, the line will scroll within a window determined by the screen width of the currently defined CRT device. Up to 127 characters may be entered, and the editor is always in "insert" mode. Unlike the ^R command in version 1.1, recall of a previous command line results in the entire command line being replaced rather than just the portion following the cursor. The command history is kept in a file named SH.HST. This file is placed in the "ROOT" directory or in the directory at the bottom of the path if "ROOT" doesn't exist. Within the file, each command line occupies its own length plus one byte for a trailing null. The entire list of commands is terminated by a ^Z. Since the maximum number of characters per line is 127 and the maximum number of lines is 20, this file will never be more than about 2.5k long. In practice it will generally be quite a bit smaller, and thus will load quite quickly. DELETION OF INTERNAL COMMANDS The three internal commands supported by SH have been deleted in version 2.0. This was done with the expectation that, except for "shexit", they were little used. A new means of exiting--^X in the first position of the line--is now used. Another reason for removal of the internal commands was to save code space. Without these commands, and with other code-compressing changes that have been applied, version 2.0 is only 31 records long. This compares very favorably with version 1.0, which was 28 records, and is much smaller than version 1.1. Reducing the size relative to 1.1 not only saves disk space but also reduces loading time. In compensation for the loss of the internal commands, the SH shell now has considerably greater capabilities, yet retains its basic function of expanding shell variables. On top of this, it is small and fast. Dreas Nielsen 16713 SE 12th St. Bellevue, WA 98008 (206) 746-2782 (voice)