home *** CD-ROM | disk | FTP | other *** search
Text File | 1986-11-07 | 68.7 KB | 2,269 lines |
- CP/M-Z80 EMULATOR
-
- OWNER'S MANUAL
-
- For Use with All ATARI ST[TM] Computers
-
- PLEASE NOTE
-
- Every effort has been made to ensure the accuracy of the product
- documentation in this manual. However, because Atari Corp. is
- constantly improving and updating its computer hardware and software,
- we are unable to guarantee the accuracy of printed material after the
- date of publication and disclaim liability for changes, errors, or
- omissions.
-
- ATARI is a registered trademark, and ST and TOS are trademarks of
- Atari Corp.
-
- CP/M, CP/M-80, and GEM are trademarks of Digital Research Inc.
-
- WordStar is a trademark or registered trademark of MicroPro
- International Corporation.
-
- CP/M-Z80 Emulator was developed by SoftDesign in conjunction with
- Atari Corp.
-
-
- Copyright 1986 Atari Corp.
- Sunnyvale, CA 94088
- All Rights Reserved.
-
- TABLE OF CONTENTS
-
- INTRODUCTION
- What is CP/M and What Is the CP/M-Z80 Emulator?
- How Well Does the CP/M-Z80 Emulator Perform?
- How to Use This Manual
-
- CHAPTER 1
- GETTING STARTED
- Backing Up the CP/M-Z80 Emulator Disk
- Loading the CP/M-Z80 Emulator
- Backing up the CP/M-Z80 Utilities Disk
-
- CHAPTER 2
- CP/M AND CP/M-Z80 EMULATOR COMMAND SUMMARY
- How to Enter a CP/M Command
- CP/M File Specifications
- Command Summary Conventions
- CP/M-Z80 Emulator-Specific Command
- @
- CPMTOS
- DDTZ
- DIR
- EDTKEY
- EXIT
- INIT
- READ
- SCOPY
- SETKEY
- TOSCPM
- TOSDIR
- Standard CP/M Commands
- *ASM
- *DDT
- DIR
- *DUMP
- *ED
- ERA
- LOAD
- *PIP
- REN
- SAVE
- *STAT
- *SUBMIT
- TYPE
- USER
- XSUB
- CP/M Control Character Summary
- CP/M Filetypes
- CP/M Messages
-
- CHAPTER 3
- CP/M AND CP/M-Z80 EMULATOR TECHNICAL REFERENCE
- Emulator Implementation
- Emulator CCP Implementation
- Emulator BDOS Implementation
- Emulator BIOS Implementation
- Emulator Performance
- Emulator Interface to User I/O
- General Restrictions
- Notes on CP/M-Z80 Emulator I/O DRIVER Conventions
- CP/M BDOS Function Summary
-
- * Not included with package.
- Copyright Digital Research @1986.
-
- INTRODUCTION
-
- WHAT IS CP/M AND WHAT IS THE CP/M-Z80 EMULATOR?
-
- Every computer requires an operating system. A computer's operating
- system is a set of instructions--a program--that supervises the
- running of other programs on the computer.
-
- Your ATARI ST Computer has its own, unique operating system--TOS. You
- load TOS every time you switch on your computer. Once TOS loads, your
- computer is ready to run other programs. Any program designed to run
- on your ST Computer is running under TOS.
-
- CP/M is also an operating system. It's different from TOS. A program
- designed to run under CP/M will not run under TOS, and vice versa.
- However, the CP/M-Z80 Emulator program that you've received on disk
- makes TOS "think" and "act like" (i.e., "emulate") a CP/M system.
- Without any additional hardware or software, the Emulator program
- transforms your ST Computer into a complete CP/M-80 system.
-
- This is a great advantage to you because CP/M has been around for a
- long time. As a result, there are literally thousands of programs
- available that run under CP/M, and so will run under the CP/M-Z80
- Emulator.
-
-
- HOW WELL DOES THE EMULATOR PERFORM?
-
- The Emulator is a complete CP/M-80 version 2.2 compatible system
- environment. It provides realtime emulation of all Z80 instructions
- over the full 64K addressable range. The Emulator runs all CP/M-80
- compatible programs and accepts all standard CP/M-80 version 2.2
- commands. Some minor errors in version 2.2 of CP/M-80 were corrected,
- and some additional system commands were added.
-
- The Emulator runs average CP/M-80 programs with the speed of a 2MHz
- Z80 system, but performance will vary according to the particular
- program. One major variable will be the frequency of a program's disk
- access. Programs with heavy disk I/O may run even faster than on
- conventional Z80 hardware because the Emulator fully exploits the disk
- speed of the ATARI ST Computer. On the other hand, programs that
- perform extensive arithmetic computations will most likely run more
- slowly than average.
-
-
- HOW TO USE THIS MANUAL
-
- This manual is not intended as a CP/M operator's manual. Rather, it
- provides only skeletal information about the CP/M operating system.
- You are encouraged, if not already familiar with CP/M, to obtain a
- CP/M reference book. There are many excellent CP/M books on the
- market.
-
- The following summarizes the contents of this guide:
-
- Chapter 1, Getting Started, explains how to load the Emulator into
- your computer and have CP/M resident and on screen. The chapter also
- explains how to back up the CP/M-Z80 Emulator and CP/M-Z80 Emulator
- Utilities disks you received.
-
- Chapter 2, CP/M and CP/M-Z80 Emulator Command Summary, provides you
- with summary explanations of all standard CP/M commands and all
- non-standard (CP/M-Z80 Emulator-specific) commands, according to the
- CP/M and CP/M-Z80 utility files you received on the CP/M-Z80 Emulator
- Utilities disk. The chapter also provides a summary of CP/M
- filetypes, control characters, and messages.
-
- Chapter 3, CP/M and CP/M-Z80 Emulator Technical Reference, presents
- some technical information about the Emulator and how it works. This
- chapter is in part geared to CP/M programmers, but non-programmers may
- also find much of the information useful. The chapter ends with a
- listing of the standard CP/M BDOS Function Summary.
-
- CHAPTER 1
- GETTING STARTED
-
- This chapter explains how to backup both the CP/M-Z80 Emulator and
- CP/M-Z80 Emulator Utilities disks you received, and how to load the
- Emulator program into your computer. You will copy the CP/M-Z80
- Emulator disk from the GEM Desktop. But the CP/M-Z80 Emulator
- Utilities disk is copied from within the Emulator itself. Before you
- begin, be certain to have two newly formatted disks on hand.
-
-
- BACKING UP THE CP/M EMULATOR DISK
-
- Before you do anything else, be certain to make a backup copy of the
- disk labeled "CP/M-Z80 Emulator." Since the Emulator is actually a
- TOS program, you must make the copy from the GEM Desktop. If you
- haven't done so already, first format a disk, then make the copy
- (either by dragging the files from one window to another or by making
- a disk-to-disk copy). Once you've made the copy, always use it as
- your working CP/M-Z80 Emulator disk. Store the original in a safe
- place. By doing this, you will always have at least one usable copy
- of the program.
-
- The disk labeled "CP/M-Z80 Emulator Utilities," on the other hand,
- must be copied within the Emulator (see the section on Backing Up the
- CP/M-Z80 Emulator Utilities Disk).
-
-
- LOADING THE CP/M-Z80 EMULATOR
-
- The CP/M Emulator is a program like any other program that runs on
- your ST Computer. It needs to be loaded into your computer.
-
- To load the Emulator, follow these steps:
-
- 1. With the GEM Desktop displayed, insert the disk labeled "CP/M-Z80
- Emulator" into Drive A (or B, if you have two disk drives). Obtain a
- directory window of the disk, then select and open ("run") the file
- CPMZ80.TOS. Your screen clears and in a moment the CP/M-Z80 Emulator
- comes up.
-
-
- 2. The message on screen instructs you to insert a CP/M-Z80 disk into
- your drive. Remove the CP/M Emulator disk and insert the disk labeled
- "CP/M-Z80 Emulator Utilities." (You may substitute you own CP/M
- application disk for the CP/M-Z80 Emulator Utilities disk at this
- point.) Now press any key. In a moment the Emulator's A: (or B:)
- prompt appears on screen. You now have CP/M fully resident and
- ready.
-
- Note: CP/M's classic A> (or B>) prompt is replaced with an A: (or B:)
- prompt in the Emulator; the Emulator's A: (or B:) prompt works just
- like the CP/M's A> (or B>) prompt.
-
-
- Now type
-
- dir
-
- beside the A: (or B:) prompt. The DIR command returns a directory
- listing of the specified drive.
-
-
- These are the CP/M utilities you received on disk.
-
-
- BACKING UP THE CP/M-Z80 EMULATOR UTILITIES DISK
-
- It is essential that you make a backup copy of the CP/M-Z80 Emulator
- Utilities disk before you do anything else. To make the copy, follow
- these steps:
-
- 1. If you haven't done so already, format a disk under TOS (from the
- GEM Desktop), just as you normally do. If you don't have a blank,
- formatted disk available, then you'll have to exit the Emulator (type
- EXIT beside the A: or B: prompt), format a disk from the GEM Desktop,
- then run the Emulator.
-
- 2. If you have one disk drive and with the Emulator's A: prompt
- displayed, write-protect and insert the disk labeled "CP/M-Z80
- Emulator Utilities" in Drive A, then type
-
- SCOPY *.* <cr>
-
- The program prompts you to swap the utilities (source) disk for your
- newly formatted (destination) disk, displaying the name of each file
- as it's copied.
-
- If you have two disk drives and with the Emulator's A: prompt
- displayed, write-protect and insert the disk labeled "CP/M-Z80
- Emulator Utilities" into Drive A and your newly formatted disk in
- Drive B, then type
-
- NSWP207
-
- Pressing '?' will display all of the commands that NSWP207
- understands.
- To copy ALL files from Drive A to Drive B, press 'T' for TAG to mark
- each file. After marking each file for transfer, press 'M' to perform
- the mass file copy.
-
- You will be prompted for a destination.
-
- Type B:
-
- to send the files to the B drive.
-
- The program proceeds to copy all files in Drive A to Drive B,
- displaying the name of each file as it's copied.
-
- 3. With your new copy of the utilities disk in Drive A (or B), type
-
- dir <cr>
-
- beside the A: (or B:) prompt, just to be certain that the duplication
- procedure was a success.
-
- 4. Now type
-
- INIT A: <cr>
-
- This initializes your copy of the CP/M-Z80 Emulator Utilities disk.
- For an explanation of disk-initialization, see INIT in Chapter 2.
-
- Now that you've made the copy, always use it as your working CP/M-Z80
- Emulator Utilities disk. Store the original in a safe place. By
- doing this, you will always have at least one usable copy of the
- utilities disk, should anything ever happen to any one copy.
-
- CHAPTER 2
-
-
- CP/M AND CP/M-Z80 EMULATOR COMMAND SUMMARY
-
-
- HOW TO ENTER A CP/M COMMAND
-
- To enter a CP/M command, you must type a complete command line in
- response to the CP/M system prompt. A CP/M command line consists of
- a command keyword, an optional command tail, and a carriage return
- ([cr]). The command keyword identifies a command (program) to be
- executed. The optional command tail consists of a file specification
- and options or parameters. To complete the command, add a carriage
- return by pressing the [Return] key on the ST computer keyboard.
-
-
- CP/M FILE SPECIFICATIONS
-
- CP/M identifies every file by its unique file specification. A file
- specification is composed of three parts: a drive specification, a
- primary filename, and a filetype. The term "filespec" is an
- abbreviation for file specification, and indicates any valid
- combination of the drive specification, the filename, and the
- filetype. The following symbols are used to designate the parts of a
- filespec:
-
- D: Represents the optional drive specification,
- which must be a single alphabetical character
- in the range A through P, followed by a colon.
-
- filename Represents the required primary filename which
- can be 1 to 8 alphabetic or numeric characters.
-
- .typ Represents the optional filetype, which can be 0
- to 3 alphabetic or numeric characters separated
- from the primary filename by a period.
-
- Valid combinations of the elements of a filespec are shown below:
-
- filename
- D:filename
- filename.typ
- D:filename.typ
-
- Certain CP/M commands can select and process several files when
- wildcard characters are included in the primary filename or filetype.
- The two wildcard characters are ?, which matches any single letter in
- the same position, and *, which matches any character at the position
- and any other characters remaining in the filename or filetype. The
- command summary indicates which commands can accept wildcard
- characters (* or ?) in a filename or filetype.
-
-
- COMMAND SUMMARY CONVENTIONS
-
- The command summary lists CP/M commands in alphabetical order, using
- the following special symbols to define command syntax:
-
- [] Indicate an optional item within DDT and ED.
- Also indicate the optional parts of a command
- line.
- | Separates choices.
- N Indicates a number.
- [cr] Indicates a carriage return keystroke.
- or CTRL Indicates a control keystroke
- O Indicates an option or option list.
- R/W Means Read-Write.
- R/O Means Read-Only.
- SYS Means System attribute.
- DIR Means Directory attribute.
- ... Preceding element can be repeated as many
- times desired.
- * Wildcard; replaces all or part of a filename
- and/or filetype.
- ? Wildcard; replaces any single character in the
- same position.
-
-
- CP/M-Z80 EMULATOR-SPECIFIC COMMANDS
-
- @
-
- Syntax:
-
- @
- @/
- @/ <command lines>
- @/ <filename> <parameters>
-
- Purpose:
-
- The @ command invokes the @.COM utility. The @.COM utility lets you
- interactively design and use SUBMIT files.
-
- Examples:
-
- @
- @/
- @/NSWP207
-
- CPMTOS
-
- Syntax:
-
- CPMTOS <CP/M-Z80 filename> <TOS filename>
-
- Purpose:
-
- The CPMTOS command lets you convert a CP/M-Z80 file to a TOS file.
- Note however, that CP/M programs will not run under TOS, even though
- they are converted. An unambiguous CP/M-Z80 file as source and a
- destination drive or unambiguous TOS destination filename must be
- specified on the command line. Source and destination drive cannot be
- the same. CPMTOS allows you to change disks and prompts you to start
- the conversion by pressing [Return]. To abort the conversion, press
- [Esc] or [Control] [C].
-
- Examples:
-
- CPMTOS A:HAPPY.TXT B:
- CPMTOS ORDERS.DAT B:ORDERS.DTA
-
-
- DDTZ
-
- Syntax:
-
- DDTZ
- DDTZ filespec
-
- Purpose:
-
- The DDTZ command works quite like DDT, save that it invokes the
- CP/M-Z80 debugging utility.
-
- Examples:
-
- A: DDTZ
- A: DDTZ PROGRAM.COM
-
-
- DDTZ commands
-
- > @ Examine [and substitute]
- the displacement
- register @.
- > A [startaddress] Assemble.
- > B Display all Breakpoints.
- > B breakp [breakp..][:count] Set Breakpoints.
- BX Clear all Breakpoints.
- BX address [address] Clear Breakpoints.
- >> C[N][J][number of commands] Trace over Calls
- [no list][jumps only].
- C[N][J] W expression ..while..
- C[N][J] U expression ..until..
- >>D [startaddr][endaddr] Display memory in hex
- and ascii.
- > F commandline Specify Filename and
- command line.
- > G [startaddr][;breakpoint..] Go [to start][temporary
- breakpoints]
- > H Display High and maximal
- size of files.
- > H expression Compute hex and other
- expressions.
- H expression expression Hex and other sum and
- difference.
- >>I [port] Input a byte from port.
- >>L [startaddr][endaddr] List disassembled code.
- > M[V] startadr endadr targetadr Move memory [and verify].
- >>O [byte][port] Output a byte to port.
- > Q[J] startaddr endaddr bytes Query memory for byte
- string [justified].
- > R [displacement] Read binary or hex file
- [add dislacement].
- > S Startaddr Substitute memory.
- >>T[N][J][number of commands] Trace [no list]
- [Jumps only].
- T[N][J] W expression ..while..
- T[N][J] U expression ..until..
- > V startaddr endaddr targetaddr Verify (compare) two
- memory areas.
- > W startaddr endaddr Write a file to disk.
- > X Examine all cpu registers.
- X register Examine [and substitute]
- a register.
- > Y Examine all Y variables.
- Y number between 0 and 9 Examine [and substitute]
- a Y variable.
- > Z startaddr endaddr bytes Zap (fill) memory with a
- byte string.
-
-
-
- DDTZ: Names of Registers
-
- A , F , B , C , D , E , H , L , BC , DE , HL
- A', F', B', C', D', E', H', L', BC', DE', HL'
- IX or X, IY or Y, SP or S, PC or P, I
-
- DDTZ: Flags of Registers F and F':
-
- S Sign
- Z Zero
- H Half carry Carry of bit 3 to bit 4.
- V Overflow/parity Overflow/even parity.
- N Negation NEG, DEC, SUB or the like
- executed.
- C Carry Carry of bit 7.
- E Interrupt Enabled The Interrupt flag is handled
- in DDTZ like a flag of the
- F-Register.
-
- DDTZ: Constants and Variables
-
- L Low Start of user-memory.
- H High Highest address of files last loaded.
- M Max Highest address of all files loaded.
- T Top Top of user memory.
- @ Displacement Register.
- $ Start address when assembling
- otherwise = PC.
- Y0 ... Y9 Free usable variables.
- ^register Content of register.
- (address) Content of a memory cell (byte).
- (address) Content of a memory cell (word).
-
- Calling DDTZ:
-
- DDTZ
- DDTZ d:filename.ext
-
- If DDTZ was called together with a filename, then DDTZ loads the file
- into the memory. When the '>' sign appears, DDTZ is ready.
-
- General remarks for the use of DDTZ.
-
- In all situations, where numbers can be entered, 'expressions' can be
- entered too. Expressions are structured as follows:
-
- <arithmetic expression>
- or
- <arithmetic expression> <relational operator> <arithmetic expression>
-
- Relation operators are: = , <> , < , > , >= , <=
-
- If the relation is true, the expression has the value -1, otherwise it
- is 0.
-
- e.g.: the expression 1 + 2 = 3 has the value -1.
-
- An arithmetic expression has the general structure:
-
- <factor><arithmetic operator><factor><arith... ... <factor>
-
- Arithmetic operators are:
-
- + , - , * , / , % plus, minus, multiplication, division,
- modulo.
- & , ! , # AND, OR, XOR (bit oriented).
-
- Factors are:
-
- [expression] Expression in brackets.
- +factor
- -factor Negation.
- ~factor NOT (bit oriented).
- 'a' Value of ASCII-character.
- 'a'. Bit 7 on.
- 'ab' Value of two ASCII characters.
- 'ab'. Bit 7 on in low byte.
- (expression) Byte in memory.
- (expression) Word in memory.
- variable arbitrary variable mentioned above.
- hhhh[H] Hex-number.
- dddd. Decimal-number.
- bbbbbbbb"bbbbbbbb" Binary number.
-
- If an expression contains a relational operator, first both arithmetic
- expressions are calculated and then the relation. An arithmetic
- expression will be calculated from the left to the right without
- regard to algebraic rules. However, the order can be changed with
- brackets. Expressions must not contain blanks.
-
- Commands start with one of the characters '@' to 'Z', optionally
- followed by other characters or arguments. If the start address is
- omitted, the address where the command ended before is used instead.
- If the end address is omitted, the command (e.g. L or D) will be
- repeated until one screen is filled. If one argument is omitted and
- other arguments follow, it has to be replaced by a comma. Between two
- arguments, a blank, a tab, or a comma must be put.
-
- Commands which need a starting address and an ending address can use
- the character 'S', followed by an offset.
-
- For example:
-
- D 1000 S 100 resp. D1000S100
- means the same as:
- D1000 10FF resp. D1000,10FF
-
-
- DIR
-
- Syntax:
-
- DIR filename
-
- Purpose:
-
- The DIR command displays the names of all files with "system
- indicator" set on the specified disk.
-
- Examples:
-
- DIR A:
- DIR B:
-
-
- EDTKEY
-
- Syntax:
-
- EDTKEY <keyboard definition file>
-
- Purpose:
-
- The EDTKEY command lets you edit a CP/M-Z80 keyboard definition file.
- A keyboard definition file contains information about the nationality
- and character strings for the function keys. You can choose from one
- of five national keyboard layouts: American, English, French, German,
- and German/American. German/American is a special German layout for
- programmers. Each of the ten function keys [F1]--[F10] on the top row
- of the keyboard and all the eight keys in the cursor block, both
- unshifted and shifted, may be assigned an ASCII string of up to eight
- characters. This provides you with a total of 36 configurable
- function keys.
-
- EDTKEY displays the current keyboard nationality and function key
- definitions, and shows a menu of possible entries. To abort without
- making any changes, and return to the CP/M-Z80 Emulator, press [Esc].
- To change the keyboard nationality, which is displayed in the top
- right corner of the EDTKEY screen, press [Space Bar]. To save the
- current definition to disk, press [Enter] (on the numeric keypad);
- EDTKEY then terminates automatically. To edit the string assigned to
- a function key, just press the desired function key, unshifted or
- shifted. Correct a definition with [Backspace] and terminate editing
- with [Enter]. All ASCII characters except Backspace (08H) may be used
- in function key strings. Control characters are shown in arrow
- notation.
-
- EDTKEY is a versatile tool that can adapt the CP/M-Z80 environment to
- your changing needs. You may assign function keys various commands
- used in CP/M applications programs, and so tailor the ST keyboard to
- the specific needs of an application program. You can create as many
- keyboard definition files as you want. EDTKEY displays or changes an
- existing keyboard definition or creates a new keyboard definition
- file, if the specified file cannot be found. A new definition is
- filled with default values at startup. The default file type for
- keyboard definition files is .KEY and may be omitted from the file
- specification. A predefined keyboard definition must be activated
- with the SETKEY utility.
-
- Note: The DEFAULT.KEY file on disk is the default keyboard definition
- file. The WS.KEY file configures the keyboard for use with WordStar.
-
- Examples:
-
- EDTKEY DEFAULT
- EDTKEY
-
-
- EXIT
-
- Syntax:
-
- EXIT
-
- Purpose:
-
- The EXIT command allows you to exit the Emulator and return control to
- TOS and the GEM Desktop.
-
- Examples:
-
- A: EXIT
- B: EXIT
-
-
- INIT
-
- Syntax:
-
- INIT <drive specifier>
-
- Purpose:
-
- The INIT command initializes a formatted TOS disk for use under the
- CP/M-Z80 Emulator. Disks used with the Emulator must be formatted
- under TOS first, then initialized with the INIT utility running under
- the Emulator. The drive containing the disk to initialize must be
- specified on the command line, and the INIT.COM file must be on the
- specified disk. The INIT command zeros the TOS directory so that you
- can recognize CP/M-Z80 disks from the GEM Desktop. When you display a
- initialized CP/M-Z80 disk directory on the GEM Desktop, only the one
- item (CPMZ80.APP) appears in the directory window, and (falsely) shows
- 999999 bytes used in that one item.
-
- Examples:
-
- INIT A:
- INIT B:
-
- READ
-
- Syntax:
-
- READ
- PIP PUN: = A: <filename> [0], eof: eof: eof: eof eof:
-
- Purpose:
-
- The READ command invokes the READ communications utility. The READ
- communications utility is a self-relocating receiver routine for
- serial data transmission via the CP/M reader channel. This allows for
- the conversion from one CP/M computer to another. The READ.ASM file
- (on disk) provides you with the READ utility's source code.
-
- Examples:
-
- A: READ PROG
- A: READ PROG.BBX
- A: READ b:PROG.bzz
-
-
- SCOPY
-
- Syntax:
-
- SCOPY <ambiguous CP/M-Z80 filename>
-
- Purpose:
-
- The SCOPY command allows you to copy CP/M-Z80 files on a single drive
- system. You may select a file or group of files to copy, according to
- your file parameter. The utility informs you to swap source and
- destination disks, and echoes the name of each copied file.
-
- Examples:
-
- SCOPY *.*
- SCOPY *.PAS
- SCOPY DU.COM
-
-
- SETKEY
-
- Syntax:
-
- SETKEY <keyboard definition file>
-
- Purpose:
-
- The SETKEY command activates an existing keyboard definition file
- (created with EDTKEY). The default file type for keyboard definition
- is .KEY and may be omitted from the file specification.
-
- Note: The DEFAULT.KEY file on disk is the default keyboard definition
- file. The WS.KEY file configures the keyboard for use with WordStar.
-
-
- Examples:
-
- SETKEY MP
- SETKEY B:MBAS
-
-
- TOSCPM
-
- Syntax:
-
- TOSCPM <TOS file> <CP/M-Z80 file>
-
- Purpose:
-
- The TOSCPM utility lets you convert a TOS file to a CP/M-Z80 file.
- Note that TOS programs will not run under CP/M-Z80. An unambiguous
- TOS file as source and a destination drive or unambiguous CP/M-Z80
- destination filename must be specified on the command line. Source
- and destination drive cannot be the same. TOSCPM allows you to change
- disks and prompts you to start the conversion by pressing [Return].
- To abort the conversion, press [Esc] or [Control] [C].
-
- Examples:
-
- TOSCPM A:README.TXT B:
- TOSCPM TURN11.DAT B:T11.DTA
-
-
- TOSDIR
-
- Syntax:
-
- TOSDIR <ambiguous file specification>
-
- Purpose:
-
- The TOSDIR utility displays the directory of a TOS disk. An ambiguous
- file specification may be specified. If no drive is specified, the
- utility displays the directory of the current default drive. If you
- give no file specification, the utility lists all files in the
- directory.
-
- Examples:
-
- TOSDIR
- TOSDIR A:
- TOSDIR *.PRG
-
- STANDARD CP/M COMMANDS
-
-
- ASM NOT INCLUDED IN PACKAGE
- FOR DOCUMENTATION PURPOSES ONLY
-
- Syntax:
-
- ASM [filename]
- ASM [filename.ABC]
-
- Purpose:
-
- ASM assembles assembly language statements, producing an output file
- in Intel [tm] hexadecimal format and a print file. The source
- filetype must be ASM. Character A indicates source file drive, B
- indicates HEX file destination, and C indicates PRN file destination.
- If you put a Z in position B or C, the HEX file or PRN file is
- suppressed. An X in position C sends the print file to the console.
-
- ASM Error Messages
-
- D Data Error: Data statement element cannot be placed in
- specified data area.
- E Expression Error: Expression cannot be evaluated during
- assembly.
- L Label Error: Label cannot appear in this context (might
- be duplicate label).
- N Not Implemented: Unimplemented features, such as macros,
- are trapped.
- O Overflow: Expression is too complex to evaluate.
- P Phase Error: Label value changes on two passes through
- assembly.
- R Register Error: The value specified as a register is
- incompatible with the code.
- S Syntax Error: Improperly formed expression.
- U Undefined Label: Label used does not exist.
- V Value Error: Improperly formed operand encountered in an
- expression.
-
- Examples:
-
- A:ASM PROG
- A:ASM PROG.BBX
- A:ASM B:PROG.BZZ
-
- DDT NOT INCLUDED IN PACKAGE
- FOR DOCUMENTATION PURPOSES ONLY
-
- Syntax:
-
- DDT [filespec]
-
- Purpose:
-
- DDT is used in debugging 8080 programs. If you specify DDT without a
- filespec, DDT loads into the TPA and prompts for a command. The
- command character can be followed by one or more arguments:
- hexadecimal values, file specifications, or other information,
- depending on the command. Arguments are separated from each other by
- commas or spaces. No spaces are allowed between the command character
- and the first argument. Optional parts of the command are enclosed in
- square brackets ([]).
-
- Examples:
-
- A:DDT
- A:DDT PROGRAM.COM
-
-
- DDT Command Summary
-
- As Assemble: Enter assembly language
- statements.
- D[s[f]] Display: Display memory in Hex and ASCII.
- Fs,f,bc Fill: Fill memory block - byte.
- G[s][,b1[,b2]] Go: Begin execution.
- Hc1,c2 Hex: Hexadecimal sum and difference.
- Ifilespec Input: Set up input command line for R or W
- commands.
- L[[,f]] List: List memory in mnemonic form.
- Ms,f,d Move: Move memory block.
- R[o] Read: Read disk file to memory.
- Ss Set: Set memory values.
- T[n] Trace: Trace program execution.
- U[n] Untrace: Monitor execution without trace.
- X[r] Examine: Examine and modify CPU registers.
-
- Symbol Meaning
-
- bc byte constant
- b1 breakpoint one
- b2 breakpoint two
- c1 byte or word constant one
- c2 byte or word constant two
- d destination data
- f final address
- n number of instructions to execute
- o offset to load address
- r 8080 CPU register or flag name
- s starting address
-
-
- DIR
-
- Syntax:
-
- DIR [d:filename.typ]
-
- Purpose:
-
- DIR displays names of files on the specified disk. DIR does not
- display files set to SYS.
-
- Examples:
-
- A:DIR
- A:DIR B:
- A:DIR B:MYFILE.TEX
- A:DIR A*.ASM
- A:DIR PROG???.PRN
- A:DIR PROGRAM.*
-
-
- DUMP NOT INCLUDED IN PACKAGE
- FOR DOCUMENTATION PURPOSES ONLY
-
- Syntax:
-
- DUMP filespec
-
- Purpose:
-
- The DUMP command lets you display the contents of a file in hex. The
- DUMP.ASM file (on disk) provides you with the DUMP utility's source
- code.
-
- Example:
-
- A: DUMP ASM.COM
-
-
- ED NOT INCLUDED IN PACKAGE
- FOR DOCUMENTATION PURPOSES ONLY
-
- Syntax:
-
- ED [d:filename.typ]
-
- Purpose:
-
- ED is the CP/M line editor. Using the ED commands, you can create or
- alter your files. Optional parts of the commands are enclosed in
- square brackets ([]).
-
- Example:
-
- A:ED TEST.DAT
-
- In ED, the [Control] key appears an an up arrow ( ).
-
- L Logical [cr][lf] within strings.
- X Line delete.
- Z String terminator/separator, exit insert mode.
- Backspace Delete character.
- C Stop function.
-
-
- ED Command Summary
-
- Command Action
-
- nA Append n lines from original file to memory
- buffer.
- 0A Append file until buffer is half full.
- #A Append file until buffer is full (or end of
- file).
- B,-B Move CP to beginning (B) or bottom (-B) of
- buffer.
- nC,-nC Move CP n characters forward (C) or backward
- (-C) through buffer.
- nD,-nD Delete n characters before (-D) or after (D)
- the CP.
- E Save new file and return to CP/M.
- Fstring[Z] Find character string.
- H Save the new file, then reedit, using the
- new file as the original.
- I Enter insert mode; use Z to exit insert
- mode.
- Istring[Z] Insert string at CP.
- J[search str]Z Juxtapose strings.
- [insert str]Z
- [delete to str]Z
- nK,-nK Delete n lines from the CP.
- nL,-nL,0L Move CP n lines.
- nMcommands Execute commands n times.
- n,-n Move CP n lines and display that line.
- n: Move to line n.
- cncommand Execute command through line n.
- Nstring[Z] Extended find string.
- O Return to original file.
- nP,-nP Move CP n lines forward or backward and
- display n lines at console.
- Q Abandon new file; return to CP/M.
- R Read X$$$$$$$.LIB file into buffer.
- Rfilespec Read filename.LIB into buffer
- Sdelete str Zinsert
- str[Z Substitute string.
- nT,-nT,0T Type n lines
- U,-U Upper-case translation.
- V,-V,0V Line numbering on/off; display free buffer
- space.
- nW Write n lines to new file.
- nX Write n lines to temporary LIB file.
- QX Delete file X$$$$$$$.LIB
- nZ Wait n seconds.
-
-
- ERA
-
- Syntax:
-
- ERA [d:filename.typ]
-
- Purpose:
-
- ERA erases a file or group of files. ERA accepts wildcard filenames.
-
- Note: In the Emulator, the ERA command displays the name of each file
- as it is deleted.
-
- Examples:
-
- A:ERA PROGRAM.BAS
- A:ERA B:LETTER.DAT
- A:ERA A:LETTER.*
- A:ERA *.BAK
- A:ERA B:*.*
-
-
- LOAD NOT INCLUDED IN PACKAGE
- FOR DOCUMENTATION PURPOSES ONLY
-
- Syntax:
-
- LOAD filespec
-
- Purpose:
-
- The LOAD command invokes the LOAD utility. The LOAD utility converts
- .HEX (Intel format) program files created with ASM to executable .COM
- machine-code files. Since .HEX is the default extension, there's no
- need to include it in the filespec.
-
- Example:
-
- A: LOAD DUMP
-
-
- PIP NOT INCLUDED IN PACKAGE
- FOR DOCUMENTATION PURPOSES ONLY
-
- Syntax:
-
- Destination = Source
-
- PIP [d: |filespec = filespec][options]
- PIP [filespec = d:][options]
- PIP [d:filename.type = filespec1,filespec2,...]
- PIP [filespec|device: =
- filespec][options][|device:][options]
- PIP
-
- Purpose:
-
- PIP copies files, combine files, and transfers files between
- peripheral devices. The first filespec is the destination; the second
- filespec is the source. Source filespec with options can be repeated,
- separated by commas, to combine two or more files into one
- concatenated file. The source or destination can be any CP/M logical
- device. PIP entered with no command tail displays a * prompt and
- awaits your series of commands, entered and executed one line at a
- time.
-
- Examples:
-
- Copies from One Disk to Another
- A:PIP B: = A:DRAFT.TEX
- A:PIP B:DRAFT.TEX = A:
-
- Copy and File
- A:PIP B:NEWDRAFT.TEX = A:OLDDRAFT.TEX
- A:PIP NEWDRAFT.TEX = OLDDRAFT.TEX
-
- Copy Multiple Files
- A:PIP[cr]
- A:PIP B: = *.TEX[AV]
- A:B: = *.COM[RW]
- A:PIP B: = C:DRAFT.*
- A:PIP B: = *.*
- A:PIP B: = C:*.*
-
-
- Combine Multiple Files
- A:PIP B:NEW.DAT = FILE1.DAT,FILE2.DAT
-
- Copy, Rename, and Get from User 1
- A:PIP NEWDRAFT.TEX = OLDDRAFT.TEX[G1]
-
- Copy to/from Logical Devices
- A:PIP B:FUNFILE.SUE = CON:
- A:PIP LST: = CON:
- A:PIP LST: = B:DRAFT.TEX[T8]
- A:PIP PRN: = B:DRAFT.TEX
-
- PIP Options:
-
- Option Description
-
- A Archive: Copy only modified files.
- Dn Delete any characters past column n.
- E Echo transfer to console.
- F Filter form-feeds from source data.
- Gn Get file from user number n.
- H Test for valid Hex format.
- I Ignore :00 Hex data records, test for valid
- Hex format.
- L Translate upper-case to lower-case.
- N Number the output lines, incrementing by 1
- starting at 1. Object file transfer, Z ignored.
- Pn Set page length to n (default n = 60).
- Qs Z Quit copying from source at string s.
- R Read files that have been set to SYS (system).
- Ss Z Start copying from the source at string s.
- Tn Expand tabs to n spaces.
- U Translate lower-case to upper-case.
- V Verify that data has been written correctly.
- W Write over files that have been set to
- Read-Only.
- Z Zero the parity bit.
-
-
- PIP Logical Devices
-
- The following four devices are mapped in the IOBYTE using STAT and
- must be defined in BIOS:
-
- CON: Console device.
- LST: List device.
- PUN: Punch device.
- RDR: Reader device.
-
- Additional device names that can be used in PIP commands are:
-
- INP: Patched character input.
- OUT: Pathced character output.
- PRN: Like LST; tabs on 8th character, page breaks on
- 60th line; numbers lines.
- EOF: Generates CTRL-Z (end of file).
- NUL: Generates 40 nulls for PUN device.
-
-
- PIP Physical Devices
-
- TTY: Console, terminal, reader, punch,
- teletypewriter.
- CRT: Console, terminal, CRT device.
- PTR: Paper tape or card reader.
- PTP: Paper tape or card punch.
- LPT: List device, line printer.
- UC1: User-defined console.
- UR1: User-defined reader.
- UR2: User-defined reader.
- UP1: User-defined punch.
- UP2: User-defined punch.
- UL1: User-defined listing device.
-
-
- REN
-
- Syntax:
-
- REN [d:newfile.typ = oldfile.typ]
-
- Purpose:
-
- REN changes the name of the existing file (oldfile) to the name
- specified by newfile.
-
- Note: In the Emulator, the REN command allows you to omit one drive
- specification.
-
- Examples:
-
- A:REN NEWFILE.DAT = OLDFILE.INP
- A:REN B:NEWFILE.DAT = OLDFILE.DAT
- B:REN NEWLIST = OLDLIST
-
-
- SAVE
-
- Syntax:
-
- SAVE n[d:filename.typ]
-
- Purpose:
-
- SAVE copies to a disk file the contents of the Transient Program Area
- (TPA) starting at location 100 Hex and continuing to the page
- indicated by n in the command tail. SAVE assigns the filename and
- filetype specified in the command tail. Wildcard characters are not
- accepted. The number of pages to save can be calculated using DDT.
-
- Examples:
-
- A:SAVE 3 EXTRA.COM
- A:SAVE 40 QUICK
- A:SAVE 4 X.Y
- A:SAVE 10 B:ZOT.COM
-
-
- STAT NOT INCLUDED IN PACKAGE
- FOR DOCUMENTATION PURPOSES ONLY
-
- Syntax:
-
- Display Status
- STAT
- STAT [d:]
- STAT [filespec]
- STAT [d:DSK:]
- STAT [DEV:|VAL:|USR:]
-
- Change Status:
- STAT [d: = R/O]
- STAT [filespec $R/O|R/W|SYS|DIR]
- STAT [filespec $S]
-
- Purpose:
-
- STAT returns information about files, disk drives, and other
- peripheral devices attached to the computer. STAT changes attributes
- of drives and files. STAT with no command tail returns free storage
- space in kilobytes for the current drive, and also tells if the drive
- is Read-Only )R/O) or Read-Write (R/W). Use STAT to set the drive to
- R/O and [Control][C] to reset it to R/W. STAT filespec returns the
- number of kilobytes used by a file, and the attributes of that file.
- STAT filespec can, with an option, set a file or files to R/O, R/W,
- SYS, or DIR. STAT displays files set to SYS in parentheses. STAT
- DSK: shows the characteristics of the default or specified drive.
- STAT USR: shows which user numbers contain files on a given disk.
- STAT VAL: shows the possible commands and the external devices that
- can be assigned to your computer. STAT DEV: displays the current
- logical device assignments. STAT accepts wildcards in the command
- tail.
-
- Examples:
-
- A:STAT
- A:STAT [myfile.txt]
- A:STAT [C:letter.bak]
- A:STAT [genledgr.dat] = $R/O]
- A:STAT [*.com = $R/O]
- A:STAT [*.bak]
- A:STAT [B:*.*]
-
- Options
-
- R/W Read-Write.
- R/O Read-Only.
- SYS System attribute.
- DIR No system attribute.
- S Display the size of the file or files based
- on last record numbers.
- USR: Display USER numbers containing files.
- DSK: Display characteristic of the drive.
- VAL: Display possible STAT commands and devices.
- DEV: Display current logical device assignments.
-
- SUBMIT NOT INCLUDED IN PACKAGE
- FOR DOCUMENTATION PURPOSES ONLY
-
- Syntax:
-
- SUBMIT [filename][parameters]
-
- Purpose:
-
- SUBMIT starts execution of a file of CP/M commands, one command per
- line in the file. The SUBMIT file must have a filetype of .SUB. Any
- optional parameters following the file specification in the command
- line, such as a drive or file specification, are substituted for their
- corresponding formal parameters ($1,$2,...) in the SUBMIT file.
-
- Note: In the Emulator, command lines beginning with a semicolon (;)
- are ignored in order to support command lines within SUBMIT files.
- Also SUBMIT processing may be initiated from any drive.
-
- Examples:
-
- A:SUBMIT START
- A:SUBMIT B:START
- A:SUBMIT START C:LETTER
-
- In the preceding examples, START.SUB is the SUBMIT file. The command
- lines in START.SUB are not displayed here. In the second example,
- START.SUB is on Drive B. In the last example, the actual parameters
- C: and LETTER follow the SUBMIT filename. SUBMIT>COM creates a
- temporary file and substitutes the actual parameters in the command
- line for the formal parameters ($1, $2,...) appearing in the SUBMIT
- file START.SUB. C: is substituted for any $1 parameters that appear
- in the SUBMIT file. START.SUB LETTER is substituted for any $2
- parameters that appear in the START.SUB SUBMIT file.
-
-
- TYPE
-
- Syntax:
-
- TYPE [d:filename.typ]
-
- Purpose:
-
- TYPE displays the contents of an ASCII file on screen. Press any key
- to stop the display. TYPE does not accept wildcard filespecs.
- Entering a [Control][P] before the type command causes the output to
- be echoed to the printer; another [Control][P] stops the printing.
-
- Examples:
-
- A:TYPE [letter.dat]
- B:TYPE [a.document.law]
- B:TYPE [program.bas]
- a:TYPE [B:reader.asm]
-
-
- USER
-
- Syntax:
-
- USER n
-
- Purpose:
-
- USER with a number from 0 to 15 changes the current user number to the
- number specified by n. CP/M assumes a default user number of 0. STAT
- USR displays current and active users.
-
- Note: In the Emulator, command files not found under the current user
- are additionally searched under user 0.
-
- Examples:
-
- B:USER 2
- A:USER 7
-
-
- XSUB
-
-
- Syntax:
-
- XSUB
-
- Purpose:
-
- XSUB, when used within a SUBMIT file, allows most programs to accept
- input from command lines in the SUBMIT file rather than from the
- console. The XSUB command must appear before the command line that
- invokes the program requiring console input.
-
- Example:
-
- A:TYPE SAVER.SUB
- XSUB
- DDT
- |$1.HEX
- R
- GO
- SAVE 1 $2.COM
-
- CP/M CONTROL CHARACTER SUMMARY
-
- KEYSTROKE ACTION
-
- [CTRL][C] Aborts the current program and performs a
- warm start.
- [CTRL][E] Forces a physical carriage return, but
- does not sent command to CP/M.
- [CTRL][H] Same as [Backspace].
- [CTRL][J] Line-feed; terminates input at the
- console.
- [CTRL][M] Same as carriage return.
- [CTRL][P] Echoes all console activity at the
- printer; a second [CTRL][P] ends printer
- echo.
- [CTRL][S] Stops console listing temporarily;
- [CTRL][S] resumes the listing.
- [CTRL][X] Deletes all characters in the command
- line.
- [CTRL][Z] String or field separator.
- [Backspace] Moves cursor back one space; erases
- previous character.
- [DEL] Same as [Backspace].
- [Return] Carriage return.
-
- Note: In the Emulator, changed disks are automatically detected and
- newly logged in. [CTRL][C] is no longer necessary to log in new
- disks.
-
- CP/M FILETYPES
-
- CP/M identifies every file by a unique file specification, which
- consists of a drive specification, a filename, and a filetype. The
- filetype is an optional three character ending separated from the
- filename by a period. The filetype generally indicates a special kind
- of file. Common filetypes and their meanings follow.
-
- FILETYPE MEANING
-
- ASM Assembly language source file; the CP/M
- assembler, ASM, assembles or translates
- an .ASM file into machine language.
-
- BAK Back-up file created by text editor; the editor
- renames the source file with this filetype to
- indicate that the original file has been
- processed. The original file stays on disk
- as the back-up file, so you can refer to it.
-
- BAS CBASIC (tm) program source file.
-
- COM 8080 executable file.
-
- HEX Program file in Intel hexadecimal format.
-
- INT CBASIC program intermediate language file.
-
- IRL Indexed REL file produced by LIB.
-
- LIB Used by MAC (tm) and RMAC (tm) for macro
- libraries. The ED R command reads files of
- type LIB. The ED X command writes files of
- type LIB. Printable file displayable on
- console or printer.
-
- OVL Program overlay file. PL/I-80 (tm) compiler
- overlays files; you can create overlay files
- with LINK-80 (tm).
-
- PLI PL/I-80 source program filetype.
-
- PRN Printable file displayable on console or
- printer.
-
- REL Relocatable file produced by RMAC and PL/I-80
- that can be linked by LINK-80.
-
- SUB Filetype required for submit file containing one
- or more CP/M commands. The SUBMIT program
- executes commands in files of type SUB,
- providing a batch execution mode for CP/M.
-
- SYM Symbol table file. MAC, RMAC, and LINK-80
- output files of type SYM. SID (tm) and ZSID
- (tm) read files of type SYM.
-
- TEX Source file for TEX-80, the Digital Research
- text formatter.
-
- XRF Cross-reference file produced by XREF.
-
- $$$ Temporary file.
-
- CP/M MESSAGES
-
- ? (DDT Error Message)
-
- DDT. This message appears when DDT does not understand the assembly
- language instruction, the file cannot be opened, a checksum error
- occurred in a .HEX file, or the assembler/disassembler was overlayed.
-
-
- ABORTED
-
- PIP. You stopped a PIP operation by pressing a key.
-
-
- ASM ERROR MESSAGES
-
- D Data Error: Data statement element cannot be placed
- in specified data area.
-
- E Expression Error: Expression cannot be evaluated
- during assembly.
-
- L Label Error: Label cannot appear in this context
- (might be duplicate label).
-
- N Not implemented: Unimplemented features such as
- macros are trapped.
-
- O Overflow: Expression is too complex to evaluate.
-
- P Phase Error: Label value changes on two passes
- through assembly.
-
- R Register Error: Value specified as a register is
- incompatible with the code.
-
- S Syntax Error: Improperly formed expression.
-
- U Undefined Label: Label used does not exist.
-
- V Value Error: Improperly formed operand encountered
- in an expression.
-
-
- BAD DELIMITER
-
- STAT. Check command line for typing errors.
-
-
- BAD LOAD
-
- CCP error message, or SAVE error message.
-
-
- BDOS ERR ON D:
-
- Basic Disk Operating System (BDOS) Error on the designated drive.
- CP/M replaces d: with the drive specification of the drive where the
- rror occurred. This message is followed by one of the four phrases in
- the situations that follow.
-
- Note: The Basic Input/Output System (BIOS) passes codes to the BDOS.
- These codes detrmine which messages the BDOS prints. The BIOS is
- dependent on the hardware and varies among computers. Therefore, the
- specific cause of these BDOS error messages can vary.
-
-
- BREAK "x" AT C
-
- ED. "x" is one of the symbols described below and C is the command
- letter being executed when the error occurred.
-
- # Search failure. ED cannot find the string specified
- in an F, S, or N command.
-
- ? Unrecognized command letter c. ED does not recognize
- the indicated command letter, or an E, H, Q, or O
- command is not alone on its command line.
-
- O The file specified in an R command cannot be found.
-
- Buffer full. ED cannot put any more characters in
- the memory buffer, or the string specified in an F,
- N, or S command is too long.
-
- E Command aborted. A keystroke at the console aborted
- command execution.
-
- F Disk or directory full. This error is followed by
- either the disk or directory-full message. Refer
- to the recovery procedures listed under these
- messages.
-
-
- CHECKSUM ERROR
-
- PIP. A Hex record checksum error was encountered. The HEX record
- that produced the error must be corrected, probably by recreating the
- .HEX file.
-
- CHECKSUM ERROR
- LOAD ADDRESS hhhh
- ERROR ADDRESS hhhh
- BYTES READ:
- hhhh:
-
- LOAD: File contains incorrect data. Regenerate .HEX file from the
- source.
-
-
- COMMAND BUFFER OVERFLOW
-
- SUBMIT. The SUBMIT buffer allows up to 2048 characters in the input
- file.
-
-
- [COMMAND TEXT FOLLOWED BY]?
-
- CP/M receives a command specifying a nonexistent drive. CP/M
- terminates the current program as soon as you press any key. Press
- [Return] or [Control][C] to recover.
-
-
- COMMAND TOO LONG
-
- SUBMIT. A command in the SUBMIT file cannot exceed 125 characters.
-
-
-
- CORRECT ERROR, TYPE RETURN OR CTRL-Z
-
- PIP. A Hex record checksum was encountered during the transfer of a
- .HEX file. The .HEX file with the checksum error should be corrected,
- probably by recreating the .HEX file.
-
-
-
- CPMZ80 ERROR ON DRIVE D: BAD SECTOR
-
- This message appears when CP/M finds no disk in the drive, the disk is
- improperly formatted or power to the drive is off. Check for one of
- these situations and try again. This message can also indicate a
- hardware problem or a worn or improperly formatted disk. Press
- [Control][C] to terminate the program and return to CP/M, or press
- [Return] to ignore the error.
-
-
- CPMZ80 ERROR ON DRIVE D: BAD SECTOR
-
- CP/M cannot write to the file. This usually occurs because the disk
- is write-protected.
-
- ASM. An output file cannot be closed. This is a fatal error that
- terminates ASM execution. Check to see that the disk is in the drive
- and that the disk is not write-protected.
-
- DDT. The disk file written by a W command cannot be closed. This is a
- fatal error that terminates DDT execution. Check that the correct
- disk is in the dirve, and that the disk is not write-protected.
-
- SUBMIT. This error can occur during SUBMIT file processing. Check
- that the correct system disk is in Drive A, and that the disk is not
- write-protected. The SUBMIT job can be restarted after rebooting
- CP/M.
-
-
- CPMZ80 ERROR ON DRIVE D: BAD SECTOR
-
- PIP. PIP cannot read the specified source. Reader cannot be
- implemented.
-
-
- CPMZ80 ERROR ON DRIVE D: BAD SECTOR
-
- PIP. The destination specified in the PIP command is illegal. You
- probably specified an input device as a destination.
-
-
- CPMZ80 ERROR ON DRIVE D: BAD SECTOR
-
- PIP. The input disk file specified in a PIP command cannot be read
- properly. This is usually the result of an unexpected end-of-file.
- Correct the problem in your file.
-
-
- CPMZ80 ERROR ON DRIVE D: BAD SECTOR
-
- ASM. You specified a write-protected disk as the destination for the
- .PRN and .HEX files, or the disk has no space left. Correct the
- problem before assembling your program.
-
-
- CPMZ80 ERROR ON DRIVE D: FILE IS READ-ONLY
-
- You tried to erase, rename, or set file attributes on a Read-Only
- file. The file should first be set to Read/Write (R/W) with the
- command: STAT filespec $R/W.
-
-
- CPMZ80 ERROR ON DRIVE #: SELECT FAILED
-
- ED. you typed the ED command without a filename. Reenter the ED
- command, followed by the name of the file you want to edit or create.
-
-
- CPMZ80 ERROR ON DRIVE #: SELECT FAILED
-
- CP/M received a command line specifying a nonexistent drive, or the
- disk in the drive is improperly formatted. CP/M terminates the
- current program as soon as you press any key.
-
-
- CPMZ80 ERROR ON DRIVE D: SELECT FAILED
-
- ASM. The assembler cannot find the file you specified. Either you
- mistyped the file specification in your command line, or the filetype
- is not ASM.
-
-
- DESTINATION IS R/O, DELETE (Y/N)?
-
- PIP. The destination file specified in a PIP command already exists,
- and is Read-Only. If you type Y, the destination file is deleted
- before the file copy is done.
-
-
- DIRECTORY FULL
-
- ED. There is not enough directory space for the file being written to
- the destination disk. you can use the OXfilespec command to erase any
- unnecessary files on the disk without leaving the editor.
-
- SUBMIT. There is not enough directory space to write the $$$.SUB file
- on Drive A, which is used for processng SUBMITs. Erase some files or
- use a new disk and retry.
-
-
- DISK FULL
-
- ED. There is not enough disk space for the output file. This error
- can occur on the W,E,H, or X commands. If it occurs with an X
- command, you can repeat the command, prefixing the filename with a
- different drive.
-
-
- DISK WRITE ERROR - [FILESPEC]
-
- DDT. A disk-write operation cannot be successfully performed during a
- W command, probably due to a full disk. You should either erase some
- unnecessary files or use another disk with more space.
-
- PIP. A disk-write operation cannot be successfully performed during a
- PIP command, probably due to a full disk. You should either erase
- some unnecessary files or use another disk with more space and execute
- PIP again.
-
- SUBMIT. The SUBMIT program cannot write the $$$.SUB file to the disk.
- Erase some files or use a new disk and try again.
-
-
- ERROR: CANNOT OPEN SOURCE,
- LOAD ADDRESS hhhh
-
- LOAD. Caused by an error code returned by a BDOS function call. Disk
- might be write-protected.
-
-
- ERROR: CANNOT OPEN SOURCE,
- LOAD ADDRESS hhhh
-
- LOAD. Cannot find source file. Check disk directory.
-
-
- ERROR: DISK READ, LOAD ADDRESS hhhh
-
- LOAD. Caused by an error code returned by a BDOS function call.
-
-
- ERROR: DISK WRITE, LOAD ADDRESS hhhh
-
- LOAD. Destination disk is full.
-
-
- ERROR: INVERTED LOAD ADDRESS,
- LOAD ADDRESS hhhh
-
- LOAD. The address of a record was too far from the address of the
- previously processed record. This is an internal limitation of LOAD,
- but it can be circumvented. Use DDT to read the .HEX file into
- memory, then use a SAVE command to store the memory image file on
- disk.
-
-
- ERROR: NO MORE DIRECTORY SPACE,
- LOAD ADDRESS hhhh
-
- LOAD. Disk directory is full.
-
-
- ERROR ON LINE nnn MESSAGE
-
- SUBMIT. The SUBMIT program displays its messages in the format shown
- above, where nnn represents the line number of the SUBMIT file. Refer
- to the message following the line number (messages will vary).
-
- FILE ERROR
-
- ED. Disk or directory is full, and ED cannot write anything more on
- the disk. This is a fatal error, so make sure there is enough space
- on the disk to hold a second copy of the file before invoking ED.
-
-
- FILE EXISTS
-
- You asked CP/M to create or rename a file using a file specification
- that is already assigned to another file. Either delete the existing
- file or use another file specification.
-
- REN. The new name specified is the name of a file that already
- exists. You cannot rename a file with the name of an existing file.
- If you want to replace an existing file with a newer version of the
- same file, either rename or erase the existing file, or use the PIP
- utility.
-
-
- FILE EXISTS, ERASE IT
-
- ED. The destination filename already exists when you are placing the
- destination file on a different disk than the source. It should be
- erased, or another disk selected to receive the output file.
-
-
- ** FILE IS READ/ONLY **
-
- ED. The file specified in the command to invoke ED is Read-Only. ED
- can read the file so that you can examine it, but ED cannot change a
- Read-Only file.
-
-
- FILE NOT FOUND
-
- CP/M cannot find the specified file. Check that you have entered the
- correct drive specification and that you have the correct disk in the
- drive.
-
- ED. ED cannot find the specified file. Check that you have entered
- the correct drive specification and that you have the correct disk in
- the drive.
-
- STAT. STAT cannot find the specified file. The message might appear
- if you omit the drive specification. Check that the correct disk is
- in the drive.
-
- hhhh?? = dd
-
- DDT. The ?? indicates DDT does not know how to represent the
- hexadecimal value dd encountered at address hhhh in 8080 assembly
- language. dd is not an 8080 machine instruction opcode.
-
-
- INSUFFICIENT MEMORY
-
- DDT. There is not enought memory to load the file specified in an R
- or E command.
-
-
- INVALID CONTROL CHARACTER
-
- SUBMIT. The only valid control characters in the SUBMIT file of type
- SUB are A through Z. Note that in a SUBMIT file, the control
- character is represented by typing the circumflex, not by pressing the
- [Control] key.
-
-
- INVALID DIGIT: STRING
-
- PIP. An invalid hex digit has been encountered while reading a .HEX
- file. The hex file with the invalid .HEX digit should be corrected,
- probably by recreating the .HEX file.
-
-
- INVALID DISK ASSIGNMENT
-
- STAT. You specified an invalid drive or file assignment, or
- misspelled a device name. This error message might be followed by a
- list of the valid file assignments that can follow a filename. If an
- invalid drive assignment was attempted, the message "Use: d: = RO" is
- displayed showing the proper syntax for drive assignments.
-
-
- INVALID DISK ASSIGNMENT
-
- STAT. Might appear if you follow the drive specification with
- anything except = R/O.
-
-
- INVALID DRIVE NAME (USE A, B, C, OR D)
-
- SYSGEN. SYSGEN recognizes only drives A, B, C, and D as valid
- destinations for system generation.
-
-
- INVALID FILE INDICATOR
-
- STAT. Appears if you do not specify RO, RW, DIR, or SYS.
-
-
- INVALID FORMAT: [FILESPEC]
-
- PIP. The format of your PIP command is illegal. See the description
- of the PIP command.
-
-
- INVALID FORMAT: [FORMAT STRING]
-
- PIP. You have placed an invalid character for a separator between two
- input filenames.
-
- INVALID FORMAT: SYNTAX
-
- PIP. You entered an illegal parameter in a PIP command. Retype the
- entry correctly.
-
-
- INVALID HEX DIGIT
- LOAD ADDRESS hhhh
- ERROR ADDRESS hhhh
- BYTES READ:
- hhhh
-
-
- INVALID MEMORY SIZE
-
- MOVCPM. Specify a value less than 64K or your computer's actual
- memory size.
-
-
- N?
-
- LOAD. File contains incorrect .HEX digit.
-
- USER. You specified a number greater than 15 for a user area number.
- For example, if you type USER 16[cr], the screen displays 16?.
-
-
- NO DIRECTORY SPACE
-
- ASM. The disk directory is full. Erase some files to make room for
- .PRN and .HEX files. The directory can usually hold only 64
- filenames.
-
-
- NO DIRECTORY SPACE - [FILESPEC]
-
- PIP. There is not enough directory space for the output file. you
- should either erase some unnecessary file or get another disk with
- more directory space and execute PIP again.
-
-
- NO FILE: = [FILESPEC]
-
- DIR, ERA, REN, PIP. CP/M cannot find the specified file, or no files
- exist.
-
- ASM. The indicated source or include file cannot be found on the
- disk.
-
- DDT. The file specified in an R or E command cannot be found on the
- disk.
-
-
- NO FILE: = [FILESPEC]
-
- PIP. An input file that you have specified does not exist.
-
-
- NO INPUT FILE PRESENT ON DISK
-
- DUMP. The file you requested does not exist.
-
-
- NO MEMORY
-
- There is not enough memory available for loading the program
- specified.
-
-
- NO SUB FILE PRESENT
-
- SUBMIT. For SUBMIT to operate properly, you must create a file with
- filetype of SUB. The SUB file contains usual CP/M commands. Use one
- command per line.
-
-
- NOT FOUND: [FILESPEC,#]
-
- PIP. You have specified a user number greater than 15. User numbers
- are in the range of 0 to 15.
-
-
- ** NOT DELETED **
-
- PIP. PIP did not delete the file, which might have had the R/O
- attribute.
-
-
- PARAMETER ERROR
-
- SUBMIT. Within the SUBMIT file of type SUB, valid parameters are $0
- through $9.
-
-
- QUIT NOT FOUND: - [FILESPEC]
-
- PIP. The string argument to a Q parameter was not found in your input
- file.
-
-
- READ ERROR
-
- TYPE. An error occurred when reading the file specified in the type
- command. Check the disk and try again. The STAT filespec command can
- diagnose trouble.
-
-
- READER STOPPING
-
- PIP. Reader operation interrupted.
-
-
- RECORD TOO LONG
-
- PIP. PIP cannot process a record longer than 128 bytes.
-
-
- SOURCE FILE NAME ERROR
-
- ASM. When you assemble a file, you cannot use the wildcard characters
- * and ? in the filename. Only one file can be assembled at a time.
-
-
- START NOT FOUND = [FILESPEC]
-
- PIP. The string argument to an S parameter cannot be found in the
- source file.
-
-
- CHAPTER 3
- CP/M AND CP/M-Z80 EMULATOR TECHNICAL REFERENCE
-
- EMULATOR IMPLEMENTATION
-
- The Emulator is completely written in assembly language and maximally
- uses the large register frame of the MC 68000.
-
- Z80 I/0 opcodes are supported by a built-in interface of user-supplied
- drivers.
-
-
- NOTES ON CPM-Z80 EMULATOR CCP IMPLEMENTATION
-
- The Console Command Processor (CCP) is CP/M 2.2 upward compatible but
- enhanced in many respects.
-
- User Memory (TPA) is 58K ("63K CP/M").
-
-
- EMULATOR BDOS IMPLEMENTATION
-
- The BDOS system interface is totally compatible with CP/M 2.2. Full
- implementation of the BIOS interface permits application programs to
- use direct BIOS access (even disk related).
-
- Changed disks are automatically detected and newly logged in. The
- [Control] [C] command is no longer necessary.
-
- With disk read and write errors, the user can optionally abort, retry,
- or ignore the error.
-
-
- EMULATOR BIOS IMPLEMENTATION
-
- The BIOS functions are directed to 68000 routines which use the TOS
- BIOS.
-
- All physical I/O devices implemented under TOS are accessible under
- the CPM-Z80 Emulator. The printer port is mapped to the CPM-Z80 LST:
- device; the TTY device corresponds to the modem port; the floppy
- drives act as A: and B: drives under the Emulator; and the CON: device
- accesses the keyboard and screen of the ATARI ST Computer.
-
- A fully implemented CP/M 2.2 compatible I/O byte allows the user to
- change the logical to physical I/O device-mapping.
-
-
- EMULATOR PERFORMANCE
-
- The time ratio (Emulator/Z80) between the Emulator on an 8MHz 68000
- system and a 4MHz Z80 system was measured for some CP/M 2.2 programs:
-
- Extreme Values: 0.6 and 6.0
- Average: 2.0
-
-
- EMULATOR INTERFACE TO USER I/O
-
- A special interface is provided to line 68000 hardware I/O to Z80
- programs. A user-supplied I/O driver can optionally be activated.
- When you boot the Emulator, it looks for the file EMUIO.PRG. The
- Emulator tries to open this file and loads it. If the file was loaded
- successfully, the I/O driver is activated and the Emulator displays
- the message:
-
- Emulator I/O driver installed.
-
- If a hardware I/O driver cannot be found, Z80 I/0 opcodes in emulated
- programs lead to the message:
-
- Emulator error => Illegal opcode : XX XX at address : XXXX
-
- and the Emulator is aborted.
-
-
- GENERAL RESTRICTIONS
-
- The Emulator does not support any undocumented Z80 opcodes or
- hardware-dependant opcodes such as interrupt control. If the Emulator
- finds such opcodes in emulated programs, it aborts with the message
-
- Emulator error => Illegal opcode : XX XX at address : XXXX
-
-
- EMULATOR I/O DRIVER CONVENTIONS
-
- If a user-driver is activated, the Z80 I/O opcodes are directed into
- this driver. The driver has to be a user-coded 68000 program with the
- following conventions:
-
- The driver code must begin with two jump instructions. The first jump
- is used by all input requests and the second by all output requests.
- These jumps lead to the user input and output service routines. These
- routines terminate with a Return To Subroutine (RTS) instruction.
-
- The input routine receives the Z80 port number in the low byte of
- register D0, and must return the input value in the low byte of D0.
-
- The output routine receives the Z80 port number in the low byte of
- register D0, and the output value in the low byte of D1.
-
- All registers may be used within the user-driver. The user-driver
- must be supplied as a TOS ".PRG" file. The following is a user I/O
- driver example:
-
- This simple 68000 code example shows how to access 16 contiguous I/0
- ports from startaddress $FFFF81 through $FFFF9F on odd addresses. For
- example, the Z80 instruction IN A,(07H) in an emulated program would
- read a byte from 68000 address $FFFF8F.
-
- .TEXT
-
- IOBASE: .EQU $FFFF80
-
- IO: JMP INPUT
- JMP OUTPUT
-
- INPUT: MOVE.L #IOBASE,A0
- AND.W #$000F,D0
- ADD.W D0,D0
- MOVE.B 1(A0,D0.W),D0
- RTS
-
- OUTPUT: MOVE.L #IOBASE,A0
- AND.W #$000F,D0
- ADD.W D0,D0
- MOVE.B D1,1(A0,D0.W)
- RTS
-
- .END
-
- CP/M BDOS FUNCTION SUMMARY>
-
- No. Hex Function Name Input Output
-
- 0 00H Sys Reset None None
- 1 01H Con Input None A=char
- 2 02H Con Output E=char None
- 3 03H Reader Input None A=char
- 4 04H Punch Output E=char None
- 5 05H List Output E=char None
- 6 06H Direct Con I/O * E=0FEH inpt A=0 or Char
- 0FEH stat 0 or nonzero
- Char outpt No value
- 7 07H Get I/O Byte None A=IOBYTE
- 8 08H Set I/O Byte E=IOBYTE None
- 9 09H Print String DE=.Buffer None
- 10 0AH Read Con Buf DE=.Buffer Chars in Buf
- 11 0BH Get Con Status None A=00/nonzero
- 12 0CH Rtn Version # None HL=Vers **
- 13 0DH Reset Disk Sys None None
- 14 0EH Select Disk E=Disk Num None
- 15 0FH Open File DE=.FCB A=Dir Code
- A=FF if
- not found
- 16 10H Close File DE=.FCB A=Dir Code
- A=FF if
- not found
- 17 11H Search for First DE=.FCB A=Dir Code
- A=FF if
- not found
- 18 12H Search for Next None A=Dir Code
- A=FF if
- not found
- 19 13H Delete File DE=FCB A=Dir Code
- A=FF if code
- not found
- 20 14H Read Seq DE=FCB A=0 if ok
- A=Err Code
- 21 15H Write Seq DE=FCB A=0 if ok
- A=Err Code
- 22 16H Make File DE=FCB A=Dir Code
- A=FF if no
- Dir space
- 23 17H Rename File DE=FCB A=Dir Code
- A=FF if
- not found
- 24 18H Rtn Login Vect None HL= Login
- Vect **
- 25 19H Rtn Cur Disk None A=Cur Disk #
- 26 1AH Set DMA Addr DE=DMA None
- 27 1BH Get Addr(Alloc) None HL=Login
- 28 1CH Write Prot Disk None None
- 29 1DH Get R/O Vect None HL=R/O Vect **
- 30 1EH Set File Attrib DE=FCB None
- 31 1FH Get Addr
- (dsk parm)
- 32 20H Set/Get Usr Code E=0FFH GET User #
- E=0-0FH SET
- 33 21H Read Ran DE=FCB A=Err Code
- 34 22H Write Ran DE=FCB A=Err Code
- 35 23H Compute File Size DE=FCB r0,r1,r2
- 36 24H Set Ran Rec DE=FCB r0,r1,r2
- 37 25H Reset Drive *** DE=drv vect A=0
- 40 28H Write Ran w/Fill DE=FCB A=Err Code
-
- *Note that function 6 must be used with functions
- 1,2,9, or 11
- **Note that A=L and B=H upon return
- ***Default drive cannot be reset.
-
- The preceding table used these abbreviations
-
- Addr = Address
- Alloc = Allocation
- Attrib = Attribute
- Buf = Buffer
- Char = ASCII Character
- Con = Console
- Cur = Current
- Dir = Directory
- Dsk = Disk
- Err = Error
- Parm = Parameter
- Prot = Protect
- Ran = Random
- Rec = Record
- Rtn = Return
- Seq = Sequential
- Stat = Status
- Sys = System
- Usr = User
- Vect = Vector
- Vers = Version
-
-
- *END OF MANUAL*
- əəəəəəəəəəə