Реферат: Дисковая система IBM PC.

____________________________________________________________________

                          _@Содержание :

   _ Введение...................................................3

   _ Физическая организация хранения информации надискете ......3

_    Методы__ _ кодирования информации на дискете__..................._ 4

_    Физическая  структура  диска ...............................5

   _ Интерфейс адаптера НГМД....................................7

_    Логическая организация диска...............................7

_    Работа BIOS с НГМД.........................................9

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

_    Как__ _ увеличить скорость чтения дискет......................11

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

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

_    Использованная литература.................................14

                           _@Введение

   В настоящее время во всех вычислительных системахимеются  ус-

тройства внешней памяти, использующие для  накопления информации

гибкие и жесткие диски. Независимо от  типа  и  емкости,они  ис-

пользуют один и тот же принцип долговременного хранения информа-

ции в виде намагниченных  участков  поверхности накопителя.  При

движени мимо них считывающего устройства, в немвозбуждаются  им-

пульсы тока.

   Сначала ( в 1981 году ) IBM  PC  имели один-единственный  тип

внешней памяти — пятидюймовые односторонние гибкиемагнитные дис-

ки двойной плотности  с  програмной  разбивкой  секторовемкостью

150K. С тех пор IBM значительно  увеличила  емкость дисков,  был

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

однако физическая и логическая структура диска непритерпела зна-

чительных изменений.

_@       Физическая организация хранения информации надискете

   Гибкий диск имеет пластиковую основу с нанесенным нанее  маг-

нитным покрытием. В центре находится шпиндельноеотверстие, а на

некотором смещении от центра имеется  одно  индексное отверстие.

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

счета при счытывании или записи  данных. Гибкий  диск помещен  в

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

сное отверстие. Находящееся на внутренней  окружности магнитного

диска метализированное кольцо предназначено  для усиления  места

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

дотвратить нежелательную деформацию тонкого магнитногодиска.Кро-

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

писи с поверхностью диска и вырез защиты от записи.

  При записи информации на  магнитный  диск используется  потен-

циальный метод записи без возвращения к нулю. Запись поэтому ме-

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

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

нение направления тока записи вызывает переменумагнитного потока

в магнитной головке, что  приводит  к  изменению намагниченности

учаска носителя информаци, проходящего в это время под головкой.

В зависимости от  направления  вектора  намагниченности рабочего

слоя магнитного  носителя по отношению к направлениювектора ско-

рости перемещения носителя, различают  продольную, поперечную  и

перпендикулярную  намагниченность.  В   накопителях  IBM формата

( имеются в виду накопители 34 и 3740 фирмы  IBM  ) используется

только продольная намагниченность, поэтому в дальнейшемречь пой-

дет именно о ней.

   Процесс записи может быть представлен в виде следующихпереда-

точных звеньев:

   __i(t) -> F(t) -> H(x,y,z,t) -> M(l,y,z)

   Процесс воспроизведения:

   __M(l,y,z) -> Ф(t) -> e(t)

 Здесь

   __i(t)__ — ток в обмотке записи магнитной головки;

   __F(t)__ — магнитодвижущая сила магнитной головкизаписи;

   __H(x,y,z,t)__ — поле записи;

   __M(l,y,z)__ — остаточная намагниченность после воздействия  поля

   записи;

   __Ф(t)__ — магнитный поток в  сердечнике  магнитной головки  вос-

   произведения;

   __e(t)__ — электродвижущая сила, наводимая в обмоткемагнитной го-

   ловки воспроизведения;

   __x,y,z__ — пространственные координаты, связанные с головкой;

   __l=vt__ — координата, связанная с носителем записи;

   __v__ — скорость записи.

   Во время считывания на выходной обмотке головки воспроизведе-

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

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

ния намагниченности. Эти сигналы воспринимаютсяусилителем-форми-

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

пульсы считывания «единиц». Записи «нуля»  соответствует  отсут-

ствие импульсов в некоторые определенные моменты времени.

_@            Методы кодирования информации на дискете

   Для записи информации на  магнитные  носители применяют  спе-

циально разработанные модуляционные коды записи. Данныекоды раз-

рабатываются специалистами и должны обладать высокой информатив-

ностью и способностью с самосинхронизации.  Под информативностью

способа записи понимают количество записаннойинформации,  прихо-

дящийся на один период намагниченности.

   В накопителях 3740 ( IBM ) используется метод частотной моду-

ляции, а в накопителях 34 — метод модифицированнойчастотной  мо-

дуляции.

 _«Метод частотной модуляции

 Начало каждого элемента отмечается  тактовым  импульсом в  виде

смены направления намагниченности. Если элемент должен представ-

лять 1, то в его центральной части записывается еще один  такто-

вый импульс ( что бы создать изменение магнитного потока), а ес-

ли 0, то смены напрвления намагниченности не происходитвплоть до

начала следующего элемента. Таким образм, если  тактовая частота

равна F, то поток двоичных единиц дает частоту 2F.

  ┌┐  ┌┐  ┌┐  ┌┐ ┌┐  ┌┐  ┌┐  ┌┐

 ─┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└─── __тактовые импульсы

    ┌┐          ┌┐      ┌┐ ┌┐  ┌┐

 ───┘└──────────┘└──────┘└──┘└──┘└─ __данные

  __  1   0   0   1   0   1   1   1

  ┌┐┌┐┌┐  ┌┐ ┌┐┌┐┌┐  ┌┐┌┐┌┐┌┐┌┐┌┐

 ─┘└┘└┘└──┘└──┘└┘└┘└──┘└┘└┘└┘└┘└┘└──__сигналы записи

 _»Метод модифицированной частотной модуляции

 В этом методы 1 всегда представляется переходом намагниченности

в центре элемента. Переход вводиться в начале элемента,если это

0, а за ним НЕ следует 1. При том же  разнесении переходов  этот

метод позволяет записывать на единицу длины  в  два раза  больше

символов, чем метод частотной модуляции.

 ┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐

 ┘└┘└┘└┘└┘└┘└┘└┘└┘└─__тактовые импульсы

  ┌┐    ┌┐  ┌┐┌┐┌┐

 ─┘└────┘└──┘└┘└┘└──__данные

  __1 0 0 1 0 1 1 1

  ┌┐ ┌┐ ┌┐  ┌┐┌┐┌┐

 ─┘└─┘└─┘└──┘└┘└┘└──__сигналы записи

 При записи информации по методу модифицированнойчастотной моду-

ляции возникает так называемое смещение синхронизации.Это возни-

кает потому, что в общем случае при считывании информациис  дис-

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

Поэтому в зависимости от точки  отчета  одна  и  таже последова-

тельность импульсов может трактоваться по-разному.  Для устране-

ния этой в высшей мере неприятной неоднозначности на каждой  до-

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

дого поля 12 байт.  При  считывании  информации контроллер  НГМД

знает, что в них находятся  нули,  поэтому  трактует поступающие

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

раз подстраивая схему сепаратора данных.

 Помимо рассмотренных выше методов частотной  и модифицированной

частотной модуляции используется _ кодирование сограниченным  рас-

_ стоянием между периодами намагниченности__  (  RLL — кодирование ).

По сравнению с методом модифицированной частотноймодуляции об'ем

хранимой на диске информации увеличивается на 50%. МетодRLL  ос-

нован на записи с групповым кодированием. В  этом  методе каждый

байт поступающих данных разбивается на две тетрады, азатем  тет-

рада шифруется специальным 5-ти разрадным кодом,характерным тем,

что каждое число в нем содержит, по крайней мере,  одну перемену

направлении потока. При считывании  две  5-ти  разрядные тетрады

снова сливаются в байты.

_@                   Физическая структура диска

   Емкость диска зависит от характеристики дисковода иособеннос-

тей операционной системы;  однако  структура  диска,  всущноcти,

всегда одна и та же. Данные всегда записываются намагнитной  по-

верхности в виде концентрических окружностей, называемых дорож-

ками.Каждая дорожка, в свою очередь, состоит изнескольких секто-

ров, количество которых определяется при операцииформатирования.

Сектор является единицей хранения информации на дискете.Количес-

тво информации на диске, таким образом, зависит от числадорожек

( от плотности записи ) и общего размера секторов на каждой  до-

рожке. Старые модели дисководов работали с 40 дорожками,нынешние

модели — с 80, большинство современных дисководовпозволяют  фор-

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

   Для стандартных дискет IBM расположение каждой дорожкине  мо-

жет быть изменен, потому что это прежде всего зависит неот ОС  и

не от дискеты, а от конструктивных особенностейдисковода.Однако,

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

первоначальной разметке ( форматировании ) дискеты.Разметка осу-

ществляется либо ОС, либо используются функции BIOS.Хотя  MS-DOS

поддерживает размеры сектора дискет 128, 256, 512 и 1024  байта,

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

в ближайшее время не изменится ( если и измениться, то только  в

сторону увеличения ).

   Структура формата дорожки зависит от типа контроллера,но, как

правило, включает в себя байты синхронизации, указывающиена  на-

чало каждого сектора, идентификационные заголовки, cостоящие  из

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

нящего байты циклического контроля, предназначеные для обнаруже-

ния ошибок при считывании данных и служебной информации.На  сле-

дующем рисунке представлен формат дорожки для стандартаIMB 34.

   индекс

───┐ ┌───────────────────────────────────────────────────────────

   │ │

   └─┘

──┬────────┬───────┬──────┬──────────┬──∙∙──┬──────────┬─────────

  │ gap4a  │ index │ gap1 │sector 1 │      │ sector n │ gap4b

──┴────────┼───────┼──────┼──────────┼──∙∙──┴──────────┴─────────

      ┌────┘       └───┐ │          │

      ├───────┬────────┤ │          │

      │ sync  │  IAM   │  │         │

      └───────┴────────┘ │          │

                   ┌──────┘         └───┐

                   ├────────┬────────────┤

                   │ header │ data field │

                   ├────────┴────────────┤

  ┌────────────────┘                    └──────────────────────┐

  ├─────┬─────┬─┬─┬─┬─┬────┬──────┬─────┬─────┬──────┬────┬─────┤

  │ sync│ SAM │c│h│r│n│crc│ gap2 │ sync│ DAM │ data │ crc│ gap3│

  └─────┴─────┴─┴─┴─┴─┴────┴──────┴─────┴─────┴──────┴────┴─────┘

 На приведенной выше схеме :

 ┌────────┬──────────────────────────────────┬───────────┬──────┐

 │ Обозн. │ Назначение поля                  │Содержимое│ Длина│

 ├────────┼──────────────────────────────────┼───────────┼──────┤

 │ GAP4A  │ Предындексный зазор дорожки      │  4E      │  50  │

 │ SYNC   │ Поле синхронизации               │  00      │  0C  │

 │ IAM    │ Адресный маркер начала дорожки─┬─┼──C2*     │  3   │

 │        │                                └─┼──FC      │  1   │

 │ SAM    │ Маркер начала сектора──────────┬─┼──A1      │  3   │

 │        │                                └─┼──FE      │  1   │

 │ C      │ Номер цилиндра                   │  --      │  1   │

 │ Н      │ Номер головки                    │  --      │  1   │

 │ R      │ Номер сектора                    │  --      │  1   │

 │ N      │ Код размера сектора              │  --      │  1   │

 │ CRC    │ Контрольный код                  │  --      │  2   │

 │ GAP2   │ Зазор заголовка сектора          │  4E      │ 16   │

 │ DAM    │ Маркер начала данных───────────┬─┼──A1      │  3   │

 │        │                                └─┼──FB      │  1   │

 │ GAP3   │ Зазоp области данных             │  4E      │ 50   │

 │ data   │ Данные                           │  --      │ **   │

 │ GAP4B  │ Зазор дорожки                    │  4E      │ ***  │

 └────────┴──────────────────────────────────┴───────────┴──────┘

 *   — _^^&Данные поля записываются со специальнонарушенными битами

       _^^&синхронизации.

 **  — _^^&Длина данных определяется по формуле128*2^N, где N — код

       _^^&длины из заголовка сектора: от 0 (128б) до7 (16384б).

 *** — _^^&Длина определяется оставшимся расстояниемдо индексного от-

       _^^&верстия и зависит только от скоростивращения дисковода  в

       _^^&момент форматирования.

   Поля GAP1..GAP4 служат прежде всего для  организации задержки

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

бросов физической длины различных полей, возникающихиз-за  несо-

вершенства механизма дисковода ( конкретнее, из-за нестабильнос-

ти вращения ). Маркеры служат для выделения определенных  облас-

тей на диске: идентификатора дорожки, заголовка сектора или  об-

ласти данных. Для того что бы маркеры можно было отличитьот дан-

нных, их записывают со специально нарушенным кодомсинхронизации.

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

кретно в маркере области данных значение fb соответствует  обыч-

ным данным, а f8 — удаленным.

   Целостность информации в областях данныхконтролируется с  по-

мощью циклического контрольного кода, контрольные числа которого

записываются после определенных областей. При считываниис диске-

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

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

называемая _ кодом циклического контороля __( CRC — Cyrcle Redundency

Contol ), подсчитывается с помощью полинома следующеговида :

                X__16__ + X__12__ + X__5__ + X + 1

В  случае  несовпадении этих двух чисел выставляется флагошибки.

_@                     Интерфейс адаптера НГМД

  Функции сигналов адаптера НГМД следующие:

 ┌─────────────┬─────────────────────────────────────────────────┐

 │Наименование │ Выполняемая функция                            │

 ├─────────────┼─────────────────────────────────────────────────┤

 │High/Normal  │ Используется дляпереключения схем записи/чтения│

 │             │  для работы с нормальной ивысокой плотностью   │

 │Index        │ Перепад напряжения свысокого уровня на низкий  │

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

 │Select       │ Выбор накопителя (присутствует постоянно )     │

 │Mot          │ Включение моторадисковода                      │

 │Direction    │ Направление перемешенияголовок при сигнале Step│

 │             │  низкий уровень — к центрудискеты;             │

 │             │  высокий уровень — к краюдискеты;              │

 │Step         │ Перемещеие головок на однудорожку              │

 │Write data   │ Запись информации, каждыйимпульс вызывает      │

 │             │  изменение магнитного потокана обратный        │

 │Write gate   │ Разрешение записиинформации                    │

 │Track 0      │ Перемещене головок к началудискеты             │

 │Write        │ Запрет записи на дискеты (сигнал появляется при│

 │   protected │  присутствии дискеты сзащитной наклейкой )     │

 │Read data    │ Перепад напряжения свысокого уровня на низкий  │

 │             │  соответствуют обнаружениюна дискете перехода  │

 │             │ намагниченности.                               │

 │Select head  │ Выбор головки длячтения/записи                 │

 │             │  низкий уровень — головка1;                    │

 │             │  высокий уровень — головка0;                   │

 │Ready        │ Дискета готова кработе                         │

 │Disk change  │ Вставлена новаядискета                         │

 └─────────────┴─────────────────────────────────────────────────┘

 Полярность всех сигналов интерфейса (кроме тех, гдеуказано иное)

 отрицательная. Сигналы Disk change и High/Normal в IBMPC/XT  не

 используются.

_@                  Логическая организация диска

  Первая операция, которую необходимо выполнить  перед тем,  как

дискета будет готова к использованию — это форматирование.  Этот

процесс позволяет придать диску его  окончательную структуру.  В

ходе форматирования определяется количество дорожек ичисло  сек-

торов на дорожке.

  MS-DOS предусматривает четыре логических областидискеты:

  — _ загрузочный сектор ( boot record )

  — _ таблица размещения файлов ( file allocation table )

  — _ корневой каталог

  — _ область данных

 _«Загрузочный сектор

 Содержит короткую ( менее 512 байт ) программу начальнойзагруз-

ки ОС в память компьютера. Независимо от типа ОС испособа форма-

тирования дискеты, эта программа  _ всегда__  занимает самый  первый

сектор на самом первой  дорожке  диска.  Следует  различать  _ Boot

_ record __и _Master__ _ Boot record. __Первый находится на дискеты  в  слу-

чае если эта дискета не системная. Второй же  находится исключи-

тельно на системных дисках. Также этот сектор содержит всю  важ-

ную информацию о характеристиках диска. Структура этойинформации

следующая :

┌────────┬─────────────────┬────┬─────────────────────────────────┐

│Cмещение│ Название        │байт│ Описание                       │

├────────┼─────────────────┼────┼─────────────────────────────────┤

│  00    │ Команда JMP     │ 3  │ Длинный или короткий переход   │

│        │                 │    │  на программу загрузчика       │

│  03    │ Идентификатор   │ 8  │ Идентификатор версии DOS,      │

│        │                 │    │  с помощью которой отформа-    │

│        │                 │    │  тирован диск                  │

│  0B    │ Байт/Сектор     │ 2  │ Размер сектора в байтах        │

│  0D    │ Сектор/Кластер  │ 1  │ Число секторов в кластере      │

│  0E (*)│ Резерв          │ 2  │ Количество резервных секторов  │

│  10    │ Число FAT       │ 1  │ Число копий FAT на диске       │

│  11    │ Число корневых  │ 2  │ Max количество записей в       │

│        │ записей         │    │  корневом каталоге диска       │

│  13(**)│ Всего секторов  │ 2  │ Общее число секторов на диске  │

│  15    │ Носитель        │ 1  │ Тип магнитного носителя        │

│  16    │ Сектор/FAT      │ 2  │ Число секторов в каждой из FAT │

│  18    │ Сектор/дорожка  │ 2  │ Число секторов на одну дорожку │

│  1A    │ Число головок   │ 2  │ Число головок на диске         │

│  1С    │ Скрытых секторов│ 4  │ Число скрытых секторов на диске│

│  20    │ Боьших секторов │ 4  │ Общее число секторов           │

│  22    │ Номер накопителя│ 1  │ Номер накопителя по BIOS'у     │

│  23    │                 │ 1  │ Резерв                         │

│  24    │ Сигнатура       │ 1  │ Содержит число 29              │

│  25    │ ID тома         │ 4  │ Идентификатор тома диска       │

│  29    │ Метка тома      │ 11 │ Копия метки тома               │

│  34    │ ID типа FAT     │ 8  │ FAT12 или FAT16 -байт          │

└────────┴─────────────────┴────┴─────────────────────────────────┘

 (*) — _^^&для формата IBM PC длина зарезервированнойобласти  всегда

       __составляет 1 сектор ( сектор загрузчика )

 (**)- _^^&если более 65535 то 0

 _»Таблица размещения файлов ( FAT )

 Содержит информацию о месторасположении  записанных  на дискету

файлов. Системa MS-DOS выделяет для хранения файла, в зависимос-

ти от его длины, один или  более  кластеров  (  кластер — единица

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

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

ходила последовательно ( скорее наоборот: логика работы  MS-DOS

такова, что она всячески способствует фрагментации файлов), поэ-

тому необходимо хранить информацию,  по  каким  именно кластерам

раскидан данный файл. В силу особой важности этойинформации  FAT

существует на диске в двух копиях. FAT дискеты состоитиз  12-би-

товых элементов. Структура таблицы размещения файлов — следующая:

 ┌─────────────┬───────────────────────────────────────────┐

 │ Элемент FAT │ Выполняемаяфункция                       │

 ├─────────────┼───────────────────────────────────────────┤

 │    0        │ Идентификаторформата                     │

 │    1        │ Зарезервирован ( должен бытьFFF )        │

 │    2        │ Статус кластера2                         │

 │    3        │ Статус кластера3                         │

 │   ...       │...                                       │

 └─────────────┴───────────────────────────────────────────┘

  Идентификатор формата может принимать

  следующие значения :

  F0 — 3'5/2/18 ( дискета 3'5, 2 стороны, 18 секторов )

  F8 — жесткий диск

  F9 — 5'25/2/15 или 3'5/2/9

  FC — 5'25/1/9

  FD — 5'25/2/9

  FE — 5'25/1/8

  FF — 5'25/2/8

 Статус кластера может бытьследующим :

  000 — кластер свободен

  FF0..FF6 — зарезервирован

  FF7 — испорчен

  FF8...FFF — последний кластер

  иначе — номер следующего кластера файла

 Интересно заметить, что, по-видимому, значение статуса 001  яв-

ляется запрещенной комбинацей.

 _«Корневой каталог

  Следует непосредственно за FAT. Содержит информацию об  основ-

ных параметрах файлов ( длине, дате создания,...).Каждая  запись

в каталоге, соответствуeт тому или иному файлу ( кроме,разумеет-

ся, метки диска ), включает номер первого кластера, назначенного

MS-DOS этому файлу, который используется как точка входа в  FAT.

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

щего кластера, распеределенного под этот файл, или метку послед-

него кластера. Структура записи в корневом каталогеследующая :

 ┌─────────┬───────────┬───────────────────────────────────┐

 │Cмещение │ Название  │Описание                          │

 ├─────────┼───────────┼───────────────────────────────────┤

 │  00     │ Имя       │ Имяфайла                         │

 │         │           │  0 если записьсвободна           │

 │         │           │ E5 если файлудален               │

 │         │           │ 2E записьродительского каталога  │

 │  08     │ Расширение│                                   │

 │  0B     │ Атрибуты  │ Системныйатрибут файла           │

 │  0C     │           │Резерв                            │

 │  16     │ Время     │ Времяпоследней перезаписи файла  │

 │  18     │ Дата      │ Дата последнейперезаписи файла   │

 │  1A     │ Кластер   │ Номер первогоотведенного кластера│

 │  1C     │ Размер    │ Размер файла (4 байта )          │

 └─────────┴───────────┴───────────────────────────────────┘

 _»Область  данных

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

храниться информация пользователя. MS-DOS рассматриваетэту  об-

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

или несколько секторов. Из-за того что первые два поляFAT  заре-

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

Все каталоги, кроме корневого, также раасматриваются MS-DOS  как

файлы особого вида, и поэтому помещаются в областьданных.

                    _@Работа BIOS с НГМД

  Програмное управление дискетой ( точнее говоря,адаптером НГМД)

осуществляется с помощью драйвера BIOS,  вызов  которого осущес-

твляется через прерывание int 13. Методика вызоваконкретных фун-

кций стандартна, то есть номер  функции  загружается  в ah,  ос-

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

совки буферов так же используется регистровая пара es:bx.

   Всего стандартный драйвер поддерживает 6 функцийработы с НГМД

с номерами от 0 до 5. Перечислим их в порядке возрастания:

   _ 0__ _ -__ _ Сброс системы НГМД  __ __     _ 3__ _-__ _ Записать сектор

   _ 1__ _ -__ _ Прочитать состояние __ __     _ 4__ _-__ _ Проверить сектор

   _ 2__ _ -__ _ Прочитать сектор    __ __     _ 5__ _-__ _ Разметка дорожки

   Все функции выполняются,  согласовываясь  с  базовой дисковой

таблицей, на которую указывает вектор  1e.  Разумеется пользова-

тель может модифицировать этот вектор и создать своютаблицу. При

загрузке ОС BIOS инициализирует ее,  а  DOS модифицирует,  чтобы

улучшить производительность дискет. Структура этой таблицы  сле-

дующая ( везде, где не сказано иное, время указывается в квантах

системного таймера ).

┌────┬───────────────────────────────────────────────────────────┐

│Смещ│Содержимое                                                │

├────┼───────────────────────────────────────────────────────────┤

│ 0  │ биты 4-7: время перехода с дорожки надорожку ( в млс )   │

│    │ биты 0-3: время под'ема головки послечтения/записи       │

│ 1  │ бит 0: 1= исп.DMA, 0= DMA неиспользуется                │

│    │ биты 2-7: время опусканияголовок                         │

│ 2  │ время не остановки двигателя послеокончания чтения/записи│

│ 3  │ размер сектора (0=128, 1=256, 2=512,3=1024)              │

│ 4  │ номер последнего сектора надорожке                       │

│ 5  │ длина межсекторного промежутка дляопераций чтения/записи │

│ 6  │ Максимальная длина передаваемыхданных                    │

│ 7  │ длина межсекторного промежутка дляоперации форматирования│

│ 8  │ символ-заполнитель для форматирования( обычно  f6 )      │

│ 9  │ время позиционированияголовок                            │

│ a  │ время разгона мотора (в 1/8-секундныхинтервалах)         │

└────┴───────────────────────────────────────────────────────────┘

 Также в BIOS Data Segment содержатся следующие  параметрыНГМД:

 _ 0:043e__ требуется рекалибрация флоппи-дисковода

 _       __  (бит 0=A, бит 1=B, etc.)

 _ 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 считать его сбойным, а затем  при  запуске программы

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

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

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

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

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

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

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

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

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

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

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

мации, что бы не оказаться жертвой предыдушего способа.

 _»Нестандартная плотность записи

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

контроллером и скоростью вращения дискеты. Скоростьвращения дис-

ковода на стандартном IBM PC изменить невозможно, ноесли  немно-

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

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

нестандартной плотностью информации, записанной на каждойдорожке.

Вполне возможно  также  изменять  метод  записи информации,  ис-

пользуя попеременно частотную и модиф. частотную модуляцию.

 _«Измерение межсекторных промежутков

 Размер поля GAP3 определяется при операцииформатирования и  мо-

жет изменяться в значительных пределах без измененияколичества и

размеров сектора на дорожке. Вычисления можно производитьна  ос-

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

мандами контроллера НГМД „Чтение идентификаторасектора“. Однако,

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

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

начно трактуемые результаты.

_@                   Использованная литература

_@ __1. P.Norton „Programmer'sguide to the IBM PC“

    — Microsoft Press 1985

 2. С.Х.Гореликов „IBM PC.Дисковая подсистема:контроллеры, нако-

    пители и их обслуживание“  — М, Звезды и С, 1992

 3. Л.В.Букчин, Ю.Л.Безрукий „Дисковая  подсистема IBM-совмести-

    мых персональных компьютеров“ — М, Press-Media,1993

 4. TECH Help!, Flambeaux Software, DanRollins

 5. Описание FFORMAT v2.97

 6. Р.Данкан „Профессиональная работа в MS-DOS“

    — М, Мир, 1993

 7. Толковый словарь по вычислительным системам / подредакцией

    В.Иллингуорта и др. — М, Машиностроение, 1989

 8. А.Щербаков „Защита от копирования“, М,Эдель, 1992

 __(c) Copyright by (cs) BREDcorp.1995                         v1.3

__ (c) Used text editor Word&Deedv7.0 by A.Gutnikov

__ (c) Printed by Epson(tm) LQ-100 style'Presti__ge'

__ (c) Corrected by (Dreago)

________2_

_;_

_____________A____*.FRM_________________________________________*.MAC______________________________________________________________E___А═╠╠╠L__                    _

еще рефераты
Еще работы по кибернетике