ZX Element #02
06 июня 1998

Из неопубликованого - Структуры модулей PSC.

<b>Из неопубликованого</b> - Структуры модулей PSC.
 << MOVE                                                        
                                                                
    А теперь, для тех кто заинтересовался музыкальным редактором
PSC - приводим кое-какую любoпытныю информацию. Кстати, в скором
времени  должна выйти новая версия Рго Sound Creator. Eце круче,
удобнее и навороченнее.                                         
                                                                
Структура модулей редактора PSC.                                
----------------------------------------------------------------
(c) MVA from E-mage /г.Гродно/                                  
                                                                
1. Структура самого файла.                                      
                                                                
QQ..24 - байты "PSC V1.QQ COMPILATIOU OF "                      
25..44 - 2Q байт имени музыки                                   
45..48 - байты " ВУ "                                           
49..66 - 18 байт автора музыки                                  
67..68 - зарезервировано (всегда #2Q,#2Q)                       
69..7Q - логический адрес начала Sample`ов (считается от начала 
         модуля)                                                
71..72 - логический адрес начала таблицы Positions              
73..73 - начальный Delay (скорость музыки)                      
74..75 - логический адрес таблицы лог.адресов орнаментов        
                                                                
76..   - лог.адреса самих Sample`ов (по 2 байта)                
  ..   - лог.адреса самих Ornament`ов (по 2 байта)              
                                                                
  ..   - co6ctbehho Sample`ы :                                  
                номер Sample`a (1 байт) в редакторе, сам Sample 
                номер Sample`a в редакторе, сам Sample          
                                ...                             
                номер Sample`a в редакторе, сам Sample          
                байт #FF                                        
                                                                
  ..   - co6ctbehho Ornament`ы :                                
                номер Ornament`a в редакторе, сам Ornament      
                номер Ornament`a в редакторе, сам Ornament      
                                ...                             
                номер Ornament`a в редакторе, сам Ornament      
                байт #FF                                        
                                                                
  ..   - co6ctbehho Pattern`ы                                   
                                                                
                                                                
           длина Patterna`a, номер Pattern`a в редакторе,       
                канал A, #FE, канал В, #FE, канал С, #FE        
                                ...                             
           длина Patterna`a, номер Pattern`a в редакторе,       
                канал A, #FE, канал В, #FE, канал С, #FE        
           байт #FF                                             
                                                                
  ..   - co6ctbehho Positions                                   
           номер Position (важен токьто для декомпиляции),      
                длина Pattern`a, adr of A, adr of В, adr of С   
           номер Position, длина Pattern`a,                     
                adr of A, adr of В, adr of С                    
                                ...                             
           номер Position, длина Pattern`a,                     
                adr of A, adr of В, adr of С                    
           на какую посицию зациклено, байт #FF,                
                лог. адрес в таблице Positions на нужную позицию
----------------------------------------------------------------
                                                                
2. Строение Sample`a.                                           
                                                                
Каждая "строка" Sample`a состоит из шести байт:                 
Q..1 - tone add (смецение для чистого тона)                     
2    - noise add (смецение для шумов)                           
3    - volume (громкость звука в Sample`е - локальная громкость)
4    - свободный байт (для быстроты Player`a)                   
5    - Флаг:                                                    
 биты:  Q - чистый тон (Q-есть, 1-нету)                         
        1 - увеличить на 1 глобальную громкость (1-да, Q-нет)   
        2 - уменьшить на 1 глобальную громкость (1-да, Q-нет)   
        3 - шум (Q-есть ,1-нет)                                 
        4 - oгибaюцaя (Q-да ,1-нет)                             
        5 - закончить Sample (Q-да ,1-нет)                      
        6 - перейти на начало цикла (Q-да ,1-нет)               
        7 - начало цикла (Q-да ,1-нет)                          
----------------------------------------------------------------
                                                                
3. Строение Ornament`a.                                         
                                                                
Каждая "строка" Ornament`a состоит из двух байт:                
                                                                
Q - Флаг + noise add                                            
 биты:  Q..4 - noise add                                        
        5    - закончить Ornament (Q-да ,1-нет)                 
        6    - перейти на начало цикла (Q-да ,1-нет)            
        7    - начало цикла (Q-да ,1-нет)                       
1 - поте add (смецение для ноты)                                
----------------------------------------------------------------
                                                                
4. Строение каналов Pattern`ов.                                 
                                                                
#QQ..#56 - нота                                                 
#57..#66 - volume (#57=envel,#58=1,#59=2,...,#66=F)             
#67 + 2 bytes of ADR - адрес тела Sample`a (см.пункт 5)         
#68 + 2 bytes of ADR - адрес тела Ornament`a (см.пункт 5)       
#6A..#79 + 1 byte of value - встроенные команды:                
        #6В - glis.dn                                           
        #6С - glis.up                                           
        #6D - port.                                             
        #6E - del.                                              
        #6F - hld.orn                                           
        #7Q - sldv.                                             
        #71 - rls orn                                           
#7A + 2 bytes of envelope - oгибaюцaя (4 старших 6uta - номер   
                            oru6. ,остальные - значение задержки
#7В + 1 byte of noise add - смецение шума после каждой ноты     
                            (присутсвует ТОЛЬКО на канале В)    
#7С - pause                                                     
#7D - rls                                                       
                                                                
#8Q..#9F - номер Sample`a (номер в таблице адресов)             
#AQ..#BF - номер Ornament`a (номер в таблице адресов)           
#CQ..#FF - пауза между следyюцей командой (нотой) в нотах.      
           #CQ - 1 нота, #С1- 2 ноты, ..., #FF - 64 ноты.       
                                                                
   В каждой "ноте" сначала идут какие-то параметры, a затем идет
пауза до следyюцей ноты  ( после этой команды пропустится нужное
количество нот, a затем уже будет все o6pa6aтывaться дальше)    
----------------------------------------------------------------
                                                                
5. Некоторые дополнительные возможности декомпилятора.          
   (Player`ом не поддерживаются)                                
                                                                
    Если по адресу 74 модуля (адрес на Sample`ы) находится число
#QQQQ, то декомпилятор переходит во второй режим работы :       
    1. По адресу 74 лежат уже co6ctbehho Sample`ы, т.е.  адресов
       Sample`ов и Ornament`ов уже не сyцествyет.               
                                                                
    2. Команд с #8Q по #BF здесь уже не сyцествyет.             
       Место них команда пауза между нотами (т.е. она смецaется,
       #81=1 нота, #82=2 ноты, #83=3 ноты,#CQ=64 ноты , a команд
       с #С1 по #FF не сyцествyет)                              
    3. Для задания  нужного Sample`a или Ornament`a используются
       команды #67 и #68,где нужно задавать адрес на тело блока.
                                                                
Этот режим был введен для более  быстрого написания конвертеров.
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                
                                                                



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

Введение - От авторов.

Игрушки - Heavy on the magic.

Игрушки - Defender of the crown.

Игрушки - War in the middle earth.

Игрушки - Dommdark revenge.

Игрушки - Monstrland.

Прогаммистам - Интеллект.

Прогаммистам - Алгоритм.

Прогаммистам - переброска SCR за INT.

Интервью - IMP DMS RUSH.

Интервью - FATALITY.

Интервью - SERGEY STURM LGN.

Развлечения - Prodigy.

Развлечения - Двое в гамаке.

Развлечения - Законы Мерфи.

Развлечения - Пословицы.

Чугуний - Модем.

Чугуний - Часы в компьютере.

Чугуний - Турбо для Байта.

Чугуний - Байт-01.

Почтовый ящик - Письма.

Разное - Рек-тайм.

Разное - RUSH I_S_P_A.

Разное - Развитие Амиги.

Разное - Модели Амиги.

Разное - Байки из склепа.

Разное - Опрос.

Разное - Дистрибьюция Черного Ворона.

Разное - Дистрибьюторы СНГ.

Разное - Мозаика.

Программы - Text print v1.6

Программы - Принтер.

Программы - Редактор Last battle.

Программы - Fast zero v1.4+

Программы - Real commander.

Программы - Quick commander.

Подвал букиниста - Резервация.

Из неопубликованого - Поскриптум.

Из неопубликованого - Вступление.

Из неопубликованого - Анкета.

Из неопубликованого - Структуры модулей PSC.

Из неопубликованого - Схема.

Из неопубликованого - Проги.

Из неопубликованого - Echo.

Из неопубликованого - Размышления.

Из неопубликованого - Спасите спектрум!


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

Похожие статьи:
Что такое пиздяческий подъебизм - И почему станислав юдин - пидор.
История - Пьянка с участием всех беларусских групп: SERGEY STURM/LGN
От автора - Накануне 1 сентября...
Белый_попугай - Анекдоты.
Presentation! - крупнейшем проекте группы Ellipse - Приключение Алкаша Михалыча.

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