📄 cnvlcdclk.ms
字号:
NDspH0:
.stabn 506, LineInfo
ld y,(0x32)
.stabn 507, LineInfo
ld a,my
DspH2:
.stabn 509, LineInfo
calz DspHourL
; ld x,LCDMapMem1
; ld y,093h
; calz DspPattern
; ld x,LCDMapMem1
; ld my,mx
; inc x
; inc y
; ld a,mx
; or a,0001b
; ld my,a
.stabn 520, LineInfo
ld y,(0x33)
.stabn 521, LineInfo
ld a,my
.stabn 522, LineInfo
fan a,0b1111
.stabn 523, LineInfo
jp nz,NewDspH2
.stabn 524, LineInfo
jp NewDspH22
NewDspH2:
.stabn 526, LineInfo
ld x,(0x34)
.stabn 527, LineInfo
ld y,0x091
.stabn 528, LineInfo
calz DspDigit
.stabn 529, LineInfo
ret
DspHourOff:
; off minute xx
.stabn 532, LineInfo
ld a,0
.stabn 533, LineInfo
ld x,0x093
.stabn 534, LineInfo
ld mx,a
.stabn 535, LineInfo
ld a,0x01
.stabn 536, LineInfo
ld x,0x094
.stabn 537, LineInfo
ld mx,a
NewDspH22:
.stabn 539, LineInfo
ld x,0x091
.stabn 540, LineInfo
calz DspDigitSpa
.stabn 541, LineInfo
ret
FlashMinute:
.stabn 544, LineInfo
ld x,(0x16)
.stabn 545, LineInfo
FAN mx,(1)
.stabn 546, LineInfo
Jp z,DspMinuteOff
DspMinute:
; display min xx
; ld x,RTCMinH
.stabn 551, LineInfo
ld a,my
.stabn 552, LineInfo
push yl
.stabn 553, LineInfo
push yh
.stabn 554, LineInfo
ld x,(0x3A)
.stabn 555, LineInfo
ld y,0x097
.stabn 556, LineInfo
calz DspDigit
; ld x,RTCMinL
.stabn 558, LineInfo
pop yh
.stabn 559, LineInfo
pop yl
.stabn 560, LineInfo
inc y
.stabn 561, LineInfo
ld a,my
.stabn 562, LineInfo
ld x,(0x38)
.stabn 563, LineInfo
ld y,0x095
.stabn 564, LineInfo
calz DspDigit
.stabn 565, LineInfo
ret
DspMinuteOff:
; off minute xx
.stabn 568, LineInfo
ld x,0x095
.stabn 569, LineInfo
calz DspDigitSpa
.stabn 570, LineInfo
ld x,0x097
.stabn 571, LineInfo
calz DspDigitSpa
.stabn 572, LineInfo
ret
;-------------------------------------
; Cate : Display
; By : Hcy
; Func : dislay the fraction
; Desc : DspFraction
; I/P : RxSBuffer(0--9) --> nul,1/8,1/4,3/8,1/2,5/8,3/4,7/8,9/8,nul
; O/P : --
; Destroy:
; Note :
;DspFraction:
; ld y,RxSBuffer
; cp my,0
; jp z,DspF0
; cp my,9
; jp z,DspF0
; ld a,my
; add a,07h ; a+7
; ld x,RxBuffer8
; calz DspPattern1
; ld y,RxBuffer8
; ld a,my
; ld x,098h
; calz DspPattern
; inc y
; ld a,my
; calz DspPattern
; ret
;DspF0:
; display nul/nul
; ld a,7
; ld x,098h
; calz DspPattern1 ; display ' ' in 5th digit
; calz DspPattern1 ; display ' ' in 6th digit
; ret
;-------------------------------------
; Cate : Display
; By : Hcy
; Func : display the weight from the samsung
; Desc : DspWeight
; I/P : --
; O/P : --
; Destroy:
; Note :
;DspWeight:
; ld y,RxBuffer6
; ld x,090h
; ld b,4
;DspW0:
; ld a,my
; push b
; ld b,a
; inc y
; fan my,0fh
; jp nz,DspW1
; ld a,b
; calz DspDigit
; jp DspW2
;DspW1:
; ld a,b
; calz DspDigit1
;DspW2:
; ld b,YL
; rcf
; sbc b,3 ; get next digit
; ld YL,b
; pop b
; ADD b,0FH ;
; jp nz,DspW0
; ret
;-------------------------------------
; Cate : Display
; By : Hcy
; Func : display the icons from the samsung
; Desc : DspIcons
; I/P : --
; O/P : --
; Destroy:
; Note :
;DspIcons:
; ld y,RxIcon0
; ld x,09ch
; ld b,4
;DspI0:
; ld mx,my
; inc y
; inc x
;; rcf
;; sbc b,1 ; get next digit
; ADD b,0FH ;
; jp nz,DspI0
; ret
;---------------------------------------
;---------------------------------------
; calculate the clock
;---------------------------------------
;---------------------------------------
;-------------------------------------
; Cate : Application
; By : Hcy
; Func : increase byte by decimal
; Desc : IncByteD
; I/P : X(address of buffer)
; O/P :
; Destroy:
; Note :
IncByteD:
.stabn 685, LineInfo
SET F,0b0100
.stabn 686, LineInfo
RCF
.stabn 687, LineInfo
ADD MX,0x01
.stabn 688, LineInfo
inc x
.stabn 689, LineInfo
ADC MX,0x00
.stabn 690, LineInfo
RST F,0b1011
.stabn 691, LineInfo
RET
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : toggle the half sec flag
; Desc : ToggleHalfSecFlag
; I/P : --
; O/P : --
; Destroy:
; Note :
;ToggleHalfSecFlag:
; ld x,AppFlags
; xor mx,HalfSecFlag
; fan mx,HalfSecFlag
; jp nz,xToggleHalfS
; or mx,SecClickFlag ; set flag if from 1->0
;xToggleHalfS:
; ret
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : check if up to 1 minute
; Desc : IncSecond
; I/P : --
; O/P : --
; Destroy:
; Note : c=0 if not up to 1 minute, c=1 if up to 1 minute
IncSecond:
.stabn 721, LineInfo
ld x,(0x10)
.stabn 722, LineInfo
calz IncByteD
.stabn 723, LineInfo
ld x,(0x10)
.stabn 724, LineInfo
calz IsEqu60
.stabn 725, LineInfo
ret
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : is che memory equ 60h
; Desc : IsEqu60
; I/P : --
; O/P : --
; Destroy:
; Note :
IsEqu60:
.stabn 737, LineInfo
cp mx,0x00
.stabn 738, LineInfo
jp z,IsEqu0
; rcf
; ret
; jp IsEqu2
.stabn 742, LineInfo
jp IsRight8
IsEqu0:
.stabn 744, LineInfo
inc x
.stabn 745, LineInfo
cp mx,0x06
.stabn 746, LineInfo
jp z,IsEqu1 ; jmp if 1 minute time out
IsRight8:
.stabn 748, LineInfo
rcf
.stabn 749, LineInfo
ret
IsEqu1:
.stabn 751, LineInfo
ld mx,0 ; clr the memory
IsEquE:
.stabn 753, LineInfo
scf
.stabn 754, LineInfo
ret
;
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : is che memory equ 24h
; Desc : IsEqu24
; I/P : --
; O/P : --
; Destroy:
; Note :
IsEqu24:
.stabn 767, LineInfo
cp mx,0x04
.stabn 768, LineInfo
jp z,IsEqu240
.stabn 769, LineInfo
jp IsRight8
IsEqu240:
.stabn 771, LineInfo
push xl
.stabn 772, LineInfo
inc x
.stabn 773, LineInfo
cp mx,0x02
.stabn 774, LineInfo
pop xl
.stabn 775, LineInfo
jp z,IsEqu241 ; jmp if 1 minute time out
.stabn 776, LineInfo
jp IsRight8
IsEqu241:
.stabn 778, LineInfo
ldpx mx,0
.stabn 779, LineInfo
ld mx,0
.stabn 780, LineInfo
jp IsEquE
FlashTimeFormat:
.stabn 783, LineInfo
ld x,(0x16)
.stabn 784, LineInfo
FAN mx,(1)
.stabn 785, LineInfo
Jp z,DspHourOff
;-------------------------------------
; Cate : display
; By : Hcy
; Func : display '24:H' or '12:H'
; Desc : DspTimeFormat
; I/P : --
; O/P : --
; Destroy:
; Note :
DspTimeFormat:
.stabn 796, LineInfo
ld x,(1)
.stabn 797, LineInfo
fan mx,(8)
.stabn 798, LineInfo
jp nz,DspTime0 ; jmp if 24 hour
.stabn 799, LineInfo
ld a,1
.stabn 800, LineInfo
ld x,0x091
.stabn 801, LineInfo
calz DspPattern
.stabn 802, LineInfo
ld a,2
.stabn 803, LineInfo
calz DspHourL
.stabn 804, LineInfo
jp DspTime1
DspTime0:
.stabn 806, LineInfo
ld a,2
.stabn 807, LineInfo
ld x,0x091
.stabn 808, LineInfo
calz DspPattern
.stabn 809, LineInfo
ld a,4
.stabn 810, LineInfo
calz DspHourL
DspTime1:
.stabn 812, LineInfo
ld a,0
.stabn 813, LineInfo
ld x,0x095
.stabn 814, LineInfo
calz DspPattern1 ; display 'H'
.stabn 815, LineInfo
calz DspDigitSpa
.stabn 816, LineInfo
ret
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : check if up to 1 hour
; Desc : IncMinute
; I/P : --
; O/P : --
; Destroy:
; Note : c=0 if not up to 1 minute, c=1 if up to 1 minute
IncMinute:
.stabn 828, LineInfo
ld x,(0x12)
.stabn 829, LineInfo
calz IncByteD
.stabn 830, LineInfo
ld x,(0x12)
.stabn 831, LineInfo
calz IsEqu60
.stabn 832, LineInfo
ret
;
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : check if up to 1 hour
; Desc : IncHour
; I/P : --
; O/P : --
; Destroy:
; Note : c=0 if not up to 24 hour, c=1 if up to 24 hour
IncHour:
.stabn 844, LineInfo
ld x,(0x14)
.stabn 845, LineInfo
calz IncByteD
.stabn 846, LineInfo
ld x,(0x14)
.stabn 847, LineInfo
calz IsEqu24
.stabn 848, LineInfo
ret
;
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : clear the byte
; Desc : ClrByte
; I/P : x(ram address)
; O/P : --
; Destroy:
; Note :
;ClrByte:
; ld a,0
; ld mx,a
; inc x
; ld mx,a
; ret
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : inc setting HOUR
; Desc : IncSetHour
; I/P : --
; O/P : --
; Destroy:
; Note :
;IncSetHour:
; ld x,TmpRTCHour
; calz IncByteD
; ld x,TmpRTCHour
; calz IsEqu24
; jp nc,IncSet0
; ld x,TmpRTCHour
; calz ClrByte
;IncSet0:
; ld y,TmpRTCHourL
; calz DspHour
; ret
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : inc setting minute
; Desc : IncSetMinute
; I/P : --
; O/P : --
; Destroy:
; Note :
;IncSetMinute:
; ld x,TmpRTCMinute
; calz IncByteD
; ld x,TmpRTCMinute
; calz IsEqu60
; ld y,TmpRTCMinuteL
; calz DspMinute
; ret
;-------------------------------------
; Cate : Common
; By : Hcy
; Func : copy 2-byte to other memory, (buffer1) --> (buffer2)
; Desc : Copy2Byte
; I/P : x(buffer 1 low address), y(buffer 2 low address)
; O/P :
; Destroy:
; Note :
;Copy2Byte:
; ld a,4
;Copy0:
; ld my,mx
; inc x
; inc y
; add a,0fh ; dec a
; jp nz,Copy0
; ret
;---------------------------------------
;---------------------------------------
; Communication Routine
;---------------------------------------
;---------------------------------------
;-------------------------------------
; Cate : communication
; By : Hcy
; Func : reload the communication variable
; Desc : ReloadCommVar
; I/P : --
; O/P : --
; Destroy:
; Note :
;ReloadCommVar:
; ld y,CommBufferL
; ld my,0 ; clr the communication buffer
; ld y,CommCount
; ld my,04h ; reload the communication bit counter
; ret
;-------------------------------------
; Cate : communication
; By : Hcy
; Func : store to the receive buffer
; Desc : ToRecBuffer
; I/P : --
; O/P : --
; Destroy:
; Note :
;ToRecBuffer:
; ld y,RxStartBufL
; ld x,RxNibbleCnt
; ld a,mx
;Prog1:
; ld YL,a
;Prog2:
; ld x,CommBufferL
; ld my,mx ; store receive data to receive buffer
; ret
;-------------------------------------
; Cate : communication
; By : Hcy
; Func : is che memory equ 1bh
; Desc : IsEquStartCode
; I/P : Y(start code address)
; O/P : --
; Destroy:
; Note : c=1 if not equal 1bh, c=0 if equal 1bh
;IsEquStartCode:
; ld y,RxStartBufL
; cp my,0Bh
; jp z,IsEquEE
;IsEquE:
; scf
; ret
;IsEquEE:
; rcf
; ret
;-------------------------------------
; Cate : communication
; By : Hcy
; Func : is receive command right ?
; Desc : IsRightCmd
; I/P : --
; O/P : --
; Destroy:
; Note : c=1 if undefined command, c=0 if defined command
;IsRightCmd:
; ld x,RxCommand
; cp mx,SHOWLDIGITCMD
; jp nz,IsRight0
; ; show Ldigit command
; ld x,SumNumRxNibble
; ld mx,0ch
; jp IsRight8
;IsRight0:
; cp mx,SHOWSDIGITCMD
; jp nz,IsRight1
; ; show Sdigit command
; ld x,SumNumRxNibble
; ld mx,1
;IsRight8:
; rcf
; ret
;IsRight1:
; cp mx,SHOWICONCMD
; jp nz,IsRight2
; ; show icon command
; ld x,SumNumRxNibble
; ld mx,4
; ld x,RxNibbleCnt
; ld mx,0ch ;
; jp IsRight8
;IsRight2:
; cp mx,SHOWMSGCMD
; jp nz,IsEquE
; ; show msg command
; jp IsRight8
;;-------------------------------------
; Cate : Display
; By : Kwan
; Func : Clear the LCD ram including digits/icons
; Desc :
; I/P :
; O/P :
; Destroy:
; Note :
;LCDClr:
; LD x,90h
;LCDClr0:
; ldpx mx,0
; cp xh,0bh ; LCD ram from 90 to AFH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -