home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 568a.lha / MemMan / Macros.i next >
Text File  |  1991-10-18  |  1KB  |  76 lines

  1. *********************************************************************
  2. *
  3. *                                   Macros.i
  4. *                 General-purpose macros for A68k assembler
  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. bhs    macro    ; <label>        ; Branch if higher or same (unsigned)
  14.     bcc.\0    \1
  15.     endm
  16.  
  17. blo    macro    ; <label>        ; Branch if lower (unsigned)
  18.     bcs.\0    \1
  19.     endm
  20.  
  21. bz    macro    ; <label>        ; Branch if zero
  22.     beq.\0    \1
  23.     endm
  24.  
  25. bnz    macro    ; <label>        ; Branch if zero
  26.     bne.\0    \1
  27.     endm
  28.  
  29. push    macro    ; <registers>        ; Push registers on stack
  30.     movem.\0 \1,-(sp)
  31.     endm
  32.  
  33. pop    macro    ; <registers>        ; Pop registers off of stack
  34.     movem.\0 (sp)+,\1
  35.     endm
  36.  
  37. dcb    macro    ; <count>        ; Alternative to ds
  38.     ds.\0    \1
  39.     endm
  40.  
  41. casl    macro    ; bits,Dn        ; Shift Dn left by constant number of bits
  42.     ifgt    \1-8
  43.     asl.\0    #8,\2
  44.     casl.\0    \1-8,\2
  45.     endc
  46.     ifle    \1-8
  47.     asl.\0    #\1,\2
  48.     endc
  49.     endm
  50.  
  51. clsl    macro    ; bits,Dn        ; Shift Dn left by constant number of bits
  52.     casl.\0    \1,\2
  53.     endm
  54.  
  55. casr    macro    ; bits,Dn        ; Arithmetic shift Dn right by constant
  56.     ifgt    \1-8
  57.     asr.\0    #8,\2
  58.     casr.\0    \1-8,\2
  59.     endc
  60.     ifle    \1-8
  61.     asr.\0    #\1,\2
  62.     endc
  63.     endm
  64.  
  65. clsr    macro    ; bits,Dn        ; Logical shift Dn right by constant
  66.     ifgt    \1-8
  67.     lsr.\0    #8,\2
  68.     clsr.\0    \1-8,\2
  69.     endc
  70.     ifle    \1-8
  71.     lsr.\0    #\1,\2
  72.     endc
  73.     endm
  74.  
  75.     endc
  76.