Introduction
Executing MAC
XMAC
Assembly Control Parameters
Assembler Pseudo-Ops
Inline Error Messages
Console Error Messages
:Introduction
    MA� i� th� CP/� Standar� Macr� Assembler� i� i� upward-compatabl� wit� �
ASM�� th� CP/� Standar� Assembler��  Th� facilitie� o� MA� includ� assembl� �
o栠 Inte젠 808�� microcompute� mnemonics��� alon砠 wit蠠 assembly-tim� �
expressions�� conditiona� assembly�� pag� formattin� features�� an� � macr� �
processo� whic� i� compatabl� wit� th� standar� Inte� definitio� (MA� �
implements the mid-1977 revision of Intel's definition).
    MA� require� approximatel� 12� o� machin� cod� an� tabl� space�� alon� �
with an additional 2.5K of I/O buffer space.
:Executing MAC
    MAC is invoked by the following command --
                        MAC d:filename $parms
Onl� 'filename� i� required� an� i� represent� � fil� name� 'filename.ASM'�  �
MAà ma�� the� generat� u� t� � othe� file� -- filename.HE� (th� Inte� He� �
Forma� File)�� filename.PR� (th� Prin� o� Listin� file)�� an� filename.SY� �
(a file containing a sorted list of the symbols used in the program).
    MACR� Librar� file� ma� b� reference� b� th� program�� thes� file� ar� �
named 'filename.LIB'.
    $parm� represent� th� optiona� assembl� contro� parameter� whic� ar� �
discussed in the next section.
    MAà ma� b� execute� b� employin� th� SUBMIԠ fil� MAC.SUB��  MAC.SU� �
assemble� th� specifie� MA� .AS� file�� convert� i� int� � .CO� fil� vi� �
LOAD, and erases the .HEX file.  MAC.SUB is invoked by --
         SUBMIT MAC filename
where 'filename' is the name of the MAC file 'filename.ASM'.
:XMAC
    XMAà i� � versio� o� MA� whic� doe� NO� recogniz� th� intrinsi� Inte� �
808� assemble� languag� mnemonics��  XMA� i� intende� t� b� use� fo� Cross-�
Assembl�� usin� .LI� file� whic� contai� th� assemble� mnemonic� fo� th� �
targe� machine��  XMA� i� invoke� i� exactl� th� sam� wa� MAà i� (excep� �
tha� n� SUBMI� fil� i� available)�� an� i� recognize� th� sam� pseudo-op� �
an� contro� parameters.
    Th� patc� fil� XMAC.AS� contain� th� patche� use� t� conver� MAà int� �
XMAC.
    Th堠 librar�� file� MAC40.LI  an� XMAC40.LI  contai� th� macro� �
necessar� t� assembl� cod� fo� th� Inte� 404� microprocessor�� fo� example�  �
MAC40.LI� rename� th� 404� mnemonic� fo� ADD�� SUB�� etc.�� t� ADD4�� SUB4� �
etc.�� s� tha� i� wil� no� conflic� wit� MAC��  XMAC40.LI� doe� no� renam� �
these, since XMAC does not recognize these in the first place.
:Assembly Control Parameters
    Th� contro� paramete� lis� i� precede� b� � $�� an� ma� contai� an� o� �
the following in any order --
         A - controls the source disk for the .ASM file
         H - controls the destination of the .HEX machine code file
         L - controls the source disk for the .LIB files
         M - controls MACRO listing in the .PRN file
         P - controls the destination of the .PRN listing file
         Q - controls the listing of LOCAL symbols �          S - controls the generation and destination of the .SYM file
         1 - controls pass 1 listing

    I� th� cas� o� th� A�� H� L� P� an� � parameters� the� ma� b� followe� �
b� th� driv� nam� fro� whic� t� obtai� o� t� whic� t� sen� data� wher� --

         A,B,C,D -- designates that particular drive
         P       -- designates the LST: device
         X       -- designates the user console (CON:)
         Z       -- designates a null file (no output)

For example,
         $PB AA HB SX
send� th� .PR� fil� t� driv� B:�� get� th� .AS� fil� fro� driv� A:�� send� �
the .HEX file to drive B:, and sends the .SYM file to CON:.

    Th� parameter� L�� S�� M� Q� an� � ma� b� precede� b� eithe� � o� - t� �
enable or disable their respective functions --

    +L - list the input lines read from the MACRO library
    -L - suppress listing of the MACRO library (default)

    +S - append the .SYM output to the end of the .PRN file (default)
    -S - suppress the generation of the sorted symbol table

    +M - list all MACRO lines as they are processed (default)
    -M - suppress all MACRO lines as they are processed
    *M - list only HEX code generated by macro expansions in listing

    +Q - list all LOCAL symbols in the symbol list
    -Q - suppress all LOCAL symbols in the symbol list (default)

    +1 - produce a listing file on the first pass (for MACRO debugging)
    -1 - suppress listing on pass 1 (default)

    Th� programme� ca� interspers� control� throughou� th� assembl� �
languag� sourc� o� librar� files��  Intersperse� control� ar� denote� b�� � �
"$�� i� th� firs� colum� o� th� inpu� lin� followe� immediatel�� b�� � �
parameter.
:Assembler Pseudo-Ops
    The following Pseudo-Ops are supported --
         DB        defines data bytes or strings of data
         DS        reserves storage areas
         DW        defines words of storage
         ELSE      alternate to IF
         END       terminates the physical program
         ENDIF     marks the end of conditional assembly
         ENDM      marks the end of a MACRO
         EQU       performs a numeric "equate"
         EXITM     abort expansion of the current MACRO level
         IF        begins conditional assembly
         IRP       INLINE MACRO with string substitution
         IRPC      INLINE MACRO with character substitution
         LOCAL     define LOCAL variables unique to each MACRO repetition
         MACLIB    specify MACRO Library to load
         MACRO     defines beginning of a MACRO
         ORG       sets the program or data origin
         PAGE      defines the listing page size for output
         REPT      defines the beginning of a INLINE MACRO
         SET       performs a numeric "set" or assignment
         TITLE     enables page titles and options
:Inline Error Messages
      - Balanc� error�  MACR� doesn'� terminat� properl� o� conditiona� �
assembly is ill-formed
    à - Comm� error��  expressio� wa� encountere� bu� no� delimite� �
properly from the next item by a comma
    � - Dat� error�  elemen� i� � dat� statemen� (DB,DW� canno� b� place� �
in the specified data area
    E - Expression error:  expression is ill-formed and cannot be computed
    I - Invalid character:  a non-graphic character has been found
    L - Label error:  label cannot appear in this context
    M - MACRO overflow error:  internal MACRO expansion table overflow
    N - Not implemented error:  unimplemented feature used
    Ϡ - Overflo�� error�  expressio� i� to� complicate� o� th� numbe� o� �
LOCAL labels has exceeded 9999
    Р - Phas� error��  label� doe� no� hav� sam� valu� o� bot� passe� �
(multiple label)
    � - Registe� error�  valu� specifie� fo� � registe� i� no� compatabl� �
with op code
    S - Statement/Syntax error:  statement is ill-formed
    V - Value error:  operand is improperly formed or out of range
:Console Error Messages
    NO SOURCE FILE PRESENT - .ASM file not found
    NO DIRECTORY SPACE - Directory is full
    SOURCŠ FIL� NAM� ERRO� - Th� for� o� th� sourc� fil� nam� i� invalid� �
not� tha� MA� i� invoke� b� 'MA� filename'�� an� th� .AS� fil� typ� i� NO� �
specified.
    SOURCE FILE READ ERROR - Error in reading source file
    OUTPUT FILE WRITE ERROR - Error in writing output file �     CANNOT CLOSE FILE - An output file cannot be closed.
    UNBALANCED MACRO LIBRARY - No ENDM encountered for a MACRO definition
    INVALIĠ PARAMETE� - Invali� assembl� paramete� wa� foun� i� th� inpu� �
line.