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 + -
显示快捷键?