Removed silly lib files
[fw/sdcc] / device / lib / ser_ir.lst
1                               1 ;--------------------------------------------------------
2                               2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3                               3 ; Version 2.1.9Ga Sun Jan 16 17:31:36 2000
4                               4 
5                               5 ;--------------------------------------------------------
6                               6         .module ser_ir
7                               7 ;--------------------------------------------------------
8                               8 ; publics variables in this module
9                               9 ;--------------------------------------------------------
10                              10         .globl _ser_handler
11                              11         .globl _ser_can_xmt
12                              12         .globl _ser_can_rcv
13                              13         .globl _ser_getc
14                              14         .globl _ser_gets
15                              15         .globl _ser_puts
16                              16         .globl _ser_putc
17                              17         .globl _ser_init
18                              18         .globl _ser_gets_PARM_2
19                              19 ;--------------------------------------------------------
20                              20 ; special function registers
21                              21 ;--------------------------------------------------------
22                     0081     22 G$SP$0$0 == 0x0081
23                     0081     23 _SP     =       0x0081
24                     0082     24 G$DPL$0$0 == 0x0082
25                     0082     25 _DPL    =       0x0082
26                     0083     26 G$DPH$0$0 == 0x0083
27                     0083     27 _DPH    =       0x0083
28                     0087     28 G$PCON$0$0 == 0x0087
29                     0087     29 _PCON   =       0x0087
30                     0088     30 G$TCON$0$0 == 0x0088
31                     0088     31 _TCON   =       0x0088
32                     0089     32 G$TMOD$0$0 == 0x0089
33                     0089     33 _TMOD   =       0x0089
34                     008A     34 G$TL0$0$0 == 0x008a
35                     008A     35 _TL0    =       0x008a
36                     008B     36 G$TL1$0$0 == 0x008b
37                     008B     37 _TL1    =       0x008b
38                     008C     38 G$TH0$0$0 == 0x008c
39                     008C     39 _TH0    =       0x008c
40                     008D     40 G$TH1$0$0 == 0x008d
41                     008D     41 _TH1    =       0x008d
42                     0090     42 G$P1$0$0 == 0x0090
43                     0090     43 _P1     =       0x0090
44                     0098     44 G$SCON$0$0 == 0x0098
45                     0098     45 _SCON   =       0x0098
46                     0099     46 G$SBUF$0$0 == 0x0099
47                     0099     47 _SBUF   =       0x0099
48                     00A8     48 G$IE$0$0 == 0x00a8
49                     00A8     49 _IE     =       0x00a8
50                     00B0     50 G$P3$0$0 == 0x00b0
51                     00B0     51 _P3     =       0x00b0
52                     00B8     52 G$IP$0$0 == 0x00b8
53                     00B8     53 _IP     =       0x00b8
54                     00D0     54 G$PSW$0$0 == 0x00d0
55                     00D0     55 _PSW    =       0x00d0
56                     00E0     56 G$ACC$0$0 == 0x00e0
57                     00E0     57 _ACC    =       0x00e0
58                     00E0     58 G$A$0$0 == 0x00e0
59                     00E0     59 _A      =       0x00e0
60                     00F0     60 G$B$0$0 == 0x00f0
61                     00F0     61 _B      =       0x00f0
62                              62 ;--------------------------------------------------------
63                              63 ; special function bits 
64                              64 ;--------------------------------------------------------
65                     0088     65 G$IT0$0$0 == 0x0088
66                     0088     66 _IT0    =       0x0088
67                     0089     67 G$IE0$0$0 == 0x0089
68                     0089     68 _IE0    =       0x0089
69                     008A     69 G$IT1$0$0 == 0x008a
70                     008A     70 _IT1    =       0x008a
71                     008B     71 G$IE1$0$0 == 0x008b
72                     008B     72 _IE1    =       0x008b
73                     008C     73 G$TR0$0$0 == 0x008c
74                     008C     74 _TR0    =       0x008c
75                     008D     75 G$TF0$0$0 == 0x008d
76                     008D     76 _TF0    =       0x008d
77                     008E     77 G$TR1$0$0 == 0x008e
78                     008E     78 _TR1    =       0x008e
79                     008F     79 G$TF1$0$0 == 0x008f
80                     008F     80 _TF1    =       0x008f
81                     0090     81 G$P1_0$0$0 == 0x0090
82                     0090     82 _P1_0   =       0x0090
83                     0091     83 G$P1_1$0$0 == 0x0091
84                     0091     84 _P1_1   =       0x0091
85                     0092     85 G$P1_2$0$0 == 0x0092
86                     0092     86 _P1_2   =       0x0092
87                     0093     87 G$P1_3$0$0 == 0x0093
88                     0093     88 _P1_3   =       0x0093
89                     0094     89 G$P1_4$0$0 == 0x0094
90                     0094     90 _P1_4   =       0x0094
91                     0095     91 G$P1_5$0$0 == 0x0095
92                     0095     92 _P1_5   =       0x0095
93                     0096     93 G$P1_6$0$0 == 0x0096
94                     0096     94 _P1_6   =       0x0096
95                     0097     95 G$P1_7$0$0 == 0x0097
96                     0097     96 _P1_7   =       0x0097
97                     0090     97 G$AIN0$0$0 == 0x0090
98                     0090     98 _AIN0   =       0x0090
99                     0091     99 G$AIN1$0$0 == 0x0091
100                     0091    100 _AIN1   =       0x0091
101                     0098    101 G$RI$0$0 == 0x0098
102                     0098    102 _RI     =       0x0098
103                     0099    103 G$TI$0$0 == 0x0099
104                     0099    104 _TI     =       0x0099
105                     009A    105 G$RB8$0$0 == 0x009a
106                     009A    106 _RB8    =       0x009a
107                     009B    107 G$TB8$0$0 == 0x009b
108                     009B    108 _TB8    =       0x009b
109                     009C    109 G$REN$0$0 == 0x009c
110                     009C    110 _REN    =       0x009c
111                     009D    111 G$SM2$0$0 == 0x009d
112                     009D    112 _SM2    =       0x009d
113                     009E    113 G$SM1$0$0 == 0x009e
114                     009E    114 _SM1    =       0x009e
115                     009F    115 G$SM0$0$0 == 0x009f
116                     009F    116 _SM0    =       0x009f
117                     00A8    117 G$EX0$0$0 == 0x00a8
118                     00A8    118 _EX0    =       0x00a8
119                     00A9    119 G$ET0$0$0 == 0x00a9
120                     00A9    120 _ET0    =       0x00a9
121                     00AA    121 G$EX1$0$0 == 0x00aa
122                     00AA    122 _EX1    =       0x00aa
123                     00AB    123 G$ET1$0$0 == 0x00ab
124                     00AB    124 _ET1    =       0x00ab
125                     00AC    125 G$ES$0$0 == 0x00ac
126                     00AC    126 _ES     =       0x00ac
127                     00AD    127 G$ET2$0$0 == 0x00ad
128                     00AD    128 _ET2    =       0x00ad
129                     00AF    129 G$EA$0$0 == 0x00af
130                     00AF    130 _EA     =       0x00af
131                     00B0    131 G$P3_0$0$0 == 0x00b0
132                     00B0    132 _P3_0   =       0x00b0
133                     00B1    133 G$P3_1$0$0 == 0x00b1
134                     00B1    134 _P3_1   =       0x00b1
135                     00B2    135 G$P3_2$0$0 == 0x00b2
136                     00B2    136 _P3_2   =       0x00b2
137                     00B3    137 G$P3_3$0$0 == 0x00b3
138                     00B3    138 _P3_3   =       0x00b3
139                     00B4    139 G$P3_4$0$0 == 0x00b4
140                     00B4    140 _P3_4   =       0x00b4
141                     00B5    141 G$P3_5$0$0 == 0x00b5
142                     00B5    142 _P3_5   =       0x00b5
143                     00B7    143 G$P3_7$0$0 == 0x00b7
144                     00B7    144 _P3_7   =       0x00b7
145                     00B0    145 G$RXD$0$0 == 0x00b0
146                     00B0    146 _RXD    =       0x00b0
147                     00B1    147 G$TXD$0$0 == 0x00b1
148                     00B1    148 _TXD    =       0x00b1
149                     00B2    149 G$INT0$0$0 == 0x00b2
150                     00B2    150 _INT0   =       0x00b2
151                     00B3    151 G$INT1$0$0 == 0x00b3
152                     00B3    152 _INT1   =       0x00b3
153                     00B4    153 G$T0$0$0 == 0x00b4
154                     00B4    154 _T0     =       0x00b4
155                     00B5    155 G$T1$0$0 == 0x00b5
156                     00B5    156 _T1     =       0x00b5
157                     00B6    157 G$AOUT$0$0 == 0x00b6
158                     00B6    158 _AOUT   =       0x00b6
159                     00B8    159 G$PX0$0$0 == 0x00b8
160                     00B8    160 _PX0    =       0x00b8
161                     00B9    161 G$PT0$0$0 == 0x00b9
162                     00B9    162 _PT0    =       0x00b9
163                     00BA    163 G$PX1$0$0 == 0x00ba
164                     00BA    164 _PX1    =       0x00ba
165                     00BB    165 G$PT1$0$0 == 0x00bb
166                     00BB    166 _PT1    =       0x00bb
167                     00BC    167 G$PS$0$0 == 0x00bc
168                     00BC    168 _PS     =       0x00bc
169                     00D0    169 G$P$0$0 == 0x00d0
170                     00D0    170 _P      =       0x00d0
171                     00D1    171 G$FL$0$0 == 0x00d1
172                     00D1    172 _FL     =       0x00d1
173                     00D2    173 G$OV$0$0 == 0x00d2
174                     00D2    174 _OV     =       0x00d2
175                     00D3    175 G$RS0$0$0 == 0x00d3
176                     00D3    176 _RS0    =       0x00d3
177                     00D4    177 G$RS1$0$0 == 0x00d4
178                     00D4    178 _RS1    =       0x00d4
179                     00D5    179 G$F0$0$0 == 0x00d5
180                     00D5    180 _F0     =       0x00d5
181                     00D6    181 G$AC$0$0 == 0x00d6
182                     00D6    182 _AC     =       0x00d6
183                     00D7    183 G$CY$0$0 == 0x00d7
184                     00D7    184 _CY     =       0x00d7
185                             185 ;--------------------------------------------------------
186                             186 ; internal ram data
187                             187 ;--------------------------------------------------------
188                             188         .area   DSEG    (DATA)
189                             189 ;--------------------------------------------------------
190                             190 ; overlayable items in internal ram 
191                             191 ;--------------------------------------------------------
192                             192         .area   OSEG    (OVR,DATA)
193                             193 ;--------------------------------------------------------
194                             194 ; indirectly addressable internal ram data
195                             195 ;--------------------------------------------------------
196                             196         .area   ISEG    (DATA)
197                             197 ;--------------------------------------------------------
198                             198 ; bit data
199                             199 ;--------------------------------------------------------
200                             200         .area   BSEG    (BIT)
201                             201 ;--------------------------------------------------------
202                             202 ; external ram data
203                             203 ;--------------------------------------------------------
204                             204         .area   XSEG    (XDATA)
205                     0000    205 Fser_ir$rbuf$0$0==.
206    0000                     206 _rbuf:
207    0000                     207         .ds     0x000a
208                     000A    208 Fser_ir$xbuf$0$0==.
209    000A                     209 _xbuf:
210    000A                     210         .ds     0x000a
211                     0014    211 Fser_ir$rcnt$0$0==.
212    0014                     212 _rcnt:
213    0014                     213         .ds     0x0001
214                     0015    214 Fser_ir$xcnt$0$0==.
215    0015                     215 _xcnt:
216    0015                     216         .ds     0x0001
217                     0016    217 Fser_ir$rpos$0$0==.
218    0016                     218 _rpos:
219    0016                     219         .ds     0x0001
220                     0017    220 Fser_ir$xpos$0$0==.
221    0017                     221 _xpos:
222    0017                     222         .ds     0x0001
223                     0018    223 Fser_ir$busy$0$0==.
224    0018                     224 _busy:
225    0018                     225         .ds     0x0001
226    0019                     226 _ser_putc_c_1_1:
227    0019                     227         .ds     0x0001
228    001A                     228 _ser_puts_s_1_1:
229    001A                     229         .ds     0x0003
230    001D                     230 _ser_gets_PARM_2:
231    001D                     231         .ds     0x0001
232    001E                     232 _ser_gets_s_1_1:
233    001E                     233         .ds     0x0003
234                             234 ;--------------------------------------------------------
235                             235 ; global & static initialisations
236                             236 ;--------------------------------------------------------
237                             237         .area GSINIT (CODE)
238                             238 ;--------------------------------------------------------
239                             239 ; code
240                             240 ;--------------------------------------------------------
241                             241         .area CSEG (CODE)
242                     0000    242         G$ser_init$0$0 ==.
243                             243 ;       ser_ir.c 49
244                             244 ;       -----------------------------------------
245                             245 ;        function ser_init
246                             246 ;       -----------------------------------------
247    0000                     247 _ser_init:
248                     0002    248         ar2 = 0x02
249                     0003    249         ar3 = 0x03
250                     0004    250         ar4 = 0x04
251                     0005    251         ar5 = 0x05
252                     0006    252         ar6 = 0x06
253                     0007    253         ar7 = 0x07
254                     0000    254         ar0 = 0x00
255                     0001    255         ar1 = 0x01
256                             256 ;       ser_ir.c 51
257    0000 C2 AC               257         clr     _ES
258                             258 ;       ser_ir.c 52
259    0002 90s00r17            259         mov     dptr,#_xpos
260                             260 ; Peephole 180   changed mov to clr
261    0005 E4                  261         clr  a
262    0006 F0                  262         movx    @dptr,a
263    0007 90s00r16            263         mov     dptr,#_rpos
264                             264 ; Peephole 180   changed mov to clr
265    000A E4                  265         clr  a
266    000B F0                  266         movx    @dptr,a
267    000C 90s00r15            267         mov     dptr,#_xcnt
268                             268 ; Peephole 180   changed mov to clr
269    000F E4                  269         clr  a
270    0010 F0                  270         movx    @dptr,a
271    0011 90s00r14            271         mov     dptr,#_rcnt
272                             272 ; Peephole 180   changed mov to clr
273    0014 E4                  273         clr  a
274    0015 F0                  274         movx    @dptr,a
275                             275 ;       ser_ir.c 53
276    0016 90s00r18            276         mov     dptr,#_busy
277                             277 ; Peephole 180   changed mov to clr
278    0019 E4                  278         clr  a
279    001A F0                  279         movx    @dptr,a
280                             280 ;       ser_ir.c 54
281    001B 75 98 50            281         mov     _SCON,#0x50
282                             282 ;       ser_ir.c 55
283    001E 43 87 80            283         orl     _PCON,#0x80
284                             284 ;       ser_ir.c 56
285    0021 53 89 0F            285         anl     _TMOD,#0x0f
286                             286 ;       ser_ir.c 57
287    0024 43 89 20            287         orl     _TMOD,#0x20
288                             288 ;       ser_ir.c 58
289    0027 75 8B FD            289         mov     _TL1,#0xfd
290    002A 75 8D FD            290         mov     _TH1,#0xfd
291    002D D2 8E               291         setb    _TR1
292                             292 ;       ser_ir.c 59
293    002F D2 AC               293         setb    _ES
294    0031                     294 00101$:
295                     0031    295         C$ser_ir.c$60$1$1 ==.
296                     0031    296         XG$ser_init$0$0 ==.
297    0031 22                  297         ret
298                     0032    298         G$ser_handler$0$0 ==.
299                             299 ;       ser_ir.c 62
300                             300 ;       -----------------------------------------
301                             301 ;        function ser_handler
302                             302 ;       -----------------------------------------
303    0032                     303 _ser_handler:
304    0032 C0 E0               304         push    acc
305    0034 C0 F0               305         push    b
306    0036 C0 82               306         push    dpl
307    0038 C0 83               307         push    dph
308    003A C0 02               308         push    ar2
309    003C C0 03               309         push    ar3
310    003E C0 D0               310         push    psw
311    0040 75 D0 00            311         mov     psw,#0x00
312                             312 ;       ser_ir.c 64
313                             313 ; Peephole 111   removed ljmp by inverse jump logic
314    0043 30 98 2C            314         jnb  _RI,00104$
315    0046                     315 00118$:
316                             316 ;       ser_ir.c 65
317    0046 C2 98               317         clr     _RI
318                             318 ;       ser_ir.c 67
319    0048 90s00r14            319         mov     dptr,#_rcnt
320    004B E0                  320         movx    a,@dptr
321    004C FA                  321         mov     r2,a
322    004D BA 0A 00            322         cjne    r2,#0x0a,00119$
323    0050                     323 00119$:
324                             324 ; Peephole 108   removed ljmp by inverse jump logic
325    0050 50 20               325         jnc  00104$
326    0052                     326 00120$:
327                             327 ;       ser_ir.c 68
328    0052 90s00r14            328         mov     dptr,#_rcnt
329    0055 74 01               329         mov     a,#0x01
330    0057 2A                  330         add     a,r2
331    0058 F0                  331         movx    @dptr,a
332    0059 90s00r16            332         mov     dptr,#_rpos
333    005C E0                  333         movx    a,@dptr
334                             334 ; Peephole 214 reduced some extra movs
335    005D FB                  335         mov  r3,a
336    005E 2A                  336         add  a,r2       
337    005F 75 F0 0A            337         mov     b,#0x0a
338    0062 84                  338         div     ab
339    0063 AA F0               339         mov     r2,b
340    0065 EA                  340         mov     a,r2
341    0066 24r00               341         add     a,#_rbuf
342    0068 F5 82               342         mov     dpl,a
343                             343 ; Peephole 180   changed mov to clr
344    006A E4                  344         clr  a
345    006B 34s00               345         addc    a,#(_rbuf >> 8)
346    006D F5 83               346         mov     dph,a
347    006F E5 99               347         mov     a,_SBUF
348    0071 F0                  348         movx    @dptr,a
349    0072                     349 00104$:
350                             350 ;       ser_ir.c 70
351                             351 ; Peephole 111   removed ljmp by inverse jump logic
352    0072 30 99 38            352         jnb  _TI,00111$
353    0075                     353 00121$:
354                             354 ;       ser_ir.c 71
355    0075 C2 99               355         clr     _TI
356                             356 ;       ser_ir.c 72
357    0077 90s00r15            357         mov     dptr,#_xcnt
358    007A E0                  358         movx    a,@dptr
359                             359 ; Peephole 100   removed redundant mov
360    007B FA                  360         mov  r2,a
361    007C 90s00r18            361         mov  dptr,#_busy
362    007F F0                  362         movx @dptr,a
363    0080 EA                  363         mov     a,r2
364                             364 ; Peephole 110   removed ljmp by inverse jump logic
365    0081 60 2A               365         jz  00111$
366    0083                     366 00122$:
367                             367 ;       ser_ir.c 73
368    0083 EA                  368         mov     a,r2
369    0084 24 FF               369         add     a,#0xff
370    0086 90s00r15            370         mov     dptr,#_xcnt
371    0089 F0                  371         movx    @dptr,a
372                             372 ;       ser_ir.c 74
373    008A 90s00r17            373         mov     dptr,#_xpos
374    008D E0                  374         movx    a,@dptr
375                             375 ; Peephole 214 reduced some extra movs
376    008E FA                  376         mov  r2,a
377    008F 24 01               377         add  a,#0x01    
378                             378 ; Peephole 100   removed redundant mov
379    0091 FB                  379         mov  r3,a
380    0092 90s00r17            380         mov  dptr,#_xpos
381    0095 F0                  381         movx @dptr,a
382    0096 EA                  382         mov     a,r2
383    0097 24r0A               383         add     a,#_xbuf
384    0099 F5 82               384         mov     dpl,a
385                             385 ; Peephole 180   changed mov to clr
386    009B E4                  386         clr  a
387    009C 34s00               387         addc    a,#(_xbuf >> 8)
388    009E F5 83               388         mov     dph,a
389    00A0 E0                  389         movx    a,@dptr
390    00A1 F5 99               390         mov     _SBUF,a
391                             391 ;       ser_ir.c 75
392    00A3 BB 0A 00            392         cjne    r3,#0x0a,00123$
393    00A6                     393 00123$:
394                             394 ; Peephole 132   changed ljmp to sjmp
395                             395 ; Peephole 160   removed sjmp by inverse jump logic
396    00A6 40 05               396         jc   00111$
397    00A8                     397 00124$:
398                             398 ;       ser_ir.c 76
399    00A8 90s00r17            399         mov     dptr,#_xpos
400                             400 ; Peephole 180   changed mov to clr
401    00AB E4                  401         clr  a
402    00AC F0                  402         movx    @dptr,a
403    00AD                     403 00111$:
404    00AD D0 D0               404         pop     psw
405    00AF D0 03               405         pop     ar3
406    00B1 D0 02               406         pop     ar2
407    00B3 D0 83               407         pop     dph
408    00B5 D0 82               408         pop     dpl
409    00B7 D0 F0               409         pop     b
410    00B9 D0 E0               410         pop     acc
411                     00BB    411         C$ser_ir.c$79$1$1 ==.
412                     00BB    412         XG$ser_handler$0$0 ==.
413    00BB 32                  413         reti
414                     00BC    414         G$ser_putc$0$0 ==.
415                             415 ;       ser_ir.c 81
416                             416 ;       -----------------------------------------
417                             417 ;        function ser_putc
418                             418 ;       -----------------------------------------
419    00BC                     419 _ser_putc:
420                             420 ;       ser_ir.c 92
421    00BC C0 82               421         push    dpl
422    00BE 90s00r19            422         mov     dptr,#_ser_putc_c_1_1
423    00C1 D0 E0               423         pop     acc
424    00C3 F0                  424         movx    @dptr,a
425                             425 ;       ser_ir.c 83
426    00C4                     426 00101$:
427    00C4 90s00r15            427         mov     dptr,#_xcnt
428    00C7 E0                  428         movx    a,@dptr
429    00C8 FA                  429         mov     r2,a
430    00C9 BA 0A 00            430         cjne    r2,#0x0a,00112$
431    00CC                     431 00112$:
432                             432 ; Peephole 108   removed ljmp by inverse jump logic
433    00CC 50 F6               433         jnc  00101$
434    00CE                     434 00113$:
435                             435 ;       ser_ir.c 85
436    00CE C2 AC               436         clr     _ES
437                             437 ;       ser_ir.c 86
438    00D0 90s00r18            438         mov     dptr,#_busy
439    00D3 E0                  439         movx    a,@dptr
440                             440 ; Peephole 105   removed redundant mov
441    00D4 FB                  441         mov  r3,a
442                             442 ; Peephole 110   removed ljmp by inverse jump logic
443    00D5 60 27               443         jz  00105$
444    00D7                     444 00114$:
445                             445 ;       ser_ir.c 87
446    00D7 90s00r15            446         mov     dptr,#_xcnt
447    00DA 74 01               447         mov     a,#0x01
448    00DC 2A                  448         add     a,r2
449    00DD F0                  449         movx    @dptr,a
450    00DE 90s00r17            450         mov     dptr,#_xpos
451    00E1 E0                  451         movx    a,@dptr
452                             452 ; Peephole 214 reduced some extra movs
453    00E2 FB                  453         mov  r3,a
454    00E3 2A                  454         add  a,r2       
455    00E4 75 F0 0A            455         mov     b,#0x0a
456    00E7 84                  456         div     ab
457    00E8 AA F0               457         mov     r2,b
458    00EA EA                  458         mov     a,r2
459    00EB 24r0A               459         add     a,#_xbuf
460    00ED FA                  460         mov     r2,a
461                             461 ; Peephole 180   changed mov to clr
462    00EE E4                  462         clr  a
463    00EF 34s00               463         addc    a,#(_xbuf >> 8)
464    00F1 FB                  464         mov     r3,a
465    00F2 90s00r19            465         mov     dptr,#_ser_putc_c_1_1
466    00F5 E0                  466         movx    a,@dptr
467                             467 ; Peephole 136   removed redundant moves
468    00F6 FC                  468         mov  r4,a
469    00F7 8A 82               469         mov  dpl,r2
470    00F9 8B 83               470         mov  dph,r3
471    00FB F0                  471         movx    @dptr,a
472                             472 ; Peephole 132   changed ljmp to sjmp
473    00FC 80 0C               473         sjmp 00106$
474    00FE                     474 00105$:
475                             475 ;       ser_ir.c 89
476    00FE 90s00r19            476         mov     dptr,#_ser_putc_c_1_1
477    0101 E0                  477         movx    a,@dptr
478    0102 F5 99               478         mov     _SBUF,a
479                             479 ;       ser_ir.c 90
480    0104 90s00r18            480         mov     dptr,#_busy
481    0107 74 01               481         mov     a,#0x01
482    0109 F0                  482         movx    @dptr,a
483    010A                     483 00106$:
484                             484 ;       ser_ir.c 92
485    010A D2 AC               485         setb    _ES
486    010C                     486 00107$:
487                     010C    487         C$ser_ir.c$93$1$1 ==.
488                     010C    488         XG$ser_putc$0$0 ==.
489    010C 22                  489         ret
490                     010D    490         G$ser_getc$0$0 ==.
491                             491 ;       ser_ir.c 95
492                             492 ;       -----------------------------------------
493                             493 ;        function ser_getc
494                             494 ;       -----------------------------------------
495    010D                     495 _ser_getc:
496                             496 ;       ser_ir.c 98
497    010D                     497 00101$:
498    010D 90s00r14            498         mov     dptr,#_rcnt
499    0110 E0                  499         movx    a,@dptr
500                             500 ; Peephole 105   removed redundant mov
501    0111 FA                  501         mov  r2,a
502                             502 ; Peephole 110   removed ljmp by inverse jump logic
503    0112 60 F9               503         jz  00101$
504    0114                     504 00111$:
505                             505 ;       ser_ir.c 100
506    0114 C2 AC               506         clr     _ES
507                             507 ;       ser_ir.c 101
508    0116 EA                  508         mov     a,r2
509    0117 24 FF               509         add     a,#0xff
510    0119 90s00r14            510         mov     dptr,#_rcnt
511    011C F0                  511         movx    @dptr,a
512                             512 ;       ser_ir.c 102
513    011D 90s00r16            513         mov     dptr,#_rpos
514    0120 E0                  514         movx    a,@dptr
515                             515 ; Peephole 214 reduced some extra movs
516    0121 FA                  516         mov  r2,a
517    0122 24 01               517         add  a,#0x01    
518                             518 ; Peephole 100   removed redundant mov
519    0124 FB                  519         mov  r3,a
520    0125 90s00r16            520         mov  dptr,#_rpos
521    0128 F0                  521         movx @dptr,a
522    0129 EA                  522         mov     a,r2
523    012A 24r00               523         add     a,#_rbuf
524    012C F5 82               524         mov     dpl,a
525                             525 ; Peephole 180   changed mov to clr
526    012E E4                  526         clr  a
527    012F 34s00               527         addc    a,#(_rbuf >> 8)
528    0131 F5 83               528         mov     dph,a
529    0133 E0                  529         movx    a,@dptr
530    0134 FA                  530         mov     r2,a
531                             531 ;       ser_ir.c 103
532    0135 BB 0A 00            532         cjne    r3,#0x0a,00112$
533    0138                     533 00112$:
534                             534 ; Peephole 132   changed ljmp to sjmp
535                             535 ; Peephole 160   removed sjmp by inverse jump logic
536    0138 40 05               536         jc   00105$
537    013A                     537 00113$:
538                             538 ;       ser_ir.c 104
539    013A 90s00r16            539         mov     dptr,#_rpos
540                             540 ; Peephole 180   changed mov to clr
541    013D E4                  541         clr  a
542    013E F0                  542         movx    @dptr,a
543    013F                     543 00105$:
544                             544 ;       ser_ir.c 105
545    013F D2 AC               545         setb    _ES
546                             546 ;       ser_ir.c 106
547    0141 8A 82               547         mov     dpl,r2
548    0143                     548 00106$:
549                     0143    549         C$ser_ir.c$107$1$1 ==.
550                     0143    550         XG$ser_getc$0$0 ==.
551    0143 22                  551         ret
552                     0144    552         G$ser_puts$0$0 ==.
553                             553 ;       ser_ir.c 110
554                             554 ;       -----------------------------------------
555                             555 ;        function ser_puts
556                             556 ;       -----------------------------------------
557    0144                     557 _ser_puts:
558                             558 ;       ser_ir.c 0
559    0144 C0 F0               559         push    b
560    0146 C0 83               560         push    dph
561    0148 C0 82               561         push    dpl
562    014A 90s00r1A            562         mov     dptr,#_ser_puts_s_1_1
563    014D D0 E0               563         pop     acc
564    014F F0                  564         movx    @dptr,a
565    0150 D0 E0               565         pop     acc
566    0152 A3                  566         inc     dptr
567    0153 F0                  567         movx    @dptr,a
568    0154 D0 E0               568         pop     acc
569    0156 A3                  569         inc     dptr
570    0157 F0                  570         movx    @dptr,a
571                             571 ;       ser_ir.c 113
572    0158                     572 00103$:
573    0158 90s00r1A            573         mov     dptr,#_ser_puts_s_1_1
574    015B E0                  574         movx    a,@dptr
575    015C FA                  575         mov     r2,a
576    015D A3                  576         inc     dptr
577    015E E0                  577         movx    a,@dptr
578    015F FB                  578         mov     r3,a
579    0160 A3                  579         inc     dptr
580    0161 E0                  580         movx    a,@dptr
581    0162 FC                  581         mov     r4,a
582    0163 90s00r1A            582         mov     dptr,#_ser_puts_s_1_1
583    0166 74 01               583         mov     a,#0x01
584    0168 2A                  584         add     a,r2
585    0169 F0                  585         movx    @dptr,a
586                             586 ; Peephole 180   changed mov to clr
587    016A E4                  587         clr  a
588    016B 3B                  588         addc    a,r3
589    016C A3                  589         inc     dptr
590    016D F0                  590         movx    @dptr,a
591    016E A3                  591         inc     dptr
592    016F EC                  592         mov     a,r4
593    0170 F0                  593         movx    @dptr,a
594    0171 8A 82               594         mov     dpl,r2
595    0173 8B 83               595         mov     dph,r3
596    0175 8C F0               596         mov     b,r4
597    0177 12s00r00            597         lcall   __gptrget
598                             598 ; Peephole 105   removed redundant mov
599    017A FA                  599         mov  r2,a
600                             600 ; Peephole 110   removed ljmp by inverse jump logic
601    017B 60 14               601         jz  00106$
602    017D                     602 00111$:
603                             603 ;       ser_ir.c 114
604                             604 ; Peephole 132   changed ljmp to sjmp
605                             605 ; Peephole 199   optimized misc jump sequence
606    017D BA 0A 0A            606         cjne r2,#0x0a,00102$
607                             607 ; Peephole 201   removed redundant sjmp
608    0180                     608 00112$:
609    0180                     609 00113$:
610    0180 C0 02               610         push    ar2
611    0182 75 82 0D            611         mov     dpl,#0x0d
612    0185 12s00rBC            612         lcall   _ser_putc
613    0188 D0 02               613         pop     ar2
614    018A                     614 00102$:
615                             615 ;       ser_ir.c 115
616    018A 8A 82               616         mov     dpl,r2
617    018C 12s00rBC            617         lcall   _ser_putc
618                             618 ; Peephole 132   changed ljmp to sjmp
619    018F 80 C7               619         sjmp 00103$
620    0191                     620 00106$:
621                     0191    621         C$ser_ir.c$117$1$1 ==.
622                     0191    622         XG$ser_puts$0$0 ==.
623    0191 22                  623         ret
624                     0192    624         G$ser_gets$0$0 ==.
625                             625 ;       ser_ir.c 119
626                             626 ;       -----------------------------------------
627                             627 ;        function ser_gets
628                             628 ;       -----------------------------------------
629    0192                     629 _ser_gets:
630                             630 ;       ser_ir.c 130
631    0192 C0 F0               631         push    b
632    0194 C0 83               632         push    dph
633    0196 C0 82               633         push    dpl
634    0198 90s00r1E            634         mov     dptr,#_ser_gets_s_1_1
635    019B D0 E0               635         pop     acc
636    019D F0                  636         movx    @dptr,a
637    019E D0 E0               637         pop     acc
638    01A0 A3                  638         inc     dptr
639    01A1 F0                  639         movx    @dptr,a
640    01A2 D0 E0               640         pop     acc
641    01A4 A3                  641         inc     dptr
642    01A5 F0                  642         movx    @dptr,a
643                             643 ;       ser_ir.c 124
644    01A6 90s00r1D            644         mov     dptr,#_ser_gets_PARM_2
645    01A9 E0                  645         movx    a,@dptr
646    01AA FA                  646         mov     r2,a
647    01AB 90s00r1E            647         mov     dptr,#_ser_gets_s_1_1
648    01AE E0                  648         movx    a,@dptr
649    01AF FB                  649         mov     r3,a
650    01B0 A3                  650         inc     dptr
651    01B1 E0                  651         movx    a,@dptr
652    01B2 FC                  652         mov     r4,a
653    01B3 A3                  653         inc     dptr
654    01B4 E0                  654         movx    a,@dptr
655    01B5 FD                  655         mov     r5,a
656    01B6 7E 00               656         mov     r6,#0x00
657    01B8                     657 00105$:
658    01B8 8E 07               658         mov     ar7,r6
659    01BA C3                  659         clr     c
660    01BB EA                  660         mov     a,r2
661    01BC 9E                  661         subb    a,r6
662                             662 ; Peephole 132   changed ljmp to sjmp
663                             663 ; Peephole 160   removed sjmp by inverse jump logic
664    01BD 40 34               664         jc   00107$
665    01BF                     665 00113$:
666                             666 ;       ser_ir.c 125
667    01BF C0 02               667         push    ar2
668    01C1 C0 03               668         push    ar3
669    01C3 C0 04               669         push    ar4
670    01C5 C0 05               670         push    ar5
671    01C7 C0 06               671         push    ar6
672    01C9 C0 07               672         push    ar7
673    01CB 12s01r0D            673         lcall   _ser_getc
674    01CE A8 82               674         mov     r0,dpl
675    01D0 D0 07               675         pop     ar7
676    01D2 D0 06               676         pop     ar6
677    01D4 D0 05               677         pop     ar5
678    01D6 D0 04               678         pop     ar4
679    01D8 D0 03               679         pop     ar3
680    01DA D0 02               680         pop     ar2
681                             681 ;       ser_ir.c 126
682    01DC B8 0D 02            682         cjne    r0,#0x0d,00114$
683                             683 ; Peephole 132   changed ljmp to sjmp
684    01DF 80 D7               684         sjmp 00105$
685    01E1                     685 00114$:
686                             686 ;       ser_ir.c 127
687    01E1 0E                  687         inc     r6
688    01E2 EF                  688         mov     a,r7
689    01E3 2B                  689         add     a,r3
690    01E4 F5 82               690         mov     dpl,a
691                             691 ; Peephole 180   changed mov to clr
692    01E6 E4                  692         clr  a
693    01E7 3C                  693         addc    a,r4
694    01E8 F5 83               694         mov     dph,a
695    01EA 8D F0               695         mov     b,r5
696    01EC E8                  696         mov     a,r0
697    01ED 12s00r00            697         lcall   __gptrput
698                             698 ;       ser_ir.c 128
699                             699 ; Peephole 132   changed ljmp to sjmp
700                             700 ; Peephole 199   optimized misc jump sequence
701    01F0 B8 0A C5            701         cjne r0,#0x0a,00105$
702                             702 ; Peephole 201   removed redundant sjmp
703    01F3                     703 00115$:
704    01F3                     704 00116$:
705    01F3                     705 00107$:
706                             706 ;       ser_ir.c 130
707    01F3 90s00r1E            707         mov     dptr,#_ser_gets_s_1_1
708    01F6 E0                  708         movx    a,@dptr
709    01F7 FA                  709         mov     r2,a
710    01F8 A3                  710         inc     dptr
711    01F9 E0                  711         movx    a,@dptr
712    01FA FB                  712         mov     r3,a
713    01FB A3                  713         inc     dptr
714    01FC E0                  714         movx    a,@dptr
715    01FD FC                  715         mov     r4,a
716    01FE EE                  716         mov     a,r6
717    01FF 2A                  717         add     a,r2
718    0200 F5 82               718         mov     dpl,a
719                             719 ; Peephole 180   changed mov to clr
720    0202 E4                  720         clr  a
721    0203 3B                  721         addc    a,r3
722    0204 F5 83               722         mov     dph,a
723    0206 8C F0               723         mov     b,r4
724                             724 ; Peephole 180   changed mov to clr
725    0208 E4                  725         clr  a
726    0209 12s00r00            726         lcall   __gptrput
727    020C                     727 00108$:
728                     020C    728         C$ser_ir.c$131$1$1 ==.
729                     020C    729         XG$ser_gets$0$0 ==.
730    020C 22                  730         ret
731                     020D    731         G$ser_can_xmt$0$0 ==.
732                             732 ;       ser_ir.c 133
733                             733 ;       -----------------------------------------
734                             734 ;        function ser_can_xmt
735                             735 ;       -----------------------------------------
736    020D                     736 _ser_can_xmt:
737                             737 ;       ser_ir.c 135
738    020D 90s00r15            738         mov     dptr,#_xcnt
739    0210 E0                  739         movx    a,@dptr
740    0211 FA                  740         mov     r2,a
741    0212 C3                  741         clr     c
742    0213 74 0A               742         mov     a,#0x0a
743    0215 9A                  743         subb    a,r2
744    0216 FA                  744         mov     r2,a
745    0217 8A 82               745         mov     dpl,r2
746    0219                     746 00101$:
747                     0219    747         C$ser_ir.c$136$1$1 ==.
748                     0219    748         XG$ser_can_xmt$0$0 ==.
749    0219 22                  749         ret
750                     021A    750         G$ser_can_rcv$0$0 ==.
751                             751 ;       ser_ir.c 138
752                             752 ;       -----------------------------------------
753                             753 ;        function ser_can_rcv
754                             754 ;       -----------------------------------------
755    021A                     755 _ser_can_rcv:
756                             756 ;       ser_ir.c 140
757    021A 90s00r14            757         mov     dptr,#_rcnt
758    021D E0                  758         movx    a,@dptr
759    021E FA                  759         mov     r2,a
760    021F 8A 82               760         mov     dpl,r2
761    0221                     761 00101$:
762                     0221    762         C$ser_ir.c$141$1$1 ==.
763                     0221    763         XG$ser_can_rcv$0$0 ==.
764    0221 22                  764         ret
765                             765         .area   CSEG    (CODE)