ZX Time #02

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

<b>Кодерам закорючки на бордере</b> - Бордюрные эффекты - это всегда что-то, а скорее - нечто, закрытое за тремя печатями тайны...
+---- -  -   -    -    -*   КОДЕРАМ    *-    -    -   -  - ----+
                                                                
               ZX И ДРУГИЕ ЗАКАРЛЮЧКИ НА ВОГДЕГ'Е               
              ------------------------------------              
                                                                
              (С) НИКОЛАЙ ВИТЕНКО И ДЕНИС ТОКАРЧУК              
                                                                
  ДА... БОРДЮРНЫЕ ЭФФЕКТЫ - ЭТО ВСЕГДА ЧТО-ТО, А СКОРЕЕ - НЕЧТО,
ЗАКРЫТОЕ ЗА ТРЕМЯ ПЕЧАТЯМИ ТАЙНЫ. ВО ВСЯКОМ СЛУЧАЕ, ДЛЯ ОБЫЧНОГО
ЧЕЛОВЕКА,  А ИНОГДА ДАЖЕ ДЛЯ ОБЫЧНОГО КОДЕРА. НАПРИМЕР, Я (ДШТ),
НЕДОУМЕВАЛ  -  ЗАЧЕМ  ЭТИ  ЛЕВЫЕ КОМАНДЫ В ЭТИХ ПЯТИКИЛОМЕТРОВЫX
ЛИСТИНГАХ?!? НО МЕТОДОМ ПРОБ И ОШИБОК, А ТАКЖЕ С ПОДАЧИ ВЕЛИКОГО
ПОКОРИТЕЛЯ БОРДЮРА (КАК ЕГО НАЗЫВАЕТ ALEX) НИКОЛАЯ ВИТЕНКО (VПП)
ДОГАДАЛСЯ-ТАКИ,  ЧТО  ВСЯ  ЭТА  КУЧА  БЕЗДЕЙСТВЕННЫX  (НА ПЕРВЫЙ
ВЗГЛЯД)  КОМАНД  НАТЫКАНА  ВЕЗДЕ ЛИШЬ ДЛЯ ЗАДЕРЖЕК, ЧТОБЫ ВСЕ НА
БОРДЮРЕ  СОВПАДАЛО  ТОЧЕЧКА-В-ТОЧЕЧКУ...  А КОГДА РАЗБИРАЕШЬСЯ С
БОРДЮРОМ И, КАК МЫ ВСЕГДА И ДЕЛАЕМ, РАЗЛАЖИВАЕШЬ 'ПО ПОЛОЧКАМ' -
ВСЕ  СТАНОВИТСЯ  ЛЕГКО, ПРОСТО И ЯСНО КАК БОЖИЙ ДЕНЬ. ИМЕННО ЭТО
МЫ И ПОПРОБУЕМ СДЕЛАТЬ В РАМКАХ ЭТОЙ СТАТЬИ.                    
  КАК  ИЗВЕСТНО,  ХУДОЖЕСТВА  НА  БОРДЮРЕ, КАКИМИ БЫ ОНИ НЕ БЫЛИ
СЛОЖНЫМИ  И  ЗАКОВЫРИСТЫМИ,  ДЕЛАЮТСЯ  ПРАКТИЧЕСКИ ОДНОТИПНО - В
ПОРТ  #FE  ЗАСЫЛАЕТСЯ  КАКОЕ-ТО  ЗНАЧЕНИЕ  (ЦВЕТ  ОТ  О  ДО  7),
ВЫДЕРЖИВАЕТСЯ   ПАУЗА,   ЗАТЕМ   ЗАПИСЫВАЕТСЯ   НОВОЕ  ЗНАЧЕНИЕ,
ВЫДЕРЖИВАЕТСЯ   ПАУЗА,  И  Т.Д.  ПОЧЕМУ  ТАК?  -  ЗАДАСТ  ВОПРОС
НАЧИНАЮЩИЙ  КОДЕР. ДА ПОТОМУ, ЧТО БОРДЮР - ЭТО ДАЛЕКО НЕ ОБЫЧНЫЙ
СПЕКТРУМОВСКИЙ  ЭКРАН И К НЕМУ ОБРАЩАТЬСЯ МОЖНО ЛИШЬ ЧЕРЕЗ ПОРТ,
ЗАСЫЛАЯ  ВСЕГО ОДНО ЗНАЧЕНИЕ ЗА ОДИН РАЗ. ПРИ РИСОВАНИИ БОРДЮРА,
КОМПЬЮТЕР  КАК БЫ ИДЕТ СВЕРХУ ВНИЗ СЛЕВА НАПРАВО И ЗАПОЛНЯЕТ ВСЕ
НА  СВОЕМ ПУТИ ЗАДАНЫМ ЦВЕТОМ. ОДНАКО СПЕКТРУМОВСКИЕ ПРОГРАММЕРЫ
УСЕКЛИ  ЭТО  И УХИТРИЛИСЬ ДЕЛАТЬ НА БОРДЮРЕ ОЧЕНЬ МНОГОЕ, ВПЛОТЬ
ДО РИСОВАНИЯ ТАМ КАКИХ-ТО НАДПИСЕЙ И БЕГУЩИХ СТРОК.             
  НА БОРДЮРЕ 1 ТАКТ ЗАДЕРЖКИ РАВЕН ДВУМ ЭКРАННЫМ ПИКСЕЛЯМ. ТАКИМ
ОБРАЗОМ,  МИНИМАЛЬНОЙ  ГРАФИЧЕСКОЙ  ЕДИНИЦЕЙ  В  НОРМАЛЬНОМ  (НЕ
ТУРБО)  РЕЖИМЕ  ЯВЛЯЕТСЯ  ЛИНИЯ  ДЛИНОЙ 2Ч ПИКСЕЛЯ :(. МЕНЬШЕ, К
ВЕЛИКОМУ СОЖАЛЕНИЮ, СДЕЛАТЬ НЕЛЬЗЯ (МИНИМАЛЬНАЯ СКОРОСТЬ КОМАНДЫ
ЗАСЫЛКИ В ПОРТ (ОИТ (С),П; ОИТ (#FE),А) = 12 ТАКТОВ, А 12*2=2Ч).
ОДНА  СТРОКА  (БОРДЮРНАЯ)  РАВНА 22Ч ТАКТАМ, ЗНАЧЕНИЕ КОТОРОЙ НА
РАЗНОВИДНОСТЯX  СПЕКТРУМА  РАЗНОЕ (БЫВАЕТ И 21Б, И 2З2 ТАКТА)...
КРОМЕ   ТОГО,   КОЛИЧЕСТВО  ЭТИХ  СТРОК  НА  ВСЕМ  ЭКРАНЕ  ТАКЖЕ
ВАРЬИРУЕТСЯ  ОТ  ОДНОГО  СТАНДАРТА К ДРУГОМУ (НА ПЕНТАГОНЕ = З2О
ЛИНИЙ).                                                         
  ОТСЮДА  СТАНОВИТСЯ  ЯСНО,  ЧТО  ЛЮБОЙ БОРДЮРНЫЙ ЭФФЕКТ ЗАВИСИТ
ПРЕЖДЕ   ВСЕГО   ОТ   ВРЕМЕННЫХ  ТАКТОВЫХ  ХАРАКТЕРИСТИК  ВАШЕГО
КОМПЬЮТЕРА.  К  НЕСЧАСТЬЮ,  В  ПОСТСОВЕТСКИХ СТРАНАХ НАПЛОДИЛАСЬ
ЦЕЛАЯ  КУЧА МОДИФИКАЦИЙ СПЕКТРУМА, В РАЗНОЙ СТЕПЕНИ ОТЛИЧАЮЩИХСЯ
ДРУГ  ОТ  ДРУГА,  В  ЧАСТНОСТИ  И  ЭТИМИ ПРЕСЛОВУТЫМИ ВРЕМЕННЫМИ
ХАРАКТЕРИСТИКАМИ (IПТ - ВРЕМЕННОЙ ИНТЕРВАЛ (ТАКТОВЫЙ) ЗА КОТОРЫЙ
ВЫРИСОВЫВАЕТСЯ  ВЕСЬ  БОРДЮР  (ХОТЯ  ПРАВИЛЬНЕЕ  СКАЗАТЬ НЕМНОГО
ПО-ДРУГОМУ,  НО У НАС СТАТЬЯ-ТО ПРО БОРДЮР...)). А К СЧАСТЬЮ :),
УЖЕ  ПРИНЯТА  ЗА СТАНДАРТ, КАК ДЕМО-МАШИНА - 'РЕПТАGОП 128' С ЕЕ
ДЛИННЮЧИМ  ИНТОМ  (71Б8О ТАКТОВ). ИМЕННО НА ЭТОТ КОМП МЫ И БУДЕМ
ОРИЕНТИРОВАТЬСЯ,   А   ВЫ   -  КОДЕРЫ  (НАЧИНАЮЩИЕ  И  НЕ  ОЧЕНЬ
НАЧИНАЮЩИЕ)  СМОЖЕТЕ,  Я  ДУМАЮ, ПОДОГНАТЬ ЭФФЕКТ ПОД ИНТ ВАШЕГО
КОМПА.                                                          
  НО  МЫ  ОТВЛЕКЛИСЬ.  ИТАК,  А  КАК  ЖЕ НАШ VПП УМУДРЯЕТСЯ-ТАКИ
РИСОВАТЬ НЕЧТО (ИЛИ ЧТО-ТО?) С ПЛАВНЫМИ ПЕРЕХОДАМИ, БЕЗ ОЩУЩЕНИЯ
'КВАДРАТНОСТИ'? ОЧЕНЬ (ТОЧНЕЕ НЕ ОЧЕНЬ) ПРОСТО! У НАШЕГО РОДНОГО
Z8О  КОМАНДЫ  ПО СКОРОСТИ ВЫПОЛНЕНИЯ НЕРАВНОЦЕННЫ - ЕСТЬ КОМАНДЫ
ПО  11,  ЕСТЬ  ПО  8  ТАКТОВ,  ЕСТЬ  ПО 1О, ПО 1S, ПО 2З, И Т.Д.
НАВЕРНОЕ,  ВЫ  ИЗУЧАЛИ В ШКОЛЕ АРИФМЕТИКУ, И МОЖЕТЕ СКАЗАТЬ, КАК
ПОЛУЧИТЬ  РАЗНИЦУ В ЕДИНИЦУ. ПРАВИЛЬНО, НАДО ВЫЧЕСТЬ. НА БОРДЮРЕ
СИТУАЦИЯ  АНАЛОГИЧНАЯ!  ЛУЧ  (НАЗОВЕМ  'ИДУЩУЮ' ЛИНИЮ НА БОРДЮРЕ
ТАК)  ИДЕТ СЛЕВА НАПРАВО И ЕМУ ПЛЕВАТЬ ЧТО ВЫ И КАК ДЕЛАЕТЕ. ЕГО
ЦЕЛЬ  - ЗАПОЛНИТЬ БОРДЮР. ВАША ЦЕЛЬ - СДЕЛАТЬ ЧТО-ТО НА БОРДЮРЕ.
ЗНАЧИТ,  ХОТЬ  КАКИЕ  ВЫ КОМАНДЫ НЕ СУЙТЕ В СВОЮ ПРОГРАММУ МЕЖДУ
ЗАСЫЛКАМИ  ЗНАЧЕНИЙ В ПОРТ, НА БОРДЮРЕ ЭТО БУДЕТ ОТРАЖАТЬСЯ ЛИШЬ
ДЛИНОЮ ТОЙ ИЛИ ИНОЙ ЛИНИИ. ЗНАЯ ЭТО, МОЖНО СДЕЛАТЬ ВЫВОД - ДЕЛАЯ
РАССТОЯНИЕ  МЕЖДУ  ЛИНИЯМИ  В  РАЗНОЕ КОЛИЧЕСТВО ТАКТОВ (ТОЧЕК),
МОЖНО   ДОБИТЬСЯ  ДАЖЕ  'ОВАЛЬНОСТИ'  И  'РАСКОСОСТИ'.  А  ТАКОЕ
РАССТОЯНИЕ КАК РАЗ И ДЕЛАЕТСЯ ЭТИМИ НЕРАВНОЦЕННЫМИ КОМАНДАМИ!   
                                                                
                  ПРИВЕДУ НЕСКОЛЬКО ПРИМЕРОВ:                   
                                                                
...                                                             
        LД ДЕ,#О7ОО                                             
        LД С,#FE                                                
МЕТКА1                                                          
        EI                                                      
        HALT                                                    
        ОИТ (С),Е                                               
...                                                             
        ОИТ (С),Д                                               
        ОИТ (С),Е                                               
        ОИТ (С),Д                                               
        ПОР                                                     
        ОИТ (С),Е                                               
        JP МЕТКА1                                               
                                                                
  ЭТОЙ  НЕ ОЧЕНЬ БОЛЬШОЙ ПРОЦЕДУРКОЙ МЫ НА БОРДЮРЕ ВЫВЕДЕМ БЕЛУЮ
ЛИНИЮ  РАЗМЕРОМ 2Ч ПИКСЕЛЯ И ЛИНИЮ РАЗМЕРОМ З2 ПИКСЕЛЯ. НА МЕСТЕ
ПЕРВЫХ  ТРЕХ  ТОЧЕК ДОЛЖНА БЫТЬ ПРОЦЕДУРА АКТИВИЗАЦИИ ПРЕРЫВАНИЙ
ДЛЯ  ТОГО,  ЧТОБЫ  НИЧЕГО  НАШЕЙ БОРДЮРНОЙ ПРОГРАММЕ 'НЕ МЕШАЛО'
(ЛУЧШЕ  В ОБРАБОТЧИКЕ ПРЕРЫВАНИЯ ПОСТАВИТЬ ГЕТ). НА МЕСТЕ ВТОРЫХ
ТРЕХ ТОЧЕК ДОЛЖНА БЫТЬ ПРОЦЕДУРКА ЗАДЕРЖКИ, КОТОРАЯ БЫ 'СМЕЩАЛА'
ЛИНИИ   НА  ВИДИМУЮ  ЧАСТЬ  БОРДЮРА.  ЭТА  НЕБОЛЬШАЯ  ПРОЦЕДУРКА
КРАСОЧНО ДЕМОНСТРИРУЕТ, КАК МОЖНО ДОБИТЬСЯ ЛИНИЙ РАЗНОЙ ДЛИНЫ НА
БОРДЮРЕ.  КАЗАЛОСЬ,  ПОР КОМАНДА БЕСПОЛЕЗНАЯ, ОДНАКО РАЗМЕЩАЯ ЕЕ
МЕЖДУ  КОМАНДОЙ  ЗАСЫЛКИ БЕЛОГО ЦВЕТА И КОМАНДОЙ ЗАСЫЛКИ ЧЕРНОГО
ЦВЕТА  МЫ ТЕМ САМЫМ ДЕЛАЕМ БЕЛУЮ ЛИНИЮ ДЛИНЕЕ НА Ч*2=8 ПИКСЕЛЕЙ!
А  ДЕЛАЯ  ПОДОБНЫЕ  МАНИПУЛЯЦИИ  С 'ФОНОВЫМ' (ЧЕРНЫМ) ЦВЕТОМ, МЫ
МОЖЕМ СДВИНУТЬ ЛИНИЮ НА ВТОРУЮ СТРОЧКУ, НО СО СМЕЩЕНИЕМ В 1 ТАКТ
(2 ПИКСЕЛЯ). ПРИМЕРНО ТАК (ЕСЛИ У ВАС, КОНЕЧНО РЕПТАGОП):       
                                                                
...                                                             
        LД ДЕ,#OSOO                                             
        LД С,#FE                                                
МЕТКА2                                                          
        EI                                                      
        HALT                                                    
        ОИТ (С),Е                                               
...                                                             
        ОИТ (С),Д                                               
        ОИТ (С),Е                                               
                                                                
        ДИР Ч8   ;-+                                            
        ПОР      ; '                                            
        ЕДИР     ; '- КОМАНДЫ 'ЗАДЕРЖКИ' (СДВИГА)               
                 ; '                                            
        АПД О    ;-+                                            
                                                                
        ОИТ (С),Д                                               
        ОИТ (С),Е                                               
        JP МЕТКА2                                               
                                                                
  ТРОЕТОЧИЯ ОЗНАЧАЮТ ТО ЖЕ, ЧТО И ОЗНАЧАЛИ В ПРЕДЫДУЩЕМ ПРИМЕРЕ.
ДЕЙСТВИЕ  ПРОГРАММЫ:  НА  БОРДЮРЕ  ВЫХОДЯТ  ДВЕ  ЛИНИИ,  ОДНА ИЗ
КОТОРЫХ  ПО  ОТНОШЕНИЮ К ДРУГОЙ СДВИНУТА НА ДВА ПИКСЕЛЯ. КАК ЭТО
РАБОТАЕТ:  КОМАНДЫ  ЗАДЕРЖКИ  'СДВИГАЮТ'  ВТОРУЮ  БЕЛУЮ ЛИНИЮ НА
(СОРОК  ВОСЕМЬ  ПОР'ОВ = Ч8*Ч = 192 ТАКТА; АПД О = 7 ТАКТОВ) 199
ТАКТОВ. А ПОЧЕМУ НЕ 22З, ВЕДЬ ЧТОБЫ ПОЛУЧИТЬ СМЕЩЕНИЕ НЕОБХОДИМО
ИМЕННО  СТОЛЬКО ВРЕМЕНИ? - ОПЯТЬ СПРОСИТ НАЧИНАЮЩИЙ. А ВЫ ЗАБЫЛИ
ПРО  КОМАНДЫ  ОИТ  (С),Д И ОИТ (С),Е, КОТОРЫЕ ТАКЖЕ ВХОДЯТ В ЭТО
ВРЕМЯ: 12 + 12 + 199 = 22З. ВОТ ТАК-ТО.                         
  А  ТЕПЕРЬ  ПОПРОБУЙТЕ  СДЕЛАТЬ  ТРИ,  ЧЕТЫРЕ,  ПЯТЬ ИЛИ БОЛЬШЕ
ЛИНИЙ, КОТОРЫЕ ПО ОТНОШЕНИЮ ДРУГ К ДРУГУ БЫЛИ БЫ СДВИНУТЫ НА ДВА
ПИКСЕЛЯ  (1  ТАКТ).  ЭТО  СДЕЛАТЬ  ОЧЕНЬ ПРОСТО. В ПРИЛОЖЕНИИ ВЫ
НАЙДЕТЕ  ВЫШЕПРИВЕДЕННУЮ  ПРОЦЕДУРКУ, ЧТОБЫ ВЫ СМОГЛИ ПОСМОТРЕТЬ
КАК ОНА РАБОТАЕТ...                                             
  СВОЮ МИССИЮ МЫ СЧИТАЕМ ВЫПОЛНЕННОЙ. КАК СДЕЛАТЬ 'ZX' ВЫ ПОНЯЛИ
(Я  НАДЕЮСЬ),  А  ЧТОБЫ  ВЫ  НАС  НЕ  ОБМАТЮКАЛИ  (ТИПА  - А ГДЕ
ОБЕЩАННЫЙ  ZX  НА  БОРДЮРЕ,  ЛАМЕРЫ ВЫ ЭТАКИЕ?!!) В ПРИЛОЖЕНИИ К
ГАЗЕТЕ ПОКОИТСЯ (С МИРОМ, АМИНЬ :)) ) ИСХОДНИК, КОТОРЫЙ И РИСУЕТ
ЭТО  ПРЕСЛОВУТОЕ 'ZX'. ТАМ ЕСТЬ ПАРА УПРАВЛЯЮЩИХ КЛАВИШ (О И Р),
КОТОРЫМИ  МОЖНО  'ПОДОГНАТЬ'  ЭФФЕКТ ПОД ВАШИ ТАКТЫ... ИСХОДНИКИ
КАК ВСЕГДА В ALASM'Е...                                         
  ЕСЛИ  ВОЗНИКНУТ  КАКИЕ-ЛИБО  ВОПРОСЫ, ОБРАЩАЙТЕСЬ В РЕДАКЦИЮ -
ТАМ ВАМ ПОМОГУТ ДОБРЫМ СЛОВОМ И ДЕЛЬНЫМ СОВЕТОМ...              



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

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

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

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

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

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

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

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

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


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

Похожие статьи:
Проходилка - Сегодня я закончу описывать игру " ВИННИ-ПУХ ".
Что-где-почем - в Центpальном Унивеpмаге на тpетьем этаже откpылась новая секция pадиотоваpов.
Управление оболочкой - о ZX версии оболочки.
О мудаках - Overfile Must Die!!!
Трям - Здравствуйте мальчики и девочки, цветочки и солнышки, звездочки и синее небо.

В этот день...   18 апреля