Subversion Repositories Bart

Rev

Details | Last modification | View Log | RSS feed

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