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

📄 vectors08.lis

📁 摩托罗拉的时钟的原代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 013F 95                tsx
 0140 2708              beq L56
 0142 5502              ldhx *_Tdate+2
 0144 65000B            cphx #11
 0147 95                tsx
 0148 2615              bne L46
 014A           L56:
 014A           ;     { if(Tdate[2]<=30) goto isrTIMER1_exit;
 014A 5504              ldhx *_Tdate+4
 014C 65001E            cphx #30
 014F 95                tsx
 0150 9202              bgt L57
 0152 202D              bra L6
 0154           L57:
 0154           ;       Tdate[2]=0;Tdate[1]++;
 0154 3F05              clr *_Tdate+4+1
 0156 3F04              clr *_Tdate+4
 0158 5502              ldhx *_Tdate+2
 015A AF01              aix #1
 015C 3502              sthx *_Tdate+2
 015E 95                tsx
 015F           ;     }
 015F           L46:
 015F           ;    if(Tdate[1]<=12) goto isrTIMER1_exit;
 015F 5502              ldhx *_Tdate+2
 0161 65000C            cphx #12
 0164 95                tsx
 0165 9202              bgt L62
 0167 2018              bra L6
 0169           L62:
 0169           ;    Tdate[1]=0;Tdate[0]++;
 0169 3F03              clr *_Tdate+2+1
 016B 3F02              clr *_Tdate+2
 016D 5500              ldhx *_Tdate
 016F AF01              aix #1
 0171 3500              sthx *_Tdate
 0173           ;    if(Tdate[0]<=10000) goto isrTIMER1_exit;
 0173 5500              ldhx *_Tdate
 0175 652710            cphx #10000
 0178 95                tsx
 0179 9202              bgt L66
 017B 2004              bra L6
 017D           L66:
 017D           ;    Tdate[0]=0;
 017D 3F01              clr *_Tdate+1
 017F 3F00              clr *_Tdate
 0181           L6:
 0181           ;    isrTIMER1_exit:	 
 0181           ;    //------------------------------
 0181           ;    //清除定时器溢出标志位
 0181           ;    Changetime((int *)Tdate,(unsigned char *)Ttime);
 0181 A600              lda #<_Ttime
 0183 87                psha
 0184 A600              lda #>_Ttime
 0186 87                psha
 0187 A600              lda #<_Tdate
 0189 87                psha
 018A A600              lda #>_Tdate
 018C 87                psha
 018D CD0000            jsr _Changetime
 0190 A704              ais #4
 0192 95                tsx
 0193           ;    T1SC&=~(1<<TOFBit);
 0193 1F20              bclr #7,0x20
 0195           ;    
 0195           ;    asm("CLI");            //开总中断
 0195 9A                CLI
 0196           L1:
 0196 A701              ais #1
 0198                   .dbline 0 ; func end
 0198 86                pula
 0199 B700              sta *__rlo
 019B 86                pula
 019C B700              sta *__rhi
 019E 86                pula
 019F B700              sta *__r11
 01A1 86                pula
 01A2 B700              sta *__r10
 01A4 86                pula
 01A5 B700              sta *__r9
 01A7 86                pula
 01A8 B700              sta *__r8
 01AA 86                pula
 01AB B700              sta *__r7
 01AD 86                pula
 01AE B700              sta *__r6
 01B0 86                pula
 01B1 B700              sta *__r5
 01B3 86                pula
 01B4 B700              sta *__r4
 01B6 86                pula
 01B7 B700              sta *__r3
 01B9 86                pula
 01BA B700              sta *__r2
 01BC 86                pula
 01BD B700              sta *__r1
 01BF 86                pula
 01C0 B700              sta *__r0
 01C2 8A                pulh
 01C3 80                rti
 01C4           ;       KB_valve -> 0,X
 01C4           _isrKBI::
 01C4 8B                pshh
 01C5 B600              lda *__r0
 01C7 87                psha
 01C8 B600              lda *__r1
 01CA 87                psha
 01CB B600              lda *__r2
 01CD 87                psha
 01CE B600              lda *__r3
 01D0 87                psha
 01D1 B600              lda *__r4
 01D3 87                psha
 01D4 B600              lda *__r5
 01D6 87                psha
 01D7 B600              lda *__r6
 01D9 87                psha
 01DA B600              lda *__r7
 01DC 87                psha
 01DD B600              lda *__r8
 01DF 87                psha
 01E0 B600              lda *__r9
 01E2 87                psha
 01E3 B600              lda *__r10
 01E5 87                psha
 01E6 B600              lda *__r11
 01E8 87                psha
 01E9 B600              lda *__rhi
 01EB 87                psha
 01EC B600              lda *__rlo
 01EE 87                psha
 01EF A7FF              ais #-1
 01F1 95                tsx
 01F2           ; }
 01F2           ; /*键盘中断处理函数------------------------------------*/
 01F2           ; #pragma interrupt_handler isrKBI
 01F2           ; void isrKBI(void) 
 01F2           ; {
 01F2           ;        unsigned char KB_valve;
 01F2           ;        asm("SEI");                    //关总中断
 01F2 9B                SEI
 01F3           ;        INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
 01F3 121A              bset #1,0x1a
 01F5           ;        KB_valve=KB_Scan();     //扫描键值
 01F5 CD0000            jsr _KB_Scan
 01F8 95                tsx
 01F9 B700              sta *__r1
 01FB F7                sta ,X
 01FC           ;        Key=KB_Def(KB_valve);           //获得键定义值
 01FC 87                psha
 01FD CD0000            jsr _KB_Def
 0200 A701              ais #1
 0202 B700              sta *__r1
 0204 B700              sta *_Key
 0206           ;        KB_Init();                          //重新初始化键盘
 0206 CD0000            jsr _KB_Init
 0209 95                tsx
 020A           ;        INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
 020A 131A              bclr #1,0x1a
 020C           ;        asm("CLI");                         //开总中断
 020C 9A                CLI
 020D           L68:
 020D A701              ais #1
 020F                   .dbline 0 ; func end
 020F 86                pula
 0210 B700              sta *__rlo
 0212 86                pula
 0213 B700              sta *__rhi
 0215 86                pula
 0216 B700              sta *__r11
 0218 86                pula
 0219 B700              sta *__r10
 021B 86                pula
 021C B700              sta *__r9
 021E 86                pula
 021F B700              sta *__r8
 0221 86                pula
 0222 B700              sta *__r7
 0224 86                pula
 0225 B700              sta *__r6
 0227 86                pula
 0228 B700              sta *__r5
 022A 86                pula
 022B B700              sta *__r4
 022D 86                pula
 022E B700              sta *__r3
 0230 86                pula
 0231 B700              sta *__r2
 0233 86                pula
 0234 B700              sta *__r1
 0236 86                pula
 0237 B700              sta *__r0
 0239 8A                pulh
 023A 80                rti
 023B           _isrDummy::
 023B 8B                pshh
 023C           ; }
 023C           ; 
 023C           ; //未定义的中断处理函数,本函数不能删除
 023C           ; #pragma interrupt_handler isrDummy  
 023C           ; void isrDummy(void) 
 023C           ; {
 023C           L69:
 023C                   .dbline 0 ; func end
 023C 8A                pulh
 023D 80                rti
                        .area memory(abs)
                        .org 0xffdc
 FFDC           __vectab::
 FFDC 023B              .word _isrDummy
 FFDE 023B              .word _isrDummy
 FFE0 01C4              .word _isrKBI
 FFE2 023B              .word _isrDummy
 FFE4 023B              .word _isrDummy
 FFE6 023B              .word _isrDummy
 FFE8 023B              .word _isrDummy
 FFEA 023B              .word _isrDummy
 FFEC 023B              .word _isrDummy
 FFEE 023B              .word _isrDummy
 FFF0 023B              .word _isrDummy
 FFF2 0000              .word _isrTIMER1
 FFF4 023B              .word _isrDummy
 FFF6 023B              .word _isrDummy
 FFF8 023B              .word _isrDummy
 FFFA 023B              .word _isrDummy
 FFFC 023B              .word _isrDummy
                        .area lit

⌨️ 快捷键说明

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