Subversion Repositories Bart

Rev

Details | Last modification | View Log | RSS feed

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