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.