home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 581a.lha / MemMan_v2.0 / Macros.i < prev    next >
Text File  |  1991-12-04  |  2KB  |  147 lines

  1. *********************************************************************
  2. *
  3. *                    Macros.i
  4. *             Bryan's obfuscated macros for A68k
  5. *
  6. *            Copyright (C) 1990 Bryan Ford
  7. *                 All Rights    Reserved
  8. *
  9. *********************************************************************
  10.     ifnd    BRY_MACROS_I
  11. BRY_MACROS_I    set    1
  12.  
  13. b    macro    ; <label>        ; Branch
  14.     bra.\0    \1
  15.     endm
  16.  
  17. bhs    macro    ; <label>        ; Branch if higher or same (unsigned)
  18.     bcc.\0    \1
  19.     endm
  20.  
  21. blo    macro    ; <label>        ; Branch if lower (unsigned)
  22.     bcs.\0    \1
  23.     endm
  24.  
  25. bz    macro    ; <label>        ; Branch if zero
  26.     beq.\0    \1
  27.     endm
  28.  
  29. bnz    macro    ; <label>        ; Branch if zero
  30.     bne.\0    \1
  31.     endm
  32.  
  33. macm    macro    ; <source> <dest>    ; Macro    used by    move macros
  34.     ifc    '\3',''
  35.     move.\0    \1,\2
  36.     endc
  37.     ifnc    '\3',''
  38.     ifc    '\4',''
  39.     move.\0    \1,\2,\3
  40.     endc
  41.     ifnc    '\4',''
  42.     move.\0    \1,\2,\3,\4
  43.     endc
  44.     endc
  45.     endm
  46.  
  47. ml    macro    ; <source>,<dest>    ; Move long
  48.     macm.l    \1,\2,\3,\4
  49.     endm
  50.  
  51. mw    macro    ; <source>,<dest>    ; Move word
  52.     macm.w    \1,\2,\3,\4
  53.     endm
  54.  
  55. mb    macro    ; <source>,<dest>    ; Move byte
  56.     macm.b    \1,\2,\3,\4
  57.     endm
  58.  
  59. mq    macro    ; <const>,<dest>    ; Move quick
  60.     moveq    \1,\2
  61.     endm
  62.  
  63. tl    macro    ; <source>        ; Test long
  64.     tst.l    \1
  65.     endm
  66.  
  67. cl    macro    ; <dest>        ; Clear    long
  68.     clr.l    \1
  69.     endm
  70.  
  71. cq    macro    ; <dn>            ; Clear    quick D    reg
  72.     moveq    #0,\1
  73.     endm
  74.  
  75. push    macro    ; <registers>        ; Push (long) registers    on stack
  76.     movem.l    \1,-(sp)
  77.     endm
  78.  
  79. pop    macro    ; <registers>        ; Pop (long) registers off of stack
  80.     movem.l    (sp)+,\1
  81.     endm
  82.  
  83. apush    macro                ; Automatically    save registers
  84.     autoreg                ; Clear    autoreg    list
  85.     push    \aregs
  86.     endm
  87.  
  88. apop    macro                ; Restore registers
  89.     pop    \aregs
  90. \aregs    autoreg    d0-d1/a0-a1/sp
  91.     endm
  92.  
  93. dcb    macro    ; <count>        ; Alternative to ds
  94.     ds.\0    \1
  95.     endm
  96.  
  97. jl    macro    ; <libfunc>        ; Call library function
  98.     jsr    _LVO\1(a6)
  99.     endm
  100.  
  101. casl    macro    ; bits,Dn        ; Shift    Dn left    by constant number of bits
  102.     ifgt    \1-8
  103.     asl.\0    #8,\2
  104.     casl.\0    \1-8,\2
  105.     endc
  106.     ifle    \1-8
  107.     asl.\0    #\1,\2
  108.     endc
  109.     endm
  110.  
  111. clsl    macro    ; bits,Dn        ; Shift    Dn left    by constant number of bits
  112.     casl.\0    \1,\2
  113.     endm
  114.  
  115. casr    macro    ; bits,Dn        ; Arithmetic shift Dn right by constant
  116.     ifgt    \1-8
  117.     asr.\0    #8,\2
  118.     casr.\0    \1-8,\2
  119.     endc
  120.     ifle    \1-8
  121.     asr.\0    #\1,\2
  122.     endc
  123.     endm
  124.  
  125. clsr    macro    ; bits,Dn        ; Logical shift    Dn right by constant
  126.     ifgt    \1-8
  127.     lsr.\0    #8,\2
  128.     clsr.\0    \1-8,\2
  129.     endc
  130.     ifle    \1-8
  131.     lsr.\0    #\1,\2
  132.     endc
  133.     endm
  134.  
  135. xds    macro    ; label,count        ; Externally visible ds    (for both C and    asm)
  136. \1:
  137. _\1:    ds.\0    \2
  138.     endm
  139.  
  140. dcx    macro                ; Define long external
  141.     xref    \1
  142.     dc.\0    \1
  143.     endm
  144.  
  145.  
  146.     endc
  147.