Initial revision
[fw/sdcc] / device / lib / large / _fs2ulong.asm
1 ;--------------------------------------------------------
2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 ; Version 2.1.9Ga Sun Jan 16 17:31:24 2000
4
5 ;--------------------------------------------------------
6         .module _fs2ulong
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
10         .globl ___fs2ulong
11 ;--------------------------------------------------------
12 ; special function registers
13 ;--------------------------------------------------------
14 ;--------------------------------------------------------
15 ; special function bits 
16 ;--------------------------------------------------------
17 ;--------------------------------------------------------
18 ; internal ram data
19 ;--------------------------------------------------------
20         .area   DSEG    (DATA)
21 ___fs2ulong_sloc0_1_0:
22         .ds     0x0004
23 ___fs2ulong_sloc1_1_0:
24         .ds     0x0004
25 ;--------------------------------------------------------
26 ; overlayable items in internal ram 
27 ;--------------------------------------------------------
28         .area   OSEG    (OVR,DATA)
29 ;--------------------------------------------------------
30 ; indirectly addressable internal ram data
31 ;--------------------------------------------------------
32         .area   ISEG    (DATA)
33 ;--------------------------------------------------------
34 ; bit data
35 ;--------------------------------------------------------
36         .area   BSEG    (BIT)
37 ;--------------------------------------------------------
38 ; external ram data
39 ;--------------------------------------------------------
40         .area   XSEG    (XDATA)
41 ___fs2ulong_a1_1_1:
42         .ds     0x0004
43 ___fs2ulong_fl1_1_1:
44         .ds     0x0004
45 ___fs2ulong_exp_1_1:
46         .ds     0x0002
47 ___fs2ulong_l_1_1:
48         .ds     0x0004
49 ;--------------------------------------------------------
50 ; global & static initialisations
51 ;--------------------------------------------------------
52         .area GSINIT (CODE)
53 ;--------------------------------------------------------
54 ; code
55 ;--------------------------------------------------------
56         .area CSEG (CODE)
57         G$__fs2ulong$0$0 ==.
58 ;       _fs2ulong.c 73
59 ;       -----------------------------------------
60 ;        function __fs2ulong
61 ;       -----------------------------------------
62 ___fs2ulong:
63         ar2 = 0x02
64         ar3 = 0x03
65         ar4 = 0x04
66         ar5 = 0x05
67         ar6 = 0x06
68         ar7 = 0x07
69         ar0 = 0x00
70         ar1 = 0x01
71 ;       _fs2ulong.c 0
72         push    acc
73         push    b
74         push    dph
75         push    dpl
76         mov     dptr,#___fs2ulong_a1_1_1
77         pop     acc
78         movx    @dptr,a
79         pop     acc
80         inc     dptr
81         movx    @dptr,a
82         pop     acc
83         inc     dptr
84         movx    @dptr,a
85         pop     acc
86         inc     dptr
87         movx    @dptr,a
88 ;       _fs2ulong.c 79
89         mov     dptr,#___fs2ulong_a1_1_1
90         movx    a,@dptr
91         mov     r2,a
92         inc     dptr
93         movx    a,@dptr
94         mov     r3,a
95         inc     dptr
96         movx    a,@dptr
97         mov     r4,a
98         inc     dptr
99         movx    a,@dptr
100         mov     r5,a
101         mov     dptr,#(___fs2ulong_fl1_1_1)
102         mov     a,r2
103         movx    @dptr,a
104         inc     dptr
105         mov     a,r3
106         movx    @dptr,a
107         inc     dptr
108         mov     a,r4
109         movx    @dptr,a
110         inc     dptr
111         mov     a,r5
112         movx    @dptr,a
113 ;       _fs2ulong.c 81
114         mov     dptr,#(___fs2ulong_fl1_1_1)
115         movx    a,@dptr
116         mov     r2,a
117         inc     dptr
118         movx    a,@dptr
119         mov     r3,a
120         inc     dptr
121         movx    a,@dptr
122         mov     r4,a
123         inc     dptr
124         movx    a,@dptr
125         mov     r5,a
126         mov     a,r2
127         orl     a,r3
128         orl     a,r4
129         orl     a,r5
130 ; Peephole 109   removed ljmp by inverse jump logic
131         jnz  00102$
132 00120$:
133 ;       _fs2ulong.c 82
134 ; Peephole 3.a   changed mov to clr
135 ; Peephole 3.b   changed mov to clr
136 ; Peephole 3.b   changed mov to clr
137         clr  a
138         mov  dpl,a
139         mov  dph,a
140         mov  b,a
141         ljmp    00110$
142 00102$:
143 ;       _fs2ulong.c 84
144         mov     dptr,#(___fs2ulong_fl1_1_1)
145         movx    a,@dptr
146         mov     r2,a
147         inc     dptr
148         movx    a,@dptr
149         mov     r3,a
150         inc     dptr
151         movx    a,@dptr
152         mov     r4,a
153         inc     dptr
154         movx    a,@dptr
155         mov     r5,a
156         mov     ar2,r4
157         mov     a,r5
158         mov     c,acc.7
159         xch     a,r2
160         rlc     a
161         xch     a,r2
162         rlc     a
163         xch     a,r2
164         anl     a,#0x01
165         jnb     acc.0,00121$
166         orl     a,#0xfe
167 00121$:
168         mov     r3,a
169         rlc     a
170         subb    a,acc
171         mov     r4,a
172         mov     r5,a
173         mov     a,r2
174         mov     b,#0x00
175         add     a,#0x6a
176         mov     r2,a
177         mov     a,b
178         addc    a,#0xff
179         mov     r3,a
180         mov     dptr,#___fs2ulong_exp_1_1
181         mov     a,r2
182         movx    @dptr,a
183         inc     dptr
184         mov     a,r3
185         movx    @dptr,a
186 ;       _fs2ulong.c 85
187         mov     dptr,#(___fs2ulong_fl1_1_1)
188         movx    a,@dptr
189         mov     r2,a
190         inc     dptr
191         movx    a,@dptr
192         mov     r3,a
193         inc     dptr
194         movx    a,@dptr
195         mov     r6,a
196         inc     dptr
197         movx    a,@dptr
198         mov     r7,a
199         anl     ar6,#0x7f
200         mov     r7,#0x00
201         mov     dptr,#___fs2ulong_l_1_1
202         mov     a,r2
203         movx    @dptr,a
204         inc     dptr
205         mov     a,r3
206         movx    @dptr,a
207         mov     a,#0x80
208         orl     a,r6
209         inc     dptr
210         movx    @dptr,a
211         inc     dptr
212         mov     a,r7
213         movx    @dptr,a
214 ;       _fs2ulong.c 87
215         mov     dptr,#___fs2ulong_exp_1_1
216         movx    a,@dptr
217         mov     r2,a
218         inc     dptr
219         movx    a,@dptr
220         mov     r3,a
221         clr     c
222 ; Peephole 180   changed mov to clr
223         clr  a
224         subb    a,r2
225 ; Peephole 159   avoided xrl during execution
226         mov  a,#(0x00 ^ 0x80)
227         mov     b,r3
228         xrl     b,#0x80
229         subb    a,b
230 ; Peephole 108   removed ljmp by inverse jump logic
231         jnc  00104$
232 00122$:
233 ;       _fs2ulong.c 88
234         mov     dptr,#(___fs2ulong_fl1_1_1)
235         movx    a,@dptr
236         mov     r2,a
237         inc     dptr
238         movx    a,@dptr
239         mov     r3,a
240         inc     dptr
241         movx    a,@dptr
242         mov     r6,a
243         inc     dptr
244         movx    a,@dptr
245 ; Peephole 105   removed redundant mov
246         mov  r7,a
247         rl      a
248         anl     a,#0x01
249         mov     r2,a
250         orl     ar2,#0x7f
251         mov     ___fs2ulong_sloc0_1_0,r2
252         mov     (___fs2ulong_sloc0_1_0 + 1),#0x00
253         mov     (___fs2ulong_sloc0_1_0 + 2),#0x00
254         mov     (___fs2ulong_sloc0_1_0 + 3),#0x00
255         mov     dpl,___fs2ulong_sloc0_1_0
256         mov     dph,(___fs2ulong_sloc0_1_0 + 1)
257         mov     b,(___fs2ulong_sloc0_1_0 + 2)
258         mov     a,(___fs2ulong_sloc0_1_0 + 3)
259         ljmp    00110$
260 00104$:
261 ;       _fs2ulong.c 91
262         mov     dptr,#___fs2ulong_exp_1_1
263         movx    a,@dptr
264         mov     r2,a
265         inc     dptr
266         movx    a,@dptr
267 ; Peephole 105   removed redundant mov
268         mov  r0,a
269         jb      acc.7,00123$
270         ljmp    00106$
271 00123$:
272         mov     dptr,#___fs2ulong_exp_1_1
273         movx    a,@dptr
274         mov     r2,a
275         inc     dptr
276         movx    a,@dptr
277         mov     r0,a
278         clr     c
279         mov     a,#0xe7
280         subb    a,r2
281 ; Peephole 159   avoided xrl during execution
282         mov  a,#(0xff ^ 0x80)
283         mov     b,r0
284         xrl     b,#0x80
285         subb    a,b
286         jc      00124$
287         ljmp    00106$
288 00124$:
289         mov     dptr,#___fs2ulong_l_1_1
290         movx    a,@dptr
291         mov     ___fs2ulong_sloc0_1_0,a
292         inc     dptr
293         movx    a,@dptr
294         mov     (___fs2ulong_sloc0_1_0 + 1),a
295         inc     dptr
296         movx    a,@dptr
297         mov     (___fs2ulong_sloc0_1_0 + 2),a
298         inc     dptr
299         movx    a,@dptr
300         mov     (___fs2ulong_sloc0_1_0 + 3),a
301         mov     a,___fs2ulong_sloc0_1_0
302         orl     a,(___fs2ulong_sloc0_1_0 + 1)
303         orl     a,(___fs2ulong_sloc0_1_0 + 2)
304         orl     a,(___fs2ulong_sloc0_1_0 + 3)
305         jnz     00125$
306         ljmp    00106$
307 00125$:
308 ;       _fs2ulong.c 92
309         mov     dptr,#___fs2ulong_exp_1_1
310         movx    a,@dptr
311         mov     r2,a
312         inc     dptr
313         movx    a,@dptr
314         mov     r0,a
315         clr     c
316         clr     a
317         subb    a,r2
318         mov     ___fs2ulong_sloc0_1_0,a
319         clr     a
320         subb    a,r0
321         mov     (___fs2ulong_sloc0_1_0 + 1),a
322         mov     dptr,#___fs2ulong_l_1_1
323         movx    a,@dptr
324         mov     ___fs2ulong_sloc1_1_0,a
325         inc     dptr
326         movx    a,@dptr
327         mov     (___fs2ulong_sloc1_1_0 + 1),a
328         inc     dptr
329         movx    a,@dptr
330         mov     (___fs2ulong_sloc1_1_0 + 2),a
331         inc     dptr
332         movx    a,@dptr
333         mov     (___fs2ulong_sloc1_1_0 + 3),a
334         mov     b,___fs2ulong_sloc0_1_0
335         inc     b
336         mov     a,(___fs2ulong_sloc1_1_0 + 3)
337         rlc     a
338         mov     ov,c
339         sjmp    00127$
340 00126$:
341         mov     c,ov
342         mov     a,(___fs2ulong_sloc1_1_0 + 3)
343         rrc     a
344         mov     (___fs2ulong_sloc1_1_0 + 3),a
345         mov     a,(___fs2ulong_sloc1_1_0 + 2)
346         rrc     a
347         mov     (___fs2ulong_sloc1_1_0 + 2),a
348         mov     a,(___fs2ulong_sloc1_1_0 + 1)
349         rrc     a
350         mov     (___fs2ulong_sloc1_1_0 + 1),a
351         mov     a,___fs2ulong_sloc1_1_0
352         rrc     a
353         mov     ___fs2ulong_sloc1_1_0,a
354 00127$:
355         djnz    b,00126$
356         mov     dptr,#___fs2ulong_l_1_1
357         mov     a,___fs2ulong_sloc1_1_0
358         movx    @dptr,a
359         inc     dptr
360         mov     a,(___fs2ulong_sloc1_1_0 + 1)
361         movx    @dptr,a
362         inc     dptr
363         mov     a,(___fs2ulong_sloc1_1_0 + 2)
364         movx    @dptr,a
365         inc     dptr
366         mov     a,(___fs2ulong_sloc1_1_0 + 3)
367         movx    @dptr,a
368 ; Peephole 132   changed ljmp to sjmp
369         sjmp 00107$
370 00106$:
371 ;       _fs2ulong.c 94
372 ; Peephole 3.a   changed mov to clr
373 ; Peephole 3.b   changed mov to clr
374 ; Peephole 3.b   changed mov to clr
375         clr  a
376         mov  dpl,a
377         mov  dph,a
378         mov  b,a
379         ljmp    00110$
380 00107$:
381 ;       _fs2ulong.c 96
382         mov     dptr,#(___fs2ulong_fl1_1_1)
383         movx    a,@dptr
384         mov     ___fs2ulong_sloc1_1_0,a
385         inc     dptr
386         movx    a,@dptr
387         mov     (___fs2ulong_sloc1_1_0 + 1),a
388         inc     dptr
389         movx    a,@dptr
390         mov     (___fs2ulong_sloc1_1_0 + 2),a
391         inc     dptr
392         movx    a,@dptr
393 ; Peephole 105   removed redundant mov
394         mov  (___fs2ulong_sloc1_1_0 + 3),a
395         rl      a
396         anl     a,#0x01
397 ; Peephole 105   removed redundant mov
398         mov  r2,a
399 ; Peephole 110   removed ljmp by inverse jump logic
400         jz  00112$
401 00128$:
402         mov     dptr,#___fs2ulong_l_1_1
403         movx    a,@dptr
404         mov     ___fs2ulong_sloc1_1_0,a
405         inc     dptr
406         movx    a,@dptr
407         mov     (___fs2ulong_sloc1_1_0 + 1),a
408         inc     dptr
409         movx    a,@dptr
410         mov     (___fs2ulong_sloc1_1_0 + 2),a
411         inc     dptr
412         movx    a,@dptr
413         mov     (___fs2ulong_sloc1_1_0 + 3),a
414         clr     c
415         clr     a
416         subb    a,___fs2ulong_sloc1_1_0
417         mov     ___fs2ulong_sloc1_1_0,a
418         clr     a
419         subb    a,(___fs2ulong_sloc1_1_0 + 1)
420         mov     (___fs2ulong_sloc1_1_0 + 1),a
421         clr     a
422         subb    a,(___fs2ulong_sloc1_1_0 + 2)
423         mov     (___fs2ulong_sloc1_1_0 + 2),a
424         clr     a
425         subb    a,(___fs2ulong_sloc1_1_0 + 3)
426         mov     (___fs2ulong_sloc1_1_0 + 3),a
427 ; Peephole 132   changed ljmp to sjmp
428         sjmp 00113$
429 00112$:
430         mov     dptr,#___fs2ulong_l_1_1
431         movx    a,@dptr
432         mov     ___fs2ulong_sloc1_1_0,a
433         inc     dptr
434         movx    a,@dptr
435         mov     (___fs2ulong_sloc1_1_0 + 1),a
436         inc     dptr
437         movx    a,@dptr
438         mov     (___fs2ulong_sloc1_1_0 + 2),a
439         inc     dptr
440         movx    a,@dptr
441         mov     (___fs2ulong_sloc1_1_0 + 3),a
442 00113$:
443         mov     dpl,___fs2ulong_sloc1_1_0
444         mov     dph,(___fs2ulong_sloc1_1_0 + 1)
445         mov     b,(___fs2ulong_sloc1_1_0 + 2)
446         mov     a,(___fs2ulong_sloc1_1_0 + 3)
447 00110$:
448         C$_fs2ulong.c$97$1$1 ==.
449         XG$__fs2ulong$0$0 ==.
450         ret
451         .area   CSEG    (CODE)