📄 lcdshow.s
字号:
tsx
;
; }
bra L41
L40:
; else if(flat==10)
lda *_flat
cmp #10
bne L42
; {
; flat--;
dec *_flat
; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
bclr #0,0x2
; LcdCtrl&=~(1<<LcdRW);
bclr #1,0x2
; Lcd_Command(0b10001100); //后7位为DDRAM地址0x4c
lda #-116
psha
jsr _Lcd_Command
ais #1
tsx
; }
bra L43
L42:
; else if(flat>0)
lda *_flat
cmp #0
bls L44
; {
; flat--;
dec *_flat
; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
bclr #0,0x2
; LcdCtrl&=~(1<<LcdRW);
bclr #1,0x2
; Lcd_Command(0b00010000); //后7位为DDRAM地址0x10
lda #16
psha
jsr _Lcd_Command
ais #1
tsx
; }
L44:
L43:
L41:
; Lcd_Command(0b00001111); //开显示,开光标显示,闪烁
lda #15
psha
jsr _Lcd_Command
ais #1
tsx
L39:
.dbline 0 ; func end
rts
_right::
; }
; void right(void) ////进入右移时间模式
; {
; if(flat<9)
lda *_flat
cmp #9
bhs L47
; {
; flat++;
inc *_flat
; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
bclr #0,0x2
; LcdCtrl&=~(1<<LcdRW);
bclr #1,0x2
; Lcd_Command(0b00010100); //
lda #20
psha
jsr _Lcd_Command
ais #1
tsx
;
; }
bra L48
L47:
; else if(flat==9)
lda *_flat
cmp #9
bne L49
; {
; flat++;
inc *_flat
; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
bclr #0,0x2
; LcdCtrl&=~(1<<LcdRW);
bclr #1,0x2
; Lcd_Command(0b11000100); //后7位为DDRAM地址0x44
lda #-60
psha
jsr _Lcd_Command
ais #1
tsx
; }
bra L50
L49:
; else if(flat<17)
lda *_flat
cmp #17
bhs L51
; {
; flat++;
inc *_flat
; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
bclr #0,0x2
; LcdCtrl&=~(1<<LcdRW);
bclr #1,0x2
; Lcd_Command(0b00010100); //后7位为DDRAM地址0x03
lda #20
psha
jsr _Lcd_Command
ais #1
tsx
; }
L51:
L50:
L48:
L46:
.dbline 0 ; func end
rts
; i -> 0,X
; j -> 1,X
_down::
ais #-2
tsx
;
; }
;
; void down(void) ////进入左移时间模
; {
; unsigned char i,j;
; j=flat;
lda *_flat
sta 1,X
; i=(unsigned char)datestr[j]-0x30;
clr *__r0
add #<_datestr
sta *__r1
lda *__r0
adc #>_datestr
sta *__r0
ldhx *__r0
lda ,x
tsx
sub #48
sta ,X
; i++;
inc ,X
; datestr[j]=(unsigned char)i+0x30;
lda ,X
add #48
sta *__r1
clr *__r2
lda 1,X
add #<_datestr
sta *__r3
lda *__r2
adc #>_datestr
sta *__r2
lda *__r1
ldhx *__r2
sta ,x
tsx
; if(j<=3)data[2]=data[2]-10^(3-j);
lda 1,X
cmp #3
bhi L54
lda #3
sub 1,X
sta *__r0
lda *_data+2
sub #10
eor *__r0
sta *_data+2
L54:
; if(j>=5&&j<=6)data[1]=data[1]-10^(j-5);
lda 1,X
cmp #5
blo L58
cmp #6
bhi L58
sub #5
sta *__r0
lda *_data+1
sub #10
eor *__r0
sta *_data+1
L58:
; if(j>=8&&j<=9)data[0]=data[0]-10^(j-8);
lda 1,X
cmp #8
blo L62
cmp #9
bhi L62
sub #8
sta *__r0
lda *_data
sub #10
eor *__r0
sta *_data
L62:
; if(j>=10&&j<=11)time[2]=time[2]-10^(j-10);
lda 1,X
cmp #10
blo L64
cmp #11
bhi L64
clr *__r0
sub #10
sta *__r1
lda *__r0
sbc #0
sta *__r0
lda *_time+4+1
sub #10
sta *__r3
lda *_time+4
sbc #0
sta *__r2
lda *__r3
eor *__r1
sta *_time+4+1
lda *__r2
eor *__r0
sta *_time+4
L64:
; if(j>=13&&j<=14)time[1]=time[1]-10^(j-13);
lda 1,X
cmp #13
blo L68
cmp #14
bhi L68
clr *__r0
sub #13
sta *__r1
lda *__r0
sbc #0
sta *__r0
lda *_time+2+1
sub #10
sta *__r3
lda *_time+2
sbc #0
sta *__r2
lda *__r3
eor *__r1
sta *_time+2+1
lda *__r2
eor *__r0
sta *_time+2
L68:
; if(j>=15&&j<=16)time[0]=time[0]-10^(j-15);
lda 1,X
cmp #15
blo L72
cmp #16
bhi L72
clr *__r0
sub #15
sta *__r1
lda *__r0
sbc #0
sta *__r0
lda *_time+1
sub #10
sta *__r3
lda *_time
sbc #0
sta *__r2
lda *__r3
eor *__r1
sta *_time+1
lda *__r2
eor *__r0
sta *_time
L72:
L53:
ais #2
.dbline 0 ; func end
rts
; i -> 0,X
; j -> 1,X
_up::
ais #-2
tsx
; }
; void up(void) ////进入右移时间模式
; {
; //
; unsigned char i,j;
; j=flat;
lda *_flat
sta 1,X
; i=(unsigned char)datestr[j]-0x30;
clr *__r0
add #<_datestr
sta *__r1
lda *__r0
adc #>_datestr
sta *__r0
ldhx *__r0
lda ,x
tsx
sub #48
sta ,X
; i=i+1;
inc ,X
; datestr[j]=(unsigned char)i+0x30;
lda ,X
add #48
sta *__r1
clr *__r2
lda 1,X
add #<_datestr
sta *__r3
lda *__r2
adc #>_datestr
sta *__r2
lda *__r1
ldhx *__r2
sta ,x
tsx
; if(j<=3)data[2]=data[2]+10^(3-j);
lda 1,X
cmp #3
bhi L75
lda #3
sub 1,X
sta *__r0
lda *_data+2
add #10
eor *__r0
sta *_data+2
L75:
; if(j>=5&&j<=6)data[1]=data[1]+10^(j-5);
lda 1,X
cmp #5
blo L79
cmp #6
bhi L79
sub #5
sta *__r0
lda *_data+1
add #10
eor *__r0
sta *_data+1
L79:
; if(j>=8&&j<=9)data[0]=data[0]+10^(j-8);
lda 1,X
cmp #8
blo L83
cmp #9
bhi L83
sub #8
sta *__r0
lda *_data
add #10
eor *__r0
sta *_data
L83:
; if(j>=10&&j<=11)time[2]=time[2]+10^(j-10);
lda 1,X
cmp #10
blo L85
cmp #11
bhi L85
clr *__r0
sub #10
sta *__r1
lda *__r0
sbc #0
sta *__r0
ldhx *_time+4
aix #10
sthx *__r2
tsx
lda *__r3
eor *__r1
sta *_time+4+1
lda *__r2
eor *__r0
sta *_time+4
L85:
; if(j>=13&&j<=14)time[1]=time[1]+10^(j-13);
lda 1,X
cmp #13
blo L89
cmp #14
bhi L89
clr *__r0
sub #13
sta *__r1
lda *__r0
sbc #0
sta *__r0
ldhx *_time+2
aix #10
sthx *__r2
tsx
lda *__r3
eor *__r1
sta *_time+2+1
lda *__r2
eor *__r0
sta *_time+2
L89:
; if(j>=15&&j<=16)time[0]=time[0]+10^(j-15);
lda 1,X
cmp #15
blo L93
cmp #16
bhi L93
clr *__r0
sub #15
sta *__r1
lda *__r0
sbc #0
sta *__r0
ldhx *_time
aix #10
sthx *__r2
tsx
lda *__r3
eor *__r1
sta *_time+1
lda *__r2
eor *__r0
sta *_time
L93:
; lcdshow((unsigned char *)datestr,(unsigned char *)clockstr);
lda #<_clockstr
psha
lda #>_clockstr
psha
lda #<_datestr
psha
lda #>_datestr
psha
jsr _lcdshow
ais #4
tsx
L74:
ais #2
.dbline 0 ; func end
rts
.area bss
_time::
.blkb 6
_data::
.blkb 3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -