ZX Time #02

Кодерам закорючки на бордере - Бордюрные эффекты - это всегда что-то, а скорее - нечто, закрытое за тремя печатями тайны...

+---- -  -   -    -    -*   КОДЕРАМ    *-    -    -   -  - ----+
                                                                
               ZX И ДРУГИЕ ЗАКАРЛЮЧКИ НА ВОГДЕГ'Е               
              ------------------------------------              
                                                                
              (С) НИКОЛАЙ ВИТЕНКО И ДЕНИС ТОКАРЧУК              
                                                                
  ДА... БОРДЮРНЫЕ ЭФФЕКТЫ - ЭТО ВСЕГДА ЧТО-ТО, А СКОРЕЕ - НЕЧТО,
ЗАКРЫТОЕ ЗА ТРЕМЯ ПЕЧАТЯМИ ТАЙНЫ. ВО ВСЯКОМ СЛУЧАЕ, ДЛЯ ОБЫЧНОГО
ЧЕЛОВЕКА,  А ИНОГДА ДАЖЕ ДЛЯ ОБЫЧНОГО КОДЕРА. НАПРИМЕР, Я (ДШТ),
НЕДОУМЕВАЛ  -  ЗАЧЕМ  ЭТИ  ЛЕВЫЕ КОМАНДЫ В ЭТИX ПЯТИКИЛОМЕТРОВЫX
ЛИСТИНГАX?!? НО МЕТОДОМ ПРОБ И ОШИБОК, А ТАКЖЕ С ПОДАЧИ ВЕЛИКОГО
ПОКОРИТЕЛЯ БОРДЮРА (КАК ЕГО НАЗЫВАЕТ АLЕX) НИКОЛАЯ ВИТЕНКО (VПП)
ДОГАДАЛСЯ-ТАКИ,  ЧТО  ВСЯ  ЭТА  КУЧА  БЕЗДЕЙСТВЕННЫX  (НА ПЕРВЫЙ
ВЗГЛЯД)  КОМАНД  НАТЫКАНА  ВЕЗДЕ ЛИШЬ ДЛЯ ЗАДЕРЖЕК, ЧТОБЫ ВСЕ НА
БОРДЮРЕ  СОВПАДАЛО  ТОЧЕЧКА-В-ТОЧЕЧКУ...  А КОГДА РАЗБИРАЕШЬСЯ С
БОРДЮРОМ И, КАК МЫ ВСЕГДА И ДЕЛАЕМ, РАЗЛАЖИВАЕШЬ 'ПО ПОЛОЧКАМ' -
ВСЕ  СТАНОВИТСЯ  ЛЕГКО, ПРОСТО И ЯСНО КАК БОЖИЙ ДЕНЬ. ИМЕННО ЭТО
МЫ И ПОПРОБУЕМ СДЕЛАТЬ В РАМКАX ЭТОЙ СТАТЬИ.                    
  КАК  ИЗВЕСТНО,  XУДОЖЕСТВА  НА  БОРДЮРЕ, КАКИМИ БЫ ОНИ НЕ БЫЛИ
СЛОЖНЫМИ  И  ЗАКОВЫРИСТЫМИ,  ДЕЛАЮТСЯ  ПРАКТИЧЕСКИ ОДНОТИПНО - В
ПОРТ  #FЕ  ЗАСЫЛАЕТСЯ  КАКОЕ-ТО  ЗНАЧЕНИЕ  (ЦВЕТ  ОТ  О  ДО  7),
ВЫДЕРЖИВАЕТСЯ   ПАУЗА,   ЗАТЕМ   ЗАПИСЫВАЕТСЯ   НОВОЕ  ЗНАЧЕНИЕ,
ВЫДЕРЖИВАЕТСЯ   ПАУЗА,  И  Т.Д.  ПОЧЕМУ  ТАК?  -  ЗАДАСТ  ВОПРОС
НАЧИНАЮЩИЙ  КОДЕР. ДА ПОТОМУ, ЧТО БОРДЮР - ЭТО ДАЛЕКО НЕ ОБЫЧНЫЙ
СПЕКТРУМОВСКИЙ  ЭКРАН И К НЕМУ ОБРАЩАТЬСЯ МОЖНО ЛИШЬ ЧЕРЕЗ ПОРТ,
ЗАСЫЛАЯ  ВСЕГО ОДНО ЗНАЧЕНИЕ ЗА ОДИН РАЗ. ПРИ РИСОВАНИИ БОРДЮРА,
КОМПЬЮТЕР  КАК БЫ ИДЕТ СВЕРXУ ВНИЗ СЛЕВА НАПРАВО И ЗАПОЛНЯЕТ ВСЕ
НА  СВОЕМ ПУТИ ЗАДАНЫМ ЦВЕТОМ. ОДНАКО СПЕКТРУМОВСКИЕ ПРОГРАММЕРЫ
УСЕКЛИ  ЭТО  И УXИТРИЛИСЬ ДЕЛАТЬ НА БОРДЮРЕ ОЧЕНЬ МНОГОЕ, ВПЛОТЬ
ДО РИСОВАНИЯ ТАМ КАКИX-ТО НАДПИСЕЙ И БЕГУЩИX СТРОК.             
  НА БОРДЮРЕ 1 ТАКТ ЗАДЕРЖКИ РАВЕН ДВУМ ЭКРАННЫМ ПИКСЕЛЯМ. ТАКИМ
ОБРАЗОМ,  МИНИМАЛЬНОЙ  ГРАФИЧЕСКОЙ  ЕДИНИЦЕЙ  В  НОРМАЛЬНОМ  (НЕ
ТУРБО)  РЕЖИМЕ  ЯВЛЯЕТСЯ  ЛИНИЯ  ДЛИНОЙ 2Ч ПИКСЕЛЯ :(. МЕНЬШЕ, К
ВЕЛИКОМУ СОЖАЛЕНИЮ, СДЕЛАТЬ НЕЛЬЗЯ (МИНИМАЛЬНАЯ СКОРОСТЬ КОМАНДЫ
ЗАСЫЛКИ В ПОРТ (ОИТ (С),П; ОИТ (#FЕ),А) = 12 ТАКТОВ, А 12*2=2Ч).
ОДНА  СТРОКА  (БОРДЮРНАЯ)  РАВНА 22Ч ТАКТАМ, ЗНАЧЕНИЕ КОТОРОЙ НА
РАЗНОВИДНОСТЯX  СПЕКТРУМА  РАЗНОЕ (БЫВАЕТ И 21Б, И 2З2 ТАКТА)...
КРОМЕ   ТОГО,   КОЛИЧЕСТВО  ЭТИX  СТРОК  НА  ВСЕМ  ЭКРАНЕ  ТАКЖЕ
ВАРЬИРУЕТСЯ  ОТ  ОДНОГО  СТАНДАРТА К ДРУГОМУ (НА ПЕНТАГОНЕ = З2О
ЛИНИЙ).                                                         
  ОТСЮДА  СТАНОВИТСЯ  ЯСНО,  ЧТО  ЛЮБОЙ БОРДЮРНЫЙ ЭФФЕКТ ЗАВИСИТ
ПРЕЖДЕ   ВСЕГО   ОТ   ВРЕМЕННЫX  ТАКТОВЫX  XАРАКТЕРИСТИК  ВАШЕГО
КОМПЬЮТЕРА.  К  НЕСЧАСТЬЮ,  В  ПОСТСОВЕТСКИX СТРАНАX НАПЛОДИЛАСЬ
ЦЕЛАЯ  КУЧА МОДИФИКАЦИЙ СПЕКТРУМА, В РАЗНОЙ СТЕПЕНИ ОТЛИЧАЮЩИXСЯ
ДРУГ  ОТ  ДРУГА,  В  ЧАСТНОСТИ  И  ЭТИМИ ПРЕСЛОВУТЫМИ ВРЕМЕННЫМИ
XАРАКТЕРИСТИКАМИ (IПТ - ВРЕМЕННОЙ ИНТЕРВАЛ (ТАКТОВЫЙ) ЗА КОТОРЫЙ
ВЫРИСОВЫВАЕТСЯ  ВЕСЬ  БОРДЮР  (XОТЯ  ПРАВИЛЬНЕЕ  СКАЗАТЬ НЕМНОГО
ПО-ДРУГОМУ,  НО У НАС СТАТЬЯ-ТО ПРО БОРДЮР...)). А К СЧАСТЬЮ :),
УЖЕ  ПРИНЯТА  ЗА СТАНДАРТ, КАК ДЕМО-МАШИНА - 'РЕПТАGОП 128' С ЕЕ
ДЛИННЮЧИМ  ИНТОМ  (71Б8О ТАКТОВ). ИМЕННО НА ЭТОТ КОМП МЫ И БУДЕМ
ОРИЕНТИРОВАТЬСЯ,   А   ВЫ   -  КОДЕРЫ  (НАЧИНАЮЩИЕ  И  НЕ  ОЧЕНЬ
НАЧИНАЮЩИЕ)  СМОЖЕТЕ,  Я  ДУМАЮ, ПОДОГНАТЬ ЭФФЕКТ ПОД ИНТ ВАШЕГО
КОМПА.                                                          
  НО  МЫ  ОТВЛЕКЛИСЬ.  ИТАК,  А  КАК  ЖЕ НАШ VПП УМУДРЯЕТСЯ-ТАКИ
РИСОВАТЬ НЕЧТО (ИЛИ ЧТО-ТО?) С ПЛАВНЫМИ ПЕРЕXОДАМИ, БЕЗ ОЩУЩЕНИЯ
'КВАДРАТНОСТИ'? ОЧЕНЬ (ТОЧНЕЕ НЕ ОЧЕНЬ) ПРОСТО! У НАШЕГО РОДНОГО
Z8О  КОМАНДЫ  ПО СКОРОСТИ ВЫПОЛНЕНИЯ НЕРАВНОЦЕННЫ - ЕСТЬ КОМАНДЫ
ПО  11,  ЕСТЬ  ПО  8  ТАКТОВ,  ЕСТЬ  ПО 1О, ПО 1S, ПО 2З, И Т.Д.
НАВЕРНОЕ,  ВЫ  ИЗУЧАЛИ В ШКОЛЕ АРИФМЕТИКУ, И МОЖЕТЕ СКАЗАТЬ, КАК
ПОЛУЧИТЬ  РАЗНИЦУ В ЕДИНИЦУ. ПРАВИЛЬНО, НАДО ВЫЧЕСТЬ. НА БОРДЮРЕ
СИТУАЦИЯ  АНАЛОГИЧНАЯ!  ЛУЧ  (НАЗОВЕМ  'ИДУЩУЮ' ЛИНИЮ НА БОРДЮРЕ
ТАК)  ИДЕТ СЛЕВА НАПРАВО И ЕМУ ПЛЕВАТЬ ЧТО ВЫ И КАК ДЕЛАЕТЕ. ЕГО
ЦЕЛЬ  - ЗАПОЛНИТЬ БОРДЮР. ВАША ЦЕЛЬ - СДЕЛАТЬ ЧТО-ТО НА БОРДЮРЕ.
ЗНАЧИТ,  XОТЬ  КАКИЕ  ВЫ КОМАНДЫ НЕ СУЙТЕ В СВОЮ ПРОГРАММУ МЕЖДУ
ЗАСЫЛКАМИ  ЗНАЧЕНИЙ В ПОРТ, НА БОРДЮРЕ ЭТО БУДЕТ ОТРАЖАТЬСЯ ЛИШЬ
ДЛИНОЮ ТОЙ ИЛИ ИНОЙ ЛИНИИ. ЗНАЯ ЭТО, МОЖНО СДЕЛАТЬ ВЫВОД - ДЕЛАЯ
РАССТОЯНИЕ  МЕЖДУ  ЛИНИЯМИ  В  РАЗНОЕ КОЛИЧЕСТВО ТАКТОВ (ТОЧЕК),
МОЖНО   ДОБИТЬСЯ  ДАЖЕ  'ОВАЛЬНОСТИ'  И  'РАСКОСОСТИ'.  А  ТАКОЕ
РАССТОЯНИЕ КАК РАЗ И ДЕЛАЕТСЯ ЭТИМИ НЕРАВНОЦЕННЫМИ КОМАНДАМИ!   
                                                                
                  ПРИВЕДУ НЕСКОЛЬКО ПРИМЕРОВ:                   
                                                                
...                                                             
        LД ДЕ,#О7ОО                                             
        LД С,#FЕ                                                
МЕТКА1                                                          
        ЕI                                                      
        НАLТ                                                    
        ОИТ (С),Е                                               
...                                                             
        ОИТ (С),Д                                               
        ОИТ (С),Е                                               
        ОИТ (С),Д                                               
        ПОР                                                     
        ОИТ (С),Е                                               
        JР МЕТКА1                                               
                                                                
  ЭТОЙ  НЕ ОЧЕНЬ БОЛЬШОЙ ПРОЦЕДУРКОЙ МЫ НА БОРДЮРЕ ВЫВЕДЕМ БЕЛУЮ
ЛИНИЮ  РАЗМЕРОМ 2Ч ПИКСЕЛЯ И ЛИНИЮ РАЗМЕРОМ З2 ПИКСЕЛЯ. НА МЕСТЕ
ПЕРВЫX  ТРЕX  ТОЧЕК ДОЛЖНА БЫТЬ ПРОЦЕДУРА АКТИВИЗАЦИИ ПРЕРЫВАНИЙ
ДЛЯ  ТОГО,  ЧТОБЫ  НИЧЕГО  НАШЕЙ БОРДЮРНОЙ ПРОГРАММЕ 'НЕ МЕШАЛО'
(ЛУЧШЕ  В ОБРАБОТЧИКЕ ПРЕРЫВАНИЯ ПОСТАВИТЬ ГЕТ). НА МЕСТЕ ВТОРЫX
ТРЕX ТОЧЕК ДОЛЖНА БЫТЬ ПРОЦЕДУРКА ЗАДЕРЖКИ, КОТОРАЯ БЫ 'СМЕЩАЛА'
ЛИНИИ   НА  ВИДИМУЮ  ЧАСТЬ  БОРДЮРА.  ЭТА  НЕБОЛЬШАЯ  ПРОЦЕДУРКА
КРАСОЧНО ДЕМОНСТРИРУЕТ, КАК МОЖНО ДОБИТЬСЯ ЛИНИЙ РАЗНОЙ ДЛИНЫ НА
БОРДЮРЕ.  КАЗАЛОСЬ,  ПОР КОМАНДА БЕСПОЛЕЗНАЯ, ОДНАКО РАЗМЕЩАЯ ЕЕ
МЕЖДУ  КОМАНДОЙ  ЗАСЫЛКИ БЕЛОГО ЦВЕТА И КОМАНДОЙ ЗАСЫЛКИ ЧЕРНОГО
ЦВЕТА  МЫ ТЕМ САМЫМ ДЕЛАЕМ БЕЛУЮ ЛИНИЮ ДЛИНЕЕ НА Ч*2=8 ПИКСЕЛЕЙ!
А  ДЕЛАЯ  ПОДОБНЫЕ  МАНИПУЛЯЦИИ  С 'ФОНОВЫМ' (ЧЕРНЫМ) ЦВЕТОМ, МЫ
МОЖЕМ СДВИНУТЬ ЛИНИЮ НА ВТОРУЮ СТРОЧКУ, НО СО СМЕЩЕНИЕМ В 1 ТАКТ
(2 ПИКСЕЛЯ). ПРИМЕРНО ТАК (ЕСЛИ У ВАС, КОНЕЧНО РЕПТАGОП):       
                                                                
...                                                             
        LД ДЕ,#ОSОО                                             
        LД С,#FЕ                                                
МЕТКА2                                                          
        ЕI                                                      
        НАLТ                                                    
        ОИТ (С),Е                                               
...                                                             
        ОИТ (С),Д                                               
        ОИТ (С),Е                                               
                                                                
        ДИР Ч8   ;-+                                            
        ПОР      ; '                                            
        ЕДИР     ; '- КОМАНДЫ 'ЗАДЕРЖКИ' (СДВИГА)               
                 ; '                                            
        АПД О    ;-+                                            
                                                                
        ОИТ (С),Д                                               
        ОИТ (С),Е                                               
        JР МЕТКА2                                               
                                                                
  ТРОЕТОЧИЯ ОЗНАЧАЮТ ТО ЖЕ, ЧТО И ОЗНАЧАЛИ В ПРЕДЫДУЩЕМ ПРИМЕРЕ.
ДЕЙСТВИЕ  ПРОГРАММЫ:  НА  БОРДЮРЕ  ВЫXОДЯТ  ДВЕ  ЛИНИИ,  ОДНА ИЗ
КОТОРЫX  ПО  ОТНОШЕНИЮ К ДРУГОЙ СДВИНУТА НА ДВА ПИКСЕЛЯ. КАК ЭТО
РАБОТАЕТ:  КОМАНДЫ  ЗАДЕРЖКИ  'СДВИГАЮТ'  ВТОРУЮ  БЕЛУЮ ЛИНИЮ НА
(СОРОК  ВОСЕМЬ  ПОР'ОВ = Ч8*Ч = 192 ТАКТА; АПД О = 7 ТАКТОВ) 199
ТАКТОВ. А ПОЧЕМУ НЕ 22З, ВЕДЬ ЧТОБЫ ПОЛУЧИТЬ СМЕЩЕНИЕ НЕОБXОДИМО
ИМЕННО  СТОЛЬКО ВРЕМЕНИ? - ОПЯТЬ СПРОСИТ НАЧИНАЮЩИЙ. А ВЫ ЗАБЫЛИ
ПРО  КОМАНДЫ  ОИТ  (С),Д И ОИТ (С),Е, КОТОРЫЕ ТАКЖЕ ВXОДЯТ В ЭТО
ВРЕМЯ: 12 + 12 + 199 = 22З. ВОТ ТАК-ТО.                         
  А  ТЕПЕРЬ  ПОПРОБУЙТЕ  СДЕЛАТЬ  ТРИ,  ЧЕТЫРЕ,  ПЯТЬ ИЛИ БОЛЬШЕ
ЛИНИЙ, КОТОРЫЕ ПО ОТНОШЕНИЮ ДРУГ К ДРУГУ БЫЛИ БЫ СДВИНУТЫ НА ДВА
ПИКСЕЛЯ  (1  ТАКТ).  ЭТО  СДЕЛАТЬ  ОЧЕНЬ ПРОСТО. В ПРИЛОЖЕНИИ ВЫ
НАЙДЕТЕ  ВЫШЕПРИВЕДЕННУЮ  ПРОЦЕДУРКУ, ЧТОБЫ ВЫ СМОГЛИ ПОСМОТРЕТЬ
КАК ОНА РАБОТАЕТ...                                             
  СВОЮ МИССИЮ МЫ СЧИТАЕМ ВЫПОЛНЕННОЙ. КАК СДЕЛАТЬ 'ZX' ВЫ ПОНЯЛИ
(Я  НАДЕЮСЬ),  А  ЧТОБЫ  ВЫ  НАС  НЕ  ОБМАТЮКАЛИ  (ТИПА  - А ГДЕ
ОБЕЩАННЫЙ  ZX  НА  БОРДЮРЕ,  ЛАМЕРЫ ВЫ ЭТАКИЕ?!!) В ПРИЛОЖЕНИИ К
ГАЗЕТЕ ПОКОИТСЯ (С МИРОМ, АМИНЬ :)) ) ИСXОДНИК, КОТОРЫЙ И РИСУЕТ
ЭТО  ПРЕСЛОВУТОЕ 'ZX'. ТАМ ЕСТЬ ПАРА УПРАВЛЯЮЩИX КЛАВИШ (О И Р),
КОТОРЫМИ  МОЖНО  'ПОДОГНАТЬ'  ЭФФЕКТ ПОД ВАШИ ТАКТЫ... ИСXОДНИКИ
КАК ВСЕГДА В АLАSМ'Е...                                         
  ЕСЛИ  ВОЗНИКНУТ  КАКИЕ-ЛИБО  ВОПРОСЫ, ОБРАЩАЙТЕСЬ В РЕДАКЦИЮ -
ТАМ ВАМ ПОМОГУТ ДОБРЫМ СЛОВОМ И ДЕЛЬНЫМ СОВЕТОМ...              



Другие статьи номера:

От редактора - О новом номере.

Кодерам закорючки на бордере - Бордюрные эффекты - это всегда что-то, а скорее - нечто, закрытое за тремя печатями тайны...

Кодерам - Многозадачность. Теория.

Party - Результаты CC.

PC и Spectrum - Обзор утилит для ZX-Spectrum на PC.

Обо всём про всё - Тайна иной цивилизации.

И смех и грех - Юмор, тосты, анекдоты.

Реклама - Реклама и объявления.


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

Похожие статьи:
Железо - как подключить второй дисководо к Спектруму.
Юмор - Отрывки - краткие фразы и афоризмы.
Юмор - Баллада о дисководе.

В этот день...   21 августа