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

📄 disp.asm

📁 显示程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;;==============================================



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

;;==============================================
		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
;;==============================================
.Global		F_Disp_Program
.Global		F_Disp_ABCFull
.Global		T_NorFlahNoPragramTab
.Global		T_NoPhotoTab
.Global		T_AutoPlayModeTab
.Global		T_SinglePhotoTab
.Global		F_Disp_NumOrABC
.Global		F_Clear_MenuOtherArea


.Global		F_Disp_AutoRun
.Global		F_Disp_NorFlashPic
.Global		F_Disp_NumOrABC_Boot


;;==============================================
.Extern				F_Disp_Program_B

;;==============================================
MINUS_SIGN				.EQU	045				; '-' ASCII
COLON_SIGN				.EQU	058				; ':' ASCII
ARROW_SIGN				.EQU	016				; '->' ASCII
;;;	benny add 12/06/2006 128X128 (ST7636R)

;Page_Display_Line		.EQU	8		; 128/16

Page_Display_Line		.EQU	6		; 128/16

Line_Display_Char		.EQU	16				; 128/8


MENU_ADDR_X				.EQU	C_ST7636R_X_Off
MENU_ADDR_Y				.EQU	C_ST7636R_Y_Off
YEAR_ADDR_X				.EQU	C_ST7636R_X_Off+018H
YEAR_ADDR_Y				.EQU	C_ST7636R_Y_Off+020H
HOUR_ADDR_X				.EQU	C_ST7636R_X_Off+020H
HOUR_ADDR_Y				.EQU	YEAR_ADDR_Y+010H
WEEK_ADDR_X				.EQU	C_ST7636R_X_Off+018H
WEEK_ADDR_Y				.EQU	YEAR_ADDR_Y+030H
AUTO_SLIDE_ADDR_X		.EQU	C_ST7636R_X_Off
AUTO_SLIDE_ADDR_Y		.EQU	C_ST7636R_Y_Off
AUTO_SLIDE_SEC_ADDR_X	.EQU	C_ST7636R_X_Off+008H
AUTO_SLIDE_SEC_ADDR_Y	.EQU	C_ST7636R_Y_Off+050H
ON_TIME_ADDR_X			.EQU	C_ST7636R_X_Off+010H
ON_TIME_ADDR_Y			.EQU	C_ST7636R_Y_Off
OFF_TIME_ADDR_X			.EQU	ON_TIME_ADDR_X
OFF_TIME_ADDR_Y			.EQU	ON_TIME_ADDR_Y+040H
;;==============================================
;;==============================================
PS3_4800		.SECTION
;;==============================================
;;==============================================




;;==============================================
F_Disp_Program:
		LDA		<R_SysFlag2
		AND		#0F0H
		BNE		L_Disp_Program_1
L_Disp_Program_0:
		BRA		L_Disp_Program_ST7636R
L_Disp_Program_1:
		CMP		#080H
		BCC		L_Disp_Program_2
		BRA		L_Disp_Program_ST7637
L_Disp_Program_2:
		CMP		#010H
		BNE		L_Disp_Program_3
		BRA		L_Disp_Program_ST7669
L_Disp_Program_3:
		CMP		#020H
		BNE		L_Disp_Program_4
		BRA		L_Disp_Program_ST7787
L_Disp_Program_4:
		CMP		#030H
		BNE		L_Disp_Program_5
		BRA		L_Disp_Program_0_
L_Disp_Program_5:
;		CMP		#040H
;		BNE		L_Disp_Program_6
;		BRA		L_Disp_Program_ST7624
;L_Disp_Program_6:
;		CMP		#050H
;		BNE		L_Disp_Program_7
;		BRA		L_Disp_Program_ST7626
;L_Disp_Program_7:
;		CMP		#060H
;		BNE		L_Disp_Program_8
;		BRA		L_Disp_Program_ST7628
;L_Disp_Program_8:
		BRA		L_Disp_Program_OLED
L_Disp_Program_ST7624:
L_Disp_Program_ST7626:
L_Disp_Program_ST7628:
L_Disp_Program_OLED:
;;;		JSR		F_Disp_Program_A
		JSR		820H
.IF	MaskUpDate=0
		DW		02H
.ELSE
;		DW		02H
		DW		02H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF	;MaskUpDate=0
		DW		F_Disp_Program_A-1
		RTS
L_Disp_Program_ST7669:
;;;		JSR		F_Disp_Program_C
		JSR		820H
.IF	MaskUpDate=0
		DW		02H
.ELSE
;		DW		02H
		DW		02H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF	;MaskUpDate=0
		DW		F_Disp_Program_C-1
		RTS
L_Disp_Program_ST7787:
		JSR		F_Disp_Program_B
		RTS
L_Disp_Program_0_:
;		JSR		F_Disp_Program_A
		JSR		820H
.IF	MaskUpDate=0
		DW		02H
.ELSE
;		DW		02H
		DW		02H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF	;MaskUpDate=0
		DW		F_Disp_Program_A-1
		RTS
;;==============================================
F_R_CursorY_37_XY_Off:
		LDA		<R_SysFlag2
		AND		#0F0H
		BEQ		L_R_CursorY_37_XY_Off_End
		CLC
		LDA		<R_CursorY
		ADC		#C_ST7637_Y_Off
		SEC
		SBC		#C_ST7636R_Y_Off
		STA		<R_CursorY
		CLC
		LDA		<R_CursorX
		ADC		#C_ST7637_X_Off
		SEC
		SBC		#C_ST7636R_X_Off
		STA		<R_CursorX
L_R_CursorY_37_XY_Off_End:
		RTS
;;==============================================
L_Disp_Program_ST7637:
L_Disp_Program_ST7636R:
F_Disp_Program1:
		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
		JSR		F_Clear_MenuOtherArea
		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
		JSR		F_Clear_MenuOtherArea
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:
;		LDA		R_TabNum
;		BEQ		L_Disp_Program_Mode1_End
;		LDA		R_TabNum
;		BNE		L_Disp_Program_Mode0_
		BBR5	<R_SysFlag1,L_Disp_Program_Mode0_
		LDA		#<T_NoPhotoTab
		STA		<R_TempL
		LDA		#>T_NoPhotoTab
		STA		<R_TempH
		JSR		F_Disp_ABCFull
		JSR		F_Clear_MenuOtherArea
		BRA		L_Disp_Program_Mode1_End
L_Disp_Program_Mode0_:
		JSR		F_Disp_AutoRun
		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
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
		STA		<R_TempL
		LDA		#>T_NoPhotoTab
		STA		<R_TempH
		JSR		F_Disp_ABCFull
		JSR		F_Clear_MenuOtherArea
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
		JSR		Main_Menu
		JSR		F_Clear_MenuOtherArea
		JMP		L_Disp_Program_Mode1_End
L_Disp_Program_Mode11:
		BRA		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

		JSR		F_R_CursorY_37_XY_Off

		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

		JSR		F_R_CursorY_37_XY_Off

		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
		JSR		F_Disp_NumOrABC
		LDA		#AUTO_SLIDE_SEC_ADDR_X+008H
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_SEC_ADDR_Y
		STA		<R_CursorY

		JSR		F_R_CursorY_37_XY_Off

		CLC
		LDA		<R_TempL
		ADC		#30H
		STA		R_Disp_CharL
		JSR		F_Disp_NumOrABC
		LDA		#AUTO_SLIDE_SEC_ADDR_X
		STA		<R_CursorX
		LDA		#AUTO_SLIDE_SEC_ADDR_Y
		STA		<R_CursorY

		JSR		F_R_CursorY_37_XY_Off

		CLC
		LDA		<R_TempH
		ADC		#30H
		STA		R_Disp_CharL
		JSR		F_Disp_NumOrABC
		JMP		L_Disp_Program_Mode2_End
L_Disp_Program_Mode21_1:
L_Disp_Program_Mode22:
		BBR0	<R_Disp_Flag,L_Disp_Program_Mode2_End
		JSR		SUB_MENU2
		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
		LDA		#YEAR_ADDR_X
		STA		<R_CursorX
		LDA		#YEAR_ADDR_Y
		STA		<R_CursorY
		JSR		F_R_CursorY_37_XY_Off
		JSR		F_Disp_NumOrABC
		LDA		#YEAR_ADDR_X+008H
		STA		<R_CursorX
		JSR		F_Disp_NumOrABC
		LDA		#YEAR_ADDR_X+010H
		STA		<R_CursorX
		JSR		F_Disp_NumOrABC
		LDA		#YEAR_ADDR_X+018H
		STA		<R_CursorX
		JSR		F_Disp_NumOrABC
		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
		LDA		#YEAR_ADDR_X+028H
		STA		<R_CursorX
		LDA		#YEAR_ADDR_Y
		STA		<R_CursorY
		JSR		F_R_CursorY_37_XY_Off
		JSR		F_Disp_NumOrABC
		LDA		#YEAR_ADDR_X+030H
		STA		<R_CursorX
		JSR		F_Disp_NumOrABC
		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
		LDA		#YEAR_ADDR_X+040H
		STA		<R_CursorX
		LDA		#YEAR_ADDR_Y
		STA		<R_CursorY
		JSR		F_R_CursorY_37_XY_Off
		JSR		F_Disp_NumOrABC
		LDA		#YEAR_ADDR_X+048H
		STA		<R_CursorX
		JSR		F_Disp_NumOrABC
		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
		LDA		#HOUR_ADDR_X
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		JSR		F_R_CursorY_37_XY_Off
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+008H
		STA		<R_CursorX
		JSR		F_Disp_NumOrABC
		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
		LDA		#HOUR_ADDR_X+018H
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		JSR		F_R_CursorY_37_XY_Off
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+020H
		STA		<R_CursorX
		JSR		F_Disp_NumOrABC
		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
		LDA		#HOUR_ADDR_X+030H
		STA		<R_CursorX
		LDA		#HOUR_ADDR_Y
		STA		<R_CursorY
		JSR		F_R_CursorY_37_XY_Off
		JSR		F_Disp_NumOrABC
		LDA		#HOUR_ADDR_X+038H
		STA		<R_CursorX
		JSR		F_Disp_NumOrABC
		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

⌨️ 快捷键说明

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