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*)




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Почта - немного писем.
Рассказ - Сергей Есенин "Летние каникулы" (продолжение).
Реклама - Куплю недоpого чистые дискеты 5,25 дюйма.
Интерфейс - "за базар ответишь!" русский язык настолько "велик и могуч", что грамотно пользоваться им, к сожалению, дано далеко не всем.
Железо - Chrome - итальянский клон Спектрума!

В этот день...   28 марта