Смекни!
smekni.com

Дисковая система IBM PC. (стр. 4 из 5)

_ 0:043f__ мотор дискеты включен (бит 0=drive A, бит 1=B, etc.)

_ 0:0440__ время до выкл. мотора. Если 0, то мотор выключается

_ 0:0441__ код ошибки дискеты (то же, что возвращается по int 13 )

_ 0:0442__ область информации состояния контроллера дискет (7байт)

_@ Некоторые форматы дисков, принятые в MS-DOS

Начиная с MS-DOS v2.0 возможна запись/чтение практически лю-

бых физических форматов дискет. Эта возможность осуществляется

использованием механизмом загружаемых драйверов устройств. Появ-

ление в последнее время расширенных версий BIOS'a практически уп-

разнило понятие "стандартный формат", теперь стандартным можно

считать практически любой формат, который сответствует специфика-

ции MS-DOS.

Вообще, появление новых форматов тесно связано с историей раз-

вития DOS. Первоначальная версия MS-DOS v1.0 поддерживала только

формат, обозначенный ниже как (1.0) следующая версия 1.1 добави-

ла (1.1), а версия 2.0 - (2.0). Короче говоря, почти каждая вер-

сия DOS приносила что-то новое. Все, что из этого вышло, пред-

ставлено ниже.

Возможные варианты форматов в зависимости от типа дисковода:

_ 360 Кб дисковод

(1) 160 Kb 40 дорожек 8 секторов 1 сторона

180 Kb 40 дорожек 9 секторов 1 сторона

200 Kb 40 дорожек 10 секторов 1 сторона

(1.1) 320 Kb 40 дорожек 8 секторов

(2.0) 360 Kb 40 дорожек 9 секторов

400 Kb 40 дорожек 10 секторов

420 Kb 42 дорожки 10 секторов

430 Kb 43 дорожки 10 секторов

_ 720 Кб дисковод (3'5" и 5'25")

720 Kb 80 дорожек 9 секторов

747 Kb 83 дорожки 9 секторов

800 Kb 80 дорожек 10 секторов

820 Kb 82 дорожки 10 секторов

830 Kb 83 дорожки 10 секторов

_ 1.2 Мб дисковод

180 Kb 40 дорожек 9 секторов 1 сторона

200 Kb 40 дорожек 10 секторов 1 сторона

320 Kb 40 дорожек 8 секторов

360 Kb 40 дорожек 9 секторов

400 Kb 40 дорожек 10 секторов

420 Kb 42 дорожки 10 секторов

430 Kb 43 дорожки 10 секторов

720 Kb 80 дорожек 9 секторов

747 Kb 83 дорожки 9 секторов

800 Kb 80 дорожек 10 секторов

820 Kb 82 дорожки 10 секторов

830 Kb 83 дорожки 10 секторов

1.2 Mb 80 дорожек 15 секторов

1.36 Mb 80 дорожек 17 секторов

1.39 Mb 82 дорожки 17 секторов

1.41 Mb 83 дорожки 17 секторов

1.44 Mb 80 дорожек 18 секторов

1.47 Mb 82 дорожки 18 секторов

1.49 Mb 83 дорожки 18 секторов

_ 1.44 Мб дисковод

720 Kb 80 дорожек 9 секторов

800 Kb 80 дорожек 10 секторов

820 Kb 82 дорожки 10 секторов

830 Kb 83 дорожки 10 секторов

1.44 Mb 80 дорожек 18 секторов

1.52 Mb 80 дорожек 19 секторов

1.60 Mb 80 дорожек 20 секторов

1.64 Mb 82 дорожки 20 секторов

1.68 Mb 83 дорожки 20 секторов

1.68 Mb 80 дорожек 21 сектор

1.72 Mb 82 дорожки 21 сектор

1.74 Mb 83 дорожки 21 сектор

_ Скорости передачи данных :

Дисковод

360-720 5'25" - 300 Кбит

720 3'5" - 250 Кбит

1.2 5'25" - 300 Кбит (DD) 500 Кбит (HD)

1.44 3'5" - 250 Кбит (DD) 500 Кбит (HD)

2.88 3'5" - ??? (вероятно 1000 Кбит)

Дисковод 1.44 Мб вообще интересен тем, что при той же скорости

передачи данных обеспечивает гораздо более высокую плотность за-

писи, чем дисковод 1.2 Мб. По этой причине при форматировании на

720-800 Кб скорость передачи ниже.

_` _@Как увеличить скорость чтения дискет

Оказывается возможно форматировать диски так, что скорость об-

ращения к дискете увеличивается в полтора раза (а в ряде случаев

и больше). Суть состоит в следующем: когда дисковод перемещает

головку с дорожки на дорожку после чтения/записи при обычном рас-

положении секторов, первый сектор успевает "ускользнуть" от го-

ловки и приходится ждать еще целый оборот диска, чтобы прочитать

его. Замечено, что если на каждой последующей дорожке "сдвинуть"

первый сектор на три сектора, то при перемещении головки он счи-

тывается сразу - что и является причиной увеличения производи-

тельности.

_@О восстановлении дискет

_@ __Продолжитиельность жизни гибких дисков обычно около трех лет.

Хотя чисто теоретически правильно эксплуатируемый диск выдержи-

вает 70 миллионов проходов по одной дорожке, что составляет бо-

лее 20 лет непрерывной работы. Однако, все это относится к

идеальным условиям эксплуатации, но где вы их видели ?! Дискеты

зачастую лежат без конвертов на пыльной поверхности, их сгибают,

на них пишут, их обкуривают "Беломором", наконец. Кто же это вы-

держит ? И в итоге даже самые хорошие импортные диски начинают

сыпаться.

При обнаружении повреждения 0 дорожки на дискете ни одна прог-

рамма не форматирует такую дискету. На западе такие дискеты, воз-

можно, просто выбрасывают. Для нас такой подход не приемлем. Дис-

кеты стоят достаточно дорого и выбрасывать деньги на ветер не в

моих правилах.

Один из способов получения работоспособных дискет был предло-

жен Панковым (автором PU_1700): нулевая дорожка перемещалась в

середину дискеты. Достаточно оригинальный способ, однако имеет

недостатки:

1) Необходимость постоянно держать в памяти PU_1700

2) Невозможно прочитать обычную дискету без переустановки

PU_1700 - что крайне неудобно на машине с 1 дисководом

Достоинством является то, что этот способ работает с любым

форматом даже при полном отсутствии 0 дорожки дискеты.

Однако, возможен и другой метод.

Обычно на 0 дорожке, а равно как и на других дорожках

дискеты, в силу различных причин (в основном механическое

повреждение), пропадает читабельность одного или двух сектора.

Дискета форматируется так, что поврежденная часть поверхности

просто не используется. У метода есть недостаток: невозможно

восстановить более одного сектора на дорожке (360-720 Кб) или

двух (1.2-1.44 Мб), однако выбирайте: дискета с поврежденной 0

дорожкой на 800 Кб или абсолютно нормальная на 720 Кб ?

_@ Методы защиты от копирования

По сути дела, проблема защиты от копирования - это прежде все-

го проблема идентификации дистрибутивного носителя. Поэтому зна-

ние некоторых особенностей организации хранения информации на

дискете делает возможным указание некоторых методов идентифика-

ции, которые программист может использовать для защиты своего ПО.

Изложим их в порядке возрастания сложности.

_"Использование собственного формата

Возможны три варианта использования этого метода :

1) Часть дорожек на дискете, кроме тех, где размещаются систем-

ные области ОС, форматируется нестандартным способом. Доста-

точно написать собственный драйвер работы с этим нестандар-

тным форматом и сделать так, что бы он заменял стандартный

обработчик int 13 после загрузки с данной дискеты и дискета

становиться нечитаемой с помощью ОС. И, следовательно, скопи-

ровать ее стандартным образом также невозможно.

2) Возможно также отформатировать только одну дорожку на диске-

те и разместить там некоторую ключевую информацию, а затем

после запуска программы, проверять наличие этой информации.

3) Как вариант возможно вообще не форматировать одну из дорожек

где-нибудь в середине дискеты,за которой располагается неко-

торая информация ( записанная в стандартном формате ). При

копировании стандартной утилитой ОС эта дискета также не бу-

дет скопирована полностью.

_"Введение дополнительных секторов

Открытое использование собственного формата равноценно установ-

ке железной двери в ранее неприметном доме - видно, что его хо-

зяевам есть что прятать и видно, где это спрятано. Но можно впол-

не успешно имитировать стандартный формат, с вынесением меток за

стандартные поля копирования. Самый очевидный способ - введение

дополнительного сектора на дорожке, в котором храниться ключевая

информация. В данном случае сам факт наличия этого сектора яв-

ляется достаточным основанем, что бы считать диск дистрибутивным.

_"Использование дополнительных (инженерных) дорожек

На любой дискете, отформатированной стандартным образом за пос-

ледней дорожкой _ всегда __остается некоторое пространство, которое

можно использовать для хранения ключевой информации. Разумеется

никто не мешает отформатировать эти дорожки нестандартным образом.

_"Использование промежуточных цилиндров

Широко известен тот факт, что при форматировании дискеты на 360К

на дисководе на 1.2М головки дисковода перемещаются не на одну, а

на две дорожки, поэтому нечетные дорожки остаются не использован-

ными. На этих дорожках вполне можно разместить весь код програм-

мы, оставив "видимым" только небольшой загрузчик.

_"Нестандартное чередование секторов

Система MS-DOS ориентирована исключительно на стандартные форма-

ты, которые характеризуются, в частности, строго последова-

тельным возрастанием номеров секторов на дорожке. Поэтому если

изменить порядок следования секторов, то при создании копии DOS

изменит их номера на "правильный порядок". Проверку же легко ор-

ганизовать, замеряя временные интервалы между чтениями секторов с

определенными номерами.

_"Создание псевдосбойных секторов

Когда MS-DOS встречает сбойный сектор ( а с точки зрения MS-DOS,

сбойным является сектор с неправильной контрольной суммой ), то

она игнорирует его содержимое и просто не копирует его, таким об-

разом данные, которые находились в сбойном секторе не попадут на

копию, хотя сигнал несовпадения контрольных сумм вовсе не запре-

щает доступа к данным, а лишь предупреждает об ошибке. Следова-

тельно, достаточно записать ключевую информацию в сектор, заста-

вить MS-DOS считать его сбойным, а затем при запуске программы

проводить чтение этого сектора, игнорируя сообщение об ошибке и

проверять его содержимое. Создать же псевдосбойный сектор не

очень сложно, для этого необходимо провести операцию сброса кон-

троллера НГМД после после того, как на дискету записано необходи-

мое количество данных.

_"Разрушение поверхности дискеты

В отличие от предыдушего метода предлагается создавать в задан-

ном количестве секторов "самые настоящие" сбойные сектора, напри-