home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / A / ASSY1-2.ARC / LASM3.DOC < prev    next >
Text File  |  1993-03-31  |  10KB  |  198 lines

  1.                 LASM3 Description as of 11/01/84
  2.  
  3.  
  4. This is an enhanced version of Pete Mack's LASM assembler which was it-
  5. self an improved version of Ward Christenson's LINKASM assembler.  I
  6. have added all of the Z80 op codes in the style of the 8080.  I also
  7. corrected the program so that the symbol cross reference (requested by
  8. the XREF directive) will be printed on the console if the normal listing
  9. has been directed there (the previous version only generated the XREF
  10. listing if the normallisting was directed to a .PRN file).
  11.  
  12. There is one incompatibility between this assembler and the ASM assem-
  13. bler.  ASM has a SET directive which is like EQU but allows the label to
  14. be redefined later.  The Z80 has an op code called SET for setting a
  15. selected bit in a byte.  Since the SET directive is rarely used in ASM,
  16. I decided it would probably cause few problems if I renamed the SET di-
  17. rective (to NOW) and used SET for the Z80 op code so that is what I did.
  18.  
  19.         Steve Schlaifer
  20.         1500 Rollin St.
  21.         So. Pasadena, Calif.
  22.         91030
  23.         (818) 441-1236
  24.  
  25. ========================================================================
  26.  
  27.  
  28.                 LASM3 Description as of 11/01/84
  29.  
  30.  
  31. Directives which are recognized by LASM but not by ASM include LINK,
  32. XREF, SYM, and TITLE.
  33.  
  34.         LINK    'file'
  35.  
  36. LINK closes the current input source file, opens the named file which
  37. must be on the same drive with the extension .ASM and continues the as-
  38. sembly process using this new file as a continuation of the previous
  39. one.  I have found this useful with my Apple CP/M system since my disks
  40. are small and I have difficulties editting files which are larger than
  41. about 50K.  With the link directive, I can break up a large source file
  42. into smaller pieces for editting and then assemble them without having
  43. to remerge them.
  44.  
  45.         XREF
  46.  
  47. XREF has no operands.  It causes a cross-reference of all the labels in
  48. the assembled source file to be listed at the end of the source listing
  49. with the line numbers where they are defined followed by the line num-
  50. bers where they are used.
  51.  
  52.         SYM
  53.  
  54. SYM has no operands.   It causes a file with the extension .SYM to be
  55. created on the same drive on which the .HEX file is being written.  This
  56. file contains a list of all the labels and their assembled addresses.
  57.  
  58.         TITLE   'title string'
  59.  
  60. TITLE takes a string operand.  It causes the string to be printed at the
  61. top of each page of the source listing for titling the listing.
  62.  
  63. The following is a complete list of the op codes recognized by this as-
  64. sembler and their Z80 equivalents.  For a detailed description of the
  65. Z80 op codes, I refer you to one of the many books which have been pub-
  66. lished on it.  I use "programming the Z80" by Rodnay Zaks.
  67.  
  68. A single register is designated as 'r' and may be one of A, B, C, D, E,
  69. H, L, or M; a double register is designated as 'rr' and may be one of B,
  70. D, H, or SP; 'rx' is the same as 'rr', except H is replaced with X (the
  71. Z80 IX register); 'ry' is the same as 'rr' except H is replaced with Y
  72. (the Z80 IY  register).  At times, the PSW is referred to.  This is the
  73. AF register pair.
  74.  
  75. The operands for the relative jump instructions (e.g. DJNZ, JR, JRNZ,
  76. etc.) are to be given as full addresses.  For example:
  77.  
  78.     JOE    op
  79.         :
  80.         :
  81.         DJNZ    JOE
  82.  
  83. The (new) Z80 op codes are flagged with an 'x' in column 1.
  84.  
  85.  
  86.  
  87.  
  88.                   LASM Description as of 3/23/84
  89.  
  90.      ADC r          ADC r               STA nn         LD (nn),A
  91. x    ADCX d         ADC A,(IX+d)   x    SIXD nn        LD (nn),IX
  92. x    ADCY d         ADC A,(IY+d)   x    SIYD nn        LD (nn),IY
  93.      ACI n          ADC A,n        x    SBCD nn        LD (nn),BC
  94. x    DADC rr        ADC HL,rr      x    SDED nn        LD (nn),DE
  95.      ADD r          ADD A,r             SHLD nn        LD (nn),HL
  96. x    ADDX d         ADD A,(IX+d)   x    SSPD nn        LD (nn),SP
  97. x    ADDY d         ADD A,(IY+d)        LDAX B         LD A,(BC)
  98.      ADI n          ADD A,n             LDAX D         LD A,(DE)
  99.      DAD rr         ADD HL,rr           SPHL           LD SP,HL
  100. x    DADX rx        ADD IX,rx      x    SPIX           LD SP,IX
  101. x    DADY ry        ADD IY,rr      x    SPIY           LD SP,IY
  102.      ANA r          AND r          x    LDAI           LD A,I
  103. x    ANDX d         AND (IX+d)     x    STAI           LD I,A
  104. x    ANDY d         AND (IY+d)     x    LDAR           LD A,R
  105.      ANI n          AND n          x    STAR           LD R,A
  106. x    BIT b,r        BIT b,r        x    LDD            LDD
  107. x    BITX b,d       BIT b,(IX+d)   x    LDDR           LDDR
  108. x    BITY b,d       BIT b,(IY+d)   x    LDI            LDI
  109.      CALL pq        CALL pq        x    LDIR           LDIR
  110.      CNZ pq         CALL NZ,pq     x    NEG            NEG
  111.      CZ pq          CALL Z,pq           NOP            NOP
  112.      CNC pq         CALL NC,pq          ORA r          OR r
  113.      CC pq          CALL C,pq      x    ORX d          OR (IX+d)
  114.      CPO pq         CALL PO,pq     x    ORY d          OR (IY+d)
  115.      CPE pq         CALL PE,pq          ORI n          OR n
  116.      CP pq          CALL P,pq      x    OTDR           OTDR
  117.      CM pq          CALL M,pq      x    OTIR           OTIR
  118.      CMC            CCF            x    OUTP r         OUT (C),r
  119.      CMP r          CP r                OUT n          OUT (n),A
  120. x    CMPX d         CP (IX+d)      x    OUTD           OUTD
  121. x    CMPY d         CP (IY+d)      x    OUTI           OUTI
  122.      CPI n          CP n                POP PSW        POP AF
  123. x    CCD            CPD                 POP B          POP BC
  124. x    CCDR           CPDR                POP D          POP DE
  125. x    CCI            CPI                 POP H          POP HL
  126. x    CCIR           CPIR           x    POP X          POP IX
  127.      CMA            CPL            x    POP Y          POP IY
  128.      DAA            DAA                 PUSH PSW       PUSH AF
  129.      DCR r          DEC r               PUSH B         PUSH BC
  130. x    DCRX d         DEC (IX+d)          PUSH D         PUSH DE
  131. x    DCRY d         DEC (IY+d)          PUSH H         PUSH HL
  132.      DCX rr         DEC rr         x    PUSH X         PUSH IX
  133. x    DCXX           DEC IX         x    PUSH Y         PUSH IY
  134. x    DCXY           DEC IY         x    RES b,r        RES b,r
  135.      DI             DI             x    RESX b,d       RES b,(IX+d)
  136. x    DJNZ e         DJNZ e         x    RESY b,d       RES b,(IY+d)
  137.      EI             EI                  RET            RET
  138. x    EXAF           EX AF,AF'           RNZ            RET NZ
  139.      XCHG           EX DE,HL            RZ             RET Z
  140.      XTHL           EX (SP),HL          RNC            RET NC
  141. x    XTIX           EX (SP),IX          RC             RET C
  142. x    XTIY           EX (SP),IY          RPO            RET PO
  143. x    EXX            EXX                 RPE            RET PE
  144.      HLT            HALT                RP             RET P
  145. x    IM0            IM 0                RM             RET M
  146. x    IM1            IM 1           x    RETI           RETI
  147. x    IM2            IM 2           x    RETN           RETN
  148. x    INP r          IN r,(C)            RAL            RLA
  149.      IN n           IN A,(n)       x    RALR r         RL r
  150.      INX rr         INC rr         x    RALX d         RL (IX+d)
  151. x    INXX           INC IX         x    RALY d         RL (IY+d)
  152. x    INXY           INC IY              RLC            RLCA
  153.      INR r          INC r          x    RLCR r         RLC r
  154. x    INRX d         INC (IX+d)     x    RLCX d         RLC (IX+d)
  155. x    INRY d         INC (IY+d)     x    RLCY d         RLC (IY+d)
  156. x    IND            IND            x    RLD            RLD
  157. x    INDR           INDR           x    RRD            RRD
  158. x    INI            INI                 RAR            RRA
  159. x    INIR           INIR           x    RARR r         RR r
  160.      JMP pq         JP pq          x    RARX d         RR (IX+d)
  161.      JNZ pq         JP NZ,pq       x    RARY d         RR (IY+d)
  162.      JZ pq          JP Z,pq             RRC            RRCA
  163.      JNC pq         JP NC,pq       x    RRCR r         RRC r
  164.      JC pq          JP C,pq        x    RRCX d         RRC (IX+d)
  165.      JPO pq         JP PO,pq       x    RRCY d         RRC (IY+d)
  166.      JPE pq         JP PE,pq            RST p          RST p
  167.      JP pq          JP P,pq             SBB r          SBC A,r
  168.      JM pq          JP M,pq        x    SBBX d         SBC A,(IX+d)
  169.      PCHL           JP (HL)        x    SBBY d         SBC A,(IY+d)
  170. x    PCIX           JP (IX)             SBI n          SBC A,n
  171. x    PCIY           JP (IY)        x    DSBB rr        SBC HL,rr
  172. x    JR e           JR e                STC            SCF
  173. x    JRNZ e         JR NZ,e        x    SET b,r        SET b,r
  174. x    JRZ e          JR Z,e         x    SETX b,d       SET b,(IX+d)
  175. x    JRNC e         JR NC,e        x    SETY b,d       SET b,(IY+d)
  176. x    JRC e          JR C,e         x    SAL            SLA A
  177.      LHLD nn        LD HL,(nn)     x    SALR r         SLA r
  178. x    LIXD nn        LD IX,(nn)     x    SALX d         SLA (IX+d)
  179. x    LIYD nn        LD IY,(nn)     x    SALY d         SLA (IY+d)
  180. x    LBCD nn        LD BC,(nn)     x    SAR            SRA A
  181. x    LDED nn        LD DE,(nn)     x    SARR r         SRA r
  182. x    LSPD nn        LD SP,(nn)     x    SARX d         SRA (IX+d)
  183.      LXI rr,nn      LD rr,nn       x    SARY d         SRA (IY+d)
  184. x    LXIX nn        LD IX,nn       x    SLR            SRL A
  185. x    LXIY nn        LD IY,nn       x    SLRR r         SRL r
  186.      MVI r,n        LD r,n         x    SLRX d         SRL (IX+d)
  187. x    MVIX n,d       LD (IX+d),n    x    SLRY d         SRL (IY+d)
  188. x    MVIY n,d       LD (IY+d),n         SUB r          SUB r
  189.      MOV r,r'       LD r,r'        x    SUBX d         SUB (IX+d)
  190. x    MOVX r,d       LD r,(IX+d)    x    SUBY d         SUB (IY+d)
  191. x    MOVY r,d       LD r,(IY+d)         SUI n          SUB n
  192. x    STX r,d        LD (IX+d),r         XRA r          XOR r
  193. x    STY r,d        LD (IY+d),r    x    XORX d         XOR (IX+d)
  194.      STAX B         LD (BC),A      x    XORY d         XOR (IY+d)
  195.      STAX D         LD (DE),A           XRI n          XOR n
  196.      LDA nn         LD A,(nn)
  197.  
  198. ========================================================================