📄 yj2000.asm
字号:
cseg at 0000h
jmp format
cseg at 0bh
jmp flash
cseg at 01bh
jmp addtime
format: clr 09h
mov 08h,#0
mov 09h,#0
mov 0ah,#0
mov 0bh,#0
mov 81h,#30h
clr psw.4
clr psw.3
clr 8h
mov r7,#00111000b
acall WSB
mov r7,#00001100b
acall WSB
mov r7,#00000110b
acall WSB
mov r7,#1
acall WSB
mov r7,#0dch
acall WSB
acall YJ2005
acall refresh
acall jsformat
mov ie,#10001010b
mov 0b8h,#00001000b
mov tmod,#00010001b
mov th1,#0dch
mov tl1,#0
mov th0,#0cch
mov tl0,#000h
setb tr1
setb tr0
gon:
acall scankey
cjne r5,#3,noTT
cjne r6,#1,noTT
cpl 09h
clr 8h
mov r7,#1
acall WSB
jb 09h,js
setb tr0
acall flashver
clr 8h
mov r7,#00111000b
acall WSB
mov r7,#00001100b
acall WSB
jmp gon
js: clr tr0
clr 8h
mov r7,#80h
acall WSB
mov r7,#00001111b
acall WSB
acall jsformat
jmp gon
noTT: jnb 09h,noTT1
cjne r5,#3,noCE
cjne r6,#0,noCE
clr 8h
mov r7,#1
acall WSB
acall jsformat
jmp gon
noCE:
jmp noCom
noTT1: cjne r5,#0,noTTh
cjne r6,#2,noTTh
inc 0bh
mov r0,#0bh
cjne @r0,#24,tt1
mov 0bh,#0
tt1: jmp reft
noTTh: cjne r5,#1,noTTm
cjne r6,#2,noTTm
inc 0ah
mov r0,#0ah
cjne @r0,#60,tt2
mov 0ah,#0
tt2: jmp reft
noTTm: cjne r5,#2,noTTcom
cjne r6,#2,noTTcom
mov 09h,#0
mov 08h,#0
reft: acall refresh
noTTcom:jmp gon
noCom: cjne r5,#3,nodoit
cjne r6,#3,nodoit
clr 8h
mov r7,#0c0h
call WSB
setb 8h
mov r7,#3dh
call WSB
call doit
jmp gon
nodoit: jnb 0dh,makN1
acall makno2
jmp gon
makN1: acall makno1
jmp gon
doit: mov a,19h
cjne a,1ch,yihao
mov a,18h
cjne a,#0,single
mov a,1bh
cjne a,#0,single
integer:mov 4fh,#0
clr c
acall intadd
acall disjg
single:
yihao:
ret
disjg: mov a,#50h
add a,4fh
ago: cjne a,#50h,dis
ret
dis: mov r0,a
mov a,@r0
add a,#30h
setb 8h
mov r7,a
acall WSB
dec 4fh
jmp disjg
intadd: push psw
begin: inc 4fh
mov 4dh,#0
mov 4eh,#0
mov a,1ah
orl a,1dh
cjne a,#0,doadd
pop psw
jnc over
mov a,#50h
add a,4fh
mov r0,a
mov @r0,#1
inc 4fh
over: dec 4fh
ret
doadd: mov r0,#1ah
cjne @r0,#0,no1t0
no2t1: mov r0,#1dh
cjne @r0,#0,no2t0
jmp todo
no2t0: mov a,#60h
add a,@r0
mov r0,a
mov 4eh,@r0
dec 1dh
todo: pop psw
mov a,4dh
addc a,4eh
mov r1,a
subb a,#10
jc xy10
setb c
push psw
mov r1,a
jmp doad
xy10: clr c
push psw
doad: mov a,#50h
add a,4fh
mov r0,a
mov a,r1
mov @r0,a
jmp begin
no1t0: mov a,#70h
add a,@r0
mov r0,a
mov 4dh,@r0
dec 1ah
jmp no2t1
makno2: mov a,1dh
cjne a,#0,no2head
cjne r5,#3,no2subb
cjne r6,#2,no2subb
clr 8h
mov r7,1eh
call WSB
mov 1ch,#0ffh
setb 8h
mov r7,#2dh
call WSB
ret
no2subb:cjne r5,#2,no2add
cjne r6,#3,no2add
clr 8h
mov r7,1eh
call WSB
mov 1ch,#0
setb 8h
mov r7,#2bh
call WSB
ret
no2add:
no2head:cjne a,#7,no2engh
ret
no2engh:cjne r5,#1,nopoin2
cjne r6,#3,nopoin2
mov a,1bh
cjne a,#0,no2FP
inc 1dh
acall print
mov 1bh,1dh
no2FP: ret
nopoin2:cjne r5,#2,no2a
cjne r6,#3,no2a
ret
no2a: cjne r5,#3,no2s
cjne r6,#2,no2s
ret
no2s: inc 1dh
mov a,#60h
add a,1dh
mov r1,a
acall print
subb a,#2fh
mov @r1,a
ret
makno1: mov a,1ah
cjne a,#0,nothead
cjne r5,#3,notsubb
cjne r6,#2,notsubb
mov 1eh,#1
clr 8h
mov r7,#80h
call WSB
mov a,0ffh
xrl 19h,a
mov a,19h
setb 8h
cjne a,#0ffh,notF
mov r7,#2dh
call WSB
ret
notF: mov r7,#00100000b
call WSB
ret
notsubb:cjne r5,#2,nothead
cjne r6,#3,nothead
ret
nothead:cjne a,#7,notengh
acall set2FH
ret
notengh:cjne r5,#1,nopoint
cjne r6,#3,nopoint
mov a,18h
cjne a,#0,noFP
inc 1ah
acall print
mov 18h,1ah
noFP: ret
nopoint:acall set2FH
jnb 0dh,nosub
ret
nosub: inc 1ah
mov a,#70h
add a,1ah
mov r1,a
acall print
subb a,#2fh
mov @r1,a
ret
set2FH: cjne r5,#2,noadd
cjne r6,#3,noadd
acall set1eh
acall print
setb 0dh
mov 1ch,#0
ret
noadd: cjne r5,#3,noooo
cjne r6,#2,noooo
acall set1eh
acall print
setb 0dh
mov 1ch,#0ffh
noooo: ret
set1eh: mov a,1ah
add a,1eh
add a,#80h
mov 1eh,a
ret
print: acall findchar
setb 8h
mov r7,a
acall WSB
ret
jsformat:clr 0dh
mov 18h,#0
mov 19h,#0
mov 1ah,#0
mov 1bh,#0
mov 1ch,#0
mov 1dh,#0
mov 1eh,#0
ret
findchar:mov a,#4
mov b,r5
mul ab
add a,r6
mov dptr,#0f00h
movc a,@a+dptr
ret
YJ2005: clr 8h
mov r7,#80h
acall WSB
setb 8h
mov r7,#01011001b
acall WSB
mov r7,#01001010b
acall WSB
mov r7,#32h
acall WSB
mov r7,#30h
acall WSB
mov r7,#30h
acall WSB
mov r7,#35h
acall WSB
clr 8h
mov r7,#0c2h
acall WSB
ret
scankey:mov p1,#0feh
mov r1,#3
scan: mov a,p1
anl a,#11110000b
cjne a,#11110000b,quit
mov a,p1
rl a
mov p1,a
dec r1
cjne r1,#0ffh,scan
acall Ltime
mov r3,#0ffh
mov r4,#0ffh
jmp scankey
quit: mov r5,#0ffh
makr5: rlc a
inc r5
jc makr5
mov a,r1
mov r6,a
mov p1,#0
mov a,r5
subb a,r3
mov r2,a
mov a,r6
subb a,r4
add a,r2
cjne a,#0,ok
jmp scankey
ok: mov a,r5
mov r3,a
mov a,r6
mov r4,a
ret
WSB: push 7
WSB1: acall RZT
anl 7h,#10000000b
cjne r7,#0,WSB1
pop 7
clr p2.2
mov c,8h
mov p2.0,c
clr p2.1
nop
nop
mov p0,r7
nop
nop
nop
nop
setb p2.2
nop
nop
nop
nop
clr p2.2
ret
RZT: mov p2,#00000110b
nop
nop
nop
nop
mov r7,p0
clr p2.2
ret
Ltime: mov r2,#0afh
goo: mov r3,#0ffh
go: dec r3
nop
cjne r3,#0,go
dec r2
cjne r2,#0,goo
ret
addtime:mov th1,#0dch
mov tl1,#0
mov 0bh,c
push psw
mov 1fh,a
mov 16h,b
push dph
push dpl
mov 2bh,r0
mov 2ch,r1
mov 2dh,r7
inc 8h
jb 9h,makt11
acall refresh
makt11: mov r0,#8h
cjne @r0,#100,makt
mov 8h,#0
acall maktim
makt: mov r7,2dh
mov r1,2ch
mov r0,2bh
pop dpl
pop dph
mov b,16h
mov a,1fh
pop psw
mov c,0bh
reti
maktim: inc 9h
mov r0,#9h
cjne @r0,#60,nodis
mov 9h,#0
inc 0ah
mov r0,#0ah
cjne @r0,#60,nodis
mov 0ah,#0
inc 0bh
mov r0,#0bh
cjne @r0,#24,nodis
mov 0bh,#0
nodis: ret
refresh:setb 9h
inc 17h
mov r0,#17h
cjne @r0,#0,nohor
hor: clr 8h
mov r7,#0c3h
acall WSB
setb 8h
mov b,#10
mov a,0bh
div ab
add a,#30h
mov r7,a
acall WSB
mov a,b
add a,#30h
mov r7,a
acall WSB
mov a,#00111010b
mov r7,a
acall WSB
clr 8h
mov r7,#0c3h
acall WSB
clr 9h
ret
nohor: cjne @r0,#1,nomin
min: clr 8h
mov r7,#0c6h
acall WSB
setb 8h
mov b,#10
mov a,0ah
div ab
add a,#30h
mov r7,a
acall WSB
mov a,b
add a,#30h
mov r7,a
acall WSB
mov a,#00111010b
mov r7,a
acall WSB
clr 8h
mov r7,#0c6h
acall WSB
clr 9h
ret
nomin: cjne @r0,#2,nomm
clr 8h
mov r7,#0c9h
acall WSB
setb 8h
mov b,#10
mov a,09h
div ab
add a,#30h
mov r7,a
acall WSB
mov a,b
add a,#30h
mov r7,a
acall WSB
mov a,#2eh
mov r7,a
acall WSB
clr 8h
mov r7,#0c6h
acall WSB
clr 9h
ret
nomm: mov 17h,#0ffh
mm: clr 8h
mov r7,#0cch
acall WSB
setb 8h
mov b,#10
mov a,08h
div ab
add a,#30h
mov r7,a
acall WSB
mov a,b
add a,#30h
mov r7,a
acall WSB
clr 8h
mov r7,#0cch
acall WSB
clr 9h
ret
flash: push psw
mov 14h,a
mov 15h,b
push dph
push dpl
mov 2fh,r0
mov 2eh,r1
mov 2ah,r7
mov th0,#0cch
mov tl0,#00
inc 0ch
mov r0,#0ch
cjne @r0,#250,makt1
cpl 0ah
mov 0ch,0
jb 9h,makt1
acall flashver
makt1: mov r1,2eh
mov r0,2fh
mov r7,2ah
pop dpl
pop dph
mov b,15h
mov a,14h
pop psw
reti
flashver: setb 9h
clr 8h
mov r7,#1
acall WSB
jnb 0ah,ver
acall yj2005
clr 9h
ret
ver: clr 8h
mov r7,#80h
acall WSB
setb 8h
mov r7,#01010100b
acall WSB
mov r7,#01100101b
acall WSB
mov r7,#01101100b
acall WSB
mov r7,#00111010b
acall WSB
mov r7,#31h
acall WSB
mov r7,#33h
acall WSB
mov r7,#39h
acall WSB
mov r7,#38h
acall WSB
mov r7,#31h
acall WSB
mov r7,#32h
acall WSB
mov r7,#35h
acall WSB
mov r7,#38h
acall WSB
mov r7,#38h
acall WSB
mov r7,#36h
acall WSB
mov r7,#37h
acall WSB
clr 8h
mov r7,#80h
acall WSB
clr 9h
ret
cseg at 0f00h
keys: db 37h,34h,31h,30h,38h,35h,32h,2eh,39h,36h,33h,2bh,0,0,2dh,3dh
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -