; Обработчики команд DATE и TIME ; ;/////////////////////////////////////////////////// ; ; DATE. Вывод или установка даты ; ;/////////////////////////////////////////////////// cmd_date: ex de,hl ; hl=ком-строка ;ld de,T9186 ; буфер ld de,work_buffer1; ld c,Dss.GSwitch ; выделить параметр ком-строки RST ToDSS ;ld de,T9186 ld de,work_buffer1; ld a,(de) or a jr z,cmd_dt1 call A893C 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 A893C 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 A893C 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 ix push de ld a,d ; число ld hl,PRM1 ; куда call A8913 ; десят. вывод в буфер ld a,"." ld (hl),a inc hl pop de ld a,e ; число call A8913 ; десят. вывод в буфер ld a,"." ld (hl),a inc hl push hl pop ix pop hl call A8964 ld de,2 ; индекс "Current date: %1" jp MESSAGE ; вывести строку ;/////////////////////////////////////////////////// ; ; TIME. Вывод или установка времени ; ;/////////////////////////////////////////////////// cmd_time: ex de,hl ;ld de,T9186 ld de,work_buffer1; ld c,Dss.GSwitch RST ToDSS ;ld de,T9186 ld de,work_buffer1; ld a,(de) or a jr z,cmd_tm1 call A893C 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 A893C 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 A893C 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,PRM1 ; куда call A8913 ; десят. вывод в буфер ld a,":" ld (hl),a inc hl pop de ld a,e ; число call A8913 ; десят. вывод в буфер ld a,":" ld (hl),a inc hl pop af ; число call A8913 ; десят. вывод в буфер xor a ld (hl),a ; в конец строки ld de,3 ; индекс "Current time: %1" jp MESSAGE ; вывести строку