📄 sh_gm.asm
字号:
MOV ver_3,#7fh
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_engclCOMM3
MOV ver_2,#10h
MOV ver_3,#54h
MOV r1,#4
ACALL gm_selread
;
MOV dptr,#SHGM_absclCOMM1
MOV ver_2,#0aah
MOV ver_3,#6ah
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_absclCOMM3
MOV ver_2,#28h
MOV ver_3,#60h
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_absclCOMM4
MOV ver_2,#28h
MOV ver_3,#54h
MOV r1,#4
ACALL gm_selread
;
MOV dptr,#SHGM_absclCOMM2
MOV ver_2,#0aah
MOV ver_3,#6ah
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_absclCOMM3
MOV ver_2,#28h
MOV ver_3,#60h
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_absclCOMM4
MOV ver_2,#28h
MOV ver_3,#54h
MOV r1,#4
ACALL gm_selread
;
MOV dptr,#SHGM_srsclCOMM1
MOV ver_2,#0aah
MOV ver_3,#6ah
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_srsclCOMM2
MOV ver_2,#58h
MOV ver_3,#60h
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_srsclCOMM3
MOV ver_2,#58h
MOV ver_3,#54h
MOV r1,#4
ACALL gm_selread
RET
;
gm_read: CLR psw.1
MOV r0,#info_end
MOV a,#0aah
MOV @r0,a
MOV a,systemnum
CJNE a,#1,gm_read_1
MOV dptr,#SHGM_engCOMM1
MOV ver_2,#10h
MOV ver_3,#60h
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_engCOMM2
MOV ver_2,#10h
MOV ver_3,#59h
MOV r1,#2
ACALL gm_selread
ACALL gm_save
RET
;
gm_read_1: CJNE a,#2,gm_read_2
MOV dptr,#SHGM_absCOMM1
MOV ver_2,#0aah
MOV ver_3,#6ah
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_absCOMM2
MOV ver_2,#28h
MOV ver_3,#59h
MOV r1,#2
ACALL gm_selread
ACALL gm_save
JNB psw.1,gm_read_10
RET
gm_read_10: ACALL gm_to57h
MOV dptr,#SHGM_absCOMM3
MOV ver_2,#28h
MOV ver_3,#59h
MOV r1,#2
ACALL gm_selread
ACALL gm_save
RET
;
gm_read_2: MOV dptr,#SHGM_srsCOMM1
MOV ver_2,#0aah
MOV ver_3,#6ah
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_srsCOMM2
MOV ver_2,#58h
MOV ver_3,#60h
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_srsCOMM3
MOV ver_2,#58h
MOV ver_3,#59h
MOV r1,#2
ACALL gm_selread
ACALL gm_save
JNB psw.1,gm_read_20
RET
gm_read_20: ACALL gm_to57h
MOV dptr,#SHGM_srsCOMM4
MOV ver_2,#58h
MOV ver_3,#59h
MOV r1,#2
ACALL gm_selread
ACALL gm_save
RET
;
gm_save: MOV gm_num,#3
gm_save_0: JNC gm_save_2
MOV r0,#info_end
MOV a,@r0
CJNE a,#0aah,gm_save_00
MOV a,#0ffh
MOV @r0,a
MOV r0,#send_buf
MOV A,#0ffh
MOV @r0,a
RET
gm_save_00: CJNE a,#0ffh,gm_save_1
MOV r0,#send_buf
MOV A,#0ffh
MOV @r0,a
RET
;
gm_save_1: MOV r0,#send_buf
MOV A,#0
MOV @r0,a
AJMP gm_save_6
;
gm_save_2: MOV r0,#info_end
MOV a,@r0
CJNE a,#0aah,gm_save_3
MOV a,#0ffh
MOV @r0,a
gm_save_3: ACALL gm_getcode
JB psw.5,gm_save_5
ACALL gm_to08h
JB psw.1,gm_save_7
ACALL gm_to57h
djnz gm_num,gm_save_4
AJMP gm_save_7
;
gm_save_4: ACALL gm_READ_ONLY
AJMP gm_save_0
;
gm_save_5: ;SETB psw.1
gm_save_6: ACALL gm_to08h
gm_save_7: ACALL del_same_code
RET
del_same_code: MOV R5,#1
MOV R4,#1
dsc_0: MOV R0,#SEND_BUF
MOV A,@R0
JNZ dsc_1
RET
dsc_1: CJNE A,#1,dsc_2
RET
dsc_2: CJNE A,#0FFH,dsc_3
RET
dsc_3: MOV R7,A
CLR C
RLC A
INC ACC
ADD A,R0
MOV R6,A
;
MOV A,R4
CLR C
SUBB A,R7
JC dsc_4
RET
;
dsc_4: MOV A,R7
CLR C
SUBB A,R4
MOV R7,A
;
MOV A,R4
MOV R5,A
ACALL dsc_GETADD
MOV A,@R0
INC R0
MOV R2,A
MOV A,@R0
INC R0
MOV R3,A
;
INC R5
dsc_5: ACALL dsc_GETADD
MOV A,@R0
INC R0
MOV B,A
MOV A,R2
CJNE A,B,dsc_7
MOV A,@R0
MOV B,A
MOV A,R3
CJNE A,B,dsc_7
DEC R0
MOV A,R0
INC A
INC A
MOV R1,A
dsc_6: MOV A,@R1
INC R1
MOV @R0,A
INC R0
MOV A,@R1
INC R1
MOV @R0,A
INC R0
MOV A,R1
CLR C
SUBB A,R6
JC dsc_6
MOV R0,#SEND_BUF
MOV A,@R0
DEC A
MOV @R0,A
AJMP dsc_0
dsc_7: INC R5
DJNZ R7,dsc_5
MOV R0,#SEND_BUF
MOV A,@R0
MOV B,A
INC R4
MOV A,R4
CLR C
SUBB A,B
JC dsc_8
RET
;
dsc_8: AJMP dsc_0
;
dsc_GETADD: MOV r0,#send_buf
MOV A,R5
DEC A
CLR C
RLC A
INC ACC
ADD A,R0
MOV R0,A
RET
gm_getcode: CLR PSW.5
MOV r1,#dtc_info
MOV r0,#send_buf
MOV a,@r0
MOV r7,a
INC r0
MOV a,r0
MOV r4,a
MOV a,@r0
MOV r6,a
MOV r5,#0
;
gm_getcode1: MOV a,r6
CLR c
SUBB a,#8
JNC gm_getcode2
AJMP gm_getcode3
;
gm_getcode2: INC r0
INC r0
INC r0
INC r0
INC r0
MOV a,@r0
INC r0
MOV R2,A
MOV a,@r0
INC r0
MOV R3,A
JNZ gm_getcode20
MOV A,R2
JNZ gm_getcode20
SETB PSW.5
AJMP gm_getcode3
;
gm_getcode20: MOV A,R2
MOV @r1,a
INC r1
MOV A,R3
MOV @r1,a
INC r1
INC r5
;
gm_getcode3: djnz r7,gm_getcode4
AJMP gm_getcode_end
;
gm_getcode4: MOV a,r4
INC acc
ADD a,r6
MOV r4,a
MOV r0,a
MOV a,@r0
MOV r6,a
AJMP gm_getcode1
;
gm_getcode_end: MOV r0,#send_buf
MOV a,r5
MOV @r0,a
RET
gm_to57h: MOV r0,#send_buf
MOV a,@r0
CJNE a,#0ffh,gm_to57h_1
AJMP gm_to57h_2
;
gm_to57h_1: CLR c
SUBB a,#9
JC gm_to57h_2
MOV r0,#send_buf
MOV a,#8
MOV @r0,a
gm_to57h_2: MOV r7,#17
MOV r0,#send_buf
MOV r1,#info_end
gm_to57h_3: MOV a,@r0
INC r0
MOV @r1,a
INC r1
djnz r7,gm_to57h_3
RET
gm_buff:
gm_buff_1: MOV a,@r1
INC r1
MOV @r0,a
INC r0
djnz r7,gm_buff_1
RET
gm_to08h: MOV r0,#send_buf
MOV a,@r0
JNZ gm_to08h_2
MOV r0,#info_end
MOV a,@r0
CJNE a,#0ffh,gm_to08h_1
MOV r0,#send_buf
MOV a,#0
MOV @r0,a
RET
;
gm_to08h_1: MOV r7,#17
MOV r0,#send_buf
MOV r1,#info_end
ACALL gm_buff
RET
;
gm_to08h_2: MOV r6,a
CLR c
SUBB a,#9
JC gm_to08h_3
SETB psw.1
gm_to08h_3: MOV r0,#info_end
MOV a,@r0
CJNE a,#0ffh,gm_to08h_4
RET
gm_to08h_4: CJNE a,#0,gm_to08h_40
RET
gm_to08h_40: MOV r2,a
CLR C
RLC A
MOV R7,A
;
MOV a,r6
MOV r5,a
ACALL dsc_GETADD
INC r0
INC r0
MOV r1,#info_end+1
ACALL gm_buff
MOV a,r6
ADD a,r2
MOV r0,#send_buf
MOV @r0,a
CLR c
SUBB a,#9
JC gm_to08h_5
SETB psw.1
gm_to08h_5: RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -