UP HOME

CP/M Utilities for the xtrs Emulator

Contents

Programs
EXPORT
IMPORT
XTRS
Bug Reports
Download

Programs

These programs were written for CP/M and make use of the emulator traps in Tim Mann's xtrs Emulator.

IMPORT and EXPORT also work (with the exception of the -H option) when running CP/M on David Keil's Model 4/4P Emulator.

EXPORT

Export CP/M file(s) to the host operating system.

Usage

Usage:	EXPORT [-H][-L][-T][-V] cpmfileref [hostfilename]

Where:	cpmfileref is the local file to export
	   (use "?" and "*" to specify multiple files)
	hostfilename is the name of the file to create on the host
	   (converted to uppercase by default), use -L to convert
	   to lowercase and [ to toggle case of next character.
	-H switches emulator to high speed and restores speed when done.
	-L converts hostfilename to lowercase.
	-T export text file (CR LF becomes LF, stop at SUB character).
	-V (verbose) display "r" for block read, "w" for block written.

Notes

CP/M does not keep an accurate file size. Binary files are always multiples of 128 byte blocks; text files end at the first sub character.

The CP/M CCP converts all command line parameters to uppercase, hence the need of the -L option and the use of [ to toggle the case of the next character within the hostfilename.

Examples

EXPORT -LT HELPFILE.TXT README.TXT
Export local file "HELPFILE.TXT" as a text file to "readme.txt" on the host.

EXPORT RUNME.COM
Export local file "RUNME.COM" as a binary file to "RUNME.COM" on the host.

IMPORT

Imports a file from the host operating system to CP/M.

Usage

Usage:	IMPORT [-F][-H][-L][-T][-V] hostfilename [cpmfilename]

Where:	hostfilename is the name of the file on the host
	   (converted to uppercase by default), use -L to convert
	   to lowercase and [ to toggle case of next character.
	cpmfilename is the name of the CP/M file to create,
	   existing files will not be overwritten unless -F is used.
	-F overwrite existing files.
	-H switches emulator to high speed and restores speed when done.
	-L convert hostfilename to lowercase.
	-T import text file (LF becomes CR LF, add SUB at end of file).
	-V (verbose) display "r" for block read, "w" for block written.

Notes

CP/M does not keep an accurate file size, both binary and text files will be padded to multiples of 128 byte blocks.

The CP/M CCP converts all command line parameters to uppercase, hence the need of the -L option and the use of [ to toggle the case of the next character within the hostfilename.

Examples

IMPORT -LT README.TXT HELPFILE.TXT
Import "readme.txt" from the host as a text file to "HELPFILE.TXT".

IMPORT RUNME.COM
Import "RUNME.COM" from the host as a binary file to "RUNME.COM".

XTRS

Controls miscellaneous functions of the xtrs emulator.

Usage

Usage:	XTRS action [parameters]

Where:	action is one of the following:
	   BOOT - reboot emulator
	   CHANGE - signal disk change
	   DEBUG - enter debugger
	   EXIT - end emulator
	   HIGHSPEED - high speed (autodelay off)
	   MOUNT [-L] hostfilename disknum - mount disk
	   NORMALSPEED - normal speed (autodelay on)
	   REPORT - report status
	   SYSTEM command - execute command on host
	   UMOUNT disknum - umount disk
	hostfilename is the name of the virtual disk file on the host
	   (converted to uppercase by default), use -L to convert to
	   lowercase and [ to toggle case of next character.
	command is the command (and parameters) to execute on the host
	   (converted to lowercase by default), use [ to toggle case.
	   Note output from command is NOT displayed in the XTRS window.
	disknum is disk drive number (between 0 and 3 inclusive).
	-L converts hostfilename to lowercase.

Warning

The XTRS program assumes that the emulator's virtual disk files - diskM-U (where M is the TRS-80 model and U is the drive number) - are symbolic links. For example:

$ ls -l
-rw-r--r--    1 user  group    213504 Mar 21 15:24 cpmutil.dsk
lrwxrwxrwx    1 user  group        10 Mar  5 12:40 disk4p-0 -> system.dsk
lrwxrwxrwx    1 user  group        11 Mar  7 13:49 disk4p-3 -> cpmutil.dsk
-rw-r--r--    1 user  group    745984 Mar 24 17:38 system.dsk

The MOUNT action deletes the diskM-U file, replaces it with a symbolic link to the given filename and signals a disk change (as if F7 had been pressed).

The UMOUNT action deletes the diskM-U file and signals a disk change.

Notes

When changing disks, remember that CP/M must also be told of the disk change. This is usually done by pressing ctrl-C at the prompt.

Examples

XTRS MOUNT -L DATA.DSK 1
Mount the virtual disk file "data.dsk" on drive 1. The actual command that would be executed on the host is:
rm -f disk4p-1;test -f data.dsk && ln -s data.disk disk4p-1

XTRS UMOUNT 1
Unmount the virtual disk file associated with drive 1. The actual command that would be executed on the host is:
rm -f disk4p-1

Bug Reports

Send Bug Reports and comments to Roland Gerlach.

Download

cpmutil.tgz
Source code and programs in a gzipped tar file.

cpmutil.dsk.gz
All of these programs (including source code) on a virtual disk formatted as a "Montezuma Micro Standard DATA disk (40T, SS, DD, 200K)" with 512-byte sectors. Be careful to configure CP/M with the proper disk format and drive parameters (40 tracks, not 80 tracks), or you will have problems reading this disk.


Comments and suggestions are welcome, send them to Roland Gerlach.