Assembling CP/M 3
=================
The original CP/M 3 build process seems to have been written for a CP/M 3
computer; it uses the MAC, RMAC, LINK, GENCOM and HEXCOM tools, which are
not readily available for other platforms in this day and age.
HEXCOM.C (based on LOAD.C in ) serves
as a suitable replacement for HEXCOM. The command syntax is:
HEXCOM comfile . It will compile
under DOS with DJGPP.
Note: Earlier versions of ZXCC cannot use LINK on programs bigger than 8k.
The latest ZXCC is necessary if you want to link the BDOS.
ZXCC is _not_ a full CP/M emulator. It contains a subset of CP/M sufficient
to run the build tools above. Its command line syntax is:
zxcc cpmfile {+}{-}arg1 {+}{-}arg2 ...
The arguments arg1, arg2 etc. can be:
filename Arguments not starting "-" or "+-" are parsed as filenames.
This process maps DOS directories to CP/M drives; so you could
type ZXCC MAC.CPM G:\ASM\DUMP.ASM and DUMP.ASM would be visible
to MAC.
+filename Arguments starting "+" are appended to the preceding argument.
See the LINK example below.
-text Text starting "-" is copied in verbatim (not even converted to
upper case).
+-text The text is appended to the previous argument.
The reason for the "+" options is: Filenames must be passed to ZXCC
surrounded by spaces, but ZXCC may need to pass them to the program in the
middle of a string of text. In this example, ZXCC requires the filename parts
to be separated by spaces, but they must be passed to LINK as one word:
LINK BDOS3=CPMBDOSX [OS,$SZ]
becomes
ZXCC LINK.CPM BDOS3 +-= +CPMBDOSX -[OS,$SZ]
| |
+------------+---+
|
The two + signs are used to remove the spaces either side of the "="; while
the "-" signs prevent the "=" and the "[OS,$SZ]" from being parsed as
filenames.