Crazy-Blaster/Crazy Estex DSS/SHELL/Commands/DATE.ASM
Anatoliy Belyanskiy ace6b0904b First init
2024-07-29 01:59:31 +10:00

176 lines
3.1 KiB
NASM

; Ž¡à ¡®â稪¨ ª®¬ ­¤ DATE ¨ TIME
;
;///////////////////////////////////////////////////
;
; DATE. ‚뢮¤ ¨«¨ ãáâ ­®¢ª  ¤ âë
;
;///////////////////////////////////////////////////
cmd_date:
ex de,hl ; hl=ª®¬-áâப 
ld de,Buffers.work.buffer1;
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
RST ToDSS
ld de,Buffers.work.buffer1;
ld a,(de)
or a
jr z,.cmd_dt1
call STR2DEC
jp c,invalid_param ; "Invalid parametr"
xor a
cp h
jp nz,invalid_param ; "Invalid parametr"
ld a,31
cp l
jp c,invalid_param ; "Invalid parametr"
ld b,l
push bc
call STR2DEC
pop bc
jp c,invalid_param ; "Invalid parametr"
xor a
cp h
jp nz,invalid_param ; "Invalid parametr"
ld a,12
cp l
jp c,invalid_param ; "Invalid parametr"
ld c,l
push bc
call STR2DEC
push hl
ld c,Dss.SysTime
RST ToDSS
pop ix
pop de
ld c,Dss.SetTime
RST ToDSS
.cmd_dt1:
ld c,Dss.SysTime
RST ToDSS
PUSH BC ; [x] ¢ë¢®¤ ¤­ï ­¥¤¥«¨ 26/01/2023
push ix
push de
ld a,d ; ç¨á«®
ld hl,Buffers.bat_params.PRM1; ªã¤ 
call PUTB ; ¤¥áïâ. ¢ë¢®¤ ¢ ¡ãä¥à
ld a,"."
ld (hl),a
inc hl
pop de
ld a,e ; ç¨á«®
call PUTB ; ¤¥áïâ. ¢ë¢®¤ ¢ ¡ãä¥à
ld a,"."
ld (hl),a
inc hl
push hl
pop ix
pop hl
call PDIGIT
; [x] ¢ë¢®¤ ¤­ï ­¥¤¥«¨ 26/01/2023
POP DE
LD D,0
LD A,E
CP 8
JR C,.skip
LD E,8
.skip: LD HL,.days
LD BC,.days.size
CALL LCPIR
;
LD DE,Buffers.bat_params.PRM2
CALL ncopy_string
;
ld de,MAIN_MSG.DATE ; ¨­¤¥ªá "Current date: %1"
jp ECHO_MESSAGE ; ¢ë¢¥á⨠áâபã
;
.days: DB 0
DZ "Sunday"
DZ "Monday"
DZ "Tuesday"
DZ "Wednesday"
DZ "Thursday"
DZ "Friday"
DZ "Saturday"
DZ "check CMOS!"
.days.size EQU $ - .days
;///////////////////////////////////////////////////
;
; TIME. ‚뢮¤ ¨«¨ ãáâ ­®¢ª  ¢à¥¬¥­¨
;
;///////////////////////////////////////////////////
cmd_time:
ex de,hl
;ld de,T9186
ld de,Buffers.work.buffer1;
ld c,Dss.GSwitch
RST ToDSS
;ld de,T9186
ld de,Buffers.work.buffer1;
ld a,(de)
or a
jr z,cmd_tm1
call STR2DEC
jp c,invalid_param ; "Invalid parametr"
xor a
cp h
jp nz,invalid_param ; "Invalid parametr"
ld a,23
cp l
jp c,invalid_param ; "Invalid parametr"
ld b,l
push bc
call STR2DEC
pop bc
jp c,invalid_param ; "Invalid parametr"
xor a
cp h
jp nz,invalid_param ; "Invalid parametr"
ld a,59
cp l
jp c,invalid_param ; "Invalid parametr"
ld c,l
push bc
call STR2DEC
pop bc
jp c,invalid_param ; "Invalid parametr"
xor a
cp h
jp nz,invalid_param ; "Invalid parametr"
ld a,59
cp l
jp c,invalid_param ; "Invalid parametr"
push bc
ld a,l
push af
ld c,Dss.SysTime
RST ToDSS
pop bc
pop hl
ld c,Dss.SetTime
RST ToDSS
cmd_tm1:ld c,Dss.SysTime
RST ToDSS
push bc
push hl
ld a,h ; ç¨á«®
ld hl,Buffers.bat_params.PRM1; ªã¤ 
call PUTB ; ¤¥áïâ. ¢ë¢®¤ ¢ ¡ãä¥à
ld a,":"
ld (hl),a
inc hl
pop de
ld a,e ; ç¨á«®
call PUTB ; ¤¥áïâ. ¢ë¢®¤ ¢ ¡ãä¥à
ld a,":"
ld (hl),a
inc hl
pop af ; ç¨á«®
call PUTB ; ¤¥áïâ. ¢ë¢®¤ ¢ ¡ãä¥à
xor a
ld (hl),a ; ¢ ª®­¥æ áâப¨
ld de,MAIN_MSG.TIME ; ¨­¤¥ªá "Current time: %1"
jp ECHO_MESSAGE ; ¢ë¢¥á⨠áâபã