?? vectors08.lis
字號:
01FC B600 lda *__r2
01FE B900 adc *__r0
0200 E71C sta 28,X
0202 B600 lda *__r1
0204 E71D sta 29,X
0206 ; if(((j%4==0)&&(j%100!=0))|(j%400==0))
0206 A403 and #3
0208 B700 sta *__r1
020A 4F clra
020B B700 sta *__r0
020D 5500 ldhx *__r0
020F 650000 cphx #0
0212 95 tsx
0213 2627 bne L87
0215 E61D lda 29,X
0217 B700 sta *__rlo
0219 E61C lda 28,X
021B B700 sta *__rhi
021D A664 lda #100
021F 87 psha
0220 4F clra
0221 87 psha
0222 CD0000 jsr __divmod16u
0225 86 pula
0226 B700 sta *__r0
0228 86 pula
0229 B700 sta *__r1
022B 5500 ldhx *__r0
022D 650000 cphx #0
0230 95 tsx
0231 2709 beq L87
0233 4F clra
0234 E702 sta 2,X
0236 A601 lda #1
0238 E703 sta 3,X
023A 2004 bra L88
023C L87:
023C 6F03 clr 3,X
023E 6F02 clr 2,X
0240 L88:
0240 E61D lda 29,X
0242 B700 sta *__rlo
0244 E61C lda 28,X
0246 B700 sta *__rhi
0248 A690 lda #-112
024A 87 psha
024B A601 lda #1
024D 87 psha
024E CD0000 jsr __divmod16u
0251 86 pula
0252 B700 sta *__r0
0254 86 pula
0255 B700 sta *__r1
0257 5500 ldhx *__r0
0259 650000 cphx #0
025C 95 tsx
025D 2608 bne L89
025F 4F clra
0260 F7 sta ,X
0261 A601 lda #1
0263 E701 sta 1,X
0265 2003 bra L90
0267 L89:
0267 6F01 clr 1,X
0269 7F clr ,X
026A L90:
026A E603 lda 3,X
026C EA01 ora 1,X
026E B700 sta *__r1
0270 E602 lda 2,X
0272 FA ora ,X
0273 B700 sta *__r0
0275 5500 ldhx *__r0
0277 650000 cphx #0
027A 95 tsx
027B 270E beq L83
027D ; {
027D ; if (time[3]!=29) goto isrTIMER1_exit;
027D B603 lda *_time+3
027F A11D cmp #29
0281 2702 beq L91
0283 202A bra L6
0285 L91:
0285 ; time[3]=0; time[2]++;
0285 3F03 clr *_time+3
0287 3C02 inc *_time+2
0289 ; }
0289 200C bra L84
028B L83:
028B ; else
028B ; {
028B ; if (time[3]!=28) goto isrTIMER1_exit;
028B B603 lda *_time+3
028D A11C cmp #28
028F 2702 beq L96
0291 201C bra L6
0293 L96:
0293 ; time[3]=0; time[2]++;
0293 3F03 clr *_time+3
0295 3C02 inc *_time+2
0297 ; }
0297 L84:
0297 ; }
0297 L56:
0297 L21:
0297 ; /*switch(i)
0297 ; {
0297 ; case 2:
0297 ; j=time[0]*100+time[1];
0297 ; if(((j%4==0)&&(j%100!=0))|(j%400==0))
0297 ; {
0297 ; if (time[3]!=29) goto isrTIMER1_exit;
0297 ; time[3]=0;
0297 ; time[2]++;
0297 ; }
0297 ; else
0297 ; {
0297 ; if (time[3]!=28) goto isrTIMER1_exit;
0297 ; time[3]=0;
0297 ; time[2]++;
0297 ; }
0297 ; case 4:case 6:case 9:case 11:
0297 ; if(time[3]!=30)
0297 ; {
0297 ; goto isrTIMER1_exit;
0297 ; }
0297 ; time[3]=0;
0297 ; time[2]++;
0297 ; break;
0297 ; case 1:case 3:case 5:case 7:case 8:case 10:case 12:
0297 ; {
0297 ; if(time[3]!=31)
0297 ; {
0297 ; goto isrTIMER1_exit;
0297 ; }
0297 ; time[3]=0;
0297 ; time[2]++;
0297 ; break;
0297 ; }
0297 ; default: break;
0297 ; }
0297 ; */
0297 ; if (time[2]!=12) goto isrTIMER1_exit;
0297 B602 lda *_time+2
0299 A10C cmp #12
029B 2702 beq L101
029D 2010 bra L6
029F L101:
029F ; time[2]=0; time[1]++;
029F 3F02 clr *_time+2
02A1 3C01 inc *_time+1
02A3 ; if (time[1]!=99) goto isrTIMER1_exit;
02A3 B601 lda *_time+1
02A5 A163 cmp #99
02A7 2702 beq L106
02A9 2004 bra L6
02AB L106:
02AB ; time[1]=0; time[0]++;
02AB 3F01 clr *_time+1
02AD 3C00 inc *_time
02AF L6:
02AF ; isrTIMER1_exit:
02AF ; T1SC&=~(1<<TOFBit);
02AF 1F20 bclr #7,0x20
02B1 ; asm("CLI"); //開總中斷
02B1 9A CLI
02B2 L1:
02B2 A71F ais #31
02B4 .dbline 0 ; func end
02B4 86 pula
02B5 B700 sta *__rlo
02B7 86 pula
02B8 B700 sta *__rhi
02BA 86 pula
02BB B700 sta *__r3
02BD 86 pula
02BE B700 sta *__r2
02C0 86 pula
02C1 B700 sta *__r1
02C3 86 pula
02C4 B700 sta *__r0
02C6 8A pulh
02C7 80 rti
02C8 _isrKBI::
02C8 8B pshh
02C9 B600 lda *__r0
02CB 87 psha
02CC B600 lda *__r1
02CE 87 psha
02CF B600 lda *__r2
02D1 87 psha
02D2 B600 lda *__r3
02D4 87 psha
02D5 B600 lda *__r4
02D7 87 psha
02D8 B600 lda *__r5
02DA 87 psha
02DB B600 lda *__r6
02DD 87 psha
02DE B600 lda *__r7
02E0 87 psha
02E1 B600 lda *__r8
02E3 87 psha
02E4 B600 lda *__r9
02E6 87 psha
02E7 B600 lda *__r10
02E9 87 psha
02EA B600 lda *__r11
02EC 87 psha
02ED B600 lda *__rhi
02EF 87 psha
02F0 B600 lda *__rlo
02F2 87 psha
02F3 ; }
02F3 ;
02F3 ; /*鍵盤中斷處理函數------------------------------------*/
02F3 ; #pragma interrupt_handler isrKBI
02F3 ; void isrKBI(void)
02F3 ; {
02F3 ;
02F3 ; asm("SEI"); //關總中斷
02F3 9B SEI
02F4 ; INTKBSCR|= (1<<IntBit); //屏蔽鍵盤中斷(IMASKK=1)
02F4 121A bset #1,0x1a
02F6 ; //val1=1;
02F6 ; KB_valve=KB_Scan(); //掃描鍵值
02F6 CD0000 jsr _KB_Scan
02F9 B700 sta *__r1
02FB B700 sta *_KB_valve
02FD ; // SCISend1(KB_valve);
02FD ; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
02FD B600 lda *_KB_valve
02FF 87 psha
0300 CD0000 jsr _KB_Def
0303 A701 ais #1
0305 95 tsx
0306 B700 sta *__r1
0308 B700 sta *_KB_valve
030A ; if(KB_valve=='A')
030A B600 lda *_KB_valve
030C A141 cmp #65
030E 2604 bne L111
0310 ; {
0310 ; sign1=1;
0310 A601 lda #1
0312 B700 sta *_sign1
0314 ; //SetTime();
0314 ; }
0314 L111:
0314 ; if(KB_valve=='B')
0314 B600 lda *_KB_valve
0316 A142 cmp #66
0318 2604 bne L113
031A ; {
031A ; //SetAlarmClock();
031A ; sign2=1;
031A A601 lda #1
031C B700 sta *_sign2
031E ; }
031E L113:
031E ;
031E ; KB_Init(); //重新初始化鍵盤
031E CD0000 jsr _KB_Init
0321 95 tsx
0322 ; INTKBSCR&= ~(1<<IntBit); //打開鍵盤中斷(IMASKK=0)
0322 131A bclr #1,0x1a
0324 ; asm("CLI"); //開總中斷
0324 9A CLI
0325 L110:
0325 .dbline 0 ; func end
0325 86 pula
0326 B700 sta *__rlo
0328 86 pula
0329 B700 sta *__rhi
032B 86 pula
032C B700 sta *__r11
032E 86 pula
032F B700 sta *__r10
0331 86 pula
0332 B700 sta *__r9
0334 86 pula
0335 B700 sta *__r8
0337 86 pula
0338 B700 sta *__r7
033A 86 pula
033B B700 sta *__r6
033D 86 pula
033E B700 sta *__r5
0340 86 pula
0341 B700 sta *__r4
0343 86 pula
0344 B700 sta *__r3
0346 86 pula
0347 B700 sta *__r2
0349 86 pula
034A B700 sta *__r1
034C 86 pula
034D B700 sta *__r0
034F 8A pulh
0350 80 rti
0351 _isrDummy::
0351 8B pshh
0352 ; }
0352 ; /*isrRe:接收中斷處理函數-------------------------------*
0352 ; *功 能:接收3字節基準時分秒放入內存單元Time[0-2] *
0352 ; *-----------------------------------------------------*/
0352 ; /*#pragma interrupt_handler isrRe
0352 ; void isrRe(void)
0352 ; {
0352 ; asm("SEI"); //禁止所有中斷
0352 ; //接收數據
0352 ; SCIReN(3,time);
0352 ; asm("CLI"); //開放總中斷
0352 ; }
0352 ; //未定義的中斷處理函數,本函數不能刪除*/
0352 ; #pragma interrupt_handler isrDummy
0352 ; void isrDummy(void)
0352 ; {
0352 L115:
0352 .dbline 0 ; func end
0352 8A pulh
0353 80 rti
.area memory(abs)
.org 0xffdc
FFDC __vectab::
FFDC 0351 .word _isrDummy
FFDE 0351 .word _isrDummy
FFE0 02C8 .word _isrKBI
FFE2 0351 .word _isrDummy
FFE4 0351 .word _isrDummy
FFE6 0351 .word _isrDummy
FFE8 0351 .word _isrDummy
FFEA 0351 .word _isrDummy
FFEC 0351 .word _isrDummy
FFEE 0351 .word _isrDummy
FFF0 0351 .word _isrDummy
FFF2 0000 .word _isrTIMER1
FFF4 0351 .word _isrDummy
FFF6 0351 .word _isrDummy
FFF8 0351 .word _isrDummy
FFFA 0351 .word _isrDummy
FFFC 0351 .word _isrDummy
.area lit
.area bss
0000 _KB_valve::
0000 .blkb 1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -