📄 r08cnvlcdclk.ms
字号:
; inc x
; inc y
; ld a,mx
; or a,0001b
; ld my,a
.stabn 511, LineInfo
ld y,(0x33)
.stabn 512, LineInfo
ld a,my
.stabn 513, LineInfo
fan a,0b1111
.stabn 514, LineInfo
jp nz,NewDspH2
.stabn 515, LineInfo
jp NewDspH22
NewDspH2:
.stabn 517, LineInfo
ld x,(0x34)
.stabn 518, LineInfo
ld y,0x041
.stabn 519, LineInfo
calz DspDigit
.stabn 520, LineInfo
ret
DspHourOff:
; off minute xx
.stabn 523, LineInfo
ld a,0
.stabn 524, LineInfo
ld x,0x043
.stabn 525, LineInfo
ld mx,a
.stabn 526, LineInfo
ld a,0x01
.stabn 527, LineInfo
ld x,0x044
.stabn 528, LineInfo
ld mx,a
NewDspH22:
.stabn 530, LineInfo
ld x,0x041
.stabn 531, LineInfo
calz DspDigitSpa
.stabn 532, LineInfo
ret
FlashMinute:
.stabn 535, LineInfo
ld x,(0x16)
.stabn 536, LineInfo
FAN mx,(1)
.stabn 537, LineInfo
Jp z,DspMinuteOff
DspMinute:
; display min xx
; ld x,RTCMinH
.stabn 542, LineInfo
ld a,my
.stabn 543, LineInfo
push yl
.stabn 544, LineInfo
push yh
.stabn 545, LineInfo
ld x,(0x3A)
.stabn 546, LineInfo
ld y,0x047
.stabn 547, LineInfo
calz DspDigit
; ld x,RTCMinL
.stabn 549, LineInfo
pop yh
.stabn 550, LineInfo
pop yl
.stabn 551, LineInfo
inc y
.stabn 552, LineInfo
ld a,my
.stabn 553, LineInfo
ld x,(0x38)
.stabn 554, LineInfo
ld y,0x045
.stabn 555, LineInfo
calz DspDigit
.stabn 556, LineInfo
ret
DspMinuteOff:
; off minute xx
.stabn 559, LineInfo
ld x,0x045
.stabn 560, LineInfo
calz DspDigitSpa
.stabn 561, LineInfo
ld x,0x047
.stabn 562, LineInfo
calz DspDigitSpa
.stabn 563, 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 676, LineInfo
SET F,0b0100
.stabn 677, LineInfo
RCF
.stabn 678, LineInfo
ADD MX,0x01
.stabn 679, LineInfo
inc x
.stabn 680, LineInfo
ADC MX,0x00
.stabn 681, LineInfo
RST F,0b1011
.stabn 682, 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 712, LineInfo
ld x,(0x10)
.stabn 713, LineInfo
calz IncByteD
.stabn 714, LineInfo
ld x,(0x10)
.stabn 715, LineInfo
calz IsEqu60
.stabn 716, LineInfo
ret
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : is che memory equ 60h
; Desc : IsEqu60
; I/P : --
; O/P : --
; Destroy:
; Note :
IsEqu60:
.stabn 728, LineInfo
cp mx,0x00
.stabn 729, LineInfo
jp z,IsEqu0
; rcf
; ret
; jp IsEqu2
.stabn 733, LineInfo
jp IsRight8
IsEqu0:
.stabn 735, LineInfo
inc x
.stabn 736, LineInfo
cp mx,0x06
.stabn 737, LineInfo
jp z,IsEqu1 ; jmp if 1 minute time out
IsRight8:
.stabn 739, LineInfo
rcf
.stabn 740, LineInfo
ret
IsEqu1:
.stabn 742, LineInfo
ld mx,0 ; clr the memory
IsEquE:
.stabn 744, LineInfo
scf
.stabn 745, LineInfo
ret
;
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : is che memory equ 24h
; Desc : IsEqu24
; I/P : --
; O/P : --
; Destroy:
; Note :
IsEqu24:
.stabn 758, LineInfo
cp mx,0x04
.stabn 759, LineInfo
jp z,IsEqu240
.stabn 760, LineInfo
jp IsRight8
IsEqu240:
.stabn 762, LineInfo
push xl
.stabn 763, LineInfo
inc x
.stabn 764, LineInfo
cp mx,0x02
.stabn 765, LineInfo
pop xl
.stabn 766, LineInfo
jp z,IsEqu241 ; jmp if 1 minute time out
.stabn 767, LineInfo
jp IsRight8
IsEqu241:
.stabn 769, LineInfo
ldpx mx,0
.stabn 770, LineInfo
ld mx,0
.stabn 771, LineInfo
jp IsEquE
FlashTimeFormat:
.stabn 774, LineInfo
ld x,(0x16)
.stabn 775, LineInfo
FAN mx,(1)
.stabn 776, 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 787, LineInfo
ld x,(1)
.stabn 788, LineInfo
fan mx,(8)
.stabn 789, LineInfo
jp nz,DspTime0 ; jmp if 24 hour
.stabn 790, LineInfo
ld a,1
.stabn 791, LineInfo
ld x,0x041
.stabn 792, LineInfo
calz DspPattern
.stabn 793, LineInfo
ld a,2
.stabn 794, LineInfo
calz DspHourL
.stabn 795, LineInfo
jp DspTime1
DspTime0:
.stabn 797, LineInfo
ld a,2
.stabn 798, LineInfo
ld x,0x041
.stabn 799, LineInfo
calz DspPattern
.stabn 800, LineInfo
ld a,4
.stabn 801, LineInfo
calz DspHourL
DspTime1:
.stabn 803, LineInfo
ld a,0
.stabn 804, LineInfo
ld x,0x045
.stabn 805, LineInfo
calz DspPattern1 ; display 'H'
.stabn 806, LineInfo
calz DspDigitSpa
.stabn 807, 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 819, LineInfo
ld x,(0x12)
.stabn 820, LineInfo
calz IncByteD
.stabn 821, LineInfo
ld x,(0x12)
.stabn 822, LineInfo
calz IsEqu60
.stabn 823, 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 835, LineInfo
ld x,(0x14)
.stabn 836, LineInfo
calz IncByteD
.stabn 837, LineInfo
ld x,(0x14)
.stabn 838, LineInfo
calz IsEqu24
.stabn 839, 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
; jp nz, LCDClr0
; ret
;
;;-------------------------------------
; Cate : KeyBoard
; By : Kwan
; Func : Key board scan, set NewKey flag if new key found
; set keyhold flag if the new key is still in-held
; Desc :
; I/P :
; O/P :
; Destroy:
; Note : After calling subr, the newkey flag should be
; checked.
; For MaB key, the Keyholdkey should be cleared before
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -