Initial revision
[fw/sdcc] / device / lib / large / _long2fs.asm
1 ;--------------------------------------------------------
2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 ; Version 2.1.9Ga Sun Jan 16 17:31:30 2000
4
5 ;--------------------------------------------------------
6         .module _long2fs
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
10         .globl ___long2fs
11 ;--------------------------------------------------------
12 ; special function registers
13 ;--------------------------------------------------------
14 ;--------------------------------------------------------
15 ; special function bits 
16 ;--------------------------------------------------------
17 ;--------------------------------------------------------
18 ; internal ram data
19 ;--------------------------------------------------------
20         .area   DSEG    (DATA)
21 ___long2fs_sloc0_1_0:
22         .ds     0x0002
23 ___long2fs_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 ___long2fs_a1_1_1:
42         .ds     0x0004
43 ___long2fs_sign_1_1:
44         .ds     0x0004
45 ___long2fs_fl_1_1:
46         .ds     0x0004
47 ;--------------------------------------------------------
48 ; global & static initialisations
49 ;--------------------------------------------------------
50         .area GSINIT (CODE)
51 ;--------------------------------------------------------
52 ; code
53 ;--------------------------------------------------------
54         .area CSEG (CODE)
55         G$__long2fs$0$0 ==.
56 ;       _long2fs.c 80
57 ;       -----------------------------------------
58 ;        function __long2fs
59 ;       -----------------------------------------
60 ___long2fs:
61         ar2 = 0x02
62         ar3 = 0x03
63         ar4 = 0x04
64         ar5 = 0x05
65         ar6 = 0x06
66         ar7 = 0x07
67         ar0 = 0x00
68         ar1 = 0x01
69 ;       _long2fs.c 108
70         push    acc
71         push    b
72         push    dph
73         push    dpl
74         mov     dptr,#___long2fs_a1_1_1
75         pop     acc
76         movx    @dptr,a
77         pop     acc
78         inc     dptr
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 ;       _long2fs.c 82
87         mov     dptr,#___long2fs_sign_1_1
88         clr     a
89         inc     dptr
90         inc     dptr
91         inc     dptr
92         movx    @dptr,a
93         lcall   __decdptr
94         movx    @dptr,a
95         lcall   __decdptr
96         movx    @dptr,a
97         lcall   __decdptr
98         movx    @dptr,a
99 ;       _long2fs.c 86
100         mov     dptr,#___long2fs_a1_1_1
101         movx    a,@dptr
102         mov     r2,a
103         inc     dptr
104         movx    a,@dptr
105         mov     r3,a
106         inc     dptr
107         movx    a,@dptr
108         mov     r4,a
109         inc     dptr
110         movx    a,@dptr
111         mov     r5,a
112         mov     a,r2
113         orl     a,r3
114         orl     a,r4
115         orl     a,r5
116 ; Peephole 109   removed ljmp by inverse jump logic
117         jnz  00102$
118 00114$:
119 ;       _long2fs.c 88
120         mov     dptr,#(___long2fs_fl_1_1)
121 ; Peephole 101   removed redundant mov
122 ; Peephole 180   changed mov to clr
123         clr  a
124         movx @dptr,a
125         inc  dptr
126         movx @dptr,a
127         inc     dptr
128 ; Peephole 101   removed redundant mov
129 ; Peephole 180   changed mov to clr
130         clr  a
131         movx @dptr,a
132         inc  dptr
133         movx @dptr,a
134 ;       _long2fs.c 89
135         mov     dptr,#(___long2fs_fl_1_1)
136         movx    a,@dptr
137         mov     r6,a
138         inc     dptr
139         movx    a,@dptr
140         mov     r7,a
141         inc     dptr
142         movx    a,@dptr
143         mov     r0,a
144         inc     dptr
145         movx    a,@dptr
146 ; Peephole 191   removed redundant mov
147         mov  r1,a
148         mov  dpl,r6
149         mov  dph,r7
150         mov  b,r0
151         ljmp    00108$
152 00102$:
153 ;       _long2fs.c 92
154         mov     a,r5
155 ; Peephole 111   removed ljmp by inverse jump logic
156         jnb  acc.7,00113$
157 00115$:
158 ;       _long2fs.c 94
159         mov     dptr,#___long2fs_sign_1_1
160 ; Peephole 101   removed redundant mov
161 ; Peephole 180   changed mov to clr
162         clr  a
163         movx @dptr,a
164         inc  dptr
165         movx @dptr,a
166         inc     dptr
167 ; Peephole 180   changed mov to clr
168         clr  a
169         movx    @dptr,a
170         inc     dptr
171         mov     a,#0x80
172         movx    @dptr,a
173 ;       _long2fs.c 95
174         mov     dptr,#___long2fs_a1_1_1
175         clr     c
176         clr     a
177         subb    a,r2
178         movx    @dptr,a
179         clr     a
180         subb    a,r3
181         inc     dptr
182         movx    @dptr,a
183         clr     a
184         subb    a,r4
185         inc     dptr
186         movx    @dptr,a
187         clr     a
188         subb    a,r5
189         inc     dptr
190         movx    @dptr,a
191 ;       _long2fs.c 98
192 00113$:
193         clr     a
194         mov     (___long2fs_sloc0_1_0 + 1),a
195         mov     ___long2fs_sloc0_1_0,#0x96
196 00105$:
197         mov     dptr,#___long2fs_a1_1_1
198         movx    a,@dptr
199         mov     r4,a
200         inc     dptr
201         movx    a,@dptr
202         mov     r5,a
203         inc     dptr
204         movx    a,@dptr
205         mov     r6,a
206         inc     dptr
207         movx    a,@dptr
208         mov     r7,a
209         clr     c
210         mov     a,r4
211         subb    a,#0x00
212         mov     a,r5
213         subb    a,#0x00
214         mov     a,r6
215         subb    a,#0x80
216         mov     a,r7
217         subb    a,#0x00
218 ; Peephole 108   removed ljmp by inverse jump logic
219         jnc  00107$
220 00116$:
221 ;       _long2fs.c 100
222         mov     a,r4
223         add     a,acc
224         mov     r0,a
225         mov     a,r5
226         rlc     a
227         mov     r1,a
228         mov     a,r6
229         rlc     a
230         mov     r2,a
231         mov     a,r7
232         rlc     a
233         mov     r3,a
234         mov     dptr,#___long2fs_a1_1_1
235         mov     a,r0
236         movx    @dptr,a
237         inc     dptr
238         mov     a,r1
239         movx    @dptr,a
240         inc     dptr
241         mov     a,r2
242         movx    @dptr,a
243         inc     dptr
244         mov     a,r3
245         movx    @dptr,a
246 ;       _long2fs.c 101
247         dec     ___long2fs_sloc0_1_0
248         mov     a,#0xff
249         cjne    a,___long2fs_sloc0_1_0,00117$
250         dec     (___long2fs_sloc0_1_0 + 1)
251 00117$:
252         ljmp    00105$
253 00107$:
254 ;       _long2fs.c 104
255         anl     ar6,#0x7f
256         mov     dptr,#___long2fs_a1_1_1
257         mov     a,r4
258         movx    @dptr,a
259         inc     dptr
260         mov     a,r5
261         movx    @dptr,a
262         inc     dptr
263         mov     a,r6
264         movx    @dptr,a
265         inc     dptr
266         mov     a,r7
267         movx    @dptr,a
268 ;       _long2fs.c 106
269         mov     r2,___long2fs_sloc0_1_0
270         mov     r3,(___long2fs_sloc0_1_0 + 1)
271         mov     r0,#0x00
272         mov     r1,#0x00
273         mov     (___long2fs_sloc1_1_0 + 2),r2
274         mov     a,r3
275         anl     a,#0x01
276         mov     c,acc.0
277         xch     a,(___long2fs_sloc1_1_0 + 2)
278         rrc     a
279         xch     a,(___long2fs_sloc1_1_0 + 2)
280         rrc     a
281         xch     a,(___long2fs_sloc1_1_0 + 2)
282         mov     (___long2fs_sloc1_1_0 + 3),a
283         mov     (___long2fs_sloc1_1_0 + 1),#0x00
284         mov     ___long2fs_sloc1_1_0,#0x00
285         mov     dptr,#___long2fs_sign_1_1
286         movx    a,@dptr
287         mov     r2,a
288         inc     dptr
289         movx    a,@dptr
290         mov     r3,a
291         inc     dptr
292         movx    a,@dptr
293         mov     r0,a
294         inc     dptr
295         movx    a,@dptr
296         mov     r1,a
297         mov     a,___long2fs_sloc1_1_0
298         orl     ar2,a
299         mov     a,(___long2fs_sloc1_1_0 + 1)
300         orl     ar3,a
301         mov     a,(___long2fs_sloc1_1_0 + 2)
302         orl     ar0,a
303         mov     a,(___long2fs_sloc1_1_0 + 3)
304         orl     ar1,a
305         mov     a,r2
306         orl     ar4,a
307         mov     a,r3
308         orl     ar5,a
309         mov     a,r0
310         orl     ar6,a
311         mov     a,r1
312         orl     ar7,a
313         mov     dptr,#(___long2fs_fl_1_1)
314         mov     a,r4
315         movx    @dptr,a
316         inc     dptr
317         mov     a,r5
318         movx    @dptr,a
319         inc     dptr
320         mov     a,r6
321         movx    @dptr,a
322         inc     dptr
323         mov     a,r7
324         movx    @dptr,a
325 ;       _long2fs.c 108
326         mov     dptr,#(___long2fs_fl_1_1)
327         movx    a,@dptr
328         mov     r2,a
329         inc     dptr
330         movx    a,@dptr
331         mov     r3,a
332         inc     dptr
333         movx    a,@dptr
334         mov     r4,a
335         inc     dptr
336         movx    a,@dptr
337 ; Peephole 191   removed redundant mov
338         mov  r5,a
339         mov  dpl,r2
340         mov  dph,r3
341         mov  b,r4
342 00108$:
343         C$_long2fs.c$109$1$1 ==.
344         XG$__long2fs$0$0 ==.
345         ret
346         .area   CSEG    (CODE)