Removed silly lib files
[fw/sdcc] / device / lib / _ser.lst
1                               1 ;--------------------------------------------------------
2                               2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3                               3 ; Version 2.1.9Ga Sun Jan 16 17:31:32 2000
4                               4 
5                               5 ;--------------------------------------------------------
6                               6         .module _ser
7                               7 ;--------------------------------------------------------
8                               8 ; publics variables in this module
9                               9 ;--------------------------------------------------------
10                              10         .globl _ser_charAvail
11                              11         .globl _ser_printString
12                              12         .globl _ser_getc
13                              13         .globl _ser_putc
14                              14         .globl _ser_interrupt_handler
15                              15         .globl _ser_init
16                              16         .globl _ser_rxBuffer
17                              17         .globl _ser_txBuffer
18                              18         .globl _ser_rxIndexOut
19                              19         .globl _ser_rxIndexIn
20                              20         .globl _ser_txIndexOut
21                              21         .globl _ser_txIndexIn
22                              22 ;--------------------------------------------------------
23                              23 ; special function registers
24                              24 ;--------------------------------------------------------
25                     0080     25 G$P0$0$0 == 0x0080
26                     0080     26 _P0     =       0x0080
27                     0090     27 G$P1$0$0 == 0x0090
28                     0090     28 _P1     =       0x0090
29                     00A0     29 G$P2$0$0 == 0x00a0
30                     00A0     30 _P2     =       0x00a0
31                     00B0     31 G$P3$0$0 == 0x00b0
32                     00B0     32 _P3     =       0x00b0
33                     00D0     33 G$PSW$0$0 == 0x00d0
34                     00D0     34 _PSW    =       0x00d0
35                     00E0     35 G$ACC$0$0 == 0x00e0
36                     00E0     36 _ACC    =       0x00e0
37                     00F0     37 G$B$0$0 == 0x00f0
38                     00F0     38 _B      =       0x00f0
39                     0081     39 G$SP$0$0 == 0x0081
40                     0081     40 _SP     =       0x0081
41                     0082     41 G$DPL$0$0 == 0x0082
42                     0082     42 _DPL    =       0x0082
43                     0083     43 G$DPH$0$0 == 0x0083
44                     0083     44 _DPH    =       0x0083
45                     0087     45 G$PCON$0$0 == 0x0087
46                     0087     46 _PCON   =       0x0087
47                     0088     47 G$TCON$0$0 == 0x0088
48                     0088     48 _TCON   =       0x0088
49                     0089     49 G$TMOD$0$0 == 0x0089
50                     0089     50 _TMOD   =       0x0089
51                     008A     51 G$TL0$0$0 == 0x008a
52                     008A     52 _TL0    =       0x008a
53                     008B     53 G$TL1$0$0 == 0x008b
54                     008B     54 _TL1    =       0x008b
55                     008C     55 G$TH0$0$0 == 0x008c
56                     008C     56 _TH0    =       0x008c
57                     008D     57 G$TH1$0$0 == 0x008d
58                     008D     58 _TH1    =       0x008d
59                     008E     59 G$AUXR$0$0 == 0x008e
60                     008E     60 _AUXR   =       0x008e
61                     00A8     61 G$IE$0$0 == 0x00a8
62                     00A8     62 _IE     =       0x00a8
63                     00B8     63 G$IP$0$0 == 0x00b8
64                     00B8     64 _IP     =       0x00b8
65                     0098     65 G$SCON$0$0 == 0x0098
66                     0098     66 _SCON   =       0x0098
67                     0099     67 G$SBUF$0$0 == 0x0099
68                     0099     68 _SBUF   =       0x0099
69                     00C8     69 G$T2CON$0$0 == 0x00c8
70                     00C8     70 _T2CON  =       0x00c8
71                     00CB     71 G$RCAP2H$0$0 == 0x00cb
72                     00CB     72 _RCAP2H =       0x00cb
73                     00CA     73 G$RCAP2L$0$0 == 0x00ca
74                     00CA     74 _RCAP2L =       0x00ca
75                              75 ;--------------------------------------------------------
76                              76 ; special function bits 
77                              77 ;--------------------------------------------------------
78                     00D7     78 G$CY$0$0 == 0x00d7
79                     00D7     79 _CY     =       0x00d7
80                     00D6     80 G$AC$0$0 == 0x00d6
81                     00D6     81 _AC     =       0x00d6
82                     00D5     82 G$F0$0$0 == 0x00d5
83                     00D5     83 _F0     =       0x00d5
84                     00D4     84 G$RS1$0$0 == 0x00d4
85                     00D4     85 _RS1    =       0x00d4
86                     00D3     86 G$RS0$0$0 == 0x00d3
87                     00D3     87 _RS0    =       0x00d3
88                     00D2     88 G$OV$0$0 == 0x00d2
89                     00D2     89 _OV     =       0x00d2
90                     00D0     90 G$P$0$0 == 0x00d0
91                     00D0     91 _P      =       0x00d0
92                     008F     92 G$TF1$0$0 == 0x008f
93                     008F     93 _TF1    =       0x008f
94                     008E     94 G$TR1$0$0 == 0x008e
95                     008E     95 _TR1    =       0x008e
96                     008D     96 G$TF0$0$0 == 0x008d
97                     008D     97 _TF0    =       0x008d
98                     008C     98 G$TR0$0$0 == 0x008c
99                     008C     99 _TR0    =       0x008c
100                     008B    100 G$IE1$0$0 == 0x008b
101                     008B    101 _IE1    =       0x008b
102                     008A    102 G$IT1$0$0 == 0x008a
103                     008A    103 _IT1    =       0x008a
104                     0089    104 G$IE0$0$0 == 0x0089
105                     0089    105 _IE0    =       0x0089
106                     0088    106 G$IT0$0$0 == 0x0088
107                     0088    107 _IT0    =       0x0088
108                     00AF    108 G$EA$0$0 == 0x00af
109                     00AF    109 _EA     =       0x00af
110                     00AC    110 G$ES$0$0 == 0x00ac
111                     00AC    111 _ES     =       0x00ac
112                     00AB    112 G$ET1$0$0 == 0x00ab
113                     00AB    113 _ET1    =       0x00ab
114                     00AA    114 G$EX1$0$0 == 0x00aa
115                     00AA    115 _EX1    =       0x00aa
116                     00A9    116 G$ET0$0$0 == 0x00a9
117                     00A9    117 _ET0    =       0x00a9
118                     00A8    118 G$EX0$0$0 == 0x00a8
119                     00A8    119 _EX0    =       0x00a8
120                     00BC    120 G$PS$0$0 == 0x00bc
121                     00BC    121 _PS     =       0x00bc
122                     00BB    122 G$PT1$0$0 == 0x00bb
123                     00BB    123 _PT1    =       0x00bb
124                     00BA    124 G$PX1$0$0 == 0x00ba
125                     00BA    125 _PX1    =       0x00ba
126                     00B9    126 G$PT0$0$0 == 0x00b9
127                     00B9    127 _PT0    =       0x00b9
128                     00B8    128 G$PX0$0$0 == 0x00b8
129                     00B8    129 _PX0    =       0x00b8
130                     00B7    130 G$RD$0$0 == 0x00b7
131                     00B7    131 _RD     =       0x00b7
132                     00B6    132 G$WR$0$0 == 0x00b6
133                     00B6    133 _WR     =       0x00b6
134                     00B5    134 G$T1$0$0 == 0x00b5
135                     00B5    135 _T1     =       0x00b5
136                     00B4    136 G$T0$0$0 == 0x00b4
137                     00B4    137 _T0     =       0x00b4
138                     00B3    138 G$INT1$0$0 == 0x00b3
139                     00B3    139 _INT1   =       0x00b3
140                     00B2    140 G$INT0$0$0 == 0x00b2
141                     00B2    141 _INT0   =       0x00b2
142                     00B1    142 G$TXD$0$0 == 0x00b1
143                     00B1    143 _TXD    =       0x00b1
144                     00B0    144 G$RXD$0$0 == 0x00b0
145                     00B0    145 _RXD    =       0x00b0
146                     0090    146 G$P1_0$0$0 == 0x0090
147                     0090    147 _P1_0   =       0x0090
148                     0091    148 G$P1_1$0$0 == 0x0091
149                     0091    149 _P1_1   =       0x0091
150                     0092    150 G$P1_2$0$0 == 0x0092
151                     0092    151 _P1_2   =       0x0092
152                     0093    152 G$P1_3$0$0 == 0x0093
153                     0093    153 _P1_3   =       0x0093
154                     0094    154 G$P1_4$0$0 == 0x0094
155                     0094    155 _P1_4   =       0x0094
156                     0095    156 G$P1_5$0$0 == 0x0095
157                     0095    157 _P1_5   =       0x0095
158                     0096    158 G$P1_6$0$0 == 0x0096
159                     0096    159 _P1_6   =       0x0096
160                     0097    160 G$P1_7$0$0 == 0x0097
161                     0097    161 _P1_7   =       0x0097
162                     009F    162 G$SM0$0$0 == 0x009f
163                     009F    163 _SM0    =       0x009f
164                     009E    164 G$SM1$0$0 == 0x009e
165                     009E    165 _SM1    =       0x009e
166                     009D    166 G$SM2$0$0 == 0x009d
167                     009D    167 _SM2    =       0x009d
168                     009C    168 G$REN$0$0 == 0x009c
169                     009C    169 _REN    =       0x009c
170                     009B    170 G$TB8$0$0 == 0x009b
171                     009B    171 _TB8    =       0x009b
172                     009A    172 G$RB8$0$0 == 0x009a
173                     009A    173 _RB8    =       0x009a
174                     0099    174 G$TI$0$0 == 0x0099
175                     0099    175 _TI     =       0x0099
176                     0098    176 G$RI$0$0 == 0x0098
177                     0098    177 _RI     =       0x0098
178                     00C8    178 G$T2CON_0$0$0 == 0x00c8
179                     00C8    179 _T2CON_0        =       0x00c8
180                     00C9    180 G$T2CON_1$0$0 == 0x00c9
181                     00C9    181 _T2CON_1        =       0x00c9
182                     00CA    182 G$T2CON_2$0$0 == 0x00ca
183                     00CA    183 _T2CON_2        =       0x00ca
184                     00CB    184 G$T2CON_3$0$0 == 0x00cb
185                     00CB    185 _T2CON_3        =       0x00cb
186                     00CC    186 G$T2CON_4$0$0 == 0x00cc
187                     00CC    187 _T2CON_4        =       0x00cc
188                     00CD    188 G$T2CON_5$0$0 == 0x00cd
189                     00CD    189 _T2CON_5        =       0x00cd
190                     00CE    190 G$T2CON_6$0$0 == 0x00ce
191                     00CE    191 _T2CON_6        =       0x00ce
192                     00CF    192 G$T2CON_7$0$0 == 0x00cf
193                     00CF    193 _T2CON_7        =       0x00cf
194                             194 ;--------------------------------------------------------
195                             195 ; internal ram data
196                             196 ;--------------------------------------------------------
197                             197         .area   DSEG    (DATA)
198                             198 ;--------------------------------------------------------
199                             199 ; overlayable items in internal ram 
200                             200 ;--------------------------------------------------------
201                             201         .area   OSEG    (OVR,DATA)
202                             202 ;--------------------------------------------------------
203                             203 ; indirectly addressable internal ram data
204                             204 ;--------------------------------------------------------
205                             205         .area   ISEG    (DATA)
206                             206 ;--------------------------------------------------------
207                             207 ; bit data
208                             208 ;--------------------------------------------------------
209                             209         .area   BSEG    (BIT)
210                     0000    210 F_ser$ser_txBusy$0$0==.
211    0000                     211 _ser_txBusy:
212    0000                     212         .ds     0x0001
213                             213 ;--------------------------------------------------------
214                             214 ; external ram data
215                             215 ;--------------------------------------------------------
216                             216         .area   XSEG    (XDATA)
217                     0000    217 G$ser_txIndexIn$0$0==.
218    0000                     218 _ser_txIndexIn:
219    0000                     219         .ds     0x0001
220                     0001    220 G$ser_txIndexOut$0$0==.
221    0001                     221 _ser_txIndexOut:
222    0001                     222         .ds     0x0001
223                     0002    223 G$ser_rxIndexIn$0$0==.
224    0002                     224 _ser_rxIndexIn:
225    0002                     225         .ds     0x0001
226                     0003    226 G$ser_rxIndexOut$0$0==.
227    0003                     227 _ser_rxIndexOut:
228    0003                     228         .ds     0x0001
229                     0004    229 G$ser_txBuffer$0$0==.
230    0004                     230 _ser_txBuffer:
231    0004                     231         .ds     0x0100
232                     0104    232 G$ser_rxBuffer$0$0==.
233    0104                     233 _ser_rxBuffer:
234    0104                     234         .ds     0x0100
235    0204                     235 _ser_putc_c_1_1:
236    0204                     236         .ds     0x0001
237    0205                     237 _ser_getc_tmp_1_1:
238    0205                     238         .ds     0x0001
239    0206                     239 _ser_printString_String_1_1:
240    0206                     240         .ds     0x0003
241    0209                     241 _ser_charAvail_ret_1_1:
242    0209                     242         .ds     0x0001
243                             243 ;--------------------------------------------------------
244                             244 ; global & static initialisations
245                             245 ;--------------------------------------------------------
246                             246         .area GSINIT (CODE)
247                             247 ;--------------------------------------------------------
248                             248 ; code
249                             249 ;--------------------------------------------------------
250                             250         .area CSEG (CODE)
251                     0000    251         G$ser_init$0$0 ==.
252                             252 ;       _ser.c 49
253                             253 ;       -----------------------------------------
254                             254 ;        function ser_init
255                             255 ;       -----------------------------------------
256    0000                     256 _ser_init:
257                     0002    257         ar2 = 0x02
258                     0003    258         ar3 = 0x03
259                     0004    259         ar4 = 0x04
260                     0005    260         ar5 = 0x05
261                     0006    261         ar6 = 0x06
262                     0007    262         ar7 = 0x07
263                     0000    263         ar0 = 0x00
264                     0001    264         ar1 = 0x01
265                             265 ;       _ser.c 51
266    0000 C2 AC               266         clr     _ES
267                             267 ;       _ser.c 53
268    0002 C2*00               268         clr     _ser_txBusy
269                             269 ;       _ser.c 55
270    0004 90s00r00            270         mov     dptr,#_ser_txIndexIn
271                             271 ; Peephole 180   changed mov to clr
272    0007 E4                  272         clr  a
273    0008 F0                  273         movx    @dptr,a
274                             274 ;       _ser.c 56
275    0009 90s00r01            275         mov     dptr,#_ser_txIndexOut
276                             276 ; Peephole 180   changed mov to clr
277    000C E4                  277         clr  a
278    000D F0                  278         movx    @dptr,a
279                             279 ;       _ser.c 57
280    000E 90s00r02            280         mov     dptr,#_ser_rxIndexIn
281                             281 ; Peephole 180   changed mov to clr
282    0011 E4                  282         clr  a
283    0012 F0                  283         movx    @dptr,a
284                             284 ;       _ser.c 58
285    0013 90s00r03            285         mov     dptr,#_ser_rxIndexOut
286                             286 ; Peephole 180   changed mov to clr
287    0016 E4                  287         clr  a
288    0017 F0                  288         movx    @dptr,a
289                             289 ;       _ser.c 60
290    0018 75 C8 30            290         mov     _T2CON,#0x30
291                             291 ;       _ser.c 63
292    001B 75 CB FF            292         mov     _RCAP2H,#0xff
293                             293 ;       _ser.c 64
294    001E 75 CA DD            294         mov     _RCAP2L,#0xdd
295                             295 ;       _ser.c 67
296    0021 75 C8 34            296         mov     _T2CON,#0x34
297                             297 ;       _ser.c 69
298    0024 75 98 50            298         mov     _SCON,#0x50
299                             299 ;       _ser.c 71
300                             300 ; Peephole 111   removed ljmp by inverse jump logic
301    0027 30 99 02            301         jnb  _TI,00102$
302    002A                     302 00109$:
303                             303 ;       _ser.c 72
304    002A C2 99               304         clr     _TI
305    002C                     305 00102$:
306                             306 ;       _ser.c 74
307                             307 ; Peephole 111   removed ljmp by inverse jump logic
308    002C 30 98 02            308         jnb  _RI,00104$
309    002F                     309 00110$:
310                             310 ;       _ser.c 75
311    002F C2 98               311         clr     _RI
312    0031                     312 00104$:
313                             313 ;       _ser.c 78
314    0031 D2 AC               314         setb    _ES
315    0033                     315 00105$:
316                     0033    316         C$_ser.c$79$1$1 ==.
317                     0033    317         XG$ser_init$0$0 ==.
318    0033 22                  318         ret
319                     0034    319         G$ser_interrupt_handler$0$0 ==.
320                             320 ;       _ser.c 82
321                             321 ;       -----------------------------------------
322                             322 ;        function ser_interrupt_handler
323                             323 ;       -----------------------------------------
324    0034                     324 _ser_interrupt_handler:
325                     000A    325         ar2 = 0x0a
326                     000B    326         ar3 = 0x0b
327                     000C    327         ar4 = 0x0c
328                     000D    328         ar5 = 0x0d
329                     000E    329         ar6 = 0x0e
330                     000F    330         ar7 = 0x0f
331                     0008    331         ar0 = 0x08
332                     0009    332         ar1 = 0x09
333    0034 C0 E0               333         push    acc
334    0036 C0 F0               334         push    b
335    0038 C0 82               335         push    dpl
336    003A C0 83               336         push    dph
337    003C C0 D0               337         push    psw
338    003E 75 D0 08            338         mov     psw,#0x08
339                             339 ;       _ser.c 84
340    0041 C2 AC               340         clr     _ES
341                             341 ;       _ser.c 86
342                             342 ; Peephole 111   removed ljmp by inverse jump logic
343    0043 30 99 27            343         jnb  _TI,00105$
344    0046                     344 00113$:
345                             345 ;       _ser.c 87
346    0046 C2 99               346         clr     _TI
347                             347 ;       _ser.c 88
348    0048 90s00r01            348         mov     dptr,#_ser_txIndexOut
349    004B E0                  349         movx    a,@dptr
350    004C FA                  350         mov     r2,a
351    004D 90s00r00            351         mov     dptr,#_ser_txIndexIn
352    0050 E0                  352         movx    a,@dptr
353                             353 ; Peephole 105   removed redundant mov
354    0051 FB                  354         mov  r3,a
355                             355 ; Peephole 132   changed ljmp to sjmp
356                             356 ; Peephole 199   optimized misc jump sequence
357    0052 B5 0A 04            357         cjne a,ar2,00102$
358                             358 ; Peephole 201   removed redundant sjmp
359    0055                     359 00114$:
360    0055                     360 00115$:
361                             361 ;       _ser.c 89
362    0055 C2*00               362         clr     _ser_txBusy
363                             363 ; Peephole 132   changed ljmp to sjmp
364    0057 80 14               364         sjmp 00105$
365    0059                     365 00102$:
366                             366 ;       _ser.c 92
367    0059 90s00r01            367         mov     dptr,#_ser_txIndexOut
368    005C 74 01               368         mov     a,#0x01
369    005E 2A                  369         add     a,r2
370    005F F0                  370         movx    @dptr,a
371    0060 EA                  371         mov     a,r2
372    0061 24r04               372         add     a,#_ser_txBuffer
373    0063 F5 82               373         mov     dpl,a
374                             374 ; Peephole 180   changed mov to clr
375    0065 E4                  375         clr  a
376    0066 34s00               376         addc    a,#(_ser_txBuffer >> 8)
377    0068 F5 83               377         mov     dph,a
378    006A E0                  378         movx    a,@dptr
379    006B F5 99               379         mov     _SBUF,a
380    006D                     380 00105$:
381                             381 ;       _ser.c 96
382                             382 ; Peephole 111   removed ljmp by inverse jump logic
383    006D 30 98 1B            383         jnb  _RI,00107$
384    0070                     384 00116$:
385                             385 ;       _ser.c 97
386    0070 C2 98               386         clr     _RI
387                             387 ;       _ser.c 98
388    0072 90s00r02            388         mov     dptr,#_ser_rxIndexIn
389    0075 E0                  389         movx    a,@dptr
390    0076 FA                  390         mov     r2,a
391    0077 90s00r02            391         mov     dptr,#_ser_rxIndexIn
392    007A 74 01               392         mov     a,#0x01
393    007C 2A                  393         add     a,r2
394    007D F0                  394         movx    @dptr,a
395    007E EA                  395         mov     a,r2
396    007F 24r04               396         add     a,#_ser_rxBuffer
397    0081 F5 82               397         mov     dpl,a
398                             398 ; Peephole 180   changed mov to clr
399    0083 E4                  399         clr  a
400    0084 34s01               400         addc    a,#(_ser_rxBuffer >> 8)
401    0086 F5 83               401         mov     dph,a
402    0088 E5 99               402         mov     a,_SBUF
403    008A F0                  403         movx    @dptr,a
404    008B                     404 00107$:
405                             405 ;       _ser.c 101
406    008B D2 AC               406         setb    _ES
407    008D                     407 00108$:
408    008D D0 D0               408         pop     psw
409    008F D0 83               409         pop     dph
410    0091 D0 82               410         pop     dpl
411    0093 D0 F0               411         pop     b
412    0095 D0 E0               412         pop     acc
413                     0097    413         C$_ser.c$102$1$1 ==.
414                     0097    414         XG$ser_interrupt_handler$0$0 ==.
415    0097 32                  415         reti
416                     0098    416         G$ser_putc$0$0 ==.
417                             417 ;       _ser.c 105
418                             418 ;       -----------------------------------------
419                             419 ;        function ser_putc
420                             420 ;       -----------------------------------------
421    0098                     421 _ser_putc:
422                     0002    422         ar2 = 0x02
423                     0003    423         ar3 = 0x03
424                     0004    424         ar4 = 0x04
425                     0005    425         ar5 = 0x05
426                     0006    426         ar6 = 0x06
427                     0007    427         ar7 = 0x07
428                     0000    428         ar0 = 0x00
429                     0001    429         ar1 = 0x01
430                             430 ;       _ser.c 117
431    0098 C0 82               431         push    dpl
432    009A 90s02r04            432         mov     dptr,#_ser_putc_c_1_1
433    009D D0 E0               433         pop     acc
434    009F F0                  434         movx    @dptr,a
435                             435 ;       _ser.c 107
436    00A0 C2 AC               436         clr     _ES
437                             437 ;       _ser.c 109
438                             438 ; Peephole 111   removed ljmp by inverse jump logic
439    00A2 30*00 20            439         jnb  _ser_txBusy,00102$
440    00A5                     440 00107$:
441                             441 ;       _ser.c 110
442    00A5 90s00r00            442         mov     dptr,#_ser_txIndexIn
443    00A8 E0                  443         movx    a,@dptr
444    00A9 FA                  444         mov     r2,a
445    00AA 90s00r00            445         mov     dptr,#_ser_txIndexIn
446    00AD 74 01               446         mov     a,#0x01
447    00AF 2A                  447         add     a,r2
448    00B0 F0                  448         movx    @dptr,a
449    00B1 EA                  449         mov     a,r2
450    00B2 24r04               450         add     a,#_ser_txBuffer
451    00B4 FA                  451         mov     r2,a
452                             452 ; Peephole 180   changed mov to clr
453    00B5 E4                  453         clr  a
454    00B6 34s00               454         addc    a,#(_ser_txBuffer >> 8)
455    00B8 FB                  455         mov     r3,a
456    00B9 90s02r04            456         mov     dptr,#_ser_putc_c_1_1
457    00BC E0                  457         movx    a,@dptr
458                             458 ; Peephole 136   removed redundant moves
459    00BD FC                  459         mov  r4,a
460    00BE 8A 82               460         mov  dpl,r2
461    00C0 8B 83               461         mov  dph,r3
462    00C2 F0                  462         movx    @dptr,a
463                             463 ; Peephole 132   changed ljmp to sjmp
464    00C3 80 08               464         sjmp 00103$
465    00C5                     465 00102$:
466                             466 ;       _ser.c 113
467    00C5 D2*00               467         setb    _ser_txBusy
468                             468 ;       _ser.c 114
469    00C7 90s02r04            469         mov     dptr,#_ser_putc_c_1_1
470    00CA E0                  470         movx    a,@dptr
471    00CB F5 99               471         mov     _SBUF,a
472    00CD                     472 00103$:
473                             473 ;       _ser.c 117
474    00CD D2 AC               474         setb    _ES
475    00CF                     475 00104$:
476                     00CF    476         C$_ser.c$118$1$1 ==.
477                     00CF    477         XG$ser_putc$0$0 ==.
478    00CF 22                  478         ret
479                     00D0    479         G$ser_getc$0$0 ==.
480                             480 ;       _ser.c 121
481                             481 ;       -----------------------------------------
482                             482 ;        function ser_getc
483                             483 ;       -----------------------------------------
484    00D0                     484 _ser_getc:
485                             485 ;       _ser.c 126
486    00D0 90s00r03            486         mov     dptr,#_ser_rxIndexOut
487    00D3 E0                  487         movx    a,@dptr
488    00D4 FA                  488         mov     r2,a
489    00D5 90s00r02            489         mov     dptr,#_ser_rxIndexIn
490    00D8 E0                  490         movx    a,@dptr
491                             491 ; Peephole 105   removed redundant mov
492    00D9 FB                  492         mov  r3,a
493    00DA B5 02 02            493         cjne    a,ar2,00107$
494                             494 ; Peephole 132   changed ljmp to sjmp
495    00DD 80 19               495         sjmp 00102$
496    00DF                     496 00107$:
497                             497 ;       _ser.c 127
498    00DF 90s00r03            498         mov     dptr,#_ser_rxIndexOut
499    00E2 74 01               499         mov     a,#0x01
500    00E4 2A                  500         add     a,r2
501    00E5 F0                  501         movx    @dptr,a
502    00E6 EA                  502         mov     a,r2
503    00E7 24r04               503         add     a,#_ser_rxBuffer
504    00E9 F5 82               504         mov     dpl,a
505                             505 ; Peephole 180   changed mov to clr
506    00EB E4                  506         clr  a
507    00EC 34s01               507         addc    a,#(_ser_rxBuffer >> 8)
508    00EE F5 83               508         mov     dph,a
509    00F0 E0                  509         movx    a,@dptr
510                             510 ; Peephole 100   removed redundant mov
511    00F1 FA                  511         mov  r2,a
512    00F2 90s02r05            512         mov  dptr,#_ser_getc_tmp_1_1
513    00F5 F0                  513         movx @dptr,a
514                             514 ; Peephole 132   changed ljmp to sjmp
515    00F6 80 05               515         sjmp 00103$
516    00F8                     516 00102$:
517                             517 ;       _ser.c 130
518    00F8 90s02r05            518         mov     dptr,#_ser_getc_tmp_1_1
519                             519 ; Peephole 180   changed mov to clr
520    00FB E4                  520         clr  a
521    00FC F0                  521         movx    @dptr,a
522    00FD                     522 00103$:
523                             523 ;       _ser.c 134
524    00FD 90s02r05            524         mov     dptr,#_ser_getc_tmp_1_1
525    0100 E0                  525         movx    a,@dptr
526    0101 FA                  526         mov     r2,a
527    0102 8A 82               527         mov     dpl,r2
528    0104                     528 00104$:
529                     0104    529         C$_ser.c$135$1$1 ==.
530                     0104    530         XG$ser_getc$0$0 ==.
531    0104 22                  531         ret
532                     0105    532         G$ser_printString$0$0 ==.
533                             533 ;       _ser.c 138
534                             534 ;       -----------------------------------------
535                             535 ;        function ser_printString
536                             536 ;       -----------------------------------------
537    0105                     537 _ser_printString:
538                             538 ;       _ser.c 0
539    0105 C0 F0               539         push    b
540    0107 C0 83               540         push    dph
541    0109 C0 82               541         push    dpl
542    010B 90s02r06            542         mov     dptr,#_ser_printString_String_1_1
543    010E D0 E0               543         pop     acc
544    0110 F0                  544         movx    @dptr,a
545    0111 D0 E0               545         pop     acc
546    0113 A3                  546         inc     dptr
547    0114 F0                  547         movx    @dptr,a
548    0115 D0 E0               548         pop     acc
549    0117 A3                  549         inc     dptr
550    0118 F0                  550         movx    @dptr,a
551                             551 ;       _ser.c 140
552    0119 90s02r06            552         mov     dptr,#_ser_printString_String_1_1
553    011C E0                  553         movx    a,@dptr
554    011D FA                  554         mov     r2,a
555    011E A3                  555         inc     dptr
556    011F E0                  556         movx    a,@dptr
557    0120 FB                  557         mov     r3,a
558    0121 A3                  558         inc     dptr
559    0122 E0                  559         movx    a,@dptr
560    0123 FC                  560         mov     r4,a
561    0124                     561 00101$:
562    0124 8A 82               562         mov     dpl,r2
563    0126 8B 83               563         mov     dph,r3
564    0128 8C F0               564         mov     b,r4
565    012A 12s00r00            565         lcall   __gptrget
566    012D FD                  566         mov     r5,a
567    012E 90s02r06            567         mov     dptr,#_ser_printString_String_1_1
568    0131 EA                  568         mov     a,r2
569    0132 F0                  569         movx    @dptr,a
570    0133 A3                  570         inc     dptr
571    0134 EB                  571         mov     a,r3
572    0135 F0                  572         movx    @dptr,a
573    0136 A3                  573         inc     dptr
574    0137 EC                  574         mov     a,r4
575    0138 F0                  575         movx    @dptr,a
576    0139 ED                  576         mov     a,r5
577                             577 ; Peephole 110   removed ljmp by inverse jump logic
578    013A 60 18               578         jz  00104$
579    013C                     579 00108$:
580                             580 ;       _ser.c 141
581    013C 0A                  581         inc     r2
582    013D BA 00 01            582         cjne    r2,#0x00,00109$
583    0140 0B                  583         inc     r3
584    0141                     584 00109$:
585    0141 C0 02               585         push    ar2
586    0143 C0 03               586         push    ar3
587    0145 C0 04               587         push    ar4
588    0147 8D 82               588         mov     dpl,r5
589    0149 12s00r98            589         lcall   _ser_putc
590    014C D0 04               590         pop     ar4
591    014E D0 03               591         pop     ar3
592    0150 D0 02               592         pop     ar2
593                             593 ; Peephole 132   changed ljmp to sjmp
594    0152 80 D0               594         sjmp 00101$
595    0154                     595 00104$:
596                     0154    596         C$_ser.c$143$1$1 ==.
597                     0154    597         XG$ser_printString$0$0 ==.
598    0154 22                  598         ret
599                     0155    599         G$ser_charAvail$0$0 ==.
600                             600 ;       _ser.c 146
601                             601 ;       -----------------------------------------
602                             602 ;        function ser_charAvail
603                             603 ;       -----------------------------------------
604    0155                     604 _ser_charAvail:
605                             605 ;       _ser.c 148
606    0155 90s02r09            606         mov     dptr,#_ser_charAvail_ret_1_1
607                             607 ; Peephole 180   changed mov to clr
608    0158 E4                  608         clr  a
609    0159 F0                  609         movx    @dptr,a
610                             610 ;       _ser.c 150
611    015A 90s00r03            611         mov     dptr,#_ser_rxIndexOut
612    015D E0                  612         movx    a,@dptr
613    015E FA                  613         mov     r2,a
614    015F 90s00r02            614         mov     dptr,#_ser_rxIndexIn
615    0162 E0                  615         movx    a,@dptr
616                             616 ; Peephole 105   removed redundant mov
617    0163 FB                  617         mov  r3,a
618    0164 B5 02 02            618         cjne    a,ar2,00106$
619                             619 ; Peephole 132   changed ljmp to sjmp
620    0167 80 06               620         sjmp 00102$
621    0169                     621 00106$:
622                             622 ;       _ser.c 151
623    0169 90s02r09            623         mov     dptr,#_ser_charAvail_ret_1_1
624    016C 74 01               624         mov     a,#0x01
625    016E F0                  625         movx    @dptr,a
626    016F                     626 00102$:
627                             627 ;       _ser.c 154
628    016F 90s02r09            628         mov     dptr,#_ser_charAvail_ret_1_1
629    0172 E0                  629         movx    a,@dptr
630    0173 FA                  630         mov     r2,a
631    0174 8A 82               631         mov     dpl,r2
632    0176                     632 00103$:
633                     0176    633         C$_ser.c$155$1$1 ==.
634                     0176    634         XG$ser_charAvail$0$0 ==.
635    0176 22                  635         ret
636                             636         .area   CSEG    (CODE)