Subversion Repositories pentevo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1186 savelij 1
		ifndef  stddef47inc     ; avoid multiple inclusion
2
stddef47inc     equ     1
3
 
4
		save
5
		listing off		; no listing over this file
6
;****************************************************************************
7
;*                                                                          *
8
;*   AS 1.42 - File STDDEF47.INC                                            *
9
;*                                                                          *
10
;*   Contains the "extended instruction set" for TLCS-47(0(A*)) Processors  *                                            *
11
;*                                                                          *
12
;****************************************************************************
13
 
14
                if      (MOMCPU<>293888)&&(MOMCPU<>4656128)&&(MOMCPU<>74492928)
15
		 fatal  "wrong target selected: only 47C00, 470C00, oder 470AC00 allowed"
16
		endif
17
 
18
                if      MOMPASS=1
19
		 message "TLCS-47 Macro Definitions"
20
		 message "(C) 1994 Alfred Arnold"
21
                 message "Target Processor: \{MOMCPU}"
22
		endif
23
 
24
;----------------------------------------------------------------------------
25
; Conditional Jumps
26
 
27
bz		macro	adr		; Compare and Branch if ZF=1
28
		testp	zf
29
		b	adr
30
		endm
31
 
32
 
33
bnz		macro	adr		; Compare and Branch if ZF=0
34
		testp	zf
35
		b	s1
36
		b	adr
37
s1:
38
		endm
39
 
40
 
41
bc		macro	adr		; Compare and Branch if CF=1
42
		testp	cf
43
		b	adr
44
		endm
45
 
46
 
47
bnc		macro	adr		; Compare and Branch if CF=0
48
		test	cf
49
		b	adr
50
		endm
51
 
52
 
53
be		macro	dest,src,adr	; Compare and Branch if equal
54
		cmpr	dest,src
55
		testp	zf
56
		b	adr
57
		endm
58
 
59
 
60
bne		macro	dest,src,adr	; Compare and Branch if unequal
61
		cmpr	dest,src
62
                if      UpString("DEST")<>"A"
63
		 testp	zf
64
		 b	s1
65
		endif
66
		b	adr
67
s1:
68
		endm
69
 
70
 
71
bge		macro	dest,src,adr	; Compare and Branch if greater than or equal
72
		cmpr	dest,src
73
		testp	zf
74
		b	adr
75
		test	cf
76
		b	adr
77
		endm
78
 
79
 
80
bgt		macro	dest,src,adr	; Compare and Branch if greater than
81
		cmpr	dest,src
82
		test	cf
83
		b	adr
84
		endm
85
 
86
 
87
ble		macro	dest,src,adr	; Compare and Branch if less than or equal
88
		cmpr	dest,src
89
		testp	cf
90
		b	adr
91
		endm
92
 
93
 
94
blt		macro	dest,src,adr	; Compare and Branch if less than
95
		cmpr	dest,src
96
		testp	zf
97
		b	s1
98
		testp	cf
99
		b	adr
100
s1:
101
		endm
102
 
103
;----------------------------------------------------------------------------
104
; Sub Program Calls
105
 
106
callss		macro	vector		; Via Vector
107
		if	vector=0
108
		 calls	86h
109
		elseif
110
		 calls	(vector<<3)+6
111
		endif
112
		endm
113
 
114
 
115
callz		macro	adr		; If ZF=1
116
		testp	zf
117
		b	s1
118
		b	s2
119
s1:		call	adr
120
s2:
121
		endm
122
 
123
 
124
callnz		macro	adr		; If ZF=0
125
		testp	zf
126
		b	s1
127
		call	adr
128
s1:
129
		endm
130
 
131
 
132
callc		macro	adr		; If CF=1
133
		test	cf
134
		b	s1
135
		call	adr
136
s1:
137
		endm
138
 
139
 
140
callnc		macro	adr		; If CF=0
141
		testp	cf
142
		b	s1
143
		call	adr
144
s1:
145
		endm
146
 
147
;----------------------------------------------------------------------------
148
; Sub Program Returns
149
 
150
retz		macro			; If ZF=1
151
		testp	zf
152
		b	s1
153
		b	s2
154
s1:		ret
155
s2:
156
		endm
157
 
158
 
159
retnz		macro			; If ZF=0
160
		testp	zf
161
		b	s1
162
		ret
163
s1:
164
		endm
165
 
166
 
167
retc		macro			; If CF=1
168
		test	cf
169
		b	s1
170
		ret
171
s1:
172
		endm
173
 
174
 
175
retnc		macro			; If CF=0
176
		testp	cf
177
		b	s1
178
		ret
179
s1:
180
		endm
181
 
182
;----------------------------------------------------------------------------
183
; Interrupt Returns
184
 
185
retiz		macro			; If ZF=1
186
		testp	zf
187
		b	s1
188
		b	s2
189
s1:		reti
190
s2:
191
		endm
192
 
193
 
194
retinz		macro			; If ZF=0
195
		testp	zf
196
		b	s1
197
		reti
198
s1:
199
		endm
200
 
201
 
202
retic		macro			; If CF=1
203
		test	cf
204
		b	s1
205
		reti
206
s1:
207
		endm
208
 
209
 
210
retinc		macro			; If CF=0
211
		testp	cf
212
		b	s1
213
		reti
214
s1:
215
		endm
216
 
217
;----------------------------------------------------------------------------
218
; Extended Shift Instructions
219
 
220
shl		macro	op,cnt		; Logical Shift Left
221
                if      UpString("OP")<>"A"
222
		 xch	a,op
223
		endif
224
		rept	cnt
225
		 test	cf
226
		 rolc	a
227
		endm
228
                if      UpString("OP")<>"A"
229
		 xch	a,op
230
		endif
231
		endm
232
 
233
shr		macro	op,cnt		; Logical Shift Right
234
                if      UpString("OP")<>"A"
235
		 xch	a,op
236
		endif
237
		rept	cnt
238
		 test	cf
239
		 rorc	a
240
		endm
241
                if      UpString("OP")<>"A"
242
		 xch	a,op
243
		endif
244
		endm
245
 
246
;----------------------------------------------------------------------------
247
; Interrupt Enable/Disable
248
 
249
ei		macro
250
		eiclr	il,3fh
251
		endm
252
 
253
di		macro
254
		diclr	il,3fh
255
		endm
256
 
257
;---------------------------------------------------------------------------
258
 
259
		restore			; re-allow listing
260
 
261
		endif			; stddef47inc