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'а.

           *   *   *



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

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".


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

Похожие статьи:
Проект Зомби - В самый разгар "перестройки" редактор ташкентской газеты, в которой я сотрудничал, заказал мне очерк с первого конгресса Aссоциации экстрасенсов CCCP...
Смайлик - подборка компьютерных анекдотов.
+D and Multiface Protection

В этот день...   12 декабря