ZX Pilot #38
31 мая 2000

Coding - пишем необычную бегущую строку.

<b>Coding</b> - пишем необычную бегущую строку.
   Привет всем! Надеюсь, я вас  не  сильно
"забодал" своими  умными  измышлиниями  на
тему running lines и вообще. Если ваш кон-
кретный ответ "Да" - то немедля жмите ENT-
ER и вываливаыте из раздела (ШУТКА) в про-
тивном случае, можете принять пару Валидо-
ла, пару cigarets для  успокоения нервов и
пару drinks для поднятия духа. Приступим!

                 Сложные.

   К сложным бегущим строчкам можно причи-
слить такую штуку, как обрамление чего ли-
бо  буквенной  строкой. Не  стоит называть
сложной, строчку из рекламной паузы в Поле
Чудес! Там  господа из OUTLAND corp. вотк-
нули 4 роллера  для  стандартных строчек и
не хитрый пересчет со sliding'ом на углах.
Сложная строчка - это, как провило таблицы
последовательных пиксельных  кординат, ко-
торые  создаются  путем нудного  набора по
DEFB. Простейший образец сего действа:

      1234567890123456
#480A┌────────────────
    1│   .............
    2│  ..╔══╗..╔═════
    3│ .╔═╝  ║..║
    4│ .║╔═══╝..║
    5│ .║║.... .║
    6│   ║......║
     │   ╚══════╝

   Позиция #480A - является точкой 0 в си-
стеме  отсчета  координат,  соответственно
первая  точка  нашей  строчки  будет (x,y)
[2,5], следующая будет [2,4],и т.д. и т.п.
Теперича по простому пересчету создаем ст-
рочку и видим:
   - пересчет сделан по знакоместам - идет
рывками;
   - пересчет  сделан  по пикселам - буквы
наслаиваются.
   А теперь как надо было делать...
   Берутся пиксельные координаты по вышен-
азванной  схеме, для  простоты можно взять
через  одну  точку, и тогда вам надо будет
выводить буквы на каждую четвертую коорди-
нату в четыре этапа.

   1) 1..4..7..10<─┐
   2) 2..5..8..11  │cycle
   3) 3..6..9..12  │
   4) 4..7..10..13─┘

   Вот  и все! На  кромках  вашей  строчки
(чтобы все это дело смотрелось), потребуе-
тся поставить _стандартные_ роллинги. Мож-
но сделать и не через  один pix, а  каждый
pix - будет чу-у-уть плавнее, но возни мн-
ого больше.
   Сделаю перерыв  для того, дабы "похими-
чить" с PILOT'ами... ;-)

---
   Это место специально отведено, дабы VEL
&Ko могли покритиковать написанное. :о)
---

              Сверх-сложные.

   Дабы  не лишать вас удовольствия разви-
вать данную тему, я затрону только бордюр-
ные строчки. В  одной из  последних (disk)
Ревюх, было рассказано о том, как запусти-
ть текст  на бордюр, но следует  заметить,
что там написано немалое  количество бреда
сивой кобылы... :-)
   Для начала нам потребуется строчка, для
этого с адреса #X000  набиваем  первую pix
строчку, #X100 - вторую, etc. на #FF строк
Каждый пиксел имеет ширину в три знакомес-
та  и может задаваться от #00  до #07. Так
же следует учитывать, что ширина строки 14
бордюрных пиксел:

START   LD C,#FE;Порт
        LD H,#X0;Старший полубайт начала
                ;строки.
        LD E,#00;Младший полубайт начала
                ;строки (сдвиг).
        DUP ZZ;Вывод ZZ строчек, зона пов-
              ;тора.
        LD L,E
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        OUTI
        INC H
        NOP
        NOP
        EDUP;Конец зоны повтора.
        XOR A
        OUT (C),#00
        LD BC,#7FFE;Space pressed?
        IN A,(C)
        AND #01
        JP NZ,#XXXX;Переход на #XXXX
        RET

   Думается,  что  дальнейшие  комментарии
излишни, хотя я все же добавлю. Длина стр-
оки  может  быть  гораздо более нежели то,
что видно на  экране. Для ее полного прос-
мотра  требуется  плавно менять содержимое
регистра  Е на входе (младший полубайт ад-
реса строки). Переход  по  адресу  #XXXX в
конце  строки, осуществляется на вашу про-
гу. Времени остается полно, и за это время
можно запустить на экран здоровенную бегу-
щую  строчку, а  также  эквалайзеры на все
регистры. Естественно, строчку нужно скин-
уть  пониже, т.к. в самом верху экрана она
окажется смятой. Сделать это можно LDIR'к-
ой  с 0 в 0 адрес на длинне кратной 14 или
28. И  еще, сократи количевство подпрог до
минимума, а то будет как вчера. :-)

                             Alex Merkulow
                              Sewerodwinsk
                       Z-Zero SYSTEMS inc.
                                  18/II-00



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

Новости - новости от Ковровских спектрумистов.

Тема - Беседа Justinas'a с SerzhSoft'ом из Шадринска и Firex'ом/Mayhem из Тулы произощедшая на Chaos Construction 2000.

Тема - Беседа с известным художником Fil/Antares произощедшая на Chaos Construction 2000.

Тема - Беседа с одним из организаторов FunTop'98 и редактором газеты Nicron - Wlodek Black'ом из Москвы.

Тема - размышления SIR-X'a о плачевном состоянии дел со спектрумовским софтом.

Imagination - Сумерки богов (по оригинальному замыслу Игоря Богданова).

Железо - описание новой звуковой карточки для спектрума DMA UltraSound Card и сравнение ее с DMA Sound Blaster.

Coding - пишем простую бегущую строку.

Coding - пишем необычную бегущую строку.

О разном - письмом Organism'а о нелегкой судьбе Спектрумистов из глубинке.

Hints - пароли для игр: Tower Pod, Clocks head Cracker.

Реклама - рекалама и обьявления о продаже спектрумовского вареза.

Credits - имена создателей газеты.


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

Похожие статьи:
Железо - К вопросу о дисководах и multiloader'ах.... "Как ни крути... три дисковода не добавят тебе мастерства!"
Анкета - Vinnnу.
Письмо №306 - Беларусь, Мстиславль
От редакции - мы проведем в нашем городе агитационную компанию в защиту Амиги.
Мнение - Дискуссия Demo & Megademo.

В этот день...   21 ноября