Initial revision
[fw/sdcc] / device / lib / small / _fs2char.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 _fs2char
7 ;--------------------------------------------------------
8 ; publics variables in this module
9 ;--------------------------------------------------------
10         .globl ___fs2char
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 ___fs2char_fl1_1_1:
27         .ds     0x0004
28 ___fs2char_exp_1_1:
29         .ds     0x0002
30 ___fs2char_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$__fs2char$0$0 ==.
53 ;       _fs2char.c 73
54 ;       -----------------------------------------
55 ;        function __fs2char
56 ;       -----------------------------------------
57 ___fs2char:
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 ;       _fs2char.c 96
67         mov     r2,dpl
68         mov     r3,dph
69         mov     r4,b
70         mov     r5,a
71 ;       _fs2char.c 79
72         mov     ___fs2char_fl1_1_1,r2
73         mov     (___fs2char_fl1_1_1 + 1),r3
74         mov     (___fs2char_fl1_1_1 + 2),r4
75         mov     (___fs2char_fl1_1_1 + 3),r5
76 ;       _fs2char.c 81
77         mov     a,___fs2char_fl1_1_1
78         orl     a,(___fs2char_fl1_1_1 + 1)
79         orl     a,(___fs2char_fl1_1_1 + 2)
80         orl     a,(___fs2char_fl1_1_1 + 3)
81 ; Peephole 109   removed ljmp by inverse jump logic
82         jnz  00102$
83 00120$:
84 ;       _fs2char.c 82
85         mov     dpl,#0x00
86         ljmp    00110$
87 00102$:
88 ;       _fs2char.c 84
89         mov     r2,(___fs2char_fl1_1_1 + 2)
90         mov     a,(___fs2char_fl1_1_1 + 3)
91         mov     c,acc.7
92         xch     a,r2
93         rlc     a
94         xch     a,r2
95         rlc     a
96         xch     a,r2
97         anl     a,#0x01
98         jnb     acc.0,00121$
99         orl     a,#0xfe
100 00121$:
101         mov     r3,a
102         rlc     a
103         subb    a,acc
104         mov     r4,a
105         mov     r5,a
106         mov     a,r2
107         mov     b,#0x00
108         add     a,#0x6a
109         mov     ___fs2char_exp_1_1,a
110         mov     a,b
111         addc    a,#0xff
112         mov     (___fs2char_exp_1_1 + 1),a
113 ;       _fs2char.c 85
114         mov     r2,___fs2char_fl1_1_1
115         mov     r3,(___fs2char_fl1_1_1 + 1)
116         mov     a,#0x7f
117         anl     a,(___fs2char_fl1_1_1 + 2)
118         mov     r6,a
119         mov     r7,#0x00
120         mov     ___fs2char_l_1_1,r2
121         mov     (___fs2char_l_1_1 + 1),r3
122         mov     a,#0x80
123         orl     a,r6
124         mov     (___fs2char_l_1_1 + 2),a
125         mov     (___fs2char_l_1_1 + 3),r7
126 ;       _fs2char.c 87
127         clr     c
128 ; Peephole 180   changed mov to clr
129         clr  a
130         subb    a,___fs2char_exp_1_1
131 ; Peephole 159   avoided xrl during execution
132         mov  a,#(0x00 ^ 0x80)
133         mov     b,(___fs2char_exp_1_1 + 1)
134         xrl     b,#0x80
135         subb    a,b
136 ; Peephole 108   removed ljmp by inverse jump logic
137         jnc  00104$
138 00122$:
139 ;       _fs2char.c 88
140         mov     a,(___fs2char_fl1_1_1 + 3)
141         rl      a
142         anl     a,#0x01
143         mov     r2,a
144         mov     a,#0x7f
145         orl     a,r2
146         mov     dpl,a
147         ljmp    00110$
148 00104$:
149 ;       _fs2char.c 91
150         mov     a,(___fs2char_exp_1_1 + 1)
151 ; Peephole 111   removed ljmp by inverse jump logic
152         jnb  acc.7,00106$
153 00123$:
154         clr     c
155         mov     a,#0xe7
156         subb    a,___fs2char_exp_1_1
157 ; Peephole 159   avoided xrl during execution
158         mov  a,#(0xff ^ 0x80)
159         mov     b,(___fs2char_exp_1_1 + 1)
160         xrl     b,#0x80
161         subb    a,b
162 ; Peephole 108   removed ljmp by inverse jump logic
163         jnc  00106$
164 00124$:
165         mov     a,___fs2char_l_1_1
166         orl     a,(___fs2char_l_1_1 + 1)
167         orl     a,(___fs2char_l_1_1 + 2)
168         orl     a,(___fs2char_l_1_1 + 3)
169 ; Peephole 110   removed ljmp by inverse jump logic
170         jz  00106$
171 00125$:
172 ;       _fs2char.c 92
173         clr     c
174         clr     a
175         subb    a,___fs2char_exp_1_1
176         mov     r2,a
177         clr     a
178         subb    a,(___fs2char_exp_1_1 + 1)
179         mov     r3,a
180         mov     b,r2
181         inc     b
182         mov     a,(___fs2char_l_1_1 + 3)
183         rlc     a
184         mov     ov,c
185         sjmp    00127$
186 00126$:
187         mov     c,ov
188         mov     a,(___fs2char_l_1_1 + 3)
189         rrc     a
190         mov     (___fs2char_l_1_1 + 3),a
191         mov     a,(___fs2char_l_1_1 + 2)
192         rrc     a
193         mov     (___fs2char_l_1_1 + 2),a
194         mov     a,(___fs2char_l_1_1 + 1)
195         rrc     a
196         mov     (___fs2char_l_1_1 + 1),a
197         mov     a,___fs2char_l_1_1
198         rrc     a
199         mov     ___fs2char_l_1_1,a
200 00127$:
201         djnz    b,00126$
202 ; Peephole 132   changed ljmp to sjmp
203         sjmp 00107$
204 00106$:
205 ;       _fs2char.c 94
206         mov     dpl,#0x00
207 ; Peephole 132   changed ljmp to sjmp
208         sjmp 00110$
209 00107$:
210 ;       _fs2char.c 96
211         mov     a,(___fs2char_fl1_1_1 + 3)
212         rl      a
213         anl     a,#0x01
214 ; Peephole 105   removed redundant mov
215         mov  r2,a
216 ; Peephole 110   removed ljmp by inverse jump logic
217         jz  00112$
218 00128$:
219         clr     c
220         clr     a
221         subb    a,___fs2char_l_1_1
222         mov     r2,a
223         clr     a
224         subb    a,(___fs2char_l_1_1 + 1)
225         mov     r3,a
226         clr     a
227         subb    a,(___fs2char_l_1_1 + 2)
228         mov     r6,a
229         clr     a
230         subb    a,(___fs2char_l_1_1 + 3)
231         mov     r7,a
232 ; Peephole 132   changed ljmp to sjmp
233         sjmp 00113$
234 00112$:
235         mov     r2,___fs2char_l_1_1
236         mov     r3,(___fs2char_l_1_1 + 1)
237         mov     r6,(___fs2char_l_1_1 + 2)
238         mov     r7,(___fs2char_l_1_1 + 3)
239 00113$:
240         mov     dpl,r2
241         mov     dph,r3
242         mov     b,r6
243         mov     a,r7
244 00110$:
245         C$_fs2char.c$97$1$1 ==.
246         XG$__fs2char$0$0 ==.
247         ret
248         .area   CSEG    (CODE)