home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
emulator
/
os2
/
cpmv2.doc
< prev
next >
Wrap
Text File
|
1990-05-27
|
11KB
|
331 lines
Documentation for CP/M-Emulator Version 2.0
===========================================
Achtung deutsche Anwender: Dies ist die Übersetzung der ursprünglich
deutschen Dokumentation. Bitte lesen sie diese !
For our international users: This is the translation of a german document.
There may be several language problems, because the author isn't a native
speaker (nor writer) of English. It would be very kind, if a native speaker
of the English language could correct all errors and send the doc-Files back
CCWN-Box W. Germany (Phone Number at the end.)
1. CCP (Console Command Processor)
----------------------------------
The CCP is not located within the 64k-adress space of the Z80 (8080). It is
comletely written in 80286-code (runs on V20/V30, NOT on 8086/88) und doesn't
touch the TPA-Region of CP/M at all (except COPY operation on DOS-Versions !).
For this reason the emulator has a big TPA of FD00H byte (there are always
100H bytes used for BDOS, BIOS and Zero-Page.
Now follows a description of all CCP commands implemented on the OS/2 Version.
Commands not available in the DOS version are marked. Although this emulator
emulates a CP/M system, all commands are made similar to those available in
OS/2 or DOS for a unique user interface for all command line processors used
on one computer system.
The following syntax descriptions use always spaces as separators. But
following the MS-DOS-Convention Tabs, Commas, Semicolon and Linefeeds
(LF = Ctrl + Return) are also valid separators.
In the following is used:
d: => Drive letter (f.e. A:)
path => complete path from root like in DOS or OS/2 (max. 63 Characters)
fname => File name (8+3 Characters)
names in square brackets [] are optional.
1.1 TYPE
--------
usage: TYPE [d:][path]fname
Shows contents of a file on console. Wildards are not allowed.
1.2 COPY
--------
usage: COPY [d:][path]fname [d:][path]fname
Copies one or more files. Wildcards '?' and '*' are allowed. They have the
same meaning as in DOS (or compatibility-box). (Not like in OS/2 1.20 or later)
The destination filename must be given. It isn't allowed to use '.' for
filename.
Copying from character devices (f.e: COPY CON: file.ext) is available in the
OS/2 Version only.
1.3 REN
-------
usage: REN [d:][path]fname [path]fname
This command can be used for two purposes. It can be used for renaming a
file or for moving it to another directory.
This function depends on the path for the destination file. If a path is used
for the destination filename, the file will be moved to that directory.
Examples:
REN *.ASM *.OLD (rename of multiple files)
REN \WORK\*.TXT *.BAK (rename of files in another directory)
REN *.ASM \WORK\*.ASM (move files to another directory (MOVE-Operation))
REN \A.DAT \VERZ\B.DAT (move and rename a file in a single command)
1.4 CLS
-------
usage: CLS
Clear Screen. This is done by an ANSI-Sequence; ANSI.SYS must be installed in
CONFIG.SYS (DOS and comp. box) or ANSI must be enabled (OS/2).
1.5 DIR
-------
usage: DIR [d:][path]fname
Show directory. Wildcards are allowed in filename. The use of '.' is allowed.
Control parameters '/w' and '/p' are not yet implemented.
1.6 CHDIR / MKDIR / RMDIR
-------------------------
usage: CHDIR [lw:][path]
MKDIR [lw:]path
RMDIR [lw:]path
Change of default path, creation or deletion of a directory. The short forms
CD/MD/RD can also be used.
CD (CHDIR) without any argument shows the current directory.
CD must be followed by a separator !
1.7 ERA/DEL
-----------
usage: ERA [lw:][path]fname or
DEL [lw:][path]fname
Erase of one ore more files. Wildcards '?' and '*' are allowed.
ATTENTION: There is NO 'Are you sure (Y/N)?'-Question when deleting *.* !!
1.8 EXIT
--------
Syntax: EXIT
Return to parent process. This is either COMMAND.COM (in DOS or comp. box)
or CMD.EXE, Session Manager or Presentation Manager (depending on Installation).
Errorlevel is always 0. Exits the emulator to dos for another reason
(memory allocation problems or system failure) errorlevel is not zero.
1.9 SAVE
--------
usage: SAVE block [d:][path]fname
Saves the memory block from 100H to the file 'fname'. The size of the block
is 256 byte * 'block'. When 'block' exceeds 256 an errormessage will be
printed. For use with non-CP/M-programs the 256 * 'block' can exceed the
TPA-Size. The offset of 100H can't be changed, yet.
Attention: 'block' is a decimal number !
1.10 RUN
--------
usage: RUN [lw:][path]fname [loffset [roffset]]
This command starts a non-CP/M-program in Z80 (8080) - Mode. The program
will be loaded to 'loffset' and starts execution at 'roffset'.
The default value for 'loffset' is 100H, for 'roffset' is it 'loffset'.
(For more information about non-CP/M-programs see Chapter 3.)
1.11 SET
--------
usage: SET [variable=[value]]
Environment handling is available in both DOS and OS/2 version. In DOS the
maximum size of environment depends on the size of environment at program
start time.
Are there for example 20 characters in the environment when the program is
started, this will be rounded up to full paragraph size (2*16 = 32 > 20).
This does not depend on the program this is a DOS feature !
To avoid environment space shortage there should be allocated enough space
before starting for example by typing this:
SET a=00000000000000000000000000000000000000000000000000000000000000000000
The environment variable 'a' can be removed after starting the emulator and
there is enough free environment space for use.
Environment Variables with special meanings in this program:
DEBUG=on|off - With Debug on the emulator starts automatically the integrated
CP/M debugger when an CP/M Program is started. (Default 'off')
BREAK=on|off - With Break off Ctrl-C and Ctrl-Break are recognized only during
that BDOS-CALLS which make Break-Checks according to CP/M-
documentation. Is Break on, even an endless loop can be broken.
In Programs that need Cntl-C for internal purpose, like MBASIC,
this leads to a unwanted jump back to CCP. If you want to send
Cntl-C to such a program with Break on use Alt-PgDn (Alt-3).
(Default 'off')
ASCII_SIZE=8_bit|7_bit
- At console output through BIOS and BDOS ASCII-Characters are
truncated to the given size. (With ASCII_SIZE '7_bit' the 7th
bit of every character is masked to 0).
CCP-PROMPT - Prompt of CCP. Its the same as 'PROMPT' in OS/2.
$I is available too.
DEB-PROMPT - Prompt of Z80 debugger. Like above.
instead of $I use $J here for header line.
1.12 SHELL
----------
usage: SHELL [command]
This command starts a new command line processor CMD.EXE or COMMAND.COM.
If 'command' is given, this command will be executed. The command 'EXIT'
in COMMAND.COM or CMD.EXE leads back to the emulator.
2. Details About CCP
--------------------
To start the emulator type
CPMZ80 [/C|/K [string]]
If there are no arguments, the emulator starts and prompts for command
input. When you want the emulator to do something right after startup,
use the '/K' option and 'string' for the command witch is to be done.
If you use '/C' instead the emulator executes the given command and
returns to OS/2 (DOS respectively) when finished. This option is useful
only if 'string' is a 'submit' (BATCH) file.
Examples:
CPMZ80 /C MAKE.SUB - Start of a batch file (SUBmit). This batch might
call a C compiler, a macro assembler and a linker
afterwards to build a executable file from a C source.
It returns to OS/2 or DOS when finished.
CPMZ80 /K CPMINIT - Start of a 'CP/M-Autoexec'. This is useful to set
the above named environment variables to wanted
values. A CPMINIT.SUB file could look like this:
SET CCP-PROMPT=($I$P)
SET DEB-PROMPT=$J->
SET BREAK=ON
SET DEBUG=OFF
CLS
3. Z80 Emulation
----------------
This program emulates all documented instructions of the Z80 (8080) with
the following exceptions:
All interrupt control instructions are handled as NOPs (EI, DI, ...) The
RETURN instructions from interrupt routines (RETI, RETN) are handled like
siple RETs.
All kinds if IN and OUT instructions lead to a TRAP handler and can't be
executed (They can only be skipped by the 'O'-command.)
The HALT instruction also leads to a TRAP handler and could be used for
debugging purposes. Its the same for all instructions not documented by
ZILOG (Intel when 8080 is used).
For all CP/M programs the normal CP/M conventions are valid:
BDOS-Entry is CALL 5
WARMBOOT-Entry is CALL 0
Only the routines for direct console I/O can be used from BIOS. DISK I/O
routines would interfere with OS/2 and not CP/M compatible FAT file system.
For CP/M programs is the TPA from 100H up to FDFFH (64768 bytes) available.
Non-CP/M-Programms:
Non-CP/M-Programs are programs using memory locations outside the TPA.
These programs could use all 64k of memory adressable by the Z80.
But if memory outside the TPA is used system calls (most for diagnostics)
have to be made in another way.
The Interface to the operating system is an OPCODE not defined by ZILOG.
This is the OPCODE EDEDnn, where nn is a byte which defines the type of
system call. The following function types are available:
nn = 0: BDOS
nn = 1: BOSI (special OS/2 services as timer, direct screen access; OS/2 only)
nn = 2: BOOT
nn = 3: WARMBOOT (identical to BOOT)
nn = 4: CONSTATUS
nn = 5: CONIN
nn = 6: CONOUT
nn = 7: LIST (dummy operation in this release)
nn = 8: AUXOUT (dummy operation in this release)
nn = 9: AUXIN (dummy operation in this release)
examples for Non-CP/M-Programms
BDOS-Calls:
The Registers are exactly as in CP/M BDOS calls. The Call is not CALL 5
but EDED00.
.Z80
START: LD E,char ;load character
LD C,2 ;BDOS function: CONSOLE OUTPUT
DB 0EDH,0EDH,0
LD C,0 ;BDOS function: SYSTEM RESET
DB 0EDH,0EDH,0 ;(back to CCP)
end START
BIOS-Calls:
The Registers are exactly as in CP/M BIOS calls.
This program does the same as the above, but with BIOS calls.
.Z80
START: LD A,char ;load character
DB 0EDH,0EDH,6 ;BIOS funktion CONOUT
DB 0EDH,0EDH,2 ;BIOS funktion BOOT
end START
4. In Preparation - Next Version
--------------------------------
- Handling of OUT/IN instructions
- Online assembler in debugger
No software is bug-free. If you find any bug, please report it to us.
We also appreciate ideas for improvement.
The Authors
Klaus Breining; Markus Noller
Reachable as
"Markus Noller"
in CCWN-Box
Pin: "OS/2"
Phone: xx49/7151/68434
or by German Fido pin "OS2.GER"