|
ZX Pilot
#38
31 мая 2000 |
|
Coding - пишем необычную бегущую строку.

Привет всем! Надеюсь, я вас не сильно
"забодал" своими умными измышлиниями на
тему 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
Другие статьи номера:
Похожие статьи:
В этот день... 16 ноября