-[ Ьу 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: