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.