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

📄 lcdshow.lis

📁 摩托罗拉的时钟的原代码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 07C0 AE0A              ldx #10
 07C2 42                mul
 07C3 BB0B              add *_time+11
 07C5 B701              sta *_Ttime+1
 07C7           ;    Ttime[2]=time[12]*10+time[13];
 07C7 B60C              lda *_time+12
 07C9 AE0A              ldx #10
 07CB 42                mul
 07CC 95                tsx
 07CD BB0D              add *_time+13
 07CF B702              sta *_Ttime+2
 07D1           L92:
 07D1                   .dbline 0 ; func end
 07D1 81                rts
 07D2           _Change2::
 07D2           ; }
 07D2           ; 
 07D2           ; 
 07D2           ; void Change2(void)      //将数组alarm组合存储到数组Tdate2
 07D2           ; {
 07D2           ;    Tdate2[0]=alarm[0]*1000+alarm[1]*100+alarm[2]*10+alarm[3];
 07D2 3F00              clr *__r0
 07D4 B601              lda *_alarm+1
 07D6 B700              sta *__r1
 07D8 A664              lda #100
 07DA 87                psha
 07DB 4F                clra
 07DC 87                psha
 07DD B600              lda *__r1
 07DF 87                psha
 07E0 B600              lda *__r0
 07E2 87                psha
 07E3 CD0000            jsr __mul16
 07E6 A704              ais #4
 07E8 4E0000            mov *__rlo,*__r1
 07EB 4E0000            mov *__rhi,*__r0
 07EE 3F00              clr *__r2
 07F0 B600              lda *_alarm
 07F2 B700              sta *__r3
 07F4 A6E8              lda #-24
 07F6 87                psha
 07F7 A603              lda #3
 07F9 87                psha
 07FA B600              lda *__r3
 07FC 87                psha
 07FD B600              lda *__r2
 07FF 87                psha
 0800 CD0000            jsr __mul16
 0803 A704              ais #4
 0805 4E0000            mov *__rlo,*__r3
 0808 4E0000            mov *__rhi,*__r2
 080B B600              lda *__r3
 080D BB00              add *__r1
 080F B700              sta *__r1
 0811 B600              lda *__r2
 0813 B900              adc *__r0
 0815 B700              sta *__r0
 0817 3F00              clr *__r2
 0819 B602              lda *_alarm+2
 081B B700              sta *__r3
 081D A60A              lda #10
 081F 87                psha
 0820 4F                clra
 0821 87                psha
 0822 B600              lda *__r3
 0824 87                psha
 0825 B600              lda *__r2
 0827 87                psha
 0828 CD0000            jsr __mul16
 082B A704              ais #4
 082D 4E0000            mov *__rlo,*__r3
 0830 4E0000            mov *__rhi,*__r2
 0833 B600              lda *__r1
 0835 BB00              add *__r3
 0837 B700              sta *__r1
 0839 B600              lda *__r0
 083B B900              adc *__r2
 083D B700              sta *__r0
 083F 3F00              clr *__r2
 0841 B603              lda *_alarm+3
 0843 B700              sta *__r3
 0845 B600              lda *__r1
 0847 BB00              add *__r3
 0849 B701              sta *_Tdate2+1
 084B B600              lda *__r0
 084D B900              adc *__r2
 084F B700              sta *_Tdate2
 0851           ;    Tdate2[1]=alarm[4]*10+alarm[5];
 0851 3F00              clr *__r0
 0853 B605              lda *_alarm+5
 0855 B700              sta *__r1
 0857 3F00              clr *__r2
 0859 B604              lda *_alarm+4
 085B B700              sta *__r3
 085D A60A              lda #10
 085F 87                psha
 0860 4F                clra
 0861 87                psha
 0862 B600              lda *__r3
 0864 87                psha
 0865 B600              lda *__r2
 0867 87                psha
 0868 CD0000            jsr __mul16
 086B A704              ais #4
 086D 4E0000            mov *__rlo,*__r3
 0870 4E0000            mov *__rhi,*__r2
 0873 B600              lda *__r3
 0875 BB00              add *__r1
 0877 B703              sta *_Tdate2+2+1
 0879 B600              lda *__r2
 087B B900              adc *__r0
 087D B702              sta *_Tdate2+2
 087F           ;    Tdate2[2]=alarm[6]*10+alarm[7];
 087F 3F00              clr *__r0
 0881 B607              lda *_alarm+7
 0883 B700              sta *__r1
 0885 3F00              clr *__r2
 0887 B606              lda *_alarm+6
 0889 B700              sta *__r3
 088B A60A              lda #10
 088D 87                psha
 088E 4F                clra
 088F 87                psha
 0890 B600              lda *__r3
 0892 87                psha
 0893 B600              lda *__r2
 0895 87                psha
 0896 CD0000            jsr __mul16
 0899 A704              ais #4
 089B 4E0000            mov *__rlo,*__r3
 089E 4E0000            mov *__rhi,*__r2
 08A1 B600              lda *__r3
 08A3 BB00              add *__r1
 08A5 B705              sta *_Tdate2+4+1
 08A7 B600              lda *__r2
 08A9 B900              adc *__r0
 08AB B704              sta *_Tdate2+4
 08AD           ;    Ttime2[0]=alarm[8]*10+alarm[9];
 08AD B608              lda *_alarm+8
 08AF AE0A              ldx #10
 08B1 42                mul
 08B2 BB09              add *_alarm+9
 08B4 B700              sta *_Ttime2
 08B6           ;    Ttime2[1]=alarm[10]*10+alarm[11];
 08B6 B60A              lda *_alarm+10
 08B8 AE0A              ldx #10
 08BA 42                mul
 08BB BB0B              add *_alarm+11
 08BD B701              sta *_Ttime2+1
 08BF           ;    Ttime2[2]=alarm[12]*10+alarm[13];
 08BF B60C              lda *_alarm+12
 08C1 AE0A              ldx #10
 08C3 42                mul
 08C4 95                tsx
 08C5 BB0D              add *_alarm+13
 08C7 B702              sta *_Ttime2+2
 08C9           L110:
 08C9                   .dbline 0 ; func end
 08C9 81                rts
 08CA           _Controle::
 08CA           ; }
 08CA           ; 
 08CA           ; 
 08CA           ; void Controle(void)           //控制时钟的日期时间合法
 08CA           ; {  
 08CA           ;    if(time[12]>5) time[12]=0;
 08CA B60C              lda *_time+12
 08CC A105              cmp #5
 08CE 2302              bls L129
 08D0 3F0C              clr *_time+12
 08D2           L129:
 08D2           ;    if(time[10]>5) time[10]=0;
 08D2 B60A              lda *_time+10
 08D4 A105              cmp #5
 08D6 2302              bls L133
 08D8 3F0A              clr *_time+10
 08DA           L133:
 08DA           ;    if(Ttime[0]>=20&&time[9]>=5) time[9]=0;
 08DA B600              lda *_Ttime
 08DC A114              cmp #20
 08DE 2508              blo L137
 08E0 B609              lda *_time+9
 08E2 A105              cmp #5
 08E4 2502              blo L137
 08E6 3F09              clr *_time+9
 08E8           L137:
 08E8           ;    if(time[8]>2) time[8]=0;
 08E8 B608              lda *_time+8
 08EA A102              cmp #2
 08EC 2302              bls L141
 08EE 3F08              clr *_time+8
 08F0           L141:
 08F0           ;    if(Tdate[1]==2&&(Tdate[0]%4==0&&Tdate[0]%100!=0||Tdate[0]%400==0))
 08F0 5502              ldhx *_Tdate+2
 08F2 650002            cphx #2
 08F5 95                tsx
 08F6 2663              bne L145
 08F8 B601              lda *_Tdate+1
 08FA B700              sta *__rlo
 08FC B600              lda *_Tdate
 08FE B700              sta *__rhi
 0900 A604              lda #4
 0902 87                psha
 0903 4F                clra
 0904 87                psha
 0905 CD0000            jsr __divmod16s
 0908 86                pula
 0909 B700              sta *__r0
 090B 86                pula
 090C B700              sta *__r1
 090E 5500              ldhx *__r0
 0910 650000            cphx #0
 0913 95                tsx
 0914 261E              bne L149
 0916 B601              lda *_Tdate+1
 0918 B700              sta *__rlo
 091A B600              lda *_Tdate
 091C B700              sta *__rhi
 091E A664              lda #100
 0920 87                psha
 0921 4F                clra
 0922 87                psha
 0923 CD0000            jsr __divmod16s
 0926 86                pula
 0927 B700              sta *__r0
 0929 86                pula
 092A B700              sta *__r1
 092C 5500              ldhx *__r0
 092E 650000            cphx #0
 0931 95                tsx
 0932 261F              bne L148
 0934           L149:
 0934 B601              lda *_Tdate+1
 0936 B700              sta *__rlo
 0938 B600              lda *_Tdate
 093A B700              sta *__rhi
 093C A690              lda #-112
 093E 87                psha
 093F A601              lda #1
 0941 87                psha
 0942 CD0000            jsr __divmod16s
 0945 86                pula
 0946 B700              sta *__r0
 0948 86                pula
 0949 B700              sta *__r1
 094B 5500              ldhx *__r0
 094D 650000            cphx #0
 0950 95                tsx
 0951 2608              bne L145
 0953           L148:
 0953 B606              lda *_time+6
 0955 A102              cmp #2
 0957 2302              bls L150
 0959 3F06              clr *_time+6
 095B           L150:
 095B           ; 	 { if(time[6]>2) time[6]=0;}
 095B           L145:
 095B           ;    if(Tdate[1]==1||Tdate[1]==3||Tdate[1]==5||Tdate[1]==7||
 095B 5502              ldhx *_Tdate+2
 095D 650001            cphx #1
 0960 95                tsx
 0961 2730              beq L168
 0963 5502              ldhx *_Tdate+2
 0965 650003            cphx #3
 0968 95                tsx
 0969 2728              beq L168
 096B 5502              ldhx *_Tdate+2
 096D 650005            cphx #5
 0970 95                tsx
 0971 2720              beq L168
 0973 5502              ldhx *_Tdate+2
 0975 650007            cphx #7
 0978 95                tsx
 0979 2718              beq L168
 097B 5502              ldhx *_Tdate+2
 097D 650008            cphx #8
 0980 95                tsx
 0981 2710              beq L168
 0983 5502              ldhx *_Tdate+2
 0985 65000A            cphx #10
 0988 95                tsx
 0989 2708              beq L168
 098B 5502              ldhx *_Tdate+2
 098D 65000C            cphx #12
 0990 95                tsx
 0991 260E              bne L154
 0993           L168:
 0993 B606              lda *_time+6
 0995 A103              cmp #3
 0997 2608              bne L169
 0999 B607              lda *_time+7
 099B A101              cmp #1
 099D 2302              bls L169
 099F 3F07              clr *_time+7
 09A1           L169:
 09A1           ;       Tdate[1]==8||Tdate[1]==10||Tdate[1]==12)
 09A1           ; 	 { if(time[6]==3&&time[7]>1) time[7]=0;}
 09A1           L154:
 09A1           ;    if(Tdate[1]==2||Tdate[1]==4||Tdate[1]==6||Tdate[1]==9||Tdate[1]==11)
 09A1 5502              ldhx *_Tdate+2
 09A3 650002            cphx #2
 09A6 95                tsx
 09A7 2720              beq L184
 09A9 5502              ldhx *_Tdate+2
 09AB 650004            cphx #4
 09AE 95                tsx
 09AF 2718              beq L184
 09B1 5502              ldhx *_Tdate+2
 09B3 650006            cphx #6
 09B6 95                tsx
 09B7 2710              beq L184
 09B9 5502              ldhx *_Tdate+2
 09BB 650009            cphx #9
 09BE 95                tsx
 09BF 2708              beq L184
 09C1 5502              ldhx *_Tdate+2
 09C3 65000B            cphx #11
 09C6 95                tsx
 09C7 260E              bne L174
 09C9           L184:
 09C9 B606              lda *_time+6
 09CB A103              cmp #3
 09CD 2608              bne L185
 09CF B607              lda *_time+7
 09D1 A100              cmp #0
 09D3 2302              bls L185
 09D5 3F07              clr *_time+7
 09D7           L185:
 09D7           ; 	 { if(time[6]==3&&time[7]>0) time[7]=0;}
 09D7           L174:
 09D7           ;    if(time[6]>3) time[6]=0;
 09D7 B606              lda *_time+6
 09D9 A103              cmp #3
 09DB 2302              bls L190
 09DD 3F06              clr *_time+6
 09DF           L190:
 09DF           ;    if(Tdate[1]>10&&time[5]>2) time[5]=0;
 09DF 5502              ldhx *_Tdate+2
 09E1 65000A            cphx #10
 09E4 95                tsx
 09E5 9308              ble L194
 09E7 B605              lda *_time+5
 09E9 A102              cmp #2
 09EB 2302              bls L194
 09ED 3F05              clr *_time+5
 09EF           L194:
 09EF           ;    if(time[4]>1) time[4]=0;
 09EF B604              lda *_time+4
 09F1 A101              cmp #1
 09F3 2302              bls L199
 09F5 3F04              clr *_time+4
 09F7           L199:
 09F7           ;    if(time[6]>3) time[6]=0;
 09F7 B606              lda *_time+6
 09F9 A103              cmp #3
 09FB 2302              bls L203
 09FD 3F06              clr *_time+6
 09FF           L203:
 09FF           ;    if(Tdate[1]>10&&time[5]>2) time[5]=0;
 09FF 5502              ldhx *_Tdate+2
 0A01 65000A            cphx #10
 0A04 95                tsx
 0A05 9308              ble L207
 0A07 B605              lda *_time+5
 0A09 A102              cmp #2
 0A0B 2302              bls L207

⌨️ 快捷键说明

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