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

📄 disp.asm

📁 显示程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
		STA		R_Disp_CharL
		JSR		F_Disp_NumOrABC
		LDA		#YEAR_ADDR_X+040H
		STA		<R_CursorX
		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
		JSR		F_Disp_NumOrABC
		LDA		#YEAR_ADDR_X+048H
		STA		<R_CursorX
		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
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		JSR		F_R_CursorY_37_XY_Off
		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
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+008H
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		JSR		F_R_CursorY_37_XY_Off
		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
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+010H
		STA		<R_CursorX
		LDA		#COLON_SIGN
		STA		R_Disp_CharL
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+018H
		STA		<R_CursorX
		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
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+020H
		STA		<R_CursorX
		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
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+028H
		STA		<R_CursorX
		LDA		#COLON_SIGN
		STA		R_Disp_CharL
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+030H
		STA		<R_CursorX
		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
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+038H
		STA		<R_CursorX
		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
		JSR		F_Disp_NumOrABC
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
		JSR		F_R_CursorY_37_XY_Off
		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+010H
		STA		<R_CursorY

		JSR		F_R_CursorY_37_XY_Off

		LDA		#<Slide_MenuTab1
		STA		<R_TempL
		LDA		#>Slide_MenuTab1
		STA		<R_TempH
		LDX		#Line_Display_Char	; SHOW 16 Character.
		JSR		Show_X_Char
		LDA		#AUTO_SLIDE_ADDR_X
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_ADDR_Y+030H
		STA		<R_CursorY

		JSR		F_R_CursorY_37_XY_Off

		LDA		#<Slide_MenuTab2
		STA		<R_TempL
		LDA		#>Slide_MenuTab2
		STA		<R_TempH
		LDX		#Line_Display_Char	; SHOW 16 Character.
		JSR		Show_X_Char
		LDA		#AUTO_SLIDE_ADDR_X+028H
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_SEC_ADDR_Y
		STA		<R_CursorY

		JSR		F_R_CursorY_37_XY_Off

		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
		JSR		F_Disp_NumOrABC
		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
		DB		MENU_ADDR_Y+040H
		DB		MENU_ADDR_Y+050H
;;==============================================
Main_Menu:
		RESB	0,R_Disp_Flag
		LDA		#<T_MenuTab0
		STA		<R_TempL
		LDA		#>T_MenuTab0
		STA		<R_TempH
		JSR		F_Disp_ABCFull
		LDX		R_Mode				   ; FROM 1	START
Main_Menu1:
		DEX
		LDA		#MENU_ADDR_X+008H
		STA		<R_CursorX
		LDA		MAIN_MENU_ARROW_TAB,X
		STA		<R_CursorY
		JSR		F_R_CursorY_37_XY_Off

SHOW_ARROW:
		LDA		#ARROW_SIGN
		STA		R_Disp_CharL
		JSR		F_Disp_NumOrABC
		RESB	0,R_Disp_Flag												; MUST ADD.
		RTS
;;==============================================
SUB_MENU2:
		RESB	0,R_Disp_Flag
		LDA		#<T_MenuTab10
		STA		<R_TempL
		LDA		#>T_MenuTab10
		STA		<R_TempH
		JSR		F_Disp_ABCFull
		LDX		R_Mode1
		BRA		Main_Menu1

;;==============================================
		.include	8X16.asm
;;==============================================
F_Disp_NumOrABC:
F_Disp_NumOrABC_Boot:
		PHA
		PHX
		PHY
		LDA		R_CursorY+1
		PHA
		LDA		R_CursorY
		PHA
		LDA		R_CursorX
		PHA
		LDA		<R_TempL
		PHA
		LDA		<R_TempH
		PHA
		M_Keep_Drr
		LDA		R_Disp_CharL
		STA		<R_TempL
		STZ		<R_TempH
		M_Change_ST7636R_CS_Drr
		LDA		<R_SysFlag2
		AND		#0F0H
		BNE		L_Disp_NumOrABC_Boot_1
L_Disp_NumOrABC_Boot_0:
		BRA		L_Disp_NumOrABC_Boot_ST7636R
L_Disp_NumOrABC_Boot_1:
		CMP		#080H
		BCC		L_Disp_NumOrABC_Boot_2
		BRA		L_Disp_NumOrABC_Boot_ST7637
L_Disp_NumOrABC_Boot_2:
		CMP		#010H
		BNE		L_Disp_NumOrABC_Boot_3
		BRA		L_Disp_NumOrABC_Boot_ST7669
L_Disp_NumOrABC_Boot_3:
		CMP		#020H
		BNE		L_Disp_NumOrABC_Boot_4
		JMP		L_Disp_NumOrABC_Boot_ST7787
L_Disp_NumOrABC_Boot_4:
		CMP		#030H
		BNE		L_Disp_NumOrABC_Boot_5
		JMP		L_Disp_NumOrABC_Boot_0_
L_Disp_NumOrABC_Boot_5:
		CMP		#040H
		BNE		L_Disp_NumOrABC_Boot_6
		JMP		L_Disp_NumOrABC_Boot_ST7624
L_Disp_NumOrABC_Boot_6:
		CMP		#050H
		BNE		L_Disp_NumOrABC_Boot_7
		JMP		L_Disp_NumOrABC_Boot_ST7626
L_Disp_NumOrABC_Boot_7:
		CMP		#060H
		BNE		L_Disp_NumOrABC_Boot_8
		JMP		L_Disp_NumOrABC_Boot_ST7628
L_Disp_NumOrABC_Boot_8:
		JMP		L_Disp_NumOrABC_Boot_OLED
L_Disp_NumOrABC_Boot_ST7636R:
L_Disp_NumOrABC_Boot_ST7637:
		M_Input		R_RowAddressSet						;COM SET
		M_Para		R_CursorY
		JSR		F_ADC15_R_CursorY
		M_Para		R_CursorY					;END
		M_Input		R_ColumeAddressSet						;SEG SET
		M_Para		R_CursorX
		JSR		F_ADC7_R_CursorX
		M_Para		R_CursorX					;END
		M_Input		R_MemoryWrite
		JMP		L_Disp_NumOrABC_Boot
L_Disp_NumOrABC_Boot_ST7669:
		M_Write_I		02BH		M_Para		R_CursorY+1
		M_Para		R_CursorY
		JSR		F_ADC15_R_CursorY
		M_Para		R_CursorY+1
		M_Para		R_CursorY
		M_Write_I		02AH		M_Write_D		000H
		M_Para		R_CursorX
		JSR		F_ADC7_R_CursorX
		M_Write_D		000H
		M_Para		R_CursorX
		M_Write_I		02CH		JMP		L_Disp_NumOrABC_Boot
L_Disp_NumOrABC_Boot_ST7787:
		M_Write_I		02BH		M_Para		R_CursorY+1
		M_Para		R_CursorY
		JSR		F_ADC15_R_CursorY
		M_Para		R_CursorY+1
		M_Para		R_CursorY
		M_Write_I		02AH		M_Write_D		000H
		M_Para		R_CursorX
		JSR		F_ADC7_R_CursorX
		M_Write_D		000H
		M_Para		R_CursorX
		M_Write_I		02CH		JMP		L_Disp_NumOrABC_Boot

;		M_Write_I		02AH;		M_Write_D		000H
;		M_Para		R_CursorX
;		JSR		F_ADC7_R_CursorX
;		M_Write_D		000H
;		M_Para		R_CursorX
;		M_Write_I		02BH;		M_Para		R_CursorY+1
;		M_Para		R_CursorY
;		JSR		F_ADC15_R_CursorY
;		M_Para		R_CursorY+1
;		M_Para		R_CursorY
;		M_Write_I		02CH;		JMP		L_Disp_NumOrABC_Boot
L_Disp_NumOrABC_Boot_0_:
;		JMP		L_Disp_NumOrABC_Boot
L_Disp_NumOrABC_Boot_ST7624:
L_Disp_NumOrABC_Boot_ST7626:
L_Disp_NumOrABC_Boot_ST7628:
		M_Input		R_RowAddressSet						;COM SET
		M_Para		R_CursorY
		JSR		F_ADC15_R_CursorY
		M_Para		R_CursorY					;END
		M_Input		R_ColumeAddressSet						;SEG SET
		M_Para		R_CursorX
		JSR		F_ADC7_R_CursorX
		M_Para		R_CursorX					;END
		M_Input		R_MemoryWrite
		JMP		L_Disp_NumOrABC_Boot
L_Disp_NumOrABC_Boot_OLED:
		M_Write_I	075H
		M_Input 	R_CursorY
		JSR		F_ADC15_R_CursorY
		M_Input 	R_CursorY
		M_Write_I	015H
		M_Input 	R_CursorX
		JSR		F_ADC7_R_CursorX
		M_Input 	R_CursorX
L_Disp_NumOrABC_Boot:
		ASL		<R_TempL
		ROL		<R_TempH
		ASL		<R_TempL
		ROL		<R_TempH
		ASL		<R_TempL
		ROL		<R_TempH
		ASL		<R_TempL
		ROL		<R_TempH
		CLC
		LDA		#<T_8X16Tab
		ADC		<R_TempL
		STA		<R_TempL
		LDA		#>T_8X16Tab
		ADC		<R_TempH
		STA		<R_TempH
		LDY		#00H
L_Disp_NumOrABC_OneByte:
		LDA		(R_TempL),Y
		PHA
		LDX		#00H
L_Disp_NumOrABC_OneBit:
		PLA
		ASL
		PHA
		BCS		L_Disp_NumOrABC_Set
L_Disp_NumOrABC_Clear:
		M_Para		#0FFH
		M_Para		#0FFH
		BBR6	<R_Disp_Flag,L_Clear_65K
L_Clear_262K:
		M_Para		#0FFH
		BRA		L_Clear_65K_262K
L_Clear_65K:
L_Clear_65K_262K:
		BRA		L_Disp_NumOrABC_OneBitEnd
L_Disp_NumOrABC_Set:
		M_Para		#00H
		M_Para		#00H
		BBR6	<R_Disp_Flag,L_Set_65K
L_Set_262K:
		M_Para		#00H
		BRA		L_Set_65K_262K
L_Set_65K:
L_Set_65K_262K:
L_Disp_NumOrABC_OneBitEnd:
		INX
		CPX		#08H
		BCC		L_Disp_NumOrABC_OneBit
		PLA
		INY
		CPY		#10H
		BCC		L_Disp_NumOrABC_OneByte
L_Disp_NumOrABC_End:
		M_Relase_Drr
		PLA
		STA		<R_TempH
		PLA
		STA		<R_TempL
		PLA
		STA		R_CursorX
		PLA
		STA		R_CursorY
		PLA
		STA		R_CursorY+1
		PLY
		PLX
		PLA
		RTS
;;==============================================
F_ADC15_R_CursorY:
		CLC
		LDA		R_CursorY
		ADC		#15
		STA		R_CursorY
		RTS
;;==============================================
F_ADC7_R_CursorX:
		CLC
		LDA		R_CursorX
		ADC		#7
		STA		R_CursorX
		RTS
;;==============================================

⌨️ 快捷键说明

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