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:04 2004
                              5 ;--------------------------------------------------------
                              6         .module rt_task
                              7         .optsdcc -mmcs51 --model-large
                              8         
                              9 ;--------------------------------------------------------
                             10 ; Public variables in this module
                             11 ;--------------------------------------------------------
                             12         .globl _priotab
                             13         .globl _TF1
                             14         .globl _TR1
                             15         .globl _TF0
                             16         .globl _TR0
                             17         .globl _IE1
                             18         .globl _IT1
                             19         .globl _IE0
                             20         .globl _IT0
                             21         .globl _T2CON_7
                             22         .globl _T2CON_6
                             23         .globl _T2CON_5
                             24         .globl _T2CON_4
                             25         .globl _T2CON_3
                             26         .globl _T2CON_2
                             27         .globl _T2CON_1
                             28         .globl _T2CON_0
                             29         .globl _TF2
                             30         .globl _EXF2
                             31         .globl _RCLK
                             32         .globl _TCLK
                             33         .globl _EXEN2
                             34         .globl _TR2
                             35         .globl _C_T2
                             36         .globl _CP_RL2
                             37         .globl _SM0
                             38         .globl _SM1
                             39         .globl _SM2
                             40         .globl _REN
                             41         .globl _TB8
                             42         .globl _RB8
                             43         .globl _TI
                             44         .globl _RI
                             45         .globl _CY
                             46         .globl _AC
                             47         .globl _F0
                             48         .globl _RS1
                             49         .globl _RS0
                             50         .globl _OV
                             51         .globl _F1
                             52         .globl _P
                             53         .globl _P5_7
                             54         .globl _P5_6
                             55         .globl _P5_5
                             56         .globl _P5_4
                             57         .globl _P5_3
                             58         .globl _P5_2
                             59         .globl _P5_1
                             60         .globl _P5_0
                             61         .globl _P4_7
                             62         .globl _P4_6
                             63         .globl _P4_5
                             64         .globl _P4_4
                             65         .globl _P4_3
                             66         .globl _P4_2
                             67         .globl _P4_1
                             68         .globl _P4_0
                             69         .globl _RD
                             70         .globl _WR
                             71         .globl _T1
                             72         .globl _T0
                             73         .globl _INT1
                             74         .globl _INT0
                             75         .globl _TXD0
                             76         .globl _TXD
                             77         .globl _RXD0
                             78         .globl _RXD
                             79         .globl _P3_7
                             80         .globl _P3_6
                             81         .globl _P3_5
                             82         .globl _P3_4
                             83         .globl _P3_3
                             84         .globl _P3_2
                             85         .globl _P3_1
                             86         .globl _P3_0
                             87         .globl _P2_7
                             88         .globl _P2_6
                             89         .globl _P2_5
                             90         .globl _P2_4
                             91         .globl _P2_3
                             92         .globl _P2_2
                             93         .globl _P2_1
                             94         .globl _P2_0
                             95         .globl _P1_7
                             96         .globl _P1_6
                             97         .globl _P1_5
                             98         .globl _P1_4
                             99         .globl _P1_3
                            100         .globl _P1_2
                            101         .globl _P1_1
                            102         .globl _P1_0
                            103         .globl _P0_7
                            104         .globl _P0_6
                            105         .globl _P0_5
                            106         .globl _P0_4
                            107         .globl _P0_3
                            108         .globl _P0_2
                            109         .globl _P0_1
                            110         .globl _P0_0
                            111         .globl _PPC
                            112         .globl _PT2
                            113         .globl _PS
                            114         .globl _PT1
                            115         .globl _PX1
                            116         .globl _PT0
                            117         .globl _PX0
                            118         .globl _EA
                            119         .globl _EC
                            120         .globl _ET2
                            121         .globl _ES
                            122         .globl _ET1
                            123         .globl _EX1
                            124         .globl _ET0
                            125         .globl _EX0
                            126         .globl _CF
                            127         .globl _CR
                            128         .globl _CCF4
                            129         .globl _CCF3
                            130         .globl _CCF2
                            131         .globl _CCF1
                            132         .globl _CCF0
                            133         .globl _BREG_F7
                            134         .globl _BREG_F6
                            135         .globl _BREG_F5
                            136         .globl _BREG_F4
                            137         .globl _BREG_F3
                            138         .globl _BREG_F2
                            139         .globl _BREG_F1
                            140         .globl _BREG_F0
                            141         .globl _WDTRST
                            142         .globl _WDTPRG
                            143         .globl _TMOD
                            144         .globl _TL2
                            145         .globl _TL1
                            146         .globl _TL0
                            147         .globl _TH2
                            148         .globl _TH1
                            149         .globl _TH0
                            150         .globl _TCON
                            151         .globl _T2CON
                            152         .globl _SP
                            153         .globl _SCON
                            154         .globl _SBUF0
                            155         .globl _SBUF
                            156         .globl _SADEN0
                            157         .globl _RCAP2L
                            158         .globl _RCAP2H
                            159         .globl _PSW
                            160         .globl _PCON
                            161         .globl _P5
                            162         .globl _P4
                            163         .globl _P3
                            164         .globl _P2
                            165         .globl _P1
                            166         .globl _P0
                            167         .globl _IPH
                            168         .globl _IP
                            169         .globl _IE
                            170         .globl _FCON
                            171         .globl _EETIM
                            172         .globl _EECON
                            173         .globl _DP0L
                            174         .globl _DPL
                            175         .globl _DP0H
                            176         .globl _DPH
                            177         .globl _CMOD
                            178         .globl _CL
                            179         .globl _CKCON
                            180         .globl _CH
                            181         .globl _CCON
                            182         .globl _CCAPM4
                            183         .globl _CCAPM3
                            184         .globl _CCAPM2
                            185         .globl _CCAPM1
                            186         .globl _CCAPM0
                            187         .globl _CCAP4L
                            188         .globl _CCAP3L
                            189         .globl _CCAP2L
                            190         .globl _CCAP1L
                            191         .globl _CCAP0L
                            192         .globl _CCAP4H
                            193         .globl _CCAP3H
                            194         .globl _CCAP2H
                            195         .globl _CCAP1H
                            196         .globl _CCAP0H
                            197         .globl _AUXR1
                            198         .globl _B
                            199         .globl _AUXR
                            200         .globl _ACC
                            201         .globl _signal_PARM_2
                            202         .globl _wait_timed_PARM_2
                            203         .globl _start_task_PARM_2
                            204         .globl _T10sec
                            205         .globl _T100ms
                            206         .globl _T0ctr
                            207         .globl _reschedule_ea
                            208         .globl _T0_interrupt_ea
                            209         .globl _start_stack
                            210         .globl _task_timer
                            211         .globl _task_masks
                            212         .globl _task_signals
                            213         .globl _stack_save
                            214         .globl _stack2
                            215         .globl _stack1
                            216         .globl _stack0
                            217         .globl _run
                            218         .globl _ready
                            219         .globl _rt_tasks_init
                            220         .globl _T0Interrupt
                            221         .globl _reschedule
                            222         .globl _start_task
                            223         .globl _end_run_task
                            224         .globl _wait_timed
                            225         .globl _sleep
                            226         .globl _clear_signal
                            227         .globl _signal
                            228         .globl _rt_system_init
                            229 ;--------------------------------------------------------
                            230 ; special function registers
                            231 ;--------------------------------------------------------
                            232         .area RSEG    (DATA)
                    00E0    233 G$ACC$0$0 == 0x00e0
                    00E0    234 _ACC    =       0x00e0
                    008E    235 G$AUXR$0$0 == 0x008e
                    008E    236 _AUXR   =       0x008e
                    00F0    237 G$B$0$0 == 0x00f0
                    00F0    238 _B      =       0x00f0
                    00A2    239 G$AUXR1$0$0 == 0x00a2
                    00A2    240 _AUXR1  =       0x00a2
                    00FA    241 G$CCAP0H$0$0 == 0x00fa
                    00FA    242 _CCAP0H =       0x00fa
                    00FB    243 G$CCAP1H$0$0 == 0x00fb
                    00FB    244 _CCAP1H =       0x00fb
                    00FC    245 G$CCAP2H$0$0 == 0x00fc
                    00FC    246 _CCAP2H =       0x00fc
                    00FD    247 G$CCAP3H$0$0 == 0x00fd
                    00FD    248 _CCAP3H =       0x00fd
                    00FE    249 G$CCAP4H$0$0 == 0x00fe
                    00FE    250 _CCAP4H =       0x00fe
                    00EA    251 G$CCAP0L$0$0 == 0x00ea
                    00EA    252 _CCAP0L =       0x00ea
                    00EB    253 G$CCAP1L$0$0 == 0x00eb
                    00EB    254 _CCAP1L =       0x00eb
                    00EC    255 G$CCAP2L$0$0 == 0x00ec
                    00EC    256 _CCAP2L =       0x00ec
                    00ED    257 G$CCAP3L$0$0 == 0x00ed
                    00ED    258 _CCAP3L =       0x00ed
                    00EE    259 G$CCAP4L$0$0 == 0x00ee
                    00EE    260 _CCAP4L =       0x00ee
                    00DA    261 G$CCAPM0$0$0 == 0x00da
                    00DA    262 _CCAPM0 =       0x00da
                    00DB    263 G$CCAPM1$0$0 == 0x00db
                    00DB    264 _CCAPM1 =       0x00db
                    00DC    265 G$CCAPM2$0$0 == 0x00dc
                    00DC    266 _CCAPM2 =       0x00dc
                    00DD    267 G$CCAPM3$0$0 == 0x00dd
                    00DD    268 _CCAPM3 =       0x00dd
                    00DE    269 G$CCAPM4$0$0 == 0x00de
                    00DE    270 _CCAPM4 =       0x00de
                    00D8    271 G$CCON$0$0 == 0x00d8
                    00D8    272 _CCON   =       0x00d8
                    00F9    273 G$CH$0$0 == 0x00f9
                    00F9    274 _CH     =       0x00f9
                    008F    275 G$CKCON$0$0 == 0x008f
                    008F    276 _CKCON  =       0x008f
                    00E9    277 G$CL$0$0 == 0x00e9
                    00E9    278 _CL     =       0x00e9
                    00D9    279 G$CMOD$0$0 == 0x00d9
                    00D9    280 _CMOD   =       0x00d9
                    0083    281 G$DPH$0$0 == 0x0083
                    0083    282 _DPH    =       0x0083
                    0083    283 G$DP0H$0$0 == 0x0083
                    0083    284 _DP0H   =       0x0083
                    0082    285 G$DPL$0$0 == 0x0082
                    0082    286 _DPL    =       0x0082
                    0082    287 G$DP0L$0$0 == 0x0082
                    0082    288 _DP0L   =       0x0082
                    00D2    289 G$EECON$0$0 == 0x00d2
                    00D2    290 _EECON  =       0x00d2
                    00D3    291 G$EETIM$0$0 == 0x00d3
                    00D3    292 _EETIM  =       0x00d3
                    00D1    293 G$FCON$0$0 == 0x00d1
                    00D1    294 _FCON   =       0x00d1
                    00A8    295 G$IE$0$0 == 0x00a8
                    00A8    296 _IE     =       0x00a8
                    00B8    297 G$IP$0$0 == 0x00b8
                    00B8    298 _IP     =       0x00b8
                    00B7    299 G$IPH$0$0 == 0x00b7
                    00B7    300 _IPH    =       0x00b7
                    0080    301 G$P0$0$0 == 0x0080
                    0080    302 _P0     =       0x0080
                    0090    303 G$P1$0$0 == 0x0090
                    0090    304 _P1     =       0x0090
                    00A0    305 G$P2$0$0 == 0x00a0
                    00A0    306 _P2     =       0x00a0
                    00B0    307 G$P3$0$0 == 0x00b0
                    00B0    308 _P3     =       0x00b0
                    00C0    309 G$P4$0$0 == 0x00c0
                    00C0    310 _P4     =       0x00c0
                    00E8    311 G$P5$0$0 == 0x00e8
                    00E8    312 _P5     =       0x00e8
                    0087    313 G$PCON$0$0 == 0x0087
                    0087    314 _PCON   =       0x0087
                    00D0    315 G$PSW$0$0 == 0x00d0
                    00D0    316 _PSW    =       0x00d0
                    00CB    317 G$RCAP2H$0$0 == 0x00cb
                    00CB    318 _RCAP2H =       0x00cb
                    00CA    319 G$RCAP2L$0$0 == 0x00ca
                    00CA    320 _RCAP2L =       0x00ca
                    00B9    321 G$SADEN0$0$0 == 0x00b9
                    00B9    322 _SADEN0 =       0x00b9
                    0099    323 G$SBUF$0$0 == 0x0099
                    0099    324 _SBUF   =       0x0099
                    0099    325 G$SBUF0$0$0 == 0x0099
                    0099    326 _SBUF0  =       0x0099
                    0098    327 G$SCON$0$0 == 0x0098
                    0098    328 _SCON   =       0x0098
                    0081    329 G$SP$0$0 == 0x0081
                    0081    330 _SP     =       0x0081
                    00C8    331 G$T2CON$0$0 == 0x00c8
                    00C8    332 _T2CON  =       0x00c8
                    0088    333 G$TCON$0$0 == 0x0088
                    0088    334 _TCON   =       0x0088
                    008C    335 G$TH0$0$0 == 0x008c
                    008C    336 _TH0    =       0x008c
                    008D    337 G$TH1$0$0 == 0x008d
                    008D    338 _TH1    =       0x008d
                    00CD    339 G$TH2$0$0 == 0x00cd
                    00CD    340 _TH2    =       0x00cd
                    008A    341 G$TL0$0$0 == 0x008a
                    008A    342 _TL0    =       0x008a
                    008B    343 G$TL1$0$0 == 0x008b
                    008B    344 _TL1    =       0x008b
                    00CC    345 G$TL2$0$0 == 0x00cc
                    00CC    346 _TL2    =       0x00cc
                    0089    347 G$TMOD$0$0 == 0x0089
                    0089    348 _TMOD   =       0x0089
                    00A7    349 G$WDTPRG$0$0 == 0x00a7
                    00A7    350 _WDTPRG =       0x00a7
                    00A6    351 G$WDTRST$0$0 == 0x00a6
                    00A6    352 _WDTRST =       0x00a6
                            353 ;--------------------------------------------------------
                            354 ; special function bits 
                            355 ;--------------------------------------------------------
                            356         .area RSEG    (DATA)
                    00F0    357 G$BREG_F0$0$0 == 0x00f0
                    00F0    358 _BREG_F0        =       0x00f0
                    00F1    359 G$BREG_F1$0$0 == 0x00f1
                    00F1    360 _BREG_F1        =       0x00f1
                    00F2    361 G$BREG_F2$0$0 == 0x00f2
                    00F2    362 _BREG_F2        =       0x00f2
                    00F3    363 G$BREG_F3$0$0 == 0x00f3
                    00F3    364 _BREG_F3        =       0x00f3
                    00F4    365 G$BREG_F4$0$0 == 0x00f4
                    00F4    366 _BREG_F4        =       0x00f4
                    00F5    367 G$BREG_F5$0$0 == 0x00f5
                    00F5    368 _BREG_F5        =       0x00f5
                    00F6    369 G$BREG_F6$0$0 == 0x00f6
                    00F6    370 _BREG_F6        =       0x00f6
                    00F7    371 G$BREG_F7$0$0 == 0x00f7
                    00F7    372 _BREG_F7        =       0x00f7
                    00D8    373 G$CCF0$0$0 == 0x00d8
                    00D8    374 _CCF0   =       0x00d8
                    00D9    375 G$CCF1$0$0 == 0x00d9
                    00D9    376 _CCF1   =       0x00d9
                    00DA    377 G$CCF2$0$0 == 0x00da
                    00DA    378 _CCF2   =       0x00da
                    00DB    379 G$CCF3$0$0 == 0x00db
                    00DB    380 _CCF3   =       0x00db
                    00DC    381 G$CCF4$0$0 == 0x00dc
                    00DC    382 _CCF4   =       0x00dc
                    00DE    383 G$CR$0$0 == 0x00de
                    00DE    384 _CR     =       0x00de
                    00DF    385 G$CF$0$0 == 0x00df
                    00DF    386 _CF     =       0x00df
                    00A8    387 G$EX0$0$0 == 0x00a8
                    00A8    388 _EX0    =       0x00a8
                    00A9    389 G$ET0$0$0 == 0x00a9
                    00A9    390 _ET0    =       0x00a9
                    00AA    391 G$EX1$0$0 == 0x00aa
                    00AA    392 _EX1    =       0x00aa
                    00AB    393 G$ET1$0$0 == 0x00ab
                    00AB    394 _ET1    =       0x00ab
                    00AC    395 G$ES$0$0 == 0x00ac
                    00AC    396 _ES     =       0x00ac
                    00AD    397 G$ET2$0$0 == 0x00ad
                    00AD    398 _ET2    =       0x00ad
                    00AE    399 G$EC$0$0 == 0x00ae
                    00AE    400 _EC     =       0x00ae
                    00AF    401 G$EA$0$0 == 0x00af
                    00AF    402 _EA     =       0x00af
                    00B8    403 G$PX0$0$0 == 0x00b8
                    00B8    404 _PX0    =       0x00b8
                    00B9    405 G$PT0$0$0 == 0x00b9
                    00B9    406 _PT0    =       0x00b9
                    00BA    407 G$PX1$0$0 == 0x00ba
                    00BA    408 _PX1    =       0x00ba
                    00BB    409 G$PT1$0$0 == 0x00bb
                    00BB    410 _PT1    =       0x00bb
                    00BC    411 G$PS$0$0 == 0x00bc
                    00BC    412 _PS     =       0x00bc
                    00BD    413 G$PT2$0$0 == 0x00bd
                    00BD    414 _PT2    =       0x00bd
                    00BE    415 G$PPC$0$0 == 0x00be
                    00BE    416 _PPC    =       0x00be
                    0080    417 G$P0_0$0$0 == 0x0080
                    0080    418 _P0_0   =       0x0080
                    0081    419 G$P0_1$0$0 == 0x0081
                    0081    420 _P0_1   =       0x0081
                    0082    421 G$P0_2$0$0 == 0x0082
                    0082    422 _P0_2   =       0x0082
                    0083    423 G$P0_3$0$0 == 0x0083
                    0083    424 _P0_3   =       0x0083
                    0084    425 G$P0_4$0$0 == 0x0084
                    0084    426 _P0_4   =       0x0084
                    0085    427 G$P0_5$0$0 == 0x0085
                    0085    428 _P0_5   =       0x0085
                    0086    429 G$P0_6$0$0 == 0x0086
                    0086    430 _P0_6   =       0x0086
                    0087    431 G$P0_7$0$0 == 0x0087
                    0087    432 _P0_7   =       0x0087
                    0090    433 G$P1_0$0$0 == 0x0090
                    0090    434 _P1_0   =       0x0090
                    0091    435 G$P1_1$0$0 == 0x0091
                    0091    436 _P1_1   =       0x0091
                    0092    437 G$P1_2$0$0 == 0x0092
                    0092    438 _P1_2   =       0x0092
                    0093    439 G$P1_3$0$0 == 0x0093
                    0093    440 _P1_3   =       0x0093
                    0094    441 G$P1_4$0$0 == 0x0094
                    0094    442 _P1_4   =       0x0094
                    0095    443 G$P1_5$0$0 == 0x0095
                    0095    444 _P1_5   =       0x0095
                    0096    445 G$P1_6$0$0 == 0x0096
                    0096    446 _P1_6   =       0x0096
                    0097    447 G$P1_7$0$0 == 0x0097
                    0097    448 _P1_7   =       0x0097
                    00A0    449 G$P2_0$0$0 == 0x00a0
                    00A0    450 _P2_0   =       0x00a0
                    00A1    451 G$P2_1$0$0 == 0x00a1
                    00A1    452 _P2_1   =       0x00a1
                    00A2    453 G$P2_2$0$0 == 0x00a2
                    00A2    454 _P2_2   =       0x00a2
                    00A3    455 G$P2_3$0$0 == 0x00a3
                    00A3    456 _P2_3   =       0x00a3
                    00A4    457 G$P2_4$0$0 == 0x00a4
                    00A4    458 _P2_4   =       0x00a4
                    00A5    459 G$P2_5$0$0 == 0x00a5
                    00A5    460 _P2_5   =       0x00a5
                    00A6    461 G$P2_6$0$0 == 0x00a6
                    00A6    462 _P2_6   =       0x00a6
                    00A7    463 G$P2_7$0$0 == 0x00a7
                    00A7    464 _P2_7   =       0x00a7
                    00B0    465 G$P3_0$0$0 == 0x00b0
                    00B0    466 _P3_0   =       0x00b0
                    00B1    467 G$P3_1$0$0 == 0x00b1
                    00B1    468 _P3_1   =       0x00b1
                    00B2    469 G$P3_2$0$0 == 0x00b2
                    00B2    470 _P3_2   =       0x00b2
                    00B3    471 G$P3_3$0$0 == 0x00b3
                    00B3    472 _P3_3   =       0x00b3
                    00B4    473 G$P3_4$0$0 == 0x00b4
                    00B4    474 _P3_4   =       0x00b4
                    00B5    475 G$P3_5$0$0 == 0x00b5
                    00B5    476 _P3_5   =       0x00b5
                    00B6    477 G$P3_6$0$0 == 0x00b6
                    00B6    478 _P3_6   =       0x00b6
                    00B7    479 G$P3_7$0$0 == 0x00b7
                    00B7    480 _P3_7   =       0x00b7
                    00B0    481 G$RXD$0$0 == 0x00b0
                    00B0    482 _RXD    =       0x00b0
                    00B0    483 G$RXD0$0$0 == 0x00b0
                    00B0    484 _RXD0   =       0x00b0
                    00B1    485 G$TXD$0$0 == 0x00b1
                    00B1    486 _TXD    =       0x00b1
                    00B1    487 G$TXD0$0$0 == 0x00b1
                    00B1    488 _TXD0   =       0x00b1
                    00B2    489 G$INT0$0$0 == 0x00b2
                    00B2    490 _INT0   =       0x00b2
                    00B3    491 G$INT1$0$0 == 0x00b3
                    00B3    492 _INT1   =       0x00b3
                    00B4    493 G$T0$0$0 == 0x00b4
                    00B4    494 _T0     =       0x00b4
                    00B5    495 G$T1$0$0 == 0x00b5
                    00B5    496 _T1     =       0x00b5
                    00B6    497 G$WR$0$0 == 0x00b6
                    00B6    498 _WR     =       0x00b6
                    00B7    499 G$RD$0$0 == 0x00b7
                    00B7    500 _RD     =       0x00b7
                    00C0    501 G$P4_0$0$0 == 0x00c0
                    00C0    502 _P4_0   =       0x00c0
                    00C1    503 G$P4_1$0$0 == 0x00c1
                    00C1    504 _P4_1   =       0x00c1
                    00C2    505 G$P4_2$0$0 == 0x00c2
                    00C2    506 _P4_2   =       0x00c2
                    00C3    507 G$P4_3$0$0 == 0x00c3
                    00C3    508 _P4_3   =       0x00c3
                    00C4    509 G$P4_4$0$0 == 0x00c4
                    00C4    510 _P4_4   =       0x00c4
                    00C5    511 G$P4_5$0$0 == 0x00c5
                    00C5    512 _P4_5   =       0x00c5
                    00C6    513 G$P4_6$0$0 == 0x00c6
                    00C6    514 _P4_6   =       0x00c6
                    00C7    515 G$P4_7$0$0 == 0x00c7
                    00C7    516 _P4_7   =       0x00c7
                    00E8    517 G$P5_0$0$0 == 0x00e8
                    00E8    518 _P5_0   =       0x00e8
                    00E9    519 G$P5_1$0$0 == 0x00e9
                    00E9    520 _P5_1   =       0x00e9
                    00EA    521 G$P5_2$0$0 == 0x00ea
                    00EA    522 _P5_2   =       0x00ea
                    00EB    523 G$P5_3$0$0 == 0x00eb
                    00EB    524 _P5_3   =       0x00eb
                    00EC    525 G$P5_4$0$0 == 0x00ec
                    00EC    526 _P5_4   =       0x00ec
                    00ED    527 G$P5_5$0$0 == 0x00ed
                    00ED    528 _P5_5   =       0x00ed
                    00EE    529 G$P5_6$0$0 == 0x00ee
                    00EE    530 _P5_6   =       0x00ee
                    00EF    531 G$P5_7$0$0 == 0x00ef
                    00EF    532 _P5_7   =       0x00ef
                    00D0    533 G$P$0$0 == 0x00d0
                    00D0    534 _P      =       0x00d0
                    00D1    535 G$F1$0$0 == 0x00d1
                    00D1    536 _F1     =       0x00d1
                    00D2    537 G$OV$0$0 == 0x00d2
                    00D2    538 _OV     =       0x00d2
                    00D3    539 G$RS0$0$0 == 0x00d3
                    00D3    540 _RS0    =       0x00d3
                    00D4    541 G$RS1$0$0 == 0x00d4
                    00D4    542 _RS1    =       0x00d4
                    00D5    543 G$F0$0$0 == 0x00d5
                    00D5    544 _F0     =       0x00d5
                    00D6    545 G$AC$0$0 == 0x00d6
                    00D6    546 _AC     =       0x00d6
                    00D7    547 G$CY$0$0 == 0x00d7
                    00D7    548 _CY     =       0x00d7
                    0098    549 G$RI$0$0 == 0x0098
                    0098    550 _RI     =       0x0098
                    0099    551 G$TI$0$0 == 0x0099
                    0099    552 _TI     =       0x0099
                    009A    553 G$RB8$0$0 == 0x009a
                    009A    554 _RB8    =       0x009a
                    009B    555 G$TB8$0$0 == 0x009b
                    009B    556 _TB8    =       0x009b
                    009C    557 G$REN$0$0 == 0x009c
                    009C    558 _REN    =       0x009c
                    009D    559 G$SM2$0$0 == 0x009d
                    009D    560 _SM2    =       0x009d
                    009E    561 G$SM1$0$0 == 0x009e
                    009E    562 _SM1    =       0x009e
                    009F    563 G$SM0$0$0 == 0x009f
                    009F    564 _SM0    =       0x009f
                    00C8    565 G$CP_RL2$0$0 == 0x00c8
                    00C8    566 _CP_RL2 =       0x00c8
                    00C9    567 G$C_T2$0$0 == 0x00c9
                    00C9    568 _C_T2   =       0x00c9
                    00CA    569 G$TR2$0$0 == 0x00ca
                    00CA    570 _TR2    =       0x00ca
                    00CB    571 G$EXEN2$0$0 == 0x00cb
                    00CB    572 _EXEN2  =       0x00cb
                    00CC    573 G$TCLK$0$0 == 0x00cc
                    00CC    574 _TCLK   =       0x00cc
                    00CD    575 G$RCLK$0$0 == 0x00cd
                    00CD    576 _RCLK   =       0x00cd
                    00CE    577 G$EXF2$0$0 == 0x00ce
                    00CE    578 _EXF2   =       0x00ce
                    00CF    579 G$TF2$0$0 == 0x00cf
                    00CF    580 _TF2    =       0x00cf
                    00C8    581 G$T2CON_0$0$0 == 0x00c8
                    00C8    582 _T2CON_0        =       0x00c8
                    00C9    583 G$T2CON_1$0$0 == 0x00c9
                    00C9    584 _T2CON_1        =       0x00c9
                    00CA    585 G$T2CON_2$0$0 == 0x00ca
                    00CA    586 _T2CON_2        =       0x00ca
                    00CB    587 G$T2CON_3$0$0 == 0x00cb
                    00CB    588 _T2CON_3        =       0x00cb
                    00CC    589 G$T2CON_4$0$0 == 0x00cc
                    00CC    590 _T2CON_4        =       0x00cc
                    00CD    591 G$T2CON_5$0$0 == 0x00cd
                    00CD    592 _T2CON_5        =       0x00cd
                    00CE    593 G$T2CON_6$0$0 == 0x00ce
                    00CE    594 _T2CON_6        =       0x00ce
                    00CF    595 G$T2CON_7$0$0 == 0x00cf
                    00CF    596 _T2CON_7        =       0x00cf
                    0088    597 G$IT0$0$0 == 0x0088
                    0088    598 _IT0    =       0x0088
                    0089    599 G$IE0$0$0 == 0x0089
                    0089    600 _IE0    =       0x0089
                    008A    601 G$IT1$0$0 == 0x008a
                    008A    602 _IT1    =       0x008a
                    008B    603 G$IE1$0$0 == 0x008b
                    008B    604 _IE1    =       0x008b
                    008C    605 G$TR0$0$0 == 0x008c
                    008C    606 _TR0    =       0x008c
                    008D    607 G$TF0$0$0 == 0x008d
                    008D    608 _TF0    =       0x008d
                    008E    609 G$TR1$0$0 == 0x008e
                    008E    610 _TR1    =       0x008e
                    008F    611 G$TF1$0$0 == 0x008f
                    008F    612 _TF1    =       0x008f
                            613 ;--------------------------------------------------------
                            614 ; overlayable register banks 
                            615 ;--------------------------------------------------------
                            616         .area REG_BANK_0        (REL,OVR,DATA)
   0000                     617         .ds 8
                            618         .area REG_BANK_1        (REL,OVR,DATA)
   0000                     619         .ds 8
                            620         .area REG_BANK_2        (REL,OVR,DATA)
   0000                     621         .ds 8
                            622         .area REG_BANK_3        (REL,OVR,DATA)
   0000                     623         .ds 8
                            624 ;--------------------------------------------------------
                            625 ; internal ram data
                            626 ;--------------------------------------------------------
                            627         .area DSEG    (DATA)
                    0000    628 G$ready$0$0==.
   0000                     629 _ready::
   0000                     630         .ds 1
                    0001    631 G$run$0$0==.
   0001                     632 _run::
   0001                     633         .ds 1
                            634 ;--------------------------------------------------------
                            635 ; overlayable items in internal ram 
                            636 ;--------------------------------------------------------
                            637         .area OSEG    (OVR,DATA)
                            638 ;--------------------------------------------------------
                            639 ; indirectly addressable internal ram data
                            640 ;--------------------------------------------------------
                            641         .area ISEG    (DATA)
                    0000    642 G$stack0$0$0==.
   0000                     643 _stack0::
   0000                     644         .ds 41
                    0029    645 G$stack1$0$0==.
   0029                     646 _stack1::
   0029                     647         .ds 46
                    0057    648 G$stack2$0$0==.
   0057                     649 _stack2::
   0057                     650         .ds 46
                    0085    651 G$stack_save$0$0==.
   0085                     652 _stack_save::
   0085                     653         .ds 3
                    0088    654 G$task_signals$0$0==.
   0088                     655 _task_signals::
   0088                     656         .ds 3
                    008B    657 G$task_masks$0$0==.
   008B                     658 _task_masks::
   008B                     659         .ds 3
                    008E    660 G$task_timer$0$0==.
   008E                     661 _task_timer::
   008E                     662         .ds 3
                    0091    663 G$start_stack$0$0==.
   0091                     664 _start_stack::
   0091                     665         .ds 3
                            666 ;--------------------------------------------------------
                            667 ; bit data
                            668 ;--------------------------------------------------------
                            669         .area BSEG    (BIT)
                    0000    670 G$T0_interrupt_ea$0$0==.
   0000                     671 _T0_interrupt_ea::
   0000                     672         .ds 1
                    0001    673 G$reschedule_ea$0$0==.
   0001                     674 _reschedule_ea::
   0001                     675         .ds 1
                    0002    676 Lstart_task$EA_local$1$1==.
   0002                     677 _start_task_EA_local_1_1:
   0002                     678         .ds 1
                    0003    679 Lend_run_task$EA_local$1$1==.
   0003                     680 _end_run_task_EA_local_1_1:
   0003                     681         .ds 1
                    0004    682 Lwait_timed$EA_local$1$1==.
   0004                     683 _wait_timed_EA_local_1_1:
   0004                     684         .ds 1
                    0005    685 Lsleep$EA_local$1$1==.
   0005                     686 _sleep_EA_local_1_1:
   0005                     687         .ds 1
                    0006    688 Lclear_signal$EA_local$1$1==.
   0006                     689 _clear_signal_EA_local_1_1:
   0006                     690         .ds 1
                    0007    691 Lsignal$EA_local$1$1==.
   0007                     692 _signal_EA_local_1_1:
   0007                     693         .ds 1
                            694 ;--------------------------------------------------------
                            695 ; external ram data
                            696 ;--------------------------------------------------------
                            697         .area XSEG    (XDATA)
                    0000    698 G$T0ctr$0$0==.
   0000                     699 _T0ctr::
   0000                     700         .ds 1
                    0001    701 G$T100ms$0$0==.
   0001                     702 _T100ms::
   0001                     703         .ds 1
                    0002    704 G$T10sec$0$0==.
   0002                     705 _T10sec::
   0002                     706         .ds 1
                    0003    707 Lstart_task$tasknum$1$1==.
   0003                     708 _start_task_PARM_2::
   0003                     709         .ds 1
                    0004    710 Lstart_task$f$1$1==.
   0004                     711 _start_task_f_1_1::
   0004                     712         .ds 2
                    0006    713 Lwait_timed$ticks$1$1==.
   0006                     714 _wait_timed_PARM_2::
   0006                     715         .ds 1
                    0007    716 Lwait_timed$signal$1$1==.
   0007                     717 _wait_timed_signal_1_1::
   0007                     718         .ds 1
                    0008    719 Lsleep$ticks$1$1==.
   0008                     720 _sleep_ticks_1_1::
   0008                     721         .ds 1
                    0009    722 Lclear_signal$pattern$1$1==.
   0009                     723 _clear_signal_pattern_1_1::
   0009                     724         .ds 1
                    000A    725 Lsignal$pattern$1$1==.
   000A                     726 _signal_PARM_2::
   000A                     727         .ds 1
                    000B    728 Lsignal$task$1$1==.
   000B                     729 _signal_task_1_1::
   000B                     730         .ds 1
                            731 ;--------------------------------------------------------
                            732 ; external initialized ram data
                            733 ;--------------------------------------------------------
                            734         .area XISEG   (XDATA)
                            735         .area CSEG    (CODE)
                            736         .area GSINIT0 (CODE)
                            737         .area GSINIT1 (CODE)
                            738         .area GSINIT2 (CODE)
                            739         .area GSINIT3 (CODE)
                            740         .area GSINIT4 (CODE)
                            741         .area GSINIT5 (CODE)
                            742 ;--------------------------------------------------------
                            743 ; global & static initialisations
                            744 ;--------------------------------------------------------
                            745         .area GSINIT  (CODE)
                            746         .area GSFINAL (CODE)
                            747         .area GSINIT  (CODE)
                    0000    748         G$rt_system_init$0$0 ==.
                    0000    749         C$rt_task.c$80$1$1 ==.
                            750 ;rt_task.c:80: const STACK_PTR_TYPE  start_stack[]={
                            751 ;     genPointerSet
                            752 ;     genNearPointerSet
   0000 78r91               753         mov     r0,#_start_stack
   0002 76r00               754         mov     @r0,#_stack0
                            755 ;     genPointerSet
                            756 ;     genNearPointerSet
   0004 78r92               757         mov     r0,#(_start_stack + 0x0001)
   0006 76r29               758         mov     @r0,#_stack1
                            759 ;     genPointerSet
                            760 ;     genNearPointerSet
   0008 78r93               761         mov     r0,#(_start_stack + 0x0002)
   000A 76r57               762         mov     @r0,#_stack2
                            763 ;--------------------------------------------------------
                            764 ; Home
                            765 ;--------------------------------------------------------
                            766         .area HOME    (CODE)
                            767         .area CSEG    (CODE)
                            768 ;--------------------------------------------------------
                            769 ; code
                            770 ;--------------------------------------------------------
                            771         .area CSEG    (CODE)
                            772 ;------------------------------------------------------------
                            773 ;Allocation info for local variables in function 'rt_tasks_init'
                            774 ;------------------------------------------------------------
                            775 ;i                         Allocated with name '_rt_tasks_init_i_1_1'
                            776 ;------------------------------------------------------------
                    0000    777         G$rt_tasks_init$0$0 ==.
                    0000    778         C$rt_task.c$143$0$0 ==.
                            779 ;rt_task.c:143: void rt_tasks_init (void)
                            780 ;       -----------------------------------------
                            781 ;        function rt_tasks_init
                            782 ;       -----------------------------------------
   0000                     783 _rt_tasks_init:
                    0002    784         ar2 = 0x02
                    0003    785         ar3 = 0x03
                    0004    786         ar4 = 0x04
                    0005    787         ar5 = 0x05
                    0006    788         ar6 = 0x06
                    0007    789         ar7 = 0x07
                    0000    790         ar0 = 0x00
                    0001    791         ar1 = 0x01
                    0000    792         C$rt_task.c$146$1$1 ==.
                            793 ;rt_task.c:146: run   = MAIN_TASK_ID;
                            794 ;     genAssign
   0000 75*01 00            795         mov     _run,#0x00
                    0003    796         C$rt_task.c$147$1$1 ==.
                            797 ;rt_task.c:147: ready = TASK_BIT(MAIN_TASK_ID);
                            798 ;     genAssign
   0003 75*00 01            799         mov     _ready,#0x01
                    0006    800         C$rt_task.c$149$1$1 ==.
                            801 ;rt_task.c:149: for(i=0;i<TASKS;i++)
                            802 ;     genAssign
   0006 7A 00               803         mov     r2,#0x00
   0008                     804 00101$:
                            805 ;     genCmpLt
                            806 ;     genCmp
   0008 C3                  807         clr     c
   0009 EA                  808         mov     a,r2
   000A 64 80               809         xrl     a,#0x80
   000C 94 83               810         subb    a,#0x83
                            811 ;     genIfxJump
                            812 ;       Peephole 108    removed ljmp by inverse jump logic
   000E 50 1D               813         jnc     00105$
   0010                     814 00109$:
                    0010    815         C$rt_task.c$151$2$2 ==.
                            816 ;rt_task.c:151: stack_save[i] = 0;
                            817 ;     genPlus
                            818 ;       Peephole 236.g  used r2 instead of ar2
   0010 EA                  819         mov     a,r2
   0011 24r85               820         add     a,#_stack_save
   0013 F8                  821         mov     r0,a
                            822 ;     genAssign
   0014 7B 00               823         mov     r3,#0x00
                            824 ;     genPointerSet
                            825 ;     genNearPointerSet
   0016 A6 03               826         mov     @r0,ar3
                    0018    827         C$rt_task.c$152$2$2 ==.
                            828 ;rt_task.c:152: task_signals[i]=0;
                            829 ;     genPlus
                            830 ;       Peephole 236.g  used r2 instead of ar2
   0018 EA                  831         mov     a,r2
   0019 24r88               832         add     a,#_task_signals
                            833 ;     genPointerSet
                            834 ;     genNearPointerSet
                            835 ;       Peephole 239    used a instead of acc
   001B F8                  836         mov     r0,a
   001C 76 00               837         mov     @r0,#0x00
                    001E    838         C$rt_task.c$153$2$2 ==.
                            839 ;rt_task.c:153: task_masks[i]  =0;
                            840 ;     genPlus
                            841 ;       Peephole 236.g  used r2 instead of ar2
   001E EA                  842         mov     a,r2
   001F 24r8B               843         add     a,#_task_masks
                            844 ;     genPointerSet
                            845 ;     genNearPointerSet
                            846 ;       Peephole 239    used a instead of acc
   0021 F8                  847         mov     r0,a
   0022 76 00               848         mov     @r0,#0x00
                    0024    849         C$rt_task.c$154$2$2 ==.
                            850 ;rt_task.c:154: task_timer[i]  =0;
                            851 ;     genPlus
                            852 ;       Peephole 236.g  used r2 instead of ar2
   0024 EA                  853         mov     a,r2
   0025 24r8E               854         add     a,#_task_timer
                            855 ;     genPointerSet
                            856 ;     genNearPointerSet
                            857 ;       Peephole 239    used a instead of acc
   0027 F8                  858         mov     r0,a
   0028 76 00               859         mov     @r0,#0x00
                    002A    860         C$rt_task.c$149$1$1 ==.
                            861 ;rt_task.c:149: for(i=0;i<TASKS;i++)
                            862 ;     genPlus
                            863 ;     genPlusIncr
   002A 0A                  864         inc     r2
                            865 ;       Peephole 112.b  changed ljmp to sjmp
   002B 80 DB               866         sjmp    00101$
   002D                     867 00105$:
                    002D    868         C$rt_task.c$157$1$1 ==.
                    002D    869         XG$rt_tasks_init$0$0 ==.
   002D 22                  870         ret
                            871 ;------------------------------------------------------------
                            872 ;Allocation info for local variables in function 'T0Interrupt'
                            873 ;------------------------------------------------------------
                            874 ;i                         Allocated with name '_T0Interrupt_i_2_2'
                            875 ;------------------------------------------------------------
                    002E    876         G$T0Interrupt$0$0 ==.
                    002E    877         C$rt_task.c$170$1$1 ==.
                            878 ;rt_task.c:170: void T0Interrupt(void) interrupt T0_INTVEC using T0_INTERRUPT_BANK
                            879 ;       -----------------------------------------
                            880 ;        function T0Interrupt
                            881 ;       -----------------------------------------
   002E                     882 _T0Interrupt:
                    0012    883         ar2 = 0x12
                    0013    884         ar3 = 0x13
                    0014    885         ar4 = 0x14
                    0015    886         ar5 = 0x15
                    0016    887         ar6 = 0x16
                    0017    888         ar7 = 0x17
                    0010    889         ar0 = 0x10
                    0011    890         ar1 = 0x11
   002E C0 E0               891         push    acc
   0030 C0 F0               892         push    b
   0032 C0 82               893         push    dpl
   0034 C0 83               894         push    dph
   0036 C0 D0               895         push    psw
   0038 75 D0 10            896         mov     psw,#0x10
                    003B    897         C$rt_task.c$173$1$1 ==.
                            898 ;rt_task.c:173: T0ctr--;
                            899 ;     genMinus
   003B 90s00r00            900         mov     dptr,#_T0ctr
                            901 ;     genMinusDec
   003E E0                  902         movx    a,@dptr
   003F 14                  903         dec     a
                            904 ;     genAssign
   0040 90s00r00            905         mov     dptr,#_T0ctr
   0043 F0                  906         movx    @dptr,a
                    0044    907         C$rt_task.c$174$1$1 ==.
                            908 ;rt_task.c:174: if(T0ctr==0)
                            909 ;     genAssign
   0044 90s00r00            910         mov     dptr,#_T0ctr
   0047 E0                  911         movx    a,@dptr
   0048 FA                  912         mov     r2,a
                            913 ;     genCmpEq
   0049 BA 00 02            914         cjne    r2,#0x00,00135$
   004C 80 03               915         sjmp    00136$
   004E                     916 00135$:
   004E 02s00rEE            917         ljmp    00113$
   0051                     918 00136$:
                    0051    919         C$rt_task.c$177$2$2 ==.
                            920 ;rt_task.c:177: T100ms++;
                            921 ;     genPlus
   0051 90s00r01            922         mov     dptr,#_T100ms
   0054 E0                  923         movx    a,@dptr
   0055 24 01               924         add     a,#0x01
   0057 F0                  925         movx    @dptr,a
                    0058    926         C$rt_task.c$178$2$2 ==.
                            927 ;rt_task.c:178: if(T100ms & 3) 
                            928 ;     genAssign
   0058 90s00r01            929         mov     dptr,#_T100ms
   005B E0                  930         movx    a,@dptr
                            931 ;     genAnd
                            932 ;       Peephole 105    removed redundant mov
   005C FA                  933         mov     r2,a
   005D 54 03               934         anl     a,#0x03
                            935 ;       Peephole 110    removed ljmp by inverse jump logic
   005F 60 08               936         jz      00102$
   0061                     937 00137$:
                    0061    938         C$rt_task.c$179$2$2 ==.
                            939 ;rt_task.c:179: T0ctr= 11;/* 01,10,11  */
                            940 ;     genAssign
   0061 90s00r00            941         mov     dptr,#_T0ctr
   0064 74 0B               942         mov     a,#0x0B
   0066 F0                  943         movx    @dptr,a
                            944 ;       Peephole 112.b  changed ljmp to sjmp
   0067 80 06               945         sjmp    00130$
   0069                     946 00102$:
                    0069    947         C$rt_task.c$181$2$2 ==.
                            948 ;rt_task.c:181: T0ctr= 12;/* 00 */
                            949 ;     genAssign
   0069 90s00r00            950         mov     dptr,#_T0ctr
   006C 74 0C               951         mov     a,#0x0C
   006E F0                  952         movx    @dptr,a
                    006F    953         C$rt_task.c$183$1$1 ==.
                            954 ;rt_task.c:183: for (i=0;i<TASKS;i++) 
   006F                     955 00130$:
                            956 ;     genAssign
   006F 7A 00               957         mov     r2,#0x00
   0071 7B 00               958         mov     r3,#0x00
   0073                     959 00118$:
                            960 ;     genCmpLt
                            961 ;     genCmp
   0073 C3                  962         clr     c
   0074 EA                  963         mov     a,r2
   0075 94 03               964         subb    a,#0x03
   0077 EB                  965         mov     a,r3
   0078 64 80               966         xrl     a,#0x80
   007A 94 80               967         subb    a,#0x80
                            968 ;     genIfxJump
                            969 ;       Peephole 108    removed ljmp by inverse jump logic
   007C 50 5A               970         jnc     00121$
   007E                     971 00138$:
                    007E    972         C$rt_task.c$185$3$3 ==.
                            973 ;rt_task.c:185: if (task_timer[i] != 0)
                            974 ;     genPlus
                            975 ;       Peephole 236.g  used r2 instead of ar2
   007E EA                  976         mov     a,r2
   007F 24r8E               977         add     a,#_task_timer
   0081 F8                  978         mov     r0,a
                            979 ;     genPointerGet
                            980 ;     genNearPointerGet
   0082 86 14               981         mov     ar4,@r0
                            982 ;     genCmpEq
   0084 BC 00 02            983         cjne    r4,#0x00,00139$
                            984 ;       Peephole 112.b  changed ljmp to sjmp
   0087 80 48               985         sjmp    00120$
   0089                     986 00139$:
                    0089    987         C$rt_task.c$187$4$4 ==.
                            988 ;rt_task.c:187: task_timer[i]--;
                            989 ;     genPlus
                            990 ;       Peephole 236.g  used r2 instead of ar2
   0089 EA                  991         mov     a,r2
   008A 24r8E               992         add     a,#_task_timer
   008C F8                  993         mov     r0,a
                            994 ;     genPointerGet
                            995 ;     genNearPointerGet
   008D 86 14               996         mov     ar4,@r0
                            997 ;     genMinus
                            998 ;     genMinusDec
   008F EC                  999         mov     a,r4
   0090 14                 1000         dec     a
                           1001 ;     genPointerSet
                           1002 ;     genNearPointerSet
   0091 A6 E0              1003         mov     @r0,acc
                    0093   1004         C$rt_task.c$188$4$4 ==.
                           1005 ;rt_task.c:188: if (task_timer[i] == 0)
                           1006 ;     genPlus
                           1007 ;       Peephole 236.g  used r2 instead of ar2
   0093 EA                 1008         mov     a,r2
   0094 24r8E              1009         add     a,#_task_timer
   0096 F8                 1010         mov     r0,a
                           1011 ;     genPointerGet
                           1012 ;     genNearPointerGet
   0097 86 14              1013         mov     ar4,@r0
                           1014 ;     genCmpEq
                           1015 ;       Peephole 112.b  changed ljmp to sjmp
                           1016 ;       Peephole 199    optimized misc jump sequence
   0099 BC 00 35           1017         cjne    r4,#0x00,00120$
                           1018 ;00140$:
                           1019 ;       Peephole 200    removed redundant sjmp
   009C                    1020 00141$:
                    009C   1021         C$rt_task.c$190$5$5 ==.
                           1022 ;rt_task.c:190: task_signals[i] |= TIMER_SIG;
                           1023 ;     genPlus
                           1024 ;       Peephole 236.g  used r2 instead of ar2
   009C EA                 1025         mov     a,r2
   009D 24r88              1026         add     a,#_task_signals
   009F F8                 1027         mov     r0,a
                           1028 ;     genPlus
                           1029 ;       Peephole 236.g  used r2 instead of ar2
   00A0 EA                 1030         mov     a,r2
   00A1 24r88              1031         add     a,#_task_signals
   00A3 F9                 1032         mov     r1,a
                           1033 ;     genPointerGet
                           1034 ;     genNearPointerGet
   00A4 87 14              1035         mov     ar4,@r1
                           1036 ;     genOr
   00A6 74 80              1037         mov     a,#0x80
   00A8 4C                 1038         orl     a,r4
                           1039 ;     genPointerSet
                           1040 ;     genNearPointerSet
   00A9 A6 E0              1041         mov     @r0,acc
                    00AB   1042         C$rt_task.c$191$5$5 ==.
                           1043 ;rt_task.c:191: if(task_signals[i] & task_masks[i])
                           1044 ;     genPlus
                           1045 ;       Peephole 236.g  used r2 instead of ar2
   00AB EA                 1046         mov     a,r2
   00AC 24r88              1047         add     a,#_task_signals
   00AE F8                 1048         mov     r0,a
                           1049 ;     genPointerGet
                           1050 ;     genNearPointerGet
   00AF 86 14              1051         mov     ar4,@r0
                           1052 ;     genPlus
                           1053 ;       Peephole 236.g  used r2 instead of ar2
   00B1 EA                 1054         mov     a,r2
   00B2 24r8B              1055         add     a,#_task_masks
   00B4 F8                 1056         mov     r0,a
                           1057 ;     genPointerGet
                           1058 ;     genNearPointerGet
   00B5 86 15              1059         mov     ar5,@r0
                           1060 ;     genAnd
   00B7 ED                 1061         mov     a,r5
   00B8 5C                 1062         anl     a,r4
                           1063 ;     genIfx
                           1064 ;     genIfxJump
                           1065 ;       Peephole 110    removed ljmp by inverse jump logic
   00B9 60 16              1066         jz      00120$
   00BB                    1067 00142$:
                    00BB   1068         C$rt_task.c$193$6$6 ==.
                           1069 ;rt_task.c:193: ready |= TASK_BIT(i); /* Mapping here */  
                           1070 ;     genLeftShift
   00BB 8A F0              1071         mov     b,r2
   00BD 05 F0              1072         inc     b
   00BF 7C 01              1073         mov     r4,#0x01
   00C1 7D 00              1074         mov     r5,#0x00
   00C3 80 06              1075         sjmp    00144$
   00C5                    1076 00143$:
                           1077 ;       Peephole 254    optimized left shift
   00C5 EC                 1078         mov     a,r4
   00C6 2C                 1079         add     a,r4
   00C7 FC                 1080         mov     r4,a
   00C8 ED                 1081         mov     a,r5
   00C9 33                 1082         rlc     a
   00CA FD                 1083         mov     r5,a
   00CB                    1084 00144$:
   00CB D5 F0 F7           1085         djnz    b,00143$
                           1086 ;     genCast
                           1087 ;     genOr
   00CE EC                 1088         mov     a,r4
   00CF 42*00              1089         orl     _ready,a
   00D1                    1090 00120$:
                    00D1   1091         C$rt_task.c$183$2$2 ==.
                           1092 ;rt_task.c:183: for (i=0;i<TASKS;i++) 
                           1093 ;     genPlus
                           1094 ;     genPlusIncr
   00D1 0A                 1095         inc     r2
                           1096 ;       Peephole 112.b  changed ljmp to sjmp
                           1097 ;       Peephole 243    avoided branch to sjmp
   00D2 BA 00 9E           1098         cjne    r2,#0x00,00118$
   00D5 0B                 1099         inc     r3
   00D6                    1100 00145$:
   00D6 80 9B              1101         sjmp    00118$
   00D8                    1102 00121$:
                    00D8   1103         C$rt_task.c$201$2$2 ==.
                           1104 ;rt_task.c:201: if(T100ms>=MAXT100ms)
                           1105 ;     genAssign
   00D8 90s00r01           1106         mov     dptr,#_T100ms
   00DB E0                 1107         movx    a,@dptr
   00DC FA                 1108         mov     r2,a
                           1109 ;     genCmpLt
                           1110 ;     genCmp
   00DD BA 64 00           1111         cjne    r2,#0x64,00146$
   00E0                    1112 00146$:
                           1113 ;     genIfxJump
                           1114 ;       Peephole 112.b  changed ljmp to sjmp
                           1115 ;       Peephole 160    removed sjmp by inverse jump logic
   00E0 40 0C              1116         jc      00113$
   00E2                    1117 00147$:
                    00E2   1118         C$rt_task.c$203$3$7 ==.
                           1119 ;rt_task.c:203: T10sec++;
                           1120 ;     genPlus
   00E2 90s00r02           1121         mov     dptr,#_T10sec
   00E5 E0                 1122         movx    a,@dptr
   00E6 24 01              1123         add     a,#0x01
   00E8 F0                 1124         movx    @dptr,a
                    00E9   1125         C$rt_task.c$204$3$7 ==.
                           1126 ;rt_task.c:204: T100ms=0;  
                           1127 ;     genAssign
   00E9 90s00r01           1128         mov     dptr,#_T100ms
                           1129 ;       Peephole 181    changed mov to clr
   00EC E4                 1130         clr     a
   00ED F0                 1131         movx    @dptr,a
   00EE                    1132 00113$:
                    00EE   1133         C$rt_task.c$211$1$1 ==.
                           1134 ;rt_task.c:211: if(!SIO1_CTS && !SIO1_TxBusy && SIO1_TxCount) 
                           1135 ;     genIfx
                           1136 ;     genIfxJump
                           1137 ;       Peephole 112.a  removed ljmp by inverse jump logic
   00EE 20 95 0C           1138         jb      _P1_5,00115$
   00F1                    1139 00148$:
                           1140 ;     genIfx
                           1141 ;     genIfxJump
                           1142 ;       Peephole 112.a  removed ljmp by inverse jump logic
   00F1 20*00 09           1143         jb      _SIO1_TxBusy,00115$
   00F4                    1144 00149$:
                           1145 ;     genAssign
   00F4 90s00r00           1146         mov     dptr,#_SIO1_TxCount
   00F7 E0                 1147         movx    a,@dptr
                           1148 ;     genIfx
                           1149 ;       Peephole 105    removed redundant mov
   00F8 FA                 1150         mov     r2,a
                           1151 ;     genIfxJump
                           1152 ;       Peephole 110    removed ljmp by inverse jump logic
   00F9 60 02              1153         jz      00115$
   00FB                    1154 00150$:
                    00FB   1155         C$rt_task.c$213$2$8 ==.
                           1156 ;rt_task.c:213: TI=1;
                           1157 ;     genAssign
   00FB D2 99              1158         setb    _TI
   00FD                    1159 00115$:
                    00FD   1160         C$rt_task.c$297$1$1 ==.
                           1161 ;rt_task.c:297: _endasm;
                           1162 ;     genInline
                           1163 ; use assembler form of atomic operation for keeping ea
   00FD 10 AF 04           1164           jbc ea,0001$
   0100 C2*00              1165           clr _T0_interrupt_ea
   0102 80 02              1166           sjmp 0002$
   0104                    1167 0001$:
   0104 D2*00              1168           setb _T0_interrupt_ea
   0106                    1169 0002$:
                           1170 ; These are in bank 0
   0106 C0 07              1171           push 7
   0108 C0 06              1172           push 6
   010A C0 05              1173           push 5
   010C C0 04              1174           push 4
   010E C0 03              1175           push 3
   0110 C0 02              1176           push 2
   0112 C0 01              1177           push 1
   0114 C0 00              1178           push 0
                           1179 ;
                           1180 ;
                           1181 ; Determine which task was running
                           1182 ; and save the task SP
                           1183 ;
   0116 E5*01              1184           mov a,_run
   0118 24r85              1185           add a,#_stack_save
   011A F8                 1186           mov r0,a
   011B E5 81              1187           mov a,sp
   011D F6                 1188           mov @r0,a
                           1189 ; *********** SCHEDULE CODE HERE
                           1190 ;
                           1191 ; look at the task ready flags
   011E E5*00              1192           mov a,_ready
   0120 24 10              1193           add a,#0x10
   0122 54 3F              1194           anl a,#0x3F
   0124 F5*00              1195           mov _ready,a
                           1196 ;
                           1197 ; get new running task ID
                           1198 ;
   0126 90s03rEE           1199           mov dptr,#_priotab
   0129 93                 1200           movc a,@a+dptr
                           1201 ;
   012A F5*01              1202           mov _run,a
                           1203 ;
   012C 24r85              1204           add a,#_stack_save
   012E F8                 1205           mov r0,a
   012F E6                 1206           mov a,@r0
   0130 F5 81              1207           mov sp,a
                           1208 ;
                           1209 ;
                           1210 ; Bank 0 registers in use here
                           1211 ;
   0132 D0 00              1212           pop 0
   0134 D0 01              1213           pop 1
   0136 D0 02              1214           pop 2
   0138 D0 03              1215           pop 3
   013A D0 04              1216           pop 4
   013C D0 05              1217           pop 5
   013E D0 06              1218           pop 6
   0140 D0 07              1219           pop 7
                           1220 ;
                           1221 ; this is done in the ISR
                           1222 ; pop psw
                           1223 ; pop dph
                           1224 ; pop dpl
                           1225 ; pop b
                           1226 ; pop acc
                           1227 ;
                           1228 ;
                           1229 ;
   0142 30*00 02           1230           jnb _T0_interrupt_ea,0010$
   0145 D2 AF              1231           setb ea
   0147                    1232 0010$:
   0147                    1233 00122$:
   0147 D0 D0              1234         pop     psw
   0149 D0 83              1235         pop     dph
   014B D0 82              1236         pop     dpl
   014D D0 F0              1237         pop     b
   014F D0 E0              1238         pop     acc
                    0151   1239         C$rt_task.c$301$1$1 ==.
                    0151   1240         XG$T0Interrupt$0$0 ==.
   0151 32                 1241         reti
                           1242 ;------------------------------------------------------------
                           1243 ;Allocation info for local variables in function 'reschedule'
                           1244 ;------------------------------------------------------------
                           1245 ;------------------------------------------------------------
                    0152   1246         G$reschedule$0$0 ==.
                    0152   1247         C$rt_task.c$328$1$1 ==.
                           1248 ;rt_task.c:328: void reschedule(void) 
                           1249 ;       -----------------------------------------
                           1250 ;        function reschedule
                           1251 ;       -----------------------------------------
   0152                    1252 _reschedule:
                    0002   1253         ar2 = 0x02
                    0003   1254         ar3 = 0x03
                    0004   1255         ar4 = 0x04
                    0005   1256         ar5 = 0x05
                    0006   1257         ar6 = 0x06
                    0007   1258         ar7 = 0x07
                    0000   1259         ar0 = 0x00
                    0001   1260         ar1 = 0x01
                    0152   1261         C$rt_task.c$413$1$1 ==.
                           1262 ;rt_task.c:413: _endasm;
                           1263 ;     genInline
                           1264 ; use assembler form of atomic operation for keeping ea
   0152 10 AF 04           1265           jbc ea,0001$
   0155 C2*01              1266           clr _reschedule_ea
   0157 80 02              1267           sjmp 0002$
   0159                    1268 0001$:
   0159 D2*01              1269           setb _reschedule_ea
   015B                    1270 0002$:
                           1271 ; this is done in any ISR
   015B C0 E0              1272                 push acc
   015D C0 F0              1273                 push b
   015F C0 82              1274                 push dpl
   0161 C0 83              1275                 push dph
   0163 C0 D0              1276                 push psw
                           1277 ;
                           1278 ; These are in bank 0
                           1279 ;
   0165 C0 07              1280           push 7
   0167 C0 06              1281           push 6
   0169 C0 05              1282           push 5
   016B C0 04              1283           push 4
   016D C0 03              1284           push 3
   016F C0 02              1285           push 2
   0171 C0 01              1286           push 1
   0173 C0 00              1287           push 0
                           1288 ;
                           1289 ;
                           1290 ;
                           1291 ; Determine which task was running
                           1292 ; and save the task SP
                           1293 ;
   0175 E5*01              1294           mov a,_run
   0177 24r85              1295           add a,#_stack_save
   0179 F8                 1296           mov r0,a
   017A E5 81              1297           mov a,sp
   017C F6                 1298           mov @r0,a
                           1299 ; *********** SCHEDULE CODE HERE
                           1300 ;
                           1301 ; look at the task ready flags
   017D E5*00              1302           mov a,_ready
   017F 24 10              1303           add a,#0x10
   0181 54 3F              1304           anl a,#0x3F
   0183 F5*00              1305           mov _ready,a
                           1306 ;
                           1307 ; get new running task ID
                           1308 ;
   0185 90s03rEE           1309           mov dptr,#_priotab
   0188 93                 1310           movc a,@a+dptr
                           1311 ;
   0189 F5*01              1312           mov _run,a
                           1313 ;
   018B 24r85              1314           add a,#_stack_save
   018D F8                 1315           mov r0,a
   018E E6                 1316           mov a,@r0
   018F F5 81              1317           mov sp,a
                           1318 ;
                           1319 ;
                           1320 ; Bank 0 registers in use here
                           1321 ;
   0191 D0 00              1322           pop 0
   0193 D0 01              1323           pop 1
   0195 D0 02              1324           pop 2
   0197 D0 03              1325           pop 3
   0199 D0 04              1326           pop 4
   019B D0 05              1327           pop 5
   019D D0 06              1328           pop 6
   019F D0 07              1329           pop 7
                           1330 ;
                           1331 ; this is done in the ISR
   01A1 D0 D0              1332                 pop psw
   01A3 D0 83              1333                 pop dph
   01A5 D0 82              1334                 pop dpl
   01A7 D0 F0              1335                 pop b
   01A9 D0 E0              1336                 pop acc
                           1337 ;
   01AB 30*01 02           1338           jnb _reschedule_ea,0010$
   01AE D2 AF              1339           setb ea
   01B0                    1340 0010$:
                           1341 ;
   01B0                    1342 00101$:
                    01B0   1343         C$rt_task.c$415$1$1 ==.
                    01B0   1344         XG$reschedule$0$0 ==.
   01B0 22                 1345         ret
                           1346 ;------------------------------------------------------------
                           1347 ;Allocation info for local variables in function 'start_task'
                           1348 ;------------------------------------------------------------
                           1349 ;tasknum                   Allocated with name '_start_task_PARM_2'
                           1350 ;f                         Allocated with name '_start_task_f_1_1'
                           1351 ;fp                        Allocated with name '_start_task_fp_1_1'
                           1352 ;csp                       Allocated to registers r0 
                           1353 ;------------------------------------------------------------
                    01B1   1354         G$start_task$0$0 ==.
                    01B1   1355         C$rt_task.c$424$1$1 ==.
                           1356 ;rt_task.c:424: start_rc start_task(task_p f,char tasknum)
                           1357 ;       -----------------------------------------
                           1358 ;        function start_task
                           1359 ;       -----------------------------------------
   01B1                    1360 _start_task:
                           1361 ;     genReceive
   01B1 AA 83              1362         mov     r2,dph
   01B3 E5 82              1363         mov     a,dpl
   01B5 90s00r04           1364         mov     dptr,#_start_task_f_1_1
   01B8 F0                 1365         movx    @dptr,a
   01B9 A3                 1366         inc     dptr
   01BA EA                 1367         mov     a,r2
   01BB F0                 1368         movx    @dptr,a
                    01BC   1369         C$rt_task.c$429$1$1 ==.
                           1370 ;rt_task.c:429: if (tasknum >= TASKS) 
                           1371 ;     genAssign
   01BC 90s00r03           1372         mov     dptr,#_start_task_PARM_2
   01BF E0                 1373         movx    a,@dptr
                           1374 ;     genCmpLt
                           1375 ;     genCmp
                           1376 ;       Peephole 106    removed redundant mov
   01C0 FA                 1377         mov     r2,a
   01C1 C3                 1378         clr     c
   01C2 64 80              1379         xrl     a,#0x80
   01C4 94 83              1380         subb    a,#0x83
                           1381 ;     genIfxJump
                           1382 ;       Peephole 112.b  changed ljmp to sjmp
                           1383 ;       Peephole 160    removed sjmp by inverse jump logic
   01C6 40 04              1384         jc      00102$
   01C8                    1385 00110$:
                    01C8   1386         C$rt_task.c$430$1$1 ==.
                           1387 ;rt_task.c:430: return FAILED;
                           1388 ;     genRet
   01C8 75 82 01           1389         mov     dpl,#0x01
                           1390 ;       Peephole 251.a  replaced ljmp to ret with ret
   01CB 22                 1391         ret
   01CC                    1392 00102$:
                    01CC   1393         C$rt_task.c$432$2$2 ==.
                           1394 ;rt_task.c:432: BEGIN_CRITICAL;
                           1395 ;     genIfx
                           1396 ;     genIfxJump
                           1397 ;       Peephole 111    removed ljmp by inverse jump logic
                           1398 ;     genAssign
                           1399 ;       Peephole 250.a  using atomic test and clear
   01CC 10 AF 02           1400         jbc     _EA,00111$
   01CF 80 04              1401         sjmp    00104$
   01D1                    1402 00111$:
                           1403 ;     genAssign
   01D1 D2*02              1404         setb    _start_task_EA_local_1_1
                           1405 ;       Peephole 112.b  changed ljmp to sjmp
   01D3 80 02              1406         sjmp    00105$
   01D5                    1407 00104$:
                           1408 ;     genAssign
   01D5 C2*02              1409         clr     _start_task_EA_local_1_1
   01D7                    1410 00105$:
                    01D7   1411         C$rt_task.c$433$1$1 ==.
                           1412 ;rt_task.c:433: csp = start_stack[tasknum];
                           1413 ;     genPlus
                           1414 ;       Peephole 236.g  used r2 instead of ar2
   01D7 EA                 1415         mov     a,r2
   01D8 24r91              1416         add     a,#_start_stack
   01DA F8                 1417         mov     r0,a
                           1418 ;     genPointerGet
                           1419 ;     genNearPointerGet
   01DB 86 00              1420         mov     ar0,@r0
                    01DD   1421         C$rt_task.c$434$1$1 ==.
                           1422 ;rt_task.c:434: stack_save[tasknum] = (STACK_PTR_TYPE)csp+16 ;
                           1423 ;     genPlus
                           1424 ;       Peephole 236.g  used r2 instead of ar2
   01DD EA                 1425         mov     a,r2
   01DE 24r85              1426         add     a,#_stack_save
   01E0 F9                 1427         mov     r1,a
                           1428 ;     genPlus
   01E1 74 10              1429         mov     a,#0x10
                           1430 ;       Peephole 236.a  used r0 instead of ar0
   01E3 28                 1431         add     a,r0
                           1432 ;     genPointerSet
                           1433 ;     genNearPointerSet
   01E4 A7 E0              1434         mov     @r1,acc
                    01E6   1435         C$rt_task.c$436$1$1 ==.
                           1436 ;rt_task.c:436: fp =  (int)&end_run_task;
                           1437 ;     genCast
   01E6 7Br50              1438         mov     r3,#_end_run_task
   01E8 7Cs02              1439         mov     r4,#(_end_run_task >> 8)
                    01EA   1440         C$rt_task.c$437$1$1 ==.
                           1441 ;rt_task.c:437: *csp++     = (char)(fp & 0xff);
                           1442 ;     genAnd
   01EA 8B 05              1443         mov     ar5,r3
   01EC 7E 00              1444         mov     r6,#0x00
                           1445 ;     genCast
                           1446 ;     genPointerSet
                           1447 ;     genNearPointerSet
   01EE A6 05              1448         mov     @r0,ar5
   01F0 08                 1449         inc     r0
                    01F1   1450         C$rt_task.c$438$1$1 ==.
                           1451 ;rt_task.c:438: *csp++     = (char)(fp >> 8) ;
                           1452 ;     genRightShift
                           1453 ;     genSignedRightShift
                           1454 ;     genRightShiftLiteral
                           1455 ;     genrshTwo
   01F1 EC                 1456         mov     a,r4
   01F2 FB                 1457         mov     r3,a
   01F3 33                 1458         rlc     a
   01F4 95 E0              1459         subb    a,acc
   01F6 FC                 1460         mov     r4,a
                           1461 ;     genCast
                           1462 ;     genPointerSet
                           1463 ;     genNearPointerSet
   01F7 A6 03              1464         mov     @r0,ar3
   01F9 08                 1465         inc     r0
                    01FA   1466         C$rt_task.c$440$1$1 ==.
                           1467 ;rt_task.c:440: fp = (int)f;    
                           1468 ;     genAssign
   01FA 90s00r04           1469         mov     dptr,#_start_task_f_1_1
   01FD E0                 1470         movx    a,@dptr
   01FE FB                 1471         mov     r3,a
   01FF A3                 1472         inc     dptr
   0200 E0                 1473         movx    a,@dptr
   0201 FC                 1474         mov     r4,a
                           1475 ;     genCast
                    0202   1476         C$rt_task.c$441$1$1 ==.
                           1477 ;rt_task.c:441: *csp++     = (char)(fp &0xff);
                           1478 ;     genAnd
   0202 8B 05              1479         mov     ar5,r3
   0204 7E 00              1480         mov     r6,#0x00
                           1481 ;     genCast
                           1482 ;     genPointerSet
                           1483 ;     genNearPointerSet
   0206 A6 05              1484         mov     @r0,ar5
   0208 08                 1485         inc     r0
                    0209   1486         C$rt_task.c$442$1$1 ==.
                           1487 ;rt_task.c:442: *csp++     = (char)(fp >> 8) ;
                           1488 ;     genRightShift
                           1489 ;     genSignedRightShift
                           1490 ;     genRightShiftLiteral
                           1491 ;     genrshTwo
   0209 EC                 1492         mov     a,r4
   020A FB                 1493         mov     r3,a
   020B 33                 1494         rlc     a
   020C 95 E0              1495         subb    a,acc
   020E FC                 1496         mov     r4,a
                           1497 ;     genCast
                           1498 ;     genPointerSet
                           1499 ;     genNearPointerSet
   020F A6 03              1500         mov     @r0,ar3
   0211 08                 1501         inc     r0
                    0212   1502         C$rt_task.c$446$1$1 ==.
                           1503 ;rt_task.c:446: *csp++ = 0; /* csp[4]   = acc  could pass argument here */
                           1504 ;     genPointerSet
                           1505 ;     genNearPointerSet
   0212 76 00              1506         mov     @r0,#0x00
   0214 08                 1507         inc     r0
                    0215   1508         C$rt_task.c$447$1$1 ==.
                           1509 ;rt_task.c:447: *csp++ = 0; /* csp[5]   = b   */
                           1510 ;     genPointerSet
                           1511 ;     genNearPointerSet
   0215 76 00              1512         mov     @r0,#0x00
   0217 08                 1513         inc     r0
                    0218   1514         C$rt_task.c$448$1$1 ==.
                           1515 ;rt_task.c:448: *csp++ = 0; /*  csp[6] = dpl    */
                           1516 ;     genPointerSet
                           1517 ;     genNearPointerSet
   0218 76 00              1518         mov     @r0,#0x00
   021A 08                 1519         inc     r0
                    021B   1520         C$rt_task.c$449$1$1 ==.
                           1521 ;rt_task.c:449: *csp++ = 0; /*  csp[7] = dph    */
                           1522 ;     genPointerSet
                           1523 ;     genNearPointerSet
   021B 76 00              1524         mov     @r0,#0x00
   021D 08                 1525         inc     r0
                    021E   1526         C$rt_task.c$450$1$1 ==.
                           1527 ;rt_task.c:450: *csp++ = 0; /* psw VITAL */  
                           1528 ;     genPointerSet
                           1529 ;     genNearPointerSet
   021E 76 00              1530         mov     @r0,#0x00
   0220 08                 1531         inc     r0
                    0221   1532         C$rt_task.c$451$1$1 ==.
                           1533 ;rt_task.c:451: *csp++ = 0; /* csp [9] = r7 */
                           1534 ;     genPointerSet
                           1535 ;     genNearPointerSet
   0221 76 00              1536         mov     @r0,#0x00
   0223 08                 1537         inc     r0
                    0224   1538         C$rt_task.c$452$1$1 ==.
                           1539 ;rt_task.c:452: *csp++ = 0; /* csp [10] = r6 */
                           1540 ;     genPointerSet
                           1541 ;     genNearPointerSet
   0224 76 00              1542         mov     @r0,#0x00
   0226 08                 1543         inc     r0
                    0227   1544         C$rt_task.c$453$1$1 ==.
                           1545 ;rt_task.c:453: *csp++ = 0; /* csp [11] = r5 */
                           1546 ;     genPointerSet
                           1547 ;     genNearPointerSet
   0227 76 00              1548         mov     @r0,#0x00
   0229 08                 1549         inc     r0
                    022A   1550         C$rt_task.c$454$1$1 ==.
                           1551 ;rt_task.c:454: *csp++ = 0; /* csp [12] = r4 */
                           1552 ;     genPointerSet
                           1553 ;     genNearPointerSet
   022A 76 00              1554         mov     @r0,#0x00
   022C 08                 1555         inc     r0
                    022D   1556         C$rt_task.c$455$1$1 ==.
                           1557 ;rt_task.c:455: *csp++ = 0; /* csp [13] = r3 */
                           1558 ;     genPointerSet
                           1559 ;     genNearPointerSet
   022D 76 00              1560         mov     @r0,#0x00
   022F 08                 1561         inc     r0
                    0230   1562         C$rt_task.c$456$1$1 ==.
                           1563 ;rt_task.c:456: *csp++ = 0; /* csp [14] = r2 */
                           1564 ;     genPointerSet
                           1565 ;     genNearPointerSet
   0230 76 00              1566         mov     @r0,#0x00
   0232 08                 1567         inc     r0
                    0233   1568         C$rt_task.c$457$1$1 ==.
                           1569 ;rt_task.c:457: *csp++ = 0; /* csp [15] = r1 */
                           1570 ;     genPointerSet
                           1571 ;     genNearPointerSet
   0233 76 00              1572         mov     @r0,#0x00
   0235 08                 1573         inc     r0
                    0236   1574         C$rt_task.c$458$1$1 ==.
                           1575 ;rt_task.c:458: *csp   = 0; /* csp [16] = r0 */
                           1576 ;     genPointerSet
                           1577 ;     genNearPointerSet
   0236 76 00              1578         mov     @r0,#0x00
                    0238   1579         C$rt_task.c$462$1$1 ==.
                           1580 ;rt_task.c:462: ready |= TASK_BIT(tasknum);
                           1581 ;     genLeftShift
   0238 8A F0              1582         mov     b,r2
   023A 05 F0              1583         inc     b
   023C 74 01              1584         mov     a,#0x01
   023E 80 02              1585         sjmp    00114$
   0240                    1586 00112$:
   0240 25 E0              1587         add     a,acc
   0242                    1588 00114$:
   0242 D5 F0 FB           1589         djnz    b,00112$
                           1590 ;     genOr
                           1591 ;       Peephole 105    removed redundant mov
   0245 FA                 1592         mov     r2,a
   0246 42*00              1593         orl     _ready,a
                    0248   1594         C$rt_task.c$463$2$5 ==.
                           1595 ;rt_task.c:463: END_CRITICAL;
                           1596 ;     genAssign
   0248 A2*02              1597         mov     c,_start_task_EA_local_1_1
   024A 92 AF              1598         mov     _EA,c
                    024C   1599         C$rt_task.c$464$1$1 ==.
                           1600 ;rt_task.c:464: return STARTED;
                           1601 ;     genRet
   024C 75 82 02           1602         mov     dpl,#0x02
   024F                    1603 00106$:
                    024F   1604         C$rt_task.c$465$1$1 ==.
                    024F   1605         XG$start_task$0$0 ==.
   024F 22                 1606         ret
                           1607 ;------------------------------------------------------------
                           1608 ;Allocation info for local variables in function 'end_run_task'
                           1609 ;------------------------------------------------------------
                           1610 ;------------------------------------------------------------
                    0250   1611         G$end_run_task$0$0 ==.
                    0250   1612         C$rt_task.c$471$1$1 ==.
                           1613 ;rt_task.c:471: void end_run_task(void)
                           1614 ;       -----------------------------------------
                           1615 ;        function end_run_task
                           1616 ;       -----------------------------------------
   0250                    1617 _end_run_task:
                    0250   1618         C$rt_task.c$475$2$2 ==.
                           1619 ;rt_task.c:475: BEGIN_CRITICAL;
                           1620 ;     genIfx
                           1621 ;     genIfxJump
                           1622 ;       Peephole 111    removed ljmp by inverse jump logic
                           1623 ;     genAssign
                           1624 ;       Peephole 250.a  using atomic test and clear
   0250 10 AF 02           1625         jbc     _EA,00111$
   0253 80 04              1626         sjmp    00102$
   0255                    1627 00111$:
                           1628 ;     genAssign
   0255 D2*03              1629         setb    _end_run_task_EA_local_1_1
                           1630 ;       Peephole 112.b  changed ljmp to sjmp
   0257 80 02              1631         sjmp    00103$
   0259                    1632 00102$:
                           1633 ;     genAssign
   0259 C2*03              1634         clr     _end_run_task_EA_local_1_1
   025B                    1635 00103$:
                    025B   1636         C$rt_task.c$476$1$1 ==.
                           1637 ;rt_task.c:476: ready &= ~TASK_BIT(run);
                           1638 ;     genLeftShift
   025B 85*01 F0           1639         mov     b,_run
   025E 05 F0              1640         inc     b
   0260 74 01              1641         mov     a,#0x01
   0262 80 02              1642         sjmp    00114$
   0264                    1643 00112$:
   0264 25 E0              1644         add     a,acc
   0266                    1645 00114$:
   0266 D5 F0 FB           1646         djnz    b,00112$
                           1647 ;     genCpl
                           1648 ;       Peephole 105    removed redundant mov
                           1649 ;     genAnd
                           1650 ;       Peephole 105    removed redundant mov
                           1651 ;       Peephole 184    removed redundant mov
   0269 F4                 1652         cpl     a
   026A FA                 1653         mov     r2,a
   026B 52*00              1654         anl     _ready,a
                    026D   1655         C$rt_task.c$477$1$1 ==.
                           1656 ;rt_task.c:477: task_masks[run] = 0; /* Stop any further signals making task ready to run */
                           1657 ;     genPlus
   026D E5*01              1658         mov     a,_run
   026F 24r8B              1659         add     a,#_task_masks
                           1660 ;     genPointerSet
                           1661 ;     genNearPointerSet
                           1662 ;       Peephole 239    used a instead of acc
   0271 F8                 1663         mov     r0,a
   0272 76 00              1664         mov     @r0,#0x00
                    0274   1665         C$rt_task.c$478$1$1 ==.
                           1666 ;rt_task.c:478: task_timer[run] = 0;  /* kill off pending task timeout */
                           1667 ;     genPlus
   0274 E5*01              1668         mov     a,_run
   0276 24r8E              1669         add     a,#_task_timer
                           1670 ;     genPointerSet
                           1671 ;     genNearPointerSet
                           1672 ;       Peephole 239    used a instead of acc
   0278 F8                 1673         mov     r0,a
   0279 76 00              1674         mov     @r0,#0x00
                    027B   1675         C$rt_task.c$479$2$5 ==.
                           1676 ;rt_task.c:479: END_CRITICAL;
                           1677 ;     genAssign
   027B A2*03              1678         mov     c,_end_run_task_EA_local_1_1
   027D 92 AF              1679         mov     _EA,c
                    027F   1680         C$rt_task.c$480$1$1 ==.
                           1681 ;rt_task.c:480: reschedule(); 
                           1682 ;     genCall
   027F 12s01r52           1683         lcall   _reschedule
                    0282   1684         C$rt_task.c$482$1$1 ==.
                           1685 ;rt_task.c:482: while(1);
   0282                    1686 00105$:
                           1687 ;       Peephole 112.b  changed ljmp to sjmp
   0282 80 FE              1688         sjmp    00105$
   0284                    1689 00107$:
                    0284   1690         C$rt_task.c$484$1$1 ==.
                    0284   1691         XG$end_run_task$0$0 ==.
   0284 22                 1692         ret
                           1693 ;------------------------------------------------------------
                           1694 ;Allocation info for local variables in function 'wait_timed'
                           1695 ;------------------------------------------------------------
                           1696 ;ticks                     Allocated with name '_wait_timed_PARM_2'
                           1697 ;signal                    Allocated with name '_wait_timed_signal_1_1'
                           1698 ;------------------------------------------------------------
                    0285   1699         G$wait_timed$0$0 ==.
                    0285   1700         C$rt_task.c$489$1$1 ==.
                           1701 ;rt_task.c:489: char wait_timed(char signal,char ticks) 
                           1702 ;       -----------------------------------------
                           1703 ;        function wait_timed
                           1704 ;       -----------------------------------------
   0285                    1705 _wait_timed:
                           1706 ;     genReceive
   0285 E5 82              1707         mov     a,dpl
   0287 90s00r07           1708         mov     dptr,#_wait_timed_signal_1_1
   028A F0                 1709         movx    @dptr,a
                    028B   1710         C$rt_task.c$492$2$2 ==.
                           1711 ;rt_task.c:492: BEGIN_CRITICAL;
                           1712 ;     genIfx
                           1713 ;     genIfxJump
                           1714 ;       Peephole 111    removed ljmp by inverse jump logic
                           1715 ;     genAssign
                           1716 ;       Peephole 250.a  using atomic test and clear
   028B 10 AF 02           1717         jbc     _EA,00107$
   028E 80 04              1718         sjmp    00102$
   0290                    1719 00107$:
                           1720 ;     genAssign
   0290 D2*04              1721         setb    _wait_timed_EA_local_1_1
                           1722 ;       Peephole 112.b  changed ljmp to sjmp
   0292 80 02              1723         sjmp    00103$
   0294                    1724 00102$:
                           1725 ;     genAssign
   0294 C2*04              1726         clr     _wait_timed_EA_local_1_1
   0296                    1727 00103$:
                    0296   1728         C$rt_task.c$493$1$1 ==.
                           1729 ;rt_task.c:493: ready             &= ~TASK_BIT(run); /* this task is going to sleep */
                           1730 ;     genLeftShift
   0296 85*01 F0           1731         mov     b,_run
   0299 05 F0              1732         inc     b
   029B 74 01              1733         mov     a,#0x01
   029D 80 02              1734         sjmp    00110$
   029F                    1735 00108$:
   029F 25 E0              1736         add     a,acc
   02A1                    1737 00110$:
   02A1 D5 F0 FB           1738         djnz    b,00108$
                           1739 ;     genCpl
                           1740 ;       Peephole 105    removed redundant mov
                           1741 ;     genAnd
                           1742 ;       Peephole 105    removed redundant mov
                           1743 ;       Peephole 184    removed redundant mov
   02A4 F4                 1744         cpl     a
   02A5 FA                 1745         mov     r2,a
   02A6 52*00              1746         anl     _ready,a
                    02A8   1747         C$rt_task.c$494$1$1 ==.
                           1748 ;rt_task.c:494: task_timer[run]    = ticks;
                           1749 ;     genPlus
   02A8 E5*01              1750         mov     a,_run
   02AA 24r8E              1751         add     a,#_task_timer
   02AC F8                 1752         mov     r0,a
                           1753 ;     genAssign
   02AD 90s00r06           1754         mov     dptr,#_wait_timed_PARM_2
   02B0 E0                 1755         movx    a,@dptr
                           1756 ;     genPointerSet
                           1757 ;     genNearPointerSet
                           1758 ;       Peephole 192    used a instead of ar2 as source
   02B1 FA                 1759         mov     r2,a
   02B2 F6                 1760         mov     @r0,a
                    02B3   1761         C$rt_task.c$495$1$1 ==.
                           1762 ;rt_task.c:495: task_masks[run]    = signal;   /* accept these signals as a validto wait on */
                           1763 ;     genPlus
   02B3 E5*01              1764         mov     a,_run
   02B5 24r8B              1765         add     a,#_task_masks
   02B7 F8                 1766         mov     r0,a
                           1767 ;     genAssign
   02B8 90s00r07           1768         mov     dptr,#_wait_timed_signal_1_1
   02BB E0                 1769         movx    a,@dptr
                           1770 ;     genPointerSet
                           1771 ;     genNearPointerSet
                           1772 ;       Peephole 192    used a instead of ar2 as source
   02BC FA                 1773         mov     r2,a
   02BD F6                 1774         mov     @r0,a
                    02BE   1775         C$rt_task.c$496$2$5 ==.
                           1776 ;rt_task.c:496: END_CRITICAL;
                           1777 ;     genAssign
   02BE A2*04              1778         mov     c,_wait_timed_EA_local_1_1
   02C0 92 AF              1779         mov     _EA,c
                    02C2   1780         C$rt_task.c$497$1$1 ==.
                           1781 ;rt_task.c:497: reschedule();
                           1782 ;     genCall
   02C2 12s01r52           1783         lcall   _reschedule
                    02C5   1784         C$rt_task.c$498$1$1 ==.
                           1785 ;rt_task.c:498: return task_signals[run];
                           1786 ;     genPlus
   02C5 E5*01              1787         mov     a,_run
   02C7 24r88              1788         add     a,#_task_signals
   02C9 F8                 1789         mov     r0,a
                           1790 ;     genPointerGet
                           1791 ;     genNearPointerGet
   02CA 86 02              1792         mov     ar2,@r0
                           1793 ;     genRet
   02CC 8A 82              1794         mov     dpl,r2
   02CE                    1795 00104$:
                    02CE   1796         C$rt_task.c$499$1$1 ==.
                    02CE   1797         XG$wait_timed$0$0 ==.
   02CE 22                 1798         ret
                           1799 ;------------------------------------------------------------
                           1800 ;Allocation info for local variables in function 'sleep'
                           1801 ;------------------------------------------------------------
                           1802 ;ticks                     Allocated with name '_sleep_ticks_1_1'
                           1803 ;------------------------------------------------------------
                    02CF   1804         G$sleep$0$0 ==.
                    02CF   1805         C$rt_task.c$502$1$1 ==.
                           1806 ;rt_task.c:502: void sleep(char ticks)
                           1807 ;       -----------------------------------------
                           1808 ;        function sleep
                           1809 ;       -----------------------------------------
   02CF                    1810 _sleep:
                           1811 ;     genReceive
   02CF E5 82              1812         mov     a,dpl
   02D1 90s00r08           1813         mov     dptr,#_sleep_ticks_1_1
   02D4 F0                 1814         movx    @dptr,a
                    02D5   1815         C$rt_task.c$507$1$1 ==.
                           1816 ;rt_task.c:507: if (ticks)
                           1817 ;     genAssign
   02D5 90s00r08           1818         mov     dptr,#_sleep_ticks_1_1
   02D8 E0                 1819         movx    a,@dptr
                           1820 ;     genIfx
                           1821 ;       Peephole 105    removed redundant mov
   02D9 FA                 1822         mov     r2,a
                           1823 ;     genIfxJump
   02DA 70 03              1824         jnz     00120$
   02DC 02s03r67           1825         ljmp    00111$
   02DF                    1826 00120$:
                    02DF   1827         C$rt_task.c$509$3$3 ==.
                           1828 ;rt_task.c:509: BEGIN_CRITICAL;
                           1829 ;     genIfx
                           1830 ;     genIfxJump
                           1831 ;       Peephole 111    removed ljmp by inverse jump logic
                           1832 ;     genAssign
                           1833 ;       Peephole 250.a  using atomic test and clear
   02DF 10 AF 02           1834         jbc     _EA,00121$
   02E2 80 04              1835         sjmp    00102$
   02E4                    1836 00121$:
                           1837 ;     genAssign
   02E4 D2*05              1838         setb    _sleep_EA_local_1_1
                           1839 ;       Peephole 112.b  changed ljmp to sjmp
   02E6 80 02              1840         sjmp    00103$
   02E8                    1841 00102$:
                           1842 ;     genAssign
   02E8 C2*05              1843         clr     _sleep_EA_local_1_1
   02EA                    1844 00103$:
                    02EA   1845         C$rt_task.c$510$2$2 ==.
                           1846 ;rt_task.c:510: ready             &= ~TASK_BIT(run); /* this task is going to sleep */
                           1847 ;     genLeftShift
   02EA 85*01 F0           1848         mov     b,_run
   02ED 05 F0              1849         inc     b
   02EF 74 01              1850         mov     a,#0x01
   02F1 80 02              1851         sjmp    00124$
   02F3                    1852 00122$:
   02F3 25 E0              1853         add     a,acc
   02F5                    1854 00124$:
   02F5 D5 F0 FB           1855         djnz    b,00122$
                           1856 ;     genCpl
                           1857 ;       Peephole 105    removed redundant mov
                           1858 ;     genAnd
                           1859 ;       Peephole 105    removed redundant mov
                           1860 ;       Peephole 184    removed redundant mov
   02F8 F4                 1861         cpl     a
   02F9 FA                 1862         mov     r2,a
   02FA 52*00              1863         anl     _ready,a
                    02FC   1864         C$rt_task.c$511$2$2 ==.
                           1865 ;rt_task.c:511: task_timer[run]    = ticks;
                           1866 ;     genPlus
   02FC E5*01              1867         mov     a,_run
   02FE 24r8E              1868         add     a,#_task_timer
   0300 F8                 1869         mov     r0,a
                           1870 ;     genAssign
   0301 90s00r08           1871         mov     dptr,#_sleep_ticks_1_1
   0304 E0                 1872         movx    a,@dptr
                           1873 ;     genPointerSet
                           1874 ;     genNearPointerSet
                           1875 ;       Peephole 192    used a instead of ar2 as source
   0305 FA                 1876         mov     r2,a
   0306 F6                 1877         mov     @r0,a
                    0307   1878         C$rt_task.c$512$2$2 ==.
                           1879 ;rt_task.c:512: task_masks[run]    = TIMER_SIG;   /* accept this signal as a valid one to wait on */
                           1880 ;     genPlus
   0307 E5*01              1881         mov     a,_run
   0309 24r8B              1882         add     a,#_task_masks
                           1883 ;     genPointerSet
                           1884 ;     genNearPointerSet
                           1885 ;       Peephole 239    used a instead of acc
   030B F8                 1886         mov     r0,a
   030C 76 80              1887         mov     @r0,#0x80
                    030E   1888         C$rt_task.c$513$2$2 ==.
                           1889 ;rt_task.c:513: task_signals[run] &=~TIMER_SIG;
                           1890 ;     genPlus
   030E E5*01              1891         mov     a,_run
   0310 24r88              1892         add     a,#_task_signals
   0312 F8                 1893         mov     r0,a
                           1894 ;     genPlus
   0313 E5*01              1895         mov     a,_run
   0315 24r88              1896         add     a,#_task_signals
   0317 F9                 1897         mov     r1,a
                           1898 ;     genPointerGet
                           1899 ;     genNearPointerGet
   0318 87 02              1900         mov     ar2,@r1
                           1901 ;     genAnd
   031A 74 7F              1902         mov     a,#0x7F
   031C 5A                 1903         anl     a,r2
                           1904 ;     genPointerSet
                           1905 ;     genNearPointerSet
   031D A6 E0              1906         mov     @r0,acc
                    031F   1907         C$rt_task.c$515$2$2 ==.
                           1908 ;rt_task.c:515: do {
   031F                    1909 00107$:
                    031F   1910         C$rt_task.c$516$4$7 ==.
                           1911 ;rt_task.c:516: END_CRITICAL;
                           1912 ;     genAssign
   031F A2*05              1913         mov     c,_sleep_EA_local_1_1
   0321 92 AF              1914         mov     _EA,c
                    0323   1915         C$rt_task.c$517$3$6 ==.
                           1916 ;rt_task.c:517: reschedule();
                           1917 ;     genCall
   0323 12s01r52           1918         lcall   _reschedule
                    0326   1919         C$rt_task.c$518$4$8 ==.
                           1920 ;rt_task.c:518: BEGIN_CRITICAL;
                           1921 ;     genIfx
                           1922 ;     genIfxJump
                           1923 ;       Peephole 111    removed ljmp by inverse jump logic
                           1924 ;     genAssign
                           1925 ;       Peephole 250.a  using atomic test and clear
   0326 10 AF 02           1926         jbc     _EA,00125$
   0329 80 04              1927         sjmp    00105$
   032B                    1928 00125$:
                           1929 ;     genAssign
   032B D2*05              1930         setb    _sleep_EA_local_1_1
                           1931 ;       Peephole 112.b  changed ljmp to sjmp
   032D 80 02              1932         sjmp    00108$
   032F                    1933 00105$:
                           1934 ;     genAssign
   032F C2*05              1935         clr     _sleep_EA_local_1_1
   0331                    1936 00108$:
                    0331   1937         C$rt_task.c$520$2$2 ==.
                           1938 ;rt_task.c:520: while((task_signals[run] & TIMER_SIG) == 0);
                           1939 ;     genPlus
   0331 E5*01              1940         mov     a,_run
   0333 24r88              1941         add     a,#_task_signals
   0335 F8                 1942         mov     r0,a
                           1943 ;     genPointerGet
                           1944 ;     genNearPointerGet
   0336 86 02              1945         mov     ar2,@r0
                           1946 ;     genAnd
   0338 53 02 80           1947         anl     ar2,#0x80
                           1948 ;     genCmpEq
   033B BA 00 02           1949         cjne    r2,#0x00,00126$
                           1950 ;       Peephole 112.b  changed ljmp to sjmp
   033E 80 DF              1951         sjmp    00107$
   0340                    1952 00126$:
                    0340   1953         C$rt_task.c$521$2$2 ==.
                           1954 ;rt_task.c:521: task_signals[run] &= ~(TIMER_SIG);
                           1955 ;     genPlus
   0340 E5*01              1956         mov     a,_run
   0342 24r88              1957         add     a,#_task_signals
   0344 F8                 1958         mov     r0,a
                           1959 ;     genPlus
   0345 E5*01              1960         mov     a,_run
   0347 24r88              1961         add     a,#_task_signals
   0349 F9                 1962         mov     r1,a
                           1963 ;     genPointerGet
                           1964 ;     genNearPointerGet
   034A 87 02              1965         mov     ar2,@r1
                           1966 ;     genAnd
   034C 74 7F              1967         mov     a,#0x7F
   034E 5A                 1968         anl     a,r2
                           1969 ;     genPointerSet
                           1970 ;     genNearPointerSet
   034F A6 E0              1971         mov     @r0,acc
                    0351   1972         C$rt_task.c$522$2$2 ==.
                           1973 ;rt_task.c:522: task_masks[run]   &= ~TIMER_SIG;   /* accept this signal as a valid one to wait on */
                           1974 ;     genPlus
   0351 E5*01              1975         mov     a,_run
   0353 24r8B              1976         add     a,#_task_masks
   0355 F8                 1977         mov     r0,a
                           1978 ;     genPlus
   0356 E5*01              1979         mov     a,_run
   0358 24r8B              1980         add     a,#_task_masks
   035A F9                 1981         mov     r1,a
                           1982 ;     genPointerGet
                           1983 ;     genNearPointerGet
   035B 87 02              1984         mov     ar2,@r1
                           1985 ;     genAnd
   035D 74 7F              1986         mov     a,#0x7F
   035F 5A                 1987         anl     a,r2
                           1988 ;     genPointerSet
                           1989 ;     genNearPointerSet
   0360 A6 E0              1990         mov     @r0,acc
                    0362   1991         C$rt_task.c$523$3$11 ==.
                           1992 ;rt_task.c:523: END_CRITICAL;
                           1993 ;     genAssign
   0362 A2*05              1994         mov     c,_sleep_EA_local_1_1
   0364 92 AF              1995         mov     _EA,c
                           1996 ;       Peephole 112.b  changed ljmp to sjmp
                           1997 ;       Peephole 251.b  replaced sjmp to ret with ret
   0366 22                 1998         ret
   0367                    1999 00111$:
                    0367   2000         C$rt_task.c$527$2$12 ==.
                           2001 ;rt_task.c:527: reschedule();
                           2002 ;     genCall
                    0367   2003         C$rt_task.c$530$1$1 ==.
                    0367   2004         XG$sleep$0$0 ==.
                           2005 ;       Peephole 253.c  replaced lcall with ljmp
   0367 02s01r52           2006         ljmp    _reschedule
   036A                    2007 00113$:
   036A 22                 2008         ret
                           2009 ;------------------------------------------------------------
                           2010 ;Allocation info for local variables in function 'clear_signal'
                           2011 ;------------------------------------------------------------
                           2012 ;pattern                   Allocated with name '_clear_signal_pattern_1_1'
                           2013 ;------------------------------------------------------------
                    036B   2014         G$clear_signal$0$0 ==.
                    036B   2015         C$rt_task.c$533$1$1 ==.
                           2016 ;rt_task.c:533: void clear_signal(char pattern)
                           2017 ;       -----------------------------------------
                           2018 ;        function clear_signal
                           2019 ;       -----------------------------------------
   036B                    2020 _clear_signal:
                           2021 ;     genReceive
   036B E5 82              2022         mov     a,dpl
   036D 90s00r09           2023         mov     dptr,#_clear_signal_pattern_1_1
   0370 F0                 2024         movx    @dptr,a
                    0371   2025         C$rt_task.c$536$2$2 ==.
                           2026 ;rt_task.c:536: BEGIN_CRITICAL;
                           2027 ;     genIfx
                           2028 ;     genIfxJump
                           2029 ;       Peephole 111    removed ljmp by inverse jump logic
                           2030 ;     genAssign
                           2031 ;       Peephole 250.a  using atomic test and clear
   0371 10 AF 02           2032         jbc     _EA,00107$
   0374 80 04              2033         sjmp    00102$
   0376                    2034 00107$:
                           2035 ;     genAssign
   0376 D2*06              2036         setb    _clear_signal_EA_local_1_1
                           2037 ;       Peephole 112.b  changed ljmp to sjmp
   0378 80 02              2038         sjmp    00103$
   037A                    2039 00102$:
                           2040 ;     genAssign
   037A C2*06              2041         clr     _clear_signal_EA_local_1_1
   037C                    2042 00103$:
                    037C   2043         C$rt_task.c$537$1$1 ==.
                           2044 ;rt_task.c:537: task_signals[run] &= ~(pattern);
                           2045 ;     genPlus
   037C E5*01              2046         mov     a,_run
   037E 24r88              2047         add     a,#_task_signals
   0380 F8                 2048         mov     r0,a
                           2049 ;     genPlus
   0381 E5*01              2050         mov     a,_run
   0383 24r88              2051         add     a,#_task_signals
   0385 F9                 2052         mov     r1,a
                           2053 ;     genPointerGet
                           2054 ;     genNearPointerGet
   0386 87 02              2055         mov     ar2,@r1
                           2056 ;     genAssign
   0388 90s00r09           2057         mov     dptr,#_clear_signal_pattern_1_1
   038B E0                 2058         movx    a,@dptr
                           2059 ;     genCpl
                           2060 ;       Peephole 105    removed redundant mov
                           2061 ;     genAnd
                           2062 ;       Peephole 105    removed redundant mov
                           2063 ;       Peephole 184    removed redundant mov
   038C F4                 2064         cpl     a
   038D FB                 2065         mov     r3,a
   038E 5A                 2066         anl     a,r2
                           2067 ;     genPointerSet
                           2068 ;     genNearPointerSet
   038F A6 E0              2069         mov     @r0,acc
                    0391   2070         C$rt_task.c$538$2$5 ==.
                           2071 ;rt_task.c:538: END_CRITICAL;
                           2072 ;     genAssign
   0391 A2*06              2073         mov     c,_clear_signal_EA_local_1_1
   0393 92 AF              2074         mov     _EA,c
   0395                    2075 00104$:
                    0395   2076         C$rt_task.c$539$2$5 ==.
                    0395   2077         XG$clear_signal$0$0 ==.
   0395 22                 2078         ret
                           2079 ;------------------------------------------------------------
                           2080 ;Allocation info for local variables in function 'signal'
                           2081 ;------------------------------------------------------------
                           2082 ;pattern                   Allocated with name '_signal_PARM_2'
                           2083 ;task                      Allocated with name '_signal_task_1_1'
                           2084 ;------------------------------------------------------------
                    0396   2085         G$signal$0$0 ==.
                    0396   2086         C$rt_task.c$544$2$5 ==.
                           2087 ;rt_task.c:544: void signal(char task,char pattern)
                           2088 ;       -----------------------------------------
                           2089 ;        function signal
                           2090 ;       -----------------------------------------
   0396                    2091 _signal:
                           2092 ;     genReceive
   0396 E5 82              2093         mov     a,dpl
   0398 90s00r0B           2094         mov     dptr,#_signal_task_1_1
   039B F0                 2095         movx    @dptr,a
                    039C   2096         C$rt_task.c$547$2$2 ==.
                           2097 ;rt_task.c:547: BEGIN_CRITICAL;
                           2098 ;     genIfx
                           2099 ;     genIfxJump
                           2100 ;       Peephole 111    removed ljmp by inverse jump logic
                           2101 ;     genAssign
                           2102 ;       Peephole 250.a  using atomic test and clear
   039C 10 AF 02           2103         jbc     _EA,00110$
   039F 80 04              2104         sjmp    00102$
   03A1                    2105 00110$:
                           2106 ;     genAssign
   03A1 D2*07              2107         setb    _signal_EA_local_1_1
                           2108 ;       Peephole 112.b  changed ljmp to sjmp
   03A3 80 02              2109         sjmp    00103$
   03A5                    2110 00102$:
                           2111 ;     genAssign
   03A5 C2*07              2112         clr     _signal_EA_local_1_1
   03A7                    2113 00103$:
                    03A7   2114         C$rt_task.c$549$1$1 ==.
                           2115 ;rt_task.c:549: INT_SIGNAL(task,pattern);
                           2116 ;     genAssign
   03A7 90s00r0B           2117         mov     dptr,#_signal_task_1_1
   03AA E0                 2118         movx    a,@dptr
                           2119 ;     genPlus
                           2120 ;       Peephole 177.b  removed redundant mov
   03AB FA                 2121         mov     r2,a
   03AC 24r88              2122         add     a,#_task_signals
   03AE F8                 2123         mov     r0,a
                           2124 ;     genPlus
                           2125 ;       Peephole 236.g  used r2 instead of ar2
   03AF EA                 2126         mov     a,r2
   03B0 24r88              2127         add     a,#_task_signals
   03B2 F9                 2128         mov     r1,a
                           2129 ;     genPointerGet
                           2130 ;     genNearPointerGet
   03B3 87 03              2131         mov     ar3,@r1
                           2132 ;     genAssign
   03B5 90s00r0A           2133         mov     dptr,#_signal_PARM_2
   03B8 E0                 2134         movx    a,@dptr
                           2135 ;     genOr
                           2136 ;       Peephole 105    removed redundant mov
   03B9 FC                 2137         mov     r4,a
   03BA 4B                 2138         orl     a,r3
                           2139 ;     genPointerSet
                           2140 ;     genNearPointerSet
   03BB A6 E0              2141         mov     @r0,acc
                           2142 ;     genPlus
                           2143 ;       Peephole 236.g  used r2 instead of ar2
   03BD EA                 2144         mov     a,r2
   03BE 24r88              2145         add     a,#_task_signals
   03C0 F8                 2146         mov     r0,a
                           2147 ;     genPointerGet
                           2148 ;     genNearPointerGet
   03C1 86 03              2149         mov     ar3,@r0
                           2150 ;     genPlus
                           2151 ;       Peephole 236.g  used r2 instead of ar2
   03C3 EA                 2152         mov     a,r2
   03C4 24r8B              2153         add     a,#_task_masks
   03C6 F8                 2154         mov     r0,a
                           2155 ;     genPointerGet
                           2156 ;     genNearPointerGet
   03C7 86 04              2157         mov     ar4,@r0
                           2158 ;     genAnd
   03C9 EC                 2159         mov     a,r4
   03CA 5B                 2160         anl     a,r3
                           2161 ;     genIfx
                           2162 ;     genIfxJump
                           2163 ;       Peephole 110    removed ljmp by inverse jump logic
   03CB 60 10              2164         jz      00105$
   03CD                    2165 00111$:
                           2166 ;     genLeftShift
   03CD 8A F0              2167         mov     b,r2
   03CF 05 F0              2168         inc     b
   03D1 74 01              2169         mov     a,#0x01
   03D3 80 02              2170         sjmp    00114$
   03D5                    2171 00112$:
   03D5 25 E0              2172         add     a,acc
   03D7                    2173 00114$:
   03D7 D5 F0 FB           2174         djnz    b,00112$
                           2175 ;     genOr
                           2176 ;       Peephole 105    removed redundant mov
   03DA FA                 2177         mov     r2,a
   03DB 42*00              2178         orl     _ready,a
   03DD                    2179 00105$:
                    03DD   2180         C$rt_task.c$551$2$6 ==.
                           2181 ;rt_task.c:551: END_CRITICAL;
                           2182 ;     genAssign
   03DD A2*07              2183         mov     c,_signal_EA_local_1_1
   03DF 92 AF              2184         mov     _EA,c
   03E1                    2185 00106$:
                    03E1   2186         C$rt_task.c$552$2$6 ==.
                    03E1   2187         XG$signal$0$0 ==.
   03E1 22                 2188         ret
                           2189 ;------------------------------------------------------------
                           2190 ;Allocation info for local variables in function 'rt_system_init'
                           2191 ;------------------------------------------------------------
                           2192 ;------------------------------------------------------------
                    03E2   2193         G$rt_system_init$0$0 ==.
                    03E2   2194         C$rt_task.c$559$2$6 ==.
                           2195 ;rt_task.c:559: void rt_system_init(void)
                           2196 ;       -----------------------------------------
                           2197 ;        function rt_system_init
                           2198 ;       -----------------------------------------
   03E2                    2199 _rt_system_init:
                    03E2   2200         C$rt_task.c$562$1$1 ==.
                           2201 ;rt_task.c:562: AUXR  = M0 |XRS1 | XRS0  ;
                           2202 ;     genAssign
   03E2 75 8E 2C           2203         mov     _AUXR,#0x2C
                    03E5   2204         C$rt_task.c$563$1$1 ==.
                           2205 ;rt_task.c:563: CKCON = WdX2 | PcaX2 | SiX2 | T2X2 | T0X2 | X2; /* T1X2 bit is '0' to double UART speed */
                           2206 ;     genAssign
   03E5 75 8F 7B           2207         mov     _CKCON,#0x7B
                    03E8   2208         C$rt_task.c$565$1$1 ==.
                           2209 ;rt_task.c:565: TMOD  = 0x20; /* timer1 mode2 timer0 mode0 */
                           2210 ;     genAssign
   03E8 75 89 20           2211         mov     _TMOD,#0x20
                    03EB   2212         C$rt_task.c$567$1$1 ==.
                           2213 ;rt_task.c:567: EA = 0;
                           2214 ;     genAssign
   03EB C2 AF              2215         clr     _EA
   03ED                    2216 00101$:
                    03ED   2217         C$rt_task.c$570$1$1 ==.
                    03ED   2218         XG$rt_system_init$0$0 ==.
   03ED 22                 2219         ret
                           2220         .area CSEG    (CODE)
                    03EE   2221 G$priotab$0$0 == .
   03EE                    2222 _priotab:
   03EE 00                 2223         .db #0x00
   03EF 00                 2224         .db #0x00
   03F0 01                 2225         .db #0x01
   03F1 01                 2226         .db #0x01
   03F2 02                 2227         .db #0x02
   03F3 02                 2228         .db #0x02
   03F4 02                 2229         .db #0x02
   03F5 02                 2230         .db #0x02
   03F6 03                 2231         .db #0x03
   03F7 03                 2232         .db #0x03
   03F8 03                 2233         .db #0x03
   03F9 03                 2234         .db #0x03
   03FA 03                 2235         .db #0x03
   03FB 03                 2236         .db #0x03
   03FC 03                 2237         .db #0x03
   03FD 03                 2238         .db #0x03
   03FE 00                 2239         .db #0x00
   03FF 00                 2240         .db #0x00
   0400 01                 2241         .db #0x01
   0401 00                 2242         .db #0x00
   0402 02                 2243         .db #0x02
   0403 00                 2244         .db #0x00
   0404 01                 2245         .db #0x01
   0405 01                 2246         .db #0x01
   0406 03                 2247         .db #0x03
   0407 00                 2248         .db #0x00
   0408 01                 2249         .db #0x01
   0409 01                 2250         .db #0x01
   040A 02                 2251         .db #0x02
   040B 02                 2252         .db #0x02
   040C 02                 2253         .db #0x02
   040D 02                 2254         .db #0x02
   040E 00                 2255         .db #0x00
   040F 00                 2256         .db #0x00
   0410 01                 2257         .db #0x01
   0411 01                 2258         .db #0x01
   0412 02                 2259         .db #0x02
   0413 02                 2260         .db #0x02
   0414 02                 2261         .db #0x02
   0415 00                 2262         .db #0x00
   0416 03                 2263         .db #0x03
   0417 03                 2264         .db #0x03
   0418 03                 2265         .db #0x03
   0419 00                 2266         .db #0x00
   041A 03                 2267         .db #0x03
   041B 00                 2268         .db #0x00
   041C 01                 2269         .db #0x01
   041D 01                 2270         .db #0x01
   041E 00                 2271         .db #0x00
   041F 00                 2272         .db #0x00
   0420 01                 2273         .db #0x01
   0421 00                 2274         .db #0x00
   0422 02                 2275         .db #0x02
   0423 00                 2276         .db #0x00
   0424 01                 2277         .db #0x01
   0425 02                 2278         .db #0x02
   0426 03                 2279         .db #0x03
   0427 00                 2280         .db #0x00
   0428 01                 2281         .db #0x01
   0429 03                 2282         .db #0x03
   042A 02                 2283         .db #0x02
   042B 03                 2284         .db #0x03
   042C 03                 2285         .db #0x03
   042D 00                 2286         .db #0x00
                           2287         .area XINIT   (CODE)