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

📄 disp96x64.asm

📁 96*94使用于ED06.ED02等小型的数码相框
💻 ASM
📖 第 1 页 / 共 3 页
字号:
		BBS2	<R_Disp_Flag,L_Disp_Clock
		JMP		L_Disp_Clock_End
L_Disp_Clock:
		RESB	2,R_Disp_Flag
		LDA		#YEAR_ADDR_X
		STA		<R_CursorX
		LDA		#YEAR_ADDR_Y
		STA		<R_CursorY
		LDA		#'1'
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		LDA		R_Year
		AND		#080H			; Bit7 = 1 ==>19XX,0 is	20XX.
		BEQ		L_Disp_Clock_Year20XX
L_Disp_Clock_Year19XX:
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+08H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		#'9'
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		BRA		L_Disp_Clock_Year20XX_End
L_Disp_Clock_Year20XX:
		LDA		#'2'
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+08H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		#'0'
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
L_Disp_Clock_Year20XX_End:
		LDA		#YEAR_ADDR_X+010H
		STA		<R_CursorX
;		STA		<R_CursorY
		STZ		R_Disp_CharL
		LDA		R_Year
		AND		#7FH
L_Disp_Clock_Year0:
		CMP		#10
		BCC		L_Disp_Clock_Year1
		INC		R_Disp_CharL
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Year0
L_Disp_Clock_Year1:
		CLC
		LDA		R_Disp_CharL
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+018H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		R_Year
		AND		#7FH
L_Disp_Clock_Year2:
		CMP		#10
		BCC		L_Disp_Clock_Year3
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Year2
L_Disp_Clock_Year3:
		CLC
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+020H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		#MINUS_SIGN
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+028H
		STA		<R_CursorX
;		STA		<R_CursorY
		STZ		R_Disp_CharL
		LDA		R_Month
L_Disp_Clock_Month0:
		CMP		#10
		BCC		L_Disp_Clock_Month1
		INC		R_Disp_CharL
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Month0
L_Disp_Clock_Month1:
		CLC
		LDA		R_Disp_CharL
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+030H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		R_Month
L_Disp_Clock_Month2:
		CMP		#10
		BCC		L_Disp_Clock_Month3
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Month2
L_Disp_Clock_Month3:
		CLC
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+038H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		#MINUS_SIGN
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+040H
		STA		<R_CursorX
;		STA		<R_CursorY
		STZ		R_Disp_CharL
		LDA		R_Day
L_Disp_Clock_Day0:
		CMP		#10
		BCC		L_Disp_Clock_Day1
		INC		R_Disp_CharL
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Day0
L_Disp_Clock_Day1:
		CLC
		LDA		R_Disp_CharL
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+048H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		R_Day
L_Disp_Clock_Day2:
		CMP		#10
		BCC		L_Disp_Clock_Day3
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Day2
L_Disp_Clock_Day3:
		CLC
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		STZ		R_Disp_CharL
		LDA		R_Hour
L_Disp_Clock_Hour0:
		CMP		#10
		BCC		L_Disp_Clock_Hour1
		INC		R_Disp_CharL
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Hour0
L_Disp_Clock_Hour1:
		CLC
		LDA		R_Disp_CharL
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+008H
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		LDA		R_Hour
L_Disp_Clock_Hour2:
		CMP		#10
		BCC		L_Disp_Clock_Hour3
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Hour2
L_Disp_Clock_Hour3:
		CLC
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+010H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		#COLON_SIGN
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+018H
		STA		<R_CursorX
;		STA		<R_CursorY
		STZ		R_Disp_CharL
		LDA		R_Minute
L_Disp_Clock_Minute0:
		CMP		#10
		BCC		L_Disp_Clock_Minute1
		INC		R_Disp_CharL
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Minute0
L_Disp_Clock_Minute1:
		CLC
		LDA		R_Disp_CharL
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+020H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		R_Minute
L_Disp_Clock_Minute2:
		CMP		#10
		BCC		L_Disp_Clock_Minute3
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Minute2
L_Disp_Clock_Minute3:
		CLC
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+028H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		#COLON_SIGN
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+030H
		STA		<R_CursorX
;		STA		<R_CursorY
		STZ		R_Disp_CharL
		LDA		R_Second
L_Disp_Clock_Second0:
		CMP		#10
		BCC		L_Disp_Clock_Second1
		INC		R_Disp_CharL
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Second0
L_Disp_Clock_Second1:
		CLC
		LDA		R_Disp_CharL
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+038H
		STA		<R_CursorX
;		STA		<R_CursorY
		LDA		R_Second
L_Disp_Clock_Second2:
		CMP		#10
		BCC		L_Disp_Clock_Second3
		SEC
		SBC		#10
		BRA		L_Disp_Clock_Second2
L_Disp_Clock_Second3
		CLC
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
L_Disp_Clock_End:
		PLA
		RTS
;;==============================================
F_Disp_Week:
L_Disp_Week:
		LDA		R_Week
		BNE		L_Disp_Week_1
L_Disp_Week_0:
		LDA		#<T_SunDay
		STA		<R_TempL
		LDA		#>T_SunDay
		STA		<R_TempH
		JSR		F_Disp_WeekSub
		BRA		L_Disp_Week_End
L_Disp_Week_1:
		CMP		#01H
		BNE		L_Disp_Week_2
		LDA		#<T_MonDay
		STA		<R_TempL
		LDA		#>T_MonDay
		STA		<R_TempH
		JSR		F_Disp_WeekSub
		BRA		L_Disp_Week_End
L_Disp_Week_2:
		CMP		#02H
		BNE		L_Disp_Week_3
		LDA		#<T_TuesDay
		STA		<R_TempL
		LDA		#>T_TuesDay
		STA		<R_TempH
		JSR		F_Disp_WeekSub
		BRA		L_Disp_Week_End
L_Disp_Week_3:
		CMP		#03H
		BNE		L_Disp_Week_4
		LDA		#<T_WednesDay
		STA		<R_TempL
		LDA		#>T_WednesDay
		STA		<R_TempH
		JSR		F_Disp_WeekSub
		BRA		L_Disp_Week_End
L_Disp_Week_4:
		CMP		#04H
		BNE		L_Disp_Week_5
		LDA		#<T_ThursDay
		STA		<R_TempL
		LDA		#>T_ThursDay
		STA		<R_TempH
		JSR		F_Disp_WeekSub
		BRA		L_Disp_Week_End
L_Disp_Week_5:
		CMP		#05H
		BNE		L_Disp_Week_6
		LDA		#<T_FriDay
		STA		<R_TempL
		LDA		#>T_FriDay
		STA		<R_TempH
		JSR		F_Disp_WeekSub
		BRA		L_Disp_Week_End
L_Disp_Week_6:
		CMP		#06H
		BNE		L_Disp_Week_End
		LDA		#<T_SaturDay
		STA		<R_TempL
		LDA		#>T_SaturDay
		STA		<R_TempH
		JSR		F_Disp_WeekSub
		BRA		L_Disp_Week_End
L_Disp_Week_End:
		RTS
;;==============================================
F_Disp_WeekSub:
		PHA
		PHX
		LDA		#WEEK_ADDR_X
		STA		<R_CursorX
		LDA		#WEEK_ADDR_Y
		STA		<R_CursorY
		LDX		#9
		JSR		Show_X_Char
L_Disp_WeekSub_End:
		PLX
		PLA
		RTS
;;==============================================
;;;	BENNY ADD
F_Disp_AutoSlideTime:
		LDA		#AUTO_SLIDE_ADDR_X
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_ADDR_Y
		STA		<R_CursorY
		LDA		#<Slide_MenuTab1
		STA		<R_TempL
		LDA		#>Slide_MenuTab1
		STA		<R_TempH
		LDX		#Line_Display_Char				; SHOW 12 Character.
		JSR		Show_X_Char
		LDA		#AUTO_SLIDE_ADDR_X
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_ADDR_Y+010H
		STA		<R_CursorY
		LDA		#<Slide_MenuTab2
		STA		<R_TempL
		LDA		#>Slide_MenuTab2
		STA		<R_TempH
		LDX		#Line_Display_Char				; SHOW 12 Character.
		JSR		Show_X_Char
		LDA		#AUTO_SLIDE_ADDR_X+028H
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_SEC_ADDR_Y
		STA		<R_CursorY
		LDA		#<Slide_MenuTab4
		STA		<R_TempL
		LDA		#>Slide_MenuTab4
		STA		<R_TempH
		LDX		#07								; SHOW 07 Character.
Show_X_Char:
		LDA		(R_TempL)
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		INC		<R_TempL
		BNE		Show_X_Char_0
		INC		<R_TempH
Show_X_Char_0:
		CLC
		LDA		<R_CursorX
		ADC		#08H
		STA		<R_CursorX
		DEX
		BNE		Show_X_Char
		RTS
;;==============================================
MAIN_MENU_ARROW_TAB:
		DB		MENU_ADDR_Y
		DB		MENU_ADDR_Y+010H
		DB		MENU_ADDR_Y+020H
		DB		MENU_ADDR_Y+030H
;;==============================================
Main_Menu:
		RESB	0,R_Disp_Flag
		LDX		R_Mode
		CPX		#01
		BEQ		IS_PAGE0
		CPX		#06
		BEQ		IS_PAGE2
		LDA		R_Key_Name
		CMP		#01h
		BEQ		Press_Up_Key
		LDA		R_Page
		BNE		NOT_DN_PAGE0
		CPX		#Page_Display_Line+1
		BCS		IS_PAGE1
IS_PAGE0:
		JSR		SHOW_PAGE0
		JSR		SHOW_ARROW
		RTS
;;==============================================
IS_PAGE1:
		JSR		SHOW_PAGE1
		DEX
		JSR		SHOW_ARROW
		RTS
;;==============================================
NOT_DN_PAGE0:
		CMP		#01
		BEQ		IS_PAGE1
IS_PAGE2:
		JSR		SHOW_PAGE2
		DEX
		DEX
		JSR		SHOW_ARROW
		RTS
;;==============================================
Press_Up_Key:
		LDA		R_Page
		BEQ		IS_PAGE0
		CMP		#01
		BEQ		IS_PAGE1
		CPX		#02
		BEQ		IS_PAGE1
		JSR		IS_PAGE2
		RTS
;;==============================================
SHOW_PAGE0:
		LDA		#<T_MenuTab0
		STA		<R_TempL
		LDA		#>T_MenuTab0
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
		LDA		#00
		STA		R_Page 
		RTS
;;==============================================
SHOW_PAGE1:				   
		LDA		#<(T_MenuTab0+Line_Display_Char)
		STA		<R_TempL
		LDA		#>(T_MenuTab0+Line_Display_Char)
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
		LDA		#01
		STA		R_Page
		RTS
;;==============================================
SHOW_PAGE2:
		LDA		#<(T_MenuTab0+Line_Display_Char+Line_Display_Char)
		STA		<R_TempL
		LDA		#>(T_MenuTab0+Line_Display_Char+Line_Display_Char)
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
		LDA		#02
		STA		R_Page
		RTS
;;==============================================
SHOW_ARROW:
		DEX
		LDA		MAIN_MENU_ARROW_TAB,X
		STA		<R_CursorY
		LDA		#MENU_ADDR_X
		STA		<R_CursorX
		LDA		#ARROW_SIGN
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		RESB	0,R_Disp_Flag					; MUST ADD.
		RTS
;;==============================================

;;==============================================
F_Disp_NumOrABC_96X64:
		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_Boot-1
		RTS
;;==============================================

⌨️ 快捷键说明

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