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

📄 main.s

📁 摩托罗拉的时钟的原代码
💻 S
📖 第 1 页 / 共 2 页
字号:
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 + -