comparison 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
comparison
equal deleted inserted replaced
1870:79edc5d44491 1871:054c318eda02
1 This archive should contain:
2 SCF.IPC ----------->Patchfile to create new SCF with Kevin Darling's keyboard
3 editing, Bill Nobel's buffer pre-fill call, and some
4 general optomizations by yours truly
5 SHELL ------------->Version 2.2a of Shellplus with command history (shell is
6 so different in it's current state than the Tandy/
7 Microware original, I see no sense in making it an IPC
8 file... someone correct me if I am wrong)
9 SHELLPLUS2.2A.DOCS->This documentation file
10
11 NOTE: YOU HAVE TO USE THE IPATCH UTILITY TO MAKE A NEW SCF FOR THIS VERSION
12 OF SHELLPLUS TO WORK. IT REQUIRES THE STOCK SCF AND THE IPATCH UTILILITY,
13 AVAILABLE ELSEWHERE.
14
15 Ident of original SCF to patch:
16
17 Header for: SCF
18 Module size: $05E3 #1507
19 Module CRC: $F946CA (Good)
20 Hdr parity: $0E
21 Edition: $0D #13
22 Ty/La At/Rv: $D1 $81
23 File Man mod, 6809 obj, re-en, R/O
24
25 Ident of new SCF you should end up with:
26
27 Header for: SCF
28 Module size: $06E5 #1765
29 Module CRC: $E551FB (Good)
30 Hdr parity: $0B
31 Edition: $11 #17
32 Ty/La At/Rv: $D1 $81
33 File Man mod, 6809 obj, re-en, R/O
34
35 In 1992 or 1993, a version of ShellPlus (V2.2) had a limited release that
36 contained command history (being able to scroll forwards or backwards through
37 that last few lines that have been typed in the shell. It used Bill Nobel's
38 modified SCF (which includes Kevin Darling's line editing patches as well) &
39 worked by temporarily modifying the ABORT & INTERRUPT keyboard signals to be
40 up & down arrows. (It then used the signals generated by the 2 arrow keys to
41 go forward or backwards through the command history buffer, even if you were
42 in the middle of typing a line.) Once you hit <ENTER>, it switched the signals
43 back to normal, and then processed the line (thus, if you were running a
44 program, you could still <CTRL>-<C> or <E> out of it). One small problem it
45 had, though, was that if you DID break out of a program, when it came back to
46 the shell it still had the <CTRL>-<C> or <E> sitting in the keyboard buffer.
47 Since the first thing ShellPlus V2.2 did was reset those keys, the real
48 <CTRL>-<C> / <E> sitting in the buffer got printed as an illegal OS-9
49 character ('.'), so you always had a period sitting as the first character on
50 your new shell prompt line.
51 I went in and attempted to fix this just after I got this version of
52 ShellPlus, and did so with partial success. I eliminated the period, but
53 caused a new bug that if you forking sub-shells and using <CTRL>-<C>/<E> at 2
54 or more levels down a Fork chain (ex. doing a '$dir' from BASIC09 ends up
55 being 2 levels deep), it crashed all shells running on the machine. So, this
56 version wasn't released.
57 Just recently I finally figured out how to fix it, and did. To
58 differentiate between the two versions, mine is called ShellPlus V2.2a.
59 While it could have been done without it, this version requires a new SCF,
60 that has an extra option added onto Bill Nobel's keyboard buffer filling
61 SetStat call. If the high bit of Y is set, a carriage return will NOT be
62 appended automatically to the keyboard buffer. This SCF also contains some
63 minor speed optomizations in other parts of the code as well, so even if you
64 don't use Shell+, it should be worth your while.
65 NOTE!!!!!
66 There was a small bug in the original buffer filling call- it didn't bother
67 to check the size of the buffer you specified in Y before it tried to copy
68 it... a large value would crash the machine. Since Shell+ V2.2A REQUIRES the
69 new high-bit Y version of SCF's buffer filling call, it will CRASH an old SCF
70 machine as soon as you try to abort (with <CTRL>-<E>, <CTRL>-<C> or <BREAK>)
71 any program you run from the shell. MAKE SURE YOU INSTALL THE NEW SCF BEFORE
72 INSTALLING SHELLPLUS V2.2A!
73 Shell+ V2.2A also fixes some bugs in Shell+2.1/2.2:
74 1) It opens Directories (for CHD/CHX/CD/CX) in READ mode instead of UPDATE
75 (according to the manual, these will be slightly faster) since none of those
76 shell commands write to the directories.
77 2) The ^ option (for setting priority just for the command line you are
78 typing) now works. The original should have worked, but for some reason
79 didn't. I think it had something to do with trying to change the priority of
80 a module just after it was forked; maybe it hadn't been 'fully' forked by the
81 time the priority was to change. I modified Shell+ to set itself to the new
82 priority, fork the process, and then immediately set itself back to normal.
83 3) If a ShellSub module was linked (see ShellPlus V2.1 docs), it didn't
84 unlink it properly, due to to statements being backwards in the original
85 source. This has now been fixed.
86
87 For those of you running NitrOS9, the new version 1.20 upgrade will include
88 this shell, and has an even more extensively optomized SCF (see NitrOS9 docs
89 for details)
90
91 -L. Curtis Boyle, Aug. 20, 1994-
92