📄 vectors08.lis
字号:
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 + -