forked from MirrorRepos/RomWBW
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
308 lines
13 KiB
308 lines
13 KiB
The following is used by permission and remains copyright Randy Winchester.
|
|
===========================================================================
|
|
|
|
ZCCP Documentation, Version 1.0
|
|
by Randy Winchester <randy@mit.edu>
|
|
|
|
ZCCP Features
|
|
|
|
This documentation is provided to assist the user in getting a
|
|
ZCCP system up and running. It is not an exhaustive course on Z-
|
|
System or ZCPR. The following list details which ZCPR features
|
|
are provided with ZCCP, and which ones aren't.
|
|
|
|
* ZCPR 3.3 compatibility. ZCCP can run a wide range of utilities
|
|
an applications created for ZCPR 3.3 and ZCPR 3.4.
|
|
|
|
* TCAP. A Z3T termcap file describing terminal characteristics
|
|
can be loaded into the system. Z-System programs make use of the
|
|
TCAP for output to the screen - a big improvement over the old
|
|
method of patching individual programs with terminal control
|
|
codes. TCAP files are loaded by the ZCCP LOADSEG command.
|
|
|
|
* Named directories. Up to 12 user areas can be assigned names.
|
|
Named Directory Registers (*.NDR files) are loaded by the ZCCP
|
|
LOADSEG command.
|
|
|
|
* Command Search Path. ZCCP will search for commands along a
|
|
user defined search path. Up to six path elements
|
|
(directories) can be defined.
|
|
|
|
* Environment block. Contains TCAP, Named Directory, and Path
|
|
information. Also includes a map of active disk drives and
|
|
other system information. The environment block can be viewed
|
|
with the Z-System SHOW utility.
|
|
|
|
* Flow control. Conditional processing for batch files. Relies
|
|
on Z-System IF.COM for setting the flow state. Other flow
|
|
control commands (FI, ELSE, XIF, OR, AND) are resident.
|
|
|
|
* Multiple commands can be entered on the command line. The
|
|
command line buffer will hold up to 225 characters. Commands
|
|
should be separated by semicolons.
|
|
|
|
* Extended Command Processor. If a command is not a built-in
|
|
flow command, resident command, or located on disk along the
|
|
search path, the command line is passed to an extended command
|
|
processor. A typical extended command processor is ARUNZ, a
|
|
sophisticated batch file executor with alias features. To use
|
|
a program as an extended command processor, rename it to
|
|
CMDRUN.COM and place it in the ROOT directory of your boot disk.
|
|
|
|
* Error handler. In the event that the extended command
|
|
processor can't handle a command, control is passed to an error
|
|
handler. Error handlers give information about the error
|
|
(instead of the useless CP/M "?" message) and allow the command
|
|
line to be edited and reused.
|
|
|
|
* Resident commands. The following commands are built in:
|
|
CLS - clears the screen
|
|
NOTE - text following the NOTE command is treated as a
|
|
comment.
|
|
FI - Flow control: terminate the current IF level
|
|
ELSE - Flow control: toggle the flow state
|
|
XIF - Flow control: exit all pending IF levels
|
|
OR - Flow control: OR IF tests to set flow state
|
|
AND - Flow control: AND IF tests to set flow state
|
|
|
|
* Shell stack. Up to four shell levels can be defined. Z-System
|
|
provides a choice of several different shells. Applications such
|
|
as terminal programs and word processors can also be assigned
|
|
shell status.
|
|
|
|
* ZCCP uses the LOADSEG command for direct loading of RSX files
|
|
that have not been GENCOMed. Example: LOADSEG SAVE.RSX loads
|
|
SAVE.RSX.
|
|
|
|
There are some things that Z3Plus will do that ZCCP won't do.
|
|
|
|
- ZCCP does not support a Flow Command Package (FCP). It relies
|
|
on the transient IF command. Other flow commands (FI, ELSE, XIF,
|
|
OR, AND) are resident in ZCCP.
|
|
|
|
- A Resident Command Package (RCP) is not implemented. CLS and
|
|
NOTE are resident in ZCCP. All other commands must be loaded
|
|
from disk. This isn't as much of a handicap as it might sound
|
|
if you have a fast RAM drive to store frequently used commands.
|
|
|
|
- ZCCP can not load type 4 programs (used with ZCPR 3.4). It
|
|
loads standard COM files at 100H, and type 3 programs that load
|
|
in high memory. Most type 4 programs have type 3 or COM
|
|
equivalents, so this should not be a problem.
|
|
|
|
- ZCCP can not reexecute loaded programs. This trick is usually
|
|
performed on Z-Systems with a GO command that jumps to 100H.
|
|
Since ZCCP also loads at 100H, a GO command would only restart
|
|
ZCCP.
|
|
|
|
ZCCP Files
|
|
|
|
Three files are included in ZCCP.ARK:
|
|
|
|
File name Size Description
|
|
============ ==== ==========================================
|
|
CCP .COM 3k ZCCP replacement for CCP.COM
|
|
LOADSEG .COM 3k Loader for named directories and termcaps
|
|
ZINSTAL .ZPM 1k Segment containing environment information
|
|
|
|
Getting Started - Preparing a Boot Disk
|
|
|
|
Format a system boot disk using the same proceedure that you normally
|
|
would.
|
|
|
|
Copy the files from ZCCP.ARK to user area 0 of the newly
|
|
formatted disk.
|
|
|
|
Copy CPM+.SYS (some systems may use a slightly different name for this
|
|
file) to user 0 of the boot disk. The CPM+.SYS must include the BDOS
|
|
segments from ZPM3. Use the ZPM3 MAKEDOS utility to overlay your
|
|
system file with ZPM3. (Commodore 128 users must generate a new
|
|
system using the ZPM3 BDOS segments. The MAKEDOS utility does not
|
|
work properly on a C128.)
|
|
|
|
Locate a copy of a Z-System alias utility. A good one is
|
|
SALIAS16, although others should work also. Copy it to user 0 of
|
|
the boot disk.
|
|
|
|
At this point, reboot the system with the new system disk. After the
|
|
system boots, you won't be able to do much with it. The only resident
|
|
commands are CLS and NOTE, and ZCCP can only locate commands if they
|
|
are prefixed with the drive and user number.
|
|
|
|
The next step is to create a startup alias. When ZCCP boots, it
|
|
looks for a file named STARTZPM.COM and executes commands from
|
|
it. STARTZPM.COM is created with a ZCPR alias utility. Here is
|
|
a listing of a STARTZPM.COM created with SALIAS:
|
|
|
|
=============================================================
|
|
|
|
A0>SALIAS STARTZPM
|
|
|
|
15: ; Logs the ROOT directory (A15) on the
|
|
; current drive.
|
|
|
|
LOADSEG NAMES.NDR TCAP.Z3T
|
|
; LOADSEG loads the Named Directory Register
|
|
; and TCAP.
|
|
; Directories can now be referred to by
|
|
; name, as in the next command:
|
|
|
|
SETPTH10 /C COMMANDS RAM2 WORK $$$$ $$0 ROOT
|
|
; SETPTH sets the command search path.
|
|
; The /c option first clears any existing path.
|
|
; Directories are then listed in the
|
|
; order searched. In this case, COMMANDS
|
|
; is a 64K ramdisk (drive/user F0) where
|
|
; frequently used commands are stored. RAM2 is
|
|
; an additional RAM disk. (drive/user M0).
|
|
; WORK is a standard 3.5" floppy disk
|
|
; drive, (drive/user C15) where some 700K
|
|
; of utilities and applications are
|
|
; located. $$$$ refers to the currently
|
|
; logged drive and user area. $$0 refers
|
|
; to user area 0 of the current drive.
|
|
; The ROOT directory is on drive A, user
|
|
; 15, where startup utilities and system
|
|
; files can be found.
|
|
|
|
AUTOTOG ON ; Turns on keyboard control of ZPM3 Auto
|
|
; Command Prompting. Auto Command
|
|
; Prompting is toggled by entering CTRL-Q.
|
|
|
|
COMMANDS: ; Logs the commands directory.
|
|
|
|
IF ~EXIST CP.* ; Test to see if commands are loaded.
|
|
; This line reads: "If the CP command
|
|
; does not exist . . ." and sets the flow
|
|
; state to true if the file doesn't exist.
|
|
C1:CP C1:*.* F0:
|
|
; ". . . copy all of the commands in
|
|
; drive/user C1 to the commands (F0)
|
|
; directory . . ."
|
|
FI ; ". . . end if."
|
|
|
|
ROOT: ; Log the root directory (A15).
|
|
|
|
CP C:ZF*.* M0: ; Copy ZFILER.COM and ZFILER.CMD to the
|
|
; REU2 directory (M0).
|
|
|
|
VERROR ; Install VERROR error handler.
|
|
|
|
DATE S ; Set the system time and date.
|
|
|
|
ZF ; Invoke ZFILER as a shell.
|
|
|
|
=============================================================
|
|
|
|
Of course, your STARTZPM alias will vary depending on the
|
|
hardware you need to support, your software preferences, and your
|
|
work habits. This alias is close to the upward size limit that
|
|
ZCCP can handle based on the capacity of the multiple command
|
|
buffer. At the very least, I recommend an alias that will set up
|
|
a search path and load a TCAP.
|
|
|
|
Actually, I put the cart before the horse in this example. If
|
|
you try to reboot your system with the LOADSEG command as listed,
|
|
you'll notice that you don't have a NAMES.NDR file. There isn't
|
|
one distributed with ZCCP either. Z-System utilities won't let
|
|
you edit the NDR either, since the buffer for it hasn't been
|
|
created yet. This turned out to be a nasty chicken/egg
|
|
situation, hopefully solved by the inclusion of a sample
|
|
NAMES.NDR file containing simply A0:SYSTEM and A15:ROOT.
|
|
|
|
At this point, you should have a mostly functioning ZCCP system disk.
|
|
Reboot the system with the new disk. You might want to correct any
|
|
problems with it or tweak it to perfection before moving on.
|
|
|
|
List of Z-System Utilities for ZCCP
|
|
|
|
Some of the following utilities are essential, others are nice to
|
|
have. The version numbers listed are the latest known versions at the
|
|
time that this documentation was written. Utilities can be found on
|
|
ZNode BBSs, and some of them are available on Internet anonymous ftp
|
|
sites (Simtel20 or its mirror sites).
|
|
|
|
SALIAS16 - already mentioned in the example above. SALIAS (or
|
|
one of the other ZCPR alias utilities) are essential.
|
|
|
|
SD138B - excellent DIRectory utility. SD offers many
|
|
different types of sorts, list formats, etc., displays date
|
|
stamps, and supports output to a file.
|
|
|
|
MKDIR32 - utility for manipulating directory names and Named
|
|
Directory Register (*.NDR) files.
|
|
|
|
ERASE57 - erases files.
|
|
|
|
ZFILER10 - a file management shell that can launch applications.
|
|
It is programmable in that it can execute user defined macros
|
|
from a file. Multiple files can be "tagged" and operated on by
|
|
other programs. ZFILER is an excellent program, sort of a GUI
|
|
desktop without the slow graphics.
|
|
|
|
SETPTH10 - used to set the command search path. Essential!
|
|
|
|
VERROR17 - error handler that displays the command line for
|
|
reediting. VERROR17 is the only error handler that I found that
|
|
works with ZCCP.
|
|
|
|
ZEX50 - Z-System EXecutive is a powerful batch file processor
|
|
that replaces the CP/M SUBMIT command.
|
|
|
|
LBRHLP22 - Z-System Help utility displays help files. Help
|
|
files can be crunched (*.HZP), and/or loaded from a HELP.LBR
|
|
library.
|
|
|
|
ARUNZ09 - runs an alias script from a text file. ARUNZ is
|
|
frequently used as an extended command processor. To use ARUNZ
|
|
(or any other executable utility) as an extended command
|
|
processor, rename it to CMDRUN.COM.
|
|
|
|
VLU102 - Video Library Utility views or extracts files from
|
|
libraries. Versions of VLU above 1.02 do not work reliably with
|
|
ZPM3/ZCCP.
|
|
|
|
Z33IF16 - is the IF.COM discussed in the section on flow control.
|
|
|
|
SHOW14 - displays an immense amount of information about your
|
|
Z-System. SHOW also includes a memory patching function.
|
|
|
|
ZCNFG24 - configures Z-System program options. Most Z-System
|
|
programs are distributed with a configuration (*.CFG) file that
|
|
produces a menu of configuration options when run with ZCNFG.
|
|
|
|
ZP17 - Z-System Patch utility edits files, disk sectors, or
|
|
memory, and includes a built-in RPN calculator and number base
|
|
converter.
|
|
|
|
ZMAN-NEW - This is a manual describing Z-System features in
|
|
depth. It is based on earlier versions of Z-System, and is a
|
|
little dated, but otherwise contains information that you won't
|
|
find anywhere else. Not everything in the manual applies to
|
|
operation of ZPM3/ZCCP, but with the documentation presented
|
|
here, you should be able to get a good idea of what works and
|
|
what doesn't.
|
|
|
|
A TCAP termcap file for your system - This file is essential if you
|
|
want to use any ZCPR programs that need a TCAP.
|
|
|
|
ZCCP Technical Notes
|
|
|
|
ZCCP is a replacement CCP that implements ZCPR 3.3. It loads at
|
|
100H and is stored in the bank 0 CCP buffer for fast reloading as
|
|
does the standard CCP. By contrast, Z3Plus loads into high
|
|
memory and can be overwritten by transient commands, requiring
|
|
reloading Z3Plus from disk. Because ZCCP replaces the CCP, a
|
|
ZCCP system has more TPA (transient program area) than a Z3Plus
|
|
system. A ZCCP system on the C128 has more than 57K of TPA,
|
|
almost the same amount as a standard C128 CP/M system.
|
|
|
|
This should be enough information to get started with ZPM3/ZCCP.
|
|
Set up a boot disk, experiment with some Z-System utilities, read
|
|
ZMAN-NEW, and get some applications running. You'll agree that
|
|
ZPM3/ZCCP breaths new life into CP/M.
|
|
|
|
*******************************************************************************
|
|
* Randy Winchester * randy@mit.edu * PO Box 1074, Cambridge, MA 02142 *
|
|
*******************************************************************************
|
|
|