dillon@CORY (Matt Dillon) (10/23/86)
I *Finally* got BCPL redirection working right. Also contains
various bug fixes. Again, if you want the source just drop me a note.
Unless a thousand bugs popup, this will be the last major revision until
1.2 becomes established.
-Matt
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
# instructions.txt
# NOTES.txt
# examples.txt
# shell.uue
# This archive created: Wed Oct 22 23:52:26 1986
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'instructions.txt'" '(17742 characters)'
if test -f 'instructions.txt'
then
echo shar: "will not over-write existing file 'instructions.txt'"
else
cat << \!Funky!Stuff! > 'instructions.txt'
INSTRUCTIONS FOR SHELL 2.03
(A) Compiling
(B) Overview
(C) Quicky tech notes on implimentation.
(D) Command pre-processor
(E) Command-list
(F) special SET variables
(G) example .login file.
(A) COMPILING:
NOTE: An executable is provided as compilation instructions are
difficult AND because there is a good change this version will not
compile correctly using Manx. For you Manx hackers: Beware the
C/Assembly interface when you convert. There is also a good chance
you will not have the latest version of MY.LIB.
This version of my shell MUST be compiled with Lattice. You must use
the Provided Startup Module rather than Lstartup.obj or Astartup.obj.
The startup module is equivalent to Astartup.obj except that I have added
a little code at the beginning to save the BCPL startup state.
Link using the provided startup module and the following libraries in
this order:
MY.LIB AMIGA.LIB LC.LIB
MY.LIB is my own library which has been posted (but feel free to ask
me to send it to you if you haven't got it).
lc1 -i$incdir/ -i$incdir/lattice/ $y
lc2 -s -v $y
where $incdir is the include directory for C, and '$y' stands for
each .C file. At this point you have nothing but object modules and
must now link them together:
NOTE: you MUST use the LC2 options.
a/blink c.o+main.o+...+run.o library $libdir/my.lib+$libdir/amiga.lib+$libs+$libdir/lc.lib to ram:shell
NOTE: c.o is provided, do not use standard startups (I said this
above)
Executable Size should be around 30K.
(B) OVERVIEW:
PROBLEMS
-None that I know of. Note that you should not redirect the RUN command.
to redirect the command the RUN command is running, embed a standard
CLI redirection in the command string:
RUN ">file" command
OVERVIEW of the major features:
-simple history
-redirection
-piping
-command search path
-aliases
-variables & variable handling (embedded variables)
-file name expansion via '?' and '*'
-conditionals
-source files (w/ gotos and labels)
-many built in commands to speed things up
NEW FEATURES IN 2.03. Thanks to Steve Drew who suggested a '_path'
variable. The other difference with this version is that BCPL
output redirection works properly. Additionaly, alias loops are
detected (this is what is known as a hack).
NEW FEATURES IN 2.02. I would like to thank Dave Wecker and Steve Drew
for their numerous comments on the previous version of my shell.
-Return code and error handling
(A) retrieve return code
(B) Manual or Automatic error handling.
-Control C-F now passed to external commands.
-can execute shell jvkelley@watdragon.UUCP (Jeff Kelley) (10/25/86)
Matt's posting of his latest shell got chopped after the first hundred
lines or so here. Could someone please e-mail me a copy?
Thanks, Jeff Kelley
{...!ihnp4!watmath!watdragon!jvkelley}