Subversion Repositories Bart

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 mjames 1
                              1 ;--------------------------------------------------------
2
                              2 ; File Created by SDCC : FreeWare ANSI-C Compiler
3
                              3 ; Version 2.4.4 #831 (Sep  8 2004)
4
                              4 ; This file generated Sat Sep 18 08:25:03 2004
5
                              5 ;--------------------------------------------------------
6
                              6 	.module rt_serial
7
                              7 	.optsdcc -mmcs51 --model-large
8
                              8 	
9
                              9 ;--------------------------------------------------------
10
                             10 ; Public variables in this module
11
                             11 ;--------------------------------------------------------
12
                             12 	.globl _TF1
13
                             13 	.globl _TR1
14
                             14 	.globl _TF0
15
                             15 	.globl _TR0
16
                             16 	.globl _IE1
17
                             17 	.globl _IT1
18
                             18 	.globl _IE0
19
                             19 	.globl _IT0
20
                             20 	.globl _T2CON_7
21
                             21 	.globl _T2CON_6
22
                             22 	.globl _T2CON_5
23
                             23 	.globl _T2CON_4
24
                             24 	.globl _T2CON_3
25
                             25 	.globl _T2CON_2
26
                             26 	.globl _T2CON_1
27
                             27 	.globl _T2CON_0
28
                             28 	.globl _TF2
29
                             29 	.globl _EXF2
30
                             30 	.globl _RCLK
31
                             31 	.globl _TCLK
32
                             32 	.globl _EXEN2
33
                             33 	.globl _TR2
34
                             34 	.globl _C_T2
35
                             35 	.globl _CP_RL2
36
                             36 	.globl _SM0
37
                             37 	.globl _SM1
38
                             38 	.globl _SM2
39
                             39 	.globl _REN
40
                             40 	.globl _TB8
41
                             41 	.globl _RB8
42
                             42 	.globl _TI
43
                             43 	.globl _RI
44
                             44 	.globl _CY
45
                             45 	.globl _AC
46
                             46 	.globl _F0
47
                             47 	.globl _RS1
48
                             48 	.globl _RS0
49
                             49 	.globl _OV
50
                             50 	.globl _F1
51
                             51 	.globl _P
52
                             52 	.globl _P5_7
53
                             53 	.globl _P5_6
54
                             54 	.globl _P5_5
55
                             55 	.globl _P5_4
56
                             56 	.globl _P5_3
57
                             57 	.globl _P5_2
58
                             58 	.globl _P5_1
59
                             59 	.globl _P5_0
60
                             60 	.globl _P4_7
61
                             61 	.globl _P4_6
62
                             62 	.globl _P4_5
63
                             63 	.globl _P4_4
64
                             64 	.globl _P4_3
65
                             65 	.globl _P4_2
66
                             66 	.globl _P4_1
67
                             67 	.globl _P4_0
68
                             68 	.globl _RD
69
                             69 	.globl _WR
70
                             70 	.globl _T1
71
                             71 	.globl _T0
72
                             72 	.globl _INT1
73
                             73 	.globl _INT0
74
                             74 	.globl _TXD0
75
                             75 	.globl _TXD
76
                             76 	.globl _RXD0
77
                             77 	.globl _RXD
78
                             78 	.globl _P3_7
79
                             79 	.globl _P3_6
80
                             80 	.globl _P3_5
81
                             81 	.globl _P3_4
82
                             82 	.globl _P3_3
83
                             83 	.globl _P3_2
84
                             84 	.globl _P3_1
85
                             85 	.globl _P3_0
86
                             86 	.globl _P2_7
87
                             87 	.globl _P2_6
88
                             88 	.globl _P2_5
89
                             89 	.globl _P2_4
90
                             90 	.globl _P2_3
91
                             91 	.globl _P2_2
92
                             92 	.globl _P2_1
93
                             93 	.globl _P2_0
94
                             94 	.globl _P1_7
95
                             95 	.globl _P1_6
96
                             96 	.globl _P1_5
97
                             97 	.globl _P1_4
98
                             98 	.globl _P1_3
99
                             99 	.globl _P1_2
100
                            100 	.globl _P1_1
101
                            101 	.globl _P1_0
102
                            102 	.globl _P0_7
103
                            103 	.globl _P0_6
104
                            104 	.globl _P0_5
105
                            105 	.globl _P0_4
106
                            106 	.globl _P0_3
107
                            107 	.globl _P0_2
108
                            108 	.globl _P0_1
109
                            109 	.globl _P0_0
110
                            110 	.globl _PPC
111
                            111 	.globl _PT2
112
                            112 	.globl _PS
113
                            113 	.globl _PT1
114
                            114 	.globl _PX1
115
                            115 	.globl _PT0
116
                            116 	.globl _PX0
117
                            117 	.globl _EA
118
                            118 	.globl _EC
119
                            119 	.globl _ET2
120
                            120 	.globl _ES
121
                            121 	.globl _ET1
122
                            122 	.globl _EX1
123
                            123 	.globl _ET0
124
                            124 	.globl _EX0
125
                            125 	.globl _CF
126
                            126 	.globl _CR
127
                            127 	.globl _CCF4
128
                            128 	.globl _CCF3
129
                            129 	.globl _CCF2
130
                            130 	.globl _CCF1
131
                            131 	.globl _CCF0
132
                            132 	.globl _BREG_F7
133
                            133 	.globl _BREG_F6
134
                            134 	.globl _BREG_F5
135
                            135 	.globl _BREG_F4
136
                            136 	.globl _BREG_F3
137
                            137 	.globl _BREG_F2
138
                            138 	.globl _BREG_F1
139
                            139 	.globl _BREG_F0
140
                            140 	.globl _WDTRST
141
                            141 	.globl _WDTPRG
142
                            142 	.globl _TMOD
143
                            143 	.globl _TL2
144
                            144 	.globl _TL1
145
                            145 	.globl _TL0
146
                            146 	.globl _TH2
147
                            147 	.globl _TH1
148
                            148 	.globl _TH0
149
                            149 	.globl _TCON
150
                            150 	.globl _T2CON
151
                            151 	.globl _SP
152
                            152 	.globl _SCON
153
                            153 	.globl _SBUF0
154
                            154 	.globl _SBUF
155
                            155 	.globl _SADEN0
156
                            156 	.globl _RCAP2L
157
                            157 	.globl _RCAP2H
158
                            158 	.globl _PSW
159
                            159 	.globl _PCON
160
                            160 	.globl _P5
161
                            161 	.globl _P4
162
                            162 	.globl _P3
163
                            163 	.globl _P2
164
                            164 	.globl _P1
165
                            165 	.globl _P0
166
                            166 	.globl _IPH
167
                            167 	.globl _IP
168
                            168 	.globl _IE
169
                            169 	.globl _FCON
170
                            170 	.globl _EETIM
171
                            171 	.globl _EECON
172
                            172 	.globl _DP0L
173
                            173 	.globl _DPL
174
                            174 	.globl _DP0H
175
                            175 	.globl _DPH
176
                            176 	.globl _CMOD
177
                            177 	.globl _CL
178
                            178 	.globl _CKCON
179
                            179 	.globl _CH
180
                            180 	.globl _CCON
181
                            181 	.globl _CCAPM4
182
                            182 	.globl _CCAPM3
183
                            183 	.globl _CCAPM2
184
                            184 	.globl _CCAPM1
185
                            185 	.globl _CCAPM0
186
                            186 	.globl _CCAP4L
187
                            187 	.globl _CCAP3L
188
                            188 	.globl _CCAP2L
189
                            189 	.globl _CCAP1L
190
                            190 	.globl _CCAP0L
191
                            191 	.globl _CCAP4H
192
                            192 	.globl _CCAP3H
193
                            193 	.globl _CCAP2H
194
                            194 	.globl _CCAP1H
195
                            195 	.globl _CCAP0H
196
                            196 	.globl _AUXR1
197
                            197 	.globl _B
198
                            198 	.globl _AUXR
199
                            199 	.globl _ACC
200
                            200 	.globl _SIO1_break_PARM_2
201
                            201 	.globl _SIO2_BitCnt
202
                            202 	.globl _SIO2_RxCount
203
                            203 	.globl _SIO1_TxCount
204
                            204 	.globl _SIO1_TxBusy
205
                            205 	.globl _rt_serial_init
206
                            206 	.globl _SIOInterrupt
207
                            207 	.globl _T2Interrupt
208
                            208 	.globl _putchar
209
                            209 	.globl _getchar
210
                            210 	.globl _SIO2_getchar
211
                            211 	.globl _SIO1_pollchar
212
                            212 	.globl _SIO2_pollchar
213
                            213 	.globl _SIO1_flush
214
                            214 	.globl _SIO2_flush
215
                            215 	.globl _SIO1_break
216
                            216 	.globl _SendStringCode
217
                            217 	.globl _SendStringXdata
218
                            218 	.globl _SendHex
219
                            219 	.globl _SIOTakeSemaphore
220
                            220 	.globl _SIOPutSemaphore
221
                            221 	.globl _SIOSetSemaphore
222
                            222 ;--------------------------------------------------------
223
                            223 ; special function registers
224
                            224 ;--------------------------------------------------------
225
                            225 	.area RSEG    (DATA)
226
                    00E0    226 G$ACC$0$0 == 0x00e0
227
                    00E0    227 _ACC	=	0x00e0
228
                    008E    228 G$AUXR$0$0 == 0x008e
229
                    008E    229 _AUXR	=	0x008e
230
                    00F0    230 G$B$0$0 == 0x00f0
231
                    00F0    231 _B	=	0x00f0
232
                    00A2    232 G$AUXR1$0$0 == 0x00a2
233
                    00A2    233 _AUXR1	=	0x00a2
234
                    00FA    234 G$CCAP0H$0$0 == 0x00fa
235
                    00FA    235 _CCAP0H	=	0x00fa
236
                    00FB    236 G$CCAP1H$0$0 == 0x00fb
237
                    00FB    237 _CCAP1H	=	0x00fb
238
                    00FC    238 G$CCAP2H$0$0 == 0x00fc
239
                    00FC    239 _CCAP2H	=	0x00fc
240
                    00FD    240 G$CCAP3H$0$0 == 0x00fd
241
                    00FD    241 _CCAP3H	=	0x00fd
242
                    00FE    242 G$CCAP4H$0$0 == 0x00fe
243
                    00FE    243 _CCAP4H	=	0x00fe
244
                    00EA    244 G$CCAP0L$0$0 == 0x00ea
245
                    00EA    245 _CCAP0L	=	0x00ea
246
                    00EB    246 G$CCAP1L$0$0 == 0x00eb
247
                    00EB    247 _CCAP1L	=	0x00eb
248
                    00EC    248 G$CCAP2L$0$0 == 0x00ec
249
                    00EC    249 _CCAP2L	=	0x00ec
250
                    00ED    250 G$CCAP3L$0$0 == 0x00ed
251
                    00ED    251 _CCAP3L	=	0x00ed
252
                    00EE    252 G$CCAP4L$0$0 == 0x00ee
253
                    00EE    253 _CCAP4L	=	0x00ee
254
                    00DA    254 G$CCAPM0$0$0 == 0x00da
255
                    00DA    255 _CCAPM0	=	0x00da
256
                    00DB    256 G$CCAPM1$0$0 == 0x00db
257
                    00DB    257 _CCAPM1	=	0x00db
258
                    00DC    258 G$CCAPM2$0$0 == 0x00dc
259
                    00DC    259 _CCAPM2	=	0x00dc
260
                    00DD    260 G$CCAPM3$0$0 == 0x00dd
261
                    00DD    261 _CCAPM3	=	0x00dd
262
                    00DE    262 G$CCAPM4$0$0 == 0x00de
263
                    00DE    263 _CCAPM4	=	0x00de
264
                    00D8    264 G$CCON$0$0 == 0x00d8
265
                    00D8    265 _CCON	=	0x00d8
266
                    00F9    266 G$CH$0$0 == 0x00f9
267
                    00F9    267 _CH	=	0x00f9
268
                    008F    268 G$CKCON$0$0 == 0x008f
269
                    008F    269 _CKCON	=	0x008f
270
                    00E9    270 G$CL$0$0 == 0x00e9
271
                    00E9    271 _CL	=	0x00e9
272
                    00D9    272 G$CMOD$0$0 == 0x00d9
273
                    00D9    273 _CMOD	=	0x00d9
274
                    0083    274 G$DPH$0$0 == 0x0083
275
                    0083    275 _DPH	=	0x0083
276
                    0083    276 G$DP0H$0$0 == 0x0083
277
                    0083    277 _DP0H	=	0x0083
278
                    0082    278 G$DPL$0$0 == 0x0082
279
                    0082    279 _DPL	=	0x0082
280
                    0082    280 G$DP0L$0$0 == 0x0082
281
                    0082    281 _DP0L	=	0x0082
282
                    00D2    282 G$EECON$0$0 == 0x00d2
283
                    00D2    283 _EECON	=	0x00d2
284
                    00D3    284 G$EETIM$0$0 == 0x00d3
285
                    00D3    285 _EETIM	=	0x00d3
286
                    00D1    286 G$FCON$0$0 == 0x00d1
287
                    00D1    287 _FCON	=	0x00d1
288
                    00A8    288 G$IE$0$0 == 0x00a8
289
                    00A8    289 _IE	=	0x00a8
290
                    00B8    290 G$IP$0$0 == 0x00b8
291
                    00B8    291 _IP	=	0x00b8
292
                    00B7    292 G$IPH$0$0 == 0x00b7
293
                    00B7    293 _IPH	=	0x00b7
294
                    0080    294 G$P0$0$0 == 0x0080
295
                    0080    295 _P0	=	0x0080
296
                    0090    296 G$P1$0$0 == 0x0090
297
                    0090    297 _P1	=	0x0090
298
                    00A0    298 G$P2$0$0 == 0x00a0
299
                    00A0    299 _P2	=	0x00a0
300
                    00B0    300 G$P3$0$0 == 0x00b0
301
                    00B0    301 _P3	=	0x00b0
302
                    00C0    302 G$P4$0$0 == 0x00c0
303
                    00C0    303 _P4	=	0x00c0
304
                    00E8    304 G$P5$0$0 == 0x00e8
305
                    00E8    305 _P5	=	0x00e8
306
                    0087    306 G$PCON$0$0 == 0x0087
307
                    0087    307 _PCON	=	0x0087
308
                    00D0    308 G$PSW$0$0 == 0x00d0
309
                    00D0    309 _PSW	=	0x00d0
310
                    00CB    310 G$RCAP2H$0$0 == 0x00cb
311
                    00CB    311 _RCAP2H	=	0x00cb
312
                    00CA    312 G$RCAP2L$0$0 == 0x00ca
313
                    00CA    313 _RCAP2L	=	0x00ca
314
                    00B9    314 G$SADEN0$0$0 == 0x00b9
315
                    00B9    315 _SADEN0	=	0x00b9
316
                    0099    316 G$SBUF$0$0 == 0x0099
317
                    0099    317 _SBUF	=	0x0099
318
                    0099    318 G$SBUF0$0$0 == 0x0099
319
                    0099    319 _SBUF0	=	0x0099
320
                    0098    320 G$SCON$0$0 == 0x0098
321
                    0098    321 _SCON	=	0x0098
322
                    0081    322 G$SP$0$0 == 0x0081
323
                    0081    323 _SP	=	0x0081
324
                    00C8    324 G$T2CON$0$0 == 0x00c8
325
                    00C8    325 _T2CON	=	0x00c8
326
                    0088    326 G$TCON$0$0 == 0x0088
327
                    0088    327 _TCON	=	0x0088
328
                    008C    328 G$TH0$0$0 == 0x008c
329
                    008C    329 _TH0	=	0x008c
330
                    008D    330 G$TH1$0$0 == 0x008d
331
                    008D    331 _TH1	=	0x008d
332
                    00CD    332 G$TH2$0$0 == 0x00cd
333
                    00CD    333 _TH2	=	0x00cd
334
                    008A    334 G$TL0$0$0 == 0x008a
335
                    008A    335 _TL0	=	0x008a
336
                    008B    336 G$TL1$0$0 == 0x008b
337
                    008B    337 _TL1	=	0x008b
338
                    00CC    338 G$TL2$0$0 == 0x00cc
339
                    00CC    339 _TL2	=	0x00cc
340
                    0089    340 G$TMOD$0$0 == 0x0089
341
                    0089    341 _TMOD	=	0x0089
342
                    00A7    342 G$WDTPRG$0$0 == 0x00a7
343
                    00A7    343 _WDTPRG	=	0x00a7
344
                    00A6    344 G$WDTRST$0$0 == 0x00a6
345
                    00A6    345 _WDTRST	=	0x00a6
346
                            346 ;--------------------------------------------------------
347
                            347 ; special function bits 
348
                            348 ;--------------------------------------------------------
349
                            349 	.area RSEG    (DATA)
350
                    00F0    350 G$BREG_F0$0$0 == 0x00f0
351
                    00F0    351 _BREG_F0	=	0x00f0
352
                    00F1    352 G$BREG_F1$0$0 == 0x00f1
353
                    00F1    353 _BREG_F1	=	0x00f1
354
                    00F2    354 G$BREG_F2$0$0 == 0x00f2
355
                    00F2    355 _BREG_F2	=	0x00f2
356
                    00F3    356 G$BREG_F3$0$0 == 0x00f3
357
                    00F3    357 _BREG_F3	=	0x00f3
358
                    00F4    358 G$BREG_F4$0$0 == 0x00f4
359
                    00F4    359 _BREG_F4	=	0x00f4
360
                    00F5    360 G$BREG_F5$0$0 == 0x00f5
361
                    00F5    361 _BREG_F5	=	0x00f5
362
                    00F6    362 G$BREG_F6$0$0 == 0x00f6
363
                    00F6    363 _BREG_F6	=	0x00f6
364
                    00F7    364 G$BREG_F7$0$0 == 0x00f7
365
                    00F7    365 _BREG_F7	=	0x00f7
366
                    00D8    366 G$CCF0$0$0 == 0x00d8
367
                    00D8    367 _CCF0	=	0x00d8
368
                    00D9    368 G$CCF1$0$0 == 0x00d9
369
                    00D9    369 _CCF1	=	0x00d9
370
                    00DA    370 G$CCF2$0$0 == 0x00da
371
                    00DA    371 _CCF2	=	0x00da
372
                    00DB    372 G$CCF3$0$0 == 0x00db
373
                    00DB    373 _CCF3	=	0x00db
374
                    00DC    374 G$CCF4$0$0 == 0x00dc
375
                    00DC    375 _CCF4	=	0x00dc
376
                    00DE    376 G$CR$0$0 == 0x00de
377
                    00DE    377 _CR	=	0x00de
378
                    00DF    378 G$CF$0$0 == 0x00df
379
                    00DF    379 _CF	=	0x00df
380
                    00A8    380 G$EX0$0$0 == 0x00a8
381
                    00A8    381 _EX0	=	0x00a8
382
                    00A9    382 G$ET0$0$0 == 0x00a9
383
                    00A9    383 _ET0	=	0x00a9
384
                    00AA    384 G$EX1$0$0 == 0x00aa
385
                    00AA    385 _EX1	=	0x00aa
386
                    00AB    386 G$ET1$0$0 == 0x00ab
387
                    00AB    387 _ET1	=	0x00ab
388
                    00AC    388 G$ES$0$0 == 0x00ac
389
                    00AC    389 _ES	=	0x00ac
390
                    00AD    390 G$ET2$0$0 == 0x00ad
391
                    00AD    391 _ET2	=	0x00ad
392
                    00AE    392 G$EC$0$0 == 0x00ae
393
                    00AE    393 _EC	=	0x00ae
394
                    00AF    394 G$EA$0$0 == 0x00af
395
                    00AF    395 _EA	=	0x00af
396
                    00B8    396 G$PX0$0$0 == 0x00b8
397
                    00B8    397 _PX0	=	0x00b8
398
                    00B9    398 G$PT0$0$0 == 0x00b9
399
                    00B9    399 _PT0	=	0x00b9
400
                    00BA    400 G$PX1$0$0 == 0x00ba
401
                    00BA    401 _PX1	=	0x00ba
402
                    00BB    402 G$PT1$0$0 == 0x00bb
403
                    00BB    403 _PT1	=	0x00bb
404
                    00BC    404 G$PS$0$0 == 0x00bc
405
                    00BC    405 _PS	=	0x00bc
406
                    00BD    406 G$PT2$0$0 == 0x00bd
407
                    00BD    407 _PT2	=	0x00bd
408
                    00BE    408 G$PPC$0$0 == 0x00be
409
                    00BE    409 _PPC	=	0x00be
410
                    0080    410 G$P0_0$0$0 == 0x0080
411
                    0080    411 _P0_0	=	0x0080
412
                    0081    412 G$P0_1$0$0 == 0x0081
413
                    0081    413 _P0_1	=	0x0081
414
                    0082    414 G$P0_2$0$0 == 0x0082
415
                    0082    415 _P0_2	=	0x0082
416
                    0083    416 G$P0_3$0$0 == 0x0083
417
                    0083    417 _P0_3	=	0x0083
418
                    0084    418 G$P0_4$0$0 == 0x0084
419
                    0084    419 _P0_4	=	0x0084
420
                    0085    420 G$P0_5$0$0 == 0x0085
421
                    0085    421 _P0_5	=	0x0085
422
                    0086    422 G$P0_6$0$0 == 0x0086
423
                    0086    423 _P0_6	=	0x0086
424
                    0087    424 G$P0_7$0$0 == 0x0087
425
                    0087    425 _P0_7	=	0x0087
426
                    0090    426 G$P1_0$0$0 == 0x0090
427
                    0090    427 _P1_0	=	0x0090
428
                    0091    428 G$P1_1$0$0 == 0x0091
429
                    0091    429 _P1_1	=	0x0091
430
                    0092    430 G$P1_2$0$0 == 0x0092
431
                    0092    431 _P1_2	=	0x0092
432
                    0093    432 G$P1_3$0$0 == 0x0093
433
                    0093    433 _P1_3	=	0x0093
434
                    0094    434 G$P1_4$0$0 == 0x0094
435
                    0094    435 _P1_4	=	0x0094
436
                    0095    436 G$P1_5$0$0 == 0x0095
437
                    0095    437 _P1_5	=	0x0095
438
                    0096    438 G$P1_6$0$0 == 0x0096
439
                    0096    439 _P1_6	=	0x0096
440
                    0097    440 G$P1_7$0$0 == 0x0097
441
                    0097    441 _P1_7	=	0x0097
442
                    00A0    442 G$P2_0$0$0 == 0x00a0
443
                    00A0    443 _P2_0	=	0x00a0
444
                    00A1    444 G$P2_1$0$0 == 0x00a1
445
                    00A1    445 _P2_1	=	0x00a1
446
                    00A2    446 G$P2_2$0$0 == 0x00a2
447
                    00A2    447 _P2_2	=	0x00a2
448
                    00A3    448 G$P2_3$0$0 == 0x00a3
449
                    00A3    449 _P2_3	=	0x00a3
450
                    00A4    450 G$P2_4$0$0 == 0x00a4
451
                    00A4    451 _P2_4	=	0x00a4
452
                    00A5    452 G$P2_5$0$0 == 0x00a5
453
                    00A5    453 _P2_5	=	0x00a5
454
                    00A6    454 G$P2_6$0$0 == 0x00a6
455
                    00A6    455 _P2_6	=	0x00a6
456
                    00A7    456 G$P2_7$0$0 == 0x00a7
457
                    00A7    457 _P2_7	=	0x00a7
458
                    00B0    458 G$P3_0$0$0 == 0x00b0
459
                    00B0    459 _P3_0	=	0x00b0
460
                    00B1    460 G$P3_1$0$0 == 0x00b1
461
                    00B1    461 _P3_1	=	0x00b1
462
                    00B2    462 G$P3_2$0$0 == 0x00b2
463
                    00B2    463 _P3_2	=	0x00b2
464
                    00B3    464 G$P3_3$0$0 == 0x00b3
465
                    00B3    465 _P3_3	=	0x00b3
466
                    00B4    466 G$P3_4$0$0 == 0x00b4
467
                    00B4    467 _P3_4	=	0x00b4
468
                    00B5    468 G$P3_5$0$0 == 0x00b5
469
                    00B5    469 _P3_5	=	0x00b5
470
                    00B6    470 G$P3_6$0$0 == 0x00b6
471
                    00B6    471 _P3_6	=	0x00b6
472
                    00B7    472 G$P3_7$0$0 == 0x00b7
473
                    00B7    473 _P3_7	=	0x00b7
474
                    00B0    474 G$RXD$0$0 == 0x00b0
475
                    00B0    475 _RXD	=	0x00b0
476
                    00B0    476 G$RXD0$0$0 == 0x00b0
477
                    00B0    477 _RXD0	=	0x00b0
478
                    00B1    478 G$TXD$0$0 == 0x00b1
479
                    00B1    479 _TXD	=	0x00b1
480
                    00B1    480 G$TXD0$0$0 == 0x00b1
481
                    00B1    481 _TXD0	=	0x00b1
482
                    00B2    482 G$INT0$0$0 == 0x00b2
483
                    00B2    483 _INT0	=	0x00b2
484
                    00B3    484 G$INT1$0$0 == 0x00b3
485
                    00B3    485 _INT1	=	0x00b3
486
                    00B4    486 G$T0$0$0 == 0x00b4
487
                    00B4    487 _T0	=	0x00b4
488
                    00B5    488 G$T1$0$0 == 0x00b5
489
                    00B5    489 _T1	=	0x00b5
490
                    00B6    490 G$WR$0$0 == 0x00b6
491
                    00B6    491 _WR	=	0x00b6
492
                    00B7    492 G$RD$0$0 == 0x00b7
493
                    00B7    493 _RD	=	0x00b7
494
                    00C0    494 G$P4_0$0$0 == 0x00c0
495
                    00C0    495 _P4_0	=	0x00c0
496
                    00C1    496 G$P4_1$0$0 == 0x00c1
497
                    00C1    497 _P4_1	=	0x00c1
498
                    00C2    498 G$P4_2$0$0 == 0x00c2
499
                    00C2    499 _P4_2	=	0x00c2
500
                    00C3    500 G$P4_3$0$0 == 0x00c3
501
                    00C3    501 _P4_3	=	0x00c3
502
                    00C4    502 G$P4_4$0$0 == 0x00c4
503
                    00C4    503 _P4_4	=	0x00c4
504
                    00C5    504 G$P4_5$0$0 == 0x00c5
505
                    00C5    505 _P4_5	=	0x00c5
506
                    00C6    506 G$P4_6$0$0 == 0x00c6
507
                    00C6    507 _P4_6	=	0x00c6
508
                    00C7    508 G$P4_7$0$0 == 0x00c7
509
                    00C7    509 _P4_7	=	0x00c7
510
                    00E8    510 G$P5_0$0$0 == 0x00e8
511
                    00E8    511 _P5_0	=	0x00e8
512
                    00E9    512 G$P5_1$0$0 == 0x00e9
513
                    00E9    513 _P5_1	=	0x00e9
514
                    00EA    514 G$P5_2$0$0 == 0x00ea
515
                    00EA    515 _P5_2	=	0x00ea
516
                    00EB    516 G$P5_3$0$0 == 0x00eb
517
                    00EB    517 _P5_3	=	0x00eb
518
                    00EC    518 G$P5_4$0$0 == 0x00ec
519
                    00EC    519 _P5_4	=	0x00ec
520
                    00ED    520 G$P5_5$0$0 == 0x00ed
521
                    00ED    521 _P5_5	=	0x00ed
522
                    00EE    522 G$P5_6$0$0 == 0x00ee
523
                    00EE    523 _P5_6	=	0x00ee
524
                    00EF    524 G$P5_7$0$0 == 0x00ef
525
                    00EF    525 _P5_7	=	0x00ef
526
                    00D0    526 G$P$0$0 == 0x00d0
527
                    00D0    527 _P	=	0x00d0
528
                    00D1    528 G$F1$0$0 == 0x00d1
529
                    00D1    529 _F1	=	0x00d1
530
                    00D2    530 G$OV$0$0 == 0x00d2
531
                    00D2    531 _OV	=	0x00d2
532
                    00D3    532 G$RS0$0$0 == 0x00d3
533
                    00D3    533 _RS0	=	0x00d3
534
                    00D4    534 G$RS1$0$0 == 0x00d4
535
                    00D4    535 _RS1	=	0x00d4
536
                    00D5    536 G$F0$0$0 == 0x00d5
537
                    00D5    537 _F0	=	0x00d5
538
                    00D6    538 G$AC$0$0 == 0x00d6
539
                    00D6    539 _AC	=	0x00d6
540
                    00D7    540 G$CY$0$0 == 0x00d7
541
                    00D7    541 _CY	=	0x00d7
542
                    0098    542 G$RI$0$0 == 0x0098
543
                    0098    543 _RI	=	0x0098
544
                    0099    544 G$TI$0$0 == 0x0099
545
                    0099    545 _TI	=	0x0099
546
                    009A    546 G$RB8$0$0 == 0x009a
547
                    009A    547 _RB8	=	0x009a
548
                    009B    548 G$TB8$0$0 == 0x009b
549
                    009B    549 _TB8	=	0x009b
550
                    009C    550 G$REN$0$0 == 0x009c
551
                    009C    551 _REN	=	0x009c
552
                    009D    552 G$SM2$0$0 == 0x009d
553
                    009D    553 _SM2	=	0x009d
554
                    009E    554 G$SM1$0$0 == 0x009e
555
                    009E    555 _SM1	=	0x009e
556
                    009F    556 G$SM0$0$0 == 0x009f
557
                    009F    557 _SM0	=	0x009f
558
                    00C8    558 G$CP_RL2$0$0 == 0x00c8
559
                    00C8    559 _CP_RL2	=	0x00c8
560
                    00C9    560 G$C_T2$0$0 == 0x00c9
561
                    00C9    561 _C_T2	=	0x00c9
562
                    00CA    562 G$TR2$0$0 == 0x00ca
563
                    00CA    563 _TR2	=	0x00ca
564
                    00CB    564 G$EXEN2$0$0 == 0x00cb
565
                    00CB    565 _EXEN2	=	0x00cb
566
                    00CC    566 G$TCLK$0$0 == 0x00cc
567
                    00CC    567 _TCLK	=	0x00cc
568
                    00CD    568 G$RCLK$0$0 == 0x00cd
569
                    00CD    569 _RCLK	=	0x00cd
570
                    00CE    570 G$EXF2$0$0 == 0x00ce
571
                    00CE    571 _EXF2	=	0x00ce
572
                    00CF    572 G$TF2$0$0 == 0x00cf
573
                    00CF    573 _TF2	=	0x00cf
574
                    00C8    574 G$T2CON_0$0$0 == 0x00c8
575
                    00C8    575 _T2CON_0	=	0x00c8
576
                    00C9    576 G$T2CON_1$0$0 == 0x00c9
577
                    00C9    577 _T2CON_1	=	0x00c9
578
                    00CA    578 G$T2CON_2$0$0 == 0x00ca
579
                    00CA    579 _T2CON_2	=	0x00ca
580
                    00CB    580 G$T2CON_3$0$0 == 0x00cb
581
                    00CB    581 _T2CON_3	=	0x00cb
582
                    00CC    582 G$T2CON_4$0$0 == 0x00cc
583
                    00CC    583 _T2CON_4	=	0x00cc
584
                    00CD    584 G$T2CON_5$0$0 == 0x00cd
585
                    00CD    585 _T2CON_5	=	0x00cd
586
                    00CE    586 G$T2CON_6$0$0 == 0x00ce
587
                    00CE    587 _T2CON_6	=	0x00ce
588
                    00CF    588 G$T2CON_7$0$0 == 0x00cf
589
                    00CF    589 _T2CON_7	=	0x00cf
590
                    0088    590 G$IT0$0$0 == 0x0088
591
                    0088    591 _IT0	=	0x0088
592
                    0089    592 G$IE0$0$0 == 0x0089
593
                    0089    593 _IE0	=	0x0089
594
                    008A    594 G$IT1$0$0 == 0x008a
595
                    008A    595 _IT1	=	0x008a
596
                    008B    596 G$IE1$0$0 == 0x008b
597
                    008B    597 _IE1	=	0x008b
598
                    008C    598 G$TR0$0$0 == 0x008c
599
                    008C    599 _TR0	=	0x008c
600
                    008D    600 G$TF0$0$0 == 0x008d
601
                    008D    601 _TF0	=	0x008d
602
                    008E    602 G$TR1$0$0 == 0x008e
603
                    008E    603 _TR1	=	0x008e
604
                    008F    604 G$TF1$0$0 == 0x008f
605
                    008F    605 _TF1	=	0x008f
606
                            606 ;--------------------------------------------------------
607
                            607 ; overlayable register banks 
608
                            608 ;--------------------------------------------------------
609
                            609 	.area REG_BANK_0	(REL,OVR,DATA)
610
   0000                     610 	.ds 8
611
                            611 	.area REG_BANK_1	(REL,OVR,DATA)
612
   0000                     612 	.ds 8
613
                            613 	.area REG_BANK_2	(REL,OVR,DATA)
614
   0000                     614 	.ds 8
615
                            615 	.area REG_BANK_3	(REL,OVR,DATA)
616
   0000                     616 	.ds 8
617
                            617 ;--------------------------------------------------------
618
                            618 ; internal ram data
619
                            619 ;--------------------------------------------------------
620
                            620 	.area DSEG    (DATA)
621
                            621 ;--------------------------------------------------------
622
                            622 ; overlayable items in internal ram 
623
                            623 ;--------------------------------------------------------
624
                            624 	.area OSEG    (OVR,DATA)
625
                            625 ;--------------------------------------------------------
626
                            626 ; indirectly addressable internal ram data
627
                            627 ;--------------------------------------------------------
628
                            628 	.area ISEG    (DATA)
629
                            629 ;--------------------------------------------------------
630
                            630 ; bit data
631
                            631 ;--------------------------------------------------------
632
                            632 	.area BSEG    (BIT)
633
                    0000    633 G$SIO1_TxBusy$0$0==.
634
   0000                     634 _SIO1_TxBusy::
635
   0000                     635 	.ds 1
636
                    0001    636 Frt_serial$SIO_put_semaphore$0$0==.
637
   0001                     637 _SIO_put_semaphore:
638
   0001                     638 	.ds 1
639
                    0002    639 Lputchar$EA_local$1$1==.
640
   0002                     640 _putchar_EA_local_1_1:
641
   0002                     641 	.ds 1
642
                    0003    642 Lgetchar$EA_local$1$1==.
643
   0003                     643 _getchar_EA_local_1_1:
644
   0003                     644 	.ds 1
645
                    0004    645 LSIO2_getchar$EA_local$1$1==.
646
   0004                     646 _SIO2_getchar_EA_local_1_1:
647
   0004                     647 	.ds 1
648
                    0005    648 LSIO1_flush$EA_local$1$1==.
649
   0005                     649 _SIO1_flush_EA_local_1_1:
650
   0005                     650 	.ds 1
651
                    0006    651 LSIO2_flush$EA_local$1$1==.
652
   0006                     652 _SIO2_flush_EA_local_1_1:
653
   0006                     653 	.ds 1
654
                    0007    654 LSIOTakeSemaphore$EA_local$1$1==.
655
   0007                     655 _SIOTakeSemaphore_EA_local_1_1:
656
   0007                     656 	.ds 1
657
                    0008    657 LSIOSetSemaphore$EA_local$1$1==.
658
   0008                     658 _SIOSetSemaphore_EA_local_1_1:
659
   0008                     659 	.ds 1
660
                            660 ;--------------------------------------------------------
661
                            661 ; external ram data
662
                            662 ;--------------------------------------------------------
663
                            663 	.area XSEG    (XDATA)
664
                    0000    664 Frt_serial$SIO1_TXFIFO$0$0==.
665
   0000                     665 _SIO1_TXFIFO:
666
   0000                     666 	.ds 128
667
                    0080    667 Frt_serial$SIO1_RXFIFO$0$0==.
668
   0080                     668 _SIO1_RXFIFO:
669
   0080                     669 	.ds 32
670
                    00A0    670 Frt_serial$SIO2_RXFIFO$0$0==.
671
   00A0                     671 _SIO2_RXFIFO:
672
   00A0                     672 	.ds 64
673
                    00E0    673 Frt_serial$SIO1_TxPtr$0$0==.
674
   00E0                     674 _SIO1_TxPtr:
675
   00E0                     675 	.ds 1
676
                    00E1    676 G$SIO1_TxCount$0$0==.
677
   00E1                     677 _SIO1_TxCount::
678
   00E1                     678 	.ds 1
679
                    00E2    679 Frt_serial$SIO1_RxPtr$0$0==.
680
   00E2                     680 _SIO1_RxPtr:
681
   00E2                     681 	.ds 1
682
                    00E3    682 Frt_serial$SIO1_RxCount$0$0==.
683
   00E3                     683 _SIO1_RxCount:
684
   00E3                     684 	.ds 1
685
                    00E4    685 Frt_serial$SIO2_RxPtr$0$0==.
686
   00E4                     686 _SIO2_RxPtr:
687
   00E4                     687 	.ds 1
688
                    00E5    688 G$SIO2_RxCount$0$0==.
689
   00E5                     689 _SIO2_RxCount::
690
   00E5                     690 	.ds 1
691
                    00E6    691 Frt_serial$SIO2_Byte$0$0==.
692
   00E6                     692 _SIO2_Byte:
693
   00E6                     693 	.ds 1
694
                    00E7    694 G$SIO2_BitCnt$0$0==.
695
   00E7                     695 _SIO2_BitCnt::
696
   00E7                     696 	.ds 1
697
                    00E8    697 LSIOInterrupt$Chr$2$2==.
698
   00E8                     698 _SIOInterrupt_Chr_2_2::
699
   00E8                     699 	.ds 1
700
                    00E9    700 Lputchar$c$1$1==.
701
   00E9                     701 _putchar_c_1_1::
702
   00E9                     702 	.ds 1
703
                    00EA    703 LSIO1_break$ticks$1$1==.
704
   00EA                     704 _SIO1_break_PARM_2::
705
   00EA                     705 	.ds 1
706
                    00EB    706 LSIO1_break$level$1$1==.
707
   00EB                     707 _SIO1_break_level_1_1::
708
   00EB                     708 	.ds 1
709
                    00EC    709 LSendStringCode$s$1$1==.
710
   00EC                     710 _SendStringCode_s_1_1::
711
   00EC                     711 	.ds 2
712
                    00EE    712 LSendStringXdata$s$1$1==.
713
   00EE                     713 _SendStringXdata_s_1_1::
714
   00EE                     714 	.ds 2
715
                    00F0    715 LSendHex$x$1$1==.
716
   00F0                     716 _SendHex_x_1_1::
717
   00F0                     717 	.ds 1
718
                            718 ;--------------------------------------------------------
719
                            719 ; external initialized ram data
720
                            720 ;--------------------------------------------------------
721
                            721 	.area XISEG   (XDATA)
722
                            722 	.area CSEG    (CODE)
723
                            723 	.area GSINIT0 (CODE)
724
                            724 	.area GSINIT1 (CODE)
725
                            725 	.area GSINIT2 (CODE)
726
                            726 	.area GSINIT3 (CODE)
727
                            727 	.area GSINIT4 (CODE)
728
                            728 	.area GSINIT5 (CODE)
729
                            729 ;--------------------------------------------------------
730
                            730 ; global & static initialisations
731
                            731 ;--------------------------------------------------------
732
                            732 	.area GSINIT  (CODE)
733
                            733 	.area GSFINAL (CODE)
734
                            734 	.area GSINIT  (CODE)
735
                            735 ;--------------------------------------------------------
736
                            736 ; Home
737
                            737 ;--------------------------------------------------------
738
                            738 	.area HOME    (CODE)
739
                            739 	.area CSEG    (CODE)
740
                            740 ;--------------------------------------------------------
741
                            741 ; code
742
                            742 ;--------------------------------------------------------
743
                            743 	.area CSEG    (CODE)
744
                            744 ;------------------------------------------------------------
745
                            745 ;Allocation info for local variables in function 'rt_serial_init'
746
                            746 ;------------------------------------------------------------
747
                            747 ;------------------------------------------------------------
748
                    0000    748 	G$rt_serial_init$0$0 ==.
749
                    0000    749 	C$rt_serial.c$180$0$0 ==.
750
                            750 ;rt_serial.c:180: void rt_serial_init (void)
751
                            751 ;	-----------------------------------------
752
                            752 ;	 function rt_serial_init
753
                            753 ;	-----------------------------------------
754
   0000                     754 _rt_serial_init:
755
                    0002    755 	ar2 = 0x02
756
                    0003    756 	ar3 = 0x03
757
                    0004    757 	ar4 = 0x04
758
                    0005    758 	ar5 = 0x05
759
                    0006    759 	ar6 = 0x06
760
                    0007    760 	ar7 = 0x07
761
                    0000    761 	ar0 = 0x00
762
                    0001    762 	ar1 = 0x01
763
                    0000    763 	C$rt_serial.c$183$1$1 ==.
764
                            764 ;rt_serial.c:183: SIO1_TxPtr    = 0;
765
                            765 ;     genAssign
766
   0000 90s00rE0            766 	mov	dptr,#_SIO1_TxPtr
767
                            767 ;	Peephole 181	changed mov to clr
768
                    0003    768 	C$rt_serial.c$184$1$1 ==.
769
                            769 ;rt_serial.c:184: SIO1_RxPtr    = 0;
770
                            770 ;     genAssign
771
                            771 ;	Peephole 181	changed mov to clr
772
                            772 ;	Peephole 219	removed redundant clear
773
                    0003    773 	C$rt_serial.c$185$1$1 ==.
774
                            774 ;rt_serial.c:185: SIO1_TxCount  = 0;
775
                            775 ;     genAssign
776
                            776 ;	Peephole 181	changed mov to clr
777
                    0003    777 	C$rt_serial.c$186$1$1 ==.
778
                            778 ;rt_serial.c:186: SIO1_RxCount  = 0;
779
                            779 ;     genAssign
780
                            780 ;	Peephole 181	changed mov to clr
781
                            781 ;	Peephole 219	removed redundant clear
782
                            782 ;	Peephole 219.a	removed redundant clear
783
   0003 E4                  783 	clr	a
784
   0004 F0                  784 	movx	@dptr,a
785
   0005 90s00rE2            785 	mov	dptr,#_SIO1_RxPtr
786
   0008 F0                  786 	movx	@dptr,a
787
   0009 90s00rE1            787 	mov	dptr,#_SIO1_TxCount
788
   000C F0                  788 	movx	@dptr,a
789
   000D 90s00rE3            789 	mov	dptr,#_SIO1_RxCount
790
   0010 F0                  790 	movx	@dptr,a
791
                    0011    791 	C$rt_serial.c$187$1$1 ==.
792
                            792 ;rt_serial.c:187: SIO1_TxBusy   = FALSE;
793
                            793 ;     genAssign
794
   0011 C2*00               794 	clr	_SIO1_TxBusy
795
                    0013    795 	C$rt_serial.c$188$1$1 ==.
796
                            796 ;rt_serial.c:188: SIO1_TxPtr    = 0;
797
                            797 ;     genAssign
798
   0013 90s00rE0            798 	mov	dptr,#_SIO1_TxPtr
799
                            799 ;	Peephole 181	changed mov to clr
800
                    0016    800 	C$rt_serial.c$190$1$1 ==.
801
                            801 ;rt_serial.c:190: SIO2_RxPtr    = 0;
802
                            802 ;     genAssign
803
                            803 ;	Peephole 181	changed mov to clr
804
                            804 ;	Peephole 219	removed redundant clear
805
                    0016    805 	C$rt_serial.c$191$1$1 ==.
806
                            806 ;rt_serial.c:191: SIO2_RxCount  = 0;
807
                            807 ;     genAssign
808
                            808 ;	Peephole 181	changed mov to clr
809
                            809 ;	Peephole 219.a	removed redundant clear
810
   0016 E4                  810 	clr	a
811
   0017 F0                  811 	movx	@dptr,a
812
   0018 90s00rE4            812 	mov	dptr,#_SIO2_RxPtr
813
   001B F0                  813 	movx	@dptr,a
814
   001C 90s00rE5            814 	mov	dptr,#_SIO2_RxCount
815
   001F F0                  815 	movx	@dptr,a
816
                    0020    816 	C$rt_serial.c$204$1$1 ==.
817
                            817 ;rt_serial.c:204: SIO1_CTS       = FALSE; /* assert CTS */
818
                            818 ;     genAssign
819
   0020 C2 95               819 	clr	_P1_5
820
                    0022    820 	C$rt_serial.c$207$1$1 ==.
821
                            821 ;rt_serial.c:207: SIO_put_semaphore = TRUE;
822
                            822 ;     genAssign
823
   0022 D2*01               823 	setb	_SIO_put_semaphore
824
                    0024    824 	C$rt_serial.c$209$1$1 ==.
825
                            825 ;rt_serial.c:209: TR1 = FALSE;
826
                            826 ;     genAssign
827
   0024 C2 8E               827 	clr	_TR1
828
                    0026    828 	C$rt_serial.c$210$1$1 ==.
829
                            829 ;rt_serial.c:210: SCON=   0x50;    /* select mode 1 (8bit variable baudrate) */
830
                            830 ;     genAssign
831
   0026 75 98 50            831 	mov	_SCON,#0x50
832
                    0029    832 	C$rt_serial.c$212$1$1 ==.
833
                            833 ;rt_serial.c:212: TH1 =  SIO1_BAUDCODE;    /* set timer 1 for SIO1 baud   */
834
                            834 ;     genAssign
835
   0029 75 8D FD            835 	mov	_TH1,#0xFD
836
                    002C    836 	C$rt_serial.c$213$1$1 ==.
837
                            837 ;rt_serial.c:213: TL1 =  SIO1_BAUDCODE;    /* set timer 1*/
838
                            838 ;     genAssign
839
   002C 75 8B FD            839 	mov	_TL1,#0xFD
840
                    002F    840 	C$rt_serial.c$214$1$1 ==.
841
                            841 ;rt_serial.c:214: TR1 =   TRUE;    /* set timer 1 running                    */
842
                            842 ;     genAssign
843
   002F D2 8E               843 	setb	_TR1
844
                    0031    844 	C$rt_serial.c$219$1$1 ==.
845
                            845 ;rt_serial.c:219: T2CON = 0; /* 16 bit auto reload */ 
846
                            846 ;     genAssign
847
   0031 75 C8 00            847 	mov	_T2CON,#0x00
848
                    0034    848 	C$rt_serial.c$221$1$1 ==.
849
                            849 ;rt_serial.c:221: EXEN2 = TRUE; /* allow for falling edge IRQ */
850
                            850 ;     genAssign
851
   0034 D2 CB               851 	setb	_EXEN2
852
                    0036    852 	C$rt_serial.c$223$1$1 ==.
853
                            853 ;rt_serial.c:223: ET2   = TRUE;  /*TURNED OFF to allow further debug  allow for T2 interrupt */  
854
                            854 ;     genAssign
855
   0036 D2 AD               855 	setb	_ET2
856
                    0038    856 	C$rt_serial.c$225$1$1 ==.
857
                            857 ;rt_serial.c:225: TR2   = TRUE; /* only edges now */
858
                            858 ;     genAssign
859
   0038 D2 CA               859 	setb	_TR2
860
                    003A    860 	C$rt_serial.c$228$1$1 ==.
861
                            861 ;rt_serial.c:228: PT2   = TRUE; /* up priority */
862
                            862 ;     genAssign
863
   003A D2 BD               863 	setb	_PT2
864
                    003C    864 	C$rt_serial.c$229$1$1 ==.
865
                            865 ;rt_serial.c:229: IPH   |=PT2H;
866
                            866 ;     genOr
867
   003C 43 B7 20            867 	orl	_IPH,#0x20
868
                    003F    868 	C$rt_serial.c$233$1$1 ==.
869
                            869 ;rt_serial.c:233: RCAP2H    =  SIO2_BAUDCODE_START / 256;   /* setup for 4800 baud */
870
                            870 ;     genAssign
871
   003F 75 CB FF            871 	mov	_RCAP2H,#0xFF
872
                    0042    872 	C$rt_serial.c$234$1$1 ==.
873
                            873 ;rt_serial.c:234: RCAP2L    =  SIO2_BAUDCODE_START & 255;   /* start bit */
874
                            874 ;     genAssign
875
   0042 75 CA A0            875 	mov	_RCAP2L,#0xA0
876
                    0045    876 	C$rt_serial.c$237$1$1 ==.
877
                            877 ;rt_serial.c:237: REN = TRUE;                   	// Receive characters.
878
                            878 ;     genAssign
879
   0045 D2 9C               879 	setb	_REN
880
                    0047    880 	C$rt_serial.c$239$1$1 ==.
881
                            881 ;rt_serial.c:239: ES = TRUE;
882
                            882 ;     genAssign
883
   0047 D2 AC               883 	setb	_ES
884
                    0049    884 	C$rt_serial.c$242$1$1 ==.
885
                            885 ;rt_serial.c:242: SIO1_RTS = FALSE; /* enable output by forcing ready status*/
886
                            886 ;     genAssign
887
   0049 C2 94               887 	clr	_P1_4
888
   004B                     888 00101$:
889
                    004B    889 	C$rt_serial.c$245$1$1 ==.
890
                    004B    890 	XG$rt_serial_init$0$0 ==.
891
   004B 22                  891 	ret
892
                            892 ;------------------------------------------------------------
893
                            893 ;Allocation info for local variables in function 'SIOInterrupt'
894
                            894 ;------------------------------------------------------------
895
                            895 ;Chr                       Allocated with name '_SIOInterrupt_Chr_2_2'
896
                            896 ;TempPtr                   Allocated with name '_SIOInterrupt_TempPtr_4_5'
897
                            897 ;c                         Allocated with name '_SIOInterrupt_c_4_9'
898
                            898 ;------------------------------------------------------------
899
                    004C    899 	G$SIOInterrupt$0$0 ==.
900
                    004C    900 	C$rt_serial.c$253$1$1 ==.
901
                            901 ;rt_serial.c:253: void SIOInterrupt(void) interrupt SIO_INTVEC using SIO_INTERRUPT_BANK
902
                            902 ;	-----------------------------------------
903
                            903 ;	 function SIOInterrupt
904
                            904 ;	-----------------------------------------
905
   004C                     905 _SIOInterrupt:
906
                    000A    906 	ar2 = 0x0a
907
                    000B    907 	ar3 = 0x0b
908
                    000C    908 	ar4 = 0x0c
909
                    000D    909 	ar5 = 0x0d
910
                    000E    910 	ar6 = 0x0e
911
                    000F    911 	ar7 = 0x0f
912
                    0008    912 	ar0 = 0x08
913
                    0009    913 	ar1 = 0x09
914
   004C C0 E0               914 	push	acc
915
   004E C0 82               915 	push	dpl
916
   0050 C0 83               916 	push	dph
917
   0052 C0 D0               917 	push	psw
918
   0054 75 D0 08            918 	mov	psw,#0x08
919
                    0057    919 	C$rt_serial.c$260$1$1 ==.
920
                            920 ;rt_serial.c:260: if(RI)   /* receive handler */
921
                            921 ;     genIfx
922
                            922 ;     genIfxJump
923
                            923 ;	Peephole 111	removed ljmp by inverse jump logic
924
                    0057    924 	C$rt_serial.c$265$2$2 ==.
925
                            925 ;rt_serial.c:265: RI = 0;
926
                            926 ;     genAssign
927
                            927 ;	Peephole 250.a	using atomic test and clear
928
   0057 10 98 02            928 	jbc	_RI,00124$
929
   005A 80 5C               929 	sjmp	00108$
930
   005C                     930 00124$:
931
                    005C    931 	C$rt_serial.c$266$2$2 ==.
932
                            932 ;rt_serial.c:266: Chr = SBUF;
933
                            933 ;     genAssign
934
   005C 90s00rE8            934 	mov	dptr,#_SIOInterrupt_Chr_2_2
935
   005F E5 99               935 	mov	a,_SBUF
936
   0061 F0                  936 	movx	@dptr,a
937
                    0062    937 	C$rt_serial.c$296$3$3 ==.
938
                            938 ;rt_serial.c:296: if (SIO1_RxCount >= SIO1_RX_FIFOFULL-1)
939
                            939 ;     genAssign
940
   0062 90s00rE3            940 	mov	dptr,#_SIO1_RxCount
941
   0065 E0                  941 	movx	a,@dptr
942
   0066 FA                  942 	mov	r2,a
943
                            943 ;     genCmpLt
944
                            944 ;     genCmp
945
   0067 BA 1F 00            945 	cjne	r2,#0x1F,00125$
946
   006A                     946 00125$:
947
                            947 ;     genIfxJump
948
                            948 ;	Peephole 112.b	changed ljmp to sjmp
949
                            949 ;	Peephole 160	removed sjmp by inverse jump logic
950
   006A 40 02               950 	jc	00102$
951
   006C                     951 00126$:
952
                    006C    952 	C$rt_serial.c$298$4$4 ==.
953
                            953 ;rt_serial.c:298: SIO1_CTS     = TRUE;
954
                            954 ;     genAssign
955
   006C D2 95               955 	setb	_P1_5
956
   006E                     956 00102$:
957
                    006E    957 	C$rt_serial.c$302$3$3 ==.
958
                            958 ;rt_serial.c:302: if(SIO1_RxCount != SIO1_RX_FIFOFULL)       /* is there room left in the Rx FIFO ?    */
959
                            959 ;     genAssign
960
   006E 90s00rE3            960 	mov	dptr,#_SIO1_RxCount
961
   0071 E0                  961 	movx	a,@dptr
962
   0072 FA                  962 	mov	r2,a
963
                            963 ;     genCmpEq
964
   0073 BA 20 02            964 	cjne	r2,#0x20,00127$
965
                            965 ;	Peephole 112.b	changed ljmp to sjmp
966
   0076 80 26               966 	sjmp	00104$
967
   0078                     967 00127$:
968
                    0078    968 	C$rt_serial.c$304$4$5 ==.
969
                            969 ;rt_serial.c:304: Byte TempPtr = (SIO1_RxPtr+SIO1_RxCount) & SIO1_RX_FIFOMASK;
970
                            970 ;     genAssign
971
   0078 90s00rE3            971 	mov	dptr,#_SIO1_RxCount
972
   007B E0                  972 	movx	a,@dptr
973
   007C FA                  973 	mov	r2,a
974
                            974 ;     genAssign
975
   007D 90s00rE2            975 	mov	dptr,#_SIO1_RxPtr
976
   0080 E0                  976 	movx	a,@dptr
977
   0081 FB                  977 	mov	r3,a
978
                            978 ;     genPlus
979
                            979 ;	Peephole 236.g	used r2 instead of ar2
980
   0082 EA                  980 	mov	a,r2
981
                            981 ;	Peephole 236.a	used r3 instead of ar3
982
   0083 2B                  982 	add	a,r3
983
                            983 ;     genAnd
984
   0084 54 1F               984 	anl	a,#0x1F
985
                    0086    985 	C$rt_serial.c$305$4$5 ==.
986
                            986 ;rt_serial.c:305: SIO1_RXFIFO[TempPtr] = Chr;
987
                            987 ;     genPlus
988
                            988 ;	Peephole 177.b	removed redundant mov
989
                            989 ;	Peephole 215	removed some moves
990
   0086 24r80               990 	add	a,#_SIO1_RXFIFO
991
   0088 FA                  991 	mov	r2,a
992
                            992 ;	Peephole 181	changed mov to clr
993
   0089 E4                  993 	clr	a
994
   008A 34s00               994 	addc	a,#(_SIO1_RXFIFO >> 8)
995
   008C FB                  995 	mov	r3,a
996
                            996 ;     genAssign
997
   008D 90s00rE8            997 	mov	dptr,#_SIOInterrupt_Chr_2_2
998
   0090 E0                  998 	movx	a,@dptr
999
                            999 ;     genPointerSet
1000
                           1000 ;     genFarPointerSet
1001
                           1001 ;	Peephole 136	removed redundant moves
1002
   0091 FC                 1002 	mov	r4,a
1003
   0092 8A 82              1003 	mov	dpl,r2
1004
   0094 8B 83              1004 	mov	dph,r3
1005
   0096 F0                 1005 	movx	@dptr,a
1006
                    0097   1006 	C$rt_serial.c$306$4$5 ==.
1007
                           1007 ;rt_serial.c:306: SIO1_RxCount++;
1008
                           1008 ;     genPlus
1009
   0097 90s00rE3           1009 	mov	dptr,#_SIO1_RxCount
1010
   009A E0                 1010 	movx	a,@dptr
1011
   009B 24 01              1011 	add	a,#0x01
1012
   009D F0                 1012 	movx	@dptr,a
1013
   009E                    1013 00104$:
1014
                    009E   1014 	C$rt_serial.c$310$2$2 ==.
1015
                           1015 ;rt_serial.c:310: INT_SIGNAL(SIO1_TASK,SERIAL_SIG);
1016
                           1016 ;     genPointerGet
1017
                           1017 ;     genNearPointerGet
1018
   009E 78r02              1018 	mov	r0,#(_task_signals + 0x0002)
1019
   00A0 86 0A              1019 	mov	ar2,@r0
1020
                           1020 ;     genOr
1021
   00A2 74 40              1021 	mov	a,#0x40
1022
   00A4 4A                 1022 	orl	a,r2
1023
                           1023 ;     genPointerSet
1024
                           1024 ;     genNearPointerSet
1025
   00A5 78r02              1025 	mov	r0,#(_task_signals + 0x0002)
1026
   00A7 A6 E0              1026 	mov	@r0,acc
1027
                           1027 ;     genPointerGet
1028
                           1028 ;     genNearPointerGet
1029
   00A9 78r02              1029 	mov	r0,#(_task_signals + 0x0002)
1030
   00AB 86 0A              1030 	mov	ar2,@r0
1031
                           1031 ;     genPointerGet
1032
                           1032 ;     genNearPointerGet
1033
   00AD 78r02              1033 	mov	r0,#(_task_masks + 0x0002)
1034
   00AF 86 0B              1034 	mov	ar3,@r0
1035
                           1035 ;     genAnd
1036
   00B1 EB                 1036 	mov	a,r3
1037
   00B2 5A                 1037 	anl	a,r2
1038
                           1038 ;     genIfx
1039
                           1039 ;     genIfxJump
1040
                           1040 ;	Peephole 110	removed ljmp by inverse jump logic
1041
   00B3 60 03              1041 	jz	00108$
1042
   00B5                    1042 00128$:
1043
                           1043 ;     genOr
1044
   00B5 43r00 04           1044 	orl	_ready,#0x04
1045
   00B8                    1045 00108$:
1046
                    00B8   1046 	C$rt_serial.c$314$1$1 ==.
1047
                           1047 ;rt_serial.c:314: if(TI)  /* handle transmit interrupt */
1048
                           1048 ;     genIfx
1049
                           1049 ;     genIfxJump
1050
                           1050 ;	Peephole 111	removed ljmp by inverse jump logic
1051
                    00B8   1051 	C$rt_serial.c$316$2$7 ==.
1052
                           1052 ;rt_serial.c:316: TI = 0;
1053
                           1053 ;     genAssign
1054
                           1054 ;	Peephole 250.a	using atomic test and clear
1055
   00B8 10 99 02           1055 	jbc	_TI,00129$
1056
   00BB 80 3B              1056 	sjmp	00115$
1057
   00BD                    1057 00129$:
1058
                    00BD   1058 	C$rt_serial.c$332$3$8 ==.
1059
                           1059 ;rt_serial.c:332: if(!SIO1_RTS && SIO1_TxCount)
1060
                           1060 ;     genIfx
1061
                           1061 ;     genIfxJump
1062
                           1062 ;	Peephole 112.a	removed ljmp by inverse jump logic
1063
   00BD 20 94 36           1063 	jb	_P1_4,00110$
1064
   00C0                    1064 00130$:
1065
                           1065 ;     genAssign
1066
   00C0 90s00rE1           1066 	mov	dptr,#_SIO1_TxCount
1067
   00C3 E0                 1067 	movx	a,@dptr
1068
                           1068 ;     genIfx
1069
                           1069 ;	Peephole 105	removed redundant mov
1070
   00C4 FA                 1070 	mov	r2,a
1071
                           1071 ;     genIfxJump
1072
                           1072 ;	Peephole 110	removed ljmp by inverse jump logic
1073
   00C5 60 2F              1073 	jz	00110$
1074
   00C7                    1074 00131$:
1075
                    00C7   1075 	C$rt_serial.c$340$4$9 ==.
1076
                           1076 ;rt_serial.c:340: SIO1_TxCount--;
1077
                           1077 ;     genMinus
1078
   00C7 90s00rE1           1078 	mov	dptr,#_SIO1_TxCount
1079
                           1079 ;     genMinusDec
1080
   00CA E0                 1080 	movx	a,@dptr
1081
   00CB 14                 1081 	dec	a
1082
                           1082 ;     genAssign
1083
   00CC 90s00rE1           1083 	mov	dptr,#_SIO1_TxCount
1084
   00CF F0                 1084 	movx	@dptr,a
1085
                    00D0   1085 	C$rt_serial.c$341$4$9 ==.
1086
                           1086 ;rt_serial.c:341: c      = SIO1_TXFIFO[SIO1_TxPtr++];  /* send next char if there is one, and  */
1087
                           1087 ;     genAssign
1088
   00D0 90s00rE0           1088 	mov	dptr,#_SIO1_TxPtr
1089
   00D3 E0                 1089 	movx	a,@dptr
1090
   00D4 FA                 1090 	mov	r2,a
1091
                           1091 ;     genPlus
1092
   00D5 90s00rE0           1092 	mov	dptr,#_SIO1_TxPtr
1093
   00D8 E0                 1093 	movx	a,@dptr
1094
   00D9 24 01              1094 	add	a,#0x01
1095
   00DB F0                 1095 	movx	@dptr,a
1096
                           1096 ;     genPlus
1097
                           1097 ;	Peephole 236.g	used r2 instead of ar2
1098
   00DC EA                 1098 	mov	a,r2
1099
   00DD 24r00              1099 	add	a,#_SIO1_TXFIFO
1100
   00DF F5 82              1100 	mov	dpl,a
1101
                           1101 ;	Peephole 181	changed mov to clr
1102
   00E1 E4                 1102 	clr	a
1103
   00E2 34s00              1103 	addc	a,#(_SIO1_TXFIFO >> 8)
1104
   00E4 F5 83              1104 	mov	dph,a
1105
                           1105 ;     genPointerGet
1106
                           1106 ;     genFarPointerGet
1107
   00E6 E0                 1107 	movx	a,@dptr
1108
   00E7 FA                 1108 	mov	r2,a
1109
                    00E8   1109 	C$rt_serial.c$342$4$9 ==.
1110
                           1110 ;rt_serial.c:342: SIO1_TxPtr &= SIO1_TX_FIFOMASK;
1111
                           1111 ;     genAssign
1112
                           1112 ;     genAnd
1113
                           1113 ;	Peephole 248.b	optimized and to xdata
1114
   00E8 90s00rE0           1114 	mov	dptr,#_SIO1_TxPtr
1115
   00EB E0                 1115 	movx	a,@dptr
1116
   00EC FB                 1116 	mov	r3,a
1117
   00ED 54 7F              1117 	anl	a,#0x7F
1118
   00EF F0                 1118 	movx	@dptr,a
1119
                    00F0   1119 	C$rt_serial.c$343$4$9 ==.
1120
                           1120 ;rt_serial.c:343: SIO1_TxBusy = TRUE;                  /* flow has not been stopped            */
1121
                           1121 ;     genAssign
1122
   00F0 D2*00              1122 	setb	_SIO1_TxBusy
1123
                    00F2   1123 	C$rt_serial.c$344$4$9 ==.
1124
                           1124 ;rt_serial.c:344: SBUF   = c;
1125
                           1125 ;     genAssign
1126
   00F2 8A 99              1126 	mov	_SBUF,r2
1127
                           1127 ;	Peephole 112.b	changed ljmp to sjmp
1128
   00F4 80 02              1128 	sjmp	00115$
1129
   00F6                    1129 00110$:
1130
                    00F6   1130 	C$rt_serial.c$348$4$10 ==.
1131
                           1131 ;rt_serial.c:348: SIO1_TxBusy = FALSE;
1132
                           1132 ;     genAssign
1133
   00F6 C2*00              1133 	clr	_SIO1_TxBusy
1134
   00F8                    1134 00115$:
1135
   00F8 D0 D0              1135 	pop	psw
1136
   00FA D0 83              1136 	pop	dph
1137
   00FC D0 82              1137 	pop	dpl
1138
   00FE D0 E0              1138 	pop	acc
1139
                    0100   1139 	C$rt_serial.c$355$3$1 ==.
1140
                    0100   1140 	XG$SIOInterrupt$0$0 ==.
1141
   0100 32                 1141 	reti
1142
                           1142 ;	eliminated unneeded push/pop b
1143
                           1143 ;------------------------------------------------------------
1144
                           1144 ;Allocation info for local variables in function 'T2Interrupt'
1145
                           1145 ;------------------------------------------------------------
1146
                           1146 ;TempPtr                   Allocated with name '_T2Interrupt_TempPtr_6_10'
1147
                           1147 ;------------------------------------------------------------
1148
                    0101   1148 	G$T2Interrupt$0$0 ==.
1149
                    0101   1149 	C$rt_serial.c$362$3$1 ==.
1150
                           1150 ;rt_serial.c:362: void T2Interrupt(void) interrupt T2_INTVEC using T2_INTERRUPT_BANK
1151
                           1151 ;	-----------------------------------------
1152
                           1152 ;	 function T2Interrupt
1153
                           1153 ;	-----------------------------------------
1154
   0101                    1154 _T2Interrupt:
1155
                    001A   1155 	ar2 = 0x1a
1156
                    001B   1156 	ar3 = 0x1b
1157
                    001C   1157 	ar4 = 0x1c
1158
                    001D   1158 	ar5 = 0x1d
1159
                    001E   1159 	ar6 = 0x1e
1160
                    001F   1160 	ar7 = 0x1f
1161
                    0018   1161 	ar0 = 0x18
1162
                    0019   1162 	ar1 = 0x19
1163
   0101 C0 E0              1163 	push	acc
1164
   0103 C0 82              1164 	push	dpl
1165
   0105 C0 83              1165 	push	dph
1166
   0107 C0 D0              1166 	push	psw
1167
   0109 75 D0 18           1167 	mov	psw,#0x18
1168
                    010C   1168 	C$rt_serial.c$366$1$1 ==.
1169
                           1169 ;rt_serial.c:366: if (EXF2) 
1170
                           1170 ;     genIfx
1171
                           1171 ;     genIfxJump
1172
                           1172 ;	Peephole 111	removed ljmp by inverse jump logic
1173
                    010C   1173 	C$rt_serial.c$369$2$2 ==.
1174
                           1174 ;rt_serial.c:369: EXF2  = FALSE;
1175
                           1175 ;     genAssign
1176
                           1176 ;	Peephole 250.a	using atomic test and clear
1177
   010C 10 CE 02           1177 	jbc	_EXF2,00133$
1178
   010F 80 0F              1178 	sjmp	00102$
1179
   0111                    1179 00133$:
1180
                    0111   1180 	C$rt_serial.c$370$2$2 ==.
1181
                           1181 ;rt_serial.c:370: TF2    = FALSE;  
1182
                           1182 ;     genAssign
1183
   0111 C2 CF              1183 	clr	_TF2
1184
                    0113   1184 	C$rt_serial.c$372$2$2 ==.
1185
                           1185 ;rt_serial.c:372: EXEN2 = FALSE; /* turn off the ext2 IRQ */
1186
                           1186 ;     genAssign
1187
   0113 C2 CB              1187 	clr	_EXEN2
1188
                    0115   1188 	C$rt_serial.c$376$2$2 ==.
1189
                           1189 ;rt_serial.c:376: RCAP2H =  SIO2_BAUDCODE_BIT / 256;
1190
                           1190 ;     genAssign
1191
   0115 75 CB FF           1191 	mov	_RCAP2H,#0xFF
1192
                    0118   1192 	C$rt_serial.c$377$2$2 ==.
1193
                           1193 ;rt_serial.c:377: RCAP2L =  SIO2_BAUDCODE_BIT & 255;    /* set timer 2 for 4800 baud   */
1194
                           1194 ;     genAssign
1195
   0118 75 CA 40           1195 	mov	_RCAP2L,#0x40
1196
                    011B   1196 	C$rt_serial.c$379$2$2 ==.
1197
                           1197 ;rt_serial.c:379: SIO2_BitCnt = 0;   /* count up incl start bit to 8 */
1198
                           1198 ;     genAssign
1199
   011B 90s00rE7           1199 	mov	dptr,#_SIO2_BitCnt
1200
                           1200 ;	Peephole 181	changed mov to clr
1201
   011E E4                 1201 	clr	a
1202
   011F F0                 1202 	movx	@dptr,a
1203
   0120                    1203 00102$:
1204
                    0120   1204 	C$rt_serial.c$387$1$1 ==.
1205
                           1205 ;rt_serial.c:387: if (TF2) 
1206
                           1206 ;     genIfx
1207
                           1207 ;     genIfxJump
1208
                    0120   1208 	C$rt_serial.c$390$2$3 ==.
1209
                           1209 ;rt_serial.c:390: TF2 = FALSE;
1210
                           1210 ;     genAssign
1211
                           1211 ;	Peephole 250.b	using atomic test and clear
1212
   0120 10 CF 03           1212 	jbc	_TF2,00134$
1213
   0123 02s01rD7           1213 	ljmp	00122$
1214
   0126                    1214 00134$:
1215
                    0126   1215 	C$rt_serial.c$440$2$3 ==.
1216
                           1216 ;rt_serial.c:440: if(!EXEN2)
1217
                           1217 ;     genIfx
1218
                           1218 ;     genIfxJump
1219
   0126 30 CB 03           1219 	jnb	_EXEN2,00135$
1220
   0129 02s01rD7           1220 	ljmp	00122$
1221
   012C                    1221 00135$:
1222
                    012C   1222 	C$rt_serial.c$443$3$4 ==.
1223
                           1223 ;rt_serial.c:443: if(SIO2_BitCnt == 0)
1224
                           1224 ;     genAssign
1225
   012C 90s00rE7           1225 	mov	dptr,#_SIO2_BitCnt
1226
   012F E0                 1226 	movx	a,@dptr
1227
   0130 FA                 1227 	mov	r2,a
1228
                           1228 ;     genCmpEq
1229
                           1229 ;	Peephole 112.b	changed ljmp to sjmp
1230
                           1230 ;	Peephole 199	optimized misc jump sequence
1231
   0131 BA 00 1C           1231 	cjne	r2,#0x00,00116$
1232
                           1232 ;00136$:
1233
                           1233 ;	Peephole 200	removed redundant sjmp
1234
   0134                    1234 00137$:
1235
                           1235 ;     genIfx
1236
                           1236 ;     genIfxJump
1237
                           1237 ;	Peephole 111	removed ljmp by inverse jump logic
1238
   0134 30 91 0F           1238 	jnb	_P1_1,00104$
1239
   0137                    1239 00138$:
1240
                    0137   1240 	C$rt_serial.c$448$5$6 ==.
1241
                           1241 ;rt_serial.c:448: RCAP2H    =  SIO2_BAUDCODE_START / 256;   /* setup for 4800 baud */
1242
                           1242 ;     genAssign
1243
   0137 75 CB FF           1243 	mov	_RCAP2H,#0xFF
1244
                    013A   1244 	C$rt_serial.c$449$5$6 ==.
1245
                           1245 ;rt_serial.c:449: RCAP2L    =  SIO2_BAUDCODE_START & 255;   /* start bit */
1246
                           1246 ;     genAssign
1247
   013A 75 CA A0           1247 	mov	_RCAP2L,#0xA0
1248
                    013D   1248 	C$rt_serial.c$450$5$6 ==.
1249
                           1249 ;rt_serial.c:450: EXF2      = FALSE;
1250
                           1250 ;     genAssign
1251
   013D C2 CE              1251 	clr	_EXF2
1252
                    013F   1252 	C$rt_serial.c$451$5$6 ==.
1253
                           1253 ;rt_serial.c:451: EXEN2     = TRUE;
1254
                           1254 ;     genAssign
1255
   013F D2 CB              1255 	setb	_EXEN2
1256
                    0141   1256 	C$rt_serial.c$452$5$6 ==.
1257
                           1257 ;rt_serial.c:452: TR2       = TRUE; /* Keep running counter */
1258
                           1258 ;     genAssign
1259
   0141 D2 CA              1259 	setb	_TR2
1260
   0143 02s01rD7           1260 	ljmp	00122$
1261
   0146                    1261 00104$:
1262
                    0146   1262 	C$rt_serial.c$459$5$7 ==.
1263
                           1263 ;rt_serial.c:459: SIO2_BitCnt++;
1264
                           1264 ;     genPlus
1265
   0146 90s00rE7           1265 	mov	dptr,#_SIO2_BitCnt
1266
   0149 E0                 1266 	movx	a,@dptr
1267
   014A 24 01              1267 	add	a,#0x01
1268
   014C F0                 1268 	movx	@dptr,a
1269
   014D 02s01rD7           1269 	ljmp	00122$
1270
   0150                    1270 00116$:
1271
                    0150   1271 	C$rt_serial.c$464$4$8 ==.
1272
                           1272 ;rt_serial.c:464: SIO2_Byte = (SIO2_Byte >> 1) | (SIO2_RXD << 7);
1273
                           1273 ;     genAssign
1274
   0150 90s00rE6           1274 	mov	dptr,#_SIO2_Byte
1275
   0153 E0                 1275 	movx	a,@dptr
1276
                           1276 ;     genRightShift
1277
                           1277 ;     genRightShiftLiteral
1278
                           1278 ;     genrshOne
1279
                           1279 ;	Peephole 105	removed redundant mov
1280
   0154 FA                 1280 	mov	r2,a
1281
   0155 C3                 1281 	clr	c
1282
   0156 13                 1282 	rrc	a
1283
   0157 FA                 1283 	mov	r2,a
1284
                           1284 ;     genAssign
1285
   0158 E4                 1285 	clr	a
1286
   0159 A2 91              1286 	mov	c,_P1_1
1287
   015B 33                 1287 	rlc	a
1288
                           1288 ;     genLeftShift
1289
                           1289 ;     genLeftShiftLiteral
1290
                           1290 ;     genlshOne
1291
                           1291 ;	Peephole 105	removed redundant mov
1292
   015C FB                 1292 	mov	r3,a
1293
   015D 03                 1293 	rr	a
1294
   015E 54 80              1294 	anl	a,#0x80
1295
                           1295 ;     genOr
1296
                           1296 ;	Peephole 177.d	removed redundant move
1297
   0160 FB                 1297 	mov	r3,a
1298
   0161 90s00rE6           1298 	mov	dptr,#_SIO2_Byte
1299
   0164 4A                 1299 	orl	a,r2
1300
   0165 F0                 1300 	movx	@dptr,a
1301
                    0166   1301 	C$rt_serial.c$466$4$8 ==.
1302
                           1302 ;rt_serial.c:466: if (SIO2_BitCnt==8 )
1303
                           1303 ;     genAssign
1304
   0166 90s00rE7           1304 	mov	dptr,#_SIO2_BitCnt
1305
   0169 E0                 1305 	movx	a,@dptr
1306
   016A FA                 1306 	mov	r2,a
1307
                           1307 ;     genCmpEq
1308
                           1308 ;	Peephole 112.b	changed ljmp to sjmp
1309
                           1309 ;	Peephole 199	optimized misc jump sequence
1310
   016B BA 08 4A           1310 	cjne	r2,#0x08,00111$
1311
                           1311 ;00139$:
1312
                           1312 ;	Peephole 200	removed redundant sjmp
1313
   016E                    1313 00140$:
1314
                    016E   1314 	C$rt_serial.c$468$5$9 ==.
1315
                           1315 ;rt_serial.c:468: if(SIO2_RxCount != SIO2_RX_FIFOFULL)       /* is there room left in the Rx FIFO ?    */
1316
                           1316 ;     genAssign
1317
   016E 90s00rE5           1317 	mov	dptr,#_SIO2_RxCount
1318
   0171 E0                 1318 	movx	a,@dptr
1319
   0172 FA                 1319 	mov	r2,a
1320
                           1320 ;     genCmpEq
1321
   0173 BA 40 02           1321 	cjne	r2,#0x40,00141$
1322
                           1322 ;	Peephole 112.b	changed ljmp to sjmp
1323
   0176 80 26              1323 	sjmp	00107$
1324
   0178                    1324 00141$:
1325
                    0178   1325 	C$rt_serial.c$470$6$10 ==.
1326
                           1326 ;rt_serial.c:470: Byte TempPtr = (SIO2_RxPtr+SIO2_RxCount) & SIO2_RX_FIFOMASK;
1327
                           1327 ;     genAssign
1328
   0178 90s00rE5           1328 	mov	dptr,#_SIO2_RxCount
1329
   017B E0                 1329 	movx	a,@dptr
1330
   017C FA                 1330 	mov	r2,a
1331
                           1331 ;     genAssign
1332
   017D 90s00rE4           1332 	mov	dptr,#_SIO2_RxPtr
1333
   0180 E0                 1333 	movx	a,@dptr
1334
   0181 FB                 1334 	mov	r3,a
1335
                           1335 ;     genPlus
1336
                           1336 ;	Peephole 236.g	used r2 instead of ar2
1337
   0182 EA                 1337 	mov	a,r2
1338
                           1338 ;	Peephole 236.a	used r3 instead of ar3
1339
   0183 2B                 1339 	add	a,r3
1340
                           1340 ;     genAnd
1341
   0184 54 3F              1341 	anl	a,#0x3F
1342
                    0186   1342 	C$rt_serial.c$471$6$10 ==.
1343
                           1343 ;rt_serial.c:471: SIO2_RXFIFO[TempPtr] = SIO2_Byte;
1344
                           1344 ;     genPlus
1345
                           1345 ;	Peephole 177.b	removed redundant mov
1346
                           1346 ;	Peephole 215	removed some moves
1347
   0186 24rA0              1347 	add	a,#_SIO2_RXFIFO
1348
   0188 FA                 1348 	mov	r2,a
1349
                           1349 ;	Peephole 181	changed mov to clr
1350
   0189 E4                 1350 	clr	a
1351
   018A 34s00              1351 	addc	a,#(_SIO2_RXFIFO >> 8)
1352
   018C FB                 1352 	mov	r3,a
1353
                           1353 ;     genAssign
1354
   018D 90s00rE6           1354 	mov	dptr,#_SIO2_Byte
1355
   0190 E0                 1355 	movx	a,@dptr
1356
                           1356 ;     genPointerSet
1357
                           1357 ;     genFarPointerSet
1358
                           1358 ;	Peephole 136	removed redundant moves
1359
   0191 FC                 1359 	mov	r4,a
1360
   0192 8A 82              1360 	mov	dpl,r2
1361
   0194 8B 83              1361 	mov	dph,r3
1362
   0196 F0                 1362 	movx	@dptr,a
1363
                    0197   1363 	C$rt_serial.c$472$6$10 ==.
1364
                           1364 ;rt_serial.c:472: SIO2_RxCount++;
1365
                           1365 ;     genPlus
1366
   0197 90s00rE5           1366 	mov	dptr,#_SIO2_RxCount
1367
   019A E0                 1367 	movx	a,@dptr
1368
   019B 24 01              1368 	add	a,#0x01
1369
   019D F0                 1369 	movx	@dptr,a
1370
   019E                    1370 00107$:
1371
                    019E   1371 	C$rt_serial.c$475$5$9 ==.
1372
                           1372 ;rt_serial.c:475: INT_SIGNAL(SIO2_TASK,SERIAL_SIG);
1373
                           1373 ;     genPointerGet
1374
                           1374 ;     genNearPointerGet
1375
   019E 78r01              1375 	mov	r0,#(_task_signals + 0x0001)
1376
   01A0 86 1A              1376 	mov	ar2,@r0
1377
                           1377 ;     genOr
1378
   01A2 74 40              1378 	mov	a,#0x40
1379
   01A4 4A                 1379 	orl	a,r2
1380
                           1380 ;     genPointerSet
1381
                           1381 ;     genNearPointerSet
1382
   01A5 78r01              1382 	mov	r0,#(_task_signals + 0x0001)
1383
   01A7 A6 E0              1383 	mov	@r0,acc
1384
                           1384 ;     genPointerGet
1385
                           1385 ;     genNearPointerGet
1386
   01A9 78r01              1386 	mov	r0,#(_task_signals + 0x0001)
1387
   01AB 86 1A              1387 	mov	ar2,@r0
1388
                           1388 ;     genPointerGet
1389
                           1389 ;     genNearPointerGet
1390
   01AD 78r01              1390 	mov	r0,#(_task_masks + 0x0001)
1391
   01AF 86 1B              1391 	mov	ar3,@r0
1392
                           1392 ;     genAnd
1393
   01B1 EB                 1393 	mov	a,r3
1394
   01B2 5A                 1394 	anl	a,r2
1395
                           1395 ;     genIfx
1396
                           1396 ;     genIfxJump
1397
                           1397 ;	Peephole 110	removed ljmp by inverse jump logic
1398
   01B3 60 03              1398 	jz	00111$
1399
   01B5                    1399 00142$:
1400
                           1400 ;     genOr
1401
   01B5 43r00 02           1401 	orl	_ready,#0x02
1402
   01B8                    1402 00111$:
1403
                    01B8   1403 	C$rt_serial.c$479$4$8 ==.
1404
                           1404 ;rt_serial.c:479: if(SIO2_BitCnt <8 )
1405
                           1405 ;     genAssign
1406
   01B8 90s00rE7           1406 	mov	dptr,#_SIO2_BitCnt
1407
   01BB E0                 1407 	movx	a,@dptr
1408
   01BC FA                 1408 	mov	r2,a
1409
                           1409 ;     genCmpLt
1410
                           1410 ;     genCmp
1411
   01BD BA 08 00           1411 	cjne	r2,#0x08,00143$
1412
   01C0                    1412 00143$:
1413
                           1413 ;     genIfxJump
1414
                           1414 ;	Peephole 108	removed ljmp by inverse jump logic
1415
   01C0 50 09              1415 	jnc	00113$
1416
   01C2                    1416 00144$:
1417
                    01C2   1417 	C$rt_serial.c$481$5$12 ==.
1418
                           1418 ;rt_serial.c:481: SIO2_BitCnt++;
1419
                           1419 ;     genPlus
1420
   01C2 90s00rE7           1420 	mov	dptr,#_SIO2_BitCnt
1421
   01C5 E0                 1421 	movx	a,@dptr
1422
   01C6 24 01              1422 	add	a,#0x01
1423
   01C8 F0                 1423 	movx	@dptr,a
1424
                           1424 ;	Peephole 112.b	changed ljmp to sjmp
1425
   01C9 80 0C              1425 	sjmp	00122$
1426
   01CB                    1426 00113$:
1427
                    01CB   1427 	C$rt_serial.c$497$6$14 ==.
1428
                           1428 ;rt_serial.c:497: RCAP2H    =  SIO2_BAUDCODE_START / 256;   /* setup for 4800 baud */
1429
                           1429 ;     genAssign
1430
   01CB 75 CB FF           1430 	mov	_RCAP2H,#0xFF
1431
                    01CE   1431 	C$rt_serial.c$498$6$14 ==.
1432
                           1432 ;rt_serial.c:498: RCAP2L    =  SIO2_BAUDCODE_START & 255;   /* start bit */
1433
                           1433 ;     genAssign
1434
   01CE 75 CA A0           1434 	mov	_RCAP2L,#0xA0
1435
                    01D1   1435 	C$rt_serial.c$499$6$14 ==.
1436
                           1436 ;rt_serial.c:499: EXF2    = FALSE;
1437
                           1437 ;     genAssign
1438
   01D1 C2 CE              1438 	clr	_EXF2
1439
                    01D3   1439 	C$rt_serial.c$500$6$14 ==.
1440
                           1440 ;rt_serial.c:500: EXEN2   = TRUE;
1441
                           1441 ;     genAssign
1442
   01D3 D2 CB              1442 	setb	_EXEN2
1443
                    01D5   1443 	C$rt_serial.c$501$6$14 ==.
1444
                           1444 ;rt_serial.c:501: TR2     = TRUE; /* Keep running counter */
1445
                           1445 ;     genAssign
1446
   01D5 D2 CA              1446 	setb	_TR2
1447
   01D7                    1447 00122$:
1448
   01D7 D0 D0              1448 	pop	psw
1449
   01D9 D0 83              1449 	pop	dph
1450
   01DB D0 82              1450 	pop	dpl
1451
   01DD D0 E0              1451 	pop	acc
1452
                    01DF   1452 	C$rt_serial.c$507$1$1 ==.
1453
                    01DF   1453 	XG$T2Interrupt$0$0 ==.
1454
   01DF 32                 1454 	reti
1455
                           1455 ;	eliminated unneeded push/pop b
1456
                           1456 ;------------------------------------------------------------
1457
                           1457 ;Allocation info for local variables in function 'putchar'
1458
                           1458 ;------------------------------------------------------------
1459
                           1459 ;c                         Allocated with name '_putchar_c_1_1'
1460
                           1460 ;------------------------------------------------------------
1461
                    01E0   1461 	G$putchar$0$0 ==.
1462
                    01E0   1462 	C$rt_serial.c$525$1$1 ==.
1463
                           1463 ;rt_serial.c:525: void putchar(char c)
1464
                           1464 ;	-----------------------------------------
1465
                           1465 ;	 function putchar
1466
                           1466 ;	-----------------------------------------
1467
   01E0                    1467 _putchar:
1468
                    0002   1468 	ar2 = 0x02
1469
                    0003   1469 	ar3 = 0x03
1470
                    0004   1470 	ar4 = 0x04
1471
                    0005   1471 	ar5 = 0x05
1472
                    0006   1472 	ar6 = 0x06
1473
                    0007   1473 	ar7 = 0x07
1474
                    0000   1474 	ar0 = 0x00
1475
                    0001   1475 	ar1 = 0x01
1476
                           1476 ;     genReceive
1477
   01E0 E5 82              1477 	mov	a,dpl
1478
   01E2 90s00rE9           1478 	mov	dptr,#_putchar_c_1_1
1479
   01E5 F0                 1479 	movx	@dptr,a
1480
                    01E6   1480 	C$rt_serial.c$528$2$2 ==.
1481
                           1481 ;rt_serial.c:528: BEGIN_CRITICAL;
1482
                           1482 ;     genIfx
1483
                           1483 ;     genIfxJump
1484
                           1484 ;	Peephole 111	removed ljmp by inverse jump logic
1485
                           1485 ;     genAssign
1486
                           1486 ;	Peephole 250.a	using atomic test and clear
1487
   01E6 10 AF 02           1487 	jbc	_EA,00119$
1488
   01E9 80 04              1488 	sjmp	00102$
1489
   01EB                    1489 00119$:
1490
                           1490 ;     genAssign
1491
   01EB D2*02              1491 	setb	_putchar_EA_local_1_1
1492
                           1492 ;	Peephole 112.b	changed ljmp to sjmp
1493
   01ED 80 02              1493 	sjmp	00107$
1494
   01EF                    1494 00102$:
1495
                           1495 ;     genAssign
1496
   01EF C2*02              1496 	clr	_putchar_EA_local_1_1
1497
                    01F1   1497 	C$rt_serial.c$530$1$1 ==.
1498
                           1498 ;rt_serial.c:530: while(SIO1_TxCount == SIO1_TX_FIFOFULL)
1499
   01F1                    1499 00107$:
1500
                           1500 ;     genAssign
1501
   01F1 90s00rE1           1501 	mov	dptr,#_SIO1_TxCount
1502
   01F4 E0                 1502 	movx	a,@dptr
1503
   01F5 FA                 1503 	mov	r2,a
1504
                           1504 ;     genCmpEq
1505
                           1505 ;	Peephole 112.b	changed ljmp to sjmp
1506
                           1506 ;	Peephole 199	optimized misc jump sequence
1507
   01F6 BA 80 14           1507 	cjne	r2,#0x80,00109$
1508
                           1508 ;00120$:
1509
                           1509 ;	Peephole 200	removed redundant sjmp
1510
   01F9                    1510 00121$:
1511
                    01F9   1511 	C$rt_serial.c$533$3$6 ==.
1512
                           1512 ;rt_serial.c:533: END_CRITICAL;
1513
                           1513 ;     genAssign
1514
   01F9 A2*02              1514 	mov	c,_putchar_EA_local_1_1
1515
   01FB 92 AF              1515 	mov	_EA,c
1516
                    01FD   1516 	C$rt_serial.c$534$2$5 ==.
1517
                           1517 ;rt_serial.c:534: RESCHEDULE;
1518
                           1518 ;     genCall
1519
   01FD 12s00r00           1519 	lcall	_reschedule
1520
                    0200   1520 	C$rt_serial.c$536$3$7 ==.
1521
                           1521 ;rt_serial.c:536: BEGIN_CRITICAL;
1522
                           1522 ;     genIfx
1523
                           1523 ;     genIfxJump
1524
                           1524 ;	Peephole 111	removed ljmp by inverse jump logic
1525
                           1525 ;     genAssign
1526
                           1526 ;	Peephole 250.a	using atomic test and clear
1527
   0200 10 AF 02           1527 	jbc	_EA,00122$
1528
   0203 80 04              1528 	sjmp	00105$
1529
   0205                    1529 00122$:
1530
                           1530 ;     genAssign
1531
   0205 D2*02              1531 	setb	_putchar_EA_local_1_1
1532
                           1532 ;	Peephole 112.b	changed ljmp to sjmp
1533
   0207 80 E8              1533 	sjmp	00107$
1534
   0209                    1534 00105$:
1535
                           1535 ;     genAssign
1536
   0209 C2*02              1536 	clr	_putchar_EA_local_1_1
1537
                           1537 ;	Peephole 112.b	changed ljmp to sjmp
1538
   020B 80 E4              1538 	sjmp	00107$
1539
   020D                    1539 00109$:
1540
                    020D   1540 	C$rt_serial.c$540$1$1 ==.
1541
                           1541 ;rt_serial.c:540: SIO1_TXFIFO[(SIO1_TxPtr+SIO1_TxCount) & SIO1_TX_FIFOMASK] = c;     /* place character into buffer */
1542
                           1542 ;     genAssign
1543
   020D 90s00rE1           1543 	mov	dptr,#_SIO1_TxCount
1544
   0210 E0                 1544 	movx	a,@dptr
1545
   0211 FA                 1545 	mov	r2,a
1546
                           1546 ;     genAssign
1547
   0212 90s00rE0           1547 	mov	dptr,#_SIO1_TxPtr
1548
   0215 E0                 1548 	movx	a,@dptr
1549
                           1549 ;     genPlus
1550
                           1550 ;	Peephole 236.g	used r2 instead of ar2
1551
                           1551 ;	Peephole 236.a	used r3 instead of ar3
1552
                           1552 ;	Peephole 214	reduced some extra moves
1553
   0216 FB                 1553 	mov	r3,a
1554
   0217 2A                 1554 	add	a,r2
1555
                           1555 ;     genAnd
1556
   0218 54 7F              1556 	anl	a,#0x7F
1557
                           1557 ;     genPlus
1558
   021A 24r00              1558 	add	a,#_SIO1_TXFIFO
1559
   021C FA                 1559 	mov	r2,a
1560
                           1560 ;	Peephole 240	use clr instead of addc a,#0
1561
   021D E4                 1561 	clr	a
1562
   021E 34s00              1562 	addc	a,#(_SIO1_TXFIFO >> 8)
1563
   0220 FB                 1563 	mov	r3,a
1564
                           1564 ;     genAssign
1565
   0221 90s00rE9           1565 	mov	dptr,#_putchar_c_1_1
1566
   0224 E0                 1566 	movx	a,@dptr
1567
                           1567 ;     genPointerSet
1568
                           1568 ;     genFarPointerSet
1569
                           1569 ;	Peephole 136	removed redundant moves
1570
   0225 FC                 1570 	mov	r4,a
1571
   0226 8A 82              1571 	mov	dpl,r2
1572
   0228 8B 83              1572 	mov	dph,r3
1573
   022A F0                 1573 	movx	@dptr,a
1574
                    022B   1574 	C$rt_serial.c$541$1$1 ==.
1575
                           1575 ;rt_serial.c:541: SIO1_TxCount++;
1576
                           1576 ;     genPlus
1577
   022B 90s00rE1           1577 	mov	dptr,#_SIO1_TxCount
1578
   022E E0                 1578 	movx	a,@dptr
1579
   022F 24 01              1579 	add	a,#0x01
1580
   0231 F0                 1580 	movx	@dptr,a
1581
                    0232   1581 	C$rt_serial.c$542$2$10 ==.
1582
                           1582 ;rt_serial.c:542: END_CRITICAL;
1583
                           1583 ;     genAssign
1584
   0232 A2*02              1584 	mov	c,_putchar_EA_local_1_1
1585
   0234 92 AF              1585 	mov	_EA,c
1586
                    0236   1586 	C$rt_serial.c$544$1$1 ==.
1587
                           1587 ;rt_serial.c:544: if (!SIO1_TxBusy) 
1588
                           1588 ;     genIfx
1589
                           1589 ;     genIfxJump
1590
                           1590 ;	Peephole 112.a	removed ljmp by inverse jump logic
1591
   0236 20*00 02           1591 	jb	_SIO1_TxBusy,00112$
1592
   0239                    1592 00123$:
1593
                    0239   1593 	C$rt_serial.c$546$2$11 ==.
1594
                           1594 ;rt_serial.c:546: TI=1;
1595
                           1595 ;     genAssign
1596
   0239 D2 99              1596 	setb	_TI
1597
   023B                    1597 00112$:
1598
                    023B   1598 	C$rt_serial.c$569$2$1 ==.
1599
                    023B   1599 	XG$putchar$0$0 ==.
1600
   023B 22                 1600 	ret
1601
                           1601 ;------------------------------------------------------------
1602
                           1602 ;Allocation info for local variables in function 'getchar'
1603
                           1603 ;------------------------------------------------------------
1604
                           1604 ;Chr                       Allocated with name '_getchar_Chr_1_1'
1605
                           1605 ;------------------------------------------------------------
1606
                    023C   1606 	G$getchar$0$0 ==.
1607
                    023C   1607 	C$rt_serial.c$620$2$1 ==.
1608
                           1608 ;rt_serial.c:620: char getchar(void)
1609
                           1609 ;	-----------------------------------------
1610
                           1610 ;	 function getchar
1611
                           1611 ;	-----------------------------------------
1612
   023C                    1612 _getchar:
1613
                    023C   1613 	C$rt_serial.c$624$1$1 ==.
1614
                           1614 ;rt_serial.c:624: while (!SIO1_RxCount)
1615
   023C                    1615 00101$:
1616
                           1616 ;     genAssign
1617
   023C 90s00rE3           1617 	mov	dptr,#_SIO1_RxCount
1618
   023F E0                 1618 	movx	a,@dptr
1619
                           1619 ;     genIfx
1620
                           1620 ;	Peephole 105	removed redundant mov
1621
   0240 FA                 1621 	mov	r2,a
1622
                           1622 ;     genIfxJump
1623
                           1623 ;	Peephole 109	removed ljmp by inverse jump logic
1624
   0241 70 05              1624 	jnz	00103$
1625
   0243                    1625 00115$:
1626
                    0243   1626 	C$rt_serial.c$626$2$2 ==.
1627
                           1627 ;rt_serial.c:626: RESCHEDULE;  
1628
                           1628 ;     genCall
1629
   0243 12s00r00           1629 	lcall	_reschedule
1630
                           1630 ;	Peephole 112.b	changed ljmp to sjmp
1631
   0246 80 F4              1631 	sjmp	00101$
1632
   0248                    1632 00103$:
1633
                    0248   1633 	C$rt_serial.c$629$2$3 ==.
1634
                           1634 ;rt_serial.c:629: BEGIN_CRITICAL;
1635
                           1635 ;     genIfx
1636
                           1636 ;     genIfxJump
1637
                           1637 ;	Peephole 111	removed ljmp by inverse jump logic
1638
                           1638 ;     genAssign
1639
                           1639 ;	Peephole 250.a	using atomic test and clear
1640
   0248 10 AF 02           1640 	jbc	_EA,00116$
1641
   024B 80 04              1641 	sjmp	00105$
1642
   024D                    1642 00116$:
1643
                           1643 ;     genAssign
1644
   024D D2*03              1644 	setb	_getchar_EA_local_1_1
1645
                           1645 ;	Peephole 112.b	changed ljmp to sjmp
1646
   024F 80 02              1646 	sjmp	00106$
1647
   0251                    1647 00105$:
1648
                           1648 ;     genAssign
1649
   0251 C2*03              1649 	clr	_getchar_EA_local_1_1
1650
   0253                    1650 00106$:
1651
                    0253   1651 	C$rt_serial.c$631$1$1 ==.
1652
                           1652 ;rt_serial.c:631: Chr = SIO1_RXFIFO[SIO1_RxPtr];  /* get next char out of RxFIFO */
1653
                           1653 ;     genAssign
1654
   0253 90s00rE2           1654 	mov	dptr,#_SIO1_RxPtr
1655
   0256 E0                 1655 	movx	a,@dptr
1656
                           1656 ;     genPlus
1657
                           1657 ;	Peephole 177.b	removed redundant mov
1658
   0257 FA                 1658 	mov	r2,a
1659
   0258 24r80              1659 	add	a,#_SIO1_RXFIFO
1660
   025A F5 82              1660 	mov	dpl,a
1661
                           1661 ;	Peephole 181	changed mov to clr
1662
   025C E4                 1662 	clr	a
1663
   025D 34s00              1663 	addc	a,#(_SIO1_RXFIFO >> 8)
1664
   025F F5 83              1664 	mov	dph,a
1665
                           1665 ;     genPointerGet
1666
                           1666 ;     genFarPointerGet
1667
   0261 E0                 1667 	movx	a,@dptr
1668
   0262 FA                 1668 	mov	r2,a
1669
                    0263   1669 	C$rt_serial.c$632$1$1 ==.
1670
                           1670 ;rt_serial.c:632: SIO1_RxPtr++;
1671
                           1671 ;     genPlus
1672
   0263 90s00rE2           1672 	mov	dptr,#_SIO1_RxPtr
1673
   0266 E0                 1673 	movx	a,@dptr
1674
   0267 24 01              1674 	add	a,#0x01
1675
   0269 F0                 1675 	movx	@dptr,a
1676
                    026A   1676 	C$rt_serial.c$633$1$1 ==.
1677
                           1677 ;rt_serial.c:633: SIO1_RxPtr   &= SIO1_RX_FIFOMASK;
1678
                           1678 ;     genAssign
1679
                           1679 ;     genAnd
1680
                           1680 ;	Peephole 248.b	optimized and to xdata
1681
   026A 90s00rE2           1681 	mov	dptr,#_SIO1_RxPtr
1682
   026D E0                 1682 	movx	a,@dptr
1683
   026E FB                 1683 	mov	r3,a
1684
   026F 54 1F              1684 	anl	a,#0x1F
1685
   0271 F0                 1685 	movx	@dptr,a
1686
                    0272   1686 	C$rt_serial.c$634$1$1 ==.
1687
                           1687 ;rt_serial.c:634: SIO1_RxCount--;
1688
                           1688 ;     genMinus
1689
   0272 90s00rE3           1689 	mov	dptr,#_SIO1_RxCount
1690
                           1690 ;     genMinusDec
1691
   0275 E0                 1691 	movx	a,@dptr
1692
   0276 14                 1692 	dec	a
1693
                           1693 ;     genAssign
1694
   0277 90s00rE3           1694 	mov	dptr,#_SIO1_RxCount
1695
   027A F0                 1695 	movx	@dptr,a
1696
                    027B   1696 	C$rt_serial.c$635$1$1 ==.
1697
                           1697 ;rt_serial.c:635: SIO1_RxCount &= SIO1_RX_FIFOMASK;
1698
                           1698 ;     genAssign
1699
                           1699 ;     genAnd
1700
                           1700 ;	Peephole 248.b	optimized and to xdata
1701
   027B 90s00rE3           1701 	mov	dptr,#_SIO1_RxCount
1702
   027E E0                 1702 	movx	a,@dptr
1703
   027F FB                 1703 	mov	r3,a
1704
   0280 54 1F              1704 	anl	a,#0x1F
1705
   0282 F0                 1705 	movx	@dptr,a
1706
                    0283   1706 	C$rt_serial.c$647$1$1 ==.
1707
                           1707 ;rt_serial.c:647: if(SIO1_RxCount <= (Byte) SIO1_RX_FIFO_LWM)  /* when space in FIFO restart */
1708
                           1708 ;     genAssign
1709
   0283 90s00rE3           1709 	mov	dptr,#_SIO1_RxCount
1710
   0286 E0                 1710 	movx	a,@dptr
1711
   0287 FB                 1711 	mov	r3,a
1712
                           1712 ;     genCmpGt
1713
                           1713 ;     genCmp
1714
   0288 C3                 1714 	clr	c
1715
   0289 74 08              1715 	mov	a,#0x08
1716
   028B 9B                 1716 	subb	a,r3
1717
                           1717 ;     genIfxJump
1718
                           1718 ;	Peephole 112.b	changed ljmp to sjmp
1719
                           1719 ;	Peephole 160	removed sjmp by inverse jump logic
1720
   028C 40 02              1720 	jc	00108$
1721
   028E                    1721 00117$:
1722
                    028E   1722 	C$rt_serial.c$649$2$6 ==.
1723
                           1723 ;rt_serial.c:649: SIO1_CTS     = FALSE;
1724
                           1724 ;     genAssign
1725
   028E C2 95              1725 	clr	_P1_5
1726
   0290                    1726 00108$:
1727
                    0290   1727 	C$rt_serial.c$653$2$7 ==.
1728
                           1728 ;rt_serial.c:653: END_CRITICAL; 
1729
                           1729 ;     genAssign
1730
   0290 A2*03              1730 	mov	c,_getchar_EA_local_1_1
1731
   0292 92 AF              1731 	mov	_EA,c
1732
                    0294   1732 	C$rt_serial.c$655$1$1 ==.
1733
                           1733 ;rt_serial.c:655: return Chr;
1734
                           1734 ;     genRet
1735
   0294 8A 82              1735 	mov	dpl,r2
1736
   0296                    1736 00109$:
1737
                    0296   1737 	C$rt_serial.c$656$1$1 ==.
1738
                    0296   1738 	XG$getchar$0$0 ==.
1739
   0296 22                 1739 	ret
1740
                           1740 ;------------------------------------------------------------
1741
                           1741 ;Allocation info for local variables in function 'SIO2_getchar'
1742
                           1742 ;------------------------------------------------------------
1743
                           1743 ;Chr                       Allocated with name '_SIO2_getchar_Chr_1_1'
1744
                           1744 ;------------------------------------------------------------
1745
                    0297   1745 	G$SIO2_getchar$0$0 ==.
1746
                    0297   1746 	C$rt_serial.c$662$1$1 ==.
1747
                           1747 ;rt_serial.c:662: char SIO2_getchar(void)
1748
                           1748 ;	-----------------------------------------
1749
                           1749 ;	 function SIO2_getchar
1750
                           1750 ;	-----------------------------------------
1751
   0297                    1751 _SIO2_getchar:
1752
                    0297   1752 	C$rt_serial.c$667$1$1 ==.
1753
                           1753 ;rt_serial.c:667: while (!SIO2_RxCount)
1754
   0297                    1754 00101$:
1755
                           1755 ;     genAssign
1756
   0297 90s00rE5           1756 	mov	dptr,#_SIO2_RxCount
1757
   029A E0                 1757 	movx	a,@dptr
1758
                           1758 ;     genIfx
1759
                           1759 ;	Peephole 105	removed redundant mov
1760
   029B FA                 1760 	mov	r2,a
1761
                           1761 ;     genIfxJump
1762
                           1762 ;	Peephole 109	removed ljmp by inverse jump logic
1763
   029C 70 05              1763 	jnz	00103$
1764
   029E                    1764 00112$:
1765
                    029E   1765 	C$rt_serial.c$669$2$2 ==.
1766
                           1766 ;rt_serial.c:669: RESCHEDULE; 
1767
                           1767 ;     genCall
1768
   029E 12s00r00           1768 	lcall	_reschedule
1769
                           1769 ;	Peephole 112.b	changed ljmp to sjmp
1770
   02A1 80 F4              1770 	sjmp	00101$
1771
   02A3                    1771 00103$:
1772
                    02A3   1772 	C$rt_serial.c$672$2$3 ==.
1773
                           1773 ;rt_serial.c:672: BEGIN_CRITICAL;
1774
                           1774 ;     genIfx
1775
                           1775 ;     genIfxJump
1776
                           1776 ;	Peephole 111	removed ljmp by inverse jump logic
1777
                           1777 ;     genAssign
1778
                           1778 ;	Peephole 250.a	using atomic test and clear
1779
   02A3 10 AF 02           1779 	jbc	_EA,00113$
1780
   02A6 80 04              1780 	sjmp	00105$
1781
   02A8                    1781 00113$:
1782
                           1782 ;     genAssign
1783
   02A8 D2*04              1783 	setb	_SIO2_getchar_EA_local_1_1
1784
                           1784 ;	Peephole 112.b	changed ljmp to sjmp
1785
   02AA 80 02              1785 	sjmp	00106$
1786
   02AC                    1786 00105$:
1787
                           1787 ;     genAssign
1788
   02AC C2*04              1788 	clr	_SIO2_getchar_EA_local_1_1
1789
   02AE                    1789 00106$:
1790
                    02AE   1790 	C$rt_serial.c$674$1$1 ==.
1791
                           1791 ;rt_serial.c:674: Chr = SIO2_RXFIFO[SIO2_RxPtr];  /* get next char out of RxFIFO */
1792
                           1792 ;     genAssign
1793
   02AE 90s00rE4           1793 	mov	dptr,#_SIO2_RxPtr
1794
   02B1 E0                 1794 	movx	a,@dptr
1795
                           1795 ;     genPlus
1796
                           1796 ;	Peephole 177.b	removed redundant mov
1797
   02B2 FA                 1797 	mov	r2,a
1798
   02B3 24rA0              1798 	add	a,#_SIO2_RXFIFO
1799
   02B5 F5 82              1799 	mov	dpl,a
1800
                           1800 ;	Peephole 181	changed mov to clr
1801
   02B7 E4                 1801 	clr	a
1802
   02B8 34s00              1802 	addc	a,#(_SIO2_RXFIFO >> 8)
1803
   02BA F5 83              1803 	mov	dph,a
1804
                           1804 ;     genPointerGet
1805
                           1805 ;     genFarPointerGet
1806
   02BC E0                 1806 	movx	a,@dptr
1807
   02BD FA                 1807 	mov	r2,a
1808
                    02BE   1808 	C$rt_serial.c$675$1$1 ==.
1809
                           1809 ;rt_serial.c:675: SIO2_RxPtr++;
1810
                           1810 ;     genPlus
1811
   02BE 90s00rE4           1811 	mov	dptr,#_SIO2_RxPtr
1812
   02C1 E0                 1812 	movx	a,@dptr
1813
   02C2 24 01              1813 	add	a,#0x01
1814
   02C4 F0                 1814 	movx	@dptr,a
1815
                    02C5   1815 	C$rt_serial.c$676$1$1 ==.
1816
                           1816 ;rt_serial.c:676: SIO2_RxPtr   &= SIO2_RX_FIFOMASK;
1817
                           1817 ;     genAssign
1818
                           1818 ;     genAnd
1819
                           1819 ;	Peephole 248.b	optimized and to xdata
1820
   02C5 90s00rE4           1820 	mov	dptr,#_SIO2_RxPtr
1821
   02C8 E0                 1821 	movx	a,@dptr
1822
   02C9 FB                 1822 	mov	r3,a
1823
   02CA 54 3F              1823 	anl	a,#0x3F
1824
   02CC F0                 1824 	movx	@dptr,a
1825
                    02CD   1825 	C$rt_serial.c$677$1$1 ==.
1826
                           1826 ;rt_serial.c:677: SIO2_RxCount--;
1827
                           1827 ;     genMinus
1828
   02CD 90s00rE5           1828 	mov	dptr,#_SIO2_RxCount
1829
                           1829 ;     genMinusDec
1830
   02D0 E0                 1830 	movx	a,@dptr
1831
   02D1 14                 1831 	dec	a
1832
                           1832 ;     genAssign
1833
   02D2 90s00rE5           1833 	mov	dptr,#_SIO2_RxCount
1834
   02D5 F0                 1834 	movx	@dptr,a
1835
                    02D6   1835 	C$rt_serial.c$678$1$1 ==.
1836
                           1836 ;rt_serial.c:678: SIO2_RxCount &= SIO2_RX_FIFOMASK;
1837
                           1837 ;     genAssign
1838
                           1838 ;     genAnd
1839
                           1839 ;	Peephole 248.b	optimized and to xdata
1840
   02D6 90s00rE5           1840 	mov	dptr,#_SIO2_RxCount
1841
   02D9 E0                 1841 	movx	a,@dptr
1842
   02DA FB                 1842 	mov	r3,a
1843
   02DB 54 3F              1843 	anl	a,#0x3F
1844
   02DD F0                 1844 	movx	@dptr,a
1845
                    02DE   1845 	C$rt_serial.c$680$2$6 ==.
1846
                           1846 ;rt_serial.c:680: END_CRITICAL;
1847
                           1847 ;     genAssign
1848
   02DE A2*04              1848 	mov	c,_SIO2_getchar_EA_local_1_1
1849
   02E0 92 AF              1849 	mov	_EA,c
1850
                    02E2   1850 	C$rt_serial.c$682$1$1 ==.
1851
                           1851 ;rt_serial.c:682: return Chr;
1852
                           1852 ;     genRet
1853
   02E2 8A 82              1853 	mov	dpl,r2
1854
   02E4                    1854 00107$:
1855
                    02E4   1855 	C$rt_serial.c$683$1$1 ==.
1856
                    02E4   1856 	XG$SIO2_getchar$0$0 ==.
1857
   02E4 22                 1857 	ret
1858
                           1858 ;------------------------------------------------------------
1859
                           1859 ;Allocation info for local variables in function 'SIO1_pollchar'
1860
                           1860 ;------------------------------------------------------------
1861
                           1861 ;------------------------------------------------------------
1862
                    02E5   1862 	G$SIO1_pollchar$0$0 ==.
1863
                    02E5   1863 	C$rt_serial.c$694$1$1 ==.
1864
                           1864 ;rt_serial.c:694: char  SIO1_pollchar(void)
1865
                           1865 ;	-----------------------------------------
1866
                           1866 ;	 function SIO1_pollchar
1867
                           1867 ;	-----------------------------------------
1868
   02E5                    1868 _SIO1_pollchar:
1869
                    02E5   1869 	C$rt_serial.c$696$1$1 ==.
1870
                           1870 ;rt_serial.c:696: return SIO1_RxCount;
1871
                           1871 ;     genAssign
1872
   02E5 90s00rE3           1872 	mov	dptr,#_SIO1_RxCount
1873
   02E8 E0                 1873 	movx	a,@dptr
1874
                           1874 ;     genRet
1875
                    02E9   1875 	C$rt_serial.c$697$1$1 ==.
1876
                    02E9   1876 	XG$SIO1_pollchar$0$0 ==.
1877
                           1877 ;	Peephole 234	loading dpl directly from a(ccumulator), r2 not set
1878
   02E9 F5 82              1878 	mov	dpl,a
1879
   02EB                    1879 00101$:
1880
   02EB 22                 1880 	ret
1881
                           1881 ;------------------------------------------------------------
1882
                           1882 ;Allocation info for local variables in function 'SIO2_pollchar'
1883
                           1883 ;------------------------------------------------------------
1884
                           1884 ;------------------------------------------------------------
1885
                    02EC   1885 	G$SIO2_pollchar$0$0 ==.
1886
                    02EC   1886 	C$rt_serial.c$700$1$1 ==.
1887
                           1887 ;rt_serial.c:700: char  SIO2_pollchar(void)
1888
                           1888 ;	-----------------------------------------
1889
                           1889 ;	 function SIO2_pollchar
1890
                           1890 ;	-----------------------------------------
1891
   02EC                    1891 _SIO2_pollchar:
1892
                    02EC   1892 	C$rt_serial.c$702$1$1 ==.
1893
                           1893 ;rt_serial.c:702: return SIO2_RxCount;
1894
                           1894 ;     genAssign
1895
   02EC 90s00rE5           1895 	mov	dptr,#_SIO2_RxCount
1896
   02EF E0                 1896 	movx	a,@dptr
1897
                           1897 ;     genRet
1898
                    02F0   1898 	C$rt_serial.c$703$1$1 ==.
1899
                    02F0   1899 	XG$SIO2_pollchar$0$0 ==.
1900
                           1900 ;	Peephole 234	loading dpl directly from a(ccumulator), r2 not set
1901
   02F0 F5 82              1901 	mov	dpl,a
1902
   02F2                    1902 00101$:
1903
   02F2 22                 1903 	ret
1904
                           1904 ;------------------------------------------------------------
1905
                           1905 ;Allocation info for local variables in function 'SIO1_flush'
1906
                           1906 ;------------------------------------------------------------
1907
                           1907 ;------------------------------------------------------------
1908
                    02F3   1908 	G$SIO1_flush$0$0 ==.
1909
                    02F3   1909 	C$rt_serial.c$706$1$1 ==.
1910
                           1910 ;rt_serial.c:706: void SIO1_flush(void)
1911
                           1911 ;	-----------------------------------------
1912
                           1912 ;	 function SIO1_flush
1913
                           1913 ;	-----------------------------------------
1914
   02F3                    1914 _SIO1_flush:
1915
                    02F3   1915 	C$rt_serial.c$709$2$2 ==.
1916
                           1916 ;rt_serial.c:709: BEGIN_CRITICAL;
1917
                           1917 ;     genIfx
1918
                           1918 ;     genIfxJump
1919
                           1919 ;	Peephole 111	removed ljmp by inverse jump logic
1920
                           1920 ;     genAssign
1921
                           1921 ;	Peephole 250.a	using atomic test and clear
1922
   02F3 10 AF 02           1922 	jbc	_EA,00107$
1923
   02F6 80 04              1923 	sjmp	00102$
1924
   02F8                    1924 00107$:
1925
                           1925 ;     genAssign
1926
   02F8 D2*05              1926 	setb	_SIO1_flush_EA_local_1_1
1927
                           1927 ;	Peephole 112.b	changed ljmp to sjmp
1928
   02FA 80 02              1928 	sjmp	00103$
1929
   02FC                    1929 00102$:
1930
                           1930 ;     genAssign
1931
   02FC C2*05              1931 	clr	_SIO1_flush_EA_local_1_1
1932
   02FE                    1932 00103$:
1933
                    02FE   1933 	C$rt_serial.c$710$1$1 ==.
1934
                           1934 ;rt_serial.c:710: SIO1_RxPtr    = 0;
1935
                           1935 ;     genAssign
1936
   02FE 90s00rE2           1936 	mov	dptr,#_SIO1_RxPtr
1937
                           1937 ;	Peephole 181	changed mov to clr
1938
                    0301   1938 	C$rt_serial.c$711$1$1 ==.
1939
                           1939 ;rt_serial.c:711: SIO1_RxCount  = 0;
1940
                           1940 ;     genAssign
1941
                           1941 ;	Peephole 181	changed mov to clr
1942
                           1942 ;	Peephole 219	removed redundant clear
1943
   0301 E4                 1943 	clr	a
1944
   0302 F0                 1944 	movx	@dptr,a
1945
   0303 90s00rE3           1945 	mov	dptr,#_SIO1_RxCount
1946
   0306 F0                 1946 	movx	@dptr,a
1947
                    0307   1947 	C$rt_serial.c$712$2$5 ==.
1948
                           1948 ;rt_serial.c:712: END_CRITICAL;
1949
                           1949 ;     genAssign
1950
   0307 A2*05              1950 	mov	c,_SIO1_flush_EA_local_1_1
1951
   0309 92 AF              1951 	mov	_EA,c
1952
   030B                    1952 00104$:
1953
                    030B   1953 	C$rt_serial.c$713$2$5 ==.
1954
                    030B   1954 	XG$SIO1_flush$0$0 ==.
1955
   030B 22                 1955 	ret
1956
                           1956 ;------------------------------------------------------------
1957
                           1957 ;Allocation info for local variables in function 'SIO2_flush'
1958
                           1958 ;------------------------------------------------------------
1959
                           1959 ;------------------------------------------------------------
1960
                    030C   1960 	G$SIO2_flush$0$0 ==.
1961
                    030C   1961 	C$rt_serial.c$716$2$5 ==.
1962
                           1962 ;rt_serial.c:716: void SIO2_flush(void)
1963
                           1963 ;	-----------------------------------------
1964
                           1964 ;	 function SIO2_flush
1965
                           1965 ;	-----------------------------------------
1966
   030C                    1966 _SIO2_flush:
1967
                    030C   1967 	C$rt_serial.c$719$2$2 ==.
1968
                           1968 ;rt_serial.c:719: BEGIN_CRITICAL;
1969
                           1969 ;     genIfx
1970
                           1970 ;     genIfxJump
1971
                           1971 ;	Peephole 111	removed ljmp by inverse jump logic
1972
                           1972 ;     genAssign
1973
                           1973 ;	Peephole 250.a	using atomic test and clear
1974
   030C 10 AF 02           1974 	jbc	_EA,00107$
1975
   030F 80 04              1975 	sjmp	00102$
1976
   0311                    1976 00107$:
1977
                           1977 ;     genAssign
1978
   0311 D2*06              1978 	setb	_SIO2_flush_EA_local_1_1
1979
                           1979 ;	Peephole 112.b	changed ljmp to sjmp
1980
   0313 80 02              1980 	sjmp	00103$
1981
   0315                    1981 00102$:
1982
                           1982 ;     genAssign
1983
   0315 C2*06              1983 	clr	_SIO2_flush_EA_local_1_1
1984
   0317                    1984 00103$:
1985
                    0317   1985 	C$rt_serial.c$720$1$1 ==.
1986
                           1986 ;rt_serial.c:720: SIO2_RxPtr    = 0;
1987
                           1987 ;     genAssign
1988
   0317 90s00rE4           1988 	mov	dptr,#_SIO2_RxPtr
1989
                           1989 ;	Peephole 181	changed mov to clr
1990
                    031A   1990 	C$rt_serial.c$721$1$1 ==.
1991
                           1991 ;rt_serial.c:721: SIO2_RxCount  = 0;
1992
                           1992 ;     genAssign
1993
                           1993 ;	Peephole 181	changed mov to clr
1994
                           1994 ;	Peephole 219	removed redundant clear
1995
   031A E4                 1995 	clr	a
1996
   031B F0                 1996 	movx	@dptr,a
1997
   031C 90s00rE5           1997 	mov	dptr,#_SIO2_RxCount
1998
   031F F0                 1998 	movx	@dptr,a
1999
                    0320   1999 	C$rt_serial.c$722$2$5 ==.
2000
                           2000 ;rt_serial.c:722: END_CRITICAL;
2001
                           2001 ;     genAssign
2002
   0320 A2*06              2002 	mov	c,_SIO2_flush_EA_local_1_1
2003
   0322 92 AF              2003 	mov	_EA,c
2004
   0324                    2004 00104$:
2005
                    0324   2005 	C$rt_serial.c$723$2$5 ==.
2006
                    0324   2006 	XG$SIO2_flush$0$0 ==.
2007
   0324 22                 2007 	ret
2008
                           2008 ;------------------------------------------------------------
2009
                           2009 ;Allocation info for local variables in function 'SIO1_break'
2010
                           2010 ;------------------------------------------------------------
2011
                           2011 ;ticks                     Allocated with name '_SIO1_break_PARM_2'
2012
                           2012 ;level                     Allocated with name '_SIO1_break_level_1_1'
2013
                           2013 ;------------------------------------------------------------
2014
                    0325   2014 	G$SIO1_break$0$0 ==.
2015
                    0325   2015 	C$rt_serial.c$732$2$5 ==.
2016
                           2016 ;rt_serial.c:732: void SIO1_break(char level,unsigned char ticks)
2017
                           2017 ;	-----------------------------------------
2018
                           2018 ;	 function SIO1_break
2019
                           2019 ;	-----------------------------------------
2020
   0325                    2020 _SIO1_break:
2021
                           2021 ;     genReceive
2022
   0325 E5 82              2022 	mov	a,dpl
2023
   0327 90s00rEB           2023 	mov	dptr,#_SIO1_break_level_1_1
2024
   032A F0                 2024 	movx	@dptr,a
2025
                    032B   2025 	C$rt_serial.c$735$1$1 ==.
2026
                           2026 ;rt_serial.c:735: while(SIO1_TxCount)
2027
   032B                    2027 00101$:
2028
                           2028 ;     genAssign
2029
   032B 90s00rE1           2029 	mov	dptr,#_SIO1_TxCount
2030
   032E E0                 2030 	movx	a,@dptr
2031
                           2031 ;     genIfx
2032
                           2032 ;	Peephole 105	removed redundant mov
2033
   032F FA                 2033 	mov	r2,a
2034
                           2034 ;     genIfxJump
2035
                           2035 ;	Peephole 110	removed ljmp by inverse jump logic
2036
   0330 60 05              2036 	jz	00103$
2037
   0332                    2037 00108$:
2038
                    0332   2038 	C$rt_serial.c$737$2$2 ==.
2039
                           2039 ;rt_serial.c:737: RESCHEDULE;
2040
                           2040 ;     genCall
2041
   0332 12s00r00           2041 	lcall	_reschedule
2042
                           2042 ;	Peephole 112.b	changed ljmp to sjmp
2043
   0335 80 F4              2043 	sjmp	00101$
2044
   0337                    2044 00103$:
2045
                    0337   2045 	C$rt_serial.c$740$1$1 ==.
2046
                           2046 ;rt_serial.c:740: SIO1_TXD = level;
2047
                           2047 ;     genAssign
2048
   0337 90s00rEB           2048 	mov	dptr,#_SIO1_break_level_1_1
2049
   033A E0                 2049 	movx	a,@dptr
2050
   033B 24 FF              2050 	add	a,#0xff
2051
   033D 92 B1              2051 	mov	_TXD,c
2052
                    033F   2052 	C$rt_serial.c$741$1$1 ==.
2053
                           2053 ;rt_serial.c:741: sleep(ticks);
2054
                           2054 ;     genAssign
2055
   033F 90s00rEA           2055 	mov	dptr,#_SIO1_break_PARM_2
2056
   0342 E0                 2056 	movx	a,@dptr
2057
                           2057 ;     genCall
2058
                           2058 ;	Peephole 244.c	loading dpl from a instead of r2
2059
   0343 FA                 2059 	mov	r2,a
2060
   0344 F5 82              2060 	mov	dpl,a
2061
   0346 12s00r00           2061 	lcall	_sleep
2062
                    0349   2062 	C$rt_serial.c$742$1$1 ==.
2063
                           2063 ;rt_serial.c:742: SIO1_TXD = 1;
2064
                           2064 ;     genAssign
2065
   0349 D2 B1              2065 	setb	_TXD
2066
   034B                    2066 00104$:
2067
                    034B   2067 	C$rt_serial.c$743$1$1 ==.
2068
                    034B   2068 	XG$SIO1_break$0$0 ==.
2069
   034B 22                 2069 	ret
2070
                           2070 ;------------------------------------------------------------
2071
                           2071 ;Allocation info for local variables in function 'SendStringCode'
2072
                           2072 ;------------------------------------------------------------
2073
                           2073 ;s                         Allocated with name '_SendStringCode_s_1_1'
2074
                           2074 ;c                         Allocated with name '_SendStringCode_c_1_1'
2075
                           2075 ;------------------------------------------------------------
2076
                    034C   2076 	G$SendStringCode$0$0 ==.
2077
                    034C   2077 	C$rt_serial.c$753$1$1 ==.
2078
                           2078 ;rt_serial.c:753: void SendStringCode(code char * s)
2079
                           2079 ;	-----------------------------------------
2080
                           2080 ;	 function SendStringCode
2081
                           2081 ;	-----------------------------------------
2082
   034C                    2082 _SendStringCode:
2083
                           2083 ;     genReceive
2084
   034C AA 83              2084 	mov	r2,dph
2085
   034E E5 82              2085 	mov	a,dpl
2086
   0350 90s00rEC           2086 	mov	dptr,#_SendStringCode_s_1_1
2087
   0353 F0                 2087 	movx	@dptr,a
2088
   0354 A3                 2088 	inc	dptr
2089
   0355 EA                 2089 	mov	a,r2
2090
   0356 F0                 2090 	movx	@dptr,a
2091
                    0357   2091 	C$rt_serial.c$756$1$1 ==.
2092
                           2092 ;rt_serial.c:756: if (!s) return;
2093
                           2093 ;     genAssign
2094
   0357 90s00rEC           2094 	mov	dptr,#_SendStringCode_s_1_1
2095
   035A E0                 2095 	movx	a,@dptr
2096
   035B FA                 2096 	mov	r2,a
2097
   035C A3                 2097 	inc	dptr
2098
   035D E0                 2098 	movx	a,@dptr
2099
                           2099 ;     genIfx
2100
                           2100 ;	Peephole 135	removed redundant mov
2101
   035E FB                 2101 	mov	r3,a
2102
   035F 4A                 2102 	orl	a,r2
2103
                           2103 ;     genIfxJump
2104
                           2104 ;	Peephole 109	removed ljmp by inverse jump logic
2105
   0360 70 01              2105 	jnz	00103$
2106
   0362                    2106 00111$:
2107
                           2107 ;     genRet
2108
                    0362   2108 	C$rt_serial.c$758$1$1 ==.
2109
                           2109 ;rt_serial.c:758: while(*s) 
2110
                           2110 ;	Peephole 112.b	changed ljmp to sjmp
2111
                           2111 ;	Peephole 251.b	replaced sjmp to ret with ret
2112
   0362 22                 2112 	ret
2113
   0363                    2113 00103$:
2114
                           2114 ;     genAssign
2115
   0363 90s00rEC           2115 	mov	dptr,#_SendStringCode_s_1_1
2116
   0366 E0                 2116 	movx	a,@dptr
2117
   0367 FA                 2117 	mov	r2,a
2118
   0368 A3                 2118 	inc	dptr
2119
   0369 E0                 2119 	movx	a,@dptr
2120
   036A FB                 2120 	mov	r3,a
2121
                           2121 ;     genPointerGet
2122
                           2122 ;     genCodePointerGet
2123
   036B 8A 82              2123 	mov	dpl,r2
2124
   036D 8B 83              2124 	mov	dph,r3
2125
                           2125 ;	Peephole 181	changed mov to clr
2126
   036F E4                 2126 	clr	a
2127
   0370 93                 2127 	movc	a,@a+dptr
2128
                           2128 ;     genIfx
2129
                           2129 ;	Peephole 105	removed redundant mov
2130
   0371 FC                 2130 	mov	r4,a
2131
                           2131 ;     genIfxJump
2132
                           2132 ;	Peephole 110	removed ljmp by inverse jump logic
2133
   0372 60 12              2133 	jz	00106$
2134
   0374                    2134 00112$:
2135
                    0374   2135 	C$rt_serial.c$760$2$2 ==.
2136
                           2136 ;rt_serial.c:760: c= *s++;
2137
                           2137 ;     genAssign
2138
                           2138 ;     genPlus
2139
   0374 90s00rEC           2139 	mov	dptr,#_SendStringCode_s_1_1
2140
                           2140 ;     genPlusIncr
2141
   0377 74 01              2141 	mov	a,#0x01
2142
                           2142 ;	Peephole 236.a	used r2 instead of ar2
2143
   0379 2A                 2143 	add	a,r2
2144
   037A F0                 2144 	movx	@dptr,a
2145
                           2145 ;	Peephole 181	changed mov to clr
2146
   037B E4                 2146 	clr	a
2147
                           2147 ;	Peephole 236.b	used r3 instead of ar3
2148
   037C 3B                 2148 	addc	a,r3
2149
   037D A3                 2149 	inc	dptr
2150
   037E F0                 2150 	movx	@dptr,a
2151
                    037F   2151 	C$rt_serial.c$761$2$2 ==.
2152
                           2152 ;rt_serial.c:761: putchar(c);
2153
                           2153 ;     genCall
2154
   037F 8C 82              2154 	mov	dpl,r4
2155
   0381 12s01rE0           2155 	lcall	_putchar
2156
                           2156 ;	Peephole 112.b	changed ljmp to sjmp
2157
   0384 80 DD              2157 	sjmp	00103$
2158
   0386                    2158 00106$:
2159
                    0386   2159 	C$rt_serial.c$763$1$1 ==.
2160
                    0386   2160 	XG$SendStringCode$0$0 ==.
2161
   0386 22                 2161 	ret
2162
                           2162 ;------------------------------------------------------------
2163
                           2163 ;Allocation info for local variables in function 'SendStringXdata'
2164
                           2164 ;------------------------------------------------------------
2165
                           2165 ;s                         Allocated with name '_SendStringXdata_s_1_1'
2166
                           2166 ;c                         Allocated with name '_SendStringXdata_c_1_1'
2167
                           2167 ;------------------------------------------------------------
2168
                    0387   2168 	G$SendStringXdata$0$0 ==.
2169
                    0387   2169 	C$rt_serial.c$766$1$1 ==.
2170
                           2170 ;rt_serial.c:766: void SendStringXdata(xdata char * s)
2171
                           2171 ;	-----------------------------------------
2172
                           2172 ;	 function SendStringXdata
2173
                           2173 ;	-----------------------------------------
2174
   0387                    2174 _SendStringXdata:
2175
                           2175 ;     genReceive
2176
   0387 AA 83              2176 	mov	r2,dph
2177
   0389 E5 82              2177 	mov	a,dpl
2178
   038B 90s00rEE           2178 	mov	dptr,#_SendStringXdata_s_1_1
2179
   038E F0                 2179 	movx	@dptr,a
2180
   038F A3                 2180 	inc	dptr
2181
   0390 EA                 2181 	mov	a,r2
2182
   0391 F0                 2182 	movx	@dptr,a
2183
                    0392   2183 	C$rt_serial.c$769$1$1 ==.
2184
                           2184 ;rt_serial.c:769: if (!s) return;
2185
                           2185 ;     genAssign
2186
   0392 90s00rEE           2186 	mov	dptr,#_SendStringXdata_s_1_1
2187
   0395 E0                 2187 	movx	a,@dptr
2188
   0396 FA                 2188 	mov	r2,a
2189
   0397 A3                 2189 	inc	dptr
2190
   0398 E0                 2190 	movx	a,@dptr
2191
                           2191 ;     genIfx
2192
                           2192 ;	Peephole 135	removed redundant mov
2193
   0399 FB                 2193 	mov	r3,a
2194
   039A 4A                 2194 	orl	a,r2
2195
                           2195 ;     genIfxJump
2196
                           2196 ;	Peephole 109	removed ljmp by inverse jump logic
2197
   039B 70 01              2197 	jnz	00103$
2198
   039D                    2198 00111$:
2199
                           2199 ;     genRet
2200
                    039D   2200 	C$rt_serial.c$771$1$1 ==.
2201
                           2201 ;rt_serial.c:771: while(*s) 
2202
                           2202 ;	Peephole 112.b	changed ljmp to sjmp
2203
                           2203 ;	Peephole 251.b	replaced sjmp to ret with ret
2204
   039D 22                 2204 	ret
2205
   039E                    2205 00103$:
2206
                           2206 ;     genAssign
2207
   039E 90s00rEE           2207 	mov	dptr,#_SendStringXdata_s_1_1
2208
   03A1 E0                 2208 	movx	a,@dptr
2209
   03A2 FA                 2209 	mov	r2,a
2210
   03A3 A3                 2210 	inc	dptr
2211
   03A4 E0                 2211 	movx	a,@dptr
2212
   03A5 FB                 2212 	mov	r3,a
2213
                           2213 ;     genPointerGet
2214
                           2214 ;     genFarPointerGet
2215
   03A6 8A 82              2215 	mov	dpl,r2
2216
   03A8 8B 83              2216 	mov	dph,r3
2217
   03AA E0                 2217 	movx	a,@dptr
2218
                           2218 ;     genIfx
2219
                           2219 ;	Peephole 105	removed redundant mov
2220
   03AB FC                 2220 	mov	r4,a
2221
                           2221 ;     genIfxJump
2222
                           2222 ;	Peephole 110	removed ljmp by inverse jump logic
2223
   03AC 60 12              2223 	jz	00106$
2224
   03AE                    2224 00112$:
2225
                    03AE   2225 	C$rt_serial.c$773$2$2 ==.
2226
                           2226 ;rt_serial.c:773: c= *s++;
2227
                           2227 ;     genAssign
2228
                           2228 ;     genPlus
2229
   03AE 90s00rEE           2229 	mov	dptr,#_SendStringXdata_s_1_1
2230
                           2230 ;     genPlusIncr
2231
   03B1 74 01              2231 	mov	a,#0x01
2232
                           2232 ;	Peephole 236.a	used r2 instead of ar2
2233
   03B3 2A                 2233 	add	a,r2
2234
   03B4 F0                 2234 	movx	@dptr,a
2235
                           2235 ;	Peephole 181	changed mov to clr
2236
   03B5 E4                 2236 	clr	a
2237
                           2237 ;	Peephole 236.b	used r3 instead of ar3
2238
   03B6 3B                 2238 	addc	a,r3
2239
   03B7 A3                 2239 	inc	dptr
2240
   03B8 F0                 2240 	movx	@dptr,a
2241
                    03B9   2241 	C$rt_serial.c$774$2$2 ==.
2242
                           2242 ;rt_serial.c:774: putchar(c);
2243
                           2243 ;     genCall
2244
   03B9 8C 82              2244 	mov	dpl,r4
2245
   03BB 12s01rE0           2245 	lcall	_putchar
2246
                           2246 ;	Peephole 112.b	changed ljmp to sjmp
2247
   03BE 80 DE              2247 	sjmp	00103$
2248
   03C0                    2248 00106$:
2249
                    03C0   2249 	C$rt_serial.c$776$1$1 ==.
2250
                    03C0   2250 	XG$SendStringXdata$0$0 ==.
2251
   03C0 22                 2251 	ret
2252
                           2252 ;------------------------------------------------------------
2253
                           2253 ;Allocation info for local variables in function 'SendHex'
2254
                           2254 ;------------------------------------------------------------
2255
                           2255 ;x                         Allocated with name '_SendHex_x_1_1'
2256
                           2256 ;p                         Allocated with name '_SendHex_p_1_1'
2257
                           2257 ;------------------------------------------------------------
2258
                    03C1   2258 	G$SendHex$0$0 ==.
2259
                    03C1   2259 	C$rt_serial.c$782$1$1 ==.
2260
                           2260 ;rt_serial.c:782: void SendHex(unsigned char x) 
2261
                           2261 ;	-----------------------------------------
2262
                           2262 ;	 function SendHex
2263
                           2263 ;	-----------------------------------------
2264
   03C1                    2264 _SendHex:
2265
                           2265 ;     genReceive
2266
   03C1 E5 82              2266 	mov	a,dpl
2267
   03C3 90s00rF0           2267 	mov	dptr,#_SendHex_x_1_1
2268
   03C6 F0                 2268 	movx	@dptr,a
2269
                    03C7   2269 	C$rt_serial.c$785$1$1 ==.
2270
                           2270 ;rt_serial.c:785: p = x / 16;
2271
                           2271 ;     genAssign
2272
   03C7 90s00rF0           2272 	mov	dptr,#_SendHex_x_1_1
2273
   03CA E0                 2273 	movx	a,@dptr
2274
                           2274 ;     genRightShift
2275
                           2275 ;     genRightShiftLiteral
2276
                           2276 ;     genrshOne
2277
                           2277 ;	Peephole 105	removed redundant mov
2278
   03CB FA                 2278 	mov	r2,a
2279
   03CC C4                 2279 	swap	a
2280
   03CD 54 0F              2280 	anl	a,#0x0f
2281
   03CF FA                 2281 	mov	r2,a
2282
                    03D0   2282 	C$rt_serial.c$786$1$1 ==.
2283
                           2283 ;rt_serial.c:786: putchar(p>15?'-':p>9?p+'A'-10:p+'0');
2284
                           2284 ;     genCmpGt
2285
                           2285 ;     genCmp
2286
   03D0 C3                 2286 	clr	c
2287
   03D1 74 0F              2287 	mov	a,#0x0F
2288
   03D3 9A                 2288 	subb	a,r2
2289
                           2289 ;     genIfxJump
2290
                           2290 ;	Peephole 108	removed ljmp by inverse jump logic
2291
   03D4 50 04              2291 	jnc	00103$
2292
   03D6                    2292 00115$:
2293
                           2293 ;     genAssign
2294
   03D6 7B 2D              2294 	mov	r3,#0x2D
2295
                           2295 ;	Peephole 112.b	changed ljmp to sjmp
2296
   03D8 80 12              2296 	sjmp	00104$
2297
   03DA                    2297 00103$:
2298
                           2298 ;     genCmpGt
2299
                           2299 ;     genCmp
2300
   03DA C3                 2300 	clr	c
2301
   03DB 74 09              2301 	mov	a,#0x09
2302
   03DD 9A                 2302 	subb	a,r2
2303
                           2303 ;     genIfxJump
2304
                           2304 ;	Peephole 108	removed ljmp by inverse jump logic
2305
   03DE 50 06              2305 	jnc	00105$
2306
   03E0                    2306 00116$:
2307
                           2307 ;     genPlus
2308
   03E0 74 37              2308 	mov	a,#0x37
2309
                           2309 ;	Peephole 236.a	used r2 instead of ar2
2310
   03E2 2A                 2310 	add	a,r2
2311
   03E3 FC                 2311 	mov	r4,a
2312
                           2312 ;	Peephole 112.b	changed ljmp to sjmp
2313
   03E4 80 04              2313 	sjmp	00106$
2314
   03E6                    2314 00105$:
2315
                           2315 ;     genPlus
2316
   03E6 74 30              2316 	mov	a,#0x30
2317
                           2317 ;	Peephole 236.a	used r2 instead of ar2
2318
   03E8 2A                 2318 	add	a,r2
2319
   03E9 FC                 2319 	mov	r4,a
2320
   03EA                    2320 00106$:
2321
                           2321 ;     genAssign
2322
   03EA 8C 03              2322 	mov	ar3,r4
2323
   03EC                    2323 00104$:
2324
                           2324 ;     genCall
2325
   03EC 8B 82              2325 	mov	dpl,r3
2326
   03EE 12s01rE0           2326 	lcall	_putchar
2327
                    03F1   2327 	C$rt_serial.c$787$1$1 ==.
2328
                           2328 ;rt_serial.c:787: p = x & 15;
2329
                           2329 ;     genAssign
2330
   03F1 90s00rF0           2330 	mov	dptr,#_SendHex_x_1_1
2331
   03F4 E0                 2331 	movx	a,@dptr
2332
   03F5 FA                 2332 	mov	r2,a
2333
                           2333 ;     genAnd
2334
   03F6 53 02 0F           2334 	anl	ar2,#0x0F
2335
                    03F9   2335 	C$rt_serial.c$788$1$1 ==.
2336
                           2336 ;rt_serial.c:788: putchar(p>15?'-':p>9?p+'A'-10:p+'0');
2337
                           2337 ;     genCmpGt
2338
                           2338 ;     genCmp
2339
   03F9 C3                 2339 	clr	c
2340
   03FA 74 0F              2340 	mov	a,#0x0F
2341
   03FC 9A                 2341 	subb	a,r2
2342
                           2342 ;     genIfxJump
2343
                           2343 ;	Peephole 108	removed ljmp by inverse jump logic
2344
   03FD 50 04              2344 	jnc	00107$
2345
   03FF                    2345 00117$:
2346
                           2346 ;     genAssign
2347
   03FF 7B 2D              2347 	mov	r3,#0x2D
2348
                           2348 ;	Peephole 112.b	changed ljmp to sjmp
2349
   0401 80 12              2349 	sjmp	00108$
2350
   0403                    2350 00107$:
2351
                           2351 ;     genCmpGt
2352
                           2352 ;     genCmp
2353
   0403 C3                 2353 	clr	c
2354
   0404 74 09              2354 	mov	a,#0x09
2355
   0406 9A                 2355 	subb	a,r2
2356
                           2356 ;     genIfxJump
2357
                           2357 ;	Peephole 108	removed ljmp by inverse jump logic
2358
   0407 50 06              2358 	jnc	00109$
2359
   0409                    2359 00118$:
2360
                           2360 ;     genPlus
2361
   0409 74 37              2361 	mov	a,#0x37
2362
                           2362 ;	Peephole 236.a	used r2 instead of ar2
2363
   040B 2A                 2363 	add	a,r2
2364
   040C FC                 2364 	mov	r4,a
2365
                           2365 ;	Peephole 112.b	changed ljmp to sjmp
2366
   040D 80 04              2366 	sjmp	00110$
2367
   040F                    2367 00109$:
2368
                           2368 ;     genPlus
2369
   040F 74 30              2369 	mov	a,#0x30
2370
                           2370 ;	Peephole 236.a	used r2 instead of ar2
2371
   0411 2A                 2371 	add	a,r2
2372
   0412 FC                 2372 	mov	r4,a
2373
   0413                    2373 00110$:
2374
                           2374 ;     genAssign
2375
   0413 8C 03              2375 	mov	ar3,r4
2376
   0415                    2376 00108$:
2377
                           2377 ;     genCall
2378
   0415 8B 82              2378 	mov	dpl,r3
2379
                    0417   2379 	C$rt_serial.c$789$1$1 ==.
2380
                    0417   2380 	XG$SendHex$0$0 ==.
2381
                           2381 ;	Peephole 253.b	replaced lcall/ret with ljmp
2382
   0417 02s01rE0           2382 	ljmp	_putchar
2383
                           2383 ;------------------------------------------------------------
2384
                           2384 ;Allocation info for local variables in function 'SIOTakeSemaphore'
2385
                           2385 ;------------------------------------------------------------
2386
                           2386 ;------------------------------------------------------------
2387
                    041A   2387 	G$SIOTakeSemaphore$0$0 ==.
2388
                    041A   2388 	C$rt_serial.c$799$1$1 ==.
2389
                           2389 ;rt_serial.c:799: void SIOTakeSemaphore(void)
2390
                           2390 ;	-----------------------------------------
2391
                           2391 ;	 function SIOTakeSemaphore
2392
                           2392 ;	-----------------------------------------
2393
   041A                    2393 _SIOTakeSemaphore:
2394
                    041A   2394 	C$rt_serial.c$802$1$1 ==.
2395
                           2395 ;rt_serial.c:802: while(1){
2396
   041A                    2396 00108$:
2397
                    041A   2397 	C$rt_serial.c$803$3$3 ==.
2398
                           2398 ;rt_serial.c:803: BEGIN_CRITICAL;
2399
                           2399 ;     genIfx
2400
                           2400 ;     genIfxJump
2401
                           2401 ;	Peephole 111	removed ljmp by inverse jump logic
2402
                           2402 ;     genAssign
2403
                           2403 ;	Peephole 250.a	using atomic test and clear
2404
   041A 10 AF 02           2404 	jbc	_EA,00115$
2405
   041D 80 04              2405 	sjmp	00102$
2406
   041F                    2406 00115$:
2407
                           2407 ;     genAssign
2408
   041F D2*07              2408 	setb	_SIOTakeSemaphore_EA_local_1_1
2409
                           2409 ;	Peephole 112.b	changed ljmp to sjmp
2410
   0421 80 02              2410 	sjmp	00103$
2411
   0423                    2411 00102$:
2412
                           2412 ;     genAssign
2413
   0423 C2*07              2413 	clr	_SIOTakeSemaphore_EA_local_1_1
2414
   0425                    2414 00103$:
2415
                    0425   2415 	C$rt_serial.c$804$2$2 ==.
2416
                           2416 ;rt_serial.c:804: if(SIO_put_semaphore) 
2417
                           2417 ;     genIfx
2418
                           2418 ;     genIfxJump
2419
                           2419 ;	Peephole 111	removed ljmp by inverse jump logic
2420
                    0425   2420 	C$rt_serial.c$806$3$6 ==.
2421
                           2421 ;rt_serial.c:806: SIO_put_semaphore = FALSE;
2422
                           2422 ;     genAssign
2423
                           2423 ;	Peephole 250.a	using atomic test and clear
2424
   0425 10*01 02           2424 	jbc	_SIO_put_semaphore,00116$
2425
   0428 80 05              2425 	sjmp	00105$
2426
   042A                    2426 00116$:
2427
                    042A   2427 	C$rt_serial.c$807$4$7 ==.
2428
                           2428 ;rt_serial.c:807: END_CRITICAL;
2429
                           2429 ;     genAssign
2430
   042A A2*07              2430 	mov	c,_SIOTakeSemaphore_EA_local_1_1
2431
   042C 92 AF              2431 	mov	_EA,c
2432
                    042E   2432 	C$rt_serial.c$808$3$6 ==.
2433
                           2433 ;rt_serial.c:808: return;
2434
                           2434 ;     genRet
2435
                           2435 ;	Peephole 112.b	changed ljmp to sjmp
2436
                           2436 ;	Peephole 251.b	replaced sjmp to ret with ret
2437
   042E 22                 2437 	ret
2438
   042F                    2438 00105$:
2439
                    042F   2439 	C$rt_serial.c$813$4$9 ==.
2440
                           2440 ;rt_serial.c:813: END_CRITICAL;
2441
                           2441 ;     genAssign
2442
   042F A2*07              2442 	mov	c,_SIOTakeSemaphore_EA_local_1_1
2443
   0431 92 AF              2443 	mov	_EA,c
2444
                    0433   2444 	C$rt_serial.c$814$3$8 ==.
2445
                           2445 ;rt_serial.c:814: RESCHEDULE;
2446
                           2446 ;     genCall
2447
   0433 12s00r00           2447 	lcall	_reschedule
2448
                           2448 ;	Peephole 112.b	changed ljmp to sjmp
2449
   0436 80 E2              2449 	sjmp	00108$
2450
   0438                    2450 00110$:
2451
                    0438   2451 	C$rt_serial.c$817$1$1 ==.
2452
                    0438   2452 	XG$SIOTakeSemaphore$0$0 ==.
2453
   0438 22                 2453 	ret
2454
                           2454 ;------------------------------------------------------------
2455
                           2455 ;Allocation info for local variables in function 'SIOPutSemaphore'
2456
                           2456 ;------------------------------------------------------------
2457
                           2457 ;------------------------------------------------------------
2458
                    0439   2458 	G$SIOPutSemaphore$0$0 ==.
2459
                    0439   2459 	C$rt_serial.c$819$1$1 ==.
2460
                           2460 ;rt_serial.c:819: void SIOPutSemaphore(void)
2461
                           2461 ;	-----------------------------------------
2462
                           2462 ;	 function SIOPutSemaphore
2463
                           2463 ;	-----------------------------------------
2464
   0439                    2464 _SIOPutSemaphore:
2465
                    0439   2465 	C$rt_serial.c$821$1$1 ==.
2466
                           2466 ;rt_serial.c:821: SIO_put_semaphore = TRUE;
2467
                           2467 ;     genAssign
2468
   0439 D2*01              2468 	setb	_SIO_put_semaphore
2469
   043B                    2469 00101$:
2470
                    043B   2470 	C$rt_serial.c$822$1$1 ==.
2471
                    043B   2471 	XG$SIOPutSemaphore$0$0 ==.
2472
   043B 22                 2472 	ret
2473
                           2473 ;------------------------------------------------------------
2474
                           2474 ;Allocation info for local variables in function 'SIOSetSemaphore'
2475
                           2475 ;------------------------------------------------------------
2476
                           2476 ;rc                        Allocated with name '_SIOSetSemaphore_rc_1_1'
2477
                           2477 ;------------------------------------------------------------
2478
                    043C   2478 	G$SIOSetSemaphore$0$0 ==.
2479
                    043C   2479 	C$rt_serial.c$824$1$1 ==.
2480
                           2480 ;rt_serial.c:824: char SIOSetSemaphore(Bool value)
2481
                           2481 ;	-----------------------------------------
2482
                           2482 ;	 function SIOSetSemaphore
2483
                           2483 ;	-----------------------------------------
2484
   043C                    2484 _SIOSetSemaphore:
2485
                           2485 ;     genReceive
2486
   043C AA 82              2486 	mov	r2,dpl
2487
                    043E   2487 	C$rt_serial.c$828$2$2 ==.
2488
                           2488 ;rt_serial.c:828: BEGIN_CRITICAL;
2489
                           2489 ;     genIfx
2490
                           2490 ;     genIfxJump
2491
                           2491 ;	Peephole 111	removed ljmp by inverse jump logic
2492
                           2492 ;     genAssign
2493
                           2493 ;	Peephole 250.a	using atomic test and clear
2494
   043E 10 AF 02           2494 	jbc	_EA,00107$
2495
   0441 80 04              2495 	sjmp	00102$
2496
   0443                    2496 00107$:
2497
                           2497 ;     genAssign
2498
   0443 D2*08              2498 	setb	_SIOSetSemaphore_EA_local_1_1
2499
                           2499 ;	Peephole 112.b	changed ljmp to sjmp
2500
   0445 80 02              2500 	sjmp	00103$
2501
   0447                    2501 00102$:
2502
                           2502 ;     genAssign
2503
   0447 C2*08              2503 	clr	_SIOSetSemaphore_EA_local_1_1
2504
   0449                    2504 00103$:
2505
                    0449   2505 	C$rt_serial.c$829$1$1 ==.
2506
                           2506 ;rt_serial.c:829: rc= SIO_put_semaphore;
2507
                           2507 ;     genAssign
2508
   0449 E4                 2508 	clr	a
2509
   044A A2*01              2509 	mov	c,_SIO_put_semaphore
2510
   044C 33                 2510 	rlc	a
2511
   044D FB                 2511 	mov	r3,a
2512
                    044E   2512 	C$rt_serial.c$830$1$1 ==.
2513
                           2513 ;rt_serial.c:830: SIO_put_semaphore = value;
2514
                           2514 ;     genAssign
2515
   044E EA                 2515 	mov	a,r2
2516
   044F 24 FF              2516 	add	a,#0xff
2517
   0451 92*01              2517 	mov	_SIO_put_semaphore,c
2518
                    0453   2518 	C$rt_serial.c$831$2$5 ==.
2519
                           2519 ;rt_serial.c:831: END_CRITICAL;
2520
                           2520 ;     genAssign
2521
   0453 A2*08              2521 	mov	c,_SIOSetSemaphore_EA_local_1_1
2522
   0455 92 AF              2522 	mov	_EA,c
2523
                    0457   2523 	C$rt_serial.c$832$1$1 ==.
2524
                           2524 ;rt_serial.c:832: return rc;
2525
                           2525 ;     genRet
2526
   0457 8B 82              2526 	mov	dpl,r3
2527
   0459                    2527 00104$:
2528
                    0459   2528 	C$rt_serial.c$833$1$1 ==.
2529
                    0459   2529 	XG$SIOSetSemaphore$0$0 ==.
2530
   0459 22                 2530 	ret
2531
                           2531 	.area CSEG    (CODE)
2532
                           2532 	.area XINIT   (CODE)