📄 gps_parsing.lst
字号:
A 478 ; 41
A 479 ; 42 while (RMCstr[i] != ',')
A 480 .line 42
0000E5 8B 0E A 481 JR _3_L_9
0000E7 A 482 _3_L_10:
A 483 ; 43 i++;
A 484 .line 43
0000E7 880EFE A 485 LDX R0,-2(RR14)
0000EA 881EFF A 486 LDX R1,-1(RR14)
0000ED A0E0 A 487 INCW RR0
0000EF 89E0FE A 488 LDX -2(RR14),R0
0000F2 89E1FF A 489 LDX -1(RR14),R1
0000F5 A 490 _3_L_9:
0000F5 882EFE A 491 LDX R2,-2(RR14)
0000F8 883EFF A 492 LDX R3,-1(RR14)
0000FB 880E04 A 493 LDX R0,4(RR14)
0000FE 881E05 A 494 LDX R1,5(RR14)
000101 0213 A 495 ADD R1,R3
000103 1202 A 496 ADC R0,R2
000105 86E0E2 A 497 LDX R2,@RR0
000108 E4E2E0 A 498 LD R0,R2
00010B 90E0 A 499 RL R0
00010D 3200 A 500 SBC R0,R0
00010F A6E22C A 501 CP R2,#44
000112 1FA6E000 A 502 CPC R0,#-0
000116 EB CF A 503 JR NE,_3_L_10
A 504 ; 44
A 505 ; 45 i++;
A 506 .line 45
000118 880EFE A 507 LDX R0,-2(RR14)
00011B 881EFF A 508 LDX R1,-1(RR14)
00011E A0E0 A 509 INCW RR0
000120 89E0FE A 510 LDX -2(RR14),R0
000123 89E1FF A 511 LDX -1(RR14),R1
A 512 ; 46
A 513 ; 47 if (RMCstr[i] != ',') {
A 514 .line 47
000126 882EFE A 515 LDX R2,-2(RR14)
000129 883EFF A 516 LDX R3,-1(RR14)
00012C 880E04 A 517 LDX R0,4(RR14)
00012F 881E05 A 518 LDX R1,5(RR14)
000132 0213 A 519 ADD R1,R3
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:24 page: 11
PC Object I Line Source gps_parsing.src
000134 1202 A 520 ADC R0,R2
000136 86E0E2 A 521 LDX R2,@RR0
000139 E4E2E0 A 522 LD R0,R2
00013C 90E0 A 523 RL R0
00013E 3200 A 524 SBC R0,R0
000140 A6E22C A 525 CP R2,#44
000143 1FA6E000 A 526 CPC R0,#-0
000147 6B 5D A 527 JR Z,_3_L_14
A 528 ; 48 strncpy(timeRMC, &RMCstr[i], 10);
A 529 .line 48
000149 1F700A A 530 PUSH #10
00014C 1F7000 A 531 PUSH #0
00014F 882EFE A 532 LDX R2,-2(RR14)
000152 883EFF A 533 LDX R3,-1(RR14)
000155 880E04 A 534 LDX R0,4(RR14)
000158 881E05 A 535 LDX R1,5(RR14)
00015B 0213 A 536 ADD R1,R3
00015D 1202 A 537 ADC R0,R2
00015F 70E1 A 538 PUSH R1
000161 70E0 A 539 PUSH R0
000163 1F70 00 A 540 PUSH #low(_timeRMC)
000166 1F70 00 A 541 PUSH #high(_timeRMC)
000169 D6 0000 A 542 CALL _strncpy
00016C 2F A 543 ATM
00016D 09060FFF A 544 ADDX 4095,#6
000171 19000FFE A 545 ADCX 4094,#-0
A 546 ; 49 timeRMC[10] = '\0';
A 547 .line 49
000175 E900000A A 548 LDX _timeRMC+10,#-0
A 549 ; 50 strcpy(RMC, &RMCstr[i+11]);
A 550 .line 50
000179 883EFE A 551 LDX R3,-2(RR14)
00017C 882EFF A 552 LDX R2,-1(RR14)
00017F 06E20B A 553 ADD R2,#11
000182 16E300 A 554 ADC R3,#0
000185 880E04 A 555 LDX R0,4(RR14)
000188 881E05 A 556 LDX R1,5(RR14)
00018B 0212 A 557 ADD R1,R2
00018D 1203 A 558 ADC R0,R3
00018F 70E1 A 559 PUSH R1
000191 70E0 A 560 PUSH R0
000193 1F70 00 A 561 PUSH #low(_RMC)
000196 1F70 00 A 562 PUSH #high(_RMC)
000199 D6 0000 A 563 CALL _strcpy
00019C 50E0 A 564 POP R0
00019E 50E0 A 565 POP R0
0001A0 50E0 A 566 POP R0
0001A2 50E0 A 567 POP R0
A 568 ; 51 }
A 569 ; 52 else {
A 570 .line 52
0001A4 8B 2E A 571 JR _3_L_15
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:24 page: 12
PC Object I Line Source gps_parsing.src
0001A6 A 572 _3_L_14:
A 573 ; 53 select_port(_UART1);
A 574 .line 53
0001A6 1F7001 A 575 PUSH #1
0001A9 1F7000 A 576 PUSH #0
0001AC D6 0000 A 577 CALL _select_port
0001AF 50E0 A 578 POP R0
0001B1 50E0 A 579 POP R0
A 580 ; 54 printf("No time logged.\n");
A 581 .line 54
0001B3 E9 00 0000 A 582 LDX ___print_xputch,#high(___print_uputch)
0001B7 E9 00 0001 A 583 LDX ___print_xputch+1,#low(___print_uputch)
0001BB 1F70 00 A 584 PUSH #low(L__12)
0001BE 1F70 00 A 585 PUSH #high(L__12)
0001C1 D6 0000 A 586 CALL ___print_putromstring
0001C4 50E0 A 587 POP R0
0001C6 50E0 A 588 POP R0
0001C8 E9 00 0000 A 589 LDX ___print_xputch,#high(___print_sputch)
0001CC E9 00 0001 A 590 LDX ___print_xputch+1,#low(___print_sputch)
A 591 ; 55 timeRMC[0] = '\0';
A 592 .line 55
0001D0 E9000000 A 593 LDX _timeRMC,#-0
A 594 ; 56 }
A 595 ; 57 }
0001D4 A 596 _3_L_15:
A 597 .line 57
0001D4 D6 0000 A 598 CALL __b_framereset
0001D7 AF A 599 RET
A 600 .endfunc "RMCtime",57,"_RMCtime"
A 601 SEGMENT ROM_DATA
A 602
A 603
A 604 ;**************************** _RMClat ***************************
A 605 ;Name Addr/Register Size Type
A 606 ;___print_sputch IMPORT ----- function
A 607 ;___print_putromstring IMPORT ----- function
A 608 ;___print_xputch IMPORT 1 variable
A 609 ;___print_uputch IMPORT ----- function
A 610 ;_select_port IMPORT ----- function
A 611 ;_strcpy IMPORT ----- function
A 612 ;_NS IMPORT 0 variable
A 613 ;_latRMC IMPORT 0 variable
A 614 ;_strncpy IMPORT ----- function
A 615 ;_RMC STATIC 50 variable
A 616 ;i R15-2 1 variable
A 617
A 618
A 619 ; Aggregate Stack Size: -2 (words)
A 620
A 621
A 622 SEGMENT ROM_TEXT
000011 A 623 L__17:
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:24 page: 13
PC Object I Line Source gps_parsing.src
000011 4E6F2076 616C6964 A 624 DB "No valid latitude logged."
000019 206C6174 69747564
000021 65206C6F 67676564
000029 2E
00002A 0A00 A 625 DB 10,0
A 626 SEGMENT parsing_TEXT
A 627 ; 58
A 628 ; 59 void RMClat(void) {
0001D8 A 629 _RMClat:
A 630 .define "_RMClat"
A 631 .value _RMClat
A 632 .class 2
A 633 .type 65
A 634 .type 0
A 635 .endef
A 636 .begfunc "RMClat",59,"_RMClat"
A 637 .define "i"
A 638 .class 1
A 639 .value -2
A 640 .type 3
A 641 .type 0
A 642 .endef
0001D8 9C02 A 643 LD R9,#2
0001DA D6 0000 A 644 CALL __b_frameset0
A 645 ; 60 int i = 0;
A 646 .line 60
0001DD B0E0 A 647 CLR R0
0001DF B0E1 A 648 CLR R1
0001E1 89E0FE A 649 LDX -2(RR14),R0
0001E4 89E1FF A 650 LDX -1(RR14),R1
A 651 ; 61 extern char latRMC[];
A 652 ; 62 extern char NS;
A 653 ; 63 while (RMC[i] != ',')
A 654 .line 63
0001E7 8B 0E A 655 JR _4_L_17
0001E9 A 656 _4_L_18:
A 657 ; 64 i++;
A 658 .line 64
0001E9 880EFE A 659 LDX R0,-2(RR14)
0001EC 881EFF A 660 LDX R1,-1(RR14)
0001EF A0E0 A 661 INCW RR0
0001F1 89E0FE A 662 LDX -2(RR14),R0
0001F4 89E1FF A 663 LDX -1(RR14),R1
0001F7 A 664 _4_L_17:
0001F7 882EFE A 665 LDX R2,-2(RR14)
0001FA 883EFF A 666 LDX R3,-1(RR14)
0001FD 0C 00 A 667 LD R0,#high(_RMC)
0001FF 1C 00 A 668 LD R1,#low(_RMC)
000201 0213 A 669 ADD R1,R3
000203 1202 A 670 ADC R0,R2
000205 86E0E2 A 671 LDX R2,@RR0
000208 E4E2E0 A 672 LD R0,R2
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:24 page: 14
PC Object I Line Source gps_parsing.src
00020B 90E0 A 673 RL R0
00020D 3200 A 674 SBC R0,R0
00020F A6E22C A 675 CP R2,#44
000212 1FA6E000 A 676 CPC R0,#-0
000216 EB D1 A 677 JR NE,_4_L_18
A 678 ; 65
A 679 ; 66 i++;
A 680 .line 66
000218 880EFE A 681 LDX R0,-2(RR14)
00021B 881EFF A 682 LDX R1,-1(RR14)
00021E A0E0 A 683 INCW RR0
000220 89E0FE A 684 LDX -2(RR14),R0
000223 89E1FF A 685 LDX -1(RR14),R1
A 686 ; 67
A 687 ; 68 if (RMC[i] != ',') {
A 688 .line 68
000226 882EFE A 689 LDX R2,-2(RR14)
000229 883EFF A 690 LDX R3,-1(RR14)
00022C 0C 00 A 691 LD R0,#high(_RMC)
00022E 1C 00 A 692 LD R1,#low(_RMC)
000230 0213 A 693 ADD R1,R3
000232 1202 A 694 ADC R0,R2
000234 86E0E2 A 695 LDX R2,@RR0
000237 E4E2E0 A 696 LD R0,R2
00023A 90E0 A 697 RL R0
00023C 3200 A 698 SBC R0,R0
00023E A6E22C A 699 CP R2,#44
000241 1FA6E000 A 700 CPC R0,#-0
000245 6B 5D A 701 JR Z,_4_L_22
A 702 ; 69 strncpy(latRMC, &RMC[i], 11);
A 703 .line 69
000247 1F700B A 704 PUSH #11
00024A 1F7000 A 705 PUSH #0
00024D 882EFE A 706 LDX R2,-2(RR14)
000250 883EFF A 707 LDX R3,-1(RR14)
000253 0C 00 A 708 LD R0,#high(_RMC)
000255 1C 00 A 709 LD R1,#low(_RMC)
000257 0213 A 710 ADD R1,R3
000259 1202 A 711 ADC R0,R2
00025B 70E1 A 712 PUSH R1
00025D 70E0 A 713 PUSH R0
00025F 1F70 00 A 714 PUSH #low(_latRMC)
000262 1F70 00 A 715 PUSH #high(_latRMC)
000265 D6 0000 A 716 CALL _strncpy
000268 2F A 717 ATM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -