📄 lvd.asm
字号:
;;==============================================
;;==============================================
chip W65C02S ; Define chip : ST2024C base on 65c02.
pw 128 ; .LST's page width = 128 characters.
case on ; Don't care Upper-case or lower-case.
externs on ; Make all labels public.
;;==============================================
;;==============================================
.include ST2203U.DEF
.include RAM_ext.inc
.include CONSTANT.inc
.include macro.inc
.include Disp.inc
;;==============================================
.include Main.inc
;;==============================================
;;==============================================
.Global F_Test_Bonding
.Global F_Lvd00
.Global F_Lvd01
.Global F_Lvd10
.Global F_Lvd11
.Global F_CaculateOneBankCkeckSum
.Global F_GetPictuieNum
.Global F_CheckPictuieTrueOrFalse
.Global F_JudgeTabPicNum
.Global F_JudgeTabCheckSum
.Global F_Caculate8K_CkeckSum
.Global F_GetSize
.Global F_GetPicInformation
.Global F_Get_ImageInf
.Global F_Get_Ver
;;==============================================
;;==============================================
PS2_6500 .SECTION
;;==============================================
F_Test_Bonding_WriteSub:
LDA R_Disp_Mosaic_Flag0
STA R_Des_Add_L
LDA R_Disp_Mosaic_Flag0+1
STA R_Des_Add_H
JSR F_FlashOneDataWrite
RTS
;;==============================================
F_Test_Bonding_WriteSub_1:
LDA R_Disp_Mosaic_Flag0+2
STA R_Des_Add_L
LDA R_Disp_Mosaic_Flag0+3
STA R_Des_Add_H
JSR F_FlashOneDataWrite
RTS
;;==============================================
F_Test_Bonding_Write55H:
LDA #055H
STA <R_TempL
STZ R_Source_Add_Bank_L
STZ R_Source_Add_Bank_H
LDA #<R_TempL
STA R_Source_Add_L
LDA #>R_TempL
STA R_Source_Add_H
RTS
;;==============================================
F_Test_Bonding_WriteAAH:
LDA #0AAH
STA <R_TempL
STZ R_Source_Add_Bank_L
STZ R_Source_Add_Bank_H
LDA #<R_TempL
STA R_Source_Add_L
LDA #>R_TempL
STA R_Source_Add_H
RTS
;;==============================================
F_Test_Bonding_Sub0:
LDA #055H
STA <R_TempL
LDA R_Disp_Mosaic_Flag0+0
STA R_Blk_Num_L
LDA R_Disp_Mosaic_Flag0+1
STA R_Blk_Num_H
LDA #<8000H
STA R_Des_Add_L
LDA #>8000H
STA R_Des_Add_H
STZ R_Source_Add_Bank_L
STZ R_Source_Add_Bank_H
RTS
;;==============================================
F_Test_Bonding_Sub1:
LDA #<R_TempL
STA R_Source_Add_L
LDA #>R_TempL
STA R_Source_Add_H
JSR F_FlashOneDataWrite
RTS
;;==============================================
F_Test_Bonding_Sub2:
LDA #0AAH
STA <R_TempL
LDA R_Disp_Mosaic_Flag0+2
STA R_Blk_Num_L
LDA R_Disp_Mosaic_Flag0+3
STA R_Blk_Num_H
LDA #<8001H
STA R_Des_Add_L
LDA #>8001H
STA R_Des_Add_H
STZ R_Source_Add_Bank_L
STZ R_Source_Add_Bank_H
RTS
;;==============================================
F_Test_Bonding_Sub3:
LDA R_Disp_Mosaic_Flag0+0
STA R_Blk_Num_L
LDA R_Disp_Mosaic_Flag0+1
STA R_Blk_Num_H
LDA #<8000H
STA R_Source_Add_L
LDA #>8000H
STA R_Source_Add_H
STZ R_Des_Add_Bank_L
STZ R_Des_Add_Bank_H
RTS
;;==============================================
F_Test_Bonding_Sub4:
LDA #<R_TempL
STA R_Des_Add_L
LDA #>R_TempL
STA R_Des_Add_H
JSR F_FlashOneDataRead
LDA <R_TempL
RTS
;;==============================================
F_Test_Bonding_Sub5:
LDA R_Disp_Mosaic_Flag0+2
STA R_Blk_Num_L
LDA R_Disp_Mosaic_Flag0+3
STA R_Blk_Num_H
LDA #<8001H
STA R_Source_Add_L
LDA #>8001H
STA R_Source_Add_H
STZ R_Des_Add_Bank_L
STZ R_Des_Add_Bank_H
RTS
;;=============================================
F_Test_Bonding:
BBR1 <R_SysFlag2,L_Test_Bonding_CS2
L_Test_Bonding_CS0:
.IF PROGRAM_VERSION=MASKROM_VERSION
JMP L_Test_Bonding_Error
.ENDIF ;MaskUpDate=0
JMP L_Test_Bonding_CS0_Countion
L_Test_Bonding_CS2:
LDA #04H
STA R_Blk_Num_L
STZ R_Blk_Num_H
JSR F_EraseFlash_32K
; JSR F_BlockErase
STZ R_Disp_Mosaic_Flag0+0
LDA #80H
STA R_Disp_Mosaic_Flag0+1
LDA #01H
STA R_Disp_Mosaic_Flag0+2
LDA #80H
STA R_Disp_Mosaic_Flag0+3
STZ R_Disp_Mosaic_Flag0+4
L_Test_Bonding:
JSR F_Test_Bonding_Write55H
LDA #<04H
STA R_Blk_Num_L
LDA #>00H
STA R_Blk_Num_H
JSR F_Test_Bonding_WriteSub
JSR F_Test_Bonding_WriteAAH
LDA #<04H
STA R_Blk_Num_L
LDA #>00H
STA R_Blk_Num_H
JSR F_Test_Bonding_WriteSub_1
LDA #<04H
STA R_Blk_Num_L
LDA #>00H
STA R_Blk_Num_H
LDA R_Disp_Mosaic_Flag0
STA R_Source_Add_L
LDA R_Disp_Mosaic_Flag0+1
STA R_Source_Add_H
STZ R_Des_Add_Bank_L
STZ R_Des_Add_Bank_H
LDA #<R_TempL
STA R_Des_Add_L
LDA #>R_TempL
STA R_Des_Add_H
JSR F_FlashOneDataRead
LDA <R_TempL
CMP #055H
BEQ L_Test_Bonding_1
JMP L_Test_Bonding_Error
L_Test_Bonding_1:
LDA #<04H
STA R_Blk_Num_L
LDA #>00H
STA R_Blk_Num_H
LDA R_Disp_Mosaic_Flag0+2
STA R_Source_Add_L
LDA R_Disp_Mosaic_Flag0+3
STA R_Source_Add_H
STZ R_Des_Add_Bank_L
STZ R_Des_Add_Bank_H
LDA #<R_TempL
STA R_Des_Add_L
LDA #>R_TempL
STA R_Des_Add_H
JSR F_FlashOneDataRead
LDA <R_TempL
CMP #0AAH
BEQ L_Test_Bonding_2
JMP L_Test_Bonding_Error
L_Test_Bonding_2:
INC R_Disp_Mosaic_Flag0+4
LDA R_Disp_Mosaic_Flag0+4
CMP #15
BCS L_Test_Bonding_3
CLC
ROL R_Disp_Mosaic_Flag0+2
ROL R_Disp_Mosaic_Flag0+3
LDA R_Disp_Mosaic_Flag0+3
ORA #80H
STA R_Disp_Mosaic_Flag0+3
LDA R_Disp_Mosaic_Flag0+3
STA R_Disp_Mosaic_Flag0+1
LDA R_Disp_Mosaic_Flag0+2
STA R_Disp_Mosaic_Flag0
LDA R_Disp_Mosaic_Flag0+2
ORA #01H
STA R_Disp_Mosaic_Flag0+2
JMP L_Test_Bonding
L_Test_Bonding_3:
LDA #04H
STA R_Blk_Num_L
LDA #00H
STA R_Blk_Num_H
JSR F_EraseFlash_32K
; JSR F_BlockErase
L_Test_Bonding_4:
LDA #05H
STA R_Blk_Num_L
LDA #00H
STA R_Blk_Num_H
JSR F_EraseFlash_32K
; JSR F_BlockErase
L_Test_Bonding_5:
LDA #04H
STA R_Disp_Mosaic_Flag0
LDA #00H
STA R_Disp_Mosaic_Flag0+1
LDA #05H
STA R_Disp_Mosaic_Flag0+2
LDA #00H
STA R_Disp_Mosaic_Flag0+3
STZ R_Disp_Mosaic_Flag0+4
L_Test_Bonding6:
JSR F_Test_Bonding_Sub0
JSR F_Test_Bonding_Sub1
LDA #0AAH
STA <R_TempL
JSR F_Test_Bonding_Sub2
JSR F_Test_Bonding_Sub1
JSR F_Test_Bonding_Sub3
JSR F_Test_Bonding_Sub4
CMP #055H
BEQ L_Test_Bonding_7
JMP L_Test_Bonding_Error
L_Test_Bonding_7:
JSR F_Test_Bonding_Sub5
JSR F_Test_Bonding_Sub4
CMP #0AAH
BEQ L_Test_Bonding_8
JMP L_Test_Bonding_Error
L_Test_Bonding_8:
LDA #04H
STA R_Blk_Num_L
LDA #00H
STA R_Blk_Num_H
JSR F_EraseFlash_32K
; JSR F_BlockErase
LDA #06H
STA R_Blk_Num_L
LDA #00H
STA R_Blk_Num_H
JSR F_EraseFlash_32K
; JSR F_BlockErase
LDA #04H
STA R_Disp_Mosaic_Flag0
STZ R_Disp_Mosaic_Flag0+1
LDA #06H
STA R_Disp_Mosaic_Flag0+2
STZ R_Disp_Mosaic_Flag0+3
STZ R_Disp_Mosaic_Flag0+4
L_Test_Bonding9:
JSR F_Test_Bonding_Sub0
JSR F_Test_Bonding_Sub1
LDA #0AAH
STA <R_TempL
JSR F_Test_Bonding_Sub2
JSR F_Test_Bonding_Sub1
JSR F_Test_Bonding_Sub3
JSR F_Test_Bonding_Sub4
CMP #055H
BEQ L_Test_Bonding_10
JMP L_Test_Bonding_Error
L_Test_Bonding_10:
JSR F_Test_Bonding_Sub5
JSR F_Test_Bonding_Sub4
CMP #0AAH
BEQ L_Test_Bonding_11
JMP L_Test_Bonding_Error
L_Test_Bonding_11:
LDA #04H
STA R_Blk_Num_L
LDA #00H
STA R_Blk_Num_H
JSR F_EraseFlash_32K
; JSR F_BlockErase
LDA #08H
STA R_Blk_Num_L
LDA #00H
STA R_Blk_Num_H
JSR F_EraseFlash_32K
; JSR F_BlockErase
LDA #04H
STA R_Disp_Mosaic_Flag0
STZ R_Disp_Mosaic_Flag0+1
LDA #08H
STA R_Disp_Mosaic_Flag0+2
STZ R_Disp_Mosaic_Flag0+3
STZ R_Disp_Mosaic_Flag0+4
L_Test_Bonding12:
JSR F_Test_Bonding_Sub0
JSR F_Test_Bonding_Sub1
LDA #0AAH
STA <R_TempL
JSR F_Test_Bonding_Sub2
JSR F_Test_Bonding_Sub1
JSR F_Test_Bonding_Sub3
JSR F_Test_Bonding_Sub4
CMP #055H
BEQ L_Test_Bonding_13
JMP L_Test_Bonding_Error
L_Test_Bonding_13:
JSR F_Test_Bonding_Sub5
JSR F_Test_Bonding_Sub4
CMP #0AAH
BEQ L_Test_Bonding_14
JMP L_Test_Bonding_Error
L_Test_Bonding_14:
LDA #04H
STA R_Blk_Num_L
STZ R_Blk_Num_H
JSR F_EraseFlash_32K
; JSR F_BlockErase
LDA #16
STA R_Blk_Num_L
STZ R_Blk_Num_H
JSR F_EraseFlash_32K
; JSR F_BlockErase
LDA #04H
STA R_Disp_Mosaic_Flag0
STZ R_Disp_Mosaic_Flag0+1
LDA #16
STA R_Disp_Mosaic_Flag0+2
STZ R_Disp_Mosaic_Flag0+3
STZ R_Disp_Mosaic_Flag0+4
L_Test_Bonding15:
JSR F_Test_Bonding_Sub0
JSR F_Test_Bonding_Sub1
LDA #0AAH
STA <R_TempL
JSR F_Test_Bonding_Sub2
JSR F_Test_Bonding_Sub1
JSR F_Test_Bonding_Sub3
JSR F_Test_Bonding_Sub4
CMP #055H
BEQ L_Test_Bonding_16
JMP L_Test_Bonding_Error
L_Test_Bonding_16:
JSR F_Test_Bonding_Sub5
JSR F_Test_Bonding_Sub4
CMP #0AAH
BEQ L_Test_Bonding_17
JMP L_Test_Bonding_Error
L_Test_Bonding_17:
L_Test_Bonding_CS0_Countion:
L_Test_Bonding_OK:
LDA #0FFH
STA <PCA
LDA #0FFH
STA <PCC
LDA #01H
STA <PA
LDA #04H
STA <PC
SEI
SMB6 <IENAL
CLI
LDA #00000110B ; System Clock=OSC,Enable OSC,OSCX.
STA <SYS ; WAI-1 mode
WAI ; Delay 0.5 second
STZ <IREQ
LDA #0FFH
STA <BTREQ
LDA #02H
STA <PA
WAI ; Delay 0.5 second
STZ <IREQ
LDA #0FFH
STA <BTREQ
LDA #04H
STA <PA
WAI ; Delay 0.5 second
STZ <IREQ
LDA #0FFH
STA <BTREQ
LDA #040H
STA <PA
WAI ; Delay 0.5 second
STZ <IREQ
LDA #0FFH
STA <BTREQ
LDA #080H
STA <PA
WAI ; Delay 0.5 second
STZ <IREQ
LDA #0FFH
STA <BTREQ
LDA #024H
STA <PC
WAI ; Delay 0.5 second
STZ <IREQ
LDA #0FFH
STA <BTREQ
LDA #008H+C_ST7636R_X_Off
STA <R_CursorX
LDA #00H+C_ST7636R_Y_Off
STA <R_CursorY
LDA #'O'
STA R_Disp_CharL
JSR 820H
.IF MaskUpDate=0
DW 03H
.ELSE
; DW 03H
DW 03H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF ;MaskUpDate=0
DW F_Disp_NumOrABC-1
LDA #010H+C_ST7636R_X_Off
STA <R_CursorX
LDA #00H+C_ST7636R_Y_Off
STA <R_CursorY
LDA #'K'
STA R_Disp_CharL
JSR 820H
.IF MaskUpDate=0
DW 03H
.ELSE
; DW 03H
DW 03H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF ;MaskUpDate=0
DW F_Disp_NumOrABC-1
BRA $
L_Test_Bonding_Error:
LDA #008H+C_ST7636R_X_Off
STA <R_CursorX
LDA #00H+C_ST7636R_Y_Off
STA <R_CursorY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -