mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
180 lines
2.5 KiB
NASM
180 lines
2.5 KiB
NASM
////////////////////////////////////////////////////////////////////////
|
|
; ”ãªæ¨ï #21. ’¥ªãé ï ¤ â ¨ ¢à¥¬ï.
|
|
;
|
|
; ¢å®¤: ¥â
|
|
; ¢ë室: D - ¤¥ì
|
|
; E - ¬¥áïæ
|
|
; IX - £®¤
|
|
; H - ç á
|
|
; L - ¬¨ãâë
|
|
; B - ᥪã¤ë
|
|
; C - ¤¥ì ¥¤¥«¨
|
|
////////////////////////////////////////////////////////////////////////
|
|
SYSTIME:
|
|
LD C,BIOS.CMOS_TEST
|
|
RST ToBIOS
|
|
JP C,.NOCMOS
|
|
LD D,7 ;DAY
|
|
CALL RCMOS
|
|
PUSH AF
|
|
LD D,8 ;MONTH
|
|
CALL RCMOS
|
|
POP DE
|
|
LD E,A
|
|
PUSH DE
|
|
LD D,4 ;HOUR
|
|
CALL RCMOS
|
|
PUSH AF
|
|
LD D,2 ;MINUTE
|
|
CALL RCMOS
|
|
POP DE
|
|
LD E,A
|
|
PUSH DE
|
|
LD D,0 ;SECOND
|
|
CALL RCMOS
|
|
PUSH AF
|
|
LD D,6 ;WEEK DAY
|
|
LD C,BIOS.CMOS_RD
|
|
RST ToBIOS
|
|
POP DE
|
|
LD E,A
|
|
PUSH DE
|
|
LD D,9 ;YEAR
|
|
CALL RCMOS ;READ AND CONVERT TO DECIMAL
|
|
PUSH AF
|
|
LD D,#32 ;CENTURY
|
|
LD C,BIOS.CMOS_RD
|
|
RST ToBIOS
|
|
LD XH,A
|
|
|
|
POP AF
|
|
CP 80 ;R001, TEST DECIMAL FIX
|
|
PUSH AF
|
|
JR C,.XXIAGE
|
|
LD A,#19
|
|
CP XH
|
|
JR Z,.GOODAGE
|
|
JR .BADAGE
|
|
.XXIAGE:
|
|
LD A,#20
|
|
CP XH
|
|
JR Z,.GOODAGE
|
|
.BADAGE:
|
|
PUSH AF
|
|
LD D,#32 ;CENTURY
|
|
LD C,BIOS.CMOS_WR
|
|
RST ToBIOS
|
|
POP AF
|
|
LD XH,A
|
|
.GOODAGE:
|
|
POP AF
|
|
LD XL,A
|
|
LD A,XH
|
|
CALL BCD2HEX
|
|
LD L,A
|
|
LD H,0
|
|
LD C,L
|
|
LD B,H
|
|
LD XH,B
|
|
ADD HL,HL
|
|
ADD HL,HL
|
|
ADD HL,BC
|
|
ADD HL,HL ;*10
|
|
LD B,H
|
|
LD C,L
|
|
ADD HL,HL
|
|
ADD HL,HL
|
|
ADD HL,BC
|
|
ADD HL,HL ;*10(100)
|
|
EX DE,HL
|
|
ADD IX,DE
|
|
POP BC
|
|
POP HL
|
|
POP DE
|
|
AND A
|
|
RET
|
|
.NOCMOS:
|
|
.NC_DAY+1:
|
|
LD DE,DAY*256+MONTH ;DAY/MONTH
|
|
.NC_HOUR+1:
|
|
LD HL,0 ;HOUR/MINUTE
|
|
.NC_SEC+1:
|
|
LD BC,1 ;SECOND/WEEKDAY
|
|
.NC_YEAR+2:
|
|
LD IX,YEAR ;YEAR
|
|
AND A
|
|
RET
|
|
;
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
; ”ãªæ¨ï #22. “áâ ®¢¨âì ⥪ãéãî ¤ âã ¨ ¢à¥¬ï.
|
|
;
|
|
; ¢å®¤: D - ¤¥ì
|
|
; E - ¬¥áïæ
|
|
; IX - £®¤
|
|
; H - ç á
|
|
; L - ¬¨ãâë
|
|
; B - ᥪã¤ë
|
|
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
|
////////////////////////////////////////////////////////////////////////
|
|
SETTIME:
|
|
PUSH IX
|
|
PUSH BC
|
|
PUSH HL
|
|
PUSH DE
|
|
LD C,BIOS.CMOS_TEST
|
|
RST ToBIOS
|
|
JP C,.NOCMOS2
|
|
POP AF
|
|
PUSH AF
|
|
LD D,7 ;DAY
|
|
CALL WCMOS
|
|
POP BC
|
|
LD A,C
|
|
LD D,8 ;MONTH
|
|
CALL WCMOS
|
|
POP AF
|
|
PUSH AF
|
|
LD D,4 ;HOUR
|
|
CALL WCMOS
|
|
POP BC
|
|
LD A,C
|
|
LD D,2 ;MINUTE
|
|
CALL WCMOS
|
|
POP AF
|
|
PUSH AF
|
|
LD D,0 ;SECOND
|
|
CALL WCMOS
|
|
POP BC
|
|
LD A,C
|
|
LD D,6 ;WEEK DAY
|
|
LD C,BIOS.CMOS_WR
|
|
RST ToBIOS
|
|
;
|
|
POP HL
|
|
XOR A
|
|
LD DE,100
|
|
.YR: INC A
|
|
SBC HL,DE
|
|
JR NC,.YR
|
|
ADD HL,DE
|
|
DEC A
|
|
PUSH HL
|
|
LD D,#32 ;CENTURY
|
|
CALL WCMOS
|
|
POP BC
|
|
LD A,C
|
|
LD D,9 ;YEAR
|
|
CALL WCMOS
|
|
AND A
|
|
RET
|
|
; !FIXIT ®¢ë© ¡¨®á ¢ëáâ ¢«ï¥â ¢à¥¬ï, ¥á«¨ á ¨¬ çâ®-â® ¥ â ª.
|
|
.NOCMOS2:
|
|
LD C,0
|
|
LD (SYSTIME.NC_DAY),DE ;DAY/MONTH
|
|
LD (SYSTIME.NC_HOUR),HL ;HOUR/MINUTE
|
|
LD (SYSTIME.NC_SEC),BC ;SECOND/WEEKDAY
|
|
LD (SYSTIME.NC_YEAR),IX ;YEAR
|
|
AND A
|
|
RET
|
|
; |