📄 r08cnvlcdclk1.ms
字号:
.stabn 513, LineInfo
ld mx,a ; clr 'am'
.stabn 514, LineInfo
jp DspH1
DspH0:
; ld x,090h
; calz DspDigitSpa ; ' '
; ld x,09ch
; calz DspDigitSpa
.stabn 520, LineInfo
calz ClrAmPm
.stabn 521, LineInfo
call CopyByte
.stabn 522, LineInfo
jp NDspH0
DspH1:
; ld x,DspHourBuf
; calz IncByteD
NDspH0:
.stabn 527, LineInfo
ld y,(0x32)
.stabn 528, LineInfo
ld a,my
DspH2:
.stabn 530, 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 541, LineInfo
ld y,(0x33)
.stabn 542, LineInfo
ld a,my
.stabn 543, LineInfo
fan a,0b1111
.stabn 544, LineInfo
jp nz,NewDspH2
.stabn 545, LineInfo
jp NewDspH22
NewDspH2:
.stabn 547, LineInfo
ld x,(0x34)
.stabn 548, LineInfo
ld y,0x041
.stabn 549, LineInfo
calz DspDigit
.stabn 550, LineInfo
ret
DspHourOff:
; off minute xx
.stabn 553, LineInfo
ld a,0
.stabn 554, LineInfo
ld x,0x043
.stabn 555, LineInfo
ld mx,a
.stabn 556, LineInfo
ld a,0x01
.stabn 557, LineInfo
ld x,0x044
.stabn 558, LineInfo
ld mx,a
NewDspH22:
.stabn 560, LineInfo
ld x,0x041
.stabn 561, LineInfo
calz DspDigitSpa
.stabn 562, LineInfo
ret
FlashMinute:
.stabn 565, LineInfo
ld x,(0x16)
.stabn 566, LineInfo
FAN mx,(1)
.stabn 567, LineInfo
Jp z,DspMinuteOff
DspMinute:
; display min xx
; ld x,RTCMinH
.stabn 572, LineInfo
ld a,my
.stabn 573, LineInfo
push yl
.stabn 574, LineInfo
push yh
.stabn 575, LineInfo
ld x,(0x3A)
.stabn 576, LineInfo
ld y,0x047
.stabn 577, LineInfo
calz DspDigit
; ld x,RTCMinL
.stabn 579, LineInfo
pop yh
.stabn 580, LineInfo
pop yl
.stabn 581, LineInfo
inc y
.stabn 582, LineInfo
ld a,my
.stabn 583, LineInfo
ld x,(0x38)
.stabn 584, LineInfo
ld y,0x045
.stabn 585, LineInfo
calz DspDigit
.stabn 586, LineInfo
ret
DspMinuteOff:
; off minute xx
.stabn 589, LineInfo
ld x,0x045
.stabn 590, LineInfo
calz DspDigitSpa
.stabn 591, LineInfo
ld x,0x047
.stabn 592, LineInfo
calz DspDigitSpa
.stabn 593, 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:
; SET F,0100B
.stabn 707, LineInfo
SDF
.stabn 708, LineInfo
RCF
.stabn 709, LineInfo
ADD MX,0x01
.stabn 710, LineInfo
inc x
.stabn 711, LineInfo
ADC MX,0x00
; RST F,1011B
.stabn 713, LineInfo
RDF
.stabn 714, 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 744, LineInfo
ld x,(0x10)
.stabn 745, LineInfo
calz IncByteD
.stabn 746, LineInfo
ld x,(0x10)
.stabn 747, LineInfo
calz IsEqu60
.stabn 748, LineInfo
ret
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : is che memory equ 60h
; Desc : IsEqu60
; I/P : --
; O/P : --
; Destroy:
; Note :
IsEqu60:
.stabn 760, LineInfo
cp mx,0x00
.stabn 761, LineInfo
jp z,IsEqu0
; rcf
; ret
; jp IsEqu2
.stabn 765, LineInfo
jp IsRight8
IsEqu0:
.stabn 767, LineInfo
inc x
.stabn 768, LineInfo
cp mx,0x06
.stabn 769, LineInfo
jp z,IsEqu1 ; jmp if 1 minute time out
IsRight8:
.stabn 771, LineInfo
rcf
.stabn 772, LineInfo
ret
IsEqu1:
.stabn 774, LineInfo
ld mx,0 ; clr the memory
IsEquE:
.stabn 776, LineInfo
scf
.stabn 777, LineInfo
ret
;
;-------------------------------------
; Cate : Clock
; By : Hcy
; Func : is che memory equ 24h
; Desc : IsEqu24
; I/P : --
; O/P : --
; Destroy:
; Note :
IsEqu24:
.stabn 790, LineInfo
cp mx,0x04
.stabn 791, LineInfo
jp z,IsEqu240
.stabn 792, LineInfo
jp IsRight8
IsEqu240:
.stabn 794, LineInfo
push xl
.stabn 795, LineInfo
inc x
.stabn 796, LineInfo
cp mx,0x02
.stabn 797, LineInfo
pop xl
.stabn 798, LineInfo
jp z,IsEqu241 ; jmp if 1 minute time out
.stabn 799, LineInfo
jp IsRight8
IsEqu241:
.stabn 801, LineInfo
ldpx mx,0
.stabn 802, LineInfo
ld mx,0
.stabn 803, LineInfo
jp IsEquE
FlashTimeFormat:
.stabn 806, LineInfo
ld x,(0x16)
.stabn 807, LineInfo
FAN mx,(1)
.stabn 808, 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 819, LineInfo
ld x,(1)
.stabn 820, LineInfo
fan mx,(8)
.stabn 821, LineInfo
jp nz,DspTime0 ; jmp if 24 hour
.stabn 822, LineInfo
ld a,1
.stabn 823, LineInfo
ld x,0x041
.stabn 824, LineInfo
calz DspPattern
.stabn 825, LineInfo
ld a,2
.stabn 826, LineInfo
calz DspHourL
.stabn 827, LineInfo
jp DspTime1
DspTime0:
.stabn 829, LineInfo
ld a,2
.stabn 830, LineInfo
ld x,0x041
.stabn 831, LineInfo
calz DspPattern
.stabn 832, LineInfo
ld a,4
.stabn 833, LineInfo
calz DspHourL
DspTime1:
.stabn 835, LineInfo
ld a,0
.stabn 836, LineInfo
ld x,0x045
.stabn 837, LineInfo
calz DspPattern1 ; display 'H'
.stabn 838, LineInfo
calz DspDigitSpa
.stabn 839, 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 851, LineInfo
ld x,(0x12)
.stabn 852, LineInfo
calz IncByteD
.stabn 853, LineInfo
ld x,(0x12)
.stabn 854, LineInfo
calz IsEqu60
.stabn 855, 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 867, LineInfo
ld x,(0x14)
.stabn 868, LineInfo
calz IncByteD
.stabn 869, LineInfo
ld x,(0x14)
.stabn 870, LineInfo
calz IsEqu24
.stabn 871, 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -