⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lvd.asm

📁 LVD电源低电检测等程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;;=============================================
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 + -