Initial revision
[fw/sdcc] / device / lib / large / _fslt.asm
1 ;--------------------------------------------------------
2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 ; Version 2.1.9Ga Sun Jan 16 17:31:27 2000
4
5 ;--------------------------------------------------------
6         .module _fslt
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
10         .globl ___fslt_PARM_2
11         .globl ___fslt
12 ;--------------------------------------------------------
13 ; special function registers
14 ;--------------------------------------------------------
15 ;--------------------------------------------------------
16 ; special function bits 
17 ;--------------------------------------------------------
18 ;--------------------------------------------------------
19 ; internal ram data
20 ;--------------------------------------------------------
21         .area   DSEG    (DATA)
22 ___fslt_sloc0_1_0:
23         .ds     0x0004
24 ___fslt_sloc1_1_0:
25         .ds     0x0004
26 ;--------------------------------------------------------
27 ; overlayable items in internal ram 
28 ;--------------------------------------------------------
29         .area   OSEG    (OVR,DATA)
30 ;--------------------------------------------------------
31 ; indirectly addressable internal ram data
32 ;--------------------------------------------------------
33         .area   ISEG    (DATA)
34 ;--------------------------------------------------------
35 ; bit data
36 ;--------------------------------------------------------
37         .area   BSEG    (BIT)
38 ;--------------------------------------------------------
39 ; external ram data
40 ;--------------------------------------------------------
41         .area   XSEG    (XDATA)
42 ___fslt_PARM_2:
43         .ds     0x0004
44 ___fslt_a1_1_1:
45         .ds     0x0004
46 ___fslt_fl1_1_1:
47         .ds     0x0004
48 ___fslt_fl2_1_1:
49         .ds     0x0004
50 ;--------------------------------------------------------
51 ; global & static initialisations
52 ;--------------------------------------------------------
53         .area GSINIT (CODE)
54 ;--------------------------------------------------------
55 ; code
56 ;--------------------------------------------------------
57         .area CSEG (CODE)
58         G$__fslt$0$0 ==.
59 ;       _fslt.c 73
60 ;       -----------------------------------------
61 ;        function __fslt
62 ;       -----------------------------------------
63 ___fslt:
64         ar2 = 0x02
65         ar3 = 0x03
66         ar4 = 0x04
67         ar5 = 0x05
68         ar6 = 0x06
69         ar7 = 0x07
70         ar0 = 0x00
71         ar1 = 0x01
72 ;       _fslt.c 87
73         push    acc
74         push    b
75         push    dph
76         push    dpl
77         mov     dptr,#___fslt_a1_1_1
78         pop     acc
79         movx    @dptr,a
80         pop     acc
81         inc     dptr
82         movx    @dptr,a
83         pop     acc
84         inc     dptr
85         movx    @dptr,a
86         pop     acc
87         inc     dptr
88         movx    @dptr,a
89 ;       _fslt.c 77
90         mov     dptr,#___fslt_a1_1_1
91         movx    a,@dptr
92         mov     r2,a
93         inc     dptr
94         movx    a,@dptr
95         mov     r3,a
96         inc     dptr
97         movx    a,@dptr
98         mov     r4,a
99         inc     dptr
100         movx    a,@dptr
101         mov     r5,a
102         mov     dptr,#(___fslt_fl1_1_1)
103         mov     a,r2
104         movx    @dptr,a
105         inc     dptr
106         mov     a,r3
107         movx    @dptr,a
108         inc     dptr
109         mov     a,r4
110         movx    @dptr,a
111         inc     dptr
112         mov     a,r5
113         movx    @dptr,a
114 ;       _fslt.c 78
115         mov     dptr,#___fslt_PARM_2
116         movx    a,@dptr
117         mov     r2,a
118         inc     dptr
119         movx    a,@dptr
120         mov     r3,a
121         inc     dptr
122         movx    a,@dptr
123         mov     r4,a
124         inc     dptr
125         movx    a,@dptr
126         mov     r5,a
127         mov     dptr,#(___fslt_fl2_1_1)
128         mov     a,r2
129         movx    @dptr,a
130         inc     dptr
131         mov     a,r3
132         movx    @dptr,a
133         inc     dptr
134         mov     a,r4
135         movx    @dptr,a
136         inc     dptr
137         mov     a,r5
138         movx    @dptr,a
139 ;       _fslt.c 80
140         mov     dptr,#(___fslt_fl1_1_1)
141         movx    a,@dptr
142         mov     r2,a
143         inc     dptr
144         movx    a,@dptr
145         mov     r3,a
146         inc     dptr
147         movx    a,@dptr
148         mov     r4,a
149         inc     dptr
150         movx    a,@dptr
151 ; Peephole 105   removed redundant mov
152         mov  r5,a
153         rl      a
154         anl     a,#0x01
155 ; Peephole 105   removed redundant mov
156         mov  r2,a
157         jnz     00111$
158         ljmp    00102$
159 00111$:
160         mov     dptr,#(___fslt_fl2_1_1)
161         movx    a,@dptr
162         mov     r2,a
163         inc     dptr
164         movx    a,@dptr
165         mov     r6,a
166         inc     dptr
167         movx    a,@dptr
168         mov     r7,a
169         inc     dptr
170         movx    a,@dptr
171 ; Peephole 105   removed redundant mov
172         mov  r0,a
173         rl      a
174         anl     a,#0x01
175 ; Peephole 105   removed redundant mov
176         mov  r2,a
177         jnz     00112$
178         ljmp    00102$
179 00112$:
180 ;       _fslt.c 82
181         mov     dptr,#(___fslt_fl1_1_1)
182         movx    a,@dptr
183         mov     ___fslt_sloc0_1_0,a
184         inc     dptr
185         movx    a,@dptr
186         mov     (___fslt_sloc0_1_0 + 1),a
187         inc     dptr
188         movx    a,@dptr
189         mov     (___fslt_sloc0_1_0 + 2),a
190         inc     dptr
191         movx    a,@dptr
192         mov     (___fslt_sloc0_1_0 + 3),a
193         xrl     (___fslt_sloc0_1_0 + 3),#0x80
194         mov     dptr,#(___fslt_fl1_1_1)
195         mov     a,___fslt_sloc0_1_0
196         movx    @dptr,a
197         inc     dptr
198         mov     a,(___fslt_sloc0_1_0 + 1)
199         movx    @dptr,a
200         inc     dptr
201         mov     a,(___fslt_sloc0_1_0 + 2)
202         movx    @dptr,a
203         inc     dptr
204         mov     a,(___fslt_sloc0_1_0 + 3)
205         movx    @dptr,a
206 ;       _fslt.c 83
207         mov     dptr,#(___fslt_fl2_1_1)
208         movx    a,@dptr
209         mov     ___fslt_sloc0_1_0,a
210         inc     dptr
211         movx    a,@dptr
212         mov     (___fslt_sloc0_1_0 + 1),a
213         inc     dptr
214         movx    a,@dptr
215         mov     (___fslt_sloc0_1_0 + 2),a
216         inc     dptr
217         movx    a,@dptr
218         mov     (___fslt_sloc0_1_0 + 3),a
219         xrl     (___fslt_sloc0_1_0 + 3),#0x80
220         mov     dptr,#(___fslt_fl2_1_1)
221         mov     a,___fslt_sloc0_1_0
222         movx    @dptr,a
223         inc     dptr
224         mov     a,(___fslt_sloc0_1_0 + 1)
225         movx    @dptr,a
226         inc     dptr
227         mov     a,(___fslt_sloc0_1_0 + 2)
228         movx    @dptr,a
229         inc     dptr
230         mov     a,(___fslt_sloc0_1_0 + 3)
231         movx    @dptr,a
232 00102$:
233 ;       _fslt.c 85
234         mov     dptr,#(___fslt_fl1_1_1)
235         movx    a,@dptr
236         mov     ___fslt_sloc0_1_0,a
237         inc     dptr
238         movx    a,@dptr
239         mov     (___fslt_sloc0_1_0 + 1),a
240         inc     dptr
241         movx    a,@dptr
242         mov     (___fslt_sloc0_1_0 + 2),a
243         inc     dptr
244         movx    a,@dptr
245         mov     (___fslt_sloc0_1_0 + 3),a
246         mov     dptr,#(___fslt_fl2_1_1)
247         movx    a,@dptr
248         mov     ___fslt_sloc1_1_0,a
249         inc     dptr
250         movx    a,@dptr
251         mov     (___fslt_sloc1_1_0 + 1),a
252         inc     dptr
253         movx    a,@dptr
254         mov     (___fslt_sloc1_1_0 + 2),a
255         inc     dptr
256         movx    a,@dptr
257         mov     (___fslt_sloc1_1_0 + 3),a
258         clr     c
259         mov     a,___fslt_sloc0_1_0
260         subb    a,___fslt_sloc1_1_0
261         mov     a,(___fslt_sloc0_1_0 + 1)
262         subb    a,(___fslt_sloc1_1_0 + 1)
263         mov     a,(___fslt_sloc0_1_0 + 2)
264         subb    a,(___fslt_sloc1_1_0 + 2)
265         mov     a,(___fslt_sloc0_1_0 + 3)
266         xrl     a,#0x80
267         mov     b,(___fslt_sloc1_1_0 + 3)
268         xrl     b,#0x80
269         subb    a,b
270 ; Peephole 108   removed ljmp by inverse jump logic
271         jnc  00105$
272 00113$:
273 ;       _fslt.c 86
274         mov     dpl,#0x01
275 ; Peephole 132   changed ljmp to sjmp
276         sjmp 00106$
277 00105$:
278 ;       _fslt.c 87
279         mov     dpl,#0x00
280 00106$:
281         C$_fslt.c$88$1$1 ==.
282         XG$__fslt$0$0 ==.
283         ret
284         .area   CSEG    (CODE)