home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / wst!oma3.lha / OMA / Include / exec / macros.i < prev    next >
Encoding:
Text File  |  1994-12-23  |  1.7 KB  |  111 lines

  1.     IFND    EXEC_MACROS_I
  2. EXEC_MACROS_I    EQU    1
  3. *    $Filename: exec/macros.i $
  4. *    $Release: 2.04 Includes, V37.4 $
  5. *    $Revision: 36.8 $
  6. *    $Date: 90/11/01 $
  7. *    Handy macros for assembly language programmers.
  8. *    (C) Copyright 1985-1991 Commodore-Amiga, Inc.
  9. *        All Rights Reserved
  10.     IFND    DEBUG_DETAIL
  11. DEBUG_DETAIL    SET    0
  12.     ENDC
  13. JSRLIB    MACRO
  14.     XREF    _LVO\1
  15.     jsr    _LVO\1(a6)
  16.     ENDM
  17. JMPLIB    MACRO
  18.     XREF    _LVO\1
  19.     jmp    _LVO\1(a6)
  20.     ENDM
  21. BSRSELF    MACRO
  22.     XREF    \1
  23.     bsr    \1
  24.     ENDM
  25. BRASELF    MACRO
  26.     XREF    \1
  27.     bra    \1
  28.     ENDM
  29. BLINK    MACRO
  30.     IFNE    DEBUG_DETAIL
  31.     bchg.b    #1,$bfe001
  32.     ENDC
  33.     ENDM
  34. TRIGGER    MACRO
  35.     IFGE    DEBUG_DETAIL-\1
  36.     move.w    #$5555,$2fe
  37.     ENDC
  38.     ENDM
  39. CLEAR    MACRO
  40.     moveq.l    #0,\1
  41.     ENDM
  42. CLEARA    MACRO
  43.     suba.l    \1,\1
  44.     ENDM
  45.     IFND    PRINTF
  46. PRINTF    MACRO
  47.     IFGE    DEBUG_DETAIL-\1
  48.     XREF    kprint_macro
  49. PUSHCOUNT    SET    0
  50.     IFNC    '\9',''
  51.     move.l    \9,-(sp)
  52. PUSHCOUNT    SET    PUSHCOUNT+4
  53.     ENDC
  54.     IFNC    '\8',''
  55.     move.l    \8,-(sp)
  56. PUSHCOUNT    SET    PUSHCOUNT+4
  57.     ENDC
  58.     IFNC    '\7',''
  59.     move.l    \7,-(sp)
  60. PUSHCOUNT    SET    PUSHCOUNT+4
  61.     ENDC
  62.     IFNC    '\6',''
  63.     move.l    \6,-(sp)
  64. PUSHCOUNT    SET    PUSHCOUNT+4
  65.     ENDC
  66.     IFNC    '\5',''
  67.     move.l    \5,-(sp)
  68. PUSHCOUNT    SET    PUSHCOUNT+4
  69.     ENDC
  70.     IFNC    '\4',''
  71.     move.l    \4,-(sp)
  72. PUSHCOUNT    SET    PUSHCOUNT+4
  73.     ENDC
  74.     IFNC    '\3',''
  75.     move.l    \3,-(sp)
  76. PUSHCOUNT    SET    PUSHCOUNT+4
  77.     ENDC
  78.     movem.l    a0/a1,-(sp)
  79.     lea.l    PSS\@(pc),A0
  80.     lea.l    4*2(SP),A1
  81.     BSR    kprint_macro
  82.     movem.l    (sp)+,a0/a1
  83.     bra.s    PSE\@
  84. PSS\@    dc.b    \2
  85.     IFEQ    (\1&1)
  86.     dc.b    13,10
  87.     ENDC
  88.     dc.b    0
  89.     ds.w    0
  90. PSE\@    
  91.     lea.l    PUSHCOUNT(sp),sp
  92.     ENDC
  93.     ENDM
  94.     ENDC
  95. PUSHM_COUNT    SET    0
  96. PUSHM    MACRO
  97.     IFGT    NARG-1
  98.     FAIL
  99.     ENDC
  100. PUSHM_COUNT    SET    PUSHM_COUNT+1
  101. PUSHM_\*VALOF(PUSHM_COUNT)    REG    \1
  102.     movem.l    PUSHM_\*VALOF(PUSHM_COUNT),-(sp)
  103.     ENDM
  104. POPM    MACRO
  105.     movem.l    (sp)+,PUSHM_\*VALOF(PUSHM_COUNT)
  106.     IFNC    '\1','NOBUMP'
  107. PUSHM_COUNT    SET    PUSHM_COUNT+1
  108.     ENDC
  109.     ENDM
  110.     ENDC
  111.