|
ZX Time
#04
17 ноября 2001 |
|
Кодерам - "Сага о бордюре продолжается!" (программирование эффектов на бордюре).

Кодерам "Сага о бордюре продолжается!"
────────────────────────────────────────
Николай Витенко
Сегодня я хочу рассказать вам о том,
как эти два паразита (DWT и Golden Max),
заставили меня сделать подвухпиксельный
горизонтальный индикатор уровня громкос-
ти AY (который будет рассмотрен в данной
статье) на BORDER'е.
Прибегает как-то ко мне DWT и так,
между прочим, говорит, что Golden Max
сделал на бордюре индикатор, который
"нарастает" со смещением в один пиксел.
Так как я бордюром занимаюсь довольно-
таки давно и то, что сместить там что-
либо меньше чем на два пиксела невозмож-
но, я знаю также хорошо, как и то, что
Max на бордюре рисует только командой
BORDER 0...7. И меня, естественно, это
крайне удивило и я, конечно, не поверил
в эту лабуду.
Но Денис настаивал и доказывал, что
видел это своими глазами. Тогда пришлось
мне идти к Max'у, и что вы думаете? Дей-
ствительно "бегает", но как потом выяс-
нилось это сервисная возможность эмуля-
тора (Unreal Speccy). НО!!!!! Меня это
заело. И в результате появилось то, что
вы вероятно видели в "интро" к этому но-
меру.
Короче, Денис с Максом решили с меня
посмеяться, а в итоге посмеялся я над
ними, когда они увидели сделанный мною
аналогичный эмуляторному индикаторик. :)
Приступим. Надеюсь, вы читали статью о
том, как нарисовать "ZX" на бордюре.
Индикатор создаётся аналогичным образом.
Создаётся определённый буфер, в котором
находятся задержки-"смещения". То есть,
считываем значение с каналов AY'ка, об-
ращаемся к этому буферу, который "вы-
даёт" число тактов, на которое необходи-
мо 'смещать' индикатор. Затем высчиты-
ваем то, на сколько нам надо произвести
ещё одну задержку, чтобы перейти на сле-
дующую строчку, а затем и на следующий
канал. Сведём всё к следующему алгоритм-
ику:
┌────────────────────────────────────┐
│ Считывание значения с канала AY'ка │
└─────────────────┬──────────────────┘
│
┌─────────────────┴──────────────────┐
│ Расчёт задержки в соответствии │
│ со значением, считанного с канала │
└─────────────────┬──────────────────┘
│
┌─────────────────┴──────────────────┐
│ Задержка │
└─────────────────┬──────────────────┘
│
┌─────────────────┴──────────────────┐
│ Прорисовка линии цвета X │
└─────────────────┬──────────────────┘
│
┌──────────────────┴───────────────────┐
│Задержка, дополняющая 'линию', то есть│
│ до 224 тактов, фоновым цветом │
└──────────────────────────────────────┘
И так для каждого канала...
Но для работы этого индикатора, необ-
ходимо иметь быстрый и "ровный" проигры-
ватель музыки. В примере исходника, ко-
торый находится в приложении к газете,
используется уже разложенная музыка с
очень быстрым проигрывателем.
Второй исходник - это то, что вы виде-
ли в нижней части бордюра в интро. Это я
лет пять назад написал, но до сих пор
сам не пойму как оно работает. По идее
он должен "рисовать" на бордюре совсем
другое Но что есть, то есть. Может кто-
то из вас сможет все это действо объяс-
нить?
И напоследок просьба и предложение.
Просьба: Помогите найти плату(ы) для
General sound и DMA. Только с возмож-
ностью получения у нас, в Украине.
Предложение: Кодеры занимающиеся эф-
фектами на бордюре, может обменяемся
опытом?
На этом всё. Исходники - в приложении!
* * *
Другие статьи номера:
Похожие статьи:
В этот день... 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