
                           Floppy Disk Analyser 5.6 (FDA)

        ╔════════════════════════════════════════════════════════════════╗
        ║ Внимание: FDA работает только на PC/AT! FDA не использует BIOS ║
        ║ и оперирует непосредственно с аппаратурой в реальном времени,  ║
        ║ поэтому он не совместим с QEMM, EMM386 и другими диспетчерами  ║
        ║ памяти для AT/386! На время работы с FDA отключите кэш-память  ║
        ║ в AT/386 и 486,  используя SETUP.  Перед началом работы с FDA  ║
        ║ обязательно произведите калибровку обоих дисководов!           ║
        ╚════════════════════════════════════════════════════════════════╝

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

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

                           II. Работа с программой FDA 5.6

        После запуска  FDA на экране появляется  основное меню из 11 пунктов,
     при этом выполнимые в  данное время (Enabled) пункты изображены белым по
     зеленому  (или  по  синему, в  зависимости  от  начальной  установки), а
     невыполнимые  (Disabled) -  черным по  зеленому  (серым по  синему). Как
     только выполнение ранее  невыполнимых пунктов меню станет возможным, они
     будут  изображены белым  цветом. Вначале  установите параметры имеющихся
     дисководов.  Для  перемещения   указателя  по  полю  меню  между  окнами
     используйте мышь или клавиши "Tab" и "Shift+Tab", для перемещений внутри
     окон пользуйтесь стрелками  "вверх" и "вниз", или мышью. Установка точки
     в  скобках  производится нажатием  клавиши  "пробел"  или  кнопкой мыши.
     Перемещение указателя  между маленькими  окошками внизу (исполнительными
     кнопками, или  buttons) производится  стрелками "вправо"  и "влево" (или
     мышью).
        Для  выполнения  любого  из  пунктов  меню,  поместите  указатель  на
     требуемый пункт  и нажмите  "Enter". При этом  указатель переместится на
     кнопку  "Proceed", после  чего  для  исполнения нажмите  "Enter",  а для
     выхода из FDA  переместите указатель вправо на  кнопку "Quit" и опять же
     нажмите  "Enter".  Эти действия  удобнее  производить  при  помощи мыши,
     установив ее  указатель в соответствующую позицию  и нажав левую клавишу
     один  раз  для  выбора  требуемого  пункта  меню  и  быстро  дважды  для
     исполнения выбранного пункта.  Оформление поля экрана, назначение клавиш
     управления и  позиций указателя  мыши стандартное,  общепринятое во всем
     мире для текстовых меню.
        Внимание:  для  получения   полноценной  копии  дискета,  на  которую
     производится запись, и  дисковод должны соответствовать друг другу. 80 -
     дорожечный дисковод  на 1.2М  позволяет считывать  и анализировать любую
     5.25"  дискету, однако,  40  - дорожечная  дискета,  записанная на  80 -
     дорожечном дисководе, будет нормально читаться на таком же дисководе, но
     может  не читаться  на 40  -  дорожечном дисководе.  Параметры начальной
     установки в текстовом  файле FDA.INI (см. далее по тексту) соответствуют
     некоторому среднему  (по мировым стандартам)  качеству дисководов. Перед
     началом   серьезной  работы   с  FDA   произведите  испытание  имеющихся
     дисководов и,  при необходимости, измените  допусковые параметры в файле
     начальной установки.
        Некоторые  системы  защиты, работающие  по  принципу  COPYLOCK, имеют
     чрезвычайно  "капризную"  ключевую  метку,  основанную  на  анализе сбоя
     синхронизации  и слабых  битов.  Такая ключевая  метка  принципиально не
     может  быть  абсолютно  точно  скопирована  из-за  реально  существующей
     нестабильности скорости  вращения дискеты, незначительного естественного
     отклонения  частоты  тактирования  контроллера,  просто  из-за изменения
     температуры. По этой  причине при запуске защищенной программы с дискеты
     - копии на экране появляется сообщение "** Bad Copy **E2 9E C4 0203" или
     по-русски  "*Плохая копия*E2  9E  C4  0203". Цифры  могут  отличаться от
     указанных,  это не  важно.  В этом  случае  вставьте дискету  -  копию в
     дисковод и  запустите программу  COPREGEN.EXE, входящую  в состав пакета
     FDA.   COPREGEN.EXE   в  течение   полутора   минут   немного  подправит
     неработоспособную  копию  и  она  станет  работоспособной.  При  этом на
     дискете-копии  устанавливается  предельно  возможное  число инсталляций,
     равное 9. Системой  COPYLOCK защищены различные бухгалтерские программы,
     шрифты, Lotus 1-2-3 и многие другие пакеты.

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

        - Change Password (Ввести новый пароль)
        Для входа в  пункт "Анализ и чтение"  необходимо ввести пароль, 6 или
     менее латинских  букв или цифр. Заглавные  и строчные буквы различаются.
     Начальное  значение  пароля  FDA  (буквы  заглавные).  Пароль достаточно
     ввести один раз, при  повторных входах в этот пункт пароль запрашиваться
     не будет до перезапуска программы.
        - Analyse & Read Disk (Анализ и чтение диска)
        Для  выполнения этого  пункта  необходимо ввести  число анализируемых
     цилиндров  на  дискете и  путь  для  файлов, в  которых  будут сохранены
     считанные  данные (Operating  Directory). Для  каждой копируемой дискеты
     необходимо предварительно (до  запуска FDA) создать отдельный каталог на
     жестком  диске.  Если  ввести пустую  строку,  файлы  будут  помещены во
     временный каталог UNTITLED, который FDA создаст для выполнения операции,
     и который  будет уничтожен  после выхода  из FDA.  Помните, что  на 40 -
     дорожечной 5.25"  дискете 42  цилиндра, на 80  - 84. На  3.5" дискетах в
     действительности 82  цилиндра. Если  об анализируемой  дискете ничего не
     известно,  установите   максимально  возможное  число  цилиндров.  Затем
     считайте  дискету,  создайте и  просмотрите  Report  file.  Если дорожки
     пустые через одну (или замусорены), значит на дискете 42 цилиндра. Здесь
     придется действовать  методом проб  и ошибок,  но иначе  не возможно. По
     окончании   чтения,  FDA   производит  анализ   результатов  при  помощи
     встроенной  системы  искусственного интеллекта  и  формирует  Disk Write
     Sequence (файл DISK.WRI). Если  во время анализа появится красное окно с
     предупреждением   о    невозможности   создания   Write   Sequence   для
     обрабатываемой  дорожки,   продолжите  обработку,  и   по  ее  окончании
     попытайтесь  выполнить  оптимизацию  межсекторных  промежутков  на  этих
     дорожках,  а   если  и   это  не   поможет,  разрешите  "многооборотное"
     форматирование (если оно было запрещено), но для этого придется выйти из
     FDA для редактирования файла FDA.INI (см. далее по тексту).
        После  окончания  анализа в  рабочем  каталоге  (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 или редактор для просмотра текстового файла
     с расширением .RPT, содержащий подробную информацию о считанной дискете.
     Файл разделен  на отдельные  записи о  каждой дорожке.  Запись о дорожке
     содержит номер  цилиндра, головки, число  секторов на дорожке, плотность
     записи  информации  (Low,  Double,  Medium,  High,  Quad),  тип  дорожки
     (Standard  или Non-Standard)  и  межсекторные промежутки.  Все параметры
     даны в  байтах, в соответствии  со стандартом IBM  System 34. Затем идет
     таблица   параметров   всех   найденных   на   этой   дорожке  секторов:
     идентификатор ID (C,H,R,N),  S-S - расстояние между секторами (от начала
     текущего до  начала следующего по  порядку), I-S -  расстояние от начала
     первого  сектора  до  начала  текущего,  CRC  -  контрольная  сумма. Она
     указывается  в виде  строки из  нескольких  символов, каждый  из которых
     соответствует  определенной длине  сектора. Первый  символ соответствует
     длине 0, второй - 1, третий - 2 и т. д. Символы могут быть следующими: .
     - нет информации, O - сектор содержит правильный циклический контрольный
     код для  данной длины, E -  сектор не содержит циклического контрольного
     кода  для данной  длины (эти  символы пользователь может  изменить путем
     редактирования файла FDA.INI). Data type - тип данных (Nor - нормальные,
     Del - удаленные, None - найден идентификатор сектора, но не найдена зона
     данных  этого  сектора  (например,  было  выполнено  прерывание операции
     форматирования  в GAP2),  при этом  в поле CRC  ставится N/A).  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 и т.  д.). Перед работой с  FDA обязательно удалите все диспетчеры
     памяти типа QEMM или EMM386  и отключите кэш - память (на AТ/386 и 486),
     поскольку они  вызывают при работе  переменную временную задержку, из-за
     которой точное измерение  времени становится невозможным. Для выполнения
     калибровки    необходимо   выбрать    плотность   записи    и   вставить
     соответствующую ей  чистую дискету, т.е.  для High и  Quad HD (5.25" или
     3.5"), для остальных - DD. Внимание! Все данные и формат на этой дискете
     будут уничтожены!  Калибровку для каждой  плотности повторите много раз,
     наблюдая  за числами,  появляющимися в  нижней части окна  после каждого
     завершения калибровки. Из - за непостоянства скорости вращения дискеты и
     нестабильности  тактовой  частоты   эти  числа  могут  не  всегда  точно
     повторяться (если числа всегда повторяются, значит дисковод прекрасный),
     но одна  комбинация этих чисел будет  повторяться чаще других. Запомните
     эту  комбинацию,  и  как только  она  очередной  раз  выпадет, закончите
     калибровку  на  этой  плотности  и  перейдите  к  следующей,  или,  если
     полностью закончили, выйдите  в основное меню. Примечание: если появится
     красное окно  "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 коде с  расшифровкой по стандарту IBM System
     34).  В полученном  файле нет  разделения  на секторы.  Из-за неизбежных
     сбоев  синхронизации на  границе каждого  сектора, этот файл  труден для
     просмотра и анализа, здесь необходимо хорошее знание структуры дорожки и
     сектора.  Тем не  менее,  только  таким путем  можно  получить абсолютно
     полную  информацию   о  дорожке,  включая   маркеры,  внутрисекторные  и
     межсекторные   промежутки,  точки   искусственного  прерывания  операций
     форматирования  и записи  независимо  от степени  защиты просматриваемой
     дорожки.   Этот    пункт   предназначен    только   для   подготовленных
     пользователей.
        - Просмотр данных считанной дорожки. Производится при помощи внешнего
     двоичного редактора или  viewer'а небольшого объема, например, WPView из
     пакета  Norton  Commander.  Командная  строка  его  вызова  должна  быть
     предварительно сформирована (см. Viewer & Editor Command Lines).
        - Построение последовательности команд форматирования и записи (Track
     Write  Sequence)  заново с  установкой  индивидуальных  опций построения
     (Build Options) и параметров (ключей), если их общие значения для данной
     дорожки  не годятся.  Выполнение этого  пункта  необходимо только  в том
     случае, если  какая - либо дорожка  с использованием общего набора опций
     построения записалась неудовлетворительно, например, при имитации ошибки
     CRC не отрезался второй байт CRC из - за промаха короткой записи (промах
     вперед),  или,  наоборот, сектор  оказался  подрезанным  (промах назад).
     Значения Build Options и  ключей для построения Track Write Sequence для
     всех  дорожек сразу  после чтения  дискеты,  берутся из  файла начальной
     установки FDA.INI (см. "параметры начальной установки"). Изменения Build
     Options  действительны только  до выполнения  операции, изменения номера
     дорожки  (не  выходя из  пункта),  или  до выхода  из  пункта. Параметры
     начальной установки не изменяются.
        -  Оптимизация межсекторных  промежутков. Уменьшение,  или, наоборот,
     увеличение  межсекторных промежутков  до минимально  допустимой величины
     (Minimum  GPL). Эта  операция требуется  при копировании  систем защиты,
     основанных  на  проверке  GAP4B,  а  также  залезающих  в  область  сбоя
     синхронизации (за индексное  отверстие). Признаком такой защиты является
     наличие  усеченного  последнего  сектора  (длина  которого,  указанная в
     идентификаторе ID,  физически не  вписывается в отведенное  ему место на
     дискете, при этом  в колонке CRC для этого  сектора в Report файле будут
     только точки  или ничего),  иногда имеющего длину,  указанную в  ID, 4 и
     более.  Такие   дорожки  не  всегда   надежно  копируются,  однако,  это
     обстоятельство  не  является ограничением  FDA,  а  имеет принципиальную
     природу,  поскольку   сбой  синхронизации   нельзя  точно  воспроизвести
     никакими средствами. Однако, использование проверки сбоя синхронизации в
     целях  защиты, абсолютно  недопустимо из-за  неустойчивости позиции мест
     сбоя,  образования   ложных  "дырок"  и   "ступенек"  кодов,  случайного
     самопроизвольного восстановления  синхронизации (чаще всего на маркерах,
     но   не   обязательно)   и   других   факторов,   имеющих  нестабильный,
     вероятностный характер, вследствие  чего ключевая метка не будет надежно
     опознаваться  даже  на  оригинале.  Именно  по  этой  причине, некоторые
     системы  защиты   дискет,  рекламируемые,  как  абсолютно  некопируемые,
     нормально работают  не на  всех дисководах, иногда  "киксуют", т.е. дают
     сбой при установке программы на жесткий диск. Более того, ключевая метка
     на  таких  дискетах,   в  силу  ее  чрезвычайной  нестабильности,  легко
     разрушается от  любых незначительных воздействий  на дискету, таких, как
     трение, изгиб,  нагрев, и просто  от времени. Солидные  фирмы никогда не
     используют   "сбойных"    систем   защиты   из-за   неизбежных   проблем
     совместимости  и временной  стабильности,  поэтому за  пределами бывшего
     СССР  они не  применяются. Специалисты  фирмы "Мединком"  (очень высокой
     квалификации),  пытаясь  создать надежную  "абсолютную"  защиту, провели
     огромную работу  по исследованию  возможности использования проверяемого
     сбоя синхронизации для защиты  дискет от копирования, и пришли к выводу,
     что,  несмотря  на заманчивую  простоту  и  кажущуюся привлекательность,
     применение такого  способа защиты дискет  при массовом тираже совершенно
     не  допустимо. Старайтесь  избегать  приобретения и  использования таких
     систем защиты,  но если  уж Вам подобная  попалась и  сделанная копия не
     работает,  воспользуйтесь  программой  COPREGEN.EXE,  входящей  в состав
     пакета,  которая  подкорректирует копию  и  сделает  ее работоспособной.
     Track Write  Sequence при оптимизации  межсекторных промежутков строится
     заново  в  соответствии   с  установленными  опциями  построения  (Build
     Options)  и ключами.  Чем меньше  значение параметра "Minimum  GPL", тем
     эффективнее оптимизация, но при слишком малой его величине возможны сбои
     при  обычном  чтении дискеты  из  -  за того,  что  контроллер  диска не
     успевает  читать  подряд  близкорасположенные  один  за  другим секторы.
     Кнопка  "View" предназначена  для  контроля результата  исполнения вновь
     построенной   при   оптимизации  Track   Write   Sequence,   т.е.  можно
     проконтролировать,  как  будет выглядеть  эта  дорожка  после выполнения
     пунктов Format & Write  Disk или Execute Track Write Sequence. Изменения
     Build  Options действительны  только  до выполнения  операции, изменения
     номера   дорожки  или   выхода   из  пункта.   Оптимизация  межсекторных
     промежутков  на  тех   дорожках,  где  она  желательна  или  необходима,
     выполняется автоматически  по умолчанию, если в  файле FDA.INI в разделе
     "Switches" в предпоследней строке этого раздела стоит "OPT". Если же там
     поставить "NOOPT", оптимизация автоматически выполняться не будет.
        -  "Втиснуть"  отдельные  секторы  в  дорожку.  Некоторые  защищенные
     дискеты не могут быть  скопированы полностью. В основном это относится к
     некорректно составленным и весьма не надежно работающим системам защиты,
     основанным  на  сбоях  синхронизации  при  чтении  (см.  выше).  Однако,
     отдельно  ключевую метку  с  таких  дискет скопировать  можно.  При этом
     получится дискета, не содержащая полезной информации, а только ключевую.
     С  такой дискеты  нельзя  установить  или запустить  программу,  но если
     обычным путем скопировать рабочие файлы с защищенной дискеты (оригинала)
     на жесткий диск и  запустить на выполнение при вставленной в дисковод A:
     дискете, содержащей  только ключевую метку,  программа заработает. Таким
     образом  можно   обмануть  даже  некопируемую   защиту.  При  выполнении
     "втискивания", на  дорожку будут записаны  только те секторы, порядковые
     номера  которых (отсчет  от начала  дорожки) перечислены в  строке "List
     sequential numbers  of sectors to  be squeezed" через  запятую. Сразу за
     порядковым номером сектора через косую черту можно указать число от 0 до
     7, задающее  длину поля, отводимого под  этот сектор путем раздвигания в
     стороны  остальных  перечисленных  в  строке  секторов.  0  означает 128
     байтов,  1 -  256, 2  - 512, 3  - 1024,  и т.д.,  аналогично стандартной
     кодировке длины  секторов. Если  это число  отсутствует, отводится поле,
     соответствующее  параметру "N"  заголовка (ID)  "втискиваемого" сектора.
     Отвод места на дорожке под перечисленные в строке секторы производится в
     порядке  их положения  в строке,  пока есть место.  Как только  место на
     дорожке  кончится,  оставшиеся  перечисленные  секторы  будут урезаться.
     Пример:   9,2/3,7,4,5,6,1.   Сначала   на   дорожку   укладываются   все
     перечисленные  в  строке  секторы в  том  порядке,  в  котором  они были
     расположены на  исходной дорожке (а  не в строке!),  причем в до предела
     урезанном виде (до длины 68 байтов). Затем "втискивается" 9-й по порядку
     сектор,  под него  отводится  поле в  соответствии  с его  заголовком, а
     остальные  уложенные секторы  раздвигаются  в стороны,  чтобы освободить
     место  для 9-го.  Далее,  если еще  осталось  свободное место,  сектор с
     порядковым номером 2 раздвигается  до длины 3, т.е. на 1024 байта, а под
     каждый  из остальных  последовательно отводится  место в  соответствии с
     параметром "N"  его заголовка. Если в  какой-то момент дорожка кончится,
     процесс  "втискивания"  будет  прекращен,  и  оставшиеся  уже  уложенные
     секторы так и останутся  усеченными до 68 байтов. Обратите внимание, что
     "втискивание"  не  может   изменить  порядка  расположения  секторов  на
     дорожке, оно лишь  удлиняет одни секторы (перечисленные первыми) за счет
     выбрасывания (не  перечисленных) или урезания (перечисленных последними)
     других,  менее важных.  Например, если  не удается  копирование дорожки,
     имеющей  в конце  усеченный  сектор с  указанной  в заголовке  длиной 6,
     следует произвести "втискивание" в дорожку только этого сектора, который
     один займет  всю дорожку.  Для этого  укажите в  строке порядковый номер
     этого сектора (например, 10, если он десятый по счету от начала дорожки)
     и больше ничего. Проконтролируйте результат, нажав кнопку "View". Должен
     остаться  только один  сверхдлинный  сектор, содержащий  ключевую метку.
     Таким образом можно обмануть любую защиту и заставить копию заработать с
     ключевой дискетой. Кнопки  "Set Build Options" и "View" действуют также,
     как и в предыдущем пункте.
        - Анализ  и чтение отдельной дорожки.  Анализ и чтение одной отдельно
     выбранной дорожки  с установкой  любой допустимой  плотности записи. При
     этом   формируются  временные   файлы   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 на жесткий диск

        Если   Вы   используете  компьютер   РС   AТ,   то   просто  вставьте
     дистрибутивную  дискету   в  дисковод   A:  или  B:   и  запустите  файл
     FDASETUP.EXE.  Дальнейшие  действия в  диалоговом  режиме.  На выбранном
     диске создается  каталог FDA, в который  помещаются файлы FDA. Текстовые
     файлы  не копируются,  при  необходимости  скопируйте их  сами.  С одной
     дистрибутивной дискеты можно произвести четыре установки FDA.
        На компьютерах, не вполне совместимых с IBM PC AT (например, Compaq и
     Tandy),  может  потребоваться   уточнение  типа  дисковода,  на  котором
     производится  установка. Для  этого следует  указать в  командной строке
     FDASETUP  (и  FDA)  ключ /360,  /1.2  или  /3.5  в  зависимости  от типа
     дисковода, например, FDASETUP /1.2.
        FDA можно запускать прямо с дискеты, без установки на жесткий диск, а
     также с  частичной установкой, т.  е. прямым копированием  всех файлов с
     дистрибутива на  жесткий диск без установки  при помощи FDASETUP. В этом
     случае, при  запуске копии FDA с  жесткого диска, дистрибутивная дискета
     должна стоять в дисководе A: и играет роль ключевой. При этом содержимое
     счетчика установок не изменяется.
        FDA  при  работе  создает  временные  файлы  по  пути,  указанному  в
     переменной окружения TEMP, или, если таковая отсутствует, на корне диска
     С:.  Поэтому, перед  запуском FDA,  следует  внести в  файл AUTOEXEC.BAT
     строку SET  TEMP=<диск>\<путь> для размещения  временных рабочих файлов.
     Кстати,  эту переменную  используют многие  программы, создающие рабочие
     файлы. Для  временных файлов очень  удобно использовать виртуальный диск
     (RAMDrive), однако, помните, что  его объем должен быть не менее 2 Мбайт
     для анализа и копирования дискет  1.2M & 1.44M и 600 Кбайт для дискет на
     360K, в  противном случае используйте  жесткий диск. Пример:  пусть Е: -
     виртуальный  диск  объемом  более  2  Мбайт,  в  этом  случае  введите в
     AUTOEXEC.BAT строку SET TEMP=E:\.
        Внимание: если  при запуске  FDASETUP.EXE появится  сообщение "FDC is
     not  compatible   with  i8272A;  FDA   cannot  operate",  проверьте,  не
     установлен ли какой - либо диспетчер памяти типа QEMM или EMM386. Если и
     после  снятия  диспетчера  FDA  не  устанавливается,  значит  контроллер
     гибкого диска этого  компьютера не совместим с Intel  8272A и NEC 765, и
     FDA  на этом  компьютере  работать  не сможет.  Это  явление встречается
     крайне редко (В России  не встречалось) и относится в основном к дешевым
     "желтым" контроллерам,  не совместимым со  стандартом фирмы Intel. Такой
     контроллер всегда  будет неистощимым  источником различных неприятностей
     при работе с дискетами.

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

        В  текстовом файле  FDA.INI находятся  параметры начальной установки,
     которые в ряде  случаев требуют модификации путем прямого редактирования
     этого  файла   любым  текстовым  редактором.   Файл  состоит  из  строк,
     содержащих  одно число  или  строку символов.  Редактировать допускается
     только  часть  файла, не  содержащую  параметров  калибровки,  а именно,
     начиная с пункта "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 5.6  предельно возможная, и
     никакая система защиты не сможет иметь более точный таймер.
        Abort time adjustments (cut  off CRC bytes): три строки (по умолчанию
     4, 3, 2) устанавливают  отступ точки прерывания операции записи от конца
     записываемого сектора  для имитации  ошибки CRC. Если  эти числа слишком
     малы, возможен  промах вперед,  т. е.  записанный сектор  не будет иметь
     ошибки, если  слишком велики,  теряются последние  байты сектора (промах
     назад).  Эти числа  легко подобрать  экспериментально.  Так же  для трех
     скоростей  передачи  информации.  Если  используется  дисковод  высокого
     качества,  эти  числа  можно  уменьшать  вплоть  до  1.  При  этом будут
     устойчиво  копироваться  лазерные  метки  на  дискете  даже  без подмены
     идентификатора, что ускоряет процесс записи копии.
        Offsets from sector beginning to abort position (to destroy DATA AM):
     три строки  (по умолчанию 55, 55,  55) соответственно скоростям передачи
     информации,  устанавливают   точку  прерывания  операции  форматирования
     (отсчет от  начала сектора)  с целью разрушения  маркера данных сектора.
     Такое прерывание  требуется для создания "пустого"  сектора, т. е. когда
     имеется только идентификатор,  а маркера данных нет. Используется только
     для   создания   "пустого"   сектора   перед   первым   нормальным.  При
     необходимости, эти числа можно подобрать экспериментально. Отклонения от
     оптимума  как в  большую, так  и в меньшую  сторону даже  на одну  - две
     единицы вызывают  нежелательное появление зоны  данных, например, промах
     "вперед",  т.е.  слишком  большое  число  вызывает  появление  сектора с
     ошибкой CRC вместо "пустого" сектора.
        Minimum permissible GPLs  (for Optimize Gaps and Squeeze Sectors into
     Track):  также  три   строки  (по  умолчанию  12,  8,  8)  устанавливают
     минимально   допустимые   зазоры   между   секторами   при   минимизации
     промежутков. Эти числа нельзя выбирать слишком маленькими, поскольку из-
     за   ограниченного  быстродействия,   FDC  не   успевает  читать  подряд
     близкорасположенные  секторы, в  то  же  время, чем  меньше  зазоры, тем
     эффективнее минимизация.
        Switches:  пять  строк  содержат слова  -  ключи.  Первый  ключ может
     принимать  значение  MRF  (разрешено  многооборотное  форматирование для
     уничтожения IAM  и создания  "пустого" сектора  перед первым нормальным)
     или MF (разрешен  только многократный формат дорожки). Следует отметить,
     что  многооборотное   форматирование  -   довольно  капризная  операция,
     поскольку  индексное отверстие  может случайно  попасть на идентификатор
     сектора,  что   вызывает  ошибку,  поэтому,   в  случае  неудачи,  может
     потребоваться ручное корректирование Track Write Sequence (изменение GPL
     в  команде  форматирования   на  одну  -  две  единицы,  соответствующее
     изменение  времени  прерывания форматирования  и  повтор  записи). Кроме
     того,   уничтожать   IAM,  вообще   говоря,   запрещено   из-за  проблем
     совместимости  различных  контроллеров, и  грамотно  составленная защита
     этого делать не должна. Если многооборотное форматирование запретить, то
     дорожка  будет надежно  записана, но  с  несколько меньшей  точностью, а
     также  не  будет  уничтожен  IAM  (очень  претенциозная,  но безграмотно
     составленная защита  может это  проверить). Здесь (и  всегда) практика -
     критерий истины. Второй  ключ может принимать три значения NONE (подмена
     идентификатора   сектора   не  разрешена),   FIRST   (разрешена  подмена
     идентификатора   первого  сектора   для  записи   первого  межсекторного
     промежутка  и имитации  ошибки  CRC  в первом  секторе),  ALL (разрешена
     подмена  всех  идентификаторов). Третий  ключ  задает  действия  FDA при
     залезании последнего сектора в GAP4A (промежуток от индексного отверстия
     до  IAM). Он  может принимать  два значения: MOVE  (запрет подмены  ID в
     последнем секторе и  перенос его записи в  конец Track Write Sequence) и
     IGNORE (игнорирование  залезания). Если  последний сектор  не залезает в
     GAP4A,  этот  ключ   не  влияет  на  построение  Track  Write  Sequence.
     Использование  этих  ключей  рекомендуется  только  специалисту  высокой
     квалификации.  Четвертый  ключ  разрешает  или  запрещает автоматическую
     оптимизацию  межсекторных промежутков  на  тех дорожках,  где  она может
     понадобиться. Если  стоит "OPT" -  автоматическая оптимизация разрешена,
     если "NOOPT"  - то нет.  Пятый ключ разрешает  или запрещает отображение
     предупреждающих красных окон  при возникновении особых ситуаций во время
     анализа и чтения отдельных дорожек дискеты. К таким ситуациям относятся:
        - не удалось построить Track Write Sequence;
        - пришлось затереть IAM;
        - выполнена автоматическая оптимизация межсекторных промежутков.
        Ключ  "WARN"  разрешает  отображение  предупреждающих  окон, "NOWARN"
     запрещает.
        Viewer &  editor command lines: три  строки - командные строки вызова
     viewer'а  для просмотра  Report  File (.RPT),  текстового  редактора для
     Track  Write Sequence  (.SEQ),  viewer'а для  просмотра  двоичных файлов
     (.ABS & .BIN). Эти  строки формируются из первичного текстового меню FDA
     5.6.
        Colors: две  строки, каждая из которых  может содержать слово "GREEN"
     или  "BLUE",  другие  не допускаются.  Первая  строка  задает  цвет фона
     диалоговых окон  (меню), второе  - операционных  окон (индицирующихся во
     время выполнения операций).
        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.

                   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 "Чтение  дорожки"  с такими
     параметрами, что после  ее завершения головка фиксируется точно в начале
     первого сектора  на дорожке,  и одновременно  производится пуск таймера.
     Эту команду необходимо выполнять перед командами, использующими таймер.
        Все значения времени в командах форматирования и записи указываются в
     виде двух  чисел, первое  из которых  означает число  полных оборотов, а
     второе -  число байт  смещения вперед после  последнего полного оборота.
     При  исполнении команды,  первое  число  умножается на  длину  дорожки в
     байтах и суммируется  со вторым числом, таким образом формируется полное
     время.  Второе число  может  быть отрицательным.  Внимание:  если первое
     число  равно  нулю,  а  значение  второго  не  превышает  350,  то перед
     следующей  командой,  использующей таймер,  необходимо  заново выполнить
     команду  позиционирования "P".  Команду  "P" также  необходимо выполнять
     перед  любой командой,  использующей  таймер, если  до  того выполнялась
     команда, содержащая прерывание операции по таймеру.
        Команда "P"  правильно работает только в  том случае, если на дорожке
     имеется адресный маркер начала дорожки (IAM) и хотя бы один сектор.

                                 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 байтов 00,  адресный маркер начала дорожки
     (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 64
      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 64 A 1 33
      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  и будут
     записаны в указанный сектор.
        Параметр  <Len> задает  число байтов,  передаваемых в FDC  при помощи
     DMA.
        Параметр <DTL> является  девятым байтом командной строки FDC и задает
     число записываемых  байтов в  случае, если  <N> равно  нулю, в остальных
     случаях 255.  FDA передает этот параметр  в FDC без изменения независимо
     от <N>.
        Параметр <EOT> является  седьмым байтом командной строки FDC и задает
     номер   последнего  сектора   на   дорожке.  Значение   этого  параметра
     рекомендуется всегда ставить 255.
        Параметр <GPL> является  восьмым байтом командной строки FDC и задает
     ожидаемую  длину  межсекторного промежутка.  Рекомендуемое  значение для
     Track Write Sequence равно 27.
        Функционирование FDC подробно описано в IBM PC Technical Reference.
        После приема команды записи,  FDC переходит в режим поиска на дорожке
     идентификатора  (ID),  совпадающего  с  указанным  в  команде.  В случае
     нахождения  требуемого  ID,  он  переводит  головку  в  режим  записи  и
     записывает  внутрисекторный промежуток  (GAP2),  состоящий из  22 байтов
     4EH, адресный маркер  данных (DATA AM), состоящий  из трех байтов A1H со
     специальным нарушением последовательности  бит синхронизации и байта FBH
     (нормальные данные) или  F8H (удаленные данные), зону данных длиной <N>,
     ее циклический контрольный код (CRC) и первый байт GAP3 - код 4EH.
        На  дорожке могут  находится два  и более  сектора с  одинаковыми ID,
     поэтому в FDA  имеется возможность позиционировать головку в необходимую
     позицию  на  дорожке  перед  подачей  команды  записи  в  FDC  с помощью
     задержки, измеряемой  таймером. Для  этого необходимо  указать в команде
     опцию "P"  и время  от момента пуска  таймера до  момента подачи команды
     записи в  FDC. Если  опция "P" отсутствует,  команда будет  подана в FDC
     немедленно.  Внимание:  для  того,  чтобы  FDC  успел  записать  сектор,
     необходимо некоторое  "упреждение" подачи команды  записи, поэтому время
     позиционирования  должно  составлять   не  менее  22  байтов  до  начала
     записываемого сектора, иначе  запись произойдет только на втором обороте
     диска, или  запишется совсем другой  сектор, если он  имеет тот же самый
     ID.  По этой  же  причине,  при создании  Write  Sequence, рекомендуется
     располагать  команды записи  секторов  не  по порядку  их  следования на
     дорожке, а через  один, с чередованием, что значительно ускоряет запись,
     предотвращая пропуск оборота диска перед записью каждого сектора.
        Операцию  записи можно  прервать до  завершения,  указав опцию  "A" и
     время    от    момента    пуска    таймера    (начало   синхронизирующей
     последовательности ID  первого по  счету сектора на  дорожке) до момента
     прерывания  операции.   Если  опция  "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  с предварительной установкой
     головки  в позицию  -22 байта  от начала первого  сектора на  дорожке. В
     сектор запишется  128 байтов удаленных данных,  смещение от начала файла
     данных 1200Н:
     P
     W 0 0 9 0 D 1200H 128 128 255 27 P 0 -22
        Пример 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 и
     Track Write  Sequence, автоматически построенная системой искусственного
     интеллекта FDA 5.6 для этой дорожки.

     Cylinder: 0
     Head: 0
     Number of Sectors: 11
     Track Recording Density: Double
     Track Type: Non-Standard
     C ══ H ══ R ══ N ══ S-S ══ I-S ══ CRC ═══ DT ══ Offset in Bin File
     0    0    1    2    620    0      EEO     Nor   0          0H
     0    0    2    2    621    620    ..O     Nor   5376       1500H
     0    0    3    2    620    1241   ..O     Nor   1024       400H
     0    0    4    2    620    1861   ..O     Nor   1536       6OOH
     0    0    5    2    620    2481   ..O     Nor   2048       800H
     0    0    6    2    619    3100   ..O     Nor   2560       AOOH
     0    0    7    2    622    3722   ..O     Nor   3072       C00H
     0    0    8    2    622    4344   ..O     Nor   3584       E00H
     0    0    9    2    622    4966   ..O     Nor   4096       1000H
     0    0    19   1    415    5588   .O      Nor   4608       1200H
     0    0    20   2    246    6003   .       Nor   4864       1300H

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

             Double:
     F 1 1 1 64
      0 0 0 0
     P
     F 30 0 17 54 A 2 -68
      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 19 1
      10 2 0 0
      0 0 20 2
     P
     W 0 0 3 2 N 400H 512 255 255 27 P 1 1220
     W 0 0 5 2 N 800H 512 255 255 27 P 1 2462
     W 0 0 7 2 N C00H 512 255 255 27 P 1 3704
     W 0 0 9 2 N 1000H 512 255 255 27 P 1 4946
     W 0 0 2 2 N 1500H 512 255 255 27 P 2 599
     W 0 0 4 2 N 600H 512 255 255 27 P 2 1841
     W 0 0 6 2 N A00H 512 255 255 27 P 2 3083
     W 0 0 8 2 N E00H 512 255 255 27 P 2 4325
     W 0 0 19 2 N 1200H 256 255 255 27 P 2 5567
     P
     W 0 0 20 2 N 0H 1300H 512 255 255 27 P 0 5981 A 1 -68
     END

        Обычно,  при  копировании  дискет,  вряд  ли  придется самостоятельно
     составлять  Write Sequence,  разве  что немного  подкорректировать файл,
     автоматически созданный FDA. Однако, при самостоятельном конструировании
     "хитрых" дорожек, необходимо изучить все тонкости FDC и FDA. И пусть Вас
     не смущает, что такая  защита легко снимется при помощи того же FDA 5.6.
     Всему  на свете  есть предел,  и, конечно, теоретически  (и практически)
     возможно  создать Write  Sequence,  которую не  "раскусит" искусственный
     интеллект FDA, хотя его  уровень очень высок (приведенный здесь пример -
     один  из  самых  простых,  автоматически  распознаются  несравнимо более
     сложные  комбинированные форматы  с каскадным  затиранием и многократным
     или  многооборотным  форматированием). В  Приложении  (файлы  APPENDIX и
     i8272A)  приведено достаточно  информации для  самостоятельного освоения
     техники защиты дискет от несанкционированного доступа и копирования. Эти
     файлы  для   экономии  места   на  дистрибутивной   дискете  записаны  в
     заархивированном  виде.   Использован  архиватор  ARJ.EXE.  Файл  i8272A
     представляет собой полное техническое описание контроллера гибкого диска
     8272A на английском языке.

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

                                       *******

        Отпускная цена FDA 5.6  (4 инсталляции) $10 в руб. почтовым переводом
     на имя Соколова Александра Владимировича (адрес тот же, а/я 108).
        Кроме того предлагаем:
        - Комплект "невидимых"  резидентных драйверов для русификации экрана,
     клавиатуры и матричного принтера CYR 2.3. Цена $6 в руб.
        -   Уникальный  медицинский   рефлексодиагностический   комплекс  для
     массового  контроля  состояния  здоровья  людей  по  методу  риодораку с
     экспертной  системой.  Цена   -  $250  (дополнительная  вставная  плата,
     измерительные электроды, программное обеспечение).
        - Программу RT-11MD для  чтения на РС дискет, записанных в формате ОС
     RT-11 на  компьютерах типа  ДВК, MERA,  Электроника-60 и перекодирования
     файлов из  формата RT-11 в формат  DOS с перекодировкой знакогенератора.
     Цена RT-11MD $6 в руб.
        -  Программу  PolyType,  позволяющую  подключать  к  РС  и  полностью
     поддерживать любые не совместимые  с Epson принтеры, в т.ч. старых типов
     D100,  DZM180,   Robotron,  MC6307,  МС6313  и   любые  другие,  даже  с
     несовместимым   с   РС   интерфейсом   ИРПР   (все   параметры  принтера
     устанавливаются пользователем  в специальном  дескрипторном файле). Цена
     PolyType $7 в руб.
        Обращаться: 141120, Московская обл., г. Фрязино - 5, а/я 108, телефон
     (256) 4-25-96  во Фрязино. Оказываем  квалифицированную помощь по защите
     (и  взлому)   информации,  а   также  по  всем   вопросам,  связанным  с
     приобретением  и  эксплуатацией персональных  компьютеров  и электронной
     техники. Выполняем заказы  на разработку импульсных и тиристорных блоков
     питания любой мощности, технических и программных средств.
        Все с подробным описанием в текстовых файлах.
        Предоплата. Дискеты  (360 К)  высылаются тотчас  после прихода денег,
     ц/б  с  уведомлением   о  вручении,  упакованные  между  двумя  твердыми
     картонками.
        Рассылка   наложенным   платежом  не   производится   из-за  почтовых
     ограничений (максимальная цена ц/б - 1200 руб.).
        В  письма,   направляемые  в  наш   адрес,  вкладывайте,  пожалуйста,
     подписанный конверт  с необходимым  количеством Российских  марок (на 15
     руб в сентябре 1993 г.) для ответа.
                                                      А. Соколов, М. Соколов.
