Mercurial > hg > Members > kono > nitros9-code
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- +