📄 gps.asm
字号:
st AH,@H'ffea ; %r5
movax
ld AH,@H'ffe9 ; %r4
st.b AH,@(75,X)
;
; GPGSV3.CR_LF[0] = CR;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?248.1:
ld AH,#'\r'
st AH,@H'ffe9 ; %r4
ld AL,#$GPGSV3
ld AH,#0
asl #1
st AL,@H'ffeb ; %r5
st AH,@H'ffea ; %r5
movax
ld AH,@H'ffe9 ; %r4
st.b AH,@(74,X)
; GPGSV3.CR_LF[1] = LF;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?249.1:
ld AH,#'\n'
st AH,@H'ffe9 ; %r4
ld AL,#$GPGSV3
ld AH,#0
asl #1
st AL,@H'ffeb ; %r5
st AH,@H'ffea ; %r5
movax
ld AH,@H'ffe9 ; %r4
st.b AH,@(75,X)
;
; GPGSV4.CR_LF[0] = CR;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?251.1:
ld AH,#'\r'
st AH,@H'ffe9 ; %r4
ld AL,#$GPGSV4
ld AH,#0
asl #1
st AL,@H'ffeb ; %r5
st AH,@H'ffea ; %r5
movax
ld AH,@H'ffe9 ; %r4
st.b AH,@(74,X)
; GPGSV4.CR_LF[1] = LF;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?252.1:
ld AH,#'\n'
st AH,@H'ffe9 ; %r4
ld AL,#$GPGSV4
ld AH,#0
asl #1
st AL,@H'ffeb ; %r5
st AH,@H'ffea ; %r5
movax
ld AH,@H'ffe9 ; %r4
st.b AH,@(75,X)
;
; GPS_TX_ready_flag = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?254.1:
ld AL,#0
st AL,@$GPS_TX_ready_flag
; receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?255.1:
st AL,@$receive_buffer_count
; receive_flag = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?256.1:
st AL,@$receive_flag
; gps_state = '0';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?257.1:
ld AL,#'0'
st AL,@H'ffe1 ; %r0
ld AL,#lwrd(2*$gps_state)
ld AH,#hwrd(2*$gps_state)
movax
st AL,@H'ffe9 ; %r4
st AH,@H'ffe8 ; %r4
ld AL,@H'ffe1 ; %r0
st.b AL,@(0,X)
; GPS_TX_gradation_flag = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?258.1:
ld AL,#0
st AL,@$GPS_TX_gradation_flag
; GPS_TX_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?259.1:
st AL,@$GPS_TX_count
; _GSV_TX_sum_ = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?260.1:
st AL,@H'ffe1 ; %r0
ld AL,#lwrd(2*$_GSV_TX_sum_)
ld AH,#hwrd(2*$_GSV_TX_sum_)
movax
st AL,@H'ffe9 ; %r4
st AH,@H'ffe8 ; %r4
ld AL,@H'ffe1 ; %r0
st.b AL,@(0,X)
;
; GPGGA_TX_pointer = (char *)(&GPGGA);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?262.1:
ld AL,#$GPGGA
ld AH,#0
asl #1
st AL,@$GPGGA_TX_pointer+H'1
st AH,@$GPGGA_TX_pointer
; GPGSA_TX_pointer = (char *)(&GPGSA);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?263.1:
ld AL,#$GPGSA
ld AH,#0
asl #1
st AL,@$GPGSA_TX_pointer+H'1
st AH,@$GPGSA_TX_pointer
; GPGSV1_TX_pointer = (char *)(&GPGSV1);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?264.1:
ld AL,#$GPGSV1
ld AH,#0
asl #1
st AL,@$GPGSV1_TX_pointer+H'1
st AH,@$GPGSV1_TX_pointer
; GPGSV2_TX_pointer = (char *)(&GPGSV2);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?265.1:
ld AL,#$GPGSV2
ld AH,#0
asl #1
st AL,@$GPGSV2_TX_pointer+H'1
st AH,@$GPGSV2_TX_pointer
; GPGSV3_TX_pointer = (char *)(&GPGSV3);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?266.1:
ld AL,#$GPGSV3
ld AH,#0
asl #1
st AL,@$GPGSV3_TX_pointer+H'1
st AH,@$GPGSV3_TX_pointer
; GPGSV4_TX_pointer = (char *)(&GPGSV4);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?267.1:
ld AL,#$GPGSV4
ld AH,#0
asl #1
st AL,@$GPGSV4_TX_pointer+H'1
st AH,@$GPGSV4_TX_pointer
; GPRMC_TX_pointer = (char *)(&GPRMC);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?268.1:
ld AL,#$GPRMC
ld AH,#0
asl #1
st AL,@$GPRMC_TX_pointer+H'1
st AH,@$GPRMC_TX_pointer
Lstab?15c:
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?270.1:
?L55F4:
add Y,#2
ld XH,@(-2,Y)
bra @(-1,Y)
Lstab?16c:
;
;
;}
;
;/******************************************************************************
;NAME
; display_gps_data
;
;SYNOPSIS
; void display_gps_data(void)
;
;FUNCTION
; Display gps data.
;
;RETURNS
; Nothing.
;******************************************************************************/
;
;/******************************************************************************
;end
;******************************************************************************/
;
;void __irq_code RMC_receive(void)
;
$RMC_receive?:
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?290.1:
st XH,@(-2,Y)
st X,@(-1,Y)
Lstab?17c:
;{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?291.1:
; switch(receive_flag)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?292.1:
ld AL,@$receive_flag
sub AL,#1
add Y,#-2
Lstab?18a:
cmp AL,#12
bcc ?L5F5
st AL,@$?irq_scratchpad?+1 ; %r0
ld X,@$?irq_scratchpad?+1 ; %r0
add X,@$?irq_scratchpad?+1 ; %r0
brxl
bra2 ?L17F5
bra2 ?L16F5
bra2 ?L15F5
bra2 ?L14F5
bra2 ?L13F5
bra2 ?L12F5
bra2 ?L11F5
bra2 ?L10F5
bra2 ?L9F5
bra2 ?L8F5
bra2 ?L7F5
bra2 ?L6F5
?L17F5:
; if(c != ',')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?295.1:
st AL,@$?irq_scratchpad?+1 ; %r0
ld AL,#lwrd(2*$c)
ld AH,#hwrd(2*$c)
movax
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
ld.bu AL,@(0,X)
cmp AL,#','
beq ?L20F5
; {
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?296.1:
; GPRMC.UTC_timer[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?297.1:
st AL,@$?irq_scratchpad?+1 ; %r0
ld AL,#lwrd(2*$c)
ld AH,#hwrd(2*$c)
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
movax
ld.bu AH,@(0,X)
st AH,@$?irq_scratchpad?+5 ; %r2
ld AL,#$GPRMC
ld AH,#0
asl #1
st AL,@$?irq_scratchpad?+9 ; %r4
st AH,@$?irq_scratchpad?+8 ; %r4
ld AL,@$receive_buffer_count
ld AH,#0
add AL,@$?irq_scratchpad?+9 ; %r4
addc AH,@$?irq_scratchpad?+8 ; %r4
st AL,@$?irq_scratchpad?+7 ; %r3
st AH,@$?irq_scratchpad?+6 ; %r3
movax
ld AH,@$?irq_scratchpad?+5 ; %r2
st.b AH,@(7,X)
; receive_buffer_count++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?298.1:
ld AL,@$receive_buffer_count
add AL,#1
st AL,@$receive_buffer_count
; if(receive_buffer_count == 10)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?299.1:
ld AL,@$receive_buffer_count
cmp AL,#10
bne ?L23F5
; {
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?300.1:
; receive_buffer_count--;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?301.1:
ld AL,@$receive_buffer_count
add AL,#-1
st AL,@$receive_buffer_count
?L23F5:
bra ?L28F5
?L20F5:
; }
; }
; else
; {
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?305.1:
; GPRMC.UTC_timer[receive_buffer_count] = ',';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?306.1:
ld AH,#','
st AH,@$?irq_scratchpad?+7 ; %r3
ld AL,#$GPRMC
ld AH,#0
asl #1
st AL,@$?irq_scratchpad?+9 ; %r4
st AH,@$?irq_scratchpad?+8 ; %r4
ld AL,@$receive_buffer_count
ld AH,#0
add AL,@$?irq_scratchpad?+9 ; %r4
addc AH,@$?irq_scratchpad?+8 ; %r4
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
movax
ld AH,@$?irq_scratchpad?+7 ; %r3
st.b AH,@(7,X)
; while(receive_buffer_count < (10 - 1))
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?307.1:
?L31F5:
; ^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?307.1:
ld AL,@$receive_buffer_count
cmp AL,#9
bcc ?L32F5
; {
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?308.1:
; receive_buffer_count ++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?309.1:
ld AL,@$receive_buffer_count
add AL,#1
st AL,@$receive_buffer_count
; GPRMC.UTC_timer[receive_buffer_count] = ' ';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?310.1:
ld AH,#' '
st AH,@$?irq_scratchpad?+9 ; %r4
ld AL,#$GPRMC
ld AH,#0
asl #1
st AL,@$?irq_scratchpad?+7 ; %r3
st AH,@$?irq_scratchpad?+6 ; %r3
ld AL,@$receive_buffer_count
ld AH,#0
add AL,@$?irq_scratchpad?+7 ; %r3
addc AH,@$?irq_scratchpad?+6 ; %r3
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
movax
ld AH,@$?irq_scratchpad?+9 ; %r4
st.b AH,@(7,X)
bra ?L31F5
?L32F5:
;
; }
;
; receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?314.1:
ld AL,#0
st AL,@$receive_buffer_count
; receive_flag = RMC_WORK_STATE;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?315.1:
ld AL,#2
st AL,@$receive_flag
?L28F5:
; }
; break;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?317.1:
bra ?L4F5
?L16F5:
; if(c != ',')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?321.1:
st AL,@$?irq_scratchpad?+1 ; %r0
ld AL,#lwrd(2*$c)
ld AH,#hwrd(2*$c)
movax
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
ld.bu AL,@(0,X)
cmp AL,#','
beq ?L38F5
; {
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?322.1:
; GPRMC.work_state[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?323.1:
st AL,@$?irq_scratchpad?+1 ; %r0
ld AL,#lwrd(2*$c)
ld AH,#hwrd(2*$c)
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
movax
ld.bu AH,@(0,X)
st AH,@$?irq_scratchpad?+5 ; %r2
ld AL,#$GPRMC
ld AH,#0
asl #1
st AL,@$?irq_scratchpad?+7 ; %r3
st AH,@$?irq_scratchpad?+6 ; %r3
ld AL,@$receive_buffer_count
ld AH,#0
add AL,@$?irq_scratchpad?+7 ; %r3
addc AH,@$?irq_scratchpad?+6 ; %r3
st AL,@$?irq_scratchpad?+7 ; %r3
st AH,@$?irq_scratchpad?+6 ; %r3
movax
ld AH,@$?irq_scratchpad?+5 ; %r2
st.b AH,@(17,X)
; receive_buffer_count++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?324.1:
ld AL,@$receive_buffer_count
add AL,#1
st AL,@$receive_buffer_count
; if(receive_buffer_count == 2)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?325.1:
ld AL,@$receive_buffer_count
cmp AL,#2
bne ?L41F5
; {
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?326.1:
; receive_buffer_count--;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?327.1:
ld AL,@$receive_buffer_count
add AL,#-1
st AL,@$receive_buffer_count
?L41F5:
bra ?L46F5
?L38F5:
; }
; }
; else
; {
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?331.1:
; GPRMC.work_state[receive_buffer_count] = ',';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?332.1:
ld AH,#','
st AH,@$?irq_scratchpad?+7 ; %r3
ld AL,#$GPRMC
ld AH,#0
asl #1
st AL,@$?irq_scratchpad?+9 ; %r4
st AH,@$?irq_scratchpad?+8 ; %r4
ld AL,@$receive_buffer_count
ld AH,#0
add AL,@$?irq_scratchpad?+9 ; %r4
addc AH,@$?irq_scratchpad?+8 ; %r4
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
movax
ld AH,@$?irq_scratchpad?+7 ; %r3
st.b AH,@(17,X)
; while(receive_buffer_count < (2 - 1))
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?333.1:
?L49F5:
; ^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?333.1:
ld AL,@$receive_buffer_count
cmp AL,#1
bcc ?L50F5
; {
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?334.1:
; receive_buffer_count ++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?335.1:
ld AL,@$receive_buffer_count
add AL,#1
st AL,@$receive_buffer_count
; GPRMC.work_state[receive_buffer_count] = ' ';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?336.1:
ld AH,#' '
st AH,@$?irq_scratchpad?+9 ; %r4
ld AL,#$GPRMC
ld AH,#0
asl #1
st AL,@$?irq_scratchpad?+7 ; %r3
st AH,@$?irq_scratchpad?+6 ; %r3
ld AL,@$receive_buffer_count
ld AH,#0
add AL,@$?irq_scratchpad?+7 ; %r3
addc AH,@$?irq_scratchpad?+6 ; %r3
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
movax
ld AH,@$?irq_scratchpad?+9 ; %r4
st.b AH,@(17,X)
bra ?L49F5
?L50F5:
;
; }
;
; receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?340.1:
ld AL,#0
st AL,@$receive_buffer_count
; receive_flag = RMC_LATITUDE;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?341.1:
ld AL,#3
st AL,@$receive_flag
?L46F5:
; }
; break;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?343.1:
bra ?L4F5
?L15F5:
; if(c != ',')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?346.1:
st AL,@$?irq_scratchpad?+1 ; %r0
ld AL,#lwrd(2*$c)
ld AH,#hwrd(2*$c)
movax
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
ld.bu AL,@(0,X)
cmp AL,#','
beq ?L56F5
; {
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?347.1:
; GPRMC.latitude[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?348.1:
st AL,@$?irq_scratchpad?+1 ; %r0
ld AL,#lwrd(2*$c)
ld AH,#hwrd(2*$c)
st AL,@$?irq_scratchpad?+5 ; %r2
st AH,@$?irq_scratchpad?+4 ; %r2
movax
ld.bu AH,@(0,X)
st AH,@$?irq_scratchpad?+5 ; %r2
ld AL,#$GPRMC
ld AH,#0
asl #1
st AL,@$?irq_scratchpad?+7 ; %r3
st AH,@$?irq_scratchpad?+6 ; %r3
ld AL,@$receive_buffer_count
ld AH,#0
add AL,@$?irq_scratchpad?+7 ; %r3
addc AH,@$?irq_scratchpad?+6 ; %r3
st AL,@$?irq_scratchpad?+7 ; %r3
st AH,@$?irq_scratchpad?+6 ; %r3
movax
ld AH,@$?irq_scratchpad?+5 ; %r2
st.b AH,@(19,X)
; receive_buffer_count++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?349.1:
ld AL,@$receive_buffer_count
add AL,#1
st AL,@$receive_buffer_count
; if(receive_buffer_count == 10)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?350.1:
ld AL,@$receive_buffer_count
cmp AL,#10
bne ?L59F5
; {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -