📄 xttx.asm
字号:
; ***************************************************************************
; * Project : Electronic Dictionary *
; * Date : 2003.9 *
; * File Name : XTTX.ASM *
; ***************************************************************************
pw 128
case off
externs on
include st2202.def ;; Include ST2100 I/O define.
include Data.def
include DataBank.def
include KeyDef.def
include Graph.def
include Graphics.h
include bios.h
include Debug.h ;; Include debug macro.
public CheckSchedule_in_bios
ps0 .SECTION
BankNo equ biosbank
CheckSchedule_in_bios:
rmb5 <scanfstate
rmb5 <SF0
stz TP0 ;; Initial schedule set counter = 0.
bra checkschedule2
checkschedule1: inc TP0 ;; Schedule set counter += 1.
checkschedule2: lda TP0
cmp SCRecordCounter
beq checkschedule4 ;; Skip if finish check schedule.
lda TP0
asl
sta TP1 ;;TempCount
asl
;;clc
adc TP1 ;;TempCount
tay
ldx #4
?Cmpweek: lda SchData+5,y
cmp #0ffh
beq ?CmpYear
cmp <RealWeek
bne checkschedule1
ldx #2
bra ?CmpHour
?CmpYear: lda SchData+4,y
cmp #0ffh
beq ?CmpMonth
cmp <Min,x
bne checkschedule1
?CmpMonth: dex
lda SchData+3,y
cmp #0ffh
beq ?CmpDay
cmp <Min,x
bne checkschedule1
?CmpDay: dex
lda SchData+2,y
cmp #0ffh
beq ?CmpHour
cmp <Min,x
bne checkschedule1
?CmpHour: dex
lda SchData+1,y
cmp <Min,x
bcc checkschedule1 ;时间已过
beq ?CmpMinute
smb5 <SCanfState
bra checkschedule1 ;时间未到
?CmpMinute: dex
lda SchData,y
cmp <Min,x
bcc checkschedule1 ;时间已过
smb5 <SCanfState
bne checkschedule1 ;时间未到
lda #00100000b ;; Set to multi-alarm go.
ora AlarmFlag2
sta AlarmFlag2
lda #3Ch ;; Tone counter = 60.
sta ToneCounter
smb5 <SF0
checkschedule4:
rts
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -