📄 rtl8019.lis
字号:
01F2 BB24 clr R11
01F4 08C0 xjmp L143
01F6 L140:
01F6 .dbline 456
01F6 ; if(rtl8019Read(ISR) & 1<<6)
01F6 209000C7 lds R2,50944
01FA 26FE sbrs R2,6
01FC 01C0 rjmp L144
01FE .dbline 457
01FE ; break;
01FE 08C0 xjmp L142
0200 L144:
0200 L141:
0200 .dbline 455
0200 C501 movw R24,R10
0202 0196 adiw R24,1
0204 5C01 movw R10,R24
0206 L143:
0206 .dbline 455
0206 84E1 ldi R24,20
0208 90E0 ldi R25,0
020A 8A15 cp R24,R10
020C 9B05 cpc R25,R11
020E 98F7 brsh L140
0210 L142:
0210 L146:
0210 .dbline 458
0210 .dbline 458
0210 80E4 ldi R24,64
0212 809300C7 sts 50944,R24
0216 .dbline 458
0216 L147:
0216 .dbline 458
0216 .dbline 460
0216 20900000 lds R2,_currentRetreiveAddress
021A 30900100 lds R3,_currentRetreiveAddress+1
021E 220E add R2,R18
0220 331E adc R3,R19
0222 30920100 sts _currentRetreiveAddress+1,R3
0226 20920000 sts _currentRetreiveAddress,R2
022A .dbline 461
022A C101 movw R24,R2
022C 8030 cpi R24,0
022E E0E6 ldi R30,96
0230 9E07 cpc R25,R30
0232 30F0 brlo L149
0234 .dbline 462
0234 8050 subi R24,0
0236 9A41 sbci R25,26
0238 90930100 sts _currentRetreiveAddress+1,R25
023C 80930000 sts _currentRetreiveAddress,R24
0240 L149:
0240 .dbline -2
0240 L117:
0240 0E940000 xcall pop_gset3x
0244 .dbline 0 ; func end
0244 0895 ret
0246 .dbsym r i 10 i
0246 .dbsym r length 18 i
0246 .dbsym r localBuffer 16 pc
0246 .dbend
0246 .dbfunc e rtl8019EndPacketRetreive _rtl8019EndPacketRetreive fV
0246 ; i -> R16
.even
0246 _rtl8019EndPacketRetreive::
0246 .dbline -1
0246 .dbline 468
0246 ; rtl8019Write(ISR, 1<<6);
0246 ;
0246 ; currentRetreiveAddress += length;
0246 ; if( currentRetreiveAddress >= 0x6000 )
0246 ; currentRetreiveAddress = currentRetreiveAddress - (0x6000-0x4600) ;
0246 ; }
0246 ;
0246 ;
0246 ;
0246 ; void rtl8019EndPacketRetreive(void)
0246 ; {
0246 L152:
0246 .dbline 472
0246 .dbline 472
0246 82E2 ldi R24,34
0248 809300C0 sts 49152,R24
024C .dbline 472
024C L153:
024C .dbline 472
024C ; unsigned char i;
024C ;
024C ; // end the DMA operation
024C ; rtl8019Write(CR, 0x22);
024C .dbline 473
024C ; for(i = 0; i <= 20; i++)
024C 0027 clr R16
024E 06C0 xjmp L158
0250 L155:
0250 .dbline 474
0250 ; if(rtl8019Read(ISR) & 1<<6)
0250 209000C7 lds R2,50944
0254 26FE sbrs R2,6
0256 01C0 rjmp L159
0258 .dbline 475
0258 ; break;
0258 04C0 xjmp L157
025A L159:
025A L156:
025A .dbline 473
025A 0395 inc R16
025C L158:
025C .dbline 473
025C 84E1 ldi R24,20
025E 8017 cp R24,R16
0260 B8F7 brsh L155
0262 L157:
0262 L161:
0262 .dbline 476
0262 .dbline 476
0262 80E4 ldi R24,64
0264 809300C7 sts 50944,R24
0268 .dbline 476
0268 L162:
0268 .dbline 476
0268 ; rtl8019Write(ISR, 1<<6);
0268 L164:
0268 .dbline 479
0268 .dbline 479
0268 20900200 lds R2,_nextPage
026C 209200C3 sts 49920,R2
0270 .dbline 479
0270 L165:
0270 .dbline 479
0270 ;
0270 ; // set the boundary register to point to the start of the next packet
0270 ; rtl8019Write(BNRY, nextPage);
0270 .dbline -2
0270 L151:
0270 .dbline 0 ; func end
0270 0895 ret
0272 .dbsym r i 16 c
0272 .dbend
0272 .dbfunc e rtl8019Overrun _rtl8019Overrun fV
0272 ; resend -> R10
0272 ; data_L -> R12
.even
0272 _rtl8019Overrun::
0272 0E940000 xcall push_gset4x
0276 .dbline -1
0276 .dbline 484
0276 ; }
0276 ;
0276 ;
0276 ; void rtl8019Overrun(void)
0276 ; {
0276 .dbline 487
0276 ; unsigned char data_L, resend;
0276 ;
0276 ; data_L = rtl8019Read(CR);
0276 C09000C0 lds R12,49152
027A L168:
027A .dbline 488
027A .dbline 488
027A 81E2 ldi R24,33
027C 809300C0 sts 49152,R24
0280 .dbline 488
0280 L169:
0280 .dbline 488
0280 ; rtl8019Write(CR, 0x21);
0280 .dbline 489
0280 ; delay_ms(2);
0280 02E0 ldi R16,2
0282 0E940000 xcall _delay_ms
0286 L171:
0286 .dbline 490
0286 .dbline 490
0286 2224 clr R2
0288 209200CA sts 51712,R2
028C .dbline 490
028C L172:
028C .dbline 490
028C ; rtl8019Write(RBCR0, 0x00);
028C L174:
028C .dbline 491
028C .dbline 491
028C 2224 clr R2
028E 209200CB sts 51968,R2
0292 .dbline 491
0292 L175:
0292 .dbline 491
0292 ; rtl8019Write(RBCR1, 0x00);
0292 .dbline 492
0292 ; if(!(data_L & 0x04))
0292 C2FC sbrc R12,2
0294 02C0 rjmp L177
0296 .dbline 493
0296 ; resend = 0;
0296 AA24 clr R10
0298 0CC0 xjmp L178
029A L177:
029A .dbline 494
029A ; else if(data_L & 0x04)
029A C2FE sbrs R12,2
029C 0AC0 rjmp L179
029E .dbline 495
029E ; {
029E .dbline 496
029E ; data_L = rtl8019Read(ISR);
029E C09000C7 lds R12,50944
02A2 .dbline 497
02A2 ; if((data_L & 0x02) || (data_L & 0x08))
02A2 C1FC sbrc R12,1
02A4 02C0 rjmp L183
02A6 C3FE sbrs R12,3
02A8 02C0 rjmp L181
02AA L183:
02AA .dbline 498
02AA ; resend = 0;
02AA AA24 clr R10
02AC 02C0 xjmp L182
02AE L181:
02AE .dbline 500
02AE ; else
02AE ; resend = 1;
02AE AA24 clr R10
02B0 A394 inc R10
02B2 L182:
02B2 .dbline 501
02B2 ; }
02B2 L179:
02B2 L178:
02B2 L184:
02B2 .dbline 503
02B2 .dbline 503
02B2 82E0 ldi R24,2
02B4 809300CD sts 52480,R24
02B8 .dbline 503
02B8 L185:
02B8 .dbline 503
02B8 ;
02B8 ; rtl8019Write(TCR, 0x02);
02B8 L187:
02B8 .dbline 504
02B8 .dbline 504
02B8 82E2 ldi R24,34
02BA 809300C0 sts 49152,R24
02BE .dbline 504
02BE L188:
02BE .dbline 504
02BE ; rtl8019Write(CR, 0x22);
02BE L190:
02BE .dbline 505
02BE .dbline 505
02BE 86E4 ldi R24,70
02C0 809300C3 sts 49920,R24
02C4 .dbline 505
02C4 L191:
02C4 .dbline 505
02C4 ; rtl8019Write(BNRY, RXSTART_INIT);
02C4 L193:
02C4 .dbline 506
02C4 .dbline 506
02C4 82E6 ldi R24,98
02C6 809300C0 sts 49152,R24
02CA .dbline 506
02CA L194:
02CA .dbline 506
02CA ; rtl8019Write(CR, 0x62);
02CA L196:
02CA .dbline 507
02CA .dbline 507
02CA 86E4 ldi R24,70
02CC 809300C7 sts 50944,R24
02D0 .dbline 507
02D0 L197:
02D0 .dbline 507
02D0 ; rtl8019Write(CURR, RXSTART_INIT);
02D0 L199:
02D0 .dbline 508
02D0 .dbline 508
02D0 82E2 ldi R24,34
02D2 809300C0 sts 49152,R24
02D6 .dbline 508
02D6 L200:
02D6 .dbline 508
02D6 ; rtl8019Write(CR, 0x22);
02D6 L202:
02D6 .dbline 509
02D6 .dbline 509
02D6 80E1 ldi R24,16
02D8 809300C7 sts 50944,R24
02DC .dbline 509
02DC L203:
02DC .dbline 509
02DC ; rtl8019Write(ISR, 0x10);
02DC L205:
02DC .dbline 510
02DC .dbline 510
02DC 2224 clr R2
02DE 209200CD sts 52480,R2
02E2 .dbline 510
02E2 L206:
02E2 .dbline 510
02E2 ; rtl8019Write(TCR, TCR_INIT);
02E2 .dbline 512
02E2 ;
02E2 ; if(resend)
02E2 AA20 tst R10
02E4 19F0 breq L208
02E6 L210:
02E6 .dbline 513
02E6 .dbline 513
02E6 86E2 ldi R24,38
02E8 809300C0 sts 49152,R24
02EC .dbline 513
02EC L211:
02EC .dbline 513
02EC ; rtl8019Write(CR, 0x26);
02EC L208:
02EC L213:
02EC .dbline 515
02EC .dbline 515
02EC 8FEF ldi R24,255
02EE 809300C7 sts 50944,R24
02F2 .dbline 515
02F2 L214:
02F2 .dbline 515
02F2 ;
02F2 ; rtl8019Write(ISR, 0xFF);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -