diff docs/shellplus/shellplus2.2a.doc @ 1871:054c318eda02

Added for future incorporation into NitrOS-9 Manual
author boisy
date Mon, 08 Aug 2005 11:48:52 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/shellplus/shellplus2.2a.doc	Mon Aug 08 11:48:52 2005 +0000
@@ -0,0 +1,92 @@
+   This archive should contain:
+SCF.IPC ----------->Patchfile to create new SCF with Kevin Darling's keyboard
+                    editing, Bill Nobel's buffer pre-fill call, and some
+                    general optomizations by yours truly
+SHELL ------------->Version 2.2a of Shellplus with command history (shell is
+                    so different in it's current state than the Tandy/
+                    Microware original, I see no sense in making it an IPC
+                    file... someone correct me if I am wrong)
+SHELLPLUS2.2A.DOCS->This documentation file
+
+   NOTE: YOU HAVE TO USE THE IPATCH UTILITY TO MAKE A NEW SCF FOR THIS VERSION
+OF SHELLPLUS TO WORK. IT REQUIRES THE STOCK SCF AND THE IPATCH UTILILITY,
+AVAILABLE ELSEWHERE.
+
+Ident of original SCF to patch:
+
+Header for:  SCF 
+Module size: $05E3    #1507
+Module CRC:  $F946CA (Good) 
+Hdr parity:  $0E 
+Edition:     $0D      #13
+Ty/La At/Rv: $D1 $81 
+File Man mod, 6809 obj, re-en, R/O 
+
+Ident of new SCF you should end up with:
+
+Header for:  SCF 
+Module size: $06E5    #1765
+Module CRC:  $E551FB (Good) 
+Hdr parity:  $0B 
+Edition:     $11      #17
+Ty/La At/Rv: $D1 $81 
+File Man mod, 6809 obj, re-en, R/O 
+
+   In 1992 or 1993, a version of ShellPlus (V2.2) had a limited release that
+contained command history (being able to scroll forwards or backwards through
+that last few lines that have been typed in the shell. It used Bill Nobel's
+modified SCF (which includes Kevin Darling's line editing patches as well) &
+worked by temporarily modifying the ABORT & INTERRUPT keyboard signals to be
+up & down arrows. (It then used the signals generated by the 2 arrow keys to
+go forward or backwards through the command history buffer, even if you were
+in the middle of typing a line.) Once you hit <ENTER>, it switched the signals
+back to normal, and then processed the line (thus, if you were running a
+program, you could still <CTRL>-<C> or <E> out of it). One small problem it
+had, though, was that if you DID break out of a program, when it came back to
+the shell it still had the <CTRL>-<C> or <E> sitting in the keyboard buffer.
+Since the first thing ShellPlus V2.2 did was reset those keys, the real
+<CTRL>-<C> / <E> sitting in the buffer got printed as an illegal OS-9
+character ('.'), so you always had a period sitting as the first character on
+your new shell prompt line.
+   I went in and attempted to fix this just after I got this version of
+ShellPlus, and did so with partial success. I eliminated the period, but
+caused a new bug that if you forking sub-shells and using <CTRL>-<C>/<E> at 2
+or more levels down a Fork chain (ex. doing a '$dir' from BASIC09 ends up
+being 2 levels deep), it crashed all shells running on the machine. So, this
+version wasn't released.
+   Just recently I finally figured out how to fix it, and did. To
+differentiate between the two versions, mine is called ShellPlus V2.2a.
+   While it could have been done without it, this version requires a new SCF,
+that has an extra option added onto Bill Nobel's keyboard buffer filling
+SetStat call. If the high bit of Y is set, a carriage return will NOT be
+appended automatically to the keyboard buffer. This SCF also contains some
+minor speed optomizations in other parts of the code as well, so even if you
+don't use Shell+, it should be worth your while.
+   NOTE!!!!!
+  There was a small bug in the original buffer filling call- it didn't bother
+to check the size of the buffer you specified in Y before it tried to copy
+it... a large value would crash the machine. Since Shell+ V2.2A REQUIRES the
+new high-bit Y version of SCF's buffer filling call, it will CRASH an old SCF
+machine as soon as you try to abort (with <CTRL>-<E>, <CTRL>-<C> or <BREAK>)
+any program you run from the shell. MAKE SURE YOU INSTALL THE NEW SCF BEFORE
+INSTALLING SHELLPLUS V2.2A!
+    Shell+ V2.2A also fixes some bugs in Shell+2.1/2.2:
+1) It opens Directories (for CHD/CHX/CD/CX) in READ mode instead of UPDATE
+(according to the manual, these will be slightly faster) since none of those
+shell commands write to the directories.
+2) The ^ option (for setting priority just for the command line you are
+typing) now works. The original should have worked, but for some reason
+didn't. I think it had something to do with trying to change the priority of
+a module just after it was forked; maybe it hadn't been 'fully' forked by the
+time the priority was to change. I modified Shell+ to set itself to the new
+priority, fork the process, and then immediately set itself back to normal.
+3) If a ShellSub module was linked (see ShellPlus V2.1 docs), it didn't
+unlink it properly, due to to statements being backwards in the original
+source. This has now been fixed.
+
+   For those of you running NitrOS9, the new version 1.20 upgrade will include
+this shell, and has an even more extensively optomized SCF (see NitrOS9 docs
+for details)
+
+                   -L. Curtis Boyle, Aug. 20, 1994-
+