home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ENTERPRS
/
CPM
/
UTILS
/
A
/
CCP105P.ARC
/
CCP105.NOT
< prev
next >
Wrap
Text File
|
1986-10-17
|
5KB
|
108 lines
Mike Kersenbrock
Sept 1986
Aloha, Oregon
USENET: tektronix!copper!michaelk
Version 1.05 incorporates the following features (over and above 1.04):
1. Provides a built-in history mechanism similar to that in
Berkeley-Unix's CSH ("sea-shell"). Included is a built-in
command "h" that diplays the history. See beginning of
"history.doc" for more details.
This mechanism does not store command lines that start with either
a leading ":" or a leading space (" "). Submit files can be edited
to have leading spaces in each line if it is desired that submit-file
internals not be individually saved in the history.
The history database is saved on the "temporary disk" as set by
setdef. A separate history is used for each user-space.
Use with my RAMDISK results in no visible operational delay. Delay
is quite noticeable with a floppy, but may be acceptable (esp. with
fast and/or cached floppies).
This mechanism is totally within the CCP and the temporary disk, and
therefore, does NOT reduce the available TPA memory space
(as an RSX might do).
2. Provided detached enhancement ability. An additional routine can be
executed just before the history routine. If a file named
"CCP.EXT" exists on the "temporary disk" (set by setdef), then for
each command line processed by CCP, that routine is loaded to
address 6000 (hex) and "called". See History.doc and/or code
for more details. If register HL is returned NOT-ZERO, then
the history mechanism is turned off for "this" command.
The intended purpose of this "hook" is to allow a HLL or MLL
routine to be written for easy enhancements. The language in
mind is "C", and an example test case has been provided in the
distribution ("CCPEXT.C"). My temp disk is a 720K RAMDISK, and with
that, there is no noticeable delay caused by the loading of this
enhancement file "each time".
The author intends to purchase an AMIGA later this year, so
these enhancements may not come to pass (then why did he
do any of these enhancements? -- good question -- probably habit).
3. Provided a conditional assembly flag that will "fix" CP/M Plus's
handling of lines that start with a colon. "With" the fix,
the "return code" is NOT reset with every command line executed,
but IS reset upon cold boot.
The purpose of this is to allow this author's port of the
"Aussie Make" to properly terminate make-execution upon
an step-wise error.
My MAKE "works" by creating a submit file, then chaining
to it (the submit file's last command deletes itself).
In my USENET distributed version, the "-i" option puts a
colon in front of each command (my current private-version inverts
the sense of "-i" back to "normal", and puts spaces in front of each
command to keep them out of the history, don't know if it is worthwhile
distributing this again for these changes).
Using this "fixed" CCP, MAKE works like this:
a) Just before the chaining, MAKE resets the CP/M
return status to zero.
b) The chained-to command file executes commands as required
to bring the files up to date.
c) If an error happens, then the return status is "set",
and all the rest of the submit-file commands are not
executed (because of the leading colon).
The difference with the non-fixed version, is that only the NEXT
submit file command would be skipped, rather than ALL of them as
in the "fixed version".
For this to work, one's compilers, linkers, assemblers, etc need
to set the return-status upon error. I have included in my
distribution, several RSX examples -- the ones I use on several
of my software tools -- that cause my software to set the
return-status. They should be easy to modify for "your" tools.
4. I reinstituted the conditional-assembly flag that when used,
makes the user NOT be in the prompt when the user number
is ZERO. This author doesn't use non-0 user spaces,
and likes a "non-busy" prompt. Set the other way, the original
code is reinstituted, so there shouldn't be a problem with other
people's builds.
5. With these features, the CCP remains less than 4K (albeit, getting
close).
6. Quite a few auxillary files are included into the distribution
for development use. Some may be useable "asis", and some should
be useable as templates that can be modified for other systems.
A list of what's what is in the file "files.doc".
the "fixed version".
For this to work, one's compilers, linkers, assemblers, etc need
to set the return-sta