ZX Review #5-6
04 ноября 1997

Этюды - Индикатор каналов музыкального процессора. Процедура очистки экрана. Предложение по стандартизации.

<b>Этюды</b> - Индикатор каналов музыкального процессора. Процедура очистки экрана. Предложение по стандартизации.
(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'а.

           *   *   *



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

Adventure Project - Проектирование и разработака Адвентюрных и RPG игр.

Adventure Project - Русификация адвентюр.

TR-DOS для начинающих - Продолжение.

Авторская разработка - Scorpion 2000 (С.Зонов).

Авторская разработка - Трамплин (С.Веремеенко).

Визитная карточка - новый электронный юмористический журнал "SpectrofUn".

Перекресток драконов - Раскрутка игры Finders Keepers.

Перекресток драконов - Раскрутка игры Knight Tyme.

Перекресток драконов - Раскрутка игры Spellbound.

Перекресток драконов - Раскрутка игры Stormbringer.

Ретро - 40 лучших процедур: Слияние картинок, Вращение символа по часовой стрелке, Инвертирование символов, Изменение атрибута, Закрашивание контура, Построение шаблонов (Дж.Хардман, Э.Хьюзон.).

Советы экспертов - Total Eclipse 2.

Советы экспертов Super League.

Форум-игры - Описание игры Страна Мифов.

Форум-игры - Прохождение Renegade.

Форум-игры - Тонкости торговли в игре Elite

Форум - Изучение и отладка @-файлов с помощью STS 5.1. Особенности отладки программ с помощью монитора STS. Исправление ошибки STS 5.1.

Форум - Компрессия программ.

форум - О сокращении времени форматирования. О записи секторов одновременно с форматированием. Перестроение экрана за одно прерывание.

Форум - Особенности ассемблера ZX ASM 3.0.

Форум - По поводу компилятора бейсика "Blast".

Форум - По поводу релоцируемых программ.

Форум - Программы "Пламя" и "Дракон".

Читатель-читателю - TR-DOS: как не допустить ошибки?

Читатель-читателю - Эффективная работа с дисководом .

Этиды - Расчет адреса в файле атрибутов. Программа скроллирования заданного окна на 1 пиксел вправо. Программа очистки заданного окна. Процедура вывода картинки из буфера.

Этюды - Индикатор каналов музыкального процессора. Процедура очистки экрана. Предложение по стандартизации.

Этюды - Набор из восьми программ "расширения" экрана. Две процедуры проявления экрана.

Этюды - Новые темы для разработок.

Этюды - Программа воспроизведения инструмента от редакторов оцифрованной музыки.

Этюды - Программа обработки @-бейсик файлов.

Этюды - Процедура поворота символа на 90 градусов по часовой стрелке.

Этюды - Процедура поиска текстовых файлов.

Этюды - Экранная процедура "UP HL".


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

Похожие статьи:
Железо - доработка загрузчика к Binary Love.
Necronomicon - Магия "НЕКРОНОМИКОНА" не для шуток!
Unbeliver - Самара - Москва - Владимир - Ковров...
Интервью - интерьвью с довольно-таки известным музыкантом не только на AMIGA, PC, но и на Speccy - XPEh.
Этюды - Программа сортировки массива по возрастанию. Процедура заполнения экрана заданным атрибутом. Процедура проявления картинки. Эффект летящих навстречу звезд. "Душ", идущий из верхнего левого угла экрана. Процедура "осыпания" картинки по пиксельным линиям. Программа "вытягивания" картинки под углом в 45 градусов. Три процедуры "Scroll".

В этот день...   15 февраля