📄 main.lis
字号:
055E F6 lda ,X
055F AB1D add #<_timer
0561 B700 sta *__r1
0563 B600 lda *__r0
0565 A91D adc #>_timer
0567 B700 sta *__r0
0569 5500 ldhx *__r0
056B F6 lda ,x
056C AE0A ldx #10
056E 8C clrh
056F 52 div
0570 95 tsx
0571 AB30 add #48
0573 B700 sta *__r1
0575 3F00 clr *__r2
0577 E601 lda 1,X
0579 AB44 add #<_show
057B B700 sta *__r3
057D B600 lda *__r2
057F A944 adc #>_show
0581 B700 sta *__r2
0583 B600 lda *__r1
0585 5500 ldhx *__r2
0587 F7 sta ,x
0588 95 tsx
0589 6C01 inc 1,X
058B ; show[i]=0x30+(timer[j]%10);i++;
058B 3F00 clr *__r0
058D F6 lda ,X
058E AB1D add #<_timer
0590 B700 sta *__r1
0592 B600 lda *__r0
0594 A91D adc #>_timer
0596 B700 sta *__r0
0598 5500 ldhx *__r0
059A F6 lda ,x
059B AE0A ldx #10
059D 8C clrh
059E 52 div
059F 8B pshh
05A0 86 pula
05A1 95 tsx
05A2 AB30 add #48
05A4 B700 sta *__r1
05A6 3F00 clr *__r2
05A8 E601 lda 1,X
05AA AB44 add #<_show
05AC B700 sta *__r3
05AE B600 lda *__r2
05B0 A944 adc #>_show
05B2 B700 sta *__r2
05B4 B600 lda *__r1
05B6 5500 ldhx *__r2
05B8 F7 sta ,x
05B9 95 tsx
05BA 6C01 inc 1,X
05BC ; if(j==2)break;
05BC F6 lda ,X
05BD A102 cmp #2
05BF 2602 bne L145
05C1 201F bra L143
05C3 L145:
05C3 3F00 clr *__r0
05C5 E601 lda 1,X
05C7 AB44 add #<_show
05C9 B700 sta *__r1
05CB B600 lda *__r0
05CD A944 adc #>_show
05CF B700 sta *__r0
05D1 A63A lda #58
05D3 5500 ldhx *__r0
05D5 F7 sta ,x
05D6 95 tsx
05D7 6C01 inc 1,X
05D9 L142:
05D9 7C inc ,X
05DA L144:
05DA F6 lda ,X
05DB A103 cmp #3
05DD 2403 bhs X5
05DF CC055C jmp L141
05E2 X5:
05E2 L143:
05E2 ; show[i]=':';i++;
05E2 ; }
05E2 ; show[i]='E';
05E2 3F00 clr *__r0
05E4 E601 lda 1,X
05E6 AB44 add #<_show
05E8 B700 sta *__r1
05EA B600 lda *__r0
05EC A944 adc #>_show
05EE B700 sta *__r0
05F0 A645 lda #69
05F2 5500 ldhx *__r0
05F4 F7 sta ,x
05F5 ; lcdshow((unsigned char *)show);//显示原设置的时间
05F5 A644 lda #<_show
05F7 87 psha
05F8 A644 lda #>_show
05FA 87 psha
05FB CD0000 jsr _lcdshow
05FE A702 ais #2
0600 ; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
0600 1102 bclr #0,0x2
0602 ; LcdCtrl&=~(1<<LcdRW);
0602 1302 bclr #1,0x2
0604 ; Lcd_Command(0b00001111); //开显示,开光标,闪烁
0604 A60F lda #15
0606 87 psha
0607 CD0000 jsr _Lcd_Command
060A A701 ais #1
060C ; Lcd_Command(0b11000000); //后7位为DDRAM地址0x40
060C A6C0 lda #-64
060E 87 psha
060F CD0000 jsr _Lcd_Command
0612 A701 ais #1
0614 95 tsx
0615 ; }
0615 L139:
0615 L138:
0615 A702 ais #2
0617 .dbline 0 ; func end
0617 81 rts
0618 ; i -> 0,X
0618 _ok::
0618 A7FF ais #-1
061A 95 tsx
061B ; }
061B ;
061B ; void ok(void){ //在设置模式下的确定,
061B ; unsigned char i;
061B ; if(showtime==0x00&&issettime==0x01){ //在时间设置模式下的确定,
061B B602 lda *_showtime
061D 2703 beq X6
061F CC0739 jmp L148
0622 X6:
0622 B600 lda *_issettime
0624 A101 cmp #1
0626 2703 beq X7
0628 CC0739 jmp L148
062B X7:
062B ; T1SC|=(1<<TSTOPBit); //停止计数,进行时间修改
062B 1A20 bset #5,0x20
062D ; time[0]=0;time[1]=0;time[2]=0; //时间清零,键盘输入的临时时间写入时间
062D 3F1A clr *_time
062F 3F1B clr *_time+1
0631 3F1C clr *_time+2
0633 ; date[0]=0;date[1]=0;date[2]=0;
0633 3F15 clr *_date+1
0635 3F14 clr *_date
0637 3F17 clr *_date+2+1
0639 3F16 clr *_date+2
063B 3F19 clr *_date+4+1
063D 3F18 clr *_date+4
063F 7F clr ,X
0640 2038 bra L157
0642 L154:
0642 3F00 clr *__r0
0644 F6 lda ,X
0645 AB03 add #<_datetem
0647 B700 sta *__r1
0649 B600 lda *__r0
064B A903 adc #>_datetem
064D B700 sta *__r0
064F 5500 ldhx *__r0
0651 F6 lda ,x
0652 B700 sta *__r1
0654 3F00 clr *__r0
0656 5514 ldhx *_date
0658 89 pshx
0659 8B pshh
065A 95 tsx
065B AF02 aix #2
065D A60A lda #10
065F 87 psha
0660 4F clra
0661 87 psha
0662 CD0000 jsr __mul16
0665 A704 ais #4
0667 4E0000 mov *__rlo,*__r3
066A 4E0000 mov *__rhi,*__r2
066D B600 lda *__r3
066F BB00 add *__r1
0671 B715 sta *_date+1
0673 B600 lda *__r2
0675 B900 adc *__r0
0677 B714 sta *_date
0679 L155:
0679 7C inc ,X
067A L157:
067A ; for(i=0;i<4;i++){
067A F6 lda ,X
067B A104 cmp #4
067D 25C3 blo L154
067F 2054 bra L161
0681 L158:
0681 3F00 clr *__r0
0683 F6 lda ,X
0684 AB03 add #<_datetem
0686 B700 sta *__r1
0688 B600 lda *__r0
068A A903 adc #>_datetem
068C B700 sta *__r0
068E 5500 ldhx *__r0
0690 F6 lda ,x
0691 B700 sta *__r1
0693 3F00 clr *__r0
0695 5516 ldhx *_date+2
0697 89 pshx
0698 8B pshh
0699 95 tsx
069A AF02 aix #2
069C A60A lda #10
069E 87 psha
069F 4F clra
06A0 87 psha
06A1 CD0000 jsr __mul16
06A4 A704 ais #4
06A6 4E0000 mov *__rlo,*__r3
06A9 4E0000 mov *__rhi,*__r2
06AC B600 lda *__r3
06AE BB00 add *__r1
06B0 B717 sta *_date+2+1
06B2 B600 lda *__r2
06B4 B900 adc *__r0
06B6 B716 sta *_date+2
06B8 3F00 clr *__r0
06BA F6 lda ,X
06BB AB07 add #<_timetem-4
06BD B700 sta *__r1
06BF B600 lda *__r0
06C1 A907 adc #>_timetem-4
06C3 B700 sta *__r0
06C5 5500 ldhx *__r0
06C7 F6 lda ,x
06C8 B700 sta *__r1
06CA B61A lda *_time
06CC AE0A ldx #10
06CE 42 mul
06CF 95 tsx
06D0 BB00 add *__r1
06D2 B71A sta *_time
06D4 L159:
06D4 7C inc ,X
06D5 L161:
06D5 ; date[0]=(int)(date[0]*10+datetem[i]);
06D5 ; }
06D5 ; for(;i<6;i++){
06D5 F6 lda ,X
06D6 A106 cmp #6
06D8 25A7 blo L158
06DA 2054 bra L168
06DC L165:
06DC 3F00 clr *__r0
06DE F6 lda ,X
06DF AB03 add #<_datetem
06E1 B700 sta *__r1
06E3 B600 lda *__r0
06E5 A903 adc #>_datetem
06E7 B700 sta *__r0
06E9 5500 ldhx *__r0
06EB F6 lda ,x
06EC B700 sta *__r1
06EE 3F00 clr *__r0
06F0 5518 ldhx *_date+4
06F2 89 pshx
06F3 8B pshh
06F4 95 tsx
06F5 AF02 aix #2
06F7 A60A lda #10
06F9 87 psha
06FA 4F clra
06FB 87 psha
06FC CD0000 jsr __mul16
06FF A704 ais #4
0701 4E0000 mov *__rlo,*__r3
0704 4E0000 mov *__rhi,*__r2
0707 B600 lda *__r3
0709 BB00 add *__r1
070B B719 sta *_date+4+1
070D B600 lda *__r2
070F B900 adc *__r0
0711 B718 sta *_date+4
0713 3F00 clr *__r0
0715 F6 lda ,X
0716 AB07 add #<_timetem-4
0718 B700 sta *__r1
071A B600 lda *__r0
071C A907 adc #>_timetem-4
071E B700 sta *__r0
0720 5500 ldhx *__r0
0722 F6 lda ,x
0723 B700 sta *__r1
0725 B61B lda *_time+1
0727 AE0A ldx #10
0729 42 mul
072A 95 tsx
072B BB00 add *__r1
072D B71B sta *_time+1
072F L166:
072F 7C inc ,X
0730 L168:
0730 ; date[1]=date[1]*10+datetem[i];
0730 ; time[0]=time[0]*10+timetem[i-4];
0730 ; }
0730 ; for(;i<8;i++){
0730 F6 lda ,X
0731 A108 cmp #8
0733 25A7 blo L165
0735 ; date[2]=date[2]*10+datetem[i];
0735 ; time[1]=time[1]*10+timetem[i-4];
0735 ; }
0735 ; issettime=0x00;
0735 3F00 clr *_issettime
0737 ; T1SC&=~(1<<TSTOPBit); //开始计数
0737 1B20 bclr #5,0x20
0739 ; }
0739 L148:
0739 ; if(showtime==0x00&&issettime==0x00){ //在闹钟设置模式下的确定,
0739 B602 lda *_showtime
073B 2653 bne L174
073D B600 lda *_issettime
073F 264F bne L174
0741 ; timer[0]=0;timer[1]=0;timer[2]=0; //时间清零,键盘输入的临时定时时间写入定时时间
0741 3F1D clr *_timer
0743 3F1E clr *_timer+1
0745 3F1F clr *_timer+2
0747 7F clr ,X
0748 201D bra L181
074A L178:
074A 3F00 clr *__r0
074C F6 lda ,X
074D AB0F add #<_timertem
074F B700 sta *__r1
0751 B600 lda *__r0
0753 A90F adc #>_timertem
0755 B700 sta *__r0
0757 5500 ldhx *__r0
0759 F6 lda ,x
075A B700 sta *__r1
075C B61D lda *_timer
075E AE0A ldx #10
0760 42 mul
0761 95 tsx
0762 BB00 add *__r1
0764 B71D sta *_timer
0766 L179:
0766 7C inc ,X
0767 L181:
0767 ; for(i=0;i<2;i++){
0767 F6 lda ,X
0768 A102 cmp #2
076A 25DE blo L178
076C 201D bra L185
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -