home *** CD-ROM | disk | FTP | other *** search
-
- **
- ** $VER: gcmacros.i (20/10/94)
- **
- ** GC Customized Macros
- **
- ** (C) Copyright 1994 The Beet Research
- ** All rights reserved.
- **
-
- IFND BDGMACROS_I
-
- BDGMACROS_I SET 1
-
-
- ; for calling exec once (saves a6)
-
- sys MACRO ; syntax: liboffset
- move.l a6,-(sp)
- move.l 4.w,a6
- jsr _LVO\1(a6)
- move.l (sp)+,a6
- ENDM
-
-
- ; for calling library functions
-
- call MACRO ; syntax: liboffset,[libbase]
- IFNC '\2',''
- move.l a6,-(sp)
- move.l _\2Base(pc),a6
- jsr _LVO\1(a6)
- move.l (sp)+,a6
- ELSE
- jsr _LVO\1(a6)
- ENDC
- ENDM
-
-
- ; jumps to library function
-
- calljmp MACRO ; syntax: liboffset
- jmp _LVO\1(a6)
- ENDM
-
-
- ; sets library base
-
- setbase MACRO ; syntax: libbase
- move.l _\1Base(pc),a6
- ENDM
-
-
- ; sets exec base
-
- setexec MACRO ; syntax: none
- IFND _ExecBase
- move.l 4.w,a6
- ELSE
- move.l _ExecBase(pc),a6
- ENDC
- ENDM
-
-
- ; clears data register
-
- cld MACRO ; syntax: Dx
- moveq #0,\1
- ENDM
-
-
- ; clears address register
-
- cla MACRO ; syntax: Ax
- sub.l \1,\1
- ENDM
-
-
- ; opens library with version care or not
-
- openlib MACRO ; syntax: libname,[libversion]
- lea \1(pc),a1
- IFNC '\2',''
- IF \2<$7f
- moveq #\2,d0
- ELSE
- move.l #\2,d0
- ENDC
- ELSE
- moveq #0,d0
- ENDC
- jsr _LVOOpenLibrary(a6)
- ENDM
-
-
- ; closes library safe (checks if it was opened)
-
- clslib MACRO ; syntax: libbase
- move.l _\1Base(pc),a1
- cmp.l #0,a1
- beq.s .lno\1
- jsr _LVOCloseLibrary(a6)
- .lno\1
- ENDM
-
-
- ; tests address register; if it's equal 0 jumps
-
- tstabeq MACRO ; syntax: Ax,<label>
- cmpa.l #0,\1
- beq.s \2
- ENDM
-
-
-
- IFD LIBRARIES_REQTOOLS_I
-
- ; allocs reqtools.library's requester
-
- allocreq MACRO
- moveq.l #\1,d0 ; syntax: type, place to store ptr
- sub.l a0,a0
- call rtAllocRequestA
- move.l d0,\2
- ENDM
-
- ; frees requester safe
-
- freereq MACRO
- move.l \1(pc),a1 ; syntax: ptr
- cmp.l #0,a1
- beq.s .rno\1
- call rtFreeRequest
- .rno\1
- ENDM
-
- ENDC
-
- IFD INTUITION_INTUITION_I
-
- ; activates gadget
-
- actgad MACRO ; syntax: gadget,window
- move.l \1,a0
- move.l \2(pc),a1
- sub.l a2,a2
- call ActivateGadget,Intuition
- ENDM
-
- ENDC
-
-
- IFD LIBRARIES_GADTOOLS_I
-
- ; changes gadtools.library' gadget
-
- gadchg MACRO ; syntax: gad,win,taglist
- move.l \1,a0
- move.l \2(pc),a1
- sub.l a2,a2
- call GT_SetGadgetAttrsA
- ENDM
-
- ENDC
-
-
- IFD LOWERUNDERSCORE_I
-
- ngadchg MACRO ; syntax: gad,win,taglist,[ea]
- move.l \1,a0
- move.l \2(pc),a1
- sub.l a2,a2
- IFNC '\3',''
- lea \3(pc),a3
- ELSE
- IFNC '\4',''
- move.l \4,a3
- ENDC
- ENDC
- jsr LU_SetGadgetAttrsA
- ENDM
-
- ENDC
-
- TRUE = 1
- NULL = 0
- FALSE = 0
- execbase = 4
- _SysBase = 4
-
- ENDC
-
-