home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / znode3 / z3lib / h80.lib < prev    next >
Encoding:
Text File  |  1994-09-02  |  2.4 KB  |  138 lines

  1. ;;
  2. ;;                      HD64180 MACRO LIBRARY
  3. ;;
  4. ;;   THE FOLLOWING MACROS ENABLE ASSEMBLING HD64180 INSTRUCTIONS
  5. ;;                        WITH SLR Z80ASM
  6. ;;
  7. ;;                    INVOKE WITH "MACLIB H80"
  8. ;;
  9. ;;
  10. ;;
  11. ;;                          MACRO FORMATS
  12. ;;                          ----- -------
  13. ;;
  14. ;;    HD64180 Unique instructions:
  15. ;;
  16. ;;    SLP            ; Enter SLEEP mode
  17. ;;    MLT    RR        ; 8 bit multiply with 16 bit result
  18. ;;    IN0    R,P (or IN0 P)    ; Input from internal port
  19. ;;    OUT0    P,R (or OUT0 P)    ; Output to internal port
  20. ;;    OTIM            ; Block output, increment
  21. ;;    OTIMR            ; Block output, increment and repeat
  22. ;;    OTDM            ; Block output, decrement
  23. ;;    OTDMR            ; Block output, decrement and repeat
  24. ;;    TSTIO    P        ; Non destructive AND, I/O port and A
  25. ;;    TSTR    R  (or TST R)    ; Non destructive AND, reg and A
  26. ;;    TSTD    D  (or TST ID)    ; Non destructive AND, immediate data and A
  27. ;;    TSTP       (or TST M)    ; Non destructive AND, (HL) and A
  28. ;;           (or TST (HL))
  29. ;;
  30. ;;
  31. ;;
  32. ;; HD64180 orignal command support
  33.  
  34. ??BC    EQU    0    ; Double-register definitions
  35. ??DE    EQU    1
  36. ??HL    EQU    2
  37. ??SP    EQU    3
  38.  
  39. ??A    EQU    7    ; Single-register defintions
  40. ??B    EQU    0
  41. ??C    EQU    1
  42. ??D    EQU    2
  43. ??E    EQU    3
  44. ??H    EQU    4
  45. ??L    EQU    5
  46.  
  47. SLP    MACRO
  48.     DB    0EDH,76H
  49.     ENDM
  50.  
  51. MLT    MACRO    ?R
  52.     DB    0EDH,4CH+(??&?R AND 3) SHL 4
  53.     ENDM
  54.  
  55. IN0    MACRO    ?R,?P
  56.     IF    NUL ?P
  57.     DB    0EDH,??A SHL 3,?R
  58.     ELSE
  59.     DB    0EDH,(??&?R AND 7) SHL 3, ?P
  60.     ENDIF
  61.     ENDM
  62.  
  63. OUT0    MACRO    ?P,?R
  64.     IF    NUL ?R
  65.     DB    0EDH,1+??A SHL 3,?P
  66.     ELSE
  67.     DB    0EDH,1+(??&?R AND 7) SHL 3,?P
  68.     ENDIF
  69.     ENDM
  70.  
  71. OTIM    MACRO
  72.     DB    0EDH,83H
  73.     ENDM
  74.  
  75. OTIMR    MACRO
  76.     DB    0EDH,93H
  77.     ENDM
  78.  
  79. OTDM    MACRO
  80.     DB    0EDH,8BH
  81.     ENDM
  82.  
  83. OTDMR    MACRO
  84.     DB    0EDH,9BH
  85.     ENDM
  86.  
  87. TSTIO    MACRO    ?P
  88.     DB    0EDH,74H,?P
  89.     ENDM
  90.  
  91. TSTR    MACRO    ?R
  92.     DB    0EDH,4+(??&?R AND 7) SHL 3
  93.     ENDM
  94.  
  95. TSTD    MACRO    ?P
  96.     DB    0EDH,64H,?P
  97.     ENDM
  98.  
  99. TSTP    MACRO
  100.     DB    0EDH,34H
  101.     ENDM
  102.  
  103. TST    MACRO    ?R
  104.       ?D: SET 0
  105.       IRPC    ?X,?R
  106.       ?D: SET ?D+1        ; Count # chars in "?R"
  107.       ENDM
  108.         IF ?D EQ 1        ; IF # chars = 1
  109.          IRPC ?X,ABCDEHL    ; Look up the character
  110.            IF ??&?X EQ ??&?R
  111.            DB    0EDH,4+(??&?R AND 7) SHL 3
  112.            EXITM
  113.            ENDIF
  114.          ENDM
  115.          DB        0EDh,64h,?R
  116.          EXITM
  117.         ENDIF
  118.     IF    (?R = 2) & (?D = 4)
  119.        ?D: SET 0
  120.        IRPC ?X,?R
  121.         IFIDN <?X>,<(>
  122.             DB 0EDh,34h
  123.             EXITM
  124.         ENDIF
  125.        ?D: SET ?D + 1
  126.        ENDM
  127.     ENDIF
  128.     IF ?D NE 0
  129.        DB    0EDH,64H,?R
  130.     ENDIF
  131.     ENDM
  132.  
  133. ;; End of H80.LIB
  134.  AND 7) SHL 3, ?P
  135.     ENDIF
  136.     ENDM
  137.  
  138. OUT0    MACRO