ga600b.asm
来自「用于DSP中FLASH的擦除和编写程序」· 汇编 代码 · 共 2,997 行 · 第 1/5 页
ASM
2,997 行
;- - - - - - - - - - - - -
start35:
ldi r16,0
sts timl,r16
sts timh,r16
bst flag6,7
brts start37
call dispm
call dusdnote
jmp main00
start37:
call displ
;- - - - - - - - - - - - -
main00:
call hop
brts mian01
jmp main19
mian01:
call openirc
ldi r16,0x20
call delay
ldi r16,0x20
call delay
ldi r16,0x50
call delay
call clrmem
sbic pinf,2
rjmp main03
nop
sbic pinf,2
rjmp main03
sbic pinf,2
rjmp mian02
nop
sbic pinf,2
rjmp mian02
set ;首幅
bld flag1,7
ldi r16,0
sts note,r16
sts notev,r16
mian02:
call exdisclr
bst flag6,2
brts main02c
bst flag6,7
brts main02c
lds r16,countl
lds r17,counth
cpi r16,0
brne main02b
cpi r17,0
brne main02b
ldi zl,low(tabsp*2)
ldi zh,high(tabsp*2)
ldi r21,2
ldi r22,18
ldi r23,3
call dispcs
rjmp main02c
main02b:
ldi r21,2
ldi r22,18
call disp3db
main02c:
clr r16
sts countl,r16
sts counth,r16
sts countsl,r16
sts countsh,r16
sts errcnt,r16
main03:
clt
bld flag7,0
bld flag7,1
bld flag7,2
bld flag7,3
bld flag7,4
bld flag7,5
bst flag6,7
brts main05
bst flag6,4
brts main05
sbis pinf,2
call clrcs
main05:
ldi r16,0
sts sx,r16
ldi r16,250
sts dltmp,r16
sei
bst flag0,4
brts main06
call opend
main06:
clt
bld flag0,0
main07:
bst flag0,0
brts main08
sbic pinf,1
rjmp main07a
sbic pinf,0
rjmp main07a
; call uirad
; sbrc flag3,2
; rjmp main07a
; sbrc flag3,6
; rjmp main07a
rjmp main07
main07a:
rjmp main09
;- - - - - - - - - - - - - - - - - - - - - - -
main08:
lds r16,sx
inc r16
sts sx,r16
cpi r16,30
brne main08a
lds r16,countl
lds r17,counth
clr r18
clr r19
cp r16,r18
cpc r17,r19
breq main08a
call dispcnt
main08a:
lds r16,dltmp
dec r16
sts dltmp,r16
brne main06
call hop
brtc main08g
rjmp main05
main08g:
bst flag6,7
brts main08h
call dispbiz
; call dispcnt
call dispjin
main08h:
call closed
; call closeirc
clt
bld flag7,0
bld flag7,1
bld flag7,2
bld flag7,3
bld flag7,4
bld flag7,5
rjmp main00
;- - - - - - - - - - - - - - - - - - - -
main09:
ldi r16,0
sts twide,r16
sts excnt,r16
sts t2cnt,r16
sts mrl,r16
sts mrr,r16
sts mrl1,r16
sts mrl2,r16
sts mrr1,r16
sts mrr2,r16
sts flv,r16
sts mtb,r16
sts mtd,r16
sts wdadcnt,r16
ldi r16,0
sts ir_aw,r16
sts ir_bw,r16
sts ir_cw,r16
sts ir_dw,r16
sts ir_ap,r16
sts ir_bp,r16
sts ir_cp,r16
sts ir_dp,r16
sts ir_law,r16
sts ir_lbw,r16
sts ir_lcw,r16
sts ir_ldw,r16
sts ir_raw,r16
sts ir_rbw,r16
sts ir_rcw,r16
sts ir_rdw,r16
clt
bld flag2,3
bld flag2,2
bld flag2,1
bld flag2,0
call inton
main10:
bst flag1,3
brts main11
lds r16,twide;
cpi r16,250
brlo main10a
rjmp main08
main10a:
rjmp main10
main11:
clt
bld flag1,3
lds r16,wdadcnt
inc r16
sts wdadcnt,r16
main12:
call irad
;- - - - - -
main14:
sbrc flag2,0
rjmp main14b
sbrc flag3,0
rjmp main14a
sbrc flag3,4
rjmp main14a
rjmp main14u
main14a:
ldi r16,1
sts ir_aw,r16
set
bld flag2,0
clt
bld flag2,4
ldi r16,0
sts ir_la_suml,r16
sts ir_la_sumh,r16
sts ir_ra_suml,r16
sts ir_ra_sumh,r16
sts mtb,r16
sts mtd,r16
sts mtd_f1,r16
sts mtd_f2,r16
sts mtd_f3,r16
sts mtd_f4,r16
sts mtb_f1,r16
sts mtb_f2,r16
sts mtb_f3,r16
sts mtb_f4,r16
rjmp main14v
main14b:
sbrc flag3,0
rjmp main14c
sbrc flag3,4
rjmp main14c
rjmp main14w
main14c:
lds r16,ir_aw
inc r16
sts ir_aw,r16
sbrs flag3,0
rjmp main14d
lds r16,ir_law
inc r16
sts ir_law,r16
main14d:
sbrs flag3,4
rjmp main14e
lds r16,ir_raw
inc r16
sts ir_raw,r16
main14e:
sbrc flag2,4
rjmp main14g
sbrs flag3,0
rjmp main14f
sbrs flag3,4
rjmp main14f
set
bld flag2,4
lds r16,ir_aw
sts ir_ap,r16
main14f:
nop
main14g:
rjmp main14v
main14u:
rjmp main15
main14v:
ldi xl,low(ir_la)
ldi xh,high(ir_la)
lds r16,ir_law
clr r17
add xl,r16
adc xh,r17
lds r16,ad3v
st x,r16
cpi r16,200
brsh main14v1
lds r16,ir_la_suml
lds r17,ir_la_sumh
lds r18,ad3v
clr r19
add r16,r18
adc r17,r19
sts ir_la_suml,r16
sts ir_la_sumh,r17
main14v1:
ldi xl,low(ir_ra)
ldi xh,high(ir_ra)
lds r16,ir_raw
clr r17
add xl,r16
adc xh,r17
lds r16,ad4v
st x,r16
cpi r16,200
brsh main14v2
lds r16,ir_ra_suml
lds r17,ir_ra_sumh
lds r18,ad4v
clr r19
add r16,r18
adc r17,r19
sts ir_ra_suml,r16
sts ir_ra_sumh,r17
main14v2:
rjmp main15
main14w:
lds r16,ir_a_cnt
inc r16
sts ir_a_cnt,r16
;
rjmp main15
;- - - - - -
main15:
sbrc flag2,1
rjmp main15b
sbrc flag3,1
rjmp main15a
sbrc flag3,5
rjmp main15a
rjmp main15u
main15a:
ldi r16,1
sts ir_bw,r16
set
bld flag2,1
clt
bld flag2,5
ldi r16,0
sts ir_lb_suml,r16
sts ir_lb_sumh,r16
sts ir_rb_suml,r16
sts ir_rb_sumh,r16
rjmp main15v
main15b:
sbrc flag3,1
rjmp main15c
sbrc flag3,5
rjmp main15c
rjmp main15w
main15c:
lds r16,ir_bw
inc r16
sts ir_bw,r16
sbrs flag3,1
rjmp main15d
lds r16,ir_lbw
inc r16
sts ir_lbw,r16
main15d:
sbrs flag3,5
rjmp main15e
lds r16,ir_rbw
inc r16
sts ir_rbw,r16
main15e:
sbrc flag2,5
rjmp main15g
sbrs flag3,1
rjmp main15f
sbrs flag3,5
rjmp main15f
set
bld flag2,5
lds r16,ir_bw
sts ir_bp,r16
main15f:
nop
main15g:
rjmp main15v
main15u:
rjmp main16
main15v:
ldi xl,low(ir_lb)
ldi xh,high(ir_lb)
lds r16,ir_lbw
clr r17
add xl,r16
adc xh,r17
lds r16,ad2v
st x,r16
cpi r16,200
brsh main15v1
lds r16,ir_lb_suml
lds r17,ir_lb_sumh
lds r18,ad2v
clr r19
add r16,r18
adc r17,r19
sts ir_lb_suml,r16
sts ir_lb_sumh,r17
main15v1:
ldi xl,low(ir_rb)
ldi xh,high(ir_rb)
lds r16,ir_rbw
clr r17
add xl,r16
adc xh,r17
lds r16,ad5v
st x,r16
cpi r16,200
brsh main15v2
lds r16,ir_rb_suml
lds r17,ir_rb_sumh
lds r18,ad5v
clr r19
add r16,r18
adc r17,r19
sts ir_rb_suml,r16
sts ir_rb_sumh,r17
main15v2:
ldi xl,low(fl_a)
ldi xh,high(fl_a)
lds r16,ir_bw
clr r17
add xl,r16
adc xh,r17
lds r16,ad8v
st x,r16
cpi r16,60
brlo main15v3
lds r16,flv
inc r16
sts flv,r16
main15v3:
rjmp main16
main15w:
lds r16,ir_b_cnt
inc r16
sts ir_b_cnt,r16
;
rjmp main16
;- - - - - -
main16:
sbrc flag2,3
rjmp main16b
sbrc flag3,3
rjmp main16a
sbrc flag3,7
rjmp main16a
rjmp main16u
main16a:
ldi r16,1
sts ir_dw,r16
set
bld flag2,3
clt
bld flag2,7
ldi r16,0
sts t2cnt,r16
ldi r16,0
sts ir_ld_suml,r16
sts ir_ld_sumh,r16
sts ir_rd_suml,r16
sts ir_rd_sumh,r16
sts ir_lc_suml,r16
sts ir_lc_sumh,r16
sts ir_rc_suml,r16
sts ir_rc_sumh,r16
sts mrl,r16
sts mrr,r16
sts mrl1,r16
sts mrl2,r16
sts mrr1,r16
sts mrr2,r16
sts mrl_f1,r16
sts mrl_f2,r16
sts mrl_f3,r16
sts mrl_f4,r16
sts mrr_f1,r16
sts mrr_f2,r16
sts mrr_f3,r16
sts mrr_f4,r16
sts mrl1_f1,r16
sts mrl1_f2,r16
sts mrl1_f3,r16
sts mrl1_f4,r16
sts mrr1_f1,r16
sts mrr1_f2,r16
sts mrr1_f3,r16
sts mrr1_f4,r16
sts mrl2_f1,r16
sts mrl2_f2,r16
sts mrl2_f3,r16
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?