

        Copyright (C) MTC Medincom 1991 - 1995. All Rights Reserved.


               Floppy Disk Analyser 6.1 Professional Release (FDA)

      ╔════════════════════════════════════════════════════════════════╗
      ║ Внимание: FDA работает только на PC/AT! FDA не использует BIOS ║
      ║ и оперирует непосредственно с аппаратурой в реальном  времени, ║
      ║ поэтому не совместим с Windows и работает только в среде  DOS. ║
      ║ Перед началом работы с FDA обязательно произведите  калибровку ║
      ║ всех имеющихся дисководов!                                     ║
      ║ Всегда работайте на максимально возможной скорости (Turbo)!    ║
      ╚════════════════════════════════════════════════════════════════╝

                                I. Общие сведения

        FDA 6.1 предназначен для:
        - анализа и точного  копирования гибких магнитных дисков (дискет)
     всех  типов,  в  том  числе  защищенных  от  копирования.  При  этом
     копируются защищенные дискеты,  записанные не  только на  IBM PC, но
     также на Синклере, Поиске, ДВК и др.;
        - самостоятельного создания  систем защиты  дискет от копирования
     любого уровня  сложности, быстрого  тиражирования защищенных дискет,
     причем для  всех  типов  компьютеров,  а  не  только  для  IBM  PC -
     совместимых;
        -  быстрого  и  весьма  качественного  форматирования  всех типов
     дискет на любой формат, в том числе нестандартный.
        FDA  6.1  предназначен  для  работы  на  любых  PC/AT совместимых
     компьютерах, но не может работать на XT.
        FDA  6.1   является   необычайно  мощным   средством  копирования
     защищенных дискет,  его возможности  ограничены только возможностями
     контроллера дисковода,  а уровень  встроенной системы искусственного
     интеллекта соответствует профессионалу высокого класса.
        FDA  6.1  способен   копировать  абсолютно   все  существующие  в
     настоящее время системы программной  защиты дискет, включая лазерные
     метки. При  этом большинство  известных  систем защиты  копируются в
     полностью  автоматическом   режиме.   Создание   надежно  работающей
     программной защиты  дискет  от копирования,  способной противостоять
     FDA 6.1 практически невозможно.
        FDA  6.1   имеет  встроенный   командный  язык  программирования,
     позволяющий пользователю не только воспроизводить существующие, но и
     самостоятельно конструировать  защищенные  от копирования  дискеты с
     любым  уровнем  защиты.   При  этом  защищенная   дискета  вместе  с
     записанной на ней  информацией создается одной  операцией, что очень
     удобно для массового тиражирования.
        Оформление   и    пользовательский   интерфейс    FDA   полностью
     соответствуют  мировым  стандартам  и  аналогичны  Norton Utilities,
     имеется подробный русскоязычный Help.
        FDA  подробно  анализирует  дискеты,  выявляя  любые  особенности
     формата, такие,  как  дорожки  с разной  и  нестандартной плотностью
     записи на одной  дискете, скрытые секторы,  секторы без зоны данных,
     секторы  разной  длины  на  одной  дорожке,  секторы,  записанные  с
     каскадным затиранием,  многократное  форматирование одной  дорожки с
     прерываниями операций форматирования, подмену идентификатора сектора
     путем  "короткого"   форматирования,  манипуляции   с  межсекторными
     промежутками и другие  "хитрости", и абсолютно  точно, с соблюдением
     взаимного расположения секторов на  дорожках, копирует все известные
     системы  защиты  от   копирования.  При   этом  FDA   6.1  по  своим
     возможностям  несравнимо   превосходит   CopyWrite,   Copy   II  PC,
     CopyMaster и  все другие  существующие  в настоящее  время программы
     аналогичного назначения,  включая предыдущие  версии FDA  5.x. Кроме
     того, FDA 5.0 и более  поздние версии содержат непрерывно улучшаемую
     систему   искусственного   интеллекта,   способную   путем   анализа
     восстановить исходную  последовательность операций  форматирования и
     записи, использованную  при создании  защищенной дискеты.  Здесь FDA
     6.1 вплотную  подходит  к  теоретическому  пределу  возможностей при
     использовании DOS и только 640 Kбайт основной памяти.
        FDA 6.1 рассчитан на три основных группы пользователей:
        1. Неподготовленный  пользователь.  Все параметры  установлены по
     умолчанию,   работа   только   в   автоматическом   режиме.  Никаких
     специальных знаний не требуется,  пункт "Track Operations" основного
     меню не  используется.  При  этом  возможно  копирование большинства
     защищенных дискет.
        2.   Подготовленный   пользователь.   Корректирование  параметров
     начальной  установки   в   соответствии  с   качеством  используемых
     дисководов, активное  использование  "Compress  Track"  с изменением
     опций.  Требуется  понимание  формата  записи  на  дискету, строения
     дорожки и  сектора,  принципов  защиты  от  копирования. Достаточная
     информация  имеется  в   Приложении  (файл  APPENDIX.TXT).  Возможно
     копирование практически  всех  защищенных  дискет  и  абсолютно всех
     ключевых меток.
        3.    Профессионал    (хакер).    Освоение    внутреннего   языка
     программирования FDA,  корректирование  и  самостоятельное написание
     Track Write  Sequence, умение  расшифровывать Full  Track Image File
     при сбитой синхронизации.  Требуется хорошее  знание принципа работы
     контроллера гибкого  диска,  строения  дорожек  и  секторов, приемов
     создания   ключевых   меток.   Достаточная   информация   имеется  в
     Приложении,   но   потребуется   практический   навык.   Открываются
     безграничные   возможности    не    только    копирования,    но   и
     самостоятельного создания бесконечного разнообразия ключевых меток и
     защищенных  дискет  в  целом.  Это  уже  творческий  процесс,  и FDA
     является необходимым и незаменимым инструментом.

              II. Работа с программой FDA 6.1 Professional Release

        После запуска  FDA  на  экране  появляется  основное  меню  из 10
     пунктов,  при  этом  выполнимые  в  данное  время  (Enabled)  пункты
     изображены белым по синему  (или черным по  синему, в зависимости от
     начальной установки),  а невыполнимые  (Disabled) -  серым по синему
     (ярким синим по голубому).  Как только выполнение ранее невыполнимых
     пунктов меню станет  возможным, они будут  изображены белым (черным)
     цветом.  Для  перемещения  указателя   по  полю  меню  между  окнами
     используйте мышь  или клавиши  "Tab" и  "Shift+Tab", для перемещений
     внутри окон  пользуйтесь  стрелками  "вверх"  и  "вниз",  или мышью.
     Установка точки в круглых скобках  или крестика в квадратных скобках
     производится нажатием клавиши "пробел" или кнопкой мыши. Перемещение
     указателя между маленькими окошками внизу (исполнительными кнопками,
     или buttons) производится стрелками "вправо" и "влево" (или мышью).
        Для выполнения  любого из  пунктов  меню, поместите  указатель на
     требуемый пункт и  нажмите "Enter". При  этом указатель переместится
     на кнопку "Proceed",  после чего  для исполнения  нажмите "Enter", а
     для выхода из  FDA переместите  указатель вправо на  кнопку "Quit" и
     опять же  нажмите  "Enter".  Эти  действия  удобнее  производить при
     помощи мыши,  установив  ее  указатель в  соответствующую  позицию и
     нажав левую  клавишу один  раз для  выбора требуемого  пункта меню и
     быстро дважды  для  исполнения  выбранного  пункта.  Оформление поля
     экрана,  назначение  клавиш  управления  и  позиций  указателя  мыши
     стандартное, общепринятое во всем мире для текстовых меню.
        В правой  половине основного  меню  приводится краткая  справка о
     технических    характеристиках     установленных     дисководов    и
     поддерживаемых ими плотностях записи (Recording Density).
        Внимание: для  получения  полноценной копии  дискета,  на которую
     производится запись, и  дисковод должны  соответствовать друг другу.
     80 - дорожечный дисковод на 1.2М позволяет считывать и анализировать
     любую 5.25" дискету, однако, 40  - дорожечная дискета, записанная на
     80 -  дорожечном  дисководе, будет  нормально  читаться на  таком же
     дисководе, но  может  не  читаться  на  40  -  дорожечном дисководе.
     Параметры начальной установки  в текстовом файле  FDA.INI (см. далее
     по тексту) соответствуют некоторому среднему (по мировым стандартам)
     качеству дисководов. Перед началом работы укажите путь для временных
     файлов, т.е. введите  в файл  AUTOEXEC.BAT строку SET  TEMP = <Path>
     если ее нет. Каталог для временных файлов лучше всего расположить на
     виртуальном диске, если его объем более 1Мб, иначе на жестком диске.
     Кроме  того,  создайте   пустой  каталог  для   считанной  с  дискет
     информации. При анализе и чтении  дискеты укажите имя этого каталога
     (Operating Directory Name). Запустите  FDA.EXE и сделайте калибровку
     для обоих дисководов  для всех допустимых  для них плотностей записи
     (Recording Density). Для этого потребуются четыре разных дискеты. Ни
     в   коем   случае   не   производите   калибровку   при  вставленной
     дистрибутивной дискете!

                           III. Пункты основного меню

        - Analyse & Read Disk (Анализ и чтение диска)
        Для выполнения этого пункта необходимо ввести число анализируемых
     цилиндров на дискете  и путь  для файлов, в  которых будут сохранены
     считанные  данные  (Operating   Directory).  Для  каждой  копируемой
     дискеты необходимо предварительно (до запуска FDA) создать отдельный
     каталог на  жестком диске.  Если ввести  пустую строку,  файлы будут
     помещены во  временный  каталог  UNTITLED, который  FDA  создаст для
     выполнения операции, и который будет  уничтожен после выхода из FDA.
     Помните, что на 40  - дорожечной 5.25" дискете  42 цилиндра, на 80 -
     84.  На  3.5"  дискетах  в  действительности  82  цилиндра.  Если об
     анализируемой дискете  ничего  не  известно,  установите максимально
     возможное  число  цилиндров.  Затем  считайте  дискету,  создайте  и
     просмотрите Disk Report  file. Если  дорожки пустые  через одну (или
     замусорены),  значит   на  дискете   42  цилиндра.   Здесь  придется
     действовать  методом  проб  и  ошибок,  но  иначе  не  возможно.  По
     окончании  чтения,  FDA  производит  анализ  результатов  при помощи
     встроенной системы искусственного интеллекта  и формирует Disk Write
     Sequence  (файл  DISK.WRI).  Опция  "All  tracks  non-std"  работает
     следующим  образом.  Если  она  не  установлена,  при первоначальном
     анализе  все   считанные  дорожки   разделяются  на   стандартные  и
     нестандартные, причем  нестандартные  дорожки  анализируются гораздо
     подробнее (и, соответственно, медленнее)  стандартных. Если же опцию
     установить, то  разделение  дорожек на  стандартные  и нестандартные
     отменяется и все они анализируются  подробно. При этом время анализа
     дискеты возрастает в  среднем в  10...20 раз (до  получаса и более).
     Такая мера  необходима при  копировании "невидимых"  ключевых меток,
     которые  прячут  информацию  в  межсекторных  промежутках нормальной
     длины. Такая дорожка с ключевой меткой внешне выглядит полностью как
     стандартная. Поэтому сначала попробуйте скопировать дискету без этой
     опции, если не удалось, то считайте  с оригинала и запишите прямо на
     эту  неудачную   копию   только   один   цилиндр   с  предварительно
     установленной опцией.  К  сожалению,  с  установленной  опцией можно
     проанализировать не  более 60  цилиндров из-за  переполнения памяти,
     поэтому  при  полном  анализе  дискет   1.2  и  1.44  Мб  эту  опцию
     устанавливать нельзя.
        Любые  "хитрости"  на  дорожках  выявляются  "абсолютным" чтением
     дорожки (см. Make  Full Track  Image File), но  это требует высокого
     уровня подготовки пользователя.
        После окончания анализа в  рабочем каталоге (Operating Directory)
     создаются четыре файла:
        1. DISK.RPT -  файл -  доклад (Disk Report  File) содержит полную
     информацию  о  считанной  дискете.   Файл  текстовый,  в  дальнейшем
     программой не используется, предназначен только для просмотра.
        2. DISK.FMT - двоичный файл  с информацией о формате всех дорожек
     дискеты, используется для создания Write Sequence.
        3. DISK.WRI - Write Sequence всего диска (см. приложение).
        4. DISK.BIN  - информация,  считанная  из всех  секторов дискеты.
     Двоичный файл, равный  по размеру емкости  дискеты, используется при
     записи копии.
        - Format & Write Disk (Форматирование и запись)
        Производится   запись   копии   считанной   дискеты   или  просто
     форматирование, если  предварительно была  сделана подготовка  к DOS
     формату. Запись копии производится в абсолютно точном соответствии с
     исходной дискетой, выдерживаются не только все особенности формата и
     записи, включая любой  нестандартный формат, но  и точно повторяется
     длина  и  расположение   секторов  на   дорожках,  промежутки  между
     секторами. Копируются  также  дискеты,  записанные не  на  IBM  PC и
     "ключевые" дискеты.  Секторы,  содержащие  программно "подстроенную"
     ошибку, тоже копируются  вместе с  ошибкой, т.  е. на  диске - копии
     тоже будет ошибка в том  же месте. Разумеется, физические дефекты не
     копируются, но весьма точно имитируются.
        - Track Operations (Операции с отдельно выбранной дорожкой)
        Переход в  другое  текстовое  меню для  выбора  операций  с одной
     отдельно выбранной  дорожкой,  а именно:  перевод последовательности
     команд формирования  дорожки  (Track  Write  Sequence)  из двоичного
     файла  DISK.WRI   в   текстовый   формат   (.SEQ);   просмотр  и/или
     редактирование  текста   Track  Write   Sequence;  обратный  перевод
     (трансляция текста  Track  Write  Sequence); чтение  всей  дорожки в
     двоичный файл (.ABS);  просмотр этого файла;  построение Track Write
     Sequence заново с индивидуальными опциями построения; сжатие дорожки
     и "втискивание"  отдельно  выбранных  секторов в  дорожку;  анализ и
     чтение отдельной  дорожки; просмотр  Report файла  дорожки; просмотр
     данных дорожки;  исполнение Track  Write Sequence  (форматирование и
     запись отдельной дорожки). Подробнее см. "Пункты второго меню" далее
     по тексту.
        - View Disk Report File (Просмотреть файл - доклад)
        Вызывается   внешний   viewer    или   редактор   для   просмотра
     автоматически  созданного   при  чтении   дискеты  текстового  файла
     DISK.RPT, содержащего подробную информацию о считанной дискете. Файл
     разделен на  отдельные  записи о  каждой  дорожке. Запись  о дорожке
     содержит  номер  цилиндра,  головки,   число  секторов  на  дорожке,
     плотность записи информации  (Low, Double, Medium,  High, Quad), при
     сброшенной опции "All tracks non-std" тип дорожки (Standard или Non-
     Standard), межсекторные промежутки.  Все параметры даны  в байтах, в
     соответствии со стандартом IBM System  34 Format. Затем идет таблица
     параметров всех найденных на этой дорожке секторов:
        1...4. Четыре первых  колонки с  параметрами идентификаторов всех
     секторов ID (C, H, R, N).
        5. S-S - расстояние между секторами (от начала текущего до начала
     следующего по порядку).
        6. I-S -  расстояние от  индексного отверстия  до начала текущего
     сектора.
        7. Поле CRC - циклический  контрольный код. Он указывается в виде
     строки  из  нескольких  символов,  каждый  из  которых соответствует
     определенной  длине   сектора.   Количество   символов  определяется
     расстоянием   между   идентификаторами   соседних   секторов  (какая
     максимальная длина  еще  впишется  в этот  интервал).  Первый символ
     соответствует длине 0, второй - 1, третий  - 2 и т. д. до 7. Символы
     могут быть  следующими:  ? -  нет  информации, x  -  сектор содержит
     правильный циклический контрольный код для данной длины, . - ошибка,
     или сектор  вообще не  содержит  циклического контрольного  кода для
     данной  длины  (эти   символы  пользователь   может  изменить  путем
     редактирования файла FDA.INI).
        8.  DT  (Data  type)  -  тип  данных  (Nor  -  нормальные,  Del -
     удаленные, None -  найден идентификатор сектора,  но не найдена зона
     данных этого сектора  (например, было  выполнено прерывание операции
     форматирования в GAP2), при этом в поле CRC ставится N/A).
        9.  Поле   GAP3   State   -  состояние   доступного   для  чтения
     межсекторного  промежутка.   Доступны   для  чтения   только  первый
     межсекторный  промежуток   и  промежуток,   следующий  за  сектором,
     реальная длина которого меньше  указанной в его идентификаторе. Если
     текущий промежуток не доступен для чтения, его поле GAP3 State будет
     пустым,  иначе  может  содержать  три  группы  символов, разделенных
     пробелом, а именно: первый символ показывает предполагаемую реальную
     длину сектора,  за которым  следует считанный  промежуток, возможные
     значения  -  0...7.  Далее  группа  из  трех  символов, показывающая
     содержимое промежутка,  возможные  значения:  OVR  -  найден остаток
     сектора, затертого при записи  предыдущего сектора (см. приложение);
     NWR -  в сектор  не  было записи;  FWR -  запись  в сектор  была, но
     обычная,  без  затирания  последующего  промежутка  и  следующего по
     порядку сектора. Последняя группа символов - предполагаемая истинная
     (полученная при операции  форматирования, создавшей этот промежуток)
     длина промежутка (GPL). Эта длина может быть точно определена только
     для незаписанного  или "затертого"  сектора  и указывается  только в
     этом случае. Если  в сектор  была сделана запись  без затирания, GPL
     точно определить невозможно.
        10. Data Offset - смещение  данных сектора от начала созданного в
     процессе чтения  файла данных  (DISK.BIN в  операционном каталоге) в
     шестнадцатиричной форме.
        Основные сведения  о  формате записи  на  гибкий диск  и принятых
     обозначениях смотрите в приложении.
        - View  Disk  Data  File (Просмотр  двоичного  файла, содержащего
     считанные данные)
        При выполнении  операции  анализа  и  чтения  дискеты,  в рабочем
     каталоге (или во  временном каталоге UNTITLED,  если рабочий каталог
     не указан),  формируется файл  считанных данных  DISK.BIN. Этот файл
     содержит информацию  в двоичном  коде, непосредственно  считанную из
     секторов анализируемой  дискеты.  Каждый  сектор  имеет определенное
     смещение  от  начала  этого   файла,  указанное  в  текстовом  файле
     DISK.RPT,  одновременно  формируемого  в  том  же  каталоге,  что  и
     DISK.BIN. Просмотр файла  данных осуществляется  при помощи внешнего
     двоичного  редактора  или  viewer'а,  в  качестве  которого  отлично
     подходит WPView из пакета Norton Commander.
        - Viewer & Editor Command  Lines (Командные строки вызова внешних
     viewer'а и редактора)
        Внешние редактор и viewer вызываются  из FDA при помощи командной
     строки, аналогично  вызову внешнего  редактора из  Norton Commander.
     Строка должна содержать полную спецификацию вызываемого viewer'а или
     редактора, включающую спецсимволы  для формирования командной строки
     DOS  для  запуска  viewer'а  или   редактора  (точно  как  в  Norton
     Commander).  Спецсимволы  начинаются  с  !  и  означают:  !.!  - имя
     просматриваемого или  редактируемого файла  +  расширение, !.  - имя
     файла без расширения, !\  - полный путь текущего  каталога, !: - имя
     текущего диска,  !! -  символ  !. Пример:  C:\NC\WPVIEW !.!  - вызов
     WPView из каталога NC диска С: для просмотра Report File. В качестве
     viewer'а можно использовать WPView из Norton Commander, а в качестве
     редактора - Norton Editor (или Edit).
        - Open Operating Directory (Получение доступа к рабочим файлам)
        Производится для  записи  копии  ранее  считанной  дискеты  и для
     операций  с  отдельными   дорожками,  считанными   с  этой  дискеты.
     Необходимо  ввести  полный  путь   к  операционным  файлам  (Указать
     Operating  Directory,  т.  е.  каталог,  содержащий  файлы DISK.FMT,
     DISK.WRI и  DISK.BIN  для  требуемой дискеты).  Если  указана пустая
     строка, информация берется из временного рабочего каталога UNTITLED,
     если она  там  имеется.  Имя рабочего  каталога,  число  цилиндров и
     признак наличия  файла  DISK.FMT  (DI) индицируются  в  самой нижней
     строке экрана слева.
        - Prepare for DOS Format (Подготовка для DOS формата)
        FDA позволяет  быстро  и качественно  форматировать  дискеты, при
     этом поддерживаются все допустимые для данного дисковода форматы без
     применения  резидентных  драйверов   типа  800.COM.  Поддержаны  все
     возможные плотности записи  информации на  дискету, как стандартные,
     так и нестандартные, а именно: Low (низкая плотность, нестандартная,
     только для  дискет  5.25"  и дисководов  на  1.2М),  Double (двойная
     плотность,  стандартная  для  дискет   5.25",  3.5"  DS/DD  и  любых
     дисководов), Medium  (плотность выше  двойной, нестандартная, только
     для дискет  DS/DD  и  дисководов  на  360К  и  720К),  High (высокая
     плотность, стандартная, только  для дискет 5.25"  DS/HD и дисководов
     на 1.2М), Quad ("четверная" -  более высокая, чем High, стандартная,
     только для дискет  3.5" DS/HD  и дисководов на  1.44М). Дискеты, или
     отдельные дорожки,  отформатированные  и записанные  с нестандартной
     плотностью (Low  и  Medium),  не  читаются  стандартными средствами,
     поэтому  такой  формат  используется   в  целях  защиты  информации.
     Подробнее смотрите  в  Приложении.  FDA  при  форматировании дискеты
     располагает секторы правильным многоугольником (не задевая IAM), что
     повышает  надежность   хранения  данных.   Возможно  также  создание
     системных дискет, при  этом системные файлы  могут быть перенесены с
     любого указанного системного диска,  а не только  с того, с которого
     загружена DOS,  т.е.  можно  создать системную  дискету  с  DOS 5.0,
     работая в DOS  3.3. FDA  не копирует  на отформатированную системную
     дискету   файл    COMMAND.COM,   скопируйте    его   обычным   путем
     самостоятельно.  Предусмотрена  возможность   добавления  записей  в
     таблицу  форматов  и  удаления  их  путем  нажатия  "Enter"  в  поле
     соответствующих кнопок. Для  форматирования дискеты после подготовки
     необходимо произвести запись  (выполнить пункт Format  & Write). FDA
     форматирует даже  дискеты  с дефектной  нулевой  дорожкой! Быстрота,
     удобство применения,  качество  форматирования и  произвольный выбор
     формата выгодно отличают  форматор FDA  от всех  известных. Один раз
     попробовав, Вы всегда будете форматировать дискеты только при помощи
     FDA.
        - Calibrate (Калибровка)
        Скорости вращения дискеты  и передачи  данных контроллером всегда
     немного отклоняются от номинала.  Это искажает расположение секторов
     на дискете  -  копии.  Поэтому,  перед  чтением  дискеты обязательно
     произведите калибровку имеющихся дисководов  для всех допустимых для
     них  плотностей   записи.  Калибровку   необходимо  выполнять  после
     установки FDA  на жесткий  диск  и после  любого изменения  режима и
     конфигурации компьютера (вкл./выкл. Turbo, изменение Setup и т. д.).
     Для выполнения  калибровки  необходимо  выбрать  плотность  записи и
     вставить соответствующую ей чистую дискету,  т.е. для High и Quad HD
     (5.25" или 3.5"), для  остальных - DD.  Всего потребуется 4 дискеты.
     Дисковод 1.2М  поддерживает  плотности  Low, Double,  High;  1.44M -
     Double, Medium, Quad; 360K и 720K  - Double и Medium. Переберите все
     возможные для  имеющихся дисководов  плотности  записи и  каждый раз
     перед пуском  вставляйте  соответствующую чистую  дискету,  т.е. для
     High и Quad HD, для остальных - DD. Внимание! Все данные и формат на
     этих дискетах  будут  уничтожены!  Ни в  коем  случае  не выполняйте
     калибровку   при   вставленной   дистрибутивной   дискете!  Выполнив
     калибровку для  одной плотности,  перейдите  к следующей,  или, если
     полностью закончили, выйдите в основное меню и выполните пункт "Save
     Settings".  Примечание:   если  появится   красное  окно  "Calibrate
     failure", значит  Ваши  действия  были  не  верны  (вероятнее всего,
     дискета не соответствует установленной плотности записи).
        - Save Settings (Сохранение текущего состояния)
        Сохраняет  в   файле   FDA.INI   данные  о   типе   дисководов  и
     быстродействии компьютера, параметры калибровки, параметры начальной
     установки, командные  строки  вызова внешних  viewer'а  и редактора.
     Выполняйте этот пункт сразу после калибровки.

                   IV. Пункты второго меню (Track Operations)

        -  Преобразование  Track  Write  Sequence  в  текстовый  файл. Из
     двоичного файла DISK.WRI (Disk  Write Sequence) выделяется фрагмент,
     соответствующий  выбранной   дорожке   (Track  Write   Sequence),  и
     превращается  в  текстовый  файл,   который  можно  просматривать  и
     редактировать. Файл  DISK.WRI формируется  при обработке результатов
     чтения всего диска.
        -  Редактирование  текста  Track  Write  Sequence. Редактирование
     текста  Track  Write  Sequence   производится  при  помощи  внешнего
     текстового редактора  небольшого  объема,  например,  Norton Editor.
     Командная  строка   вызова  редактора   должна  быть  предварительно
     сформирована.
        - Трансляция текста Track Write Sequence. Трансляция текста Track
     Write Sequence при помощи встроенного транслятора и модификация Disk
     Write  Sequence   (файла  DISK.WRI).   Если  при   трансляции  будут
     обнаружены ошибки, они  будут указаны  в специальном  окне с красным
     фоном. Формат представления ошибок соответствует стандарту Microsoft
     Basic Compiler.
        - Чтение  всей дорожки  в  двоичный файл.  Чтение всей  дорожки в
     двоичный файл (.ABS)  при помощи функции  чтения дорожки контроллера
     гибкого  диска  (FDC).  Возможна  установка  любой  плотности записи
     дорожки. По окончании операции,  изображается окно с синим (голубым)
     фоном, если  операция  завершена  успешно, иначе  -  окно  с красным
     фоном. Внутри  окон печатается  статус FDC  (7 байтов  в HEX  коде с
     расшифровкой по стандарту Intel).  В полученном файле нет разделения
     на секторы. Из-за неизбежных  сбоев синхронизации на границе каждого
     сектора, этот файл труден для  просмотра и анализа, здесь необходимо
     хорошее знание  структуры дорожки  и сектора.  Тем не  менее, только
     таким путем  можно получить  абсолютно полную  информацию о дорожке,
     включая маркеры,  внутрисекторные  и межсекторные  промежутки, точки
     искусственного   прерывания   операций   форматирования   и   записи
     независимо от  степени  защиты просматриваемой  дорожки.  Этот пункт
     предназначен только для подготовленных пользователей.
        - Просмотр  данных  считанной  дорожки.  Производится  при помощи
     внешнего  двоичного   редактора  или   viewer'а  небольшого  объема,
     например, WPView  из пакета  Norton Commander.  Командная строка его
     вызова должна быть предварительно  сформирована (см. Viewer & Editor
     Command Lines).
        - Построение  последовательности  команд форматирования  и записи
     (Track Write  Sequence)  заново  с  установкой  индивидуальных опций
     построения (Build  Options)  и  параметров (ключей),  если  их общие
     значения для  данной  дорожки  не годятся.  Выполнение  этого пункта
     необходимо  только  в  том  случае,  если  какая  -  либо  дорожка с
     использованием   общего    набора   опций    построения   записалась
     неудовлетворительно, например, при имитации  ошибки CRC не отрезался
     второй байт  CRC из  - за  промаха короткой  записи (промах вперед),
     или, наоборот, сектор оказался  подрезанным (промах назад). Значения
     Build Options и ключей для  построения Track Write Sequence для всех
     дорожек сразу  после  чтения  дискеты,  берутся  из  файла начальной
     установки FDA.INI  (см. "параметры  начальной установки"). Изменения
     Build Options действительны только до выполнения операции, изменения
     номера дорожки  (не  выходя из  пункта),  или до  выхода  из пункта.
     Параметры начальной установки не изменяются.
        - Сжатие дорожки.  Эта операция требуется  для копирования систем
     защиты, использующих  метод абсолютного  контроля. Он  заключается в
     том, что один из секторов  на дорожке считывается на длину, большую,
     чем его  истинная  длина.  Это делается  либо  командой  FDC "Чтение
     дорожки", либо  установкой  в ID  сектора  большого параметра  N при
     форматировании дорожки. При  этом считывается не  только сам сектор,
     но и  то,  что  находится  за ним.  Таким  образом,  точка замыкания
     дорожки может оказаться в зоне,  доступной для чтения, что позволяет
     точно измерить длину дорожки.  Такие ключевые метки невозможно точно
     скопировать  без  использования  дополнительной  аппаратуры,  однако
     часто их  можно "обмануть",  намеренно  исказив формат  дорожки. Для
     этого необходимо увеличить расстояние между сектором, считываемым на
     большую  длину,  и  следующим  за   ним  сектором.  При  этом  также
     необходимо  уменьшить  расстояние   между  теми  секторами,  которые
     читаются без  залезания на  межсекторный  промежуток и  на следующий
     сектор. Однако система  защиты может  проверять содержимое некоторых
     межсекторных промежутков, поэтому эти прожутки нельзя уменьшать. Все
     эти  возможности  переконфигурирования  дорожки  предоставляет пункт
     меню "Compress  Track". Параметры  "Number of  cylinder", "Number of
     head" и  "ID  Substitution"  -  как  в  предыдущем  пункте. Параметр
     "Minimum  GPL"  задает  минимальное  расстояние  между  секторами на
     дорожке, полученной в  результате сжатия. В  строке "List sequential
     number of sectors with  appropriate commands" следует указать, каким
     образом требуется переконфигурировать  дорожку. В  этой строке через
     запятую перечисляются порядковые  номера секторов,  первый сектор на
     дорожке имеет  номер  1.  Всего возможны  четыре  варианта обработки
     секторов в данном пункте:
        1.  Обычный   сектор.  В   этом   случае  расстояние   от  начала
     обрабатываемого сектора до начала следующего (в дальнейшем оно будет
     называться секторным блоком)  устанавливается минимально возможным и
     увеличивается в  последнюю  очередь,  когда  все  более приоритетные
     секторы уже  увеличены  до максимума,  указанного  в соответствующей
     позиции строки  (см.  ниже).  Для  выбора  этого  варианта обработки
     следует вообще не указывать этот сектор в строке.
        2.   Втискивание.   В   этом   случае   секторный   блок  исходно
     устанавливается равным  тому,  который  был  на  оригинале,  а затем
     увеличивается до максимума,  указанного в строке  за номером сектора
     через косую черту.  Максимум указывается в  байтах. Если максимум не
     указан,  используется  длина  сектора,  указанная  в  ID. Увеличение
     секторных блоков до максимума происходит  в том порядке, в каком они
     перечислены в строке.
        3. Фиксация. В этом случае  секторный блок никогда не уменьшается
     по отношению к оригиналу, но увеличивается только тогда, когда блоки
     всех втискиваемых  секторов уже  увеличены до  максимума. Для выбора
     этого варианта обработки  следует указать  в строке  букву "F" перед
     номером сектора.
        4. Удаление сектора  с дорожки.  В этом случае  на дорожке данный
     сектор будет  отсутствовать.  Для  выбора  этого  варианта обработки
     следует указать в строке букву "R" перед номером сектора.
        Track Write Sequence при сжатии  строится заново в соответствии с
     установленными опциями  построения  (Build Options)  и  ключами. Чем
     меньше значение параметра "Minimum  GPL", тем эффективнее сжатие, но
     при слишком малой  его величине возможны  наложения секторов друг на
     друга.  Кнопка   "View"   предназначена   для   контроля  результата
     исполнения вновь построенной  при оптимизации  Track Write Sequence,
     т.е. можно проконтролировать, как  будет выглядеть эта дорожка после
     выполнения пунктов  Format  &  Write Disk  или  Execute  Track Write
     Sequence. Изменения Build Options действительны только до выполнения
     операции, изменения  номера дорожки  или выхода  из пункта. Операция
     сжатия  на  тех   дорожках,  где  она   желательна  или  необходима,
     выполняется автоматически  по  умолчанию,  если  в  файле  FDA.INI в
     разделе  "Switches"  в  предпоследней  строке  этого  раздела  стоит
     "COMP".  Если  же  там   поставить  "NOCOMP",  сжатие  автоматически
     выполняться не будет.
        - Анализ  и  чтение  отдельной  дорожки.  Анализ  и  чтение одной
     отдельно выбранной дорожки  с установкой  любой допустимой плотности
     записи. При этом  формируются временные  файлы Track  Report и Track
     Data, предназначенные  только  для  просмотра  и  уничтожающиеся при
     выходе из  программы.  При  помощи  этой  операции  легко выявляются
     секторы, записанные с разной плотностью на одной дорожке.
        - Просмотр Track  Report файла.  Просмотр Track  Report файла при
     помощи внешнего редактора или  viewer'а небольшого объема, например,
     WPView из  пакета  Norton  Commander.  Командная  строка  его вызова
     должна быть предварительно сформирована.
        - Просмотр считанных данных. Просмотр Track Data файла при помощи
     внешнего  двоичного   редактора  или   viewer'а  небольшого  объема,
     например, WPView  из пакета  Norton Commander.  Командная строка его
     вызова должна быть предварительно сформирована.
        -  Исполнение  Track  Write  Sequence.  Форматирование  и  запись
     отдельно выбранной дорожки в соответствии с Track Write Sequence для
     этой дорожки.
                        V. Установка FDA на жесткий диск

         FDA  6.1  устанавливается  на   жесткий  диск  компьютера  двумя
     способами по выбору пользователя, а именно, с привязкой к компьютеру
     и  без  привязки.  В  первом  случае  установленная  программа будет
     нормально запускаться  только  на  том  компьютере,  к  которому она
     привязана  (автоматически  создается  специальный  файл  привязки  с
     расширением .INS). Привязка абсолютно  надежна, совершенно не мешает
     работе и  не разрушается  ни  при каких  действиях с  жестким диском
     (сжатие,  дефрагментация,   переформатирование  и   т.д.).  Возможно
     резервное копирование привязанных файлов FDA 6.1 с жесткого диска на
     дискеты, однако сохраненные файлы будут работоспособны только на том
     компьютере,  к  которому  были   привязаны.  Всего  возможны  четыре
     независимых  привязки,  причем   после  выполнения  каждой  привязки
     счетчик   привязок   на   дистрибутивной   дискете  декрементируется
     (уменьшается на 1).
         Во втором  случае (установка  без привязки)  счетчик привязок не
     декрементируется, но  запуск  программы  будет  возможен  только при
     вставленной дистрибутивной дискете.
         Для установки  FDA  6.1  необходимо  запустить  файл INSTALL.EXE
     прямо  с  дискеты.  Программа  установки  работает  в  дружественном
     диалоговом режиме.
         FDA 6.1  при  работе самостоятельно,  без  участия пользователя,
     создает временные  файлы длиной  до двух  Мб. Если  командой DOS SET
     создана переменная окружения  с одним из  имен TEMP, TMP, TEMPFILES,
     TMPFILES, то временные  файлы создаются  по пути,  указанному в этой
     переменной, если же  такая переменная отсутствует,  то они создаются
     на том логическом диске, где больше всего свободного места.
        Для временных файлов  очень удобно  использовать виртуальный диск
     (RAMDrive), однако, помните,  что его  объем должен быть  не менее 2
     Мбайт для анализа и копирования дискет  1.2M & 1.44M и 600 Кбайт для
     дискет на 360K, в противном случае используйте жесткий диск. Пример:
     пусть Е: -  виртуальный диск  объемом более  2 Мбайт,  в этом случае
     введите в AUTOEXEC.BAT строку SET TEMP=E:\.

                       VI. Начальная установка параметров

        В  текстовом   файле   FDA.INI   находятся   параметры  начальной
     установки, которые в ряде  случаев требуют модификации путем прямого
     редактирования этого файла любым  текстовым редактором. Файл состоит
     из строк, содержащих  одно число или  строку символов. Редактировать
     допускается только часть файла, не содержащую параметров калибровки,
     а именно, начиная  с пункта "Maximum  permissible dispersions of ID-
     to-ID distance".
        Три строки этого  пункта, (по  умолчанию 12,  8, 6) устанавливают
     допуски на  разброс  измеренных  таймером  временных  интервалов при
     скоростях передачи информации 500,  300 и 250 Кбит/с соответственно.
     Чем  выше  равномерность  вращения  диска,  тем  меньше  могут  быть
     допуски,  и,   тем  самым,   выше  точность   копирования.  Качество
     дисководов можно  оценить  путем  сравнения  между  собой измеренных
     расстояний S-S на дорожке, отформатированной на максимальное для нее
     число  секторов.  Средняя  величина  разброса  не  должна  превышать
     половины  допуска.   В  некоторых   некачественных  дисководах  диск
     вращается настолько неравномерно  (скачками), что допуски приходится
     устанавливать сверх  всякой  меры, и  точное  копирование становится
     затруднительным. В  окне "Set  Build Options"  эти допуски именуются
     "Gap tolerance".
        Abort time adjustments (preserve next IDAM from truncation): (три
     строки, по умолчанию  -4, -3, -2)  устанавливают расстояние от точки
     прерывания операции форматирования или записи предыдущего сектора до
     начала следующего сектора, чтобы не задеть его идентификатор (так же
     соответственно для 500,  300 и  250 Кбит/с). Если  эти числа слишком
     малы (по  абсолютной величине),  то возможно  подтирание секторов на
     диске  -   копии,  если   слишком  велики,   то  снижается  точность
     копирования (теряются  последние байты  в межсекторных промежутках).
     Последнее, однако, не  имеет решающего  значения, поскольку точность
     таймера в FDA 6.1  предельно возможная, и  никакая система защиты не
     сможет иметь более точный таймер.
        Abort time  adjustments  (cut  off  CRC  bytes):  три  строки (по
     умолчанию -4, -3, -2) устанавливают отступ точки прерывания операции
     записи от конца записываемого сектора  для имитации ошибки CRC. Если
     эти числа  слишком малы,  возможен промах  вперед, т.  е. записанный
     сектор  не  будет  иметь   ошибки,  если  слишком  велики,  теряются
     последние байты  сектора (промах  назад). Эти  числа легко подобрать
     экспериментально. Так  же  для трех  скоростей  передачи информации.
     Если  используется  дисковод  высокого  качества,  эти  числа  можно
     уменьшать по  абсолютной  величине  вплоть  до  -1.  При  этом будут
     устойчиво копироваться  лазерные метки  на дискете  даже без подмены
     идентификатора, что  ускоряет  процесс  записи копии  и  повышает ее
     точность. В некоторых  случаях имитация ошибки  CRC путем подмены ID
     сектора не допустима вообще, поскольку система защиты от копирования
     может обнаружить  наличие  граничной  точки (splice  point)  в GAP2,
     неизбежно образующейся при подмене ID.
        Offsets from sector beginning to  abort position (to destroy DATA
     AM): три строки  (по умолчанию 55,  55, 55) соответственно скоростям
     передачи  информации,   устанавливают   точку   прерывания  операции
     форматирования (отсчет от начала сектора) с целью разрушения маркера
     данных сектора.  Такое прерывание  требуется для  создания "пустого"
     сектора (Missing Data), т. е.  когда имеется только идентификатор, а
     маркера данных  нет.  Используется  в том  случае,  когда необходимо
     создать "пустой"  сектор первым  по порядку  на дорожке,  да еще при
     условии, что его длина, указанная  в ID, не равна  0, или в "Use FDC
     chip bug to  create MD-sectors"  указано NO.  При необходимости, эти
     числа можно подобрать экспериментально. Отклонения от оптимума как в
     большую, так и в меньшую сторону даже на одну - две единицы вызывают
     нежелательное появление зоны данных, а именно, промах "вперед", т.е.
     слишком большое число, вызывает появление  сектора с ошибкой CRC для
     всех длин вместо  "пустого" сектора, а  промах "назад", т.е. слишком
     маленькое число, вызывает появление сектора  без ошибки CRC на длине
     1.  Практически  в   таких  случаях  приходится  эксперементировать,
     несколько раз создавая и исполняя Track Write Sequence при небольшом
     изменении числа  55  в  Build  Options в  ту  или  другую  сторону в
     зависимости от  получаемых  результатов  до тех  пор,  пока "пустой"
     сектор не будет получен.
        Minimum permissible  GPL (for  Compress  Track): по  умолчанию 8,
     устанавливает  минимально  допустимый   зазор  между  секторами  при
     минимизации промежутков. Это число нельзя выбирать слишком маленьким
     (см. пункт меню "Compress Track"), в то же время, чем меньше зазоры,
     тем эффективнее минимизация.
        Switches: пять строк  содержат слова  - ключи.  Первый ключ может
     принимать  три  значения  NONE  (подмена  идентификатора  сектора не
     разрешена), FIRST (разрешена  подмена идентификатора первого сектора
     для записи первого межсекторного промежутка  и имитации ошибки CRC в
     первом  секторе),  ALL  (разрешена  подмена  всех  идентификаторов).
     Второй ключ задает  действия FDA при  залезании последнего сектора в
     GAP4A  (промежуток  от  индексного   отверстия  до  IAM).  Он  может
     принимать два значения: MOVE (запрет  подмены ID в последнем секторе
     и  перенос  его  записи  в  конец  Track  Write  Sequence)  и IGNORE
     (игнорирование  залезания).  Если  последний  сектор  не  залезает в
     GAP4A, этот  ключ  не  влияет на  построение  Track  Write Sequence.
     Использование этих  ключей рекомендуется  только специалисту высокой
     квалификации. Третий  ключ  разрешает  или  запрещает автоматическое
     сжатие дорожки  на тех  дорожках, где  оно может  понадобиться. Если
     стоит "COMP" -  автоматическое сжатие разрешено,  если "NOCOMP" - то
     нет.   Четвертый   ключ    разрешает   или   запрещает   отображение
     предупреждающих красных  окон при  возникновении особых  ситуаций во
     время анализа и чтения отдельных  дорожек дискеты. К таким ситуациям
     относятся:
        - не удалось построить Track Write Sequence;
        - не удается создать Track Write Sequence без затирания IAM;
        - выполнено автоматическое сжатие дорожки.
        Ключ "WARN" разрешает  отображение предупреждающих окон, "NOWARN"
     запрещает.
        Use FDC chip  bug to  create MD-sectors: строка  символов YES или
     NO. Обычно  контроллер  гибкого  диска (FDC)  содержит  ошибку из-за
     которой запись в сектор с длиной, указанной в ID, равной 0, приводит
     к тому, что  при последующем чтении  этого сектора FDC устанавливает
     бит MD в  байте статуса  ST2. Это  явление используется  в FDA (если
     установлено YES). Однако, не все FDC имеют эту ошибку, поэтому в FDA
     6.1  предусмотрена  возможность  обходиться  без  использования этой
     ошибки   (установлено    NO).    В    процессе    калибровки   можно
     проконтролировать наличие описанной ошибки. По умолчанию установлено
     YES, однако, если в  процессе калибровки выявится отсутствие ошибки,
     YES автоматически  заменится на  NO. Если  же уже  установлено NO, а
     ошибка  обнаружится,   изменения   на   YES   не   произойдет,  т.е.
     автоматическое изменение YES ->  NO возможно, а  наоборот - нет. Это
     сделано намеренно во избежание  неточностей при неполной калибровке.
     Установить YES  можно  только  путем  редактирования соответствующей
     строки файла FDA.INI.
        Viewer &  editor  command lines:  три  строки -  командные строки
     вызова  viewer'а  для  просмотра   Report  File  (.RPT),  текстового
     редактора для  Track Write  Sequence (.SEQ),  viewer'а для просмотра
     двоичных файлов (.ABS & .BIN).  Эти строки формируются из первичного
     текстового меню FDA 6.1.
        Colors: две  строки,  каждая  из  которых  может  содержать слово
     "COLOR1" или "COLOR2",  другие не допускаются.  Первая строка задает
     один из двух вариантов  цвета фона диалоговых  окон (меню), второе -
     операционных окон  (индицирующихся  во  время  выполнения операций).
     Здесь  можно  поэксперементировать  и  подобрать  приятную  для глаз
     комбинацию.
        Characters for  CRC field  in report  file (Ok,  Error, No info):
     строка из трех символов, означающих состояние CRC в Report - файлах.
        Рекомендации: 1) Параметры начальной установки следует выбирать в
     зависимости от  качества  используемых  дисководов  путем проведения
     экспериментов индивидуально в  каждом конкретном случае. Показателем
     качества  служит  наблюдаемый  разброс  межсекторных  расстояний при
     анализе только что отформатированной  дискеты (на максимальное число
     секторов). Чем меньше  разброс, тем  выше качество  дисковода, и тем
     меньшие допуски можно  установить. Параметры  по умолчанию приведены
     для среднего  качества дисководов.  2) Для  копирования дискет DS/DD
     (360 K) гораздо лучше  использовать дисковод на 360K,  а не на 1.2M,
     хотя на PC/AT они  мало распространены. Профессионалам рекомендуется
     специально  приобрести   такой  дисковод,   лучше  известной  фирмы,
     поскольку  точность  копирования  дискет  DS/DD  на  таком дисководе
     несравнимо выше, также  выше и  качество записи на  дискету - копию.
     Нельзя записывать информацию  с плотностью High  или Quad на дискеты
     DS/DD. Нельзя также  записывать информацию с  плотностью Low, Double
     или Medium на дискеты DS/HD.

                 VII. Назначение и использование Write Sequence

        Запись копии на дискету производится путем выполнения специальной
     последовательности команд,  находящейся  в особом  файле "DISK.WRI",
     который автоматически создается системой искусственного интеллекта в
     процессе обработки  результатов чтения  и анализа  дискеты, но может
     быть частично изменен или  переписан заново пользователем. Этот файл
     называется Disk  Write  Sequence и  представляет  собой совокупность
     отдельных независимых  частей, каждая  из которых  относится к одной
     дорожке.  Таким  образом,  Write  Sequence  диска  -  это  весь файл
     "DISK.WRI", а Write  Sequence дорожки -  это часть файла "DISK.WRI",
     относящаяся к  этой  дорожке.  Track  Write  Sequence  содержит коды
     форматирования   дорожки    и   записи    сектора,   непосредственно
     передаваемые в FDC в заданной последовательности, поэтому могут быть
     использованы все возможности FDC без каких - либо ограничений.
        Для изменения или самостоятельного написания Track Write Sequence
     FDA содержит встроенный командный язык программирования, позволяющий
     транслировать текст Write  Sequence для одной  дорожки, написанный в
     ASCII  формате,  в  коды  управления  FDC.  Возможна  также обратная
     операция -  перевод Write  Sequence дорожки  в текстовый  формат для
     редактирования.  Текст  Track  Write  Sequence,  предназначенный для
     трансляции,  должен  состоять  из   команд,  причем  каждая  команда
     занимает  ровно  одну  строку  (за  исключением  команды  F, которая
     занимает несколько  строк). В  текст  Write Sequence  можно включать
     комментарии.   Комментарий   указывается    на   отдельной   строке,
     начинающейся с точки с запятой (;), причем комментарии, начинающиеся
     с двойной точки с запятой (;;), при трансляции включаются в двоичный
     файл и при  обратной трансляции вновь  появляются в текстовом файле.
     Команды могут быть написаны как заглавными, так и строчными буквами.
     Все   параметры    команд   разделяются    пробелами   или   знаками
     горизонтальной  табуляции.  Первый  символ  команды  (за исключением
     команды установки  плотности)  должен находиться  на  первой позиции
     командной строки.  Все  числовые  параметры  команд  могут  быть как
     десятичными, так и шестнадцатиричными  (в последнем случае после них
     должна стоять латинская буква "H").

               Перечень возможных команд в тексте Write Sequence.

        Условные обозначения: параметры в  квадратных скобках не являются
     обязательными,   параметры    в   фигурных    скобках,   разделенные
     вертикальной чертой, означают альтернативу, т. е. необходимо указать
     либо один, либо другой параметр.

                         1. Установка плотности записи.
        Эта команда имеет следующий формат:
            <Density>:
     где  <Density>  -  строка  символов,  оканчивающаяся  двоеточием,  и
     означающая задаваемую  плотность записи.  Перед строкой  должен быть
     хотя бы один  пробел или  знак табуляции (только  для этой команды).
     <Density> может принимать значения LOW, DOUBLE, MEDIUM, HIGH, QUAD.

                   2. Позиционирование головки и пуск таймера.
        Формат команды:
     P
        FDA содержит собственный прецизионный таймер, отсчитывающий время
     синхронно с  внутренним  таймером  FDC. Он  используется  для точной
     установки  головки  дисковода  в  заданное  место  и  для прерывания
     операций форматирования и записи в заданный момент времени.
        По  команде  "P"  вызывается   функция  FDC  "Чтение  сектора"  с
     параметрами C, H,  R и  N заведомо  несуществующего сектора, поэтому
     после ее завершения головка фиксируется точно в индексном отверстии,
     и одновременно  производится  пуск таймера.  Эту  команду необходимо
     выполнять перед командами, использующими таймер.
        Все  значения   времени  в   командах  форматирования   и  записи
     указываются в  виде  двух  чисел,  разделенных  пробелом,  первое из
     которых означает  число  полных  оборотов,  а  второе  -  число байт
     смещения вперед  после  последнего полного  оборота.  При исполнении
     команды,  первое  число  умножается  на  длину  дорожки  в  байтах и
     суммируется  со  вторым  числом,  таким  образом  формируется полное
     время.  Второе   число   может   быть  как   положительным,   так  и
     отрицательным. Команду "P"  необходимо заново  выполнять перед любой
     командой, использующей  таймер,  если до  того  выполнялась команда,
     содержащая прерывание операции по таймеру.

                               3. Форматирование.
        Формат команды:
     F <SC>  <N>  <GPL> <D>  [A  <AbtTime>],  где <SC>  -  число секторов
     (1...64), <N>  - реальная  длина секторов  (0...255), <GPL>  - длина
     межсекторного промежутка  в байтах  (0...255), <D>  - код заполнения
     секторов (0...255), <AbtTime>  - время прерывания  в виде двух чисел
     (см. команду "P").
        Параметр <SC>  является четвертым  байтом командной  строки FDC и
     задает число секторов.
        Параметр <N>  является третьим  байтом  командной строки  FDC. Он
     задает реальную длину секторов  при форматировании. FDA рассчитан на
     контроллер, поддерживающий  длину  сектора от  0  до 7,  но  в Write
     Sequence можно  указывать любые  значения,  вмещающиеся в  байт. Они
     будут переданы в контроллер без изменения.
        Параметр <GPL>  является пятым  байтом  командной строки  FDC. Он
     задает  длину  межсекторного   промежутка  при  форматировании.  FDA
     рассчитан на FDC,  поддерживающий длину  межсекторного промежутка не
     меньше единицы, но в Write  Sequence можно указывать любые значения,
     вмещающиеся в байт. Они будут переданы в контроллер без изменения.
        Параметр <D> является шестым байтом командной строки контроллера.
     Он задает  содержимое  секторов  после  форматирования  (все секторы
     заполняются этим кодом).
        После приема команды форматирования, контроллер переходит в режим
     ожидания прохождения головкой  индексного отверстия.  После этого он
     переводит головку в режим записи и записывает 80 байтов 4EH (GAP4A),
     поле синхронизации из 12 байтов  00H, адресный маркер начала дорожки
     (IAM),  состоящий  из   3  байтов  C2H   со  специальным  нарушением
     последовательности бит  синхронизации  и  байт  FCH,  50  байтов 4EH
     (GAP1) и все  секторы с  маркерами нормальных  данных и промежутками
     между ними (GAP3),  заполненными байтами 4EH.  После этого FDC снова
     переходит  в   режим   ожидания   прохождения   головкой  индексного
     отверстия. Во время  ожидания он записывает  байты 4EH. Этот остаток
     дорожки  называется  GAP4B   и  его   длина  проверяется  некоторыми
     системами защиты от копирования.
        Операцию  форматирования  можно  прервать  до  завершения, указав
     опцию "A"  и время  от момента  пуска таймера  до момента прерывания
     операции.  Помните,   что   форматирование   всегда   начинается  от
     индексного отверстия,  а момент  прерывания отсчитывается  от начала
     первого сектора,  поэтому,  время  прерывания  следует устанавливать
     равным  расстоянию  от  индексного  отверстия  (позиция  головки при
     исполнении команды "P") до  требуемой точки плюс  один оборот, т. е.
     на один оборот больше, чем кажется  на первый взгляд. Если опция "A"
     отсутствует, форматирование дорожки нормально завершается.
        После  строки   с  командой   форматирования  необходимо  указать
     несколько строк с ID (идентификаторами секторов) для форматирования.
     Их число  должно быть  равно числу  секторов, указанному  в команде.
     Первая строка соответствует  первому сектору, вторая  - второму и т.
     д. Формат этих строк следующий:
         <C> <H> <R> <N>
     где <C> - номер  цилиндра (0...255), <H>  - номер головки (0...255),
     <R> -  номер сектора  (0...255),  <N> -  длина сектора  (0...255). В
     каждой строке ID перед <C> должен  быть хотя бы один пробел или знак
     табуляции.
        Эти значения  могут иметь  произвольные допустимые  значения и не
     соответствовать стандартному  расположению  на дискете,  имеющей DOS
     формат.

        Пример 1. Стандартный формат дорожки 0 цилиндра 0:
     F 9 2 80 246
      0 0 1 2
      0 0 2 2
      0 0 3 2
      0 0 4 2
      0 0 5 2
      0 0 6 2
      0 0 7 2
      0 0 8 2
      0 0 9 2

        Пример 2:
     F 1 1 1 246 A 1 179
      0 0 1 2
        По этой команде производится форматирование дорожки с прерыванием
     операции форматирования с целью подмены существующего идентификатора
     (ID) первого сектора на 0,0,1,2. Этот прием используется в некоторых
     системах  защиты   дискет   от   копирования   для   записи  первого
     межсекторного промежутка, в который помещают ключевую информацию.

                               4. Запись сектора.
        W <C>  <H> <R>  <N>  {N|D} <Offset>  <Len>  <DTL> <EOT>  <GPL> [P
     <PosTime>] [A <AbtTime>], где <C>  - номер цилиндра из ID (0...255),
     <H> -  номер головки  из ID  (0...255),  <R> -  номер сектора  из ID
     (0...255), <N> - длина сектора  из ID (0...255), <Offset> - смещение
     данных  в   файле   "DISK.BIN"   (0...7FFFFFFFH),   <Len>   -  число
     передаваемых байтов для DMA  (0...32767), <DTL> - длина передаваемых
     данных для  FDC  (0...255),  <EOT>  -  номер  последнего  сектора на
     дорожке (0...255), <GPL> -  ожидаемая длина межсекторного промежутка
     (0...255), <PosTime>  -  время позиционирования  (см.  команду "P"),
     <AbtTime> - время прерывания (см. команду "P").
        Параметры <C>, <H>, <R> и <N> являются четырьмя последовательными
     байтами командной строки  FDC, начиная с  третьего байта. Они задают
     ID сектора,  в  который  осуществляется запись.  Параметр  <N> также
     задает  реальную  длину   сектора  при  записи.   FDA  рассчитан  на
     контроллер, поддерживающий  длину  сектора от  0  до 7,  но  в Write
     Sequence можно  указывать любые  значения,  вмещающиеся в  байт. Они
     будут переданы в контроллер без изменения.
        Символ "N"  в команде  задает запись  нормальных данных,  а "D" -
     удаленных (Deleted Data).
        Параметр  <Offset>  задает   смещение  от   начала  файла  данных
     "DISK.BIN", начиная с которого данные передаются в FDC с помощью DMA
     и будут  записаны в  указанный сектор.  Если записываемые  данные не
     имеют значения, а важен лишь  сам факт наличия записи (например, при
     затирании записью), в качестве <Offset> следует указать NONE.
        Параметр <Len> задает число байтов, передаваемых в FDC при помощи
     DMA.
        Параметр <DTL>  является девятым  байтом  командной строки  FDC и
     задает число записываемых  байтов в  случае, если <N>  равно нулю, в
     остальных  случаях  255.  FDA  передает  этот  параметр  в  FDC  без
     изменения независимо от <N>.
        Параметр <EOT>  является седьмым  байтом  командной строки  FDC и
     задает номер последнего сектора на дорожке. Значение этого параметра
     рекомендуется всегда ставить 255.
        Параметр <GPL>  является восьмым  байтом  командной строки  FDC и
     задает  ожидаемую  длину   межсекторного  промежутка.  Рекомендуемое
     значение для Track Write Sequence равно 27.
        Функционирование  FDC   подробно  описано   в  прилагаемом  файле
     I8272.DOC.
        После приема  команды  записи, FDC  переходит  в режим  поиска на
     дорожке идентификатора (ID),  совпадающего с указанным  в команде. В
     случае нахождения требуемого ID, он переводит головку в режим записи
     и  записывает  поле  синхронизации,  состоящее  из  12  байтов  00H,
     адресный маркер данных  (DATA AM),  состоящий из трех  байтов A1H со
     специальным  нарушением  последовательности  битов  синхронизации  и
     байта FBH  (нормальные  данные)  или  F8H  (удаленные  данные), зону
     данных длиной  <N>, ее  циклический контрольный  код (CRC)  и первый
     байт GAP3 - код 4EH.
        На дорожке могут находится два  и более сектора с одинаковыми ID,
     поэтому  в  FDA   имеется  возможность   позиционировать  головку  в
     необходимую позицию на дорожке перед  подачей команды записи в FDC с
     помощью задержки, измеряемой таймером.  Для этого необходимо указать
     в команде  опцию "P"  и время  от момента  пуска таймера  до момента
     подачи команды  записи в  FDC. Если  опция "P"  отсутствует, команда
     будет  подана  в   FDC  немедленно.  При   создании  Write  Sequence
     рекомендуется располагать команды  записи секторов не  по порядку их
     следования на дорожке, а через один, с чередованием, что значительно
     ускоряет запись,  предотвращая пропуск  оборота диска  перед записью
     каждого сектора.
        Операцию записи можно прервать до  завершения, указав опцию "A" и
     время от  момента  пуска  таймера (индексное  отверстие)  до момента
     прерывания операции.  Если  опция  "A"  отсутствует,  запись сектора
     нормально завершается.  Прерывание записи  производится для имитации
     ошибки CRC,  для записи  межсекторных  промежутков, для  записи поля
     GAP4B.
        При записи сектора,  длина которого,  указанная в  ID, больше его
     реальной длины (длины  форматирования), происходит удлинение сектора
     до длины,  указанной в  ID.  При этом  могут  быть затерты  один или
     несколько  последующих  секторов  на  дорожке.  Такой  прием  широко
     используется на практике для защиты дискет.

        Пример 1.  Запись  сектора  с  ID 0,0,1,2.  В  этот  сектор будет
     записано 512 байтов нормальных данных из файла DISK.BIN со смещением
     от начала файла 1000Н:
     W 0 0 1 2 N 1000H 512 255 255 27

        Пример  2.  Запись   сектора  с  ID   0,0,9,0  с  предварительной
     установкой головки  в начало  первого сектора  на дорожке.  В сектор
     запишется 128  байтов  удаленных  данных, смещение  от  начала файла
     данных 1200Н:
     P
     W 0 0 9 0 D 1200H 128 128 255 27 P 0 146

        Пример 3. Запись  сектора с  прерыванием операции  записи в точке
     2000 байтов  от начала  дорожки +  1 оборот  диска. Эта  точка может
     находиться внутри этого сектора или вне его:
     P
     W 0 0 5 1 N 1280H 255 255 255 27 A 1 2000

              Пример практического построения Track Write Sequence

        В качестве  примера  приводится  фрагмент Report  File  для одной
     нестандартной дорожки 0,0, имеющей  типовую защиту с проверкой GAP4B
     (COPYLOCK)  и   Track  Write   Sequence,  автоматически  построенная
     системой искусственного интеллекта FDA 6.1 для этой дорожки.

     Cylinder: 0
     Head: 0
     Track Recording Density: Double
     Track Type: Non-Standard
     Number of Sectors: 11
      C ══ H ══ R ══ N ══ S-S ══ I-S ══ CRC ═══ DT ══ GAP3 State ═ Offset
      0    0    1    2    616    146    ..x     Nor   2 OVR 15     0H
      0    0    2    2    615    762    ..x     Nor                400H
      0    0    3    2    615    1377   ..x     Nor                600H
      0    0    4    2    616    1992   ..x     Nor                800H
      0    0    5    2    615    2608   ..x     Nor                A00H
      0    0    6    2    615    3223   ..x     Nor                C00H
      0    0    7    2    615    3838   ..x     Nor                E00H
      0    0    8    2    616    4453   ..x     Nor                1000H
      0    0    9    2    615    5069   ..x     Nor                1200H
      0    0    249  1    410    5684   .x      Nor                1400H
      0    0    247  2    303    6094   x       Nor                1500H

        Наименование  последней  колонки  в  действительности  будет Data
     Offset, здесь это не помещается на странице.
        На этой  дорожке имеются  два дополнительных  сектора 249  и 247,
     причем  сектор  249  имеет  длину  1  (256  байтов),  а  сектор  247
     усеченный, и  используется  для  контроля GAP4B.  Как  создать такую
     дорожку? Путем расчетов,  легко выясняется,  что идентификаторы всех
     секторов  встанут  на  положенное  место  только  при форматировании
     дорожки на 30  секторов длины 0  (128 байтов), GPL  = 15. Однако, на
     дорожке должно остаться 11 секторов.  Куда же денутся остальные? Они
     будут затерты при записи.  Посмотрите внимательно, между нормальными
     идентификаторами, например,  0  0  1  2  и 0  0  2  2  находятся два
     вспомогательных 1 2 0 0 и 1  3 0 0, которые будут затерты при записи
     сектора 0 0 1 2,  т. к. длина записи  равна 512 байт. Таким образом,
     девять "троек" с длиной 0 превратятся в девять секторов с нормальной
     длиной  2.  Сектор  249,  в  отличие  от  остальных,  имеет  длину в
     идентификаторе  1,  и  в   него  записывается  256  байтов,  поэтому
     затирается только один последующий вспомогательный  сектор 10 2 0 0.
     Обратите внимание на порядок записи секторов с чередованием номеров.
     Записывать секторы подряд  контроллер не  успевает. Последний сектор
     записывается с прерыванием операции в  поле GAP4A, чтобы не затереть
     IAM и первый  сектор на дорожке.  Время прерывания легко рассчитать,
     зная длину всей дорожки и длины всех секторов и промежутков.

             Double:
     F 30 0 15 246
      0 0 1 2
      1 2 0 0
      1 3 0 0
      0 0 2 2
      2 2 0 0
      2 3 0 0
      0 0 3 2
      3 2 0 0
      3 3 0 0
      0 0 4 2
      4 2 0 0
      4 3 0 0
      0 0 5 2
      5 2 0 0
      5 3 0 0
      0 0 6 2
      6 2 0 0
      6 3 0 0
      0 0 7 2
      7 2 0 0
      7 3 0 0
      0 0 8 2
      8 2 0 0
      8 3 0 0
      0 0 9 2
      9 2 0 0
      9 3 0 0
      0 0 249 1
      10 2 0 0
      0 0 247 2
     P
     W 0 0 1 2 N 0H 512 255 255 27 P 1 146
     W 0 0 3 2 N 600H 512 255 255 27 P 1 1376
     W 0 0 5 2 N A00H 512 255 255 27 P 1 2606
     W 0 0 7 2 N E00H 512 255 255 27 P 1 3836
     W 0 0 9 2 N 1200H 512 255 255 27 P 1 5066
     W 0 0 2 2 N 400H 512 255 255 27 P 2 761
     W 0 0 4 2 N 800H 512 255 255 27 P 2 1991
     W 0 0 6 2 N C00H 512 255 255 27 P 2 3221
     W 0 0 8 2 N 1000H 512 255 255 27 P 2 4451
     W 0 0 249 1 N 1400H 256 255 255 27 P 2 5681
     P
     W 0 0 247 2 N 1500H 512 255 255 27 P 0 6091 A 1 77
     END

        Обычно, при копировании  дискет, вряд  ли придется самостоятельно
     составлять Write Sequence, разве что немного подкорректировать файл,
     автоматически   созданный    FDA.   Однако,    при   самостоятельном
     конструировании "хитрых"  дорожек,  необходимо изучить  все тонкости
     FDC  и  FDA.  И  пусть  Вас  не  смущает,  что  такая  защита  легко
     скопируется при помощи того же FDA  6.1. Всему на свете есть предел,
     и, конечно,  теоретически  (и  практически)  возможно  создать Write
     Sequence, которую  не "раскусит"  искусственный интеллект  FDA, хотя
     его уровень очень  высок (приведенный  здесь пример -  один из самых
     простых,  автоматически   распознаются   несравнимо   более  сложные
     комбинированные  форматы  с   каскадным  затиранием  и  многократным
     форматированием).  В  Приложении  (файлы  APPENDIX.TXT  и I8272.DOC)
     приведено  достаточно   информации  для   самостоятельного  освоения
     техники  защиты  дискет  от  несанкционированного  копирования. Файл
     I8272.DOC представляет собой полное техническое описание контроллера
     гибкого диска 8272 на английском языке (документация фирмы Intel).

                                   Заключение

        Floppy Disk Analyser 6.1 Pro открывает принципиально новый этап в
     технике защиты дискет от копирования, который можно охарактеризовать
     как конец непрофессионализма  в этом  важном и  интересном деле. Это
     связано с  тем,  что  FDA подробно  анализирует  дискеты,  поэтому у
     пользователей впервые  появилась  возможность не  доверяться рекламе
     типа  "новейшая   супер-защита",   а   самим   объективно  оценивать
     технические  характеристики  систем  защиты,  все  их  достоинства и
     недостатки.  Последнее   в   настоящее  время   особенно  актуально,
     поскольку  рынок   наводнили  простейшие   безграмотно  составленные
     системы защиты. Если Вы полностью освоите возможности FDA 6.1, перед
     Вами откроются безграничные возможности управления процессами записи
     и чтения информации на гибких  дисках. Вы сможете не только подробно
     анализировать  и   копировать   любые   дискеты,   но   и  создавать
     принципиально новые, еще не известные системы защиты от копирования,
     шифровать  дискеты,  конструировать  новые  типы  форматов  дорожек,
     создавать  библиотеки  защищенных  дискет,  тиражировать  защищенные
     дискеты в массовом количестве.

                                                  А. Соколов, М. Соколов.
         
