📄 disp.asm
字号:
LDA #<T_AutoOnOFF_Off
STA <R_TempL
LDA #>T_AutoOnOFF_Off
STA <R_TempH
JSR F_Disp_ABCFull
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
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
LDA #ON_TIME_ADDR_X+010H
STA <R_CursorX
LDA #ON_TIME_ADDR_Y+010H
STA <R_CursorY
JSR F_R_CursorY_37_XY_Off
JSR F_Disp_NumOrABC
LDA #ON_TIME_ADDR_X+018H
STA <R_CursorX
JSR F_Disp_NumOrABC
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
LDA #ON_TIME_ADDR_X+028H
STA <R_CursorX
LDA #ON_TIME_ADDR_Y+010H
STA <R_CursorY
JSR F_R_CursorY_37_XY_Off
JSR F_Disp_NumOrABC
LDA #ON_TIME_ADDR_X+030H
STA <R_CursorX
JSR F_Disp_NumOrABC
BRA L_Disp_Program_Mode422
L_Disp_Program_Mode421:
JSR F_Disp_OnTime
JSR F_Disp_OffTime
L_Disp_Program_Mode422:
BRA L_Disp_Program_Mode4_End
L_Disp_Program_Mode43:
CMP #03H
BNE L_Disp_Program_Mode44
BBR1 <R_SysFlag1,L_Disp_Program_Mode431
L_Disp_Program_Mode430:
STZ R_Disp_CharL
LDA #OFF_TIME_ADDR_X+010H
STA <R_CursorX
LDA #OFF_TIME_ADDR_Y+010H
STA <R_CursorY
JSR F_R_CursorY_37_XY_Off
JSR F_Disp_NumOrABC
LDA #OFF_TIME_ADDR_X+018H
STA <R_CursorX
JSR F_Disp_NumOrABC
BRA L_Disp_Program_Mode432
L_Disp_Program_Mode431:
JSR F_Disp_OnTime
JSR F_Disp_OffTime
L_Disp_Program_Mode432:
BRA L_Disp_Program_Mode4_End
L_Disp_Program_Mode44:
BBR1 <R_SysFlag1,L_Disp_Program_Mode441
L_Disp_Program_Mode440:
STZ R_Disp_CharL
LDA #OFF_TIME_ADDR_X+028H
STA <R_CursorX
LDA #OFF_TIME_ADDR_Y+010H
STA <R_CursorY
JSR F_R_CursorY_37_XY_Off
JSR F_Disp_NumOrABC
LDA #OFF_TIME_ADDR_X+030H
STA <R_CursorX
JSR F_Disp_NumOrABC
BRA L_Disp_Program_Mode442
L_Disp_Program_Mode441:
JSR F_Disp_OnTime
JSR F_Disp_OffTime
L_Disp_Program_Mode442:
L_Disp_Program_Mode4_End:
BRA L_Disp_Program_End
L_Disp_Program_Mode5:
CMP #05H
BEQ L_Disp_Program_Mode5_
BRA L_Disp_Program_Mode6
L_Disp_Program_Mode5_:
LDA R_Mode1
BNE L_Disp_Program_Mode5_1
L_Disp_Program_Mode5_0:
BBR0 <R_Disp_Flag,L_Disp_Program_Mode5_End
JSR Main_Menu
BRA L_Disp_Program_End
L_Disp_Program_Mode5_1:
CMP #01H
BNE L_Disp_Program_Mode5_2
LDA R_Mode2
BNE L_Disp_Program_Mode5_1_1
L_Disp_Program_Mode5_1_0:
LDA #<T_NormalClock
STA <R_TempL
LDA #>T_NormalClock
STA <R_TempH
JSR F_Disp_ABCFull
BRA L_Disp_Program_Mode5_End
L_Disp_Program_Mode5_1_1:
BBR0 <R_Disp_Flag,L_Disp_Program_Mode5_End
RESB 0,R_Disp_Flag
SETB 2,R_Disp_Flag
JSR F_Disp_Clock
JSR F_Disp_Week
L_Disp_Program_Mode5_End:
BRA L_Disp_Program_End
L_Disp_Program_Mode5_2:
LDA #<T_WaterMarkClock
STA <R_TempL
LDA #>T_WaterMarkClock
STA <R_TempH
JSR F_Disp_ABCFull
BRA L_Disp_Program_End
L_Disp_Program_Mode6:
LDA R_Mode1
BEQ L_Disp_Program_Mode60
BRA L_Disp_Program_Mode61
L_Disp_Program_Mode60:
BBR0 <R_Disp_Flag,L_Disp_Program_Mode6_End
JSR Main_Menu
L_Disp_Program_Mode61:
L_Disp_Program_Mode6_End:
L_Disp_Program_End:
RTS
;;==============================================
F_Disp_AutoRun:
PHA
BBR0 <R_SysFlag1,L_Disp_AutoRun_End
LDA R_Mode
BNE L_Disp_AutoRun_End
LDA R_Disp_Time
LSR A
CMP R_AutoSlideTime
BCC L_Disp_AutoRun_End
STZ R_Disp_Time
SETB 0,R_Disp_Flag
L_Disp_AutoRun:
JSR 820H
.IF MaskUpDate=0
DW 02H
.ELSE
DW 02H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF ;MaskUpDate=0
DW F_GetPictuieNum-1
LDA R_Disp_Pic_Num+1
CMP R_PicNumMax+1
BCC L_Disp_AutoRun_Pic_Num_Inc
LDA R_Disp_Pic_Num
CMP R_PicNumMax
BCS L_Disp_AutoRun_End_LoadMin
L_Disp_AutoRun_Pic_Num_Inc:
INC R_Disp_Pic_Num
BNE L_Disp_AutoRun_End
INC R_Disp_Pic_Num+1
BRA L_Disp_AutoRun_End
L_Disp_AutoRun_End_LoadMin:
LDA #C_Disp_Pic_NumMin
STA R_Disp_Pic_Num
STZ R_Disp_Pic_Num+1
L_Disp_AutoRun_End:
BBS5 <R_SysFlag1,L_Disp_AutoRun_Out
JSR 820H
.IF MaskUpDate=0
DW 02H
.ELSE
; DW 00H
DW 02H+C_NorFlash_CS_Drr+C_NorFlash_CS_Drr
.ENDIF ;MaskUpDate=0
DW F_CheckPictuieTrueOrFalse-1
LDA <R_TempL
CMP #01H
BNE L_Disp_AutoRun
L_Disp_AutoRun_Out:
PLA
RTS
;;==============================================
F_Disp_NorFlashPic:
PHA
; CLC
; LDA R_Disp_Pic_Num
; ADC #<C_NorFlash_CS_Drr
; STA <R_Pic_DrrL
; LDA #>C_NorFlash_CS_Drr
; STA <R_Pic_DrrH
INC R_DispMode
LDA R_DispMode
CMP #0EH
BCC L_Disp_NorFlashPic0
STZ R_DispMode
L_Disp_NorFlashPic0:
LDA R_DispMode
BNE L_Disp_NorFlashPic1
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_ST7636R_Disp_Pic-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic1:
CMP #01H
BNE L_Disp_NorFlashPic2
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_ST7636R_Disp_Pic1-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic2:
CMP #02H
BNE L_Disp_NorFlashPic3
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_ST7636R_Disp_Pic3-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic3:
CMP #03H
BNE L_Disp_NorFlashPic4
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_ST7636R_Disp_Pic2-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic4:
CMP #04H
BNE L_Disp_NorFlashPic5
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_ST7636R_Disp_Pic4-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic5:
CMP #05H
BNE L_Disp_NorFlashPic6
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_ST7636R_Disp_Pic4-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic6:
CMP #06H
BNE L_Disp_NorFlashPic7
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_ST7636R_Disp_Pic6-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic7:
CMP #07H
BNE L_Disp_NorFlashPic8
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_ST7636R_Disp_Pic6-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic8:
CMP #08H
BNE L_Disp_NorFlashPic9
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_ST7636R_Disp_PicDMA-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic9:
CMP #09H
BNE L_Disp_NorFlashPic10
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_ST7636R_Disp_Pic_Mosaic1-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic10:
CMP #0AH
BNE L_Disp_NorFlashPic11
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_ST7636R_Disp_Pic_Mosaic2-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic11:
CMP #0BH
BNE L_Disp_NorFlashPic12
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_ST7636R_Disp_Pic_Mosaic3-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic12:
CMP #0CH
BNE L_Disp_NorFlashPic13
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_ST7636R_Disp_Pic_Mosaic4-1
JMP L_Disp_NorFlashPic_End
L_Disp_NorFlashPic13:
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_ST7636R_Disp_Pic_Mosaic-1
L_Disp_NorFlashPic_End:
STZ R_Disp_Time
;displaying have a key relase will SET This Flag
RESB 0,R_Disp_Flag
PLA
RTS
;;==============================================
F_Disp_ABCFull:
PHA
PHX
PHY
LDA <R_SysFlag2
AND #0F0H
BNE L_Disp_ABC_1
L_Disp_ABC_0:
JMP L_Disp_ABC_ST7636R
L_Disp_ABC_1:
CMP #080H
BCC L_Disp_ABC_2
JMP L_Disp_ABC_ST7637
L_Disp_ABC_2:
CMP #010H
BNE L_Disp_ABC_3
JMP L_Disp_ABC_ST7669
L_Disp_ABC_3:
CMP #020H
BNE L_Disp_ABC_4
JMP L_Disp_ABC_ST7787
L_Disp_ABC_4:
CMP #030H
BNE L_Disp_ABC_5
JMP L_Disp_ABC_0_
L_Disp_ABC_5:
CMP #040H
BNE L_Disp_ABC_6
JMP L_Disp_ABC_ST7624
L_Disp_ABC_6:
CMP #050H
BNE L_Disp_ABC_7
JMP L_Disp_ABC_ST7626
L_Disp_ABC_7:
CMP #060H
BNE L_Disp_ABC_8
JMP L_Disp_ABC_ST7628
L_Disp_ABC_8:
JMP L_Disp_ABC_OLED
L_Disp_ABC_0_:
L_Disp_ABC_ST7624:
L_Disp_ABC_ST7626:
L_Disp_ABC_ST7628:
L_Disp_ABC_OLED:
; JSR F_Disp_ABCFull_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_ABCFull_A-1
JMP L_Disp_ABCFull_End
L_Disp_ABC_ST7669:
; JSR F_Disp_ABCFull_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_ABCFull_C-1
JMP L_Disp_ABCFull_End
L_Disp_ABC_ST7787:
JSR F_Disp_ABCFull_B
JMP L_Disp_ABCFull_End
L_Disp_ABC_ST7636R:
L_Disp_ABC_ST7637:
LDA #MENU_ADDR_X
STA <R_CursorX
LDA #MENU_ADDR_Y
STA <R_CursorY
JSR F_R_CursorY_37_XY_Off
LDX #Page_Display_Line
L_Disp_ABCFull_1:
PHX
LDX #Line_Display_Char
L_Disp_ABCFull_2:
PHX
LDA (R_TempL)
STA R_Disp_CharL
JSR F_Disp_NumOrABC
INC <R_TempL
BNE L_Disp_ABCFull_3
INC <R_TempH
L_Disp_ABCFull_3:
CLC
LDA <R_CursorX
ADC #08H
STA <R_CursorX
PLX
DEX
BNE L_Disp_ABCFull_2
LDA #MENU_ADDR_X
STA <R_CursorX
CLC
LDA <R_CursorY
ADC #10H
STA <R_CursorY
PLX
DEX
BNE L_Disp_ABCFull_1
L_Disp_ABCFull_End:
PLY
PLX
PLA
RTS
;;==============================================
F_Clear_MenuOtherArea:
PHA
PHX
PHY
M_Keep_Drr
M_Change_ST7636R_CS_Drr
LDA <R_SysFlag2
AND #0F0H
BNE L_Clear_MenuOtherArea_1
L_Clear_MenuOtherArea_0:
BRA L_Clear_MenuOtherArea_ST7636R
L_Clear_MenuOtherArea_1:
CMP #080H
BCC L_Clear_MenuOtherArea_2
BRA L_Clear_MenuOtherArea_ST7637
L_Clear_MenuOtherArea_2:
CMP #010H
BNE L_Clear_MenuOtherArea_3
BRA L_Clear_MenuOtherArea_ST7669
L_Clear_MenuOtherArea_3:
CMP #020H
BNE L_Clear_MenuOtherArea_4
JMP L_Clear_MenuOtherArea_ST7787
L_Clear_MenuOtherArea_4:
JMP L_Clear_MenuOtherArea_End
L_Clear_MenuOtherArea_ST7636R:
M_Input R_RowAddressSet ;COM SET
M_Write_D 060H+C_ST7636R_Y_Off
M_Write_D 07FH+C_ST7636R_Y_Off
BRA L_Clear_MenuOtherArea_ST763
L_Clear_MenuOtherArea_ST7637:
M_Input R_RowAddressSet ;COM SET
M_Write_D 060H+C_ST7637_Y_Off
M_Write_D 07FH+C_ST7637_Y_Off
L_Clear_MenuOtherArea_ST763:
M_Input R_ColumeAddressSet ;SEG SET
M_Para R_ColumeAddressStartL
M_Para R_ColumeAddressEndL
M_Input R_MemoryWrite
LDA #128
STA <R_Disp_TempL
LDY #020H
JMP L_Clear_MenuOtherArea_Com
L_Clear_MenuOtherArea_ST7669:
M_Input R_RowAddressSet ;COM SET
M_Write_D 000H
M_Write_D 060H+C_ST7669_Y_Off
M_Write_D 000H
M_Write_D 09FH+C_ST7669_Y_Off
M_Input R_ColumeAddressSet ;SEG SET
M_Para R_ColumeAddressStartH
M_Para R_ColumeAddressStartL
M_Para R_ColumeAddressEndH
M_Para R_ColumeAddressEndL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -