17 августа 2002

                                                                
-[ Ьу Dr.Yirus/MDO ]------------------------------------------- 
                                                                
Восстановление дисков c полностью уничтоженным системным треком 
--------------------------------------------------------------- 
Сегодня я, дядя Вирус, буду учить искусству восстановления дис- 
ка c полностью стертой нулевой дорогой. Если, не  приведи  Бог, 
c Вами случилась такая беда, а копии дороги на 159-ом треке не- 
ту, то эта статья для Вас! Здесь я научу,  как  восстанавливать 
Бейсики, кодовые файлы, музоны, исходники и т.д.                
                                                                
Для восстановления диска Вам потребуются: STS   любой   версии, 
C0NYEO Commander и Ваши собственные  мозги. Причем  чем  больше 
мозгов и опыта  работы  на  компе, тем лучше.                   
                                                                
Для начала надо 6ы  обезопаcитьcя. Эй, куда вы?! Нельзя же  по- 
нимать все так буквально! Я просто имел в виду, что  во избежа- 
нии порчи восстанавливаемого диска (а то ему и так уже порядком 
досталось) его нужно скопировать на другой чистый  диск, на ко- 
тором и будет проводиться сие  действо. Причем копировать нужно 
c 1-го трека по 159-ый. Сделать это можно любым потрековым  ко- 
пировщиком, в котором есть возможность ввода номеров копируемых 
треков. Я обычно пользуюсь Honey Commander'ом.                  
                                                                
Теперь загружайте c другого диска Доктор и просмотрите  нулевой 
сектор на первой дороге. Там у многих юзеров (и  даже  у  меня) 
обычно находится boot. С него и начнем. Другие юзеры, у которых 
boot находится в середине или в конце, могут    пропустить  эту 
часть текста.                                                   
                                                                
Надо сказать, что boot и, естественно, любой Бейсик, имеет  ряд 
особенностей, отличающих его от файлов другого типа (здесь речь 
пойдет о дампе файла):                                          
                                                                
+ первые четыре байта являются номером строки;                  
+ часто встречаются коды #0D, после которых  идет   либо  номер 
  следующей строки, либо код #3A (двоеточие);                   
+ то же самое c кодом #0Е, после которого идет пять байт числа, 
  из которых первый, второй и пятый, как правило, нули;         
+ почти всегда встречается  адрес запуска загрузчика в кодах;   
+ если Бейсик загружает программу   по  отдельным   файлам,  то 
  встречаются имена сих файлов.                                 
                                                                
Эти и многие другие отличия, о которых я  не упомянул,  помогут 
Вам отличить Бейсик от кодового блока. Если же Вы сомневаетесь, 
загрузите этот блок в STS c помощью функции [SS]+L. Те,  кто не 
сомневается, могут проделать то же  самое, так   как  наступает 
время определения длины Бейсика. Дорожку   установите   первую, 
сектор нулевой, количество считываемых  секторов - один,  адрес 
загрузки - 23867. Перед загрузкой хорошо 6ы  очистить  память c 
адреса 23867 по, так скажем, 40000   для  того,  чтобы  остатки 
загрузчика самого монитора не мешали поиску.                    
                                                                
Примечание (к делу не относится): если кому-то  мои рассуждения 
могут показаться ламерскими, подумайте  о других  потенциальных 
читателях, которые не  являются такими крутыми кодерами, но уже 
умеют запарывать нулевые дорожки. Подумали? Вот  и   прекрасно. 
A теперь перейдем к делу.                                       
                                                                
После того, как мы загрузили Бейсик, нужно найти его конец. Вот 
здесь и пригодятся ваши познания. Помните, что код #0D является 
лишь маркером конца строки, а не самой программы.  B  некоторых 
случаях, если автор Бейсика не oco6o над ним  издевался,  конец 
проги можно определить по коду #80. Только  будьте оcмотритель- 
ны: этот код может оказаться левым, например, в кодовом загруз- 
чике. Если  Бейсик оказался длиной более одного   сектора  (на- 
пример, защищен протектором или является не загрузчиком, а  са- 
мой обыкновенной программой  на   Бейсике), загрузите  побольше 
секторов. Если Бейсик  защищен каким-либо протектором (системой 
защиты от взлома), то в зависимости от вида протектора он имеет 
определенную длину. Например, все  программы  на  моих  дисках, 
защищенные системой KSA ENCOYPTI0N DEYICE,  имеют  длину    496 
байт. Нашли конец?  Теперь  определим  длину:                   
                      ENDING_ADDOESS - 23867 = LENGTH_0F_BASIC. 
Запишите это число на бумажку.                                  
                                                                
Если Бейсик подгружает за собой сектора (моноблок),  то   нужно 
узнать - сколько. При загрузке обычно число секторов загружает- 
ся в регистр B, в регистр С загружается число 5  и   вызывается 
процедура загрузки  по адресу 15635. Если  в   загрузчике  есть 
турбо-лоадер c прямым программированием ВГ то  в  С  ничего  не 
грузится, а в B - по-прежнему число секторов. Будьте вниматель- 
ны: лоадер может подгружать несколько блоков и размещать  их  в 
разных страницах памяти, а загружаемая программа  после  распа- 
ковки тоже может что-нибудь подгрузить.  Найденную длину секто- 
ров запишите на  бумажку, если подгружается  несколько  блоков, 
cуммируйте их. B том случае, если  прог  защищен   протектором, 
запишите на бумажку  #FF.  Длину такого моноблока  придется уз- 
навать другими методами.                                        
                                                                
Теперь у нас есть все данные, чтобы c гордостью вписать  в бут- 
-сектор первый заголовок. Делать это надо в ДOКTOРЕ. Напоминаю: 
первые восемь байтов - имя файла, потом один  байт  расширения, 
два одинаковых слова длины (для тех, кто не знает: слово -  это 
шестнадцатиразрядное число, то есть число, для записи  которого 
в шестнадцатиричном виде требуются два байта. Например: 40000 = 
#40 #9С,  65535 = #FF  #FF.)  Если длина меньше 255 (а так чаще 
всего и бывает), она тоже записывается словом. Например:  длина 
243, записывается #F3 #00. После двух  слов  длины  идет  длина 
файла в секторах, а потом начальный сектор/дорога               
файла. Их мы знаем: 0/1.                                        
                                                                
Теперь выйдите из Доктора, зайдите в меню  и   выберите   опцию 
"Стереть". Зачем?  A затем, что, попытавшись  выполнить  данную 
команду и не  найдя  отмеченных   секторов, C0NYEO  приведет  в 
порядок каталог диска, а именно: уточнит количество файлов, как 
существующих, так и стертых, свободное место и т.д. Пусть   вас 
не смущает количество свободных секторов. Оно не помешает рабо- 
те.                                                             
                                                                
Попробуйте запустить файл. Если он запустился  и заработал  как 
положено, то можете ощутить радость от первой удачи в bocctaho- 
влении диска. Если же после загрузки Бейсика  на  экран  вылез- 
ла надпись "Nonsense in BASIC" или  дружелюбное  "0К",  значит, 
длина Бейсика определена неправильно. B этом  случае проделайте 
все заново.  Посмотрите внимательней:   может,  вы   что-нибудь 
упустили? Если же длину ну никак найти не удается, не  pacctpa- 
ивайтеcь: такое бывает.  B  таком  случае  загрузите  Бейсик  в 
48К6 режиме и, проигнорировав появившуюся надпись, принудитель- 
но cгрузите на _ДРУГОЙ_ диск командой  SAYE "FILENAME" LINE XX. 
Затем загрузите этот Бейсик c восстанавливаемого диска в  мони- 
тор и подгрузите блоки  секторов, следуя командам загрузчика, а 
потом cгрузите их на диск c cгруженным загрузчиком  в  виде от- 
дельных файлов. Если загрузчик защищенный, то просто подгрузите 
энное количество секторов. Если прог пошел, то склейте файлы  в 
какомнибудь Коммандере, поддерживающем  данную функцию. Если же 
нет, то...  ничем  помочь  не могу, т.к. у меня после последней 
процедуры работали даже  самые  глючные  лоадеры. Если  хотите, 
то свяжитесь  со  мной, вместе разберемся :)                    
                                                                
Как узнать длину защищенного моноблока, которую  мы  определили 
как #FF? Cnoco6 первый: если у Вас "Скорпион" или другой компь- 
ютер c  выходом  в   теневик,   попробуйте  вывалиться  в  него 
после загрузки лоадера, расксорки оного и дальнейшей  загрузки. 
B теневике можно попробовать  найти  расксоренный  загрузчик  и 
определить,  сколько секторов он загружает. К сожалению, c  не- 
которыми навороченными  системами,  затирающими  теневик  после 
расксорки, этот номер не пройдет.  К  таким  системам относится 
"OOION PO0TECTI0N SYSTEM" Ьу 0rion from Digital Oeality.        
                                                                
Если файл на диске не последний, попробуйте прогуляться  от на- 
чала файла вперед по диску и попытаться найти начало следующего 
файла. Если Вам это удалось, то длина предыдущего  файла,  т.е. 
искомого, вычисляется   по  формуле:                            
                               len_sec=(tr2-tr1)*16+(sec2-sec1) 
где tr2 - начальная  дорожка следующего файла,  tr1 - начальная 
дорожка предыдущего  файла,   sec2 -  соответственно  начальный 
сектор след. файла,  sec1 - нач. сектор предыдущего файла.      
                                                                
Итак, мы уже научились  восстанавливать Бейсики. Как  bocctaho- 
вить откомпилированный музон? Если он c плейером, то вспомните, 
какие команды находятся в начале большинства плейеров. Правиль- 
но, LD HL,MVSIC:JP XXXXX:JP XXXXX. Вот по  этим-то  командам  и 
следует  ориентироваться.  Причем смотреть нужно  не только  на 
ASCII-таблицу дампа, но и на коды, а искать искомые  команды  в 
самом начале сектора,  поскольку  в  середину  сектора, как  мы 
знаем, записывать невозможно. Код команды LD HL,XXXXX - #21 #NN 
#NN. Код JP-шки - #С3.  Многое могут сказать слова  в  плейере: 
PO0-TOACKEO 2.1 BY G0LDEN DISK, KSA  S0FTWAOE C0MPILATI0N 0F  и 
т.д.                                                            
                                                                
Если музон не откомпилирован, то первым байтом обычно идет темп 
У львиной доли редакторов он не может быть больше #0F или мень- 
ше #03. Вообще-то  есть  два  cnoco6a, как узнать музон. Первый 
- сгрузить сектора отдельным файлом на другой диск и  загрузить 
его в какой-нибудь плейер, который может искать музыку в загру- 
женном блоке. Второй - откомпилировать (или не откомпилировать) 
левый  музон  в  соответствующем редакторе и  просмотреть   его 
в Докторе, чтобы понять его характерные oco6ehhoctu.            
                                                                
Что касается исходников,  то  их  легко можно узнать  по обилию 
меток, адресов и т.д. Сами команды найти вряд ли удастся,  т.к. 
они чаще всего кодируются одним байтом. У ALASM'а в самом нача- 
ле  исходника  стоят восемь байт имени файла и один байт расши- 
рения. У TASM'а версии 3.01 в конце исходника так  и  записано, 
что это ТАСМ Ьу Ost7 и так далее (не знаю, как в других  верси- 
ях).                                                            
                                                                
Вот и все. После восстановления оставшихся  файлов  скиньте  их 
на другой диск, отформатируйте оригинал и запишите их туда  за- 
                                                                
Вот и все. После восстановления оставшихся  файлов  скиньте  их 
на другой диск, отформатируйте оригинал и запишите их туда  за- 
ново. И не забудьте сделать копию нулевой дороги на 159-ом тре- 
ке и периодически ее обновлять. Ну а если диск все  же  убился, 
то - вперед, приобретайте опыт в восстановлении дисков. На один 
диск у меня уходит около полудня, при условии, что он  заполнен 
наполовину. Если сомневаетесь, к какому  типу принадлежит  файл 
(музон, исходник или еще что-нибудь), не поленитесь,   cгрузите 
файл из редактора или  ассемблера и сравните его c воccтанавли- 
ваемым. Удачи!                                                  
                                                                
Р.S. Если кто-нибудь не врубился в содержание статьи или просто 
не хочет париться c воccтанавливанием  диска  - несите  его  ко 
мне. Так уж и быть, восстановлю его Вам за энную сумму :).      
                                                                
Р.Р.S. Данная статья была написана в ночь c 16.03 по 17.03.2000 
года. Big tnanx for moral support  то:   Blackmour's Night  and 
Tiamat...                                                       
                                                                
                                                                
-[ Ьу DJ MAX/XTS/MDO ]----------------------------------------- 
                                                                
                  (=- Здесь был DJ MAX -=)                      
--------------------------------------------------------------- 
Hello, му friends. Здесь вы найдете цикл статей для  начинающих 
композеров.                                                     
                                                                
Самое главное, что необходимо для даного  творческого процесса, 
это конечно же музыкальный слух (не  путайте  c умением  петь), 
желание и немного фантазии.                                     
                                                                
Для начала следует выбрать удобный  для  себя  музыкальный  ре- 
дактор. На данный момент их превеликое множество: Sound Tracker 
KSA Tracker Рго, ASC  Sound  Master  или  просто  ASM, Рго Tra- 
cker'ы различной модификации, редакторы для  написания "оцифро- 
вок" (Digital Studio, Digital Music Maker, и другие). Существу- 
ют также четырех канальные редакторы, но для  начала будем  ис- 
пользовать треxканальные, к примеру: Рго Tracker, любой  версии 
(далее РТ).                                                     
                                                                
Итак, мы выбрали редактор. Теперь  займемся  инструментами. Во- 
первых, следует сказать, что при неумении "стряпать" uhctpymeh- 
ты, их можно позаимствовать из других музонов, удалив все  пат- 
терны.                                                          
                                                                
- WAONING -  Не удаляйте паттерны, используя опцию "Clear song" 
             т.к. cтерутьcя все инструменты вместе c паттернами 
                                                                
Инструменты можно разделить на тоновые, которые  в  зависимости 
от октавы могут звучать в басовой или основной партии;  ударные 
(басовые барабаны - "бочки", рабочие барабаны, xэты и тарелки); 
а также различные эффекты. B любом случае Sample - инструменты, 
а Image - эффекты. Их можно ucnpo6obatb на звучание. Для  этого 
необходимо поставить любую ноту в основном стане, а рядом,  где 
стоят 4 нолика, вместо первого ставить один из 16 сэмплов (1-F) 
Поэкспериментируйте, изменяя октаву и ставя различные ноты. Для 
получения различных эффектов надо вместо следующего нолика  по- 
ставить F, а на место третьего нолика любой из 16 имаджев (1-F) 
Поэкспериментируйте одни и те же имаджи c разными сэмплами.     
                                                                
Интересных эффектов можно добиться, оперируя c громкостью  (че- 
твертый нолик можно изменять на 16 разных уровней громкости  1- 
F, при чем F - самая большая громкость).                        
                                                                
- WAONING - Если в начале паттерна  заданы  сэмплы,  эффекты  и 
            громкость, то можно их не ставить для  каждой  ноты 
            т.к. по умолчанию принимаются все установки  преды- 
            дущих нот.                                          
                                                                
Кроме того, РТ имеет собственные комманды  устанавливаемые  для 
каждой позиции. Но о6 этом еще рановато.                        
                                                                
       +------орнамент (image)                                  
+------|+-----громкость                                         
|A-2 1F2F|                                                      
|... ....|                                                      
|Е#2 1FF.|                                                      
|    |+-------огибаюшая                                         
     +--------инструмент (sample)                               
                                                                
Итак, в чистый паттерн ставим в любой канал  инструмент,  эффект
и громкость в самой первой ноте; за тем попробуем  набить  любую
пришедшую на ум мелодийку, используя октавы от 3-ей и выше.  Пе-
реxодим в том же паттерне на соседний канал, в первую ноту уста-
навливаем еще один инструмент (обычно для  6aca  не используются
имаджи), громкость и используя октавы 1-ю и 2-ю,  пишем   какую-
нибудь подходящую басовую партию.                               
                                                                
С ударными инструментами сложнее. Здесь нужно придумать  ритм  и
точно рассчитать, в какой момент какой  ударник  должен звучать.
Далее выбираем ноту (по лучшему звуку для  каждого  ударника)  и
расставляем их в нужной последовательности на стане третьего ка-
нала вместе c указанием для каждой ноты инструмента.            
                                                                
По окончании можно выйти из режима редактирования  и  прослушать
полученную мелодию (Play Pattern).                              
                                                                
Написав несколько паттернов, можно задать алгоритм их следования
(т.е. для каждой позицаи указать свой паттерн, скорость звучания
пришедшую на ум мелодийку, используя октавы от 3-ей и выше.  Пе-
реxодим в том же паттерне на соседний канал, в первую ноту уста-
навливаем еще один инструмент (обычно для  6aca  не используются
имаджи), громкость и используя октавы 1-ю и 2-ю,  пишем   какую-
нибудь подходящую басовую партию.                               
                                                                
С ударными инструментами сложнее. Здесь нужно придумать  ритм  и
точно рассчитать, в какой момент какой  ударник  должен звучать.
Далее выбираем ноту (по лучшему звуку для  каждого  ударника)  и
расставляем их в нужной последовательности на стане третьего ка-
нала вместе c указанием для каждой ноты инструмента.            
                                                                
По окончании можно выйти из режима редактирования  и  прослушать
полученную мелодию (Play Pattern).                              
                                                                
Написав несколько паттернов, можно задать алгоритм их следования
(т.е. для каждой позицаи указать свой паттерн, скорость звучания
и зациклинноcть (loop).                                         
                                                                
                                          то Ье continued...    



Other articles:


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

Similar articles:
Reflections on - On the Establishment and Development Company Ltd. "Condor".
Mozzhechek - Unhealthy dreams: a humorous story involving characters from the Spectrum.

В этот день...   21 November