📄 lcdshow.s
字号:
L74:
L75:
inc 1,X
L77:
lda 1,X
cmp #-6
bls L74
L71:
inc ,X
L73:
lda ,X
cmp #-6
bls L70
L69:
ais #2
.dbline 0 ; func end
rts
; temp2 -> 4,X
; temp1 -> 2,X
_Changetime::
tsx
; for(v=0;v<=250;v++);
; }
;
; void Changetime(int temp1[],unsigned char temp2[]) //将数组temp1拆分存储到数组temp2
; {
; time[0]=temp1[0]/1000;
lda 2,X
ldx 3,X
psha
pulh
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #-24
psha
lda #3
psha
jsr __divmod16s
ais #2
mov *__rlo,*__r1
mov *__r1,*_time
; time[1]=temp1[0]/100%10;
lda 2,X
ldx 3,X
psha
pulh
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #100
psha
clra
psha
jsr __divmod16s
ais #2
mov *__rhi,*__r0
mov *__rlo,*__r1
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #10
psha
clra
psha
jsr __divmod16s
pula
pula
sta *_time+1
; time[2]=temp1[0]/10%10;
lda 2,X
ldx 3,X
psha
pulh
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #10
psha
clra
psha
jsr __divmod16s
ais #2
mov *__rhi,*__r0
mov *__rlo,*__r1
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #10
psha
clra
psha
jsr __divmod16s
pula
pula
sta *_time+2
; time[3]=temp1[0]%10;
lda 2,X
ldx 3,X
psha
pulh
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #10
psha
clra
psha
jsr __divmod16s
pula
pula
sta *_time+3
; time[4]=temp1[1]/10;
lda 3,X
add #2
sta *__r1
lda 2,X
adc #0
sta *__r0
ldhx *__r0
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #10
psha
clra
psha
jsr __divmod16s
ais #2
mov *__rlo,*__r1
mov *__r1,*_time+4
; time[5]=temp1[1]%10;
lda 3,X
add #2
sta *__r1
lda 2,X
adc #0
sta *__r0
ldhx *__r0
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #10
psha
clra
psha
jsr __divmod16s
pula
pula
sta *_time+5
; time[6]=temp1[2]/10;
lda 3,X
add #4
sta *__r1
lda 2,X
adc #0
sta *__r0
ldhx *__r0
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #10
psha
clra
psha
jsr __divmod16s
ais #2
mov *__rlo,*__r1
mov *__r1,*_time+6
; time[7]=temp1[2]%10;
lda 3,X
add #4
sta *__r1
lda 2,X
adc #0
sta *__r0
ldhx *__r0
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
mov *__r1,*__rlo
mov *__r0,*__rhi
lda #10
psha
clra
psha
jsr __divmod16s
pula
pula
sta *_time+7
; time[8]=temp2[0]/10;
lda 4,X
ldx 5,X
psha
pulh
lda ,x
ldx #10
clrh
div
tsx
sta *_time+8
; time[9]=temp2[0]%10;
lda 4,X
ldx 5,X
psha
pulh
lda ,x
ldx #10
clrh
div
pshh
pula
tsx
sta *_time+9
; time[10]=temp2[1]/10;
lda 5,X
add #1
sta *__r1
lda 4,X
adc #0
sta *__r0
ldhx *__r0
lda ,x
ldx #10
clrh
div
tsx
sta *_time+10
; time[11]=temp2[1]%10;
lda 5,X
add #1
sta *__r1
lda 4,X
adc #0
sta *__r0
ldhx *__r0
lda ,x
ldx #10
clrh
div
pshh
pula
tsx
sta *_time+11
; time[12]=temp2[2]/10;
lda 5,X
add #2
sta *__r1
lda 4,X
adc #0
sta *__r0
ldhx *__r0
lda ,x
ldx #10
clrh
div
tsx
sta *_time+12
; time[13]=temp2[2]%10;
lda 5,X
add #2
sta *__r1
lda 4,X
adc #0
sta *__r0
ldhx *__r0
lda ,x
ldx #10
clrh
div
pshh
pula
tsx
sta *_time+13
L78:
.dbline 0 ; func end
rts
_Change::
; }
;
;
; void Change(void) //将数组time组合存储到数组Tdate
; {
; Tdate[0]=time[0]*1000+time[1]*100+time[2]*10+time[3];
clr *__r0
lda *_time+1
sta *__r1
lda #100
psha
clra
psha
lda *__r1
psha
lda *__r0
psha
jsr __mul16
ais #4
mov *__rlo,*__r1
mov *__rhi,*__r0
clr *__r2
lda *_time
sta *__r3
lda #-24
psha
lda #3
psha
lda *__r3
psha
lda *__r2
psha
jsr __mul16
ais #4
mov *__rlo,*__r3
mov *__rhi,*__r2
lda *__r3
add *__r1
sta *__r1
lda *__r2
adc *__r0
sta *__r0
clr *__r2
lda *_time+2
sta *__r3
lda #10
psha
clra
psha
lda *__r3
psha
lda *__r2
psha
jsr __mul16
ais #4
mov *__rlo,*__r3
mov *__rhi,*__r2
lda *__r1
add *__r3
sta *__r1
lda *__r0
adc *__r2
sta *__r0
clr *__r2
lda *_time+3
sta *__r3
lda *__r1
add *__r3
sta *_Tdate+1
lda *__r0
adc *__r2
sta *_Tdate
; Tdate[1]=time[4]*10+time[5];
clr *__r0
lda *_time+5
sta *__r1
clr *__r2
lda *_time+4
sta *__r3
lda #10
psha
clra
psha
lda *__r3
psha
lda *__r2
psha
jsr __mul16
ais #4
mov *__rlo,*__r3
mov *__rhi,*__r2
lda *__r3
add *__r1
sta *_Tdate+2+1
lda *__r2
adc *__r0
sta *_Tdate+2
; Tdate[2]=time[6]*10+time[7];
clr *__r0
lda *_time+7
sta *__r1
clr *__r2
lda *_time+6
sta *__r3
lda #10
psha
clra
psha
lda *__r3
psha
lda *__r2
psha
jsr __mul16
ais #4
mov *__rlo,*__r3
mov *__rhi,*__r2
lda *__r3
add *__r1
sta *_Tdate+4+1
lda *__r2
adc *__r0
sta *_Tdate+4
; Ttime[0]=time[8]*10+time[9];
lda *_time+8
ldx #10
mul
add *_time+9
sta *_Ttime
; Ttime[1]=time[10]*10+time[11];
lda *_time+10
ldx #10
mul
add *_time+11
sta *_Ttime+1
; Ttime[2]=time[12]*10+time[13];
lda *_time+12
ldx #10
mul
tsx
add *_time+13
sta *_Ttime+2
L92:
.dbline 0 ; func end
rts
_Change2::
; }
;
;
; void Change2(void) //将数组alarm组合存储到数组Tdate2
; {
; Tdate2[0]=alarm[0]*1000+alarm[1]*100+alarm[2]*10+alarm[3];
clr *__r0
lda *_alarm+1
sta *__r1
lda #100
psha
clra
psha
lda *__r1
psha
lda *__r0
psha
jsr __mul16
ais #4
mov *__rlo,*__r1
mov *__rhi,*__r0
clr *__r2
lda *_alarm
sta *__r3
lda #-24
psha
lda #3
psha
lda *__r3
psha
lda *__r2
psha
jsr __mul16
ais #4
mov *__rlo,*__r3
mov *__rhi,*__r2
lda *__r3
add *__r1
sta *__r1
lda *__r2
adc *__r0
sta *__r0
clr *__r2
lda *_alarm+2
sta *__r3
lda #10
psha
clra
psha
lda *__r3
psha
lda *__r2
psha
jsr __mul16
ais #4
mov *__rlo,*__r3
mov *__rhi,*__r2
lda *__r1
add *__r3
sta *__r1
lda *__r0
adc *__r2
sta *__r0
clr *__r2
lda *_alarm+3
sta *__r3
lda *__r1
add *__r3
sta *_Tdate2+1
lda *__r0
adc *__r2
sta *_Tdate2
; Tdate2[1]=alarm[4]*10+alarm[5];
clr *__r0
lda *_alarm+5
sta *__r1
clr *__r2
lda *_alarm+4
sta *__r3
lda #10
psha
clra
psha
lda *__r3
psha
lda *__r2
psha
jsr __mul16
ais #4
mov *__rlo,*__r3
mov *__rhi,*__r2
lda *__r3
add *__r1
sta *_Tdate2+2+1
lda *__r2
adc *__r0
sta *_Tdate2+2
; Tdate2[2]=alarm[6]*10+alarm[7];
clr *__r0
lda *_alarm+7
sta *__r1
clr *__r2
lda *_alarm+6
sta *__r3
lda #10
psha
clra
psha
lda *__r3
psha
lda *__r2
psha
jsr __mul16
ais #4
mov *__rlo,*__r3
mov *__rhi,*__r2
lda *__r3
add *__r1
sta *_Tdate2+4+1
lda *__r2
adc *__r0
sta *_Tdate2+4
; Ttime2[0]=alarm[8]*10+alarm[9];
lda *_alarm+8
ldx #10
mul
add *_alarm+9
sta *_Ttime2
; Ttime2[1]=alarm[10]*10+alarm[11];
lda *_alarm+10
ldx #10
mul
add *_alarm+11
sta *_Ttime2+1
; Ttime2[2]=alarm[12]*10+alarm[13];
lda *_alarm+12
ldx #10
mul
tsx
add *_alarm+13
sta *_Ttime2+2
L110:
.dbline 0 ; func end
rts
_Controle::
; }
;
;
; void Controle(void) //控制时钟的日期时间合法
; {
; if(time[12]>5) time[12]=0;
lda *_time+12
cmp #5
bls L129
clr *_time+12
L129:
; if(time[10]>5) time[10]=0;
lda *_time+10
cmp #5
bls L133
clr *_time+10
L133:
; if(Ttime[0]>=20&&time[9]>=5) time[9]=0;
lda *_Ttime
cmp #20
blo L137
lda *_time+9
cmp #5
blo L137
clr *_time+9
L137:
; if(time[8]>2) time[8]=0;
lda *_time+8
cmp #2
bls L141
clr *_time+8
L141:
; if(Tdate[1]==2&&(Tdate[0]%4==0&&Tdate[0]%100!=0||Tdate[0]%400==0))
ldhx *_Tdate+2
cphx #2
tsx
bne L145
lda *_Tdate+1
sta *__rlo
lda *_Tdate
sta *__rhi
lda #4
psha
clra
psha
jsr __divmod16s
pula
sta *__r0
pula
sta *__r1
ldhx *__r0
cphx #0
tsx
bne L149
lda *_Tdate+1
sta *__rlo
lda *_Tdate
sta *__rhi
lda #100
psha
clra
psha
jsr __divmod16s
pula
sta *__r0
pula
sta *__r1
ldhx *__r0
cphx #0
tsx
bne L148
L149:
lda *_Tdate+1
sta *__rlo
lda *_Tdate
sta *__rhi
lda #-112
psha
lda #1
psha
jsr __divmod16s
pula
sta *__r0
pula
sta *__r1
ldhx *__r0
cphx #0
tsx
bne L145
L148:
lda *_time+6
cmp #2
bls L150
clr *_time+6
L150:
; { if(time[6]>2) time[6]=0;}
L145:
; if(Tdate[1]==1||Tdate[1]==3||Tdate[1]==5||Tdate[1]==7||
ldhx *_Tdate+2
cphx #1
tsx
beq L168
ldhx *_Tdate+2
cphx #3
tsx
beq L168
ldhx *_Tdate+2
cphx #5
tsx
beq L168
ldhx *_Tdate+2
cphx #7
tsx
beq L168
ldhx *_Tdate+2
cphx #8
tsx
beq L168
ldhx *_Tdate+2
cphx #10
tsx
beq L168
ldhx *_Tdate+2
cphx #12
tsx
bne L154
L168:
lda *_time+6
cmp #3
bne L169
lda *_time+7
cmp #1
bls L169
clr *_time+7
L169:
; Tdate[1]==8||Tdate[1]==10||Tdate[1]==12)
; { if(time[6]==3&&time[7]>1) time[7]=0;}
L154:
; if(Tdate[1]==2||Tdate[1]==4||Tdate[1]==6||Tdate[1]==9||Tdate[1]==11)
ldhx *_Tdate+2
cphx #2
tsx
beq L184
ldhx *_Tdate+2
cphx #4
tsx
beq L184
ldhx *_Tdate+2
cphx #6
tsx
beq L184
ldhx *_Tdate+2
cphx #9
tsx
beq L184
ldhx *_Tdate+2
cphx #11
tsx
bne L174
L184:
lda *_time+6
cmp #3
bne L185
lda *_time+7
cmp #0
bls L185
clr *_time+7
L185:
; { if(time[6]==3&&time[7]>0) time[7]=0;}
L174:
; if(time[6]>3) time[6]=0;
lda *_time+6
cmp #3
bls L190
clr *_time+6
L190:
; if(Tdate[1]>10&&time[5]>2) time[5]=0;
ldhx *_Tdate+2
cphx #10
tsx
ble L194
lda *_time+5
cmp #2
bls L194
clr *_time+5
L194:
; if(time[4]>1) time[4]=0;
lda *_time+4
cmp #1
bls L199
clr *_time+4
L199:
; if(time[6]>3) time[6]=0;
lda *_time+6
cmp #3
bls L203
clr *_time+6
L203:
; if(Tdate[1]>10&&time[5]>2) time[5]=0;
ldhx *_Tdate+2
cphx #10
tsx
ble L207
lda *_time+5
cmp #2
bls L207
clr *_time+5
L207:
; if(time[4]>1) time[4]=0;
lda *_time+4
cmp #1
bls L212
clr *_time+4
L212:
L128:
.dbline 0 ; func end
rts
_Controle2::
; }
;
;
; void Controle2(void) //控制闹钟的日期时间合法
; {
; if(alarm[12]>5) alarm[12]=0;
lda *_alarm+12
cmp #5
bls L217
clr *_alarm+12
L217:
; if(alarm[10]>5) alarm[10]=0;
lda *_alarm+10
cmp #5
bls L221
clr *_alarm+10
L221:
; if(Ttime2[0]>=20&&alarm[9]>=5) alarm[9]=0;
lda *_Ttime2
cmp #20
blo L225
lda *_alarm+9
cmp #5
blo L225
clr *_alarm+9
L225:
; if(alarm[8]>2) alarm[8]=0;
lda *_alarm+8
cmp #2
bls L229
clr *_alarm+8
L229:
; if(Tdate2[1]==2&&(Tdate2[0]%4==0&&Tdate2[0]%100!=0||Tdate2[0]%400==0))
ldhx *_Tdate2+2
cphx #2
tsx
bne L233
lda *_Tdate2+1
sta *__rlo
lda *_Tdate2
sta *__rhi
lda #4
psha
clra
psha
jsr __divmod16s
pula
sta *__r0
pula
sta *__r1
ldhx *__r0
cphx #0
tsx
bne L237
lda *_Tdate2+1
sta *__rlo
lda *_Tdate2
sta *__rhi
lda #100
psha
clra
psha
jsr __divmod16s
pula
sta *__r0
pula
sta *__r1
ldhx *__r0
cphx #0
tsx
bne L236
L237:
lda *_Tdate2+1
sta *__rlo
lda *_Tdate2
sta *__rhi
lda #-112
psha
lda #1
psha
jsr __divmod16s
pula
sta *__r0
pula
sta *__r1
ldhx *__r0
cphx #0
tsx
bne L233
L236:
lda *_alarm+6
cmp #2
bls L238
clr *_alarm+6
L238:
; { if(alarm[6]>2) alarm[6]=0;}
L233:
; if(Tdate2[1]==1||Tdate2[1]==3||Tdate2[1]==5||Tdate2[1]==7||
ldhx *_Tdate2+2
cphx #1
tsx
beq L256
ldhx *_Tdate2+2
cphx #3
tsx
beq L256
ldhx *_Tdate2+2
cphx #5
tsx
beq L256
ldhx *_Tdate2+2
cphx #7
tsx
beq L256
ldhx *_Tdate2+2
cphx #8
tsx
beq L256
ldhx *_Tdate2+2
cphx #10
tsx
beq L256
ldhx *_Tdate2+2
cphx #12
tsx
bne L242
L256:
lda *_alarm+6
cmp #3
bne L257
lda *_alarm+7
cmp #1
bls L257
clr *_alarm+7
L257:
; Tdate2[1]==8||Tdate2[1]==10||Tdate2[1]==12)
; { if(alarm[6]==3&&alarm[7]>1) alarm[7]=0;}
L242:
; if(Tdate2[1]==2||Tdate2[1]==4||Tdate2[1]==6||Tdate2[1]==9||Tdate2[1]==11)
ldhx *_Tdate2+2
cphx #2
tsx
beq L272
ldhx *_Tdate2+2
cphx #4
tsx
beq L272
ldhx *_Tdate2+2
cphx #6
tsx
beq L272
ldhx *_Tdate2+2
cphx #9
tsx
beq L272
ldhx *_Tdate2+2
cphx #11
tsx
bne L262
L272:
lda *_alarm+6
cmp #3
bne L273
lda *_alarm+7
cmp #0
bls L273
clr *_alarm+7
L273:
; { if(alarm[6]==3&&alarm[7]>0) alarm[7]=0;}
L262:
; if(alarm[6]>3) alarm[6]=0;
lda *_alarm+6
cmp #3
bls L278
clr *_alarm+6
L278:
; if(Tdate2[1]>10&&alarm[5]>2) alarm[5]=0;
ldhx *_Tdate2+2
cphx #10
tsx
ble L282
lda *_alarm+5
cmp #2
bls L282
clr *_alarm+5
L282:
; if(alarm[4]>1) alarm[4]=0;
lda *_alarm+4
cmp #1
bls L287
clr *_alarm+4
L287:
; if(alarm[6]>3) alarm[6]=0;
lda *_alarm+6
cmp #3
bls L291
clr *_alarm+6
L291:
; if(Tdate2[1]>10&&alarm[5]>2) alarm[5]=0;
ldhx *_Tdate2+2
cphx #10
tsx
ble L295
lda *_alarm+5
cmp #2
bls L295
clr *_alarm+5
L295:
; if(alarm[4]>1) alarm[4]=0;
lda *_alarm+4
cmp #1
bls L300
clr *_alarm+4
L300:
L216:
.dbline 0 ; func end
rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -