Date: 16 Nov 82 1:55:22-EST (Tue) From: Rick Conn Re: Assemblers 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. Rick