ga600b.asm
来自「用于DSP中FLASH的擦除和编写程序」· 汇编 代码 · 共 2,997 行 · 第 1/5 页
ASM
2,997 行
sts mrl2_f4,r16
sts mrr2_f1,r16
sts mrr2_f2,r16
sts mrr2_f3,r16
sts mrr2_f4,r16
rjmp main16u
main16b:
sbrc flag3,3
rjmp main16c
sbrc flag3,7
rjmp main16c
rjmp main16w
main16c:
lds r16,ir_dw
inc r16
sts ir_dw,r16
sbrs flag3,3
rjmp main16d
lds r16,ir_ldw
inc r16
sts ir_ldw,r16
main16d:
sbrs flag3,7
rjmp main16e
lds r16,ir_rdw
inc r16
sts ir_rdw,r16
main16e:
sbrc flag2,7
rjmp main16g
sbrs flag3,3
rjmp main16f
sbrs flag3,7
rjmp main16f
set
bld flag2,7
lds r16,ir_dw
sts ir_dp,r16
main16f:
nop
main16g:
sbrs flag3,2
rjmp main16h
lds r16,ir_lcw
inc r16
sts ir_lcw,r16
main16h:
sbrs flag3,6
rjmp main16i
lds r16,ir_rcw
inc r16
sts ir_rcw,r16
main16i:
rjmp main16v
main16u:
rjmp main10
main16v:
ldi xl,low(ir_ld)
ldi xh,high(ir_ld)
lds r16,ir_ldw
clr r17
add xl,r16
adc xh,r17
lds r16,ad0v
st x,r16
cpi r16,200
brsh main16v1
lds r16,ir_ld_suml
lds r17,ir_ld_sumh
lds r18,ad0v
clr r19
add r16,r18
adc r17,r19
sts ir_ld_suml,r16
sts ir_ld_sumh,r17
main16v1:
ldi xl,low(ir_rd)
ldi xh,high(ir_rd)
lds r16,ir_rdw
clr r17
add xl,r16
adc xh,r17
lds r16,ad7v
st x,r16
cpi r16,200
brsh main16v2
lds r16,ir_rd_suml
lds r17,ir_rd_sumh
lds r18,ad7v
clr r19
add r16,r18
adc r17,r19
sts ir_rd_suml,r16
sts ir_rd_sumh,r17
main16v2:
ldi xl,low(ir_lc)
ldi xh,high(ir_lc)
lds r16,ir_lcw
clr r1
add xl,r16
adc xh,r17
lds r16,ad1v
st x,r16
cpi r16,200
brsh main16v3
lds r16,ir_lc_suml
lds r17,ir_lc_sumh
lds r18,ad1v
clr r19
add r16,r18
adc r17,r19
sts ir_lc_suml,r16
sts ir_lc_sumh,r17
main16v3:
ldi xl,low(ir_rc)
ldi xh,high(ir_rc)
lds r16,ir_rcw
clr r17
add xl,r16
adc xh,r17
lds r16,ad6v
st x,r16
cpi r16,200
brsh main16v4
lds r16,ir_rc_suml
lds r17,ir_rc_sumh
lds r18,ad6v
clr r19
add r16,r18
adc r17,r19
sts ir_rc_suml,r16
sts ir_rc_sumh,r17
main16v4:
rjmp main10
main16w:
lds r16,ir_d_cnt
inc r16
sts ir_d_cnt,r16
lds r16,ir_dw
cpi r16,3
brsh main16w1
rjmp main10
main16w1:
rjmp main33
call eirad
bst flag3,0
brtc main16w2
rjmp main10
main16w2:
bst flag3,7
brtc main16w3
rjmp main10
main16w3:
rjmp main33
;- - - - - - - - - - - - - - - - - - - - - - - - - - - -
main33:
call intoff
call usdavg
call usdcirm
call usdcirh
call qmrsum
lds r16,ir_ldw
sts cwide,r16
lds r16,ir_ldw
sts cwidel,r16
lds r16,ir_rdw
sts cwider,r16
lds r16,ir_dp
sts pitch,r16
main34:
lds r16,cwidel
lds r17,cwider
cp r16,r17
brsh main34a
lds r16,cwider
main34a:
sts cwide,r16
lds r16,cwidel
lds r17,cwider
cp r16,r17
brsh main34b
lds r16,cwider
lds r17,cwidel
main34b:
sub r16,r17
sts canb,r16
call subchang
lds r17,chang
lds r16,cwide
sub r16,r17
sts wide,r16
lds r16,cwidel
sub r16,r17
sts widel,r16
lds r16,cwider
sub r16,r17
sts wider,r16
;- - - - - - - - - - -
main35:
lds r16,detect
cpi r16,0
brne main35a
rjmp main36
main35a:
cpi r16,1
brne main35b
jmp jian
main35b:
cpi r16,2
brne main35c
jmp jian2
main35c:
cpi r16,3
brne main35d
jmp jian3
main35d:
cpi r16,4
brne main35e
jmp jian
main35e:
cpi r16,5
brne main35f
jmp jian
main35f:
cpi r16,6
brne main35g
jmp jian
main35g:
cpi r16,7
brne main35h
jmp jian
main35h:
cpi r16,8
brne main35i
jmp jian
main35i:
cpi r16,9
brne main35j
jmp jian
main35j:
ldi r16,0
sts detect,r16
main36:
lds r16,cwidel
lds r17,cwider
cpi r16,10
brsh main36a
ldi r16,3
sts errdisp,r16
jmp main60
main36a:
cpi r17,10
brsh main36b
ldi r16,3
sts errdisp,r16
jmp main60
main36b:
;- - - - - 残币检测
main38:
bst flag7,0
brtc main38a
rjmp main39
main38a:
bst flag6,6
brtc main38b
rjmp main39
main38b:
bst flag6,1
brts main38c
rjmp main39
main38c:
lds r16,pitch
cpi r16,10
brlo main38f
cpi r16,20
brlo main38g
cpi r16,60
brlo main38h
ldi r16,10
sts errdisp,r16
jmp main60
main38f:
lds r16,canb
cpi r16,8
brlo main38f1
ldi r16,9
sts errdisp,r16
jmp main60
main38f1:
rjmp main39
main38g:
lds r16,canb
cpi r16,15
brlo main38g1
ldi r16,9
sts errdisp,r16
jmp main60
main38g1:
rjmp main39
main38h:
lds r16,canb
cpi r16,20
brlo main38h1
ldi r16,9
sts errdisp,r16
jmp main60
main38h1:
rjmp main39
;- - - -
main39:
rjmp main39a
lds r16,flv
cpi r16,10
brlo main39a
ldi r16,8
sts errdisp,r16
jmp main60
main39a:
; lbra ga64
; ldab speed
bst flag6,6
brtc main40
clt
bld flag7,1
ldi r16,0x30 ;
call putc
jmp ga64
main40:
lds r16,ctr
cpi r16,0
brne main40a
jmp usdchk
main40a:
cpi r16,1
brne main40b
jmp eurchk
main40b:
cpi r16,2
brne main40c
jmp jpychk
main40c:
cpi r16,3
brne main40d
jmp gbpchk
main40d:
cpi r16,4
brne main40e
jmp hkdchk
main40e:
cpi r16,5
brne main40f
jmp cnychk
main40f:
ldi r16,0
sts ctr,r16
jmp usdchk
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
eurchk:
;ctr=1
clr r16
sts note,r16
sts notev,r16
bst flag7,1
brtc eurchk1
rjmp eurchk90
eurchk1:
bst flag7,0
brtc eurchk2
rjmp eurchk80
eurchk2:
lds r16,pitch
cpi r16,35
brlo eurchk3
rjmp eurchk70
eurchk3:
bst flag1,7
brtc eurchk4
lds r16,wide
sts widef,r16
clt
bld flag1,7
bld flag1,6
eurchk4:
rjmp eurchkwd
eurchkfl:
lds r15,flv
cpi r16,3
brlo eurchkfl1
ldi r16,8
sts errdisp,r16
rjmp eurerr
eurchkfl1:
eurchkwd:
lds r16,wide
cpi r16,80
brlo eurchkwd1
ldi r16,1
sts errdisp,r16
rjmp eurerr
eurchkwd1:
cpi r16,76
brlo eurchkwd2
ldi r16,0
sts errdisp,r16
rjmp eurerr
eurchkwd2:
cpi r16,40
brsh eurchkwd3
ldi r16,0
sts errdisp,r16
rjmp eurerr
eurchkwd3:
lds r16,wide
lds r17,widef
subi r17,(-8)
cp r16,r17
brlo eurchkwd4
ldi r16,0
sts errdisp,r16
rjmp eurerr
eurchkwd4:
lds r16,wide
lds r17,widef
subi r17,7
cp r16,r17
brsh eurchkwd5
ldi r16,0
sts errdisp,r16
rjmp eurerr
eurchkwd5:
eurchkmg:
lds r16,sbm
cpi r16,6
brlo eurchkmg4
rjmp eurchkmg19
eurchkmg4:
lds r16,mtd
cpi r16,50
brsh eurchkmg5
ldi r16,4
sts errdisp,r16
rjmp eurerr
eurchkmg5:
lds r16,mrsuml
lds r17,mrsumh
ldi r18,2
ldi r19,0
cp r16,r18
cpc r17,r19
brsh eurchkmg6
ldi r16,4
sts errdisp,r16
rjmp eurerr
eurchkmg6:
nop
eurchkmg10:
lds r16,mrl
cpi r16,30
brlo eurchkmg15
lds r16,mrr
cpi r16,30
brlo eurchkmg15
lds r16,mrl1
cpi r16,30
brlo eurchkmg15
lds r16,mrr1
cpi r16,30
brlo eurchkmg15
lds r16,mrl2
cpi r16,30
brlo eurchkmg15
lds r16,mrl2
cpi r16,30
brlo eurchkmg15
ldi r16,4
sts errdisp,r16
rjmp eurerr
eurchkmg15:
nop
eurchkmg16:
clr r20
lds r16,mrl
cpi r16,40
brlo eurchkmg16a1
inc r20
eurchkmg16a1:
lds r16,mrr
cpi r16,40
brlo eurchkmg16a2
inc r20
eurchkmg16a2:
lds r16,mrl1
cpi r16,40
brlo eurchkmg16a3
inc r20
eurchkmg16a3:
lds r16,mrr1
cpi r16,40
brlo eurchkmg16a4
inc r20
eurchkmg16a4:
lds r16,mrl2
cpi r16,40
brlo eurchkmg16a5
inc r20
eurchkmg16a5:
lds r16,mrl2
cpi r16,40
brlo eurchkmg16a6
inc r20
eurchkmg16a6:
cpi r20,4
brlo eurchkmg16a7
ldi r16,4
sts errdisp,r16
rjmp eurerr
eurchkmg16a7:
nop
eurchkmg19:
jmp ga65
;- - - - -
eurchk70:
eurchk80:
eurchk90:
eurexit:
lds r16,0x30 ;
call putc
jmp ga65
;- - - - -
eurerr:
jmp main60
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
jpychk:
;ctr=2
clr r16
sts note,r16
sts notev,r16
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?