home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / utils / asmutl / hd64180a.lbr / HDZ80.LZB / HDZ80.LIB
Text File  |  1991-08-04  |  7KB  |  532 lines

  1. ;
  2. ;
  3. ;================================================================
  4. ;     Macros for HD64B180 cpu instructions
  5. ;
  6. ; These use the HD64180 equate at the top to configure the
  7. ; result code to suit. HD64180 special opcodes are simulated
  8. ; on the Z80.
  9. ;================================================================
  10. ;
  11. ino    macro    ?R, port        ; Read from imm port to register
  12. ;
  13.     if    not hd64180
  14.     if    ?R ne A
  15.     push    psw
  16.     endif
  17. ;
  18.     in    port
  19. ;
  20.     if    ?R ne A
  21.     mov    ?R,a
  22.     pop    psw
  23.     endif
  24. ;
  25.     else
  26. ;
  27.     db    1110$1101b            ; Input instruction
  28.     db    ?R * 8
  29.     db    port
  30.     endif
  31. ;
  32.     endm
  33. ;;
  34. ;; Send the register to a port
  35. ;;
  36. outo    macro    port, ?R
  37. ;
  38.     if    not hd64180
  39.     if    ?R ne A
  40.     push    psw
  41.     mov    a,?R
  42.     endif
  43. ;
  44.     out    port
  45. ;
  46.     if    ?R NE A
  47.     pop    psw
  48.     endif
  49. ;
  50.     else
  51. ;
  52.     db    1110$1101b
  53.     db    ?R * 8 + 1
  54.     db    port
  55.     endif
  56.     endm
  57. ;;
  58. ;; Multiply two halves of a double register
  59. ;;
  60. mlt    macro    ?reg
  61.     db    0edh
  62.     db    ?reg * 8 + 04Ch
  63.     endm
  64. ;
  65. ;----------------------------------------------------------------
  66. ;     Start of the Z80 only opcodes
  67. ;----------------------------------------------------------------
  68. ;
  69. ;    @CHK MACRO USED FOR CHECKING 8 BIT DISPLACMENTS
  70. ;
  71. @CHK    MACRO    ?DD    ;; USED FOR CHECKING RANGE OF 8-BIT DISP.S
  72.     IF (?DD GT 7FH) AND (?DD LT 0FF80H)
  73.  'DISPLACEMENT RANGE ERROR - Z80 LIB'
  74.     ENDIF
  75.     ENDM
  76. ;;
  77. LDX    MACRO    ?R,?D    
  78.     @CHK    ?D
  79.     DB    0DDH,?R*8+46H,?D
  80.     ENDM
  81. LDY    MACRO    ?R,?D    
  82.     @CHK    ?D
  83.     DB    0FDH,?R*8+46H,?D
  84.     ENDM
  85. STX    MACRO    ?R,?D    
  86.     @CHK    ?D
  87.     DB    0DDH,70H+?R,?D
  88.     ENDM
  89. STY    MACRO    ?R,?D    
  90.     @CHK    ?D
  91.     DB    0FDH,70H+?R,?D
  92.     ENDM
  93. MVIX    MACRO    ?N,?D    
  94.     @CHK    ?D
  95.     DB    0DDH,36H,?D,?N
  96.     ENDM
  97. MVIY    MACRO    ?N,?D    
  98.     @CHK    ?D
  99.     DB    0FDH,36H,?D,?N
  100.     ENDM
  101. LDAI    MACRO        
  102.     DB    0EDH,57H
  103.     ENDM
  104. LDAR    MACRO        
  105.     DB    0EDH,5FH
  106.     ENDM
  107. STAI    MACRO        
  108.     DB    0EDH,47H
  109.     ENDM
  110. STAR    MACRO        
  111.     DB    0EDH,4FH
  112.     ENDM
  113.  
  114. LXIX    MACRO    ?NNNN    
  115.     DB    0DDH,21H
  116.     DW    ?NNNN
  117.     ENDM
  118. LXIY    MACRO    ?NNNN    
  119.     DB    0FDH,21H
  120.     DW    ?NNNN
  121.     ENDM
  122. LDED    MACRO    ?NNNN    
  123.     DB    0EDH,5BH
  124.     DW    ?NNNN
  125.     ENDM
  126. LBCD    MACRO    ?NNNN    
  127.     DB    0EDH,4BH
  128.     DW    ?NNNN
  129.     ENDM
  130. LSPD    MACRO    ?NNNN    
  131.     DB    0EDH,07BH
  132.     DW    ?NNNN
  133.     ENDM
  134. LIXD    MACRO    ?NNNN    
  135.     DB    0DDH,2AH
  136.     DW    ?NNNN
  137.     ENDM
  138. LIYD    MACRO    ?NNNN    
  139.     DB    0FDH,2AH
  140.     DW    ?NNNN
  141.     ENDM
  142. SBCD    MACRO    ?NNNN    
  143.     DB    0EDH,43H
  144.     DW    ?NNNN
  145.     ENDM
  146. SDED    MACRO    ?NNNN    
  147.     DB    0EDH,53H
  148.     DW    ?NNNN
  149.     ENDM
  150. SSPD    MACRO    ?NNNN    
  151.     DB    0EDH,73H
  152.     DW    ?NNNN
  153.     ENDM
  154. SIXD    MACRO    ?NNNN    
  155.     DB    0DDH,22H
  156.     DW    ?NNNN
  157.     ENDM
  158. SIYD    MACRO    ?NNNN    
  159.     DB    0FDH,22H
  160.     DW    ?NNNN
  161.     ENDM
  162. SPIX    MACRO        
  163.     DB    0DDH,0F9H
  164.     ENDM
  165. SPIY    MACRO        
  166.     DB    0FDH,0F9H
  167.     ENDM
  168. PUSHIX    MACRO        
  169.     DB    0DDH,0E5H
  170.     ENDM
  171. PUSHIY    MACRO        
  172.     DB    0FDH,0E5H
  173.     ENDM
  174. POPIX    MACRO        
  175.     DB    0DDH,0E1H
  176.     ENDM
  177. POPIY    MACRO        
  178.     DB    0FDH,0E1H
  179.     ENDM
  180. EXAF    MACRO        
  181.     DB    08H
  182.     ENDM
  183. EXX    MACRO        
  184.     DB    0D9H
  185.     ENDM
  186. XTIX    MACRO        
  187.     DB    0DDH,0E3H
  188.     ENDM
  189. XTIY    MACRO        
  190.     DB    0FDH,0E3H
  191.     ENDM
  192.  
  193. LDI    MACRO        
  194.     DB    0EDH,0A0H
  195.     ENDM
  196. LDIR    MACRO        
  197.     DB    0EDH,0B0H
  198.     ENDM
  199. LDD    MACRO        
  200.     DB    0EDH,0A8H
  201.     ENDM
  202. LDDR    MACRO        
  203.     DB    0EDH,0B8H
  204.     ENDM
  205. CCI    MACRO        
  206.     DB    0EDH,0A1H
  207.     ENDM
  208. CCIR    MACRO        
  209.     DB    0EDH,0B1H
  210.     ENDM
  211. CCD    MACRO        
  212.     DB    0EDH,0A9H
  213.     ENDM
  214. CCDR    MACRO        
  215.     DB    0EDH,0B9H
  216.     ENDM
  217.  
  218. ADDX    MACRO    ?D    
  219.     @CHK    ?D
  220.     DB    0DDH,86H,?D
  221.     ENDM
  222. ADDY    MACRO    ?D    
  223.     @CHK    ?D
  224.     DB    0FDH,86H,?D
  225.     ENDM
  226. ADCX    MACRO    ?D    
  227.     @CHK    ?D
  228.     DB    0DDH,8EH,?D
  229.     ENDM
  230. ADCY    MACRO    ?D    
  231.     @CHK    ?D
  232.     DB    0FDH,8EH,?D
  233.     ENDM
  234. SUBX    MACRO    ?D    
  235.     @CHK    ?D
  236.     DB    0DDH,96H,?D
  237.     ENDM
  238. SUBY    MACRO    ?D    
  239.     @CHK    ?D
  240.     DB    0FDH,96H,?D
  241.     ENDM
  242. SBCX    MACRO    ?D    
  243.     @CHK    ?D
  244.     DB    0DDH,9EH,?D
  245.     ENDM
  246. SBCY    MACRO    ?D    
  247.     @CHK    ?D
  248.     DB    0FDH,9EH,?D
  249.     ENDM
  250. ANDX    MACRO    ?D    
  251.     @CHK    ?D
  252.     DB    0DDH,0A6H,?D
  253.     ENDM
  254. ANDY    MACRO    ?D    
  255.     @CHK    ?D
  256.     DB    0FDH,0A6H,?D
  257.     ENDM
  258. XORX    MACRO    ?D    
  259.     @CHK    ?D
  260.     DB    0DDH,0AEH,?D
  261.     ENDM
  262. XORY    MACRO    ?D    
  263.     @CHK    ?D
  264.     DB    0FDH,0AEH,?D
  265.     ENDM
  266. ORX    MACRO    ?D    
  267.     @CHK    ?D
  268.     DB    0DDH,0B6H,?D
  269.     ENDM
  270. ORY    MACRO    ?D    
  271.     @CHK    ?D
  272.     DB    0FDH,0B6H,?D
  273.     ENDM
  274. CMPX    MACRO    ?D    
  275.     @CHK    ?D
  276.     DB    0DDH,0BEH,?D
  277.     ENDM
  278. CMPY    MACRO    ?D    
  279.     @CHK    ?D
  280.     DB    0FDH,0BEH,?D
  281.     ENDM
  282. INRX    MACRO    ?D    
  283.     @CHK    ?D
  284.     DB    0DDH,34H,?D
  285.     ENDM
  286. INRY    MACRO    ?D    
  287.     @CHK    ?D
  288.     DB    0FDH,34H,?D
  289.     ENDM
  290. DCRX    MACRO    ?D    
  291.     @CHK    ?D
  292.     DB    0DDH,035H,?D
  293.     ENDM
  294. DCRY    MACRO    ?D    
  295.     @CHK    ?D
  296.     DB    0FDH,35H,?D
  297.     ENDM
  298.  
  299. NEG    MACRO        
  300.     DB    0EDH,44H
  301.     ENDM
  302. IM0    MACRO        
  303.     DB    0EDH,46H
  304.     ENDM
  305. IM1    MACRO        
  306.     DB    0EDH,56H
  307.     ENDM
  308. IM2    MACRO        
  309.     DB    0EDH,5EH
  310.     ENDM
  311.  
  312.  
  313. BC    EQU    0
  314. DE    EQU    2
  315. HL    EQU    4
  316. IX    EQU    4    
  317. IY    EQU    4    
  318. DADC    MACRO    ?R    
  319.     DB    0EDH,?R*8+4AH
  320.     ENDM
  321. DSBC    MACRO    ?R    
  322.     DB    0EDH,?R*8+42H
  323.     ENDM
  324. DADX    MACRO    ?R    
  325.     DB    0DDH,?R*8+09H
  326.     ENDM
  327. DADY    MACRO    ?R    
  328.     DB    0FDH,?R*8+09H
  329.     ENDM
  330. INXIX    MACRO        
  331.     DB    0DDH,23H
  332.     ENDM
  333. INXIY    MACRO        
  334.     DB    0FDH,23H
  335.     ENDM
  336. DCXIX    MACRO        
  337.     DB    0DDH,2BH
  338.     ENDM
  339. DCXIY    MACRO        
  340.     DB    0FDH,2BH
  341.     ENDM
  342.  
  343. BIT    MACRO    ?N,?R    
  344.     DB    0CBH,?N*8+?R+40H
  345.     ENDM
  346. SETB    MACRO    ?N,?R
  347.     DB    0CBH,?N*8+?R+0C0H
  348.     ENDM
  349. RES    MACRO    ?N,?R
  350.     DB    0CBH,?N*8+?R+80H
  351.     ENDM
  352.  
  353. BITX    MACRO    ?N,?D    
  354.     @CHK    ?D
  355.     DB    0DDH,0CBH,?D,?N*8+46H
  356.     ENDM
  357. BITY    MACRO    ?N,?D    
  358.     @CHK    ?D
  359.     DB    0FDH,0CBH,?D,?N*8+46H
  360.     ENDM
  361. SETX    MACRO    ?N,?D    
  362.     @CHK    ?D
  363.     DB    0DDH,0CBH,?D,?N*8+0C6H
  364.     ENDM
  365. SETY    MACRO    ?N,?D    
  366.     @CHK    ?D
  367.     DB    0FDH,0CBH,?D,?N*8+0C6H
  368.     ENDM
  369. RESX    MACRO    ?N,?D    
  370.     @CHK    ?D
  371.     DB    0DDH,0CBH,?D,?N*8+86H
  372.     ENDM
  373. RESY    MACRO    ?N,?D    
  374.     @CHK    ?D
  375.     DB    0FDH,0CBH,?D,?N*8+86H
  376.     ENDM
  377.  
  378. JR    MACRO    ?N
  379.     @CHK    (?N-$-1)
  380.     DB    18H,?N-$-1
  381.     ENDM
  382. JRC    MACRO    ?N
  383.     @CHK    (?N-$-1)
  384.     DB    38H,?N-$-1
  385.     ENDM
  386. JRNC    MACRO    ?N
  387.     @CHK    (?N-$-1)
  388.     DB    30H,?N-$-1
  389.     ENDM
  390. JRZ    MACRO    ?N
  391.     @CHK    (?N-$-1)
  392.     DB    28H,?N-$-1
  393.     ENDM
  394. JRNZ    MACRO    ?N
  395.     @CHK    (?N-$-1)
  396.     DB    20H,?N-$-1
  397.     ENDM
  398. DJNZ    MACRO    ?N
  399.     @CHK    (?N-$-1)
  400.     DB    10H,?N-$-1
  401.     ENDM
  402.  
  403. PCIX    MACRO        
  404.     DB    0DDH,0E9H
  405.     ENDM
  406. PCIY    MACRO        
  407.     DB    0FDH,0E9H
  408.     ENDM
  409.  
  410. RETI    MACRO        
  411.     DB    0EDH,4DH
  412.     ENDM
  413. RETN    MACRO        
  414.     DB    0EDH,45H
  415.     ENDM
  416.  
  417. INP    MACRO    ?R    
  418.     DB    0EDH,?R*8+40H
  419.     ENDM
  420. OUTP    MACRO    ?R    
  421.     DB    0EDH,?R*8+41H
  422.     ENDM
  423. INI    MACRO        
  424.     DB    0EDH,0A2H
  425.     ENDM
  426. INIR    MACRO        
  427.     DB    0EDH,0B2H
  428.     ENDM
  429. IND    MACRO        
  430.     DB    0EDH,0AAH
  431.     ENDM
  432. INDR    MACRO        
  433.     DB    0EDH,0BAH
  434.     ENDM
  435. OUTI    MACRO        
  436.     DB    0EDH,0A3H
  437.     ENDM
  438. OUTIR    MACRO        
  439.     DB    0EDH,0B3H
  440.     ENDM
  441. OUTD    MACRO        
  442.     DB    0EDH,0ABH
  443.     ENDM
  444. OUTDR    MACRO        
  445.     DB    0EDH,0BBH
  446.     ENDM
  447.  
  448.  
  449. RLCR    MACRO    ?R    
  450.     DB    0CBH, 00H + ?R
  451.     ENDM
  452. RLCX    MACRO    ?D    
  453.     @CHK    ?D
  454.     DB    0DDH, 0CBH, ?D, 06H
  455.     ENDM
  456. RLCY    MACRO    ?D    
  457.     @CHK    ?D
  458.     DB    0FDH, 0CBH, ?D, 06H
  459.     ENDM
  460. RALR    MACRO    ?R    
  461.     DB    0CBH, 10H+?R
  462.     ENDM
  463. RALX    MACRO    ?D    
  464.     @CHK    ?D
  465.     DB    0DDH, 0CBH, ?D, 16H
  466.     ENDM
  467. RALY    MACRO    ?D    
  468.     @CHK    ?D
  469.     DB    0FDH, 0CBH, ?D, 16H
  470.     ENDM
  471. RRCR    MACRO    ?R    
  472.     DB    0CBH, 08H + ?R
  473.     ENDM
  474. RRCX    MACRO    ?D    
  475.     @CHK    ?D
  476.     DB    0DDH, 0CBH, ?D, 0EH
  477.     ENDM
  478. RRCY    MACRO    ?D    
  479.     @CHK    ?D
  480.     DB    0FDH, 0CBH, ?D, 0EH
  481.     ENDM
  482. RARR    MACRO    ?R    
  483.     DB    0CBH, 18H + ?R
  484.     ENDM
  485. RARX    MACRO    ?D    
  486.     @CHK    ?D
  487.     DB    0DDH, 0CBH, ?D, 1EH
  488.     ENDM
  489. RARY    MACRO    ?D    
  490.     @CHK    ?D
  491.     DB    0FDH, 0CBH, ?D, 1EH
  492.     ENDM
  493. SLAR    MACRO    ?R    
  494.     DB    0CBH, 20H + ?R
  495.     ENDM
  496. SLAX    MACRO    ?D    
  497.     @CHK    ?D
  498.     DB    0DDH, 0CBH, ?D, 26H
  499.     ENDM
  500. SLAY    MACRO    ?D    
  501.     @CHK    ?D
  502.     DB    0FDH, 0CBH, ?D, 26H
  503.     ENDM
  504. SRAR    MACRO    ?R    
  505.     DB    0CBH, 28H+?R
  506.     ENDM
  507. SRAX    MACRO    ?D    
  508.     @CHK    ?D
  509.     DB    0DDH, 0CBH, ?D, 2EH
  510.     ENDM
  511. SRAY    MACRO    ?D    
  512.     @CHK    ?D
  513.     DB    0FDH, 0CBH, ?D, 2EH
  514.     ENDM
  515. SRLR    MACRO    ?R    
  516.     DB    0CBH, 38H + ?R
  517.     ENDM
  518. SRLX    MACRO    ?D    
  519.     @CHK    ?D
  520.     DB    0DDH, 0CBH, ?D, 3EH
  521.     ENDM
  522. SRLY    MACRO    ?D    
  523.     @CHK    ?D
  524.     DB    0FDH, 0CBH, ?D, 3EH
  525.     ENDM
  526. RLD    MACRO        
  527.     DB    0EDH, 6FH
  528.     ENDM
  529. RRD    MACRO        
  530.     DB    0EDH, 67H
  531.     ENDM
  532.