📄 main.s
字号:
L70:
; if(k>8) k=1; //现在光标在末端
lda *_k
cmp #8
bls L73
lda #1
sta *_k
L73:
; LcdShowCursor((1+l),(4+k));
lda *_k
add #4
psha
lda *_l
add #1
psha
jsr _LcdShowCursor
ais #2
tsx
; }
L64:
; Key=0;
clr *_Key
;
; }
L61:
; if(Key=='*') //光标下移
lda *_Key
cmp #42
bne L75
; { ++l;
inc *_l
; if(k==0) ++k; //现在光标在第一行始端
lda *_k
bne L77
inc *_k
L77:
; if(k==9) --k; //现在光标在第一行末端
lda *_k
cmp #9
bne L79
dec *_k
L79:
; if(l>1) l=0; //现在光标在第二行
lda *_l
cmp #1
bls L81
clr *_l
L81:
; LcdShowCursor((1+l),(4+k));
lda *_k
add #4
psha
lda *_l
add #1
psha
jsr _LcdShowCursor
ais #2
tsx
; Key=0;
clr *_Key
; }
L75:
; if(Key=='B')
lda *_Key
cmp #66
bne L83
; { Key=0;
clr *_Key
; goto MENU; //返回
jmp L50
L83:
; }
; if(Key=='D') //按下确定键
lda *_Key
cmp #68
bne L85
; { Key=0;
clr *_Key
; goto BEGING;
jmp L18
L85:
; }
; if(Key!=0&&Discriminant(Key))
lda *_Key
beq L87
lda *_Key
psha
jsr _Discriminant
ais #1
tsx
sta *__r1
beq L87
; { Keyvalue=Key-0x30;
lda *_Key
sub #48
sta 59,X
; Transmission(Keyvalue,(unsigned char *) time,(1+l),(4+k));
lda *_k
add #4
psha
lda *_l
add #1
psha
lda #<_time
psha
lda #>_time
psha
lda 59,X
psha
jsr _Transmission
ais #5
; Change(); //将数组time组合存储到数组Tdate
jsr _Change
; Controle(); //控制时钟的日期时间合法
jsr _Controle
; Lcdshow((unsigned char *)time);
lda #<_time
psha
lda #>_time
psha
jsr _Lcdshow
ais #2
; LcdShowCursor((1+l),(4+k));
lda *_k
add #4
psha
lda *_l
add #1
psha
jsr _LcdShowCursor
ais #2
tsx
; Key=0;
clr *_Key
; }
L87:
L59:
jmp L58
X0:
;
; }
;
; }
L56:
;
; if(Key=='2') //选择子菜单2
lda *_Key
cmp #50
beq X6
jmp L89
X6:
; { LcdShowString((unsigned char *)str3,13,1); //显示闹钟功能选择:1. Open Alarm
lda #1
psha
lda #13
psha
aix #44
pshx
pshh
jsr _LcdShowString
ais #4
tsx
; LcdShowString((unsigned char *)str4,14,2); // 2. Close Alarm
lda #2
psha
lda #14
psha
aix #29
pshx
pshh
jsr _LcdShowString
ais #4
tsx
; Key=0;
clr *_Key
; if(Key=='1') //选择1. Open Alarm
lda *_Key
cmp #49
beq X7
jmp L91
X7:
; { o=1; //开闹钟
lda #1
sta *_o
; Lcdshow((unsigned char *)alarm);
lda #<_alarm
psha
lda #>_alarm
psha
jsr _Lcdshow
ais #2
; LcdShowCursor(2,5); //光标初始位置(2,5),第二行第五列
lda #5
psha
lda #2
psha
jsr _LcdShowCursor
ais #2
tsx
; k=1;l=1;
lda #1
sta *_k
lda #1
sta *_l
; Key=0;
clr *_Key
jmp L94
L93:
; while(1)
; { if(Key=='#') //光标右移
lda *_Key
cmp #35
bne L96
; { ++k;
inc *_k
; if(l%2==0) //现在光标在第一行
lda *_l
ldx #2
clrh
div
pshh
pula
tsx
tsta
bne L98
lda *_k
cmp #4
beq L102
lda *_k
cmp #7
bne L100
L102:
; { if(k==4||k==7) ++k;
inc *_k
L100:
; if(k>9) k=0; //现在光标在末端
lda *_k
cmp #9
bls L103
clr *_k
L103:
; LcdShowCursor((1+l),(4+k));
lda *_k
add #4
psha
lda *_l
add #1
psha
jsr _LcdShowCursor
ais #2
tsx
; }
bra L99
L98:
lda *_k
cmp #3
beq L107
lda *_k
cmp #6
bne L105
L107:
; else //现在光标在第二行
; { if(k==3||k==6) ++k;
inc *_k
L105:
; if(k>8) k=1; //现在光标在末端
lda *_k
cmp #8
bls L108
lda #1
sta *_k
L108:
; LcdShowCursor((1+l),(4+k));
lda *_k
add #4
psha
lda *_l
add #1
psha
jsr _LcdShowCursor
ais #2
tsx
; }
L99:
; Key=0;
clr *_Key
;
; }
L96:
; if(Key=='*') //光标下移
lda *_Key
cmp #42
bne L110
; { ++l;
inc *_l
; if(k==0) ++k; //现在光标在第一行始端
lda *_k
bne L112
inc *_k
L112:
; if(k==9) --k; //现在光标在第一行末端
lda *_k
cmp #9
bne L114
dec *_k
L114:
; if(l>1) l=0; //现在光标在第二行
lda *_l
cmp #1
bls L116
clr *_l
L116:
; LcdShowCursor((1+l),(4+k));
lda *_k
add #4
psha
lda *_l
add #1
psha
jsr _LcdShowCursor
ais #2
tsx
; Key=0;
clr *_Key
; }
L110:
; if(Key=='B') //返回
lda *_Key
cmp #66
bne L118
; { Key=0;
clr *_Key
; goto MENU;
jmp L50
L118:
; }
; if(Key=='D') //确定
lda *_Key
cmp #68
bne L120
; { Key=0;
clr *_Key
; goto BEGING;
bra L18
L120:
; }
; if(Key!=0&&Discriminant(Key))
lda *_Key
beq L122
lda *_Key
psha
jsr _Discriminant
ais #1
tsx
sta *__r1
beq L122
; { Keyvalue=Key-0x30;
lda *_Key
sub #48
sta 59,X
; Transmission(Keyvalue,(unsigned char *) alarm,(1+l),(4+k));
lda *_k
add #4
psha
lda *_l
add #1
psha
lda #<_alarm
psha
lda #>_alarm
psha
lda 59,X
psha
jsr _Transmission
ais #5
; Change2(); //将数组alarm组合存储到数组Tdate2
jsr _Change2
; Controle2(); //控制闹钟的日期时间合法
jsr _Controle2
; Lcdshow((unsigned char *)alarm);
lda #<_alarm
psha
lda #>_alarm
psha
jsr _Lcdshow
ais #2
; LcdShowCursor((1+l),(4+k));
lda *_k
add #4
psha
lda *_l
add #1
psha
jsr _LcdShowCursor
ais #2
tsx
; Key=0;
clr *_Key
; }
L122:
L94:
jmp L93
X1:
;
; }
; if(Key=='2') //选择2. Close Alarm
lda *_Key
cmp #50
bne L124
; { o=0; //关闹钟
clr *_o
; Key=0;
clr *_Key
; goto BEGING;
bra L18
L124:
; }
; }
L91:
; }
L89:
L52:
jmp L51
X2:
;
;
;
; }
;
; }
L48:
L18:
jmp L17
X3:
L1:
ais #60
.dbline 0 ; func end
rts
.area bss
_o::
.blkb 1
_l::
.blkb 1
_k::
.blkb 1
_Key::
.blkb 1
_Ttime2::
.blkb 3
_Tdate2::
.blkb 6
_alarm::
.blkb 14
_Ttime::
.blkb 3
_Tdate::
.blkb 6
_time::
.blkb 14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -