home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / beehive / cpmforth / f83-zasm.lbr / F83-ZASM.DZC / F83-ZASM.DOC
Text File  |  1979-12-31  |  6KB  |  225 lines

  1. A Forth Z80 Assembler for F83 V2.1.0            14 Feb 1990
  2. ------------------------------------
  3.  
  4. by E. Smeda
  5.  
  6. 1. Introduction
  7.  
  8. This program adds Z80 assembly facilities to the 8080 assembler
  9. included with Laxen & Perry's F83 FORTH (version 2.1.0 for CP/M-80).
  10. It allows the programmer to make use of the extra assembly language
  11. instructions provided by the Zilog Z80 or compatible microprocessor.
  12.  
  13. Intel 8080 mnemonics are retained for those instructions common to
  14. both the Z80 and the 8080 CPU. For the additional Z80 instructions,
  15. a set of mnemonics popularized by Technical Design Labs has been
  16. chosen (usually known as 'TDL' mnemonics).
  17.  
  18. 2. Installation
  19.  
  20. To install the new assembler, place F83.COM and F83-ZASM.BLK on
  21. the same disk. From the CP/M prompt, type -
  22.  
  23.     A> F83 F83-ZASM.BLK  <cr>
  24.  
  25.     8080 Forth 83 Model
  26.     Version 2.1.0 Modified 01Jun84 
  27.  
  28.     1 LOAD  <cr>
  29.  
  30.     loading Z80 assembler additions  ok
  31.  
  32. The new Z80 instructions are now included in the assembler. Should
  33. you wish to include the assembler additions permanently with F83,
  34. type -
  35.  
  36.     SAVE-SYSTEM F83NEW.COM  <cr>
  37.  
  38. 3. Usage
  39.  
  40. Using the new assembler is no different from using the 8080 version.
  41. As with the original, it is still possible to assemble nonsense code
  42. without an error warning so care should be execised.
  43.  
  44. 4. Improvements
  45.  
  46. For those liking a challenge, an obvious improvement to the
  47. assembler would be to modify the meta 8080 assembler in the F83
  48. system source files. This would allow the user to rewrite F83's
  49. kernel, replacing some of the inefficient 8080 code.
  50.  
  51. 5. Forth Z80 Assembler Mnemonics
  52.  
  53. The following chart lists those instructions additional to the
  54. Intel 8080 instruction set and which the Z80 processor may execute.
  55. The first column shows the Zilog standard mnemonics followed, in
  56. the second column, by the TDL mnemonics used for this assembler.
  57.  
  58. Note:  As is usual in forth assemblers, the operands precede the
  59. opcodes. Where an instruction requires two operands the order of
  60. the operands must be as indicated.
  61.  
  62. b    bit position (0-7)
  63. d    displacement added to IX or IY registers (0-255)
  64. r    register A,B,C,D,E,H or L
  65. n    8 bit operand (0-255)
  66. nn    16 bit operand (0-65535)
  67.  
  68. Zilog Mnemonics            TDL Mnemonics (in forth format)
  69.  
  70. ADC    A,(IX+d)        d (X)    ADC
  71. ADC    A,(IY+d)        d (Y)    ADC
  72. ADC    HL,BC            B    DADC
  73. ADC    HL,DE            D    DADC
  74. ADC    HL,HL            H    DADC
  75. ADC    HL,SP            SP    DADC
  76. ADD    A,(IX+d)        d (X)    ADD
  77. ADD    A,(IY+d)        d (Y)    ADD
  78. ADD    IX,BC            B    DADX
  79. ADD    IX,DE            D    DADX
  80. ADD    IX,IX            X    DADX
  81. ADD    IX,SP            SP    DADX
  82. ADD    IY,BC            B    DADY
  83. ADD    IY,DE            D    DADY
  84. ADD    IY,IY            Y    DADY
  85. ADD    IY,SP            SP    DADY
  86. AND    (IX+d)             d (X)    ANA
  87. AND    (IY+d)             d (Y)    ANA
  88. BIT    b,(HL)            M     b BIT
  89. BIT    b,(IX+d)        d (X) b BIT
  90. BIT    b,(IY+d)        d (Y) b BIT
  91. BIT    b,r            r     b BIT
  92. CP    (IX+d)             d (X)    CMP
  93. CP    (IY+d)             d (Y)    CMP
  94. CPD                    CCD
  95. CPDR                    CCDR
  96. CPI                    CCI
  97. CPIR                    CCIR
  98. DEC    (IX+d)             d (X)    DCR
  99. DEC    (IY+d)             d (Y)    DCR
  100. DEC    IX            X    DCX
  101. DEC    IY            Y    DCX
  102. DJNZ    nn            nn    DJNZ
  103. EX    (SP),IX             XTIX
  104. EX    (SP),IY             XTIY
  105. EX    AF,AF'                EXAF
  106. EXX                    EXX
  107. IM    0                IM0
  108. IM    1                IM1
  109. IM    2                IM2
  110. IN    r,(C)            r    INP
  111. INC    (IX+d)             d (X)    INR
  112. INC    (IY+d)             d (Y)    INR
  113. INC    IX            X    INX
  114. INC    IY            Y    INX
  115. IND                    IND
  116. INDR                    INDR
  117. INI                    INI
  118. INIR                    INIR
  119. JP    (IX)                PCIX
  120. JP    (IY)                PCIY
  121. JR    nn            nn    JMPR
  122. JR    C,nn            nn    JRC
  123. JR    NC,nn             nn    JRNC
  124. JR    NZ,nn             nn    JRNZ
  125. JR    Z,nn            nn    JRZ
  126. LD    r,(IX+d)        d (X) r MOV
  127. LD    r,(IY+d)        d (Y) r MOV
  128. LD    (IX+d),r        r d (X) MOV
  129. LD    (IY+d),r        r d (Y) MOV
  130. LD    (IX+d),n        n d (X) MVI
  131. LD    (IY+d),n        n d (Y) MVI
  132. LD    (nn),BC            nn    SBCD
  133. LD    (nn),DE            nn    SDED
  134. LD    (nn),IX            nn    SIXD
  135. LD    (nn),IY            nn    SIYD
  136. LD    (nn),SP            nn    SSPD
  137. LD    A,I                LDAI
  138. LD    A,R                LDAR
  139. LD    I,A                STAI
  140. LD    R,A                STAR
  141. LD    BC,(nn)            nn    LBCD
  142. LD    DE,(nn)            nn    LDED
  143. LD    IX,nn             nn    X    LXI
  144. LD    IY,nn             nn    Y    LXI
  145. LD    IX,(nn)            nn    LIXD
  146. LD    IY,(nn)            nn    LIYD
  147. LD    SP,(nn)            nn    LSPD
  148. LD    SP,IX                SPIX
  149. LD    SP,IY                SPIY
  150. LDD                    LDD
  151. LDDR                    LDDR
  152. LDI                    LDI
  153. LDIR                    LDIR
  154. NEG                    NEG
  155. OR    (IX+d)             d (X)    ORA
  156. OR    (IY+d)             d (Y)    ORA
  157. OTDR                    OUTDR
  158. OTIR                    OUTIR
  159. OUT    (C),r            r    OUTP
  160. OUTD                    OUTD
  161. OUTI                    OUTI
  162. POP    IX            X    POP
  163. POP    IY            Y    POP
  164. PUSH    IX            X    PUSH
  165. PUSH    IY            Y    PUSH
  166. RES    b,(HL)            M     b RES
  167. RES    b,(IX+d)        d (X) b RES
  168. RES    b,(IY+d)        d (Y) b RES
  169. RES    b,r            r     b RES
  170. RETI                    RETI
  171. RETN                    RETN
  172. RL    (HL)            M    RALR
  173. RL    (IX+d)             d (X)    RALR
  174. RL    (IY+d)             d (Y)    RALR
  175. RL    r            r    RALR
  176. RLC    (HL)            M    RLCR
  177. RLC    (IX+d)             d (X)    RLCR
  178. RLC    (IY+d)             d (Y)    RLCR
  179. RLC    r            r    RLCR
  180. RLD                    RLD
  181. RR    (HL)            M    RARR
  182. RR    (IX+d)             d (X)    RARR
  183. RR    (IY+d)             d (Y)    RARR
  184. RR    r            r    RARR
  185. RRC    (HL)            M    RRCR
  186. RRC    (IX+d)             d (X)    RRCR
  187. RRC    (IY+d)             d (Y)    RRCR
  188. RRC    r            r    RRCR
  189. RRD                    RRD
  190. SBC    A,(IX+d)        d (X)    SBB
  191. SBC    A,(IY+d)        d (Y)    SBB
  192. SBC    HL,BC            B    DSBC
  193. SBC    HL,DE            D    DSBC
  194. SBC    HL,HL            H    DSBC
  195. SBC    HL,SP            SP    DSBC
  196. SET    b,(HL)            M     b SET
  197. SET    b,(IX+d)        d (X) b SET
  198. SET    b,(IY+d)        d (Y) b SET
  199. SET    b,r            r     b SET
  200. SLA    (HL)            M    SLAR
  201. SLA    (IX+d)             d (X)    SLAR
  202. SLA    (IY+d)             d (Y)    SLAR
  203. SLA    r            r    SLAR
  204. SRA    (HL)            M    SRAR
  205. SRA    (IX+d)             d (X)    SRAR
  206. SRA    (IY+d)             d (Y)    SRAR
  207. SRA    r            r    SRAR
  208. SRL    (HL)            M    SRLR
  209. SRL    (IX+d)             d (X)    SRLR
  210. SRL    (IY+d)             d (Y)    SRLR
  211. SRL    r            r    SRLR
  212. SUB    (IX+d)             d (X)    SUB
  213. SUB    (IY+d)             d (Y)    SUB
  214. XOR    (IX+d)             d (X)    XRA
  215. XOR    (IX+d)             d (X)    XRA
  216.  
  217. 6. References
  218.  
  219. F83 Forth v2.1.0 is a full-featured Forth package intended to run
  220. under the CP/M 80 operating system. It conforms to the Forth-83
  221. Standard. F83 is a public domain product and is available from many
  222. sources including SIG/M Public Domain Catalog (Volume 204). Copies
  223. of this disk should be available from SIG/M, P.O.Box 97 Iselin, New
  224. Jersey 08830 USA or just about any CP/M bulletin board.
  225.