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