Date : Tue, 16 Nov 1982 01:55:22-EST (Tue)
From : Rick Conn <rconn@BRL>
Subject: Assemblers
Tom,
The CP/M assembler business IS somewhat confusing with all the
similar names and different capabilities for the various assem-
blers out there. Here is a quick summary which I hope will
answer some of your questions:
ASM (I call it ASM2) -- this is the assembler that comes with
CP/M 2.2; what I call ASM is the assembler that came with CP/M
1.4, and the major difference is that with ASM, quoted text is
always capitalized while ASM2 allows lower-case to pass thru;
ASM and ASM2 have no macro capability, but do support conditional
assembly, SET, and a few nice operations in the operand field
MAC -- this is DR's upgrade to ASM and ASM2 (DR=Digital Research,
who wrote CP/M); this is basically the same assembler, but it can
use macros and macro libraries; it still generates just HEX files
as output
M80/L80 -- this is Microsoft's assembler, which is used to assem-
ble programs requiring SYSLIB; M80 is the assembler, which sup-
ports nice features found in MAC, such as macros, AND supports
relocatable libraries (which MAC does not); the output of M80 is
a REL file, NOT a HEX file, and this output is then passed to
L80; L80 can take a number of REL files and put them together and
generate a HEX or a COM file or both; M80 also supports both In-
tel and Zilog mnemonics, while MAC and ASM/ASM2 just support In-
tel mnemonics, altho there is a Z80 macro library which comes
with MAC to allow you to assemble for the Z80-specific instruc-
tions, but does not allow Zilog mnemonics
Other assemblers are available, but these are the main ones I use
and know about. I use M80/L80 for most of the ZCPR2 work, but
MAC is required to assemble ZCPR2 itself (and ZCPR1 for that
matter). A big difference is that MAC allows longer names than
M80 (M80 is limited to 6 chars in my version).
Hope this helps. Feel free to write if you still have questions.
Rick