К основному контенту

Работа с часами




Работа с часами.

 Мы часто сталкиваемся с ситуацией когда нужно вывести таймер. Я не буду расписывать порты, благо это сделано до меня, дам лишь простой пример, как в регистр "A" получить, часы, минуты, секунды. В нашем случае нет разницы, программируете вы на Base conf или Ts conf.


TIME      LD A,#80
                LD BC,#EFF7
                OUT (C),A
                LD A,0;   если 0 - получаем секунды, если 2 - получаем минуты, если 4 - получаем часы.
                CALL READCMOS
                RET

REACMOS

                LD BC,#DFF7
                OUT (C),A
                LD B,#BF
                IN A,(C)
                RET


;   Вызвали процедуру TIME, на выходе в регистр А время. В данном примере получим секунды, но можно получить и минуты и часы, меняйте регистра А на входе, где стоит коментарий.

Время выдается в формате BCD, потому переводим его в удобоваримую форму:


                LD A,C
                AND #F0
                RRA
                LD B,A
                RRA
                RRA
                ADD A,B
                LD L,A
                AND 15
                ADD A,L

И получаем секунды, минуты и часы в регистре А от 0 до 59

Спасибо

Комментарии

Популярные сообщения из этого блога

ZXEVO: Вывод спрайта в TS-CONFIG

ZXEVO: Вывод спрайта в TS-CONFIG    Процедура вывода спрайта на ZXEVO под TSCONFIG адаптированная для отладчика XAS. Файл с портами  TSCONFI2  на диске  тут . Также на диске есть пример кода вывода спрайта SPRITE.XAS и тестовый ковер со спрайтами I.C                      LTEXT “TSCONFI2”;   подгружаем файл со списком портов                 ORG 26000 Sprite          LD   BC , SGPAGE ;   страница памяти где находятся ваши спрайты                  LD   A ,# C 0                  OUT  ( C ), A                ...

TSolitaire под TS-Conf

       Исходники к пасьянсу TSolitaire под TS-Conf можно скачать ниже по ссылке. Немного пояснений к файлам на диске: 1 - Все файлы нужно запускать в Xasme (он уже есть на диске). 2- Главный файл XASASM 1, чтобы запустить его, в Хасме жмите Shift+Caps затем L. Появится каталог в котором нужно выбрать наш файл. Жмем Shift+Caps затем A, как проассемблируется жмем R. Алилуя!!! Игра запустилась. 3 - Файл Coloda - основной массив всех карт. 4- Файд - TSCONFI2 список портов TS CONFIG. Если нужно поменять графику под другие системы, то все карты печатаются DMA как обычные спрайты (запоминаем фон, печатаем карту, двигаем ее, восстанавливаем фон). Стрелочка это аппаратный спрайт, кроме стрелки аппаратных спрайтов я не использую. Скачать: http://pmc-wagner.su/tsolitedit.trd

Печать спрайта в TS CONF 256 color

  TS-CONF по умолчанию имеет аппаратные спрайты и тайлы которые используют 16 цветов, однако это не значит, что нет возможности использовать спрайты в 256 цветов. Для того, чтобы вывести такой спрайт, нужно воспользоватся DMA в режиме BLT1. В этом режиме перекидываются любые данные если они не равны нулю. Рисуем спрайты любыми цветами, но нулевой цвет оставляем для фона который нужно будет вырезать. Как всегда процедура и спрайты для теста тут: SPR.TRD Ниже привожу пример процедуры:             ORG       30000              LD            HL,0; X COORDINATE            LD            BC,0; Y COORDINATE             LD            (XX),BC LD     ...