📄 gps_parsing.lst
字号:
000269 09060FFF A 718 ADDX 4095,#6
00026D 19000FFE A 719 ADCX 4094,#-0
A 720 ; 70 NS = latRMC[10];
A 721 .line 70
000271 E8 00A000 A 722 LDX _NS,_latRMC+10
A 723 ; 71 latRMC[9] = '\0';
A 724 .line 71
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:24 page: 15
PC Object I Line Source gps_parsing.src
000275 E9000009 A 725 LDX _latRMC+9,#-0
A 726 ; 72 strcpy(RMC, &RMC[i+12]);
A 727 .line 72
000279 883EFE A 728 LDX R3,-2(RR14)
00027C 882EFF A 729 LDX R2,-1(RR14)
00027F 06E20C A 730 ADD R2,#12
000282 16E300 A 731 ADC R3,#0
000285 0C 00 A 732 LD R0,#high(_RMC)
000287 1C 00 A 733 LD R1,#low(_RMC)
000289 0212 A 734 ADD R1,R2
00028B 1203 A 735 ADC R0,R3
00028D 70E1 A 736 PUSH R1
00028F 70E0 A 737 PUSH R0
000291 1F70 00 A 738 PUSH #low(_RMC)
000294 1F70 00 A 739 PUSH #high(_RMC)
000297 D6 0000 A 740 CALL _strcpy
00029A 50E0 A 741 POP R0
00029C 50E0 A 742 POP R0
00029E 50E0 A 743 POP R0
0002A0 50E0 A 744 POP R0
A 745 ; 73 }
A 746 ; 74 else {
A 747 .line 74
0002A2 8B 2E A 748 JR _4_L_23
0002A4 A 749 _4_L_22:
A 750 ; 75 select_port(_UART1);
A 751 .line 75
0002A4 1F7001 A 752 PUSH #1
0002A7 1F7000 A 753 PUSH #0
0002AA D6 0000 A 754 CALL _select_port
0002AD 50E0 A 755 POP R0
0002AF 50E0 A 756 POP R0
A 757 ; 76 printf("No valid latitude logged.\n");
A 758 .line 76
0002B1 E9 00 0000 A 759 LDX ___print_xputch,#high(___print_uputch)
0002B5 E9 00 0001 A 760 LDX ___print_xputch+1,#low(___print_uputch)
0002B9 1F70 11 A 761 PUSH #low(L__17)
0002BC 1F70 00 A 762 PUSH #high(L__17)
0002BF D6 0000 A 763 CALL ___print_putromstring
0002C2 50E0 A 764 POP R0
0002C4 50E0 A 765 POP R0
0002C6 E9 00 0000 A 766 LDX ___print_xputch,#high(___print_sputch)
0002CA E9 00 0001 A 767 LDX ___print_xputch+1,#low(___print_sputch)
A 768 ; 77 latRMC[0] = '\0';
A 769 .line 77
0002CE E9000000 A 770 LDX _latRMC,#-0
A 771 ; 78 }
A 772 ; 79 }
0002D2 A 773 _4_L_23:
A 774 .line 79
0002D2 D6 0000 A 775 CALL __b_framereset
0002D5 AF A 776 RET
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:24 page: 16
PC Object I Line Source gps_parsing.src
A 777 .endfunc "RMClat",79,"_RMClat"
A 778 SEGMENT ROM_DATA
A 779
A 780
A 781 ;**************************** _RMClong ***************************
A 782 ;Name Addr/Register Size Type
A 783 ;___print_sputch IMPORT ----- function
A 784 ;___print_putromstring IMPORT ----- function
A 785 ;___print_xputch IMPORT 1 variable
A 786 ;___print_uputch IMPORT ----- function
A 787 ;_select_port IMPORT ----- function
A 788 ;_strcpy IMPORT ----- function
A 789 ;_EW IMPORT 0 variable
A 790 ;_longRMC IMPORT 0 variable
A 791 ;_strncpy IMPORT ----- function
A 792 ;_RMC STATIC 50 variable
A 793 ;i R15-2 1 variable
A 794
A 795
A 796 ; Aggregate Stack Size: -2 (words)
A 797
A 798
A 799 SEGMENT ROM_TEXT
00002C A 800 L__21:
00002C 4E6F2076 616C6964 A 801 DB "No valid longitude logged."
000034 206C6F6E 67697475
00003C 6465206C 6F676765
000044 642E
000046 0A00 A 802 DB 10,0
A 803 SEGMENT parsing_TEXT
A 804 ; 80
A 805 ; 81
A 806 ; 82 void RMClong(void) {
0002D6 A 807 _RMClong:
A 808 .define "_RMClong"
A 809 .value _RMClong
A 810 .class 2
A 811 .type 65
A 812 .type 0
A 813 .endef
A 814 .begfunc "RMClong",82,"_RMClong"
A 815 .define "i"
A 816 .class 1
A 817 .value -2
A 818 .type 3
A 819 .type 0
A 820 .endef
0002D6 9C02 A 821 LD R9,#2
0002D8 D6 0000 A 822 CALL __b_frameset0
A 823 ; 83 int i = 0;
A 824 .line 83
0002DB B0E0 A 825 CLR R0
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:24 page: 17
PC Object I Line Source gps_parsing.src
0002DD B0E1 A 826 CLR R1
0002DF 89E0FE A 827 LDX -2(RR14),R0
0002E2 89E1FF A 828 LDX -1(RR14),R1
A 829 ; 84 extern char longRMC[];
A 830 ; 85 extern char EW;
A 831 ; 86
A 832 ; 87 if (RMC[i] != ',') {
A 833 .line 87
0002E5 882EFE A 834 LDX R2,-2(RR14)
0002E8 883EFF A 835 LDX R3,-1(RR14)
0002EB 0C 00 A 836 LD R0,#high(_RMC)
0002ED 1C 00 A 837 LD R1,#low(_RMC)
0002EF 0213 A 838 ADD R1,R3
0002F1 1202 A 839 ADC R0,R2
0002F3 86E0E2 A 840 LDX R2,@RR0
0002F6 E4E2E0 A 841 LD R0,R2
0002F9 90E0 A 842 RL R0
0002FB 3200 A 843 SBC R0,R0
0002FD A6E22C A 844 CP R2,#44
000300 1FA6E000 A 845 CPC R0,#-0
000304 6B 5D A 846 JR Z,_5_L_25
A 847 ; 88 strncpy(longRMC, &RMC[i], 12);
A 848 .line 88
000306 1F700C A 849 PUSH #12
000309 1F7000 A 850 PUSH #0
00030C 882EFE A 851 LDX R2,-2(RR14)
00030F 883EFF A 852 LDX R3,-1(RR14)
000312 0C 00 A 853 LD R0,#high(_RMC)
000314 1C 00 A 854 LD R1,#low(_RMC)
000316 0213 A 855 ADD R1,R3
000318 1202 A 856 ADC R0,R2
00031A 70E1 A 857 PUSH R1
00031C 70E0 A 858 PUSH R0
00031E 1F70 00 A 859 PUSH #low(_longRMC)
000321 1F70 00 A 860 PUSH #high(_longRMC)
000324 D6 0000 A 861 CALL _strncpy
000327 2F A 862 ATM
000328 09060FFF A 863 ADDX 4095,#6
00032C 19000FFE A 864 ADCX 4094,#-0
A 865 ; 89 EW = longRMC[11];
A 866 .line 89
000330 E8 00B000 A 867 LDX _EW,_longRMC+11
A 868 ; 90 longRMC[10] = '\0';
A 869 .line 90
000334 E900000A A 870 LDX _longRMC+10,#-0
A 871 ; 91 strcpy(RMC, &RMC[i+13]);
A 872 .line 91
000338 883EFE A 873 LDX R3,-2(RR14)
00033B 882EFF A 874 LDX R2,-1(RR14)
00033E 06E20D A 875 ADD R2,#13
000341 16E300 A 876 ADC R3,#0
000344 0C 00 A 877 LD R0,#high(_RMC)
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:24 page: 18
PC Object I Line Source gps_parsing.src
000346 1C 00 A 878 LD R1,#low(_RMC)
000348 0212 A 879 ADD R1,R2
00034A 1203 A 880 ADC R0,R3
00034C 70E1 A 881 PUSH R1
00034E 70E0 A 882 PUSH R0
000350 1F70 00 A 883 PUSH #low(_RMC)
000353 1F70 00 A 884 PUSH #high(_RMC)
000356 D6 0000 A 885 CALL _strcpy
000359 50E0 A 886 POP R0
00035B 50E0 A 887 POP R0
00035D 50E0 A 888 POP R0
00035F 50E0 A 889 POP R0
A 890 ; 92 }
A 891 ; 93 else {
A 892 .line 93
000361 8B 2E A 893 JR _5_L_26
000363 A 894 _5_L_25:
A 895 ; 94 select_port(_UART1);
A 896 .line 94
000363 1F7001 A 897 PUSH #1
000366 1F7000 A 898 PUSH #0
000369 D6 0000 A 899 CALL _select_port
00036C 50E0 A 900 POP R0
00036E 50E0 A 901 POP R0
A 902 ; 95 printf("No valid longitude logged.\n");
A 903 .line 95
000370 E9 00 0000 A 904 LDX ___print_xputch,#high(___print_uputch)
000374 E9 00 0001 A 905 LDX ___print_xputch+1,#low(___print_uputch)
000378 1F70 2C A 906 PUSH #low(L__21)
00037B 1F70 00 A 907 PUSH #high(L__21)
00037E D6 0000 A 908 CALL ___print_putromstring
000381 50E0 A 909 POP R0
000383 50E0 A 910 POP R0
000385 E9 00 0000 A 911 LDX ___print_xputch,#high(___print_sputch)
000389 E9 00 0001 A 912 LDX ___print_xputch+1,#low(___print_sputch)
A 913 ; 96 longRMC[0] = '\0';
A 914 .line 96
00038D E9000000 A 915 LDX _longRMC,#-0
A 916 ; 97 }
000391 A 917 _5_L_26:
A 918 .line 98
000391 D6 0000 A 919 CALL __b_framereset
000394 AF A 920 RET
A 921 .endfunc "RMClong",98,"_RMClong"
A 922 XREF _EW:EDATA
A 923 XREF _longRMC:EDATA
A 924 XREF _NS:EDATA
A 925 XREF _latRMC:EDATA
A 926 XREF _timeRMC:EDATA
A 927 XREF _select_port:ROM
A 928 XREF _strncpy:ROM
A 929 XREF _strcpy:ROM
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402) 14-Jan-09 10:50:24 page: 19
PC Object I Line Source gps_parsing.src
A 930 XREF _scanf:ROM
A 931 XREF ___print_putromstring:ROM
A 932 XREF ___print_xputch:EDATA
A 933 XREF ___print_sputch:ROM
A 934 XREF ___print_uputch:ROM
A 935 XREF __b_framereset:ROM
A 936 XREF __b_frameset0:ROM
A 937 XDEF _RMClong
A 938 XDEF _RMClat
A 939 XDEF _RMCtime
A 940 XDEF _RMCstring
A 941 XDEF _GGAstring
A 942 XDEF _GGA
A 943 XDEF _RMC
A 944 END
Errors: 0
Warnings: 0
Lines Assembled: 945
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -