📄 ppp.lis
字号:
011A ; bool PPP_WeAcceptedStr(u8 type)
011A ; {
011A .dbline 192
011A ; if (!SendDebugRStr(ppp_str1)) return false;
011A 00E0 ldi R16,<_ppp_str1
011C 10E0 ldi R17,>_ppp_str1
011E 0E940000 xcall _SendDebugRStr
0122 0023 tst R16
0124 11F4 brne L25
0126 .dbline 192
0126 0027 clr R16
0128 0EC0 xjmp L24
012A L25:
012A .dbline 193
012A ; sprintf((char*)ScratchPad, "%u\n", type);
012A 242E mov R2,R20
012C 3324 clr R3
012E 3982 std y+1,R3
0130 2882 std y+0,R2
0132 20E0 ldi R18,<L27
0134 30E0 ldi R19,>L27
0136 00E0 ldi R16,<_ScratchPad
0138 10E0 ldi R17,>_ScratchPad
013A 0E940000 xcall _sprintf
013E .dbline 194
013E ; return SendDebugStr((char*)ScratchPad);
013E 00E0 ldi R16,<_ScratchPad
0140 10E0 ldi R17,>_ScratchPad
0142 0E940000 xcall _SendDebugStr
0146 .dbline -2
0146 L24:
0146 2296 adiw R28,2
0148 0E940000 xcall pop_gset1
014C .dbline 0 ; func end
014C 0895 ret
014E .dbsym r type 20 c
014E .dbend
014E .dbfunc e PPP_WeNRejectedStr _PPP_WeNRejectedStr fc
014E ; type -> R20
.even
014E _PPP_WeNRejectedStr::
014E 0E940000 xcall push_gset1
0152 402F mov R20,R16
0154 2297 sbiw R28,2
0156 .dbline -1
0156 .dbline 198
0156 ; }
0156 ;
0156 ; bool PPP_WeNRejectedStr(u8 type)
0156 ; {
0156 .dbline 199
0156 ; if (!SendDebugRStr(ppp_str2)) return false;
0156 00E0 ldi R16,<_ppp_str2
0158 10E0 ldi R17,>_ppp_str2
015A 0E940000 xcall _SendDebugRStr
015E 0023 tst R16
0160 11F4 brne L29
0162 .dbline 199
0162 0027 clr R16
0164 0EC0 xjmp L28
0166 L29:
0166 .dbline 200
0166 ; sprintf((char*)ScratchPad, "%u\n", type);
0166 242E mov R2,R20
0168 3324 clr R3
016A 3982 std y+1,R3
016C 2882 std y+0,R2
016E 20E0 ldi R18,<L27
0170 30E0 ldi R19,>L27
0172 00E0 ldi R16,<_ScratchPad
0174 10E0 ldi R17,>_ScratchPad
0176 0E940000 xcall _sprintf
017A .dbline 201
017A ; return SendDebugStr((char*)ScratchPad);
017A 00E0 ldi R16,<_ScratchPad
017C 10E0 ldi R17,>_ScratchPad
017E 0E940000 xcall _SendDebugStr
0182 .dbline -2
0182 L28:
0182 2296 adiw R28,2
0184 0E940000 xcall pop_gset1
0188 .dbline 0 ; func end
0188 0895 ret
018A .dbsym r type 20 c
018A .dbend
018A .dbfunc e PPP_WeRejectedStr _PPP_WeRejectedStr fc
018A ; type -> R20
.even
018A _PPP_WeRejectedStr::
018A 0E940000 xcall push_gset1
018E 402F mov R20,R16
0190 2297 sbiw R28,2
0192 .dbline -1
0192 .dbline 205
0192 ; }
0192 ;
0192 ; bool PPP_WeRejectedStr(u8 type)
0192 ; {
0192 .dbline 206
0192 ; if (!SendDebugRStr(ppp_str3)) return false;
0192 00E0 ldi R16,<_ppp_str3
0194 10E0 ldi R17,>_ppp_str3
0196 0E940000 xcall _SendDebugRStr
019A 0023 tst R16
019C 11F4 brne L32
019E .dbline 206
019E 0027 clr R16
01A0 0EC0 xjmp L31
01A2 L32:
01A2 .dbline 207
01A2 ; sprintf((char*)ScratchPad, "%u\n", type);
01A2 242E mov R2,R20
01A4 3324 clr R3
01A6 3982 std y+1,R3
01A8 2882 std y+0,R2
01AA 20E0 ldi R18,<L27
01AC 30E0 ldi R19,>L27
01AE 00E0 ldi R16,<_ScratchPad
01B0 10E0 ldi R17,>_ScratchPad
01B2 0E940000 xcall _sprintf
01B6 .dbline 208
01B6 ; return SendDebugStr((char*)ScratchPad);
01B6 00E0 ldi R16,<_ScratchPad
01B8 10E0 ldi R17,>_ScratchPad
01BA 0E940000 xcall _SendDebugStr
01BE .dbline -2
01BE L31:
01BE 2296 adiw R28,2
01C0 0E940000 xcall pop_gset1
01C4 .dbline 0 ; func end
01C4 0895 ret
01C6 .dbsym r type 20 c
01C6 .dbend
01C6 .dbfunc e PPP_DisplayPacket _PPP_DisplayPacket fc
01C6 ; dw -> y+6
01C6 ; j -> R22,R23
01C6 ; CodeHeader -> R20,R21
01C6 ; type -> R12
01C6 ; Protocol -> R14,R15
01C6 ; len -> R10
01C6 ; i -> y+10
01C6 ; Bytes -> y+22
01C6 ; Tx -> R20
.even
01C6 _PPP_DisplayPacket::
01C6 3A93 st -y,r19
01C8 2A93 st -y,r18
01CA 0E940000 xcall push_gset5
01CE 402F mov R20,R16
01D0 2C97 sbiw R28,12
01D2 .dbline -1
01D2 .dbline 212
01D2 ; }
01D2 ;
01D2 ; bool PPP_DisplayPacket(bool Tx, u16 Bytes)
01D2 ; {
01D2 .dbline 218
01D2 ; u8 type, len;
01D2 ; u16 i, j, Protocol;
01D2 ; u32 dw;
01D2 ; T_CodeHeader *CodeHeader;
01D2 ;
01D2 ; i = 0;
01D2 0024 clr R0
01D4 1124 clr R1
01D6 1B86 std y+11,R1
01D8 0A86 std y+10,R0
01DA .dbline 219
01DA ; j = ntohs(*(u16*)(MainBuffer + i)); //
01DA 80E0 ldi R24,<_MainBuffer
01DC 90E0 ldi R25,>_MainBuffer
01DE F001 movw R30,R0
01E0 E80F add R30,R24
01E2 F91F adc R31,R25
01E4 0081 ldd R16,z+0
01E6 1181 ldd R17,z+1
01E8 0E940000 xcall _ntohs
01EC B801 movw R22,R16
01EE .dbline 220
01EE ; if (j == 0xff03) i += 2; // the address/control fields are present (no ACFC)
01EE 0330 cpi R16,3
01F0 EFEF ldi R30,255
01F2 1E07 cpc R17,R30
01F4 29F4 brne L35
01F6 .dbline 220
01F6 8A85 ldd R24,y+10
01F8 9B85 ldd R25,y+11
01FA 0296 adiw R24,2
01FC 9B87 std y+11,R25
01FE 8A87 std y+10,R24
0200 L35:
0200 .dbline 222
0200 ; //
0200 ; if (MainBuffer[i] & 0x01) //
0200 80E0 ldi R24,<_MainBuffer
0202 90E0 ldi R25,>_MainBuffer
0204 EA85 ldd R30,y+10
0206 FB85 ldd R31,y+11
0208 E80F add R30,R24
020A F91F adc R31,R25
020C 2080 ldd R2,z+0
020E 20FE sbrs R2,0
0210 0EC0 rjmp L37
0212 .dbline 223
0212 ; Protocol = (u16)MainBuffer[i++]; // the protocol field has been compressed
0212 2A84 ldd R2,y+10
0214 3B84 ldd R3,y+11
0216 C101 movw R24,R2
0218 0196 adiw R24,1
021A 9B87 std y+11,R25
021C 8A87 std y+10,R24
021E 80E0 ldi R24,<_MainBuffer
0220 90E0 ldi R25,>_MainBuffer
0222 F101 movw R30,R2
0224 E80F add R30,R24
0226 F91F adc R31,R25
0228 E080 ldd R14,z+0
022A FF24 clr R15
022C 10C0 xjmp L38
022E L37:
022E .dbline 225
022E ; else //
022E ; { //
022E .dbline 226
022E ; Protocol = ntohs(*(u16*)(MainBuffer + i)); // no PFC
022E 80E0 ldi R24,<_MainBuffer
0230 90E0 ldi R25,>_MainBuffer
0232 EA85 ldd R30,y+10
0234 FB85 ldd R31,y+11
0236 E80F add R30,R24
0238 F91F adc R31,R25
023A 0081 ldd R16,z+0
023C 1181 ldd R17,z+1
023E 0E940000 xcall _ntohs
0242 7801 movw R14,R16
0244 .dbline 227
0244 ; i += 2; //
0244 8A85 ldd R24,y+10
0246 9B85 ldd R25,y+11
0248 0296 adiw R24,2
024A 9B87 std y+11,R25
024C 8A87 std y+10,R24
024E .dbline 228
024E ; } //
024E L38:
024E .dbline 230
024E ; //
024E ; if (Protocol == PPP_IP) return true; // let the IP routine display the packet
024E C701 movw R24,R14
0250 8132 cpi R24,33
0252 E0E0 ldi R30,0
0254 9E07 cpc R25,R30
0256 11F4 brne L39
0258 .dbline 230
0258 01E0 ldi R16,1
025A EDC2 xjmp L34
025C L39:
025C .dbline 235
025C ;
025C ; // ********************
025C ; // display the protocol
025C ;
025C ; if (Tx)
025C 4423 tst R20
025E 39F0 breq L41
0260 .dbline 236
0260 ; strcpy((char*)ScratchPad, "\nT");
0260 20E0 ldi R18,<L43
0262 30E0 ldi R19,>L43
0264 00E0 ldi R16,<_ScratchPad
0266 10E0 ldi R17,>_ScratchPad
0268 0E940000 xcall _strcpy
026C 06C0 xjmp L42
026E L41:
026E .dbline 238
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -