home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug001.arc
/
CPM.HLP
< prev
next >
Wrap
Text File
|
1979-12-31
|
32KB
|
765 lines
General Information on CP/M
CP/M File References
CP/M Line Editing and Output Control
CP/M Built-In Commands
CP/M Transient Commands
Physical Device Assignments for ARIES-1
CP/M STAT Command
CP/M PIP Command
CP/M ED Command
CP/M ASM Command
CP/M LOAD Command
The UNLOAD Command
CP/M DDT Command
The ZDT Command
CP/M SYSGEN Command
CP/M SUBMIT Command
CP/M BDOS -- Basic I/O Operations
CP/M BDOS -- Basic Disk Operations
CP/M File Types
CP/M BIOS Jump Vector
:General Information on CP/M
CP/M is a monitor control program for microcomputer system
development which uses IBM-compatible flexible disks (floppy
disks) for mass storage. Using a microcomputer mainframe based
on Intel's 8080 or Zilog's Z80 microprocessor, CP/M provides a
general environment for program construction, storage, and
editing, along with assembly and program debug facilities. An
important feature of CP/M is that it can be easily altered to
execute with any computer configuration which uses an Intel
8080 or Zilog Z80 Microprocessor and has at least 16K bytes of
main memory with up to four IBM-compatable diskette drives.
The CP/M monitor provides access to programs through a
comprehensive file management system. The file subsystem
supports a named file structure, allowing dynamic allocation of
file space as well as sequential and random file access. Using
this file system, a up to 64 distinct programs can be stored in
both source and machine-executable form.
Digital Research, the designer of CP/M, has provided a set
of six manuals which describe the use and operation of CP/M in
detail.
These manuals are:
1. An Introduction to CP/M Features and Facilities
2. ED: A Context Editor for the CP/M Disk System
3. ASM: CP/M Assembler User's Manual
4. DDT: CP/M Dynamic Debugging Tool User's Manual
5. CP/M Interface Guide
6. CP/M System Alteration Guide
As the reader can see, CP/M supports a context editor, an
assembler (Intel-compatable), and a debugger system. These are
available in the basic CP/M package. There is a large variety
of other software available which can run under CP/M with
little or no modification. Such software includes several
assemblers (both 8080 and Z80), a symbolic debugger, several
high-level languages (including FORTRAN IV {compiler}, BASIC-E
{translator}, CBASIC {translator}, many interpretive BASICs,
ALGOL, FOCAL, and C), and several special-purpose applications
programs (such as text formatting systems and accounting
systems).
:CP/M File References
A file reference identifies a particular file or group of
files on a particular disk attached to CP/M. These file
references can be either unambiguous (ufn) or ambiguous (afn).
An unambiguous file reference uniquely identifies a single
file, while an ambiguous file reference may be satisfied by a
number of different files.
An unambiguous file reference is an exact name of the
specified file. It consists of up to eight characters in the
file name and three characters in the file type. An
unambiguous file reference is of the form --
pppppppp.sss
The characters used in specifying an unambiguous file
reference may not contain any of --
< > . , ; : = ? * [ ]
An ambiguous file reference is used for directory search
and pattern matching. The form of an ambiguous file reference
is similar to an unambiguous reference, except the symbol '?'
may be interspersed throughout the file reference. In various
commands throughout CP/M, the '?' symbol matches any character
of a file name in the '?' position. For example, X?Y.C?M will
match XZY.COM and X3Y.CEM. The '*' symbol is used to match all
characters of a file name or file type. For example, *.COM
will match XZY.COM and HELP.COM, while HELP.* will match
HELP.COM and HELP.HLP.
:CP/M Line Editing and Output Control
The following are the line editing functions supported by
CP/M --
rubout Delete and echo the last character typed at
the console.
Ctrl-U Delete the entire line typed at the
console.
Ctrl-X Same as Ctrl-U.
Ctrl-R Retype current command line: types a
"clean line" following character deletion
with rubouts.
Ctrl-E Physical end of line: carriage is
returned, but line is not sent until the
carriage return key is depressed.
Ctrl-C CP/M system reboot (warm start).
Ctrl-Z End input from the console (used in PIP and
ED).
Other control functions affect console output --
Ctrl-P Copy all subsequent console output to the
currently-assigned list device (LST:).
Output is sent to both the list device and
the console device until the next Ctrl-P is
typed.
Ctrl-S Stop the console output temporarily.
Program execution and output continue when
the next character is typed at the console.
Typing Ctrl-C returns control to CP/M.
Input lines can generally be up to 255 characters in
length. They are not acted upon until the carriage return key
is typed.
:CP/M Built-In Commands
CP/M supports five built-in commands --
ERA afn -- The ERA (erase) command removes files
from the currently logged-in disk.
DIR afn -- The DIR (directory) command causes the
names of all files which satisfy the ambiguous
file name afn to be listed on the console
device. All files are listed if no afn is
given.
REN ufn1=ufn2 -- The REN (rename) command allows the
user to change the names of files on disk. The
file satisfying ufn2 is changed to ufn1.
SAVE n ufn -- The SAVE command places n pages (256-
byte blocks) onto disk from the TPA and names
this file ufn.
TYPE ufn -- The TYPE command displays the contents
of the ASCII source file ufn on the currently
logged-in disk at the console device.
:CP/M Transient Commands
The CP/M standard transient commands are --
STAT List the number of bytes of storage
remaining on the currently logged-in disk,
provide statistical information about
particular files, and display or alter
device assignment.
PIP Load the Peripheral Interchange Program for
subsequent disk file and peripheral
transfer operations.
ED Load and execute the CP/M text editor
program.
SUBMIT Submit a file of commands for batch
processing.
ASM Load the CP/M assembler and assemble the
specified program from disk.
LOAD Load the file in Intel "hex" machine code
format and produce a file in machine
executable form which can be loaded into
the TPA (this loaded program becomes a new
command under the CCP).
DDT Load the CP/M debugger into the TPA and
execute it.
DUMP Dump the contents of a file in hex.
SYSGEN Create a new CP/M system diskette.
MOVCPM Regenerate the CP/M system for a
particular memory size.
:Physical Device Assignments for ARIES-1
Logical Device Physical Device
CON: TTY: Model 43 Teletype
CRT: Hazeltine 1500 CRT
BAT: CRT and Modem
UC1: In=CRT, Out=CRT and Modem
RDR: TTY: Model 43 Teletype
PTR: Modem
UR1: CRT and Modem w/CRT Output
UR2: CRT and Modem
PUN: TTY: Model 43 Teletype
PTP: Modem
UP1: CRT and Modem
UP2: CRT and Modem
LST: TTY: Model 43 Teletype
CRT: Hazeltine 1500 CRT
LPT: Modem
UL1: CRT and Modem
:CP/M STAT Command
The STAT Command takes any of the following forms --
STAT Calculate the storage remaining on all active drives
and print a message like
x: R/W, SPACE: nnnK -- if disk is Read/Write
x: R/O, SPACE: nnnK -- if disk is Read Only
STAT x: Calculate the storage remaining on the specified
drive and print
BYTES REMAINING ON x: nnnK
STAT x:afn
Scan the specified files on the specified drive (x:
is optional), and list all files which satisfy the
unambiguous reference in alphabetical order with
storage requirements. A table like the following is
generated --
RECS BYTS EX D:FILENAME.TYP
rrrr nnnK ee d:pppppppp.sss
where
rrrr -- number of 128-byte records allocated to
the file
nnnK -- number of bytes (in K, K=1024)
allocated to the file nnn = rrrr * 128
/ 1024
ee -- number of 16K extensions ee = nnn / 16
d:pppppppp.sss --
drive name (d may be A, B, C, D) and
file name
STAT x:=R/O
Set the specified drive to Read Only. This is
cleared by a warm boot. When a disk is Read Only,
the message
BDOS ERR ON x: READ ONLY
will appear if there is an attempt to write to it.
STAT VAL:
Display the possible logical to physical device
assignments.
STAT will print the list --
CON: = TTY: CRT: BAT: UC1:
RDR: = TTY: PTR: UR1: UR2:
PUN: = TTY: PTP: UP1: UP2:
LST: = TTY: CRT: LPT: UL1:
STAT DEV:
Display the current logical to physical device
mapping. For example, the list may appear as --
CON: = CRT: PUN: = PTP:
RDR: = UR1: LST: = TTY:
STAT ld1=pd1, ld2=pd2, ...
Change the logical to physical device assignments.
Logical device ld1 is assigned to physical device
pd1, etc. The valid logical device names are --
CON: The system console device
RDR: The paper tape reader device
PUN: The paper tape punch device
LST: The output list device
The valid physical device names are --
TTY: Slow speed output device (teletype)
CRT: High speed output device (cathode ray
tube)
BAT: Batch processing (CON: input is RDR:,
CON: output is LST:)
UC1: User-defined console
PTR: Paper tape reader
PTP: Paper tape punch
UR1: User-defined reader #1
UR2: User-defined reader #2
UP1: User-defined punch #1
UP2: User-defined punch #2
LPT: Line printer
UL1: User-defined list device #1
:CP/M PIP Command
PIP (Peripheral Interchange Program) is the CP/M transient
which implements the basic media conversion operations
necessary to load, print, punch, copy, and combine disk files.
PIP is initiated by one of the following forms --
PIP Engage PIP, prompt the user with '*',
and read command lines directly from
the console. PIP used in this way is
exited by either typing an empty
command line (just a carriage return)
or a Ctrl-C as the first character of
the line.
PIP cmnd Engage PIP, execute the specified
command, and return to CP/M.
The form of each command line in PIP is --
destination=source#1, source#2, source#3, ..., source#n
The general forms of PIP command lines are --
x:=y:afn Copy all files satisfying afn from
drive y to drive x. 'y' may be
omitted, and, if so, the currently
logged-in drive is selected.
x:ufn=y: Copy the file given by ufn from y to
x. 'x' may be omitted, and, if so,
the currently logged-in drive is
selected.
x:afn=y:afn Like the above, but x and/or y may be
omitted; the default drive is selected
for the omitted drive(s).
ld=pd Copy from the specified physical
device to the specified logical
device.
Valid logical devices are --
CON:, RDR:, PUN:, LST:
Valid physical devices are --
TTY:, CRT:, UC1:, PTR:, PTP:, UR1:,
UR2:, UP1:, UP2:, LPT:, UL1:
Additional device names which may be used in PIP commands
are --
NUL: Send 40 Nulls (ASCII 0) to the device.
EOF: Send a CP/M End of File character (ASCII
Ctrl-Z).
INP: Special PIP input source to be patched (see
manual).
OUT: Special PIP output destination to be
patched (see manual).
PRN: Same as LST:, but tabs are expanded at
every eighth character position, lines are
numbered, and page ejects are inserted
every 60 lines with an initial eject.
The user can also specify one or more PIP parameters
enclosed in square brackets separated by zero or more blanks.
These parameters are --
B Block mode transfer. Data is buffered by PIP until
an ASCII X-Off character (Ctrl-S) is received from
the source device.
Dn Delete characters which extend past column n in the
transfer of data to the destination from the
character source.
E Echo all transfer operations to the console.
F Filter (remove) form feeds from the file.
H Hex data transfer. All data is checked for proper
Intel hex file format.
I Ignore ':00' records in the transfer of Intel hex
format file.
L Translate upper case to lower case alphabetics.
N Add line numbers to each line transferred to the
destination.
O Object file (non-ASCII) transfer. Ignore End of
File.
Pn Include page ejects at every n lines.
Qs^Z Quit copying from the source device or file when the
string s (terminated by Ctrl-Z) is encountered.
Ss^Z Start copying from the source file when the string s
is seen.
Tn Expand tabs to every nth column.
U Translate lower case to upper case alphabetics.
V Verify that data has been copied correctly.
Z Zero the parity bit on input for each ASCII
character.
:CP/M ED Command
The ED Program is the CP/M system context editor, which
allows creation and alteration of ASCII files. Complete
details are given in the user's manual.
The following are the error indicators given by ED --
? Unrecognized Command
> Memory buffer full
# Cannot apply command the number of times
specified
O Cannot open LIB file in R command
The following are the control characters recognized by ED
--
^C System reboot
^E Physical <CR> <LF> (not entered in command)
^I Logical tab
^L Logical <CR> <LF> in search and substitute
strings
^U Line delete
^Z String terminator
Rubout Character delete
Break Discontinue command
The following are the commands recognized by ED --
nA Append lines
+/- B Beginning/Bottom of buffer
+/- nC Move character positions
+/- nD Delete characters
E Exit
nFs^Z Find string
H End edit, close and reopen files
Is^Z Insert characters
nJ Place strings in juxtaposition
+/- nK Kill (delete) lines
+/- nL Move down/up lines
nM Macro definition
O Return to original file
+/- nP Move and print pages
Q Quit with no file changes
R Read library file
nSs1^Zs2^Z
Substitute s2 for s1
+/- nT Type lines
+/- U Translate lower to upper case if U; none if
-U
+/- V Engage/disengage line numbers (verify)
0V Print memory buffer info (free/total usage)
nW Write lines
nX Transfer n lines to X$$$$$$$.LIB
0X Empty X$$$$$$$.LIB
nZ Sleep
+/- n Move and type (+/- nLT)
n: Move to absolute line (V engaged)
:n Process from current line to specified line
(V engaged)
:CP/M ASM Command
The ASM Command loads and executes the CP/M 8080
assembler. It is of the form --
ASM filename.xyz
where
filename ... is the name of the file 'filename.ASM'
to assemble
x ... designates the disk name which contains
the source
y ... designates the disk name to contain the
hex file (y=Z suppresses generation of
the hex file)
z ... designates the disk name to contain the
print file (y=X lists on CON:, y=Z
suppresses listing)
Refer to the ASM Manual for further details.
:CP/M LOAD Command
The LOAD Command reads the file specified, which is
assumed to contain Intel hex format machine code and produces a
memory image file which can be subsequently executed (converts
.HEX to .COM files). It is of the form --
LOAD filename
where filename is the name of the file 'filename.HEX'.
:The UNLOAD Command
The UNLOAD Command does the reverse of the LOAD Command --
it converts COM files to HEX files. It is of the form --
UNLOAD filename
where filename is the name of the file 'filename.COM'.
:CP/M DDT Command
The DDT Program allows dynamic interactive testing and
debugging of programs generated in the CP/M environment. It is
invoked by --
DDT
DDT filename.HEX
DDT filename.COM
where 'filename' is the name of the program to be loaded or
tested.
DDT responds to the normal CP/M input line editing
characters.
DDT responds to the following commands --
As Perform inline assembly starting at the specified
address s.
D Display memory from the current address for 16
display lines.
Ds Display memory from address s for 16 display lines.
Ds,f Display memory from address s to address f.
Fs,f,c
Fill memory from start address s to final address f
with byte c.
G Start execution at the current value of the PC.
Gs Start execution at the specified address s.
Gs,b Start execution at the specified address s and set a
breakpoint at the address b.
Gs,b,c
Same as above with breakpoints at b and c.
G,b Start execution at the current value of the PC with
breakpoint b.
G,b,c
Same as above with breakpoints at b and c.
If Insert a file name f into the default FCB.
L List 12 lines of disassembled code from the current
address.
Ls List 12 lines from the specified address s.
Ls,f List lines of disassembled code from s to f.
Ms,f,d
Move the block from address s to f to destination at
address d.
R Read file in FCB into memory at 100H.
Rb Read file in FCB into memory with offset b from 100H.
Ss Set (examine and alter) memory starting at address s.
T Trace the next instruction.
Tn Trace the next n instructions.
U Untrace -- like Trace, but intermediate steps are not
displayed.
X Examine all registers and flags.
Xr Examine specified registers or flag, where r may be
--
C Carry flag
Z Zero flag
M Minus (sign) flag
I Interdigit Carry flag
A Accumulator
B BC Reg pair
D DE Reg pair
H HL Reg pair
S Stack pointer
P PC
:The ZDT Command
ZDT is a Z80 version of DDT. It is invoked by typing --
ZDT
The commands recognized by ZDT are input in single-
character input mode. No input line editing is done, and each
command expects an exact input. All byte values are exactly
two characters, and all addresses are exactly four characters.
The commands recognized by ZDT are --
A bbbb
Enter ASCII characters into memory from keyboard
starting at address bbbb.
B
Warm Boot -- Return to CP/M.
C bbbb eeee nnnn
Compare memory from address bbbb to address eeee
to block starting at nnnn.
D bbbb eeee
Dump memory from bbbb to eeee.
E bbbb eeee <ASCII string>
Search for ASCII string from bbbb to eeee.
String is at most 16 characters. String is
terminated by <CR>.
F bbbb eeee <hex string>
Search for hex string from bbbb to eeee. String
is terminated by <CR>.
G
Go to next breakpoint.
H aaaa nnnn
Hex add and subtract. Computes aaaa+nnnn and
aaaa-nnnn.
I nn
Input. Prints value at port nn.
J nnnn
Jump to and execute at location nnnn.
K
Keyboard echo.
L filename.typ nnnn
Loads specified disk file into location nnnn.
M bbbb eeee nnnn
Move block from bbbb to eeee-1 to nnnn.
N aaaa
Enter offset aaaa for loading.
O nn dd
Output byte dd to port nn.
P bbbb
Input hex into memory from keyboard starting at
bbbb. <sp> advances pointer, <rub> or <del>
backs pointer.
Q bbbb eeee
Dumps from bbbb to eeee in ASCII.
R n ll tt ss bbbb
Read block of data from disk n of length ll
(256-byte pages) starting at track tt and sector
ss placing the data at bbbb.
S bbbb eeee
Disassembly (symbolic dump) from bbbb to eeee.
T bbbb eeee
Destructive memory test from bbbb to eeee-1.
U bbbb
Set breakpoint at bbbb.
V
Display all currently-set breakpoints.
W n ll tt ss bbbb
Write on disk n the data at bbbb for a length of
ll starting at track tt, sector ss. ll is in
256-byte pages.
X
Display registers.
Z bbbb eeee dd
Zero or set memory from bbbb to eeee-1 with byte
dd.
:CP/M SYSGEN Command
The SYSGEN transient command allows generation of an
initialized disk containing the CP/M Operating System.
It is invoked by typing
SYSGEN
Once invoked, the user is prompted through the session.
Refer to the CP/M Manual for further details.
:CP/M SUBMIT Command
The SUBMIT command allows CP/M commands to be batched
together for automatic processing. The form of this command is
SUBMIT ufn parm1 parm2 ... parmn
The ufn given in the SUBMIT command must be the filename
(not type) of a file which exists on the currently logged-in
disk with an assumed file type of '.SUB'. Refer to the CP/M
Manual for further details.
:CP/M BDOS -- Basic I/O Operations
Function and Number Input Parameters Output Parameters
Read Console 1 None ASCII Char in A
Write Console 2 ASCII Char in E None
Read Reader 3 None ASCII Char in A
Write Punch 4 ASCII Char in E None
Write List 5 ASCII Char in E None
Get I/O Status 7 None I/O Status in A
Put I/O Status 8 I/O Status in E None
Print Buffer 9 Address of string None
terminated by $
in DE
Read Buffer 10 Address of Read Read Buffer is filled
Buffer in DE
Console Ready 11 None LSB of A is 1 if char
ready
*All function numbers are passed in Reg C.
I/O Status Byte --
Value Bits 6&7 Bits 4&5 Bits 2&3 Bits 0&1
00 CON:=TTY: RDR:=TTY: PUN:=TTY: LST:=TTY:
01 CRT: PTR: PTP: CRT:
10 BAT: UR1: UP1: LPT:
11 UC1: UR2: UP2: UL1:
Read Buffer --
Byte Function
1 Maximum Buffer Length
2 Current Buffer Length (returned value)
3-n Data (returned values)
:CP/M BIOS -- Basic Disk Operations
Function and Number Input Parameters Output Parameters
Lift Head 12 None None
Init BDOS 13 None None
Log-In Disk 14 Value in Reg E None
A=0, B=1, C=2,
D=3
Open File 15 Address of FCB Byte address of FCB
in DE if found or 0FFH if not
Close File 16 Address of FCB Byte address of FCB
in DE if found or 0FFH if not
Search for File 17 Address of FCB Byte address of first FCB
in DE if found or 0FFH if not
Search for Next 18 Address of FCB Byte address of next FCB
in DE if found or 0FFH if not
Delete File 19 Address of FCB None
in DE
Function and Number Input Parameters Output Parameters
Read Next Record 20 Address of FCB 0=successful read
in DE 1=read past EOF
2=reading random data
Write Next Rec 21 Address of FCB 0=successful write
in DE 1=error in extending
2=end of disk data
255=no more dir space
Make File 22 Address of FCB Byte address of FCB or
in DE 255 if no more dir space
Rename FCB 23 Address of FCB Byte Address of Dir entry
in DE or 255 if no match
Read Drive No 25 None Number of logged-in drive
(A=0, B=1, C=2, D=3)
Set DMA Address 26 Address of 128 None
byte buffer in DE
*All function numbers are passed in Reg C
:CP/M File Types
ALG ALGOL 60 Source File
ASM Assembler Source File
BAK Backup File
BAS BASIC Source File (CBASIC)
C C Source File
COM "Command" File (Binary ORGed to 100H)
FOR FORTRAN IV Source File
HEX Intel "hex" code file
HLP HELP File
INT BASIC Intermediate File
LST Listing File
MAC MACRO-80 Source File
PRN Assembler Listing File
SRC PASCAL/MT Source File
SUB SUBMIT File
TC Tiny-C Source File
TFS TFS Source File
TXT Text File
$$$ Temporary File
:CP/M BIOS Jump Vector
The following is a table representing the entry points
into the CP/M BIOS of the major routines accessable to the user
--
Routine Relative Offset Comment
BOOT 00H Cold Start
WBOOT 03H Warm Start
CONST 06H Console Status
Reg A = 00 if no char ready
Reg A = FF if char ready
CONIN 09H Console char in (Reg A)
CONOUT 0CH Console char out (Reg C)
LIST 0FH List out (Reg C)
PUNCH 12H Punch out (Reg C)
READER 15H Reader in (Reg A)
Routine Relative Offset Comment
HOME 18H Move to track 00
SELDSK 1BH Select disk given by Reg C
(A=0,B=1,...)
SETTRK 1EH Set track address given by
Reg C (0...76)
SETSEC 21H Set sector address given by
Reg C (1...26)
SETDMA 24H Set subsequent DMA address
(RP B&C)
READ 27H Read track/sector (block)
WRITE 2AH Write track/sector (block)
Reg A = FF if char ready
CONIN 09H