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

📄 disp96x64.asm

📁 96*94使用于ED06.ED02等小型的数码相框
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;;==============================================



;;==============================================

;;==============================================
		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 Main.inc
		.include ST7636R.inc
		.include Disp.inc
;;==============================================
.Global				F_Disp_Program_A
.Global				F_Disp_ABCFull_A
.Global				T_NorFlahNoPragramTab_A
.Global				T_NoPhotoTab_A
;;==============================================

MINUS_SIGN				.EQU	045				; '-' ASCII
COLON_SIGN				.EQU	058				; ':' ASCII
ARROW_SIGN				.EQU	016				; '->' ASCII
;;;	benny add 12/04/2006 96X64(ST7624,ST7626,ST7628)
Page_Display_Line		.EQU	4		; 64/16
Line_Display_Char		.EQU	12				; 96/8
MENU_ADDR_X				.EQU	C_ST7626_X_Off
MENU_ADDR_Y				.EQU	C_ST7626_Y_Off
YEAR_ADDR_X				.EQU	C_ST7626_X_Off+008H
YEAR_ADDR_Y				.EQU	C_ST7626_Y_Off+010H
HOUR_ADDR_X				.EQU	C_ST7626_X_Off+010H
HOUR_ADDR_Y				.EQU	YEAR_ADDR_Y+010H
WEEK_ADDR_X				.EQU	C_ST7626_X_Off+008H
WEEK_ADDR_Y				.EQU	YEAR_ADDR_Y+020H
AUTO_SLIDE_ADDR_X		.EQU	C_ST7626_X_Off
AUTO_SLIDE_ADDR_Y		.EQU	C_ST7626_Y_Off
AUTO_SLIDE_SEC_ADDR_X	.EQU	C_ST7626_X_Off+008H
AUTO_SLIDE_SEC_ADDR_Y	.EQU	C_ST7626_Y_Off+020H
ON_TIME_ADDR_X			.EQU	C_ST7626_X_Off+010H
ON_TIME_ADDR_Y			.EQU	C_ST7626_Y_Off
OFF_TIME_ADDR_X			.EQU	ON_TIME_ADDR_X
OFF_TIME_ADDR_Y			.EQU	ON_TIME_ADDR_Y+020H
;;==============================================
;;==============================================
PS2_5000				.SECTION
;;==============================================
F_Disp_Program_A:
F_Disp_Program:
		BBS3	<R_SysFlag1,L_Disp_Program
		LDA		<USBCON
		AND		#02H
		BEQ		L_Disp_Program
L_Disp_Program_USB:
		BBR0	<R_Disp_Flag,L_Disp_Program_USB_End
		RESB	0,R_Disp_Flag
		BBS4	<R_SysFlag1,L_Disp_Program_USB_1
L_Disp_Program_USB_0:
		LDA		#<T_MenuTabUSB_OnLine0
		STA		<R_TempL
		LDA		#>T_MenuTabUSB_OnLine0
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
		JMP		L_Disp_Program_End
L_Disp_Program_USB_1:
		LDA		#<T_MenuTabUSB_OnLine1
		STA		<R_TempL
		LDA		#>T_MenuTabUSB_OnLine1
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
L_Disp_Program_USB_End:
		JMP		L_Disp_Program_End
L_Disp_Program:
		LDA		R_Mode
		BNE		L_Disp_Program_Mode1
L_Disp_Program_Mode0:
		BBR5	<R_SysFlag1,L_Disp_Program_Mode0_
		LDA		#<T_NoPhotoTab_A
		STA		<R_TempL
		LDA		#>T_NoPhotoTab_A
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A

		BRA		L_Disp_Program_Mode0_End
L_Disp_Program_Mode0_:
;		JSR		F_Disp_AutoRun
		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_AutoRun-1
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode0_End
		RESB	0,R_Disp_Flag
		BBS5	<R_SysFlag1,L_Disp_Program_Mode0_NoPhoto
		SETB	3,R_Disp_Flag
		BBR7	<R_Disp_Flag,L_Disp_NoDecompression
L_Disp_Decompression:
		JSR		820H
.IF	MaskUpDate=0
		DW		01H
.ELSE
;		DW		01H
		DW		01H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF	;MaskUpDate=0
		DW		F_DispDecompression-1
		BRA		L_Disp_NoDecompression_End
L_Disp_NoDecompression:
;		JSR		F_Disp_NorFlashPic
		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_NorFlashPic-1
L_Disp_NoDecompression_End:
		JSR		820H
.IF	MaskUpDate=0
		DW		01H
.ELSE
;		DW		01H
		DW		01H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF	;MaskUpDate=0
		DW		F_ReadLCMDispRam-1
		BRA		L_Disp_Program_Mode0_End
L_Disp_Program_Mode0_NoPhoto:
		LDA		#<T_NoPhotoTab_A
		STA		<R_TempL
		LDA		#>T_NoPhotoTab_A
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
L_Disp_Program_Mode0_End:
		JMP		L_Disp_Program_End
L_Disp_Program_Mode1:
		CMP		#01H
		BEQ		L_Disp_Program_Mode1_
		JMP		L_Disp_Program_Mode2
L_Disp_Program_Mode1_:
		LDA		R_Mode1
		BEQ		L_Disp_Program_Mode10
		JMP		L_Disp_Program_Mode11
L_Disp_Program_Mode10:
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode1_End
		STZ		R_Page
		JSR		Main_Menu
		JMP		L_Disp_Program_Mode1_End
L_Disp_Program_Mode11:
		JMP		L_Disp_Program_Mode1_End
L_Disp_Program_Mode1_End:
		JMP		L_Disp_Program_End
L_Disp_Program_Mode2:
		CMP		#02H
		BEQ		L_Disp_Program_Mode2_
		JMP		L_Disp_Program_Mode3
L_Disp_Program_Mode2_:
		LDA		R_Mode1
		BEQ		L_Disp_Program_Mode20
		JMP		L_Disp_Program_Mode21
L_Disp_Program_Mode20:
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode2_End_
		JSR		Main_Menu
L_Disp_Program_Mode2_End_:
		JMP		L_Disp_Program_Mode2_End
L_Disp_Program_Mode21:
		CMP		#01H
		BEQ		L_Disp_Program_Mode21_0_
		JMP		L_Disp_Program_Mode22
L_Disp_Program_Mode21_0_:
		LDA		R_Mode2
		BNE		L_Disp_Program_Mode21_0
		JMP		L_Disp_Program_Mode21_1
L_Disp_Program_Mode21_0:
		RESB	0,R_Disp_Flag
		JSR		F_Disp_AutoSlideTime
		BBR1	<R_SysFlag1,L_Disp_Program_Mode21_01
L_Disp_Program_Mode21_00:
		LDA		#AUTO_SLIDE_ADDR_X
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_SEC_ADDR_Y
		STA		<R_CursorY
		LDA		#<Slide_MenuTab3
		STA		<R_TempL
		LDA		#>Slide_MenuTab3
		STA		<R_TempH
		LDX		#05			; SHOW 5 Character.
		JSR		Show_X_Char
		JMP		L_Disp_Program_Mode2_End
L_Disp_Program_Mode21_01:
		LDA		#AUTO_SLIDE_SEC_ADDR_X+010H
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_SEC_ADDR_Y
		STA		<R_CursorY
		STZ		R_Disp_CharL
		STZ		<R_TempL
		STZ		<R_TempH
		LDA		R_AutoSlideTime
L_Disp_Program_Mode21_010:
		CMP		#100
		BCC		L_Disp_Program_Mode21_011
		INC		<R_TempH
		SEC
		SBC		#100
		BRA		L_Disp_Program_Mode21_010
L_Disp_Program_Mode21_011:
		CMP		#10
		BCC		L_Disp_Program_Mode21_012
		INC		<R_TempL
		SEC
		SBC		#10
		BRA		L_Disp_Program_Mode21_011
L_Disp_Program_Mode21_012:
		CLC
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#AUTO_SLIDE_SEC_ADDR_X+008H
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_SEC_ADDR_Y
		STA		<R_CursorY
		CLC
		LDA		<R_TempL
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		LDA		#AUTO_SLIDE_SEC_ADDR_X
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_SEC_ADDR_Y
		STA		<R_CursorY
		CLC
		LDA		<R_TempH
		ADC		#30H
		STA		R_Disp_CharL
;		STZ		R_Disp_CharH
		JSR		F_Disp_NumOrABC_96X64
		JMP		L_Disp_Program_Mode2_End
L_Disp_Program_Mode21_1:
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode2_End
		RESB	0,R_Disp_Flag
		LDA		#<T_MenuTab10
		STA		<R_TempL
		LDA		#>T_MenuTab10
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
		BRA		L_Disp_Program_Mode2_End
L_Disp_Program_Mode22:
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode2_End
		RESB	0,R_Disp_Flag
		LDA		#<T_MenuTab11
		STA		<R_TempL
		LDA		#>T_MenuTab11
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
		BRA		L_Disp_Program_Mode2_End
L_Disp_Program_Mode2_End:
		JMP		L_Disp_Program_End
L_Disp_Program_Mode3:
		CMP		#03H
		BEQ		L_Disp_Program_Mode3_
		JMP		L_Disp_Program_Mode4
L_Disp_Program_Mode3_:
		LDA		R_Mode1
		BEQ		L_Disp_Program_Mode30
		JMP		L_Disp_Program_Mode31
L_Disp_Program_Mode30:
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode3_End_
		JSR		Main_Menu
L_Disp_Program_Mode3_End_:
		JMP		L_Disp_Program_Mode3_End
L_Disp_Program_Mode31:
		RESB	0,R_Disp_Flag
		CMP		#01H
		BNE		L_Disp_Program_Mode32
		BBR1	<R_SysFlag1,L_Disp_Program_Mode311
L_Disp_Program_Mode310:
		RESB	2,R_Disp_Flag
		STZ		R_Disp_CharL
;		STZ		R_Disp_CharH
		LDA		#YEAR_ADDR_X
		STA		<R_CursorX
		LDA		#YEAR_ADDR_Y
		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+008H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+010H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+018H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		BRA		L_Disp_Program_Mode312
L_Disp_Program_Mode311:
		SETB	2,R_Disp_Flag
		JSR		F_Disp_Clock
		JSR		F_Disp_Week
L_Disp_Program_Mode312:
		JMP		L_Disp_Program_Mode3_End
L_Disp_Program_Mode32:
		CMP		#02H
		BNE		L_Disp_Program_Mode33
		BBR1	<R_SysFlag1,L_Disp_Program_Mode321
L_Disp_Program_Mode320:
		RESB	2,R_Disp_Flag
		STZ		R_Disp_CharL
;		STZ		R_Disp_CharH
		LDA		#YEAR_ADDR_X+028H
		STA		<R_CursorX
		LDA		#YEAR_ADDR_Y
		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+030H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		BRA		L_Disp_Program_Mode322
L_Disp_Program_Mode321:
		SETB	2,R_Disp_Flag
		JSR		F_Disp_Clock
		JSR		F_Disp_Week
L_Disp_Program_Mode322:
		JMP		L_Disp_Program_Mode3_End
L_Disp_Program_Mode33:
		CMP		#03H
		BNE		L_Disp_Program_Mode34
		BBR1	<R_SysFlag1,L_Disp_Program_Mode331
L_Disp_Program_Mode330:
		RESB	2,R_Disp_Flag
		STZ		R_Disp_CharL
;		STZ		R_Disp_CharH
		LDA		#YEAR_ADDR_X+040H
		STA		<R_CursorX
		LDA		#YEAR_ADDR_Y
		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#YEAR_ADDR_X+048H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		BRA		L_Disp_Program_Mode332
L_Disp_Program_Mode331:
		SETB	2,R_Disp_Flag
		JSR		F_Disp_Clock
		JSR		F_Disp_Week
L_Disp_Program_Mode332:
		JMP		L_Disp_Program_Mode3_End
L_Disp_Program_Mode34:
		CMP		#04H
		BNE		L_Disp_Program_Mode35
		BBR1	<R_SysFlag1,L_Disp_Program_Mode341
L_Disp_Program_Mode340:
		RESB	2,R_Disp_Flag
		STZ		R_Disp_CharL
;		STZ		R_Disp_CharH
		LDA		#HOUR_ADDR_X
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+008H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		BRA		L_Disp_Program_Mode342
L_Disp_Program_Mode341:
		SETB	2,R_Disp_Flag
		JSR		F_Disp_Clock
		JSR		F_Disp_Week
L_Disp_Program_Mode342:
		JMP		L_Disp_Program_Mode3_End
L_Disp_Program_Mode35:
		CMP		#05H
		BNE		L_Disp_Program_Mode36
		BBR1	<R_SysFlag1,L_Disp_Program_Mode351
L_Disp_Program_Mode350:
		RESB	2,R_Disp_Flag
		STZ		R_Disp_CharL
;		STZ		R_Disp_CharH
		LDA		#HOUR_ADDR_X+018H
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+020H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		BRA		L_Disp_Program_Mode352
L_Disp_Program_Mode351:
		SETB	2,R_Disp_Flag
		JSR		F_Disp_Clock
		JSR		F_Disp_Week
L_Disp_Program_Mode352:
		JMP		L_Disp_Program_Mode3_End
L_Disp_Program_Mode36:
		BBR1	<R_SysFlag1,L_Disp_Program_Mode361
L_Disp_Program_Mode360:
		RESB	2,R_Disp_Flag
		STZ		R_Disp_CharL
;		STZ		R_Disp_CharH
		LDA		#HOUR_ADDR_X+030H
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#HOUR_ADDR_X+038H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		BRA		L_Disp_Program_Mode362
L_Disp_Program_Mode361:
		SETB	2,R_Disp_Flag
		JSR		F_Disp_Clock
		JSR		F_Disp_Week
L_Disp_Program_Mode362:
		JMP		L_Disp_Program_Mode3_End
L_Disp_Program_Mode3_End:
		JMP		L_Disp_Program_End
L_Disp_Program_Mode4:
		CMP		#04H
		BEQ		L_Disp_Program_Mode4_
		JMP		L_Disp_Program_Mode5
L_Disp_Program_Mode4_:
		LDA		R_Mode1
		BEQ		L_Disp_Program_Mode40
		JMP		L_Disp_Program_Mode41
L_Disp_Program_Mode40:
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode4_End_
		JSR		Main_Menu
L_Disp_Program_Mode4_End_:
		JMP		L_Disp_Program_Mode4_End
L_Disp_Program_Mode41:
		LDA		R_Mode1
		CMP		#01H
		BEQ		L_Disp_Program_Mode41_
L_Disp_Program_Mode45:
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode4_End_
		RESB	0,R_Disp_Flag
		LDA		#<T_AutoOnOFF_Off
		STA		<R_TempL
		LDA		#>T_AutoOnOFF_Off
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
		JMP		L_Disp_Program_Mode4_End
L_Disp_Program_Mode41_:
		LDA		R_Mode2
		BNE		L_Disp_Program_Mode41_001
L_Disp_Program_Mode41_000:
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode4_End_
		RESB	0,R_Disp_Flag
		LDA		#<T_AutoOnOFF_On
		STA		<R_TempL
		LDA		#>T_AutoOnOFF_On
		STA		<R_TempH
		JSR		F_Disp_ABCFull_A
		JMP		L_Disp_Program_Mode4_End
L_Disp_Program_Mode41_001:
		RESB	0,R_Disp_Flag
		LDA		R_Mode2
		CMP		#01H
		BNE		L_Disp_Program_Mode42
		BBR1	<R_SysFlag1,L_Disp_Program_Mode411
L_Disp_Program_Mode410:
		STZ		R_Disp_CharL
;		STZ		R_Disp_CharH
		LDA		#ON_TIME_ADDR_X+010H
		STA		<R_CursorX
		LDA		#ON_TIME_ADDR_Y+010H
		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#ON_TIME_ADDR_X+018H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		BRA		L_Disp_Program_Mode412
L_Disp_Program_Mode411:
		JSR		F_Disp_OnTime
		JSR		F_Disp_OffTime
L_Disp_Program_Mode412:
		JMP		L_Disp_Program_Mode4_End
L_Disp_Program_Mode42:
		CMP		#02H
		BNE		L_Disp_Program_Mode43
		BBR1	<R_SysFlag1,L_Disp_Program_Mode421
L_Disp_Program_Mode420:
		STZ		R_Disp_CharL
;		STZ		R_Disp_CharH
		LDA		#ON_TIME_ADDR_X+028H
		STA		<R_CursorX
		LDA		#ON_TIME_ADDR_Y+010H
		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		LDA		#ON_TIME_ADDR_X+030H
		STA		<R_CursorX
;		STA		<R_CursorY
		JSR		F_Disp_NumOrABC_96X64
		BRA		L_Disp_Program_Mode422
L_Disp_Program_Mode421:
		JSR		F_Disp_OnTime
		JSR		F_Disp_OffTime
L_Disp_Program_Mode422:
		JMP		L_Disp_Program_Mode4_End
L_Disp_Program_Mode43:
		CMP		#03H
		BNE		L_Disp_Program_Mode44

⌨️ 快捷键说明

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