Initial revision
[fw/sdcc] / device / lib / large / _fs2uchar.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 _fs2uchar
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
10         .globl ___fs2uchar
11 ;--------------------------------------------------------
12 ; special function registers
13 ;--------------------------------------------------------
14 ;--------------------------------------------------------
15 ; special function bits 
16 ;--------------------------------------------------------
17 ;--------------------------------------------------------
18 ; internal ram data
19 ;--------------------------------------------------------
20         .area   DSEG    (DATA)
21 ___fs2uchar_sloc0_1_0:
22         .ds     0x0004
23 ___fs2uchar_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 ___fs2uchar_a1_1_1:
42         .ds     0x0004
43 ___fs2uchar_fl1_1_1:
44         .ds     0x0004
45 ___fs2uchar_exp_1_1:
46         .ds     0x0002
47 ___fs2uchar_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$__fs2uchar$0$0 ==.
58 ;       _fs2uchar.c 73
59 ;       -----------------------------------------
60 ;        function __fs2uchar
61 ;       -----------------------------------------
62 ___fs2uchar:
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 ;       _fs2uchar.c 0
72         push    acc
73         push    b
74         push    dph
75         push    dpl
76         mov     dptr,#___fs2uchar_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 ;       _fs2uchar.c 79
89         mov     dptr,#___fs2uchar_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,#(___fs2uchar_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 ;       _fs2uchar.c 81
114         mov     dptr,#(___fs2uchar_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 ;       _fs2uchar.c 82
134         mov     dpl,#0x00
135         ljmp    00110$
136 00102$:
137 ;       _fs2uchar.c 84
138         mov     dptr,#(___fs2uchar_fl1_1_1)
139         movx    a,@dptr
140         mov     r2,a
141         inc     dptr
142         movx    a,@dptr
143         mov     r3,a
144         inc     dptr
145         movx    a,@dptr
146         mov     r4,a
147         inc     dptr
148         movx    a,@dptr
149         mov     r5,a
150         mov     ar2,r4
151         mov     a,r5
152         mov     c,acc.7
153         xch     a,r2
154         rlc     a
155         xch     a,r2
156         rlc     a
157         xch     a,r2
158         anl     a,#0x01
159         jnb     acc.0,00121$
160         orl     a,#0xfe
161 00121$:
162         mov     r3,a
163         rlc     a
164         subb    a,acc
165         mov     r4,a
166         mov     r5,a
167         mov     a,r2
168         mov     b,#0x00
169         add     a,#0x6a
170         mov     r2,a
171         mov     a,b
172         addc    a,#0xff
173         mov     r3,a
174         mov     dptr,#___fs2uchar_exp_1_1
175         mov     a,r2
176         movx    @dptr,a
177         inc     dptr
178         mov     a,r3
179         movx    @dptr,a
180 ;       _fs2uchar.c 85
181         mov     dptr,#(___fs2uchar_fl1_1_1)
182         movx    a,@dptr
183         mov     r2,a
184         inc     dptr
185         movx    a,@dptr
186         mov     r3,a
187         inc     dptr
188         movx    a,@dptr
189         mov     r6,a
190         inc     dptr
191         movx    a,@dptr
192         mov     r7,a
193         anl     ar6,#0x7f
194         mov     r7,#0x00
195         mov     dptr,#___fs2uchar_l_1_1
196         mov     a,r2
197         movx    @dptr,a
198         inc     dptr
199         mov     a,r3
200         movx    @dptr,a
201         mov     a,#0x80
202         orl     a,r6
203         inc     dptr
204         movx    @dptr,a
205         inc     dptr
206         mov     a,r7
207         movx    @dptr,a
208 ;       _fs2uchar.c 87
209         mov     dptr,#___fs2uchar_exp_1_1
210         movx    a,@dptr
211         mov     r2,a
212         inc     dptr
213         movx    a,@dptr
214         mov     r3,a
215         clr     c
216 ; Peephole 180   changed mov to clr
217         clr  a
218         subb    a,r2
219 ; Peephole 159   avoided xrl during execution
220         mov  a,#(0x00 ^ 0x80)
221         mov     b,r3
222         xrl     b,#0x80
223         subb    a,b
224 ; Peephole 108   removed ljmp by inverse jump logic
225         jnc  00104$
226 00122$:
227 ;       _fs2uchar.c 88
228         mov     dptr,#(___fs2uchar_fl1_1_1)
229         movx    a,@dptr
230         mov     r2,a
231         inc     dptr
232         movx    a,@dptr
233         mov     r3,a
234         inc     dptr
235         movx    a,@dptr
236         mov     r6,a
237         inc     dptr
238         movx    a,@dptr
239 ; Peephole 105   removed redundant mov
240         mov  r7,a
241         rl      a
242         anl     a,#0x01
243         mov     r2,a
244         orl     ar2,#0x7f
245         mov     dpl,r2
246         ljmp    00110$
247 00104$:
248 ;       _fs2uchar.c 91
249         mov     dptr,#___fs2uchar_exp_1_1
250         movx    a,@dptr
251         mov     r2,a
252         inc     dptr
253         movx    a,@dptr
254 ; Peephole 105   removed redundant mov
255         mov  r0,a
256         jb      acc.7,00123$
257         ljmp    00106$
258 00123$:
259         mov     dptr,#___fs2uchar_exp_1_1
260         movx    a,@dptr
261         mov     r2,a
262         inc     dptr
263         movx    a,@dptr
264         mov     r0,a
265         clr     c
266         mov     a,#0xe7
267         subb    a,r2
268 ; Peephole 159   avoided xrl during execution
269         mov  a,#(0xff ^ 0x80)
270         mov     b,r0
271         xrl     b,#0x80
272         subb    a,b
273         jc      00124$
274         ljmp    00106$
275 00124$:
276         mov     dptr,#___fs2uchar_l_1_1
277         movx    a,@dptr
278         mov     ___fs2uchar_sloc0_1_0,a
279         inc     dptr
280         movx    a,@dptr
281         mov     (___fs2uchar_sloc0_1_0 + 1),a
282         inc     dptr
283         movx    a,@dptr
284         mov     (___fs2uchar_sloc0_1_0 + 2),a
285         inc     dptr
286         movx    a,@dptr
287         mov     (___fs2uchar_sloc0_1_0 + 3),a
288         mov     a,___fs2uchar_sloc0_1_0
289         orl     a,(___fs2uchar_sloc0_1_0 + 1)
290         orl     a,(___fs2uchar_sloc0_1_0 + 2)
291         orl     a,(___fs2uchar_sloc0_1_0 + 3)
292         jnz     00125$
293         ljmp    00106$
294 00125$:
295 ;       _fs2uchar.c 92
296         mov     dptr,#___fs2uchar_exp_1_1
297         movx    a,@dptr
298         mov     r2,a
299         inc     dptr
300         movx    a,@dptr
301         mov     r0,a
302         clr     c
303         clr     a
304         subb    a,r2
305         mov     ___fs2uchar_sloc0_1_0,a
306         clr     a
307         subb    a,r0
308         mov     (___fs2uchar_sloc0_1_0 + 1),a
309         mov     dptr,#___fs2uchar_l_1_1
310         movx    a,@dptr
311         mov     ___fs2uchar_sloc1_1_0,a
312         inc     dptr
313         movx    a,@dptr
314         mov     (___fs2uchar_sloc1_1_0 + 1),a
315         inc     dptr
316         movx    a,@dptr
317         mov     (___fs2uchar_sloc1_1_0 + 2),a
318         inc     dptr
319         movx    a,@dptr
320         mov     (___fs2uchar_sloc1_1_0 + 3),a
321         mov     b,___fs2uchar_sloc0_1_0
322         inc     b
323         mov     a,(___fs2uchar_sloc1_1_0 + 3)
324         rlc     a
325         mov     ov,c
326         sjmp    00127$
327 00126$:
328         mov     c,ov
329         mov     a,(___fs2uchar_sloc1_1_0 + 3)
330         rrc     a
331         mov     (___fs2uchar_sloc1_1_0 + 3),a
332         mov     a,(___fs2uchar_sloc1_1_0 + 2)
333         rrc     a
334         mov     (___fs2uchar_sloc1_1_0 + 2),a
335         mov     a,(___fs2uchar_sloc1_1_0 + 1)
336         rrc     a
337         mov     (___fs2uchar_sloc1_1_0 + 1),a
338         mov     a,___fs2uchar_sloc1_1_0
339         rrc     a
340         mov     ___fs2uchar_sloc1_1_0,a
341 00127$:
342         djnz    b,00126$
343         mov     dptr,#___fs2uchar_l_1_1
344         mov     a,___fs2uchar_sloc1_1_0
345         movx    @dptr,a
346         inc     dptr
347         mov     a,(___fs2uchar_sloc1_1_0 + 1)
348         movx    @dptr,a
349         inc     dptr
350         mov     a,(___fs2uchar_sloc1_1_0 + 2)
351         movx    @dptr,a
352         inc     dptr
353         mov     a,(___fs2uchar_sloc1_1_0 + 3)
354         movx    @dptr,a
355 ; Peephole 132   changed ljmp to sjmp
356         sjmp 00107$
357 00106$:
358 ;       _fs2uchar.c 94
359         mov     dpl,#0x00
360         ljmp    00110$
361 00107$:
362 ;       _fs2uchar.c 96
363         mov     dptr,#(___fs2uchar_fl1_1_1)
364         movx    a,@dptr
365         mov     ___fs2uchar_sloc1_1_0,a
366         inc     dptr
367         movx    a,@dptr
368         mov     (___fs2uchar_sloc1_1_0 + 1),a
369         inc     dptr
370         movx    a,@dptr
371         mov     (___fs2uchar_sloc1_1_0 + 2),a
372         inc     dptr
373         movx    a,@dptr
374 ; Peephole 105   removed redundant mov
375         mov  (___fs2uchar_sloc1_1_0 + 3),a
376         rl      a
377         anl     a,#0x01
378 ; Peephole 105   removed redundant mov
379         mov  r2,a
380 ; Peephole 110   removed ljmp by inverse jump logic
381         jz  00112$
382 00128$:
383         mov     dptr,#___fs2uchar_l_1_1
384         movx    a,@dptr
385         mov     ___fs2uchar_sloc1_1_0,a
386         inc     dptr
387         movx    a,@dptr
388         mov     (___fs2uchar_sloc1_1_0 + 1),a
389         inc     dptr
390         movx    a,@dptr
391         mov     (___fs2uchar_sloc1_1_0 + 2),a
392         inc     dptr
393         movx    a,@dptr
394         mov     (___fs2uchar_sloc1_1_0 + 3),a
395         mov     r2,___fs2uchar_sloc1_1_0
396         clr     c
397         clr     a
398         subb    a,r2
399         mov     ___fs2uchar_sloc1_1_0,a
400 ; Peephole 132   changed ljmp to sjmp
401         sjmp 00113$
402 00112$:
403         mov     dptr,#___fs2uchar_l_1_1
404         movx    a,@dptr
405         mov     ___fs2uchar_sloc0_1_0,a
406         inc     dptr
407         movx    a,@dptr
408         mov     (___fs2uchar_sloc0_1_0 + 1),a
409         inc     dptr
410         movx    a,@dptr
411         mov     (___fs2uchar_sloc0_1_0 + 2),a
412         inc     dptr
413         movx    a,@dptr
414         mov     (___fs2uchar_sloc0_1_0 + 3),a
415         mov     ___fs2uchar_sloc1_1_0,___fs2uchar_sloc0_1_0
416 00113$:
417         mov     dpl,___fs2uchar_sloc1_1_0
418 00110$:
419         C$_fs2uchar.c$97$1$1 ==.
420         XG$__fs2uchar$0$0 ==.
421         ret
422         .area   CSEG    (CODE)