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