|
ZX Review
#5-6
04 ноября 1997 |
|
Этюды - Индикатор каналов музыкального процессора. Процедура очистки экрана. Предложение по стандартизации.

(c) Борисов Денис, г.Кстово Первая процедура представ- ляет собой индикатор каналов му- зыкального процессора. Да, в этюдах было опубликовано нес- колько вариантов индикатора, но ни одного атрибутного. Да и мес- то эффекта жестко задано для всех трех каналов муз. процессо- ра. В нашей процедуре адрес эф- фекта можно задавать отдельно для каждого из трех каналов. Использовать индикатор можно так: рисуется картинка, для каж- дого канала своя, черным INK и PAPER, затем при работе индика- тора картинка подсвечивается INK'ом в зависимости от громкос- ти. Длина процедуры 53 байта, сравните с предыдущими варианта- ми. Индикатор рассчитан на 16 градаций громкости и выдает в заданное знакоместо экрана атри- бутов цвет INKа, соответствую- щий громкости сыгранной ноты, также используется BRIGHT. Эту процедурку мы написали вместе с Алексеем Николаевым. 140. ORG 60000 LD BC,#FFFD LD A,8 PUSH AF CALL LOOP1 CALL PRINT1 POP AF INC A PUSH AF CALL LOOP1 CALL PRINT2 POP AF INC A CALL LOOP1 CALL PRINT3 RET LOOP1 OUT (C),A IN A,(C) AND 15 RRA RET NC ADD A,64 ;если BRIGHT не надо, то убрать RET ;Адреса экрана атрибутов для ;каналов A, B и C. Можно доба- ;вить до 3 10-15 знакомест на ;канал. PRINT1 LD (22528),A RET PRINT2 LD (22529),A RET PRINT3 LD (22530),A RET 2 Адреса для каналов выбраны для примера и могут быть любыми другими. Следующая процедурка пред- ставляет собой очистку экрана. Такой или ей подобной я (DENWER-DEN) в Ревю не встречал. Эту программку я выдрал из игры COMANDO TRACER и на 40% перера- ботал. Что из этого получилось, судить Вам. Теперь о программе. После старта программы устанавливаются черная бумага и ярко-белые чер- нила, затем изображение начинает плавно сдвигаться от краев экра- на к центру до полного исчезно- вения. 140. ORG 40000 ENT LD HL,22528 LD DE,22529 LD BC,767 LD (HL),71 LDIR METKA LD IX,61952 LD B,96 LD L,255 LD H,0 L2 LD (IX+0),H LD (IX+1),L DEC L INC IX INC IX DJNZ L2 LD B,96 L1 LD (IX+0),H LD (IX+1),L INC L INC IX INC IX DJNZ L1 LD B,0 MET PUSH BC LD IX,61952 LD B,0 LD HL,16384 DEN1 LD A,(IX+1) ADD A,(IX+0) 140. LD (IX+1),A CALL C,DEN2 CALL LOOP1 INC IX INC IX INC B LD A,B CP 192 JR NZ,DEN1 POP BC DJNZ MET RET DEN2 LD E,15 PUSH HL SRL (HL) INC L DEN3 RR (HL) INC L DEC E JR NZ,DEN3 POP HL PUSH HL LD A,L ADD A,31 LD L,A LD E,15 SLA (HL) DEC L DEN4 RL (HL) DEC L DEC E JR NZ,DEN4 POP HL LOOP1 INC H LD A,H AND 7 RET NZ LD A,L ADD A,32 LD L,A RET C LD A,H SUB 8 LD H,A RET 2 Надеюсь, Вам понравятся эти две небольшие процедурки. Теперь о вопросе, который неоднократно поднимался на стра- ницах ZX-Ревю. СТАНДАРТИЗАЦИЯ. Все корреспонденты предлагают (в основном все) стандартизировать наш старый добрый SPECCY, сис- темный разъем, кемпстон, сопро- цессор, и т.д. и т.п. Господа, на данном этапе это нереально! Посмотрите, сколько у нас ра- зновидностей Спектрума, не оши- бусь, если назову число 30 или 40. И надеяться на то, что пользователи этих компьютеров откажутся от них в пользу стан- дартизированного детища, кото- рое нам предлагают родить сов- местными усилиями, по крайней мере неразумно. Мое предложение таково. Надо делать настраиваемые программы, а не переделывать под них ком- пьютер. То есть, в самой прог- рамме располагается инсталлирую- щий модуль (или вся программа является настраиваемой), кото- рый при первичном запуске запра- шивает данные по конфигурации компьютера или сам определяет их автоматически. Затем создает ра- бочую версию программы. Таким образом решаются сразу два воп- роса: вопрос совместимости и вопрос нелегального копирования. Так как после настройки програм- мы на компьютере пользователя и уничтожения инсталлирующего мо- дуля программа вряд ли будет ра- ботать на другом компьютере. Прим. ред.: Хорошая, но не новая идея. Посмотрите на такие программы, как Alasm v3.5. Там вопрос совместимости решен про- ще, чем предложил Денис, но система драй- веров более гибкая. Таким образом, учиты- ваются интересы пользователей даже очень специфичных (редких) компьютеров. Ведь каждый может написать драйверок под себя. А теперь представьте, если эту задачу взвалить на плечи программиста, пишущего программу. Он ведь, по-вашему, ОБЯЗАН знать все возможные конфигурации, что в принципе невозможно. Но при написании про- граммы он должен обеспечить ее работу на наиболее популярных машинах, что и сделал автор Alasm'а. * * *
Другие статьи номера:
Похожие статьи:
В этот день... 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