home *** CD-ROM | disk | FTP | other *** search
- *********************************************************************
- *
- * Macros.i
- * General-purpose macros for A68k assembler
- *
- * Copyright (C) 1990 Bryan Ford
- * All Rights Reserved
- *
- *********************************************************************
- ifnd BRY_MACROS_I
- BRY_MACROS_I set 1
-
- bhs macro ; <label> ; Branch if higher or same (unsigned)
- bcc.\0 \1
- endm
-
- blo macro ; <label> ; Branch if lower (unsigned)
- bcs.\0 \1
- endm
-
- bz macro ; <label> ; Branch if zero
- beq.\0 \1
- endm
-
- bnz macro ; <label> ; Branch if zero
- bne.\0 \1
- endm
-
- push macro ; <registers> ; Push registers on stack
- movem.\0 \1,-(sp)
- endm
-
- pop macro ; <registers> ; Pop registers off of stack
- movem.\0 (sp)+,\1
- endm
-
- dcb macro ; <count> ; Alternative to ds
- ds.\0 \1
- endm
-
- casl macro ; bits,Dn ; Shift Dn left by constant number of bits
- ifgt \1-8
- asl.\0 #8,\2
- casl.\0 \1-8,\2
- endc
- ifle \1-8
- asl.\0 #\1,\2
- endc
- endm
-
- clsl macro ; bits,Dn ; Shift Dn left by constant number of bits
- casl.\0 \1,\2
- endm
-
- casr macro ; bits,Dn ; Arithmetic shift Dn right by constant
- ifgt \1-8
- asr.\0 #8,\2
- casr.\0 \1-8,\2
- endc
- ifle \1-8
- asr.\0 #\1,\2
- endc
- endm
-
- clsr macro ; bits,Dn ; Logical shift Dn right by constant
- ifgt \1-8
- lsr.\0 #8,\2
- clsr.\0 \1-8,\2
- endc
- ifle \1-8
- lsr.\0 #\1,\2
- endc
- endm
-
- endc
-