ZXNet эхоконференция «code.zx»
тема: установка времени
от: Aleksandr Majorov
кому: All
дата: 05 Jul 1997
Хаюшки, All!
Вот прога, которая выставляет/выводит
время из CMOS-часов.
Сразу говорю: прога писалась для себя и
для проверки, посему она немного "корявая"
╔══════════════ начнём отсюдава ══════════╗
ORG 25000
;если не нада выставлять часы, то не
;вызывать!!!!
CALL SETTIM
LD A,2 ;вспомним BASIC
CALL #1601
LOOP
WAIT LD C,11 ;ждем пока чип
CALL IN_C ;будет готов
RLCA
JR C,WAIT
LD A,22 ;АТ 0,0
RST 16
XOR A
RST 16
XOR A
RST 16
LD C,7 ;выводим
CALL PRINT ;день
LD A,"-"
RST 16
LD C,8 ;\n
CALL PRINT ;-- месяц
LD A,"-"
RST 16
LD C,9 ;\n
CALL PRINT ;--- год
LD A," "
RST 16
LD C,6 ;\n
CALL PRINT ;--- день недели
LD A,13
RST 16
LD C,4
CALL PRINT ;часы
LD A,":"
RST 16
LD C,2
CALL PRINT ;мин.
LD A,":"
RST 16
LD C,0
CALL PRINT ;сек.
LD A,#7F ;по пробелу выход
IN A,(#FE)
RRCA
JR C,LOOP
RET
;читаем число из порта номер [C] и
;выводим его
;кста: числа в двоично-десят. виде)
PRINT CALL IN_C
PUSH AF
RRCA
RRCA
RRCA
RRCA
AND 15
ADD A,"0"
RST 16
POP AF
AND 15
ADD A,"0"
RST 16
RET
SET_REG LD A,C
LD BC,#FFF9
JR OUT_D
OUT_C PUSH AF
CALL SET_REG
POP AF
LD BC,#FF79
OUT_D LD HL,#2A53
PUSH HL
JP #3D2F
IN_C CALL SET_REG
LD BC,#FF79
;ЧТЕHИЕ ИЗ ПОРТА TR-DOS
;!!! ЕСЛИ У ВАС HЕ СКОРП, ТО ВМЕСТО
;ДАHHОЙ П/П ИСПОЛЬЗУЙТЕ ТУ, ЧТО ДАHА
;В ZN'35!!!
;этоже справедливо для ВСЕХ остальный
;программ!!!!!!!!!!!
IN_D LD HL,#3FF3
PUSH HL
JP #3D2F
;здесь выставляем время и дату, итак:
;время 03:06:50
;дата 05-07-97 день недели 7 (суббота)
SEK DB #50
MIN DB #06
HOU DB #03
NED DB #07
DAY DB #05
MOU DB #07
YEAR DB #97
SETTIM
;устанавливаем регистры для работы,
;подробнее см. ZN'35
LD C,10
LD A,%00100000
CALL OUT_C
LD C,11
LD A,#82
CALL OUT_C
LD C,13
CALL IN_C
LD C,12
CALL IN_C
;выставляем время
LD IX,SEK
LD C,0
LD A,(IX+0)
CALL OUT_C
LD C,2
LD A,(IX+1)
CALL OUT_C
LD C,4
LD A,(IX+2)
CALL OUT_C
LD C,6
LD A,(IX+3)
CALL OUT_C
LD C,7
LD A,(IX+4)
CALL OUT_C
LD C,8
LD A,(IX+5)
CALL OUT_C
LD C,9
LD A,(IX+6)
CALL OUT_C
;запускаем часы
LD C,#0B
LD A,#02
JP OUT_C
╚═════════════ на сегодня хватит ═════════╝
Hу вот и всё...
С уважением, Aleksandr (*MAS*)
|