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 - имена создателей газеты.


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

Похожие статьи:
Future! - фантастические идеи по дорaботке Speccy.
Чемпионат - Чемпиопнат Европы по футболу - турнирные таблицы.
Пишите письма - Письма читателей в журнал.
Бизнес на Speccy - Бизнес на Спектруме.
Предисловие - Привет всем любителям...

В этот день...   1 января

SibNews #08, Woot! #01, Spectrum Magazine #01, ACNews #25, Psychoz #14, ACNews #14, Last 128 #08, Last 128 #06, Last 128 #05, Last 128 #04, Last 128 #03, Last 128 #02, Last 128 #09, Last 128 #3.5, Last 128 #8.025, Sinclair Club #05, Last 128 #M!R 01, Fantadrom #01, Buzz #20, Last 128 #01, DonNews #13, Nicron #120, Promised Land #01, Inferno #01, Marazm #25, Ultimathum #01, Marazm #21, Hooy Mag #02, KrNews #11, Marazm #22, Marazm #23, ZX Football 2000 #01, Codemania #01, Always #03, Bugs #02, IzhNews #08, Virtual Worlds #01, Listok #04, Scenergy #02, Flash Info #18, Marazm #16, Marazm #17, Zed #01, Balagan #02, ZX Format #08, ZX Power #03, Shock #01, Impulse #02, Deja Vu #03, ZX Club #08, ZX Club #06, Numberology #01, Marazm #13, Marazm #12, Marazm #14, Gorodok #02, Zodiac #01, Marazm #15, Deja Vu #07, Marazm #11, Deja Vu #07, Playboy #03, Crazy News #2, Crazy News #4, ZX Light #01, Crazy News #5, Playboy #02, ZX News #03, ZX Review #1-2, Read Me #02, Crazy News #3, Nicron #13, Read Me #01, Public Spirit #01, Faultless #06, Faultless #05, ZX Software #01, Stump #04, Speccy #07, Возраждение #0, Speccy #03, On-Line #17, Scene+ #01, Welcome Press #01, ZX Konig #04, Adventurer #01, Faultless #05, Faultless #04, Di Halt #01, Faultless #01, Playboy #01, Crazy News #1, Faultless #03, Pioneer #03, Sinclair Town #02, ZX Magazine #01, Eldorado #01, ZX Magazine #02, Spectron #01, ZX News #01, ZX Konig #02, 200 #W, Welcome Press #00, Dune #07, Subliminal Extacy #01, Subliminal Extacy #02, ZX Konig #01, Subliminal Extacy #00, Muchomor #01, Spectrofon #01, ZX Revija #02, Outlet #01, Outlet #1-3