Subversion Repositories Bart

Rev

Blame | Last modification | View Log | RSS feed

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