xttx.asm

来自「辞典 dict3.asm.grammar.asm,newword.asm 学」· 汇编 代码 · 共 96 行

ASM
96
字号
; ***************************************************************************
; *     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 + =
减小字号Ctrl + -
显示快捷键?