📄 disp96x64.asm
字号:
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 + -