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