?? lvd.asm
字號:
;;=============================================
F_CaculateOneBankCkeckSum:
PHA
STZ R_Check_NumLL
STZ R_Check_NumLH
STZ R_Check_NumHL
STZ R_Check_NumHH
STZ <R_TempL
LDA #80H
STA <R_TempH
L_Caculate_OBCS_Loop:
LDA (R_TempL)
CLC
ADC R_Check_NumLL
STA R_Check_NumLL
LDA R_Check_NumLH
ADC #00H
STA R_Check_NumLH
LDA R_Check_NumHL
ADC #00H
STA R_Check_NumHL
LDA R_Check_NumHH
ADC #00H
STA R_Check_NumHH
INC <R_TempL
BNE L_Caculate_OBCS_Loop_0
INC <R_TempH
L_Caculate_OBCS_Loop_0:
LDA <R_TempL
BNE L_Caculate_OBCS_Loop
LDA <R_TempH
BNE L_Caculate_OBCS_Loop
L_Caculate_OBCS_Loop_End:
PLA
RTS
;;==============================================
F_GetPictuieNum:
M_Keep_Drr
BBS1 <R_SysFlag2,L_GetPictuieNum_CS0
.IF MaskUpDate=0
LDA #<C_NorFlash_CS_Drr
STA <DRRL
LDA #>C_NorFlash_CS_Drr
STA <DRRH
.ELSE
LDA #<02H+C_NorFlash_CS_Drr
STA <DRRL
LDA #>02H+C_NorFlash_CS_Drr
STA <DRRH
.ENDIF ;MaskUpDate=0
BRA L_GetPictuieNum_CS_End
L_GetPictuieNum_CS0:
LDA #<02H
STA <DRRL
STZ <DRRH
L_GetPictuieNum_CS_End:
CLC
LDA R_TabNum
BNE L_GetPictuieNum_1
L_GetPictuieNum_0:
BRA L_GetPictuieNum_End
L_GetPictuieNum_1:
CMP #01H
BNE L_GetPictuieNum_2
LDA 8007H
STA R_PicNumMax+1
CLC
LDA 8006H
STA R_PicNumMax
BRA L_GetPictuieNum_Com
L_GetPictuieNum_2:
CMP #02H
BNE L_GetPictuieNum_3
LDA A007H
STA R_PicNumMax+1
CLC
LDA A006H
STA R_PicNumMax
BRA L_GetPictuieNum_Com
L_GetPictuieNum_3:
CMP #03H
BNE L_GetPictuieNum_4
LDA C007H
STA R_PicNumMax+1
CLC
LDA C006H
STA R_PicNumMax
BRA L_GetPictuieNum_Com
L_GetPictuieNum_4:
LDA E007H
STA R_PicNumMax+1
CLC
LDA E006H
STA R_PicNumMax
BRA L_GetPictuieNum_Com
L_GetPictuieNum_Com:
ADC #C_Disp_Pic_NumMin-1
STA R_PicNumMax
LDA R_PicNumMax+1
ADC #00H
STA R_PicNumMax+1
L_GetPictuieNum_End:
M_Relase_Drr
RTS
;;==============================================
F_CheckPictuieTrueOrFalse:
L_CheckPictuieTrueOrFalse:
LDA R_TabNum
BNE L_CheckPictuieTrueOrFalse_1
L_CheckPictuieTrueOrFalse_0:
STZ <R_TempL
BRA L_CheckPictuieTrueOrFalse_End
L_CheckPictuieTrueOrFalse_1:
CMP #01H
BNE L_CheckPictuieTrueOrFalse_2
LDA #80H
BRA L_CheckPictuieTrueOrFalse_Com
L_CheckPictuieTrueOrFalse_2:
CMP #02H
BNE L_CheckPictuieTrueOrFalse_3
LDA #A0H
BRA L_CheckPictuieTrueOrFalse_Com
L_CheckPictuieTrueOrFalse_3:
CMP #03H
BNE L_CheckPictuieTrueOrFalse_4
LDA #C0H
BRA L_CheckPictuieTrueOrFalse_Com
L_CheckPictuieTrueOrFalse_4:
LDA #E0H
BRA L_CheckPictuieTrueOrFalse_Com
L_CheckPictuieTrueOrFalse_Com:
STA <R_TempH
LDA #10H
STA <R_TempL
SEC
LDA R_Disp_Pic_Num
SBC #C_Disp_Pic_NumMin
TAX
L_CheckPictuieTrueOrFalse_Loop:
CPX #00H ; ?
BEQ L_CheckPictuieTrueOrFalse_Loop_End
CLC
LDA <R_TempL
ADC #10H
STA <R_TempL
LDA <R_TempH
ADC #00H
STA <R_TempH
DEX
BRA L_CheckPictuieTrueOrFalse_Loop
L_CheckPictuieTrueOrFalse_Loop_End:
M_Keep_Drr
BBS1 <R_SysFlag2,L_CheckPictuieTrueOrFalse_CS0
.IF MaskUpDate=0
LDA #<C_NorFlash_CS_Drr
STA <DRRL
LDA #>C_NorFlash_CS_Drr
STA <DRRH
.ELSE
LDA #<02H+C_NorFlash_CS_Drr
STA <DRRL
LDA #>02H+C_NorFlash_CS_Drr
STA <DRRH
.ENDIF ;MaskUpDate=0
BRA L_CheckPictuieTrueOrFalse_CS_End
L_CheckPictuieTrueOrFalse_CS0:
LDA #<02H
STA <DRRL
STZ <DRRH
L_CheckPictuieTrueOrFalse_CS_End:
LDA (R_TempL)
STA <R_TempL
M_Relase_Drr
LDA <R_TempL
L_CheckPictuieTrueOrFalse_End:
RTS
;;=============================================
F_JudgeTabPicNum:
PHA
PHX
PHY
LDA R_Disp_Pic_Num+0
PHA
LDA R_Disp_Pic_Num+1
PHA
JSR F_JudgeTabCheckSum
; LDA #01H
; STA R_TabNum
LDA R_TabNum
BNE L_JudgeTabPicNum_1
JMP L_JudgeTabPicNum_NoPhoto
L_JudgeTabPicNum_1:
CMP #01H
BNE L_JudgeTabPicNum_2
LDA #080H
BRA L_JudgeTabPicNum_Com
L_JudgeTabPicNum_2:
CMP #02H
BNE L_JudgeTabPicNum_3
LDA #0A0H
BRA L_JudgeTabPicNum_Com
L_JudgeTabPicNum_3:
CMP #03H
BNE L_JudgeTabPicNum_4
LDA #0C0H
BRA L_JudgeTabPicNum_Com
L_JudgeTabPicNum_4:
LDA #0E0H
L_JudgeTabPicNum_Com:
STA <R_TempH
LDA #006H
STA <R_TempL
BBR1 <R_SysFlag2,L_JudgeTabPicNum_Com_CS2
L_JudgeTabPicNum_Com_CS0:
LDA #<02H
STA <DRRL
STZ <DRRH
BRA L_JudgeTabPicNum_Com_0
L_JudgeTabPicNum_Com_CS2:
.IF MaskUpDate=0
LDA #<C_NorFlash_CS_Drr
STA <DRRL
LDA #>C_NorFlash_CS_Drr
STA <DRRH
.ELSE
LDA #<02H+C_NorFlash_CS_Drr
STA <DRRL
LDA #>02H+C_NorFlash_CS_Drr
STA <DRRH
.ENDIF ;MaskUpDate=0
L_JudgeTabPicNum_Com_0:
LDA (R_TempL)
STA R_Disp_Pic_Num+0
INC <R_TempL
LDA (R_TempL)
STA R_Disp_Pic_Num+1
LDA R_Disp_Pic_Num+0
ORA R_Disp_Pic_Num+1
BEQ L_JudgeTabPicNum_NoPhoto
LDA R_Disp_Pic_Num+1
TAY
LDA R_Disp_Pic_Num+0
TAX
LDA #10H
STA <R_TempL
LDA #80H
STA <R_TempH
L_JudgeTabPicNum_Com_0_PicNumNoZero:
LDA (R_TempL)
CMP #01H
BEQ L_JudgeTabPicNum_HavePhoto
CLC
LDA <R_TempL
ADC #10H
STA <R_TempL
BNE L_JudgeTabPicNum_Com_0_0
INC <R_TempH
BBR7 <R_TempH,L_JudgeTabPicNum_NoPhoto
L_JudgeTabPicNum_Com_0_0:
DEX
BNE L_JudgeTabPicNum_Com_0_PicNumNoZero
CPY #00H
BEQ L_JudgeTabPicNum_NoPhoto
DEY
BRA L_JudgeTabPicNum_Com_0_PicNumNoZero
L_JudgeTabPicNum_NoPhoto:
SMB5 <R_SysFlag1
BRA L_JudgeTabPicNum_End
L_JudgeTabPicNum_HavePhoto:
RMB5 <R_SysFlag1
L_JudgeTabPicNum_End:
PLA
STA R_Disp_Pic_Num+1
PLA
STA R_Disp_Pic_Num+0
PLY
PLX
PLA
RTS
;;=============================================
F_JudgeTabCheckSum:
BBR1 <R_SysFlag2,L_JudgeTabCheckSum_CS2
L_JudgeTabCheckSum_CS0:
LDA #<02H
STA <DRRL
STZ <DRRH
BRA L_JudgeTabCheckSum_0
L_JudgeTabCheckSum_CS2:
.IF MaskUpDate=0
LDA #<C_NorFlash_CS_Drr
STA <DRRL
LDA #>C_NorFlash_CS_Drr
STA <DRRH
.ELSE
LDA #<02H+C_NorFlash_CS_Drr
STA <DRRL
LDA #>02H+C_NorFlash_CS_Drr
STA <DRRH
.ENDIF ;MaskUpDate=0
L_JudgeTabCheckSum_0:
LDA #02H
STA <R_TempL
LDA #80H
STA <R_TempH
JSR F_Caculate8K_CkeckSum
;
; LDA #<C_NorFlash_CS_Drr
; STA <DRRL
; LDA #>C_NorFlash_CS_Drr
; STA <DRRH
; LDA 8000H ;A1
; STA R_Disp_CharL
; LDA #08
; STA R_CursorX
; LDA #10H
; STA R_CursorY
; JSR 820H
; DW 03H ;#Bank No
; DW F_Disp_NumOrABC-1
; LDA #<C_NorFlash_CS_Drr
; STA <DRRL
; LDA #>C_NorFlash_CS_Drr
; STA <DRRH
; LDA 8001H
; STA R_Disp_CharL
; LDA #10H
; STA R_CursorX
; LDA #10H
; STA R_CursorY
; JSR 820H
; DW 03H ;#Bank No
; DW F_Disp_NumOrABC-1
; LDA R_Check_NumLL ;191
; STA R_Disp_CharL
; LDA #18H
; STA R_CursorX
; LDA #10H
; STA R_CursorY
; JSR 820H
; DW 03H ;#Bank No
; DW F_Disp_NumOrABC-1
; LDA R_Check_NumLH ;205
; STA R_Disp_CharL
; LDA #20H
; STA R_CursorX
; LDA #10H
; STA R_CursorY
; JSR 820H
; DW 03H ;#Bank No
; DW F_Disp_NumOrABC-1
; BRA $
;
LDA 8000H
CMP R_Check_NumLL
BNE L_JudgeTabCheckSum_1
LDA 8001H
CMP R_Check_NumLH
BNE L_JudgeTabCheckSum_1
LDA #01H
BRA L_JudgeTabCheckSum_OK
L_JudgeTabCheckSum_1:
LDA #02H
STA <R_TempL
LDA #0A0H
STA <R_TempH
JSR F_Caculate8K_CkeckSum
LDA A000H
CMP R_Check_NumLL
BNE L_JudgeTabCheckSum_2
LDA A001H
CMP R_Check_NumLH
BNE L_JudgeTabCheckSum_2
LDA #02H
BRA L_JudgeTabCheckSum_OK
L_JudgeTabCheckSum_2:
LDA #02H
STA <R_TempL
LDA #0C0H
STA <R_TempH
JSR F_Caculate8K_CkeckSum
LDA C000H
CMP R_Check_NumLL
BNE L_JudgeTabCheckSum_3
LDA C001H
CMP R_Check_NumLH
BNE L_JudgeTabCheckSum_3
LDA #03H
BRA L_JudgeTabCheckSum_OK
L_JudgeTabCheckSum_3:
LDA #02H
STA <R_TempL
LDA #0E0H
STA <R_TempH
JSR F_Caculate8K_CkeckSum
LDA E000H
CMP R_Check_NumLL
BNE L_JudgeTabCheckSum_Error
LDA E001H
CMP R_Check_NumLH
BNE L_JudgeTabCheckSum_Error
LDA #04H
BRA L_JudgeTabCheckSum_OK
L_JudgeTabCheckSum_Error:
STZ R_TabNum
BRA L_JudgeTabCheckSum_End
L_JudgeTabCheckSum_OK:
STA R_TabNum
BRA L_JudgeTabCheckSum_End
L_JudgeTabCheckSum_End:
RTS
;;=============================================
F_Caculate8K_CkeckSum:
PHA
STZ R_Check_NumLL
STZ R_Check_NumLH
L_Caculate_8KCS_Loop:
LDA <R_TempL
AND #0FH
BEQ L_Caculate_8KCS_Loop_End
CLC
LDA (R_TempL)
ADC R_Check_NumLL
STA R_Check_NumLL
LDA R_Check_NumLH
ADC #00H
STA R_Check_NumLH
L_Caculate_8KCS_Loop_End:
INC <R_TempL
BNE L_Caculate_8KCS_Loop_End_0
INC <R_TempH
L_Caculate_8KCS_Loop_End_0:
LDA <R_TempL
BNE L_Caculate_8KCS_Loop
LDA <R_TempH
BEQ L_Caculate_8KCS_Loop_EndOut
CMP #0A0H
BEQ L_Caculate_8KCS_Loop_EndOut
CMP #0C0H
BEQ L_Caculate_8KCS_Loop_EndOut
CMP #0E0H
BEQ L_Caculate_8KCS_Loop_EndOut
BRA L_Caculate_8KCS_Loop
L_Caculate_8KCS_Loop_EndOut:
PLA
RTS
;;==============================================
F_Get_ImageInf:
PHA
LDA <R_Disp_Flag
AND #0C0H
BNE L_Get_ImageInf_1
L_Get_ImageInf_0:
LDA #00H
BRA L_Get_ImageInf_Com
L_Get_ImageInf_1:
CMP #40H
BNE L_Get_ImageInf_2
LDA #01H
BRA L_Get_ImageInf_Com
L_Get_ImageInf_2:
CMP #80H
BNE L_Get_ImageInf_3
LDA #08H
BRA L_Get_ImageInf_Com
L_Get_ImageInf_3:
LDA #09H
L_Get_ImageInf_Com:
STA R_ImageInf+0
LDA #00H
STA R_ImageInf+1
PLA
RTS
;;==============================================
F_Get_Ver:
PHA
LDA #05AH
STA R_Ver+0
LDA #01H
STA R_Ver+1
LDA #05H
STA R_Ver+2
PLA
RTS
;;==============================================
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -