⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scankey.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
字号:
scan_keyboard:
        ldx     #0
paint06:
        stz     <KeyNo          ;; PreClear Key No.
        lda     ScanKeyTal,x
        sta     <Pb             ;; Scan out.先扫描地线
        jsr     delay_xxx
        lda     <pa
        eor     #0ffh
        bne     paintxxx

        clc             ;;
        lda     <KeyNo  ;;
        adc     #8      ;;
        sta     <KeyNo  ;;
paint2:
        inx
        lda     ScanKeyTal,x
        sta     <pb             ;; Scan out.
        jsr     delay_xxx

paintxxx:
        lda     <KeyNo
        bbr0    <PA,kinc0       ;; Key press.
        bbr1    <PA,kinc1
        bbr2    <PA,kinc2
        bbr3    <PA,kinc3
        bbr4    <PA,kinc4
        bbr5    <PA,kinc5
        bbr6    <PA,kinc6
        bbr7    <PA,kinc7

        cpx     #9
        bcs     paint5          ;; Branch if end scan.

        adc     #8
        sta     <KeyNo
        bra     paint2

paint5:
        stz     <Pb             ;; Scan all key。

        lda     #80h            ;; Set null key number.
        sta     <KeyNo          ;; Set key off state.
        smb4    <EFlag          ;; 设定Key up事件处理旗号.
        jsr     NxSeed
        pla
        pla
        jmp     painte

kinc7:  inc     <KeyNo
kinc6:  inc     <KeyNo
kinc5:  inc     <KeyNo
kinc4:  inc     <KeyNo
kinc3:  inc     <KeyNo
kinc2:  inc     <KeyNo
kinc1:  inc     <KeyNo
kinc0:

paint55:
        stz     <pb             ;; Scan all key。
        smb3    <EFlag          ;; 设定 Key down 事件处理旗号。
        rts
        
        
;;======================================================
porta_int:
JPAInt:
        pha
        phx
        phy
        cld

        jsr     scan_keyboard   ;; It's power key on mode.
        ldy     <keyno
        bmi     painte
        jsr     scan_keyboard   ;; It's power key on mode.
        cpy     <keyno
        bne     painte

        lda     AlarmFlag2
        and     #00100000b      ;; Alarm sound ?
        beq     paint7          ;; No !

        lda     AlarmFlag2
        and     #11011111b      ;; Stop Alarm sound.
        sta     AlarmFlag2
        stz     ToneCounter
        rmb4    <soundflag
        LSoundOff
        rmb3    <EFlag          ;; Clear Key down 事件。
        bra     painte

paint7: ldx     #0              ;; Reload auto power off time counter.
        bbr4    <SysOpt,paint8  ;; Branch if auto power timer is 3 minuts.
        ldx     #2              ;; Index to 5 minuts table.
paint8: lda     ATPTab,x
        sta     PowerT
        lda     ATPTab+1,x
        sta     PowerT+1
        jsr     NxSeed

painte: lda     <PA             ;; Reload last states。
        jmp     IntRt        
        
        
        
        
        
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -