boot.inc

来自「用于DSP中FLASH的擦除和编写程序」· INC 代码 · 共 1,682 行 · 第 1/3 页

INC
1,682
字号
BOOT_OUTI4:
              SBI PORTC,LCD_CS4
              SBI PORTC,LCD_E
              CBI PORTC,LCD_RS
              CBI PORTC,LCD_RW
              OUT PORTA,R16
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_E
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_CS4

              RCALL BOOT_DLLCD     
              RET

;- - - - - - - - - - - - - - - - -
BOOT_OUTD:
              SBI PORTC,LCD_CS1
              SBI PORTC,LCD_CS2
              SBI PORTC,LCD_CS3
              SBI PORTC,LCD_CS4

              SBI PORTC,LCD_E
              SBI PORTC,LCD_RS
              CBI PORTC,LCD_RW
              OUT PORTA,R16

              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_E
              RCALL BOOT_DLLCD

              CBI PORTC,LCD_CS1
              CBI PORTC,LCD_CS2
              CBI PORTC,LCD_CS3
              CBI PORTC,LCD_CS4
              RCALL BOOT_DLLCD    

              RET       
       
;- - - - - - - - - - - - - - - - -
BOOT_OUTD1:
              SBI PORTC,LCD_CS1
              SBI PORTC,LCD_E
              SBI PORTC,LCD_RS
              CBI PORTC,LCD_RW
              OUT PORTA,R16
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_E
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_CS1
              RCALL BOOT_DLLCD     

              RET

;- - - - - - - - - - - - - - - - -
BOOT_OUTD2:
              SBI PORTC,LCD_CS2
              SBI PORTC,LCD_E
              SBI PORTC,LCD_RS
              CBI PORTC,LCD_RW
              OUT PORTA,R16
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_E
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_CS2
              RCALL BOOT_DLLCD     

              RET

;- - - - - - - - - - - - - - - - -
BOOT_OUTD3:
              SBI PORTC,LCD_CS3
              SBI PORTC,LCD_E
              SBI PORTC,LCD_RS
              CBI PORTC,LCD_RW
              OUT PORTA,R16
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_E
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_CS3
              RCALL BOOT_DLLCD     
               
              RET

;- - - - - - - - - - - - - - - - -
BOOT_OUTD4:
              SBI PORTC,LCD_CS4
              SBI PORTC,LCD_E
              SBI PORTC,LCD_RS
              CBI PORTC,LCD_RW
              OUT PORTA,R16
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_E
              RCALL BOOT_DLLCD     
              CBI PORTC,LCD_CS4

              RCALL BOOT_DLLCD     

              RET

;- - - - - - - - - - - - - - - - -
BOOT_DLLCDCS:
BOOT_DLLCD:
              NOP
			  NOP
			  NOP
			  NOP 

			  NOP
			  NOP 
			  NOP
			  NOP 

              RET   

;- - - - - - - - - - - - - - - - -
BOOT_LCDINIT:   
              LDI R16,0X3F
              RCALL BOOT_OUTI
            
              RCALL BOOT_DLLCD
              RCALL BOOT_DLLCD

              LDI R16,0XC0
              RCALL BOOT_OUTI

              RCALL BOOT_DLLCD
              RCALL BOOT_DLLCD
            
              LDI R16,0B10111000
              RCALL BOOT_OUTI

              RCALL BOOT_DLLCD
              RCALL BOOT_DLLCD
            
              LDI R16,0B01000000
              RCALL BOOT_OUTI

              RCALL BOOT_DLLCD
              RCALL BOOT_DLLCD
            
              RET        

;- - - - - - - - - - - - - - - - -
BOOT_DI_OFF:
              LDI R17,0B10111000
              LDI R23,8
BOOT_DI_OFF1:
              MOV R16,R17  
              RCALL BOOT_OUTI
            
              LDI  R16,0B01000000
              RCALL BOOT_OUTI
            
              LDI R22,64
BOOT_DI_OFF2:            
              LDI R16,0X0
              RCALL BOOT_OUTD
			  DEC R22 
              BRNE BOOT_DI_OFF2
            
              INC R17

              DEC R23
              BRNE BOOT_DI_OFF1
            
              RET


;- - - - - - - - - - - - - - - - -
BOOT_DI_ON:
              LDI R17,0B10111000
              LDI R23,8
BOOT_DI_ON1:
              MOV R16,R17  
              RCALL BOOT_OUTI
            
              LDI  R16,0B01000000
              RCALL BOOT_OUTI
            
              LDI R22,64
BOOT_DI_ON2:            
              LDI R16,0XFF
              RCALL BOOT_OUTD
			  DEC R22 
              BRNE BOOT_DI_ON2
            
              INC R17

              DEC R23
              BRNE BOOT_DI_ON1
            
              RET
;---------------------------------------
;Z
;R21 D_X
;R22 D_Y
;R23 CNT
BOOT_DISPCS:  LDI  R16,1
              OUT  RAMPZ,R16
              STS D_X,R21
			  STS D_Y,R22


              LDI R16,16
			  STS D_B ,R16
BOOT_DISPCS1:   
              LDS R16,D_X
			  STS D_DX,R16

              LDS R16,D_Y
              ANDI R16,0B00000111
              STS D_DY,R16

              LDS R16,D_Y
              LSR R16
              LSR R16
              LSR R16
              INC R16
              STS D_DZ,R16


              ELPM R16,Z+

              PUSH ZL
			  PUSH ZH 
              PUSH R23

              CLR R17
              CLC
              ROL R16
              ROL R17

              CLC
              ROL R16
              ROL R17

              CLC
              ROL R16
              ROL R17

              CLC
              ROL R16
              ROL R17

              CLC
              ROL R16
              ROL R17
			   
              LDI ZL,LOW(BOOT_TABCHS*2)
			  LDI ZH,HIGH(BOOT_TABCHS*2)
			  ADD ZL,R16
			  ADC ZH,R17
			   
              RCALL BOOT_DISPCC
			  POP R23
              POP ZH
              POP ZL
			                   

              LDS R16,D_Y
			  INC R16
			  INC R16
              STS D_Y,R16
  
			  DEC R23
              BRNE BOOT_DISPCS1
              LDI  R16,0
              OUT  RAMPZ,R16
              RET 
;- - - - - - - - - - - - - - - - - - - - - - - - -
;D_DX   X		 0-7
;D_DY	Y		 0-7
;D_DZ   Z        1-4										 
;D_C		COLOR
;D_B		BLACK 8,16
;Z
;            LDI ZH,HIGH(BOOT_TABCC*2)
;            LDI ZL,LOW(BOOT_TABCC*2)
;            LDI R16,1
;		     STS D_DX,R16
;;           STS D_DY,R16
;			 LDI R16,4
;			 STS D_DZ,R16
;			 LDI R16,16
;			 STS D_B,R16
;	         RCALL BOOT_DISPCC


BOOT_DISPCC:  LDS R16,D_DX
			  ORI R16,0B10111000
			  STS D_DX,R16

			  LDS R16,D_DY
			  LSL R16
			  LSL R16
			  LSL R16
              ORI R16,0B01000000
			  STS D_DY,R16
BOOT_DISPCC10:               
              LDS R16,D_DX
              LDS R17,D_DZ
              CPI R17,1
              BRNE  BOOT_DISPCC11
              RCALL  BOOT_OUTI1
              RJMP BOOT_DISPCC20
BOOT_DISPCC11:
              CPI R17,2
              BRNE  BOOT_DISPCC12
              RCALL BOOT_OUTI2
              RJMP BOOT_DISPCC20
BOOT_DISPCC12: 
              CPI R17,3
              BRNE  BOOT_DISPCC13
              RCALL  BOOT_OUTI3
              RJMP BOOT_DISPCC20
BOOT_DISPCC13:
              CPI R17,4
              BRNE  BOOT_DISPCC14
              RCALL  BOOT_OUTI4
              RJMP BOOT_DISPCC20
BOOT_DISPCC14: 
              RJMP BOOT_DISPCC99
      
BOOT_DISPCC20:
              LDS R16,D_DY
              LDS R17,D_DZ
              CPI R17,1
              BRNE  BOOT_DISPCC21
              RCALL   BOOT_OUTI1
              RJMP BOOT_DISPCC30
BOOT_DISPCC21: 
              CPI R17,2
              BRNE BOOT_DISPCC22
              RCALL BOOT_OUTI2
              RJMP BOOT_DISPCC30
BOOT_DISPCC22: 
              CPI R17,3
              BRNE  BOOT_DISPCC23
              RCALL BOOT_OUTI3
              RJMP BOOT_DISPCC30
BOOT_DISPCC23:
              CPI R17,4
              BRNE  BOOT_DISPCC24
              RCALL BOOT_OUTI4
              RJMP BOOT_DISPCC30
BOOT_DISPCC24: 
              RJMP BOOT_DISPCC99

BOOT_DISPCC30:  
              LDS R23,D_B
BOOT_DISPCC31:  
              ELPM R16,Z+
  		     
			  LDS R17,D_C
              CPI R17,1
              BRNE  BOOT_DISPCC32
              COM R16
BOOT_DISPCC32:   
              LDS R17,D_DZ

              CPI R17,1
              BRNE  BOOT_DISPCC33
              RCALL BOOT_OUTD1
              RJMP BOOT_DISPCC39
BOOT_DISPCC33:
              CPI R17,2
              BRNE  BOOT_DISPCC34
              RCALL BOOT_OUTD2
              RJMP BOOT_DISPCC39
BOOT_DISPCC34: 
              CPI R17,3
              BRNE  BOOT_DISPCC35
              RCALL BOOT_OUTD3
              RJMP BOOT_DISPCC39
BOOT_DISPCC35: 
              CPI R17,4
              BRNE  BOOT_DISPCC39
              RCALL BOOT_OUTD4
              RJMP BOOT_DISPCC39
BOOT_DISPCC39:     
              DEC R23 
              RCALL BOOT_DLLCDCS  
              BRNE BOOT_DISPCC31
BOOT_DISPCC40:
              LDS R16,D_DX
			  INC R16
			  STS  D_DX,R16
              CPI R16,0B10111110
              BRNE BOOT_DISPCC41
              LDI R16,0B10111000
			  STS D_DX,R16
BOOT_DISPCC41:  
              LDS R16,D_DX
			  LDS R17,D_DZ  
              CPI R17,1
              BRNE  BOOT_DISPCC42
              RCALL BOOT_OUTI1
              RJMP BOOT_DISPCC50
BOOT_DISPCC42: 
              CPI R17,2
              BRNE  BOOT_DISPCC43
              RCALL BOOT_OUTI2
              RJMP  BOOT_DISPCC50
BOOT_DISPCC43: 
              CPI R17,3
              BRNE  BOOT_DISPCC44
              RCALL  BOOT_OUTI3
              RJMP  BOOT_DISPCC50
BOOT_DISPCC44:
              CPI R17,4
              BRNE  BOOT_DISPCC45
              RCALL BOOT_OUTI4
              RJMP BOOT_DISPCC50
BOOT_DISPCC45:  
              RJMP BOOT_DISPCC99
BOOT_DISPCC50:
              LDS R16,D_DY
              LDS R17,D_DZ 
              CPI R17,1
              BRNE  BOOT_DISPCC51
              RCALL BOOT_OUTI1
              RJMP BOOT_DISPCC60
BOOT_DISPCC51: 
              CPI R17,2
              BRNE  BOOT_DISPCC52
              RCALL BOOT_OUTI2
              RJMP BOOT_DISPCC60
BOOT_DISPCC52: 
              CPI R17,3
              BRNE  BOOT_DISPCC53
              RCALL BOOT_OUTI3
              RJMP BOOT_DISPCC60
BOOT_DISPCC53: 
              CPI R17,4
              BRNE  BOOT_DISPCC54
              RCALL  BOOT_OUTI4
              RJMP BOOT_DISPCC60
BOOT_DISPCC54: 
              RJMP BOOT_DISPCC99
BOOT_DISPCC60:
              LDS R23,D_B
BOOT_DISPCC61: 
              ELPM R16,Z+
              LDS R17,D_C 
              CPI R17,1
              BRNE BOOT_DISPCC62
              COM R16
BOOT_DISPCC62:
              LDS R17,D_DZ
              CPI R17,1
              BRNE  BOOT_DISPCC63
              RCALL BOOT_OUTD1
              RJMP  BOOT_DISPCC69
BOOT_DISPCC63: 
              CPI R17,2
              BRNE  BOOT_DISPCC64
              RCALL BOOT_OUTD2
              RJMP BOOT_DISPCC69
BOOT_DISPCC64: 
              CPI R17,3
              BRNE  BOOT_DISPCC65
              RCALL BOOT_OUTD3
              RJMP BOOT_DISPCC69
BOOT_DISPCC65: 
              CPI R17,4
              BRNE  BOOT_DISPCC69
              RCALL BOOT_OUTD4
              RJMP BOOT_DISPCC69
BOOT_DISPCC69:
              DEC R23
              RCALL BOOT_DLLCDCS  
              BRNE BOOT_DISPCC61
BOOT_DISPCC99:
              RCALL BOOT_DLLCDCS  
              RET              
;---------------------------------
;Z
;R21 D_X
;R22 D_Y
;R23 CNT
BOOT_DISPRES: STS D_X,R21
			  STS D_Y,R22

              LDI R16,8
			  STS D_B ,R16
BOOT_DISPRES1:   
              LDS R16,D_X
			  STS D_DX,R16

              LDS R16,D_Y
              ANDI R16,0B00000111
              STS D_DY,R16

              LDS R16,D_Y
              LSR R16
              LSR R16
              LSR R16
              INC R16
              STS D_DZ,R16

              LD  R16,Z+

              PUSH ZL
			  PUSH ZH 
              PUSH R23

              CLR R17
              CLC
              ROL R16
              ROL R17

              CLC
              ROL R16
              ROL R17

              CLC
              ROL R16
              ROL R17

              CLC
              ROL R16
              ROL R17

 			   
              LDI ZL,LOW(BOOT_TABEN*2)
			  LDI ZH,HIGH(BOOT_TABEN*2)
			  ADD ZL,R16
			  ADC ZH,R17
			  
			  LDI  R16,1
              OUT  RAMPZ,R16
              RCALL BOOT_DISPCC
              LDI  R16,0
              OUT  RAMPZ,R16
              
			  POP R23
              POP ZH
              POP ZL
			                   

              LDS R16,D_Y
			  INC R16
              STS D_Y,R16
  
			  DEC R23
              BRNE BOOT_DISPRES1
              RET 
;---------------------------------
;Z
;R21 D_X
;R22 D_Y
;R23 CNT
BOOT_DISPES:  LDI  R16,1
              OUT  RAMPZ,R16
              STS D_X,R21
			  STS D_Y,R22

              LDI R16,8
			  STS D_B ,R16
BOOT_DISPES1:   
              LDS R16,D_X

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?