Initial import of Scalos. To decrease size I have
[AROS-Contrib.git] / scalos / Plugins / OOP / title_test / scalos_macros.i
blob9b0249980e5600f6e9a8a1ea1f61dde77609246c
1 ; Scalos_Macros.i
2 ; 30 Aug 2001 20:47:16
4 tsta MACRO
5 IFNE mode020
6 tst.l \1
7 ELSE
8 cmp.l #0,'\1'
9 ENDC
10 ENDM
12 tstpc: MACRO
13 IFNE mode020
14 tst.\0 \1(pc)
15 ELSE
16 tst.\0 \1
17 ENDC
18 ENDM
20 bral: MACRO
21 IFNE mode020
22 bra.l \1
23 ELSE
24 jmp \1
25 ENDC
26 ENDM
28 bsrl: MACRO
29 IFNE mode020
30 bsr.l \1
31 ELSE
32 jsr \1
33 ENDC
34 ENDM
36 bnel: MACRO
37 IFNE mode020
38 bne.l \1
39 ELSE
40 beq.s skip\@
41 jmp \1
42 skip\@:
43 ENDC
44 ENDM
46 DoMethod MACRO
47 movem.l d1/a0-a1/a6,-(a7)
48 move.l a7,a6
49 clr.l -(a7)
50 ifge NARG-15
51 move.l \f,-(a7)
52 endc
53 ifge NARG-14
54 move.l \e,-(a7)
55 endc
56 ifge NARG-13
57 move.l \d,-(a7)
58 endc
59 ifge NARG-12
60 move.l \c,-(a7)
61 endc
62 ifge NARG-11
63 move.l \b,-(a7)
64 endc
65 ifge NARG-10
66 move.l \a,-(a7)
67 endc
68 ifge NARG-9
69 move.l \9,-(a7)
70 endc
71 ifge NARG-8
72 move.l \8,-(a7)
73 endc
74 ifge NARG-7
75 move.l \7,-(a7)
76 endc
77 ifge NARG-6
78 move.l \6,-(a7)
79 endc
80 ifge NARG-5
81 move.l \5,-(a7)
82 endc
83 ifge NARG-4
84 move.l \4,-(a7)
85 endc
86 ifge NARG-3
87 move.l \3,-(a7)
88 endc
89 ifge NARG-2
90 move.l \2,-(a7)
91 endc
92 ifge NARG-1
93 move.l \1,-(a7)
94 endc
95 move.l a7,a1
96 jsr _DoMethod
97 move.l a6,a7
98 movem.l (a7)+,d1/a0-a1/a6
99 ENDM
101 cmv3 MACRO
102 ifge NARG-1
103 move.l '\1',-(a7)
104 ENDC
105 ENDM
107 ;+++;30 = mu_sizeof
108 ;+++GTMENU_USERDATA MACRO
109 ;+++ move.l 30(\1),\2
110 ;+++ ENDM
111 ;+++
112 ;+++;34 = mi_sizeof
113 ;+++GTMENUITEM_USERDATA MACRO
114 ;+++ move.l 34(\1),\2
115 ;+++ ENDM
117 seti: MACRO
118 move.l \2,d0
119 move.l \3,d1
120 move.l \1,a0
121 bsr.s setattr
122 ENDM
124 geti: MACRO
125 move.l \1,a0
126 move.l \2,d0
127 bsr.s getattr
128 ENDM
130 TRUE EQU 1
131 FALSE EQU 0
134 call MACRO
135 ; xref _LVO\1
136 jsr _LVO\1(a6)
137 ENDM
139 RETURNSUPER MACRO
140 movem.l (a7)+,d1-a6
141 move.l (cl_Super,a0),a0
142 move.l (cl_Dispatcher+h_Entry,a0),-(a7)
144 ENDM
146 CALLSUPER MACRO
147 movem.l a0-a3,-(a7)
148 move.l (cl_Super,a0),a0
149 move.l (cl_Dispatcher+h_Entry,a0),a3
150 jsr (a3)
151 movem.l (a7)+,a0-a3
152 ENDM
154 STARTCLASS MACRO
155 movem.l d1-a6,-(a7)
156 lea \1,a3
157 move.l (a1),d1
158 .loop:
159 move.l (a3)+,d2
160 beq.s .loopend
161 cmp.l d2,d1
162 beq.s .found
163 addq.w #4,a3
164 bra.s .loop
165 .found:
166 move.l (a3)+,a3
167 jsr (a3) ; +jl+ 20010830
168 movem.l (a7)+,d1-a6
171 .loopend:
172 movem.l (a7)+,d1-a6
173 move.l 24(a0),a0
174 move.l 8(a0),-(a7)
176 ENDM
178 STARTMETHOD MACRO
179 movem.l d1-a6,-(sp) ; +jl+ 20010830
180 move.w (cl_InstOffset,a0),d6
181 lea (a2,d6.w),a4 ; instance data
182 move.l (a2),a5 ; ScaWindowTask
183 lea 4(a1),a3 ; skip MethodID
184 ENDM
186 STARTMETHODNEW MACRO
187 movem.l d1-a6,-(sp) ; +jl+ 20010830
188 ENDM
190 ENDMETHOD MACRO
191 movem.l (a7)+,d1-a6
193 ENDM
195 DBSTRING MACRO
196 movem.l a0/a1,-(a7)
197 move.l \1,-(a7)
198 move.l a7,a1
199 lea debugstring,a0
200 jsr dboutput
201 addq.w #4,a7
202 movem.l (a7)+,a0/a1
203 ENDM
205 DBNUMBER MACRO
206 movem.l a0/a1,-(a7)
207 move.l \1,-(a7)
208 move.l a7,a1
209 lea debugnumber,a0
210 jsr dboutput
211 addq.w #4,a7
212 movem.l (a7)+,a0/a1
213 ENDM