📄 sched.asm
字号:
Lda #<Remarkbank
Jmp Longgo
;;--Menupgup--
Scanschmenupgupp:
Lda #>Viewnameuppage-1
Pha
Lda #<Viewnameuppage-1
Pha
Lda #>Remarkbank
Pha
Lda #<Remarkbank
Jmp Longgo
;;--Menupgdown--
Scanschmenupgdownp:
Lda #>Viewnamedownpage-1
Pha
Lda #<Viewnamedownpage-1
Pha
Lda #>Remarkbank
Pha
Lda #<Remarkbank
Jmp Longgo
;;----Enter---
Scanschmenuenterp:
Alarmenter:
Lda #Scanschcontenn
Sta <Gamestate
Jsr Schhelpprc
Jsr Ljsr
Dw Remarkbank
Dw Copydatatoinputbuff-1
Stz <Tempcount
Jsr Ljsr
Dw Remarkbank
Dw Shownamecard-1
;;Ldy #6
;;Jsr Inittimesche
;;Sta Schemonth ;;Save As Bcd
;;Ldy #10
;;Jsr Inittimesche
;;Sta Scheday
;;Ldy #26
;;Jsr Inittimesche
;;Sta Schehour
;;Ldy #30
;;Jsr Inittimesche
;;Sta Scheminute
Jmp Exitwithupdate
;;-----Esc----
Scanschmenuescp:
Jmp Rettomenu ;; Back To Main Menu.
;;----Delet---
Scanschmenudeletp:
Lda #Deletschn_Yn
Sta <Gamestate
Jsr Schhelpprc
Lda #>Ds0Bank
Sta <Drrh
Lda #<Ds0Bank
Sta <Drrl
Lcls
Lprint Deletconfirmmsg
Jmp Exitwithupdate
;;---Insert---
Scanschmenuinsertp:
Jmp Initinsertkeyp
;;---Find---
Scanschmenufindp:
Lda <Totalcardnol
Cmp #6
Bcs ?1
Jmp Exitnoupdate
?1: Lda #Findschn
Sta <Gamestate
Jsr Schhelpprc
Lda #>Initeditrenyizi-1
Pha
Lda #<Initeditrenyizi-1
Pha
Lda #>Cardbank
Pha
Lda #<Cardbank
Jmp Longgo
;;[St]---------------------------------[St]
;; 7.询问删除提醒状态
;;[St]---------------------------------[St]
Deletschn_Y:
Lda <Keyno
Cmp #Ykey
Beq Deletsch_Ykeyp
Cmp #Nkey
Beq Deletsch_Nkeyp
Cmp #Esckey
Beq Deletsch_Nkeyp
Jmp Exitnoupdate
;;-----Ykey-----
Deletsch_Ykeyp:
Lcls
Lprint Delethintmsg
jsr CALL_LUpdateScreen
Jsr Ljsr
Dw Remarkbank
Dw Deletecurrecord-1
Jsr Deletescdata ;;02-4-18 8:33
Dec Screcordcounter ;; Screcordcounter -= 1
;Jsr Chkscdata
;Jsr Ljsr
;Dw Biosbank
;Dw Checkschedule_In_Bios-1
Jsr Checkschedule
;;-----Nkey------
Deletsch_Nkeyp:
Jmp Initscnsche1 ;; Update Schedule's Screen.
;;[St]---------------------------------[St]
;; 8.浏览提醒内容状态
;;[St]---------------------------------[St]
Scanschconten:
Ldy #0Ffh
Scanschconten_0:
Iny
Lda Scanschcontkeytab,Y
Bmi Scanschconten_1
Cmp <Keyno
Bne Scanschconten_0
Tya
Asl
Tay
Lda Scanschcontkeyptab+1,Y
Pha
Lda Scanschcontkeyptab,Y
Pha
Rts
Scanschcontkeytab:
Db Upkey,Downkey,Esckey,Amendkey,Nullkey
Scanschcontkeyptab:
Dw Scanschcontupp-1,Scanschcontdownp-1
Dw Scanschcontescp-1,Scanschcontamendp-1
Scanschconten_1:
Jmp Exitnoupdate
;;----Up----
Scanschcontupp:
Lda #>Upviewfun-1
Pha
Lda #<Upviewfun-1
Pha
Lda #>Remarkbank
Pha
Lda #<Remarkbank
Jmp Longgo
;;---Down---
Scanschcontdownp:
Lda #>Downviewfun-1
Pha
Lda #<Downviewfun-1
Pha
Lda #>Remarkbank
Pha
Lda #<Remarkbank
Jmp Longgo
;;----Esc---
Scanschcontescp:
Jmp Initscnsche1
;;---Amend--
Scanschcontamendp:
Smb4 <Schflag ;;Amend Flag
Jmp Initinsertkeyp_0
;;[St]---------------------------------[St]
;; 9.查询提醒状态(任意字)
;;[St]---------------------------------[St]
Findsch:
Lda <Keyno
Cmp #Enterkey
Beq Startfindsch
Cmp #Esckey
Beq Escfindsch
Jmp Exitnoupdate
Escfindsch: Lexitscanf ;02-9-20 9:30
Jmp Initscnsche1
Startfindsch:
Lexitscanf ;02-9-20 9:30
Jsr Ljsr
Dw Remarkbank
Dw Findmatch-1
;;Jsr Findmatch
Bcs Nomatchret
Jmp Dspschmenuentry
Nomatchret: Lda #>Reinputmsg-1
Pha
Lda #<Reinputmsg-1
Pha
Lda #>Cardbank
Pha
Lda #<Cardbank
Jmp Longgo
;;===============================================================
Maxdayofmonth: Db 32H,30H,32H,31H,32H,31H,32H,32H,31H
Db 0,0,0,0,0,0,32H,31H,32H
;;[P]----------------------------------[P]
;; 设定时间加 1或减1公共入口(上下键).
;;[P]----------------------------------[P]
Changetimeent:
Ldy <Schselectno
Lda Typesettimeitem,Y
Sta <Tempcount
Lda Schesetitem
Asl
Clc
Adc <Tempcount
Tay
Lda Typesettimetab+1,Y
Pha
Lda Typesettimetab,Y
Pha
Rts
;;------Year-----
Yearset: Sed
Lda <Keyno
Cmp #Upkey
Beq Setyearupkey
Jmp Setyeardownkey
;;------Month-----
Monthset: Sed
Lda <Keyno
Cmp #Upkey
Beq Setmonthupkey
Jmp Setmonthdownkey
;;------Day-----
Dayset: Sed
Lda <Keyno
Cmp #Upkey
Beq Setdayupkey
Jmp Setdaydownkey
;;------Hour-----
Hourset: Sed
Lda <Keyno
Cmp #Upkey
Beq Sethourupkey
Jmp Sethourdownkey
;;------Minute-----
Minuteset: Sed
Lda <Keyno
Cmp #Upkey
Beq Setminuteupkey
Jmp Setminutedownkey
;;------Week-----
Weekset: Lda <Keyno
Cmp #Upkey
Beq Setweekupkey
Jmp Setweekdownkey
;;[P]----------------------------------[P]
;; Previous Schedule Or 设定时间加 1.
;;[P]----------------------------------[P]
;;------------Set Year-----------
Setyearupkey:
;;Sed
Lda Scheyear
Clc
Adc #1
Todealwithyear: Jmp Dealwithyear
;;------------Set Month-----------
Setmonthupkey:
;;Sed
Lda Schemonth
Clc
Adc #1
Sta Schemonth
Cmp #13H
Bne Month_Add_01
Lda #1
Sta Schemonth
Month_Add_01:
;;Jsr Corretscheday
Jsr Corretsetupday
Ldx Schemonth
Jmp Schesiad5
;;------------Set Day-----------
Setdayupkey:
;;Sed
Lda Scheday
Clc
Adc #1
Sta Scheday
Jsr Corretscheday
Ldx Scheday
Jmp Schesiad5
;;------------Set Hour-----------
Sethourupkey:
;;Sed
Lda Schehour
Clc
Adc #1
Sta Schehour
Cmp #24H
Bne Hour_Add1
Stz Schehour
Hour_Add1: Ldx Schehour
Jmp Schesiad5
;;------------Set Minite-----------
Setminuteupkey:
;;Sed
Lda Scheminute
Clc
Adc #1
Cmp #60H
Bne Min_Add_1
Lda #0
Min_Add_1: Sta Scheminute
Ldx Scheminute
Jmp Schesiad5
;;------------Set Week-----------
Setweekupkey:
Inc Scheweek
Lda Scheweek
Cmp #7
Bne ?001
Stz Scheweek
?001: Jmp Dspweekent
;;---------------------------------
Schesiad5: ;;Plp
Cld
La2Xy
Phy
Phx
Clc
Lda <Curxpos
Ldx <Curypos
?Count: Beq ?000
Adc #20
Dex
Bra ?Count
?000: Tay
Pla ;;X
Sta Inputbuff,Y
Sta Textbuffor,Y
Pla ;;Y
Sta Inputbuff+1,Y
Sta Textbuffor+1,Y
Jmp Exitwithupdate
Typesettimeitem:
Db 0,4,10,16,24
Typesettimetab:
Daytypesettime:
Dw Hourset-1,Minuteset-1
Weektypesettime:
Dw Weekset-1,Hourset-1,Minuteset-1
Monthtypesettime:
Dw Dayset-1,Hourset-1,Minuteset-1
Yeartypesettime:
Dw Monthset-1,Dayset-1,Hourset-1,Minuteset-1
Oncetypesettime:
Dw Yearset-1,Monthset-1,Dayset-1,Hourset-1,Minuteset-1
;;[P]------------------------------[P]
;; 设定时间减 1.
;;[P]------------------------------[P]
;;------------Set Year-----------
Setyeardownkey:
;;Sed
Lda Scheyear
Sec
Sbc #1
Dealwithyear: Sta Scheyear
Jsr Corretsetupday
Ldx Scheyear
Jmp Schesiad5
;;Jmp Exitnoupdate
;;------------Set Month-----------
Setmonthdownkey:
;;Sed
Lda Schemonth
Sec
Sbc #1
Bne Month_Dec_01
Lda #12H
Month_Dec_01: Sta Schemonth
;;Jsr Corretscheday
Jsr Corretsetupday
Ldx Schemonth
Jmp Schesiad5
;;------------Set Day-----------
Setdaydownkey:
;;Sed
Lda Scheday
Sec
Sbc #1
Sta Scheday
Bne Schetimedec_10
Ldy Schemonth
Dey
Lda Maxdayofmonth,Y
;;Dec ;;绝对不能用此指令
Sec
Sbc #1
Sta Scheday
Jsr Corretscheday
;;Jsr Corretsetupday
Schetimedec_10: Ldx Scheday
Jmp Schesiad5
;;------------Set Hour-----------
Sethourdownkey:
;;Sed
Lda Schehour
Sec
Sbc #1
Bpl Hour_Dec1
Lda #23H
Hour_Dec1: Sta Schehour
Ldx Schehour
Jmp Schesiad5
;;------------Set Minute-----------
Setminutedownkey:
;;Sed
Lda Scheminute
Sec
Sbc #1
Bpl Min_Sbc_1
Lda #59H
Min_Sbc_1: Sta Scheminute
Ldx Scheminute
Jmp Schesiad5
;;------------Set Week-----------
Setweekdownkey:
Lda Scheweek
Bne Dspweekent_0
Lda #7
Sta Scheweek
Dspweekent_0: Dec Scheweek
Dspweekent: Lda Scheweek
Asl
Tay
Lda Weekasciitab,Y
Sta Inputbuff+28
Sta Textbuffor+28
Lda Weekasciitab+1,Y
Sta Inputbuff+29
Sta Textbuffor+29
Jmp Exitwithupdate
;;[P]----------------------------------------------[P]
;; Schedule 移到上一个设定项.
;;[P]----------------------------------------------[P]
Schesetleftitem:
Lda Schesetitem
Beq Schesetleftitem_1
Dec Schesetitem
Schesetleftitem_1:
Bra Selectstate
;;[P]-------------------------------------------[P]
;; 进入 Schedule 设定模式 Or 移到下一个设定项.
;;[P]-------------------------------------------[P]
Schesetrightitem:
Inc Schesetitem
Lda Schesetitem
Cmp <Setitemmax
Bcc Selectstate
Lcls
Lprint Inputbuff
jsr CALL_LUpdateScreen
Rmb3 <Scanfstate
;;Lda #Scheinputlength
Ldy <Schselectno
Lda Typeheadlentab,Y
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -