📄 ppp.lis
字号:
040E 00E0 ldi R16,<_ScratchPad
0410 10E0 ldi R17,>_ScratchPad
0412 0E940000 xcall _rstrcpy
0416 .dbline 270
0416 ; break;
0416 30C0 xjmp L59
0418 L65:
0418 .dbline 271
0418 ; case PPP_TREQ : rstrcpy((char*)ScratchPad, TREQStr);
0418 20E0 ldi R18,<_TREQStr
041A 30E0 ldi R19,>_TREQStr
041C 00E0 ldi R16,<_ScratchPad
041E 10E0 ldi R17,>_ScratchPad
0420 0E940000 xcall _rstrcpy
0424 .dbline 272
0424 ; break;
0424 29C0 xjmp L59
0426 L66:
0426 .dbline 273
0426 ; case PPP_TACK : rstrcpy((char*)ScratchPad, TACKStr);
0426 20E0 ldi R18,<_TACKStr
0428 30E0 ldi R19,>_TACKStr
042A 00E0 ldi R16,<_ScratchPad
042C 10E0 ldi R17,>_ScratchPad
042E 0E940000 xcall _rstrcpy
0432 .dbline 274
0432 ; break;
0432 22C0 xjmp L59
0434 L67:
0434 .dbline 275
0434 ; case PPP_CodeREJ: rstrcpy((char*)ScratchPad, CodeREJStr);
0434 20E0 ldi R18,<_CodeREJStr
0436 30E0 ldi R19,>_CodeREJStr
0438 00E0 ldi R16,<_ScratchPad
043A 10E0 ldi R17,>_ScratchPad
043C 0E940000 xcall _rstrcpy
0440 .dbline 276
0440 ; break;
0440 1BC0 xjmp L59
0442 L68:
0442 .dbline 277
0442 ; case PPP_PREJ : rstrcpy((char*)ScratchPad, PREJStr);
0442 20E0 ldi R18,<_PREJStr
0444 30E0 ldi R19,>_PREJStr
0446 00E0 ldi R16,<_ScratchPad
0448 10E0 ldi R17,>_ScratchPad
044A 0E940000 xcall _rstrcpy
044E .dbline 278
044E ; break;
044E 14C0 xjmp L59
0450 L69:
0450 .dbline 279
0450 ; case PPP_EREQ : rstrcpy((char*)ScratchPad, EREQStr);
0450 20E0 ldi R18,<_EREQStr
0452 30E0 ldi R19,>_EREQStr
0454 00E0 ldi R16,<_ScratchPad
0456 10E0 ldi R17,>_ScratchPad
0458 0E940000 xcall _rstrcpy
045C .dbline 280
045C ; break;
045C 0DC0 xjmp L59
045E L70:
045E .dbline 281
045E ; case PPP_ERPY : rstrcpy((char*)ScratchPad, ERPYStr);
045E 20E0 ldi R18,<_ERPYStr
0460 30E0 ldi R19,>_ERPYStr
0462 00E0 ldi R16,<_ScratchPad
0464 10E0 ldi R17,>_ScratchPad
0466 0E940000 xcall _rstrcpy
046A .dbline 282
046A ; break;
046A 06C0 xjmp L59
046C L58:
046C .dbline 283
046C ; default : rstrcpy((char*)ScratchPad, UnknownCodeStr);
046C 20E0 ldi R18,<_UnknownCodeStr
046E 30E0 ldi R19,>_UnknownCodeStr
0470 00E0 ldi R16,<_ScratchPad
0472 10E0 ldi R17,>_ScratchPad
0474 0E940000 xcall _rstrcpy
0478 .dbline 284
0478 ; break;
0478 L59:
0478 .dbline 286
0478 ; }
0478 ; sprintf((char*)ScratchPad + strlen((char*)ScratchPad), " [%u] ID:%u Len:%u\n", CodeHeader->Code, CodeHeader->ID, ntohs(CodeHeader->Len));
0478 00E0 ldi R16,<_ScratchPad
047A 10E0 ldi R17,>_ScratchPad
047C 0E940000 xcall _strlen
0480 1801 movw R2,R16
0482 FA01 movw R30,R20
0484 0281 ldd R16,z+2
0486 1381 ldd R17,z+3
0488 2F92 push R2
048A 3F92 push R3
048C 0E940000 xcall _ntohs
0490 3F90 pop R3
0492 2F90 pop R2
0494 1D83 std y+5,R17
0496 0C83 std y+4,R16
0498 FA01 movw R30,R20
049A 4180 ldd R4,z+1
049C 5524 clr R5
049E 5B82 std y+3,R5
04A0 4A82 std y+2,R4
04A2 FA01 movw R30,R20
04A4 4080 ldd R4,z+0
04A6 5524 clr R5
04A8 5982 std y+1,R5
04AA 4882 std y+0,R4
04AC 20E0 ldi R18,<L71
04AE 30E0 ldi R19,>L71
04B0 80E0 ldi R24,<_ScratchPad
04B2 90E0 ldi R25,>_ScratchPad
04B4 8101 movw R16,R2
04B6 080F add R16,R24
04B8 191F adc R17,R25
04BA 0E940000 xcall _sprintf
04BE .dbline 287
04BE ; if (!SendDebugStr((char*)ScratchPad)) return false;
04BE 00E0 ldi R16,<_ScratchPad
04C0 10E0 ldi R17,>_ScratchPad
04C2 0E940000 xcall _SendDebugStr
04C6 0023 tst R16
04C8 11F4 brne L72
04CA .dbline 287
04CA 0027 clr R16
04CC B4C1 xjmp L34
04CE L72:
04CE .dbline 292
04CE ;
04CE ; // ********************
04CE ; // display the options (if any)
04CE ;
04CE ; if ((Protocol == PPP_LCP) || (Protocol == PPP_IPCP))
04CE C701 movw R24,R14
04D0 8132 cpi R24,33
04D2 E0EC ldi R30,192
04D4 9E07 cpc R25,R30
04D6 29F0 breq L76
04D8 8132 cpi R24,33
04DA E0E8 ldi R30,128
04DC 9E07 cpc R25,R30
04DE 09F0 breq X13
04E0 A9C1 xjmp L74
04E2 X13:
04E2 L76:
04E2 .dbline 293
04E2 ; {
04E2 .dbline 294
04E2 ; if ((CodeHeader->Code == PPP_CREQ) || (CodeHeader->Code == PPP_CACK) || (CodeHeader->Code == PPP_CNAK) || (CodeHeader->Code == PPP_CREJ))
04E2 FA01 movw R30,R20
04E4 2080 ldd R2,z+0
04E6 3324 clr R3
04E8 822D mov R24,R2
04EA 8130 cpi R24,1
04EC 39F0 breq L81
04EE 8230 cpi R24,2
04F0 29F0 breq L81
04F2 8330 cpi R24,3
04F4 19F0 breq L81
04F6 8430 cpi R24,4
04F8 09F0 breq X14
04FA 9CC1 xjmp L77
04FC X14:
04FC L81:
04FC .dbline 295
04FC ; {
04FC 92C1 xjmp L83
04FE L82:
04FE .dbline 297
04FE ; while ((i + 2) <= Bytes)
04FE ; {
04FE .dbline 298
04FE ; type = MainBuffer[i + 0];
04FE 80E0 ldi R24,<_MainBuffer
0500 90E0 ldi R25,>_MainBuffer
0502 EA85 ldd R30,y+10
0504 FB85 ldd R31,y+11
0506 E80F add R30,R24
0508 F91F adc R31,R25
050A C080 ldd R12,z+0
050C .dbline 299
050C ; len = MainBuffer[i + 1];
050C EA85 ldd R30,y+10
050E FB85 ldd R31,y+11
0510 3196 adiw R30,1
0512 E80F add R30,R24
0514 F91F adc R31,R25
0516 A080 ldd R10,z+0
0518 .dbline 300
0518 ; if (len < 2) len = 2;
0518 8A2D mov R24,R10
051A 8230 cpi R24,2
051C 10F4 brsh L85
051E .dbline 300
051E 82E0 ldi R24,2
0520 A82E mov R10,R24
0522 L85:
0522 .dbline 301
0522 ; sprintf((char*)ScratchPad, " type:%u len:%u", type, len);
0522 2A2C mov R2,R10
0524 3324 clr R3
0526 3B82 std y+3,R3
0528 2A82 std y+2,R2
052A 2C2C mov R2,R12
052C 3324 clr R3
052E 3982 std y+1,R3
0530 2882 std y+0,R2
0532 20E0 ldi R18,<L87
0534 30E0 ldi R19,>L87
0536 00E0 ldi R16,<_ScratchPad
0538 10E0 ldi R17,>_ScratchPad
053A 0E940000 xcall _sprintf
053E .dbline 302
053E ; if (Protocol == PPP_IPCP)
053E C701 movw R24,R14
0540 8132 cpi R24,33
0542 E0E8 ldi R30,128
0544 9E07 cpc R25,R30
0546 09F0 breq X15
0548 5FC0 xjmp L88
054A X15:
054A .dbline 303
054A ; {
054A .dbline 304
054A ; if (type == 2)
054A 8C2D mov R24,R12
054C 8230 cpi R24,2
054E 21F5 brne L90
0550 .dbline 305
0550 ; {
0550 .dbline 306
0550 ; if (len >= 2)
0550 8A2D mov R24,R10
0552 8230 cpi R24,2
0554 08F4 brsh X16
0556 4FC1 xjmp L89
0558 X16:
0558 .dbline 307
0558 ; {
0558 .dbline 308
0558 ; strcat((char*)ScratchPad, " comp-prot: ");
0558 20E0 ldi R18,<L94
055A 30E0 ldi R19,>L94
055C 00E0 ldi R16,<_ScratchPad
055E 10E0 ldi R17,>_ScratchPad
0560 0E940000 xcall _strcat
0564 .dbline 309
0564 ; j = ntohs(*(u16*)(MainBuffer + i + 2));
0564 80E0 ldi R24,<_MainBuffer+2
0566 90E0 ldi R25,>_MainBuffer+2
0568 EA85 ldd R30,y+10
056A FB85 ldd R31,y+11
056C E80F add R30,R24
056E F91F adc R31,R25
0570 0081 ldd R16,z+0
0572 1181 ldd R17,z+1
0574 0E940000 xcall _ntohs
0578 B801 movw R22,R16
057A .dbline 310
057A ; sprintf((char*)ScratchPad + strlen((char*)ScratchPad), "%04X", j);
057A 00E0 ldi R16,<_ScratchPad
057C 10E0 ldi R17,>_ScratchPad
057E 0E940000 xcall _strlen
0582 7983 std y+1,R23
0584 6883 std y+0,R22
0586 20E0 ldi R18,<L96
0588 30E0 ldi R19,>L96
058A 80E0 ldi R24,<_ScratchPad
058C 90E0 ldi R25,>_ScratchPad
058E 080F add R16,R24
0590 191F adc R17,R25
0592 0E940000 xc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -