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