mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 16:34:07 +00:00
271 lines
9.5 KiB
Plaintext
271 lines
9.5 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
CP/M-68K Cross Software for VMS
|
||
-------------------------------
|
||
|
||
|
||
Revision 01.04
|
||
--------------
|
||
|
||
|
||
August 28, 1983
|
||
---------------
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Digital Research, Inc
|
||
P.O. Box 579
|
||
Pacific Grove, CA 93950
|
||
(408) 649-3896
|
||
TWX 910 360 5001
|
||
|
||
|
||
|
||
|
||
************************
|
||
* Company Confidential *
|
||
************************
|
||
|
||
|
||
|
||
|
||
Note: This document contains Digital Research proprietary infor-
|
||
mation, and must not be copied or distributed for any purpose
|
||
whatsoever, without prior written permission of Digital Research,
|
||
Inc.
|
||
|
||
|
||
Address Comments to: Steve Williams, x6082
|
||
|
||
|
||
CP/M-68K Cross Software for VMS Page 2
|
||
Introduction
|
||
|
||
|
||
1.0 Introduction
|
||
|
||
This document describes the installation and execution
|
||
procedures for the Digital Research 68000 cross development
|
||
software for VAX/VMS. This software includes the C compiler,
|
||
assembler, linker, archiver, symbol table print utility, object
|
||
module size utility, and S-Record conversion utility. These
|
||
tools execute in much the same fashion as they do under CP/M-68K,
|
||
as documented in the CP/M-68K Programmer's Guide.
|
||
|
||
2.0 Installation Procedures
|
||
|
||
The tools are distributed on a 9-track FLX format mag tape
|
||
(either 800 or 1600 bpi is available). To bring up the software
|
||
on VMS, perform the following steps:
|
||
|
||
1. Login to a valid account.
|
||
|
||
2. Create directories for four ersatz devices: "bin:" (.exe
|
||
files), "com:" (command files), "lib:" (library files),
|
||
and "cpm:" (CP/M-68K files).
|
||
|
||
3. Enter VMS "ASSIGN" commands for these directories in
|
||
LOGIN.COM, e.g:
|
||
|
||
$ assign drb0:[c.bin] bin:
|
||
$ assign drb0:[c.com] com:
|
||
$ assign drb0:[c.lib] lib:
|
||
$ assign drb0:[c.cpm] cpm:
|
||
|
||
Note that the full path name must be specified.
|
||
|
||
4. Perform the above assignments manually, re-login or
|
||
re-execute LOGIN.COM to make the device names valid.
|
||
|
||
5. Read the tape as follows:
|
||
|
||
$ allocate mt:
|
||
$ mount mt:/foreign
|
||
$ set def lib:
|
||
$ mcr flx /rs=mt:[1,1]*.*/do/im
|
||
$ mcr flx /rs=mt:[1,2]*.*/do
|
||
$ set def bin:
|
||
$ mcr flx /rs=mt:[1,3]*.*/do
|
||
$ set def cpm:
|
||
$ mcr flx /rs=mt:[1,4]*.*/do/im
|
||
$ mcr flx /rs=mt:[1,5]*.*/do
|
||
$ set def com:
|
||
$ mcr flx /rs=mt:[1,6]*.*/do
|
||
$ @install
|
||
$ dismount mt:
|
||
$ deallocate mt:
|
||
|
||
|
||
CP/M-68K Cross Software for VMS Page 3
|
||
Installation Procedures
|
||
|
||
|
||
You may need to replace the "mt:" device name above with a
|
||
different device name, depending on the type of tape drive
|
||
you have. Consult your system administrator for details.
|
||
|
||
6. Add the statements in the file "xlogin.com" to LOGIN.COM
|
||
so that the proper command definitions are performed at
|
||
login time.
|
||
|
||
Once the above steps have been performed, the software is ready
|
||
to use on VMS.
|
||
|
||
3.0 Operating Instructions
|
||
|
||
The following sections describe how to run the installed
|
||
cross software on VMS.
|
||
|
||
3.1 C compilation
|
||
|
||
A C compilation is performed using the 'c68' command as
|
||
follows:
|
||
|
||
$ c68 file
|
||
|
||
The ".c" extension is implied and must not be specified. The
|
||
'c68' command is extremely similar to the 'C' SUBMIT file on
|
||
CP/M-68K. Default floating point format is Motorola FFP using
|
||
the "c68" command. The "ce68" command causes the compiler to use
|
||
IEEE format floating point numbers.
|
||
|
||
3.2 Assembly
|
||
|
||
The assembler is invoked in exactly the same manner as on
|
||
CP/M-68K. The output (listing and errors) can be redirected to a
|
||
file or device using the ">filename" construct. A sample command
|
||
is:
|
||
|
||
$ as68 -l -u -p file.s >file.lis
|
||
|
||
This command assembles "file.s" and places the object in
|
||
"file.o". The listing is output to "file.lis". All assembler
|
||
options valid under CP/M-68K may be used on VMS as well.
|
||
|
||
3.3 Linking
|
||
|
||
The LO68 program is used with the same options and command
|
||
line syntax as on CP/M-68K. For example,
|
||
|
||
$ lo68 -r -o file.rel file1.o file2.o
|
||
|
||
links "file1.o" with "file2.o", creating "file.rel", a relocat-
|
||
able format file.
|
||
|
||
|
||
CP/M-68K Cross Software for VMS Page 4
|
||
Operating Instructions
|
||
|
||
|
||
C programs are linked using the "clink" command, as with
|
||
CP/M-68K:
|
||
|
||
$ clink file1
|
||
|
||
This links "file1.o" with the C runtime software to produce
|
||
"file1.rel", a relocatable format 68000 load module. Separately
|
||
compiled modules may be linked in the following way:
|
||
|
||
$ clink file1 file2 file3 file4 ...
|
||
|
||
All of the object files are linked to produce "file1.rel". A
|
||
limit of 9 such files is imposed by the command file.
|
||
|
||
The "clink" command procedure assumes that the program being
|
||
linked does not use floating point. To link a program using FFP
|
||
floating point, use "clinkf" instead of "clink". IEEE floating
|
||
point programs (those compiled with the "ce68" command) are
|
||
linked using "clinke".
|
||
|
||
3.4 Archive Files
|
||
|
||
The CP/M-68K archive program (AR68) can be used under VMS
|
||
exactly in the same fashion as under CP/M-68K. For example, to
|
||
create a library file:
|
||
|
||
$ ar68 r lib a.o b.o c.o
|
||
|
||
This command creates a library called "lib" containing the three
|
||
files "a.o", "b.o", and "c.o".
|
||
|
||
4.0 Building CP/M-68K
|
||
|
||
Using the VAX cross tools to build CP/M-68K is similar to
|
||
building the operating system on CP/M. You link the BIOS with
|
||
CPMLIB to produce a relocatable image file (CPM.REL). Use the
|
||
RELOC utility to create the absolute load image (CPM.SYS). The
|
||
CP/M-68K SUBMIT files "LCPM.SUB" and "RELCPM.SUB" have been
|
||
adapted to VMS procedure files to make this process easier.
|
||
|
||
For example, to create the EXORmacs distribution system, use
|
||
the following sequence of commands:
|
||
|
||
$ set def cpm:
|
||
$ @normbios !Create "bios.o"
|
||
$ @lcpm !Create "cpm.rel"
|
||
$ @relcpm 15000 !Create CPM.SYS at 15000 hex.
|
||
|
||
The boot loader for CP/M-68K is generated in a similar fashion,
|
||
as documented in the CP/M-68K System Guide.
|
||
|
||
|
||
CP/M-68K Cross Software for VMS Page 5
|
||
File Transfer Techniques
|
||
|
||
|
||
5.0 File Transfer Techniques
|
||
|
||
|
||
5.1 S-records
|
||
|
||
The normal method of transferring files to a 68000 target is
|
||
via Motorola S-records. The SENDC68 program converts a load
|
||
module file from binary format to S-record format. The command
|
||
syntax for this program is:
|
||
|
||
SENDC68 [-] file.68k >file.sr
|
||
|
||
Where "file.68k" is an absolute format CP/M-68K load module, and
|
||
"file.sr" is the created S-record file. This form of the load
|
||
module may be created using the linker "-t" switch or the reloc
|
||
utility. The RELCPM command used in the CP/M-68K generation
|
||
procedure generates an absolute file. The "-" option specifies
|
||
that S-records are not to be created for the ".bss" segment. The
|
||
default is to create S-records that zero all locations in the
|
||
".bss".
|
||
|
||
The resulting S-record file may be downloaded via the VMS
|
||
"TYPE" command into a target system with a PROM debugger, such as
|
||
the MACSbug program on the EXORmacs.
|
||
|
||
5.2 Other Transfer Techniques
|
||
|
||
Other techniques such as binary download utilities or CP/M
|
||
file transfer utilities may be used to transfer CP/M-68K load
|
||
modules to the 68000 target. When such a technique is used, the
|
||
bytes in the file must be swapped, and the words of all longword
|
||
quantities in the load module header must be swapped. Library
|
||
modules may not be transferred using this technique without
|
||
extensive rearrangement of the headers. The symbol table in
|
||
object and load module files will have the symbol names byte
|
||
swapped in this type of transfer.
|
||
|
||
6.0 Trademarks
|
||
|
||
VAX, VMS, and FLX are trademarks of Digital Equipment
|
||
Corporation. EXORmacs, and MACSbug are trademarks of Motorola,
|
||
Inc. CP/M-68K is a trademark of Digital Research, Inc.
|