1 1 ;--------------------------------------------------------
2 2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3 3 ; Version 2.1.9Ga Sun Jan 16 17:31:22 2000
5 5 ;--------------------------------------------------------
7 7 ;--------------------------------------------------------
8 8 ; publics variables in this module
9 9 ;--------------------------------------------------------
11 11 ;--------------------------------------------------------
12 12 ; special function registers
13 13 ;--------------------------------------------------------
14 14 ;--------------------------------------------------------
15 15 ; special function bits
16 16 ;--------------------------------------------------------
17 17 ;--------------------------------------------------------
18 18 ; internal ram data
19 19 ;--------------------------------------------------------
21 0000 21 _atol_sloc0_1_0:
23 23 ;--------------------------------------------------------
24 24 ; overlayable items in internal ram
25 25 ;--------------------------------------------------------
26 26 .area OSEG (OVR,DATA)
27 27 ;--------------------------------------------------------
28 28 ; indirectly addressable internal ram data
29 29 ;--------------------------------------------------------
31 31 ;--------------------------------------------------------
33 33 ;--------------------------------------------------------
35 35 ;--------------------------------------------------------
36 36 ; external ram data
37 37 ;--------------------------------------------------------
43 43 ;--------------------------------------------------------
44 44 ; global & static initialisations
45 45 ;--------------------------------------------------------
46 46 .area GSINIT (CODE)
47 47 ;--------------------------------------------------------
49 49 ;--------------------------------------------------------
51 0000 51 G$atol$0$0 ==.
53 53 ; -----------------------------------------
55 55 ; -----------------------------------------
67 0002 C0 83 67 push dph
68 0004 C0 82 68 push dpl
69 0006 90s00r00 69 mov dptr,#_atol_s_1_1
71 000B F0 71 movx @dptr,a
74 000F F0 74 movx @dptr,a
77 0013 F0 77 movx @dptr,a
79 0014 90s00r03 79 mov dptr,#_atol_rv_1_1
84 001B F0 84 movx @dptr,a
85 001C 12s00r00 85 lcall __decdptr
86 001F F0 86 movx @dptr,a
87 0020 12s00r00 87 lcall __decdptr
88 0023 F0 88 movx @dptr,a
89 0024 12s00r00 89 lcall __decdptr
90 0027 F0 90 movx @dptr,a
92 0028 90s00r00 92 mov dptr,#_atol_s_1_1
93 002B E0 93 movx a,@dptr
96 002E E0 96 movx a,@dptr
99 0031 E0 99 movx a,@dptr
102 0033 8A 82 102 mov dpl,r2
103 0035 8B 83 103 mov dph,r3
104 0037 8C F0 104 mov b,r4
105 0039 12s00r00 105 lcall __gptrget
106 106 ; Peephole 105 removed redundant mov
108 108 ; Peephole 110 removed ljmp by inverse jump logic
109 003D 60 30 109 jz 00109$
113 113 ; Peephole 159 avoided xrl during execution
114 0040 74 B9 114 mov a,#(0x39 ^ 0x80)
115 0042 8D F0 115 mov b,r5
116 0044 63 F0 80 116 xrl b,#0x80
117 0047 95 F0 117 subb a,b
118 118 ; Peephole 132 changed ljmp to sjmp
119 119 ; Peephole 160 removed sjmp by inverse jump logic
120 0049 40 08 120 jc 00102$
124 004D 64 80 124 xrl a,#0x80
125 004F 94 B0 125 subb a,#0xb0
126 126 ; Peephole 108 removed ljmp by inverse jump logic
127 0051 50 1C 127 jnc 00109$
132 0053 BD 2D 02 132 cjne r5,#0x2d,00136$
133 133 ; Peephole 132 changed ljmp to sjmp
134 0056 80 17 134 sjmp 00109$
136 0058 BD 2B 02 136 cjne r5,#0x2b,00137$
137 137 ; Peephole 132 changed ljmp to sjmp
138 005B 80 12 138 sjmp 00109$
142 005E BA 00 01 142 cjne r2,#0x00,00138$
145 0062 90s00r00 145 mov dptr,#_atol_s_1_1
147 0066 F0 147 movx @dptr,a
150 0069 F0 150 movx @dptr,a
153 006C F0 153 movx @dptr,a
154 154 ; Peephole 132 changed ljmp to sjmp
155 006D 80 C4 155 sjmp 00107$
158 006F 90s00r00 158 mov dptr,#_atol_s_1_1
160 0073 F0 160 movx @dptr,a
163 0076 F0 163 movx @dptr,a
166 0079 F0 166 movx @dptr,a
167 007A 8A 82 167 mov dpl,r2
168 007C 8B 83 168 mov dph,r3
169 007E 8C F0 169 mov b,r4
170 0080 12s00r00 170 lcall __gptrget
172 0084 BD 2D 04 172 cjne r5,#0x2d,00139$
173 0087 74 01 173 mov a,#0x01
174 0089 80 01 174 sjmp 00140$
179 179 ; Peephole 105 removed redundant mov
181 181 ; Peephole 109 removed ljmp by inverse jump logic
182 008D 70 03 182 jnz 00110$
184 184 ; Peephole 132 changed ljmp to sjmp
185 185 ; Peephole 199 optimized misc jump sequence
186 008F BD 2B 0E 186 cjne r5,#0x2b,00131$
187 187 ; Peephole 201 removed redundant sjmp
191 0092 90s00r00 191 mov dptr,#_atol_s_1_1
192 0095 74 01 192 mov a,#0x01
194 0098 F0 194 movx @dptr,a
195 195 ; Peephole 180 changed mov to clr
197 009A 3B 197 addc a,r3
199 009C F0 199 movx @dptr,a
202 009F F0 202 movx @dptr,a
205 00A0 90s00r00 205 mov dptr,#_atol_s_1_1
206 00A3 E0 206 movx a,@dptr
209 00A6 E0 209 movx a,@dptr
212 00A9 E0 212 movx a,@dptr
215 00AB 8A 82 215 mov dpl,r2
216 00AD 8B 83 216 mov dph,r3
217 00AF 8C F0 217 mov b,r4
218 00B1 12s00r00 218 lcall __gptrget
219 219 ; Peephole 105 removed redundant mov
221 00B5 70 03 221 jnz 00144$
222 00B7 02s01r5E 222 ljmp 00117$
226 00BC 64 80 226 xrl a,#0x80
227 00BE 94 B0 227 subb a,#0xb0
228 00C0 50 03 228 jnc 00145$
229 00C2 02s01r5E 229 ljmp 00117$
232 232 ; Peephole 159 avoided xrl during execution
233 00C6 74 B9 233 mov a,#(0x39 ^ 0x80)
234 00C8 8D F0 234 mov b,r5
235 00CA 63 F0 80 235 xrl b,#0x80
236 00CD 95 F0 236 subb a,b
237 00CF 50 03 237 jnc 00146$
238 00D1 02s01r5E 238 ljmp 00117$
241 00D4 C0 06 241 push ar6
242 00D6 90s00r03 242 mov dptr,#_atol_rv_1_1
243 00D9 E0 243 movx a,@dptr
246 00DC E0 246 movx a,@dptr
249 00DF E0 249 movx a,@dptr
252 00E2 E0 252 movx a,@dptr
254 00E4 90s00r00 254 mov dptr,#__mulslong_PARM_2
259 00EB F0 259 movx @dptr,a
260 00EC 12s00r00 260 lcall __decdptr
261 00EF F0 261 movx @dptr,a
262 00F0 12s00r00 262 lcall __decdptr
263 00F3 F0 263 movx @dptr,a
264 00F4 12s00r00 264 lcall __decdptr
265 00F7 74 0A 265 mov a,#0x0a
266 00F9 F0 266 movx @dptr,a
267 00FA C0 02 267 push ar2
268 00FC C0 03 268 push ar3
269 00FE C0 04 269 push ar4
270 0100 C0 05 270 push ar5
271 0102 C0 06 271 push ar6
272 0104 8F 82 272 mov dpl,r7
273 0106 88 83 273 mov dph,r0
274 0108 89 F0 274 mov b,r1
276 010B 12s00r00 276 lcall __mulslong
277 010E 85 82*00 277 mov _atol_sloc0_1_0,dpl
278 0111 85 83*01 278 mov (_atol_sloc0_1_0 + 1),dph
279 0114 85 F0*02 279 mov (_atol_sloc0_1_0 + 2),b
280 0117 F5*03 280 mov (_atol_sloc0_1_0 + 3),a
281 0119 D0 06 281 pop ar6
282 011B D0 05 282 pop ar5
283 011D D0 04 283 pop ar4
284 011F D0 03 284 pop ar3
285 0121 D0 02 285 pop ar2
287 0124 24 D0 287 add a,#0xd0
289 289 ; Peephole 180 changed mov to clr
291 0128 34 FF 291 addc a,#0xff
293 293 ; Peephole 180 changed mov to clr
295 012C 34 FF 295 addc a,#0xff
297 297 ; Peephole 180 changed mov to clr
299 0130 34 FF 299 addc a,#0xff
301 0133 90s00r03 301 mov dptr,#_atol_rv_1_1
303 0137 25*00 303 add a,_atol_sloc0_1_0
304 0139 F0 304 movx @dptr,a
306 013B 35*01 306 addc a,(_atol_sloc0_1_0 + 1)
308 013E F0 308 movx @dptr,a
310 0140 35*02 310 addc a,(_atol_sloc0_1_0 + 2)
312 0143 F0 312 movx @dptr,a
314 0145 35*03 314 addc a,(_atol_sloc0_1_0 + 3)
316 0148 F0 316 movx @dptr,a
319 014A BA 00 01 319 cjne r2,#0x00,00147$
322 014E 90s00r00 322 mov dptr,#_atol_s_1_1
324 0152 F0 324 movx @dptr,a
327 0155 F0 327 movx @dptr,a
330 0158 F0 330 movx @dptr,a
331 0159 D0 06 331 pop ar6
332 015B 02s00rAB 332 ljmp 00115$
335 015E 90s00r00 335 mov dptr,#_atol_s_1_1
337 0162 F0 337 movx @dptr,a
340 0165 F0 340 movx @dptr,a
343 0168 F0 343 movx @dptr,a
345 345 ; Peephole 110 removed ljmp by inverse jump logic
346 016A 60 1D 346 jz 00120$
348 016C 90s00r03 348 mov dptr,#_atol_rv_1_1
349 016F E0 349 movx a,@dptr
352 0172 E0 352 movx a,@dptr
355 0175 E0 355 movx a,@dptr
358 0178 E0 358 movx a,@dptr
362 017C 9A 362 subb a,r2
365 017F 9B 365 subb a,r3
368 0182 9C 368 subb a,r4
371 0185 9D 371 subb a,r5
373 373 ; Peephole 132 changed ljmp to sjmp
374 0187 80 0E 374 sjmp 00121$
376 0189 90s00r03 376 mov dptr,#_atol_rv_1_1
377 018C E0 377 movx a,@dptr
380 018F E0 380 movx a,@dptr
383 0192 E0 383 movx a,@dptr
386 0195 E0 386 movx a,@dptr
389 0197 8A 82 389 mov dpl,r2
390 0199 8B 83 390 mov dph,r3
391 019B 8C F0 391 mov b,r4
394 019E 394 C$_atol.c$48$1$1 ==.
395 019E 395 XG$atol$0$0 ==.
397 397 .area CSEG (CODE)