mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
191 lines
3.0 KiB
NASM
191 lines
3.0 KiB
NASM
;!TODO Procedures
|
||
;----------------------------------------------------------------------;
|
||
; ‡ ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||
; ¢å®¤: de - ¤¥ì/¬¥áïæ
|
||
; hl - ç áë/¬¨ãâë
|
||
; b - ᥪã¤ë
|
||
; ix - £®¤
|
||
; ¢ë室: de - ¢à¥¬ï
|
||
; bc - ¬¥áïæ/¤¥ì
|
||
; ix - £®¤
|
||
;
|
||
;INPUT: D - DAY; E - MONTH
|
||
; H - HOUR; L - MINUTE
|
||
; B - SECOND (0...59)
|
||
; IX- YEAR (0...65535)
|
||
;OUTPUT: DE - hhhhhmmmmmmsssss h - hour, m - min, s - sec/2
|
||
; BC - yyyyyyymmmmddddd y - year, m - month, d - day
|
||
; (1980-2108)
|
||
MK_TIME:
|
||
LD A,L
|
||
RLCA
|
||
RLCA
|
||
SLA A
|
||
RL H
|
||
SLA A
|
||
RL H
|
||
SLA A
|
||
RL H
|
||
SRL B
|
||
OR B
|
||
LD L,A
|
||
|
||
LD BC,#F844 ;(-1980)
|
||
ADD IX,BC
|
||
LD A,E
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
AND #F0
|
||
LD B,XL
|
||
SLA A
|
||
RL B
|
||
OR D
|
||
LD C,A
|
||
EX DE,HL
|
||
AND A
|
||
RET
|
||
;----------------------------------------------------------------------;
|
||
|
||
;!TODO Procedures
|
||
;----------------------------------------------------------------------;
|
||
; <20> ᪮¤¨à®¢ âì ¢à¥¬ï/¤ âã
|
||
; ¢å®¤: de - ¢à¥¬ï
|
||
; bc - ¬¥áïæ/¤¥ì
|
||
; ix - £®¤
|
||
; ¢ë室: de - ¤¥ì/¬¥áïæ
|
||
; hl - ç áë/¬¨ãâë
|
||
; b - ᥪã¤ë
|
||
; ix - £®¤
|
||
;
|
||
;INPUT: DE - hhhhhmmmmmmsssss h - hour, m - min, s - sec/2
|
||
; BC - yyyyyyymmmmddddd y - year, m - month, d - day
|
||
; (1980-2108)
|
||
;OUTPUT: D - DAY; E - MONTH
|
||
; H - HOUR; L - MINUTE
|
||
; B - SECOND (0...59)
|
||
; IX- YEAR (0...65535)
|
||
RMKTIME:
|
||
EX DE,HL
|
||
LD A,C
|
||
AND #1F
|
||
LD D,A
|
||
SRL B
|
||
RR C
|
||
LD A,C
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
AND #0F
|
||
LD E,A
|
||
LD C,B
|
||
LD B,0
|
||
LD IX,1980
|
||
ADD IX,BC
|
||
LD A,L
|
||
AND #1F
|
||
ADD A,A
|
||
LD B,A
|
||
SRL H
|
||
RR L
|
||
SRL H
|
||
RR L
|
||
SRL H
|
||
RR L
|
||
SRL L
|
||
SRL L
|
||
AND A
|
||
RET
|
||
;----------------------------------------------------------------------;
|
||
|
||
|
||
|
||
;----------------------------------------------------------------------;
|
||
; a..z -> A..Z
|
||
UPPER: CP 'a'
|
||
RET C
|
||
CP 'z' + 1
|
||
JR NC,.MDUPPER
|
||
SUB #20
|
||
.NOUPPER:
|
||
RET
|
||
.MDUPPER:
|
||
CP ' ' ; àãááª ï ¡ãª¢ , ª®¤ #A0
|
||
JR C,.NOUPPER
|
||
CP '¯' ; àãááª ï ¡ãª¢ ¯, ª®¤ #B0
|
||
JR NC,.BGUPPER
|
||
SUB #20
|
||
RET
|
||
.BGUPPER:
|
||
CP 'à' ; àãááª ï ¡ãª¢ à, ª®¤ #E0
|
||
JR C,.NOUPPER
|
||
CP 'ð' ; àãááª ï ¡ãª¢ ð, ª®¤ #F0
|
||
JR NC,.HGUPPER
|
||
SUB #50
|
||
RET
|
||
.HGUPPER: CP 'ñ' ; àãááª ï ¡ãª¢ ñ, ª®¤ #F1
|
||
RET NZ
|
||
DEC A
|
||
RET
|
||
;----------------------------------------------------------------------;
|
||
|
||
|
||
|
||
;!TODO hardware
|
||
;----------------------------------------------------------------------;
|
||
; —⥨¥ ॣ¨áâ஢ CMOS
|
||
; ¢å®¤: d=®¬¥à ॣ¨áâà
|
||
RCMOS: LD C,BIOS.CMOS_RD
|
||
RST ToBIOS
|
||
;JP BCD2HEX
|
||
; INPUT : A - BCD
|
||
; OUTPUT: A - HEX
|
||
BCD2HEX:
|
||
LD E,A
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
RRCA
|
||
AND #0F
|
||
LD D,A
|
||
ADD A,A
|
||
ADD A,A
|
||
ADD A,D
|
||
ADD A,A
|
||
LD D,A
|
||
LD A,E
|
||
AND #0F
|
||
ADD A,D
|
||
RET
|
||
;----------------------------------------------------------------------;
|
||
|
||
;!TODO hardware
|
||
;----------------------------------------------------------------------;
|
||
;!FIXIT ¯¥à¥¤¥« âì ¯® ¤®ª¥ „ «« á ¨ § ¨áì ¢ ï祩ª¨ ç ᮢ
|
||
; ‡ ¯¨áì ॣ¨áâ஢ CMOS
|
||
; ¢å®¤: d=®¬¥à ॣ¨áâà
|
||
WCMOS: CALL HEX2BCD
|
||
LD C,BIOS.CMOS_WR
|
||
JP ToBIOS
|
||
|
||
; INPUT : A - HEX
|
||
; OUTPUT: A - BCD
|
||
HEX2BCD:
|
||
LD BC,#0AFF
|
||
.loop: INC C
|
||
SUB B
|
||
JR NC,.loop
|
||
ADD A,B
|
||
LD B,A
|
||
LD A,C
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
RLCA
|
||
AND #F0
|
||
OR B
|
||
RET
|
||
;----------------------------------------------------------------------;
|
||
; |