==================================================================
    (C) март 1985, июнь 1987			7 июля 1987
    Автор: Потемкин М.И., рабочий телефон 135-23-70.
	   ВЦ АН СССР, Москва, ГСП-1, ул. Вавилова, 40.
	   Отдел Вычислительной техники.

        Описанное в данном документе программное обеспечение
    может свободно передаваться другим лицам и организациям,
    с обязательным соблюдением следующих условий:
        1. Передача не может преследовать никаких корыстных
	   целей.
        2. Право свободной передачи не распространяется  на
	   исходные тексты программ.
        3. Программы должны передаваться в том виде, в  ко-
           тором они были разработаны автором, и не  должны
           содержать никаких исправлений, улучшений и  дру-
           гих изменений, сделаных без  личного  разрешения
           автора. Если Вы обнаружили ошибку или у Вас есть
           предложения по улучшению характеристик драйвера,
           сообщите об этом автору. Все  предложения  будут
           по возможности учтены при  подготовке  следующих
           версий.
	4. Нельзя каким-либо образом делать доступными дру-
	   гим лицам или организациям описаные в данном до-
	   кументе программы, не передавая им текст данного
           документа. Не экономьте место на диске  за  счет
           времени автора, потраченного на телефонные  кон-
           сультации.


==================================================================
				- 1 -

	1. ВВЕДЕНИЕ


    В этом файле описан драйвер (программа управления)  для
накопителей на гибких 133-х мм дискетах (НГМД  6022,  6021,
6121, Robotron и др.), подключенных к ЭВМ через  контроллер
"обычной плотности" (с "подорожечной" структурой записи). В
ОС ДВК этот драйвер называется "MX". Название "MX" было со-
хранено для устранения кривотолков (тот это драйвер или  не
тот?), хотя текст программы НЕ ИМЕЕТ НИЧЕГО ОБЩЕГО с  соот-
ветствующей программой из ОС ДВК. Формат записи совпадает с
принятым в ОС ДВК. В тексте приняты обозначения:

    MX ДВК - драйвер, поставляемый с ОС ДВК;
    MX V1  - первая версия драйвера, (март 1985);
    MX V2  - вторая версия драйвера, (июнь 1987).



	2. ОТКУДА ОН ВЗЯЛСЯ ?

    Идея написать драйвер  для  устройства  MX  принадлежит
А. Чморе из ИППИ АН СССР. Он обратился к автору с предложе-
нием о совместной работе по увеличению надежности  хранения
информации на дискетах. Предполагалось, что Андрей разрабо-
тает мощный  проверочный  код  с  возможностью  исправления
группы ошибок, а автор встроит этот код в драйвер. Код  был
разработан, причем предложенная Андреем его программная ре-
ализация выполняла все вычисления в  реальном  времени,  не
замедляя обмен данными с диском. К сожалению, из  накоплен-
ной к этому времени статистики следовало, что основной при-
чиной сбоев являлись ошибки в драйвере MX из ОС ДВК: неуст-
ранимые повторным чтением искажения  информации  закладыва-
лись еще до записи. Если же сбой происходил по вине аппара-
туры, информация чаще всего оказывались искажена  так,  что
никакой контрольный код не мог ее восстановить. В этой  си-
туации автор решил не исправлять ошибки при чтении, а ввес-
ти в драйвер контроль качества записи. Это было  тем  более
оправдано, что новый драйвер даже  с  включенным  контролем
записи работал быстрее, чем его тезка из ОС ДВК.
    В результате появилась первая версия драйвера  (MX  V1,
март 1985), в 1.5 .. 2 раза более быстрая, более надежная и
менее изнашивающая дискеты, чем драйвер из ОС ДВК. Отданный
для пробы в несколько организаций, драйвер неожиданно быст-
ро и бесконтрольно распространился. Поскольку автор не  до-
гадался сделать описание возможностей и особенностей нового
драйвера, процесс распространения сопровождался обилием те-
лефонных звонков (вместо  описания  автор  снабдил  драйвер
своим телефоном), что вызвало недовольство соседей по  ком-
нате. Изготовленное в панике описание уже не могло  сущест-
венно исправить ситуацию.
    Среди большого количества звонков встречались  полезные
- с предложениями по улучшению или с сообщениями  об  ошиб-
ках. Первую ошибку (в подсистеме ликвидации  сбоев  записи)
обнаружил А. Кондрашев, использовавший драйвер при реализа-
ции языка АПЛ. Кроме того, ряд пользователей указал на  не-
приятную задержку вывода  на  экран  при  работе  драйвера.
Большую помощь автору оказал  Р.А.  Бронштейн.  Он  добавил
распечатку текущих значений  параметров,  команду  "SET  MX
SYSGEN", а также инициировал работу  по  созданию  варианта
драйвера, способного работать на разных типах дисководов  и
принимал активное участие в обсуждении возникавших проблем.
В благодарность за это автор взвалил на него нудную  работу
по испытаниям второй версии. (Сказанное никоим  образом  не
означает, что Р.А. Бронштейн несет ответственность  за  ос-
тавшиеся в драйвере ошибки: их  вместе  с  драйвером  делал
все-таки автор, и делиться лаврами он не собирается.)
    В процессе написания драйвера несколько раз выходил  из
строя то дисковод, то контроллер. Каждый раз  М.В.  Кулагин
восстанавливал их работоспособность. Если бы не он, ни пер-
вая, ни тем более вторая версия драйвера никогда на были бы 
завершены.

    При написании первой версии драйвера у автора был боль-
шой соблазн изменить формат  записи  на  дискету:  заменить
способ вычисления контрольных сумм на более надежный,  сде-
лать различимыми верхнюю и нижнюю сторону  дискеты,  ввести
контрольное суммирование заголовка дорожки и  т.п.  Однако,
любое изменение формата привело бы к потере  совместимости:
драйвер MX из ОС ДВК не смог бы читать дискеты,  записанные
новым драйвером. Чтобы не  усложнять  жизнь  пользователей,
формат записи был сохранен без изменеий. При написании  но-
вой версии (весна 1987) оказалось, что программа  не  может
сама определить, с каким дисководом она работает: одно- или
двусторонним, поскольку односторонний  дисковод  игнорирует
сигнал выбора поверхности и выполняет операции чтения/запи-
си всегда с нижней стороной дискеты, а служебная информация
формата не содержит номера поверхности. В  результате  при-
шлось отказаться от автоматического определения типа диско-
вода в драйвере: оператор должен сам разобраться, какой ему
достался дисковод и настроить драйвер на нужный режим рабо-
ты. Программа MXDEF.SAV  может  помочь  оператору,  но  для
определения типа дисковода ей приходится выполнять  пробную
запись на дискету, что, вообще говоря, небезопасно для хра-
нящейся на дискете информации.



	3. РАЗЛИЧИЯ ДРАЙВЕРА MX ИЗ ОС ДВК И MX V1
           (март 1985)

    При изучении драйвера MX из ОС ДВК в нем были обнаруже-
ны ошибки, которые приводили к потере информации при первом
же сбое чтения или записи на дискете. Кроме того,  алгоритм
работы этого драйвера был построен так, что на чтение  каж-
дой поверхности тратились два оборота, а при записи на каж-
дую поверхность расходовались три оборота; при записи  мас-
сива информации, расположеного более чем на одной  дорожке,
во время перехода к соседней дорожке пропускался  четвертый
оборот. Более эффективный алгоритм работы с дисководом  по-
зволяет обойтись одним (даже меньше, если читается  не  вся
дорожка) оборотом на поверхность при чтении и двумя  оборо-
тами при записи (при записи больших массивов - тремя на две
поверхности для двусторонних дисководов). Проще было  напи-
сать новый драйвер, чем  пытаться  исправить  существующий.
Автор так и поступил. Время выполнения команды

	COPY/DEVICE MX0: MX1:

уменьшилось со 105 секунд в ОС ДВК до 48 секунд. Кроме  то-
го, за счет введения тайм-аута на  начало  операции  чтения
драйвер перестал "подвешивать" ОС при обращении  к  пустому
карману дисковода.  До  этого,  если  случайно  происходило
обращение к пустому карману, вывести ЭВМ  из  "подвешеного"
состояния можно было только перезагрузив ОС или  вставив  в
требуемый карман форматированную дискету, ибо карман с  не-
форматированной дискетой воспринимается как пустой.  Коман-
да аварийного прекращения работы "^C" в  этой  ситуации  не
действовала, так как драйвер блокировал все  прерывания,  в
том числе и от клавиатуры.
    В силу аппаратных особенностей контроллер MX может  за-
писывать только целиком поверхность дорожки, а не отдельные
сектора на ней, как это делают другие контроллеры. На  каж-
дой поверхности резмещены 5.5 блоков. Для перезаписи одного
из них надо считать всю поверхность, а  потом  записать  ее
назад, изменив нужный блок (отсюда и два оборота на поверх-
ность при записи). Для этой  операции  драйвер  резервирует
буфер на 5.5 блоков - именно поэтому он занимает так  много
места в памяти и на диске. Существование  буфера  с  самого
начала не давало покоя автору - столько места  используется
только в 10 процентах операций!
    Большинство программ (редакторы, трансляторы, etc.) чи-
тают и пишут даные по-блочно: блоки n, n+1, n+2, ... Диско-
вод в это время начинает характерно клацать, опуская и под-
нимая головку чтения/записи, а драйвер считывает каждую до-
рожку шесть раз подряд, хотя достаточно было бы  и  одного.
Да еще тратит время на подъем и  опускание  головок.  Когда
автор это осознал, в драйвер была добавлена подсистема  об-
служивания таймера. Если MX V1 загружен как системный (т.е.
ОС загружена с дискеты, на которой записан MX V1), он пере-
хватывает прерывания от таймера. Когда таймер включен,  го-
ловка поднимаются не сразу после окончания работы, а спустя
примерно 5 секунд. В течение этого времени он "помнит"  со-
держимое прочитанной дорожки и, если программа обратится  к
следующему блоку данных, драйвер тут же выдаст его содержи-
мое из памяти, не тратя времени на чтение дискеты. Если  же
обращений нет, через 5 секунд драйвер поднимет головку (при
этом на дисководе погаснет индикатор), и содержимое дорожки
будет "забыто", а еще через 20 секунд будет выключен двига-
тель дисковода, чтобы зря не изнашивались дискеты. Скорость
работы ЭВМ при включенном таймере возоастает  на  10  -  40
процентов, в зависимости от программы и расположения данных
на диске. Точных сведений об увеличении срока службы дискет
у автора нет, но ходят слухи, что с драйвером MX V1 дискеты
живут в несколько раз дольше, чем с драйвером  из  ОС  ДВК.
Если Вы располагаете проверенными данными, сообщите их, по-
жалуйста, автору.
    В результате перечисленных мер  драйвер  стал  работать
быстрее и надежнее, но  отказы  оставались  непозволительно
частыми. Тогда в драйвер был добавлен  режим  контроля  ка-
чества записи. Если этот режим включен (командой  SET  MXn:
VERIFY), драйвер сразу после  записи  считывает  дорожку  и
сравнивает ее с содержимым буфера (вот он и  еще  раз  при-
годился!). Обнаружив сбой, драйвер повторит запись и  снова
проверит ее качество. Если драйвер не диагностировал ошибку
записи, значит, данные были успешно прочитаны, и  есть  все
основания полагать, что их можно будет  прочесть  и  потом.
Контрольное чтение увеличивает время записи в 1,5 раза (по-
чти до скорости ОС ДВК), но суммарные потери невелики,  так
как операции записи составляют около 10 процентов  от  всех
обращений к драйверу. Любители острых ощущений, предпочита-
ющие скорость надежности (благо ГАИ не следит за работой на
ЭВМ), могут отключить контроль записи командой SET MXn: NO-
VERIFY.



	4. РАЗЛИЧИЯ ВЕРСИЙ ДРАЙВЕРА V1 (март 1985)
	   и V2 (июнь 1987).

    Как уже говорилось, в новой версии  исправлены  обнару-
женные за два года интенсивной эксплуатации  ошибки:

  -     Исправлена ошибка в алгоритме коррекции сбоя записи
    на дискету. В MX V1 при включенном  режиме  верификации
    записи (SET MXn: VERIFY) драйвер правильно  распознавал
    сбой, но при попытке избавиться от него мог записать на
    дискету неправильную информацию. В  результате  в  роли
    любителей острых ощущений оказались и те, кто не  поль-
    зовался верификацией, и те, кто ею пользовался,  причем
    последние даже в большей степени: если у  первых  плохо
    записанные данные не читались и отказ был явным,  то  у
    вторых хорошо читались неправильные данные. В MX V2 эта
    ошибка исправлена, и режимом верификации можно  пользо-
    ваться безбоязненно.
        Более того, даже если скорость работы  Вам  важнее,
    чем надежность хранения информации, и Вы отказались  от
    контроля за качеством записи (SET MXn: NOVERIFY), драй-
    вер продолжает контролировать  запись  в  блоки  0..12,
    чтобы не допустить искажения каталога дискеты.

  -     Ликвидирован конфликт между  драйвером и программой
    форматирования. В MX V1, если драйвер был загружен  как
    системный (иначе говоря, Вы загрузили ОС с дискеты,  на
    которой находился драйвер MX V1), при работающем тайме-
    ре примерно через 20  секунд  после  последнего  вызова
    драйвер выключал двигатель дисковода; не  подозревавшая
    о таком  подвохе  программа  форматирования  безнадежно
    "зависала". В MX V2 встроенная программа форматирования
    блокирует механизм остановки двигателя на  время  своей
    работы, и нет необходимости выключать таймер перед фор-
    матированием.

  -     При работе на ЭВМ с процессором ВМ3 или другим, за-
    прещающим обращения к нечетному адресу как к  слову,  в
    подсистеме сбора  статистики  возникало  прерывание  по
    ошибке обращения к каналу. В MX V2 некорректная команда
    исправлена, и прерываний больше не возникает.

    Кроме исправления ошибок, в версии V2 сделаны следующие
изменения:

  -     Пользователи MX V1 жаловались, что при работе драй-
    вера информация выводится на экран "кусками",  "порция-
    ми", "плевками" (в зависимости от темперамента сидящего
    за дисплеем человека). Действительно, драйвер из ОС ДВК
    запрещал прерывания от  внешних  устройств  сразу,  как
    только получал управление, и не разрешал их до  оконча-
    ния работы (иногда это занимало  несколько  секунд).  В
    это время вывод на экран был вообще невозможен, так же,
    как невозможно было прервать неправильную  работу  про-
    граммы, набрав на клавиатуре '^C' (ввод  с  клавиатуры,
    как и вывод на экран, происходят по прерываниям). В  MX
    V1 прерывания "приоткрывались" на каждом обороте диске-
    ты. Это дало возможность вводить с клавиатуры по одному
    символу за оборот, но одновременно привело к  неэргоно-
    мичному выводу на экран.
        В MX V2 существенно увеличено время, в течение  ко-
    торого прерывания не запрещены, и вводить символы можно
    в темпе профессиональной машинистки. Кроме того,  драй-
    вер не закрывает прерывания, пока не окончится  начатый
    до его вызова вывод на экран.

  -     В первой версии SET MX: команды, требующие указания 
    номера привода (WRITE/NOWRITE, VERIFY/NOVERIFY,  SPEED)
    нельзя было выполнять под управлением старых версий  ОС
    (ОС ДВК, ОС ДВК-2, ФОДОС, РАФОС, РАФОС-II и RT-11  вер-
    сий меньше V05). Мониторы этих версий  неправильно  ин-
    терпретируют номер привода в команде. Многие  пользова-
    тели подвержены (не всегда здоровому)  консерватизму  и
    не желают ни за какие коврижки  в  виде  новых  команд,
    ключей и возможностей менять  раз  и  навсегда  обжитую
    версию ОС. Специально для таких пользователей, а  также
    для нетривиальных случаев подготовки дискет к  загрузке
    с дисковода другого типа, в MX V2 все  SET  MX  команды
    можно выполнить, вызвав драйвер как  обычную  программу
    командой

        RUN [dev:]MX.SYS

    где [dev:] означает необязательное  имя  устройства,  с
    которого Вы вызываете драйвер. В ответ на подсказку

        MX>

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

        .RUN SY:MX.SYS
        MX>/T:MX1:80./N:MX1:SID/Y:MX1:SKI/L

    эквивалентны команде

        .SET MX1: TRACKS=80 NOSIDEUP SKIP LIST


  -     В MX V2 добавлена возможность работы с разными  ти-
    пами дисководов. Для этой цели был переработан механизм
    установки параметров, ведены новые SET  MX:  команды  и
    командный интерфейс в формате CSI. В  файле  HELP.MX  в
    сведены в таблицу все допустимые для MX V2 команды.
	
  -     В MX V2 программа форматирования  дискет включена в 
    файл драйвера. Этим "выстрелом" удалось подстрелить це-
    лую стаю  зайцев.  Во-первых,  освободилось  дефицитное
    место на системном диске. Размер файла MX.SYS не увели-
    чился, а с системного  диска  можно  удалить  программу
    форматирования объемом 4 блока (FM6022 от  MX  V1),  13
    (MXFORM или FORMAT из ОС ДВК) или даже 39 (TSTGMD из ОС
    ДВК, которую многие держат на  системном  диске  только
    для форматирования дискет). Во-вторых, возросли возмож-
    ности программы форматирования. Индивидуально для  каж-
    дого привода можно указывать, сколько сторон и  сколько
    дорожек надо  отформатировать.  Можно  на  двустороннем
    дисководе сформатировать дискету для  одностороннего  и
    т.д. В-третьих, устранен конфликт между программой фор-
    матирования и драйвером. В-четвертых,  не  надо  каждый
    раз при вызове программы форматирования указывать  тре-
    буемый формат. Если при вызове  программы  в  командной
    строке не было явного указания формата, выбирается фор-
    мат, установленый в драйвере для данного  привода.  На-
    пример, если раньше была выполнена команда

	SET MX1: TRACKS=80 NOSIDEUP SKIP

    (т.е. "настроить двусторонний  80-дорожечный  дисковод,
    установленный как привод  MX1:,  для  форматирования  и
    записи дискет в  формате  одностороннего  40-дорожечно-
    го"), то последующий вызов программы форматирования

	SET MX: FORMAT

    будет фоматировать дискеты в  приводе  MX1:  в  формате
    одностороннего 40-дорожечного дисковода.
	
  -     В MX V1 выполнение любой SET MX: команды  приводило
    к перезаписи блоков 0 и 1 файла MX.SYS. В MX V2 переза-
    пись происходит только при выполнении SET  MX:  команд,
    изменяющих текст драйвера.
	

	5. КОМПЛЕКТ ПОСТАВКИ.


    Если Вы получили драйвер непосредственно от автора,  на
Вашей дискете должны быть:
    - Монитор операционной системы RT-11/SJ V05.00;
    - основные драйверы (MX.SYS,LP.SYS,TT.SYS,DX.SYS);
    - редактор командной строки SL.SYS, который можно
      использовать и как NL:;
    - несколько служебных файлов (STARTS.COM);
    - основные утилиты (PIP.SAV,DIR.SAV,DUP.SAV,RESORC.SAV)
    - описание драйвера MX в файле README.MX
    - программа определения характеристик дисковода 
      MXDEF.SAV

    Все файлы, за исключением MX.SYS, README.MX и MXDEF.SAV
являются стандартными файлами  операционной  системы  RT-11
версии 5.0, известной также под псевдонимом ФОДОС-2.  Мони-
тор отличается от стандартного тем, что не требует  присут-
ствия на системном диске файла SWAP.SYS объемом 26  блоков.
Если этого файла нет, система загружается и успешно работа-
ет, пока не введены команды 

        SET USR  SWAP
 или    SET EXIT SWAP.

Если файл SWAP.SYS есть на системном диске, поведение  сис-
темы не отличается  от  описанного  во  всех  руководствах.
Создать файл SWAP.SYS можно командой

	CREATE SY:SWAP.SYS/ALLOCATE:26.

    Дискета записана в формате двустороннего 40-дорожечного
дисковода. (Две дискеты в формате  одностороннего  40-доро-
жечного дисковода.)

	ПРИМЕЧАНИЕ. В настояще время программа MXDEF не по-
		    ставляется.


	6. УСЛОВИЯ ПРИМЕНЕНИЯ


    Для нормальной работы драйвера MX необходимо иметь:
	- исправную микро-ЭВМ ДВК-2М или ДВК-3М с
	  контроллером обычной плотности и дисководом;
	- дискету, на которой записана операционая система
	  ОС ДВК или RT-11 версии не меньше 4.0;
	- дискету, на которой записан драйвер MX в 
	  приведенном выше "комплекте поставки".

    Драйвер может работать как системный в ОС РАФОС-II, ФО-
ДОС-2, ФОДОС-3, ОС ДВК-2 и RT-11 версий V4.0 и старше.  Не-
которые "SET MX: ..." команды  доступны  только  начиная  с
версий RT-11 V05.00 и старше (ФОДОС-2, ФОДОС-3). Для выпол-
нения соответствующих действий можно пользоваться  дополни-
тельным командным интерфейсом в формате CSI, но лучше  все-
таки сменить версию эпохи мини-юбок на более свежую. Что Вы
носите из одежды, купленной в 1976 (РАФОС, ОС  ДВК)  или  в
1979 (РАФОС-II, ОС ДВК-2) году? А ведь и ФОДОС-3 - это все-
го лишь 1984 год. Что Вы тогда носили? Если Вас не убеждает
сравнение ОС с одеждой, то вот другая аналогия:

        РАФОС, ОС ДВК         - вигвам, курная изба с 
                                удобствами во дворе;
        РАФОС-II, ОС ДВК-2    - дом с мусоропроводом 
                                (SPOOL), но без удобств;
        RT-11 V05.00          - дом с мусоропроводом,
                                лоджией и всеми удобствами;
        RT-11 V05.02, V05.04  - то же, но с изменяемой
                                планировкой.


        7. SET MXn:  КОМАНДЫ И ИНТЕРФЕЙС В ФОРМАТЕ CSI

    Многообразие типов поставляемых с ДВК дисководов заста-
вило отказаться от ссылок на конкретное название (например,
НГМД 6121) при описании команд. Удобнее оказалось использо-
вать обозначение с указание  возможностей дисковода в виде
"D<число дорожек>/<число поверхностей>":

    D40/2   - 40 или 35 дорожек, двусторонний;
    D40/1   - 40 или 35 дорожек, односторонний;
    D80/2   - 80 дорожек, двусторонний;
    D80/1   - 80 дорожек, односторонний.

Если вместо <числа дорожек> или <числа поверхностей>  стоит
символ 'x', соответствующий параметр может принимать  любое
значение, например:

    D40/x   может быть  D40/1 или D40/2, а
    Dx/1    означает D40/1 или D80/1.
    Dx/x    соответствует любому типу дисковода.

    Формат записи на дискету как правило, соответствует ис-
пользуемому типу дисковода. Соответственно, форматы  записи
обозначаются:

    F40/2   - 40 дорожек, с двух сторон;
    F40/1   - 40 дорожек, с одной стороны;
    F80/2   - 80 дорожек, с двух сторон;
    F80/1   - 80 дорожек, с одной стороны.

    Если в команде надо обязательно указать номер  привода,
например, "MX0:" или "MX2:", об  этом  говорит  обозначение
"MXn:" в отличие от "MX:", которое показывает, что в данной
команде номер привода несущественен. Если в команде  должен
быть числовой аргумент, он обозначается:

    vv  - двузначное десятичное число;
    vv. - двузначное десятичное число, после которого
          следует символ точки '.';
    ooo - восьмеричное число.

    При описании каждой SET MX: команды приводится соответ-
ствующая ей командная строка, вводимая  в ответ на подсказ-
ку "MX>" после вызова драйвера MX как программы командой 

        RUN [dev:]MX.SYS

где [dev:] - необязательное имя устойства, с  которого  вы-
зывается драйвер.

    7.1 Как меняется драйвер ?

    Во время работы ОС драйвер может существовать  в  одном
экземпляре - на диске, или в двух - в  памяти  (загруженный
драйвер) и на диске. Кроме того, во  время  выполнения  SET
MX: команды в памяти находится еще одна копия,  загруженная
не как драйвер, а как программа. По  умолчанию,  любая  SET
MX: команда меняет драйвер на диске и (если драйвер  загру-
жен) в памяти. Если по каким-либо причинам Вы хотите  изме-
нить только загруженный в память драйвер, добавьте в список
SET-параметров параметр MEMORY (ключ /M). Например, команда

        .SET MX: RETRY=1 MEMORY
    или MX>/R:1/M

изменит только загруженный драйвер. Аналогично, если Вы хо-
тите изменить только драйвер на диске, не меняя загруженный
драйвер, добавьте  в  список  SET-парметров  параметр  DISK
(ключ /D). Например, команды

        .RUN MX1:MX.SYS
        MX>/N:MX0:SID/D

изменят находящийся на дискете в приводе MX1:  файл  MX.SYS
так, что он будет работать с приводом MX0: как  с  односто-
ронним, но не изменят загруженного в память драйвера. Нако-
нец, если в списке параметров встретятся и MEMORY  и  DISK,
изменения будут сделаны только в той копии драйвера,  кото-
рая загружена как программа и нигде не сохранятся.

    7.2 Управление временем перемещения головок.

        .SET MXn: SPEED = vv (для MX V1)
        .SET MXn: WAIT = vv  (для MX V2) ( 10 <= vv <= 99)
    или MX>/W:vv.
    или MX>/W:ooo

    Задает временной интервал для перевода головок  на  со-
седнюю дорожку при позиционировании головки. Интервал уста-
навливается равным vv/2 миллисекунд. Для большинства диско-
водов типа НГМД-6022 достаточно 12,5 мс (vv =  23),  а  для
Robotron-.... - 8 мс (vv =  16).  В  поставляемом  драйвере
vv = 27, что достаточно для любого известного автору диско-
вода. Программа MXDEF может определить vv  для  конкретного
дисковода.

    7.3 Установка числа дорожек

        .SET MXn: TRACKS = vv   ( 2 <= vv <= 99 )
    или MX>/T:MXn:vv.
    или MX>/T:MXn:ooo

    Основное назначение этой команды  -  задавать  драйверу
тип дисковода: D40/x или D80/x. Однако,  большинство  D40/x
реально могут читать и писать 41, 42 или 43 дорожки, так же
как большинство D80/x работают с 81, 82, ...  дорожками.  В
условиях крайнего дефицита места на диске можно  установить
для  своего  дисковода  нестандартное  количество  дорожек.
Драйвер автоматически изменит объем соответствующего приво-
да, но отформатированные и записанные на этом приводе  дис-
кеты могут не прочитаться на другом, с меньшим числом доро-
жек. Для определения точного числа дорожек можно воспользо-
ваться командой:
	
        .SET MXn: TRACKS = vv MEMORY DISK FORMAT,

которая отформатирует дискету на указанной  число  дорожек,
не меняя драйвер. Если форматирование завершится  без  оши-
бок, можно изменить и сам драйвер командой

        .SET MXn: TRACKS = vv

    В поставляемом драйвере  количество  дорожек  для  всех
приводов установленно равным 40.


    7.4 Задание числа повторов при сбоях.

        .SET MX: RETRY = vv         ( 0 <= vv <= 8 )
    или MX>/R:vv.
    или MX>/R:ooo

    Параметр RETRY определяет, сколько  раз  драйвер  будет
повторять неудачно завершившуюся операцию, прежде чем  при-
дет к выводу о неустраимости сбоя. Рекомендуется  выполнять
команду

        .SET MX: RETRY = 0 MEMORY

перед проверкой диска на плохие блоки командой

        .DIRECTORY/BADBLOCK/FILE MXn:
	
чтобы блоки, прочитанные только с 8 попытки не считались 
хорошими. В поставляемом драйвере RETRY=8.



    7.5 Разрешение/запрещеие записи.

        .SET MXn: NOWRITE
        MX>/N:MXn:WRI

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

        .SET MXn: WRITE
        MX>/Y:MXn:WRI

    Разрешает выполнять запись на  указанный  привод.  Этот
режим установлен в поставляемом драйвере для всех приводов.




    7.6 Включение/выключение контроля записи.

        .SET MXn: VERIFY
        MX>/Y:MXn:VER

    Включает контроль качества записи на указанном приводе.
Время выполнения операций записи возрастает в 1,5 раза, но,
поскольку эти операции составляют  около  10  процентов  от
всех обращений к драйверу, общая скорость работы  снижается
незначительно. После записи поверхности драйвер тут  же  ее
считывает и, если обнаружено  искажение  данных,  повторяет
запись и снова ее проверяет. Если драйвер не диагностировал
ошибку записи, значит, данные были считаны успешно  и  есть
основания верить, что их можно будет считать и потом.
    Этот режим установлен в поставляемом драйвере для  всех
приводов.

        .SET MXn: NOVERIFY
        MX>/N:MXn:VER

    Отключает контроль записи на указанном  приводе.  Время
выполнения операций записи уменьшается в 1,5 раза,  но  ка-
чество записи не гарантируется.



    7.7 Настройка драйвера на тип дисковода

    Для настройки  драйвера  на  конкретный  тип  дисковода
предусмотрены три SET  MX:  параметра:  TRACKS,  SIDEUP,  и
SKIP. Параметр TRACKS был рассмотрен ранее.

        .SET MXn: SIDEUP
        MX>/Y:MXn:SID

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

        .SET MXn: NOSIDEUP
        MX>/N:MXn:SID

    Запрещает работу с верхней стороной дискеты (односто-
ронний формат).

    Обычно для  перемещения  головки  на  соседнюю  дорожку
драйвер делает один шаг. Этот режим установлен в поставляе-
мом драйвере для всех приводов и ему соответствует команда

        .SET MXn: NOSKIP
    или MX>/N:MXn:SKI

Однако, если надо прочитать дискету  в  формате  F40/1  или
F40/2 на D80/1 или D80/2, для перехода на соседнюю  дорожку
надо делать два шага, так как на D80/x дорожки  расположены
в два раза чаще, чем на D40/x. Для чтения дискет в  формате
F40/x на D80/x нужна команда

        .SET MXn: SKIP
    или MX>/Y:MXn:SKI


    7.8 Вызов встроенной программы форматирования

        .SET MX: FORMAT
        MX>/F

    Вызывает встроенную  программу  форматирования  дискет.
Если FORMAT - единственный параметр в команде, будущий фор-
мат дискеты определяется сделанными ранее  установками  для
того привода, на котором  происходит  форматирование.  Если
кроме FORMAT были и другие параметры, сначала модифицирует-
ся драйвер, а потом начинается форматирование, уже с новыми
установками.
    Программа запрашивает номер привода, на котором Вы  со-
бираетесь форматировать дискеты. Если вместо ответа  нажать
"^C", программа завершит работу, ничего не форматируя. Пос-
ле ответа на этот вопрос программа просит  вставить  в  вы-
бранный привод дискету и нажать клавишу <ВК>. После нажатия
<ВК> начинается форматирование, а  после  него  контрольное
чтение дискеты. При форматировании на дискета прописывается
кодом 177777, самым "трудным" для  последующего  чтения  (В
отличие от программ форматирования из ОС ДВК, которые пишут
самый "лекгий" код - 000000). Этим  объясняется  тот  факт,
что при форматировании некоторых дискет, успешно форматиру-
ющихся в ОС ДВК, печатаются сообщения об ошибках.
    Для завершения форматирования вместо <ВК> нажмите "^C".
Программа повторит вопрос о номере привода. Чтобы быйти  из
программы, нажмите "^C" еше раз.

    Не рекомендуется форматировать дискеты в формате  F40/x
на D80/x. Если Вам надо перенести данные с D80/x на  D40/x,
лучше отформатировать дискету на D40/x, а на  D80/x  только
записывать данные.

    Из-за выяснившейся в последний момент  странности  про-
цесса форматирования  на  дисководе  Robotron  в  программу
вставлена задержка, которая увеличила время работы на  дву-
сторонних дисководах. Как только выяснится  причина  сбоев,
задержка будет устранена.



    7.9 Печать информации о драйвере

        .SET MX: INFORM
        MX>/I

    Печатает информацию о драйвере, авторе и краткий  спра-
вочник о SET-параметрах и их аргументах.

        .SET MX: LIST
        MX>/L

    Для каждого привода печатаются текущие  значения  пара-
метров (число дорожек, время перехода, число поверхностей,
etc.).



    7.10 Смена параметров генерации

    Монитор ОС требует, чтобы параметры генерации  работаю-
щих с ним драйверов совпадали с его собственными. Если  при
попытке установить драйвер в системе Вы получили  сообщение
"Conflicting SYSGEN options" - "несовпадение параметров ге-
нерации", воспользуйтесь командой

        .SET MX: SYSGEN

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



    7.11 Остановка двигателя дисководов.

    Если драйвер используется не как системный, он не имеет
возможности определить, что к нему долгое время нет обраще-
ний, и не выключает двигатель дисковода. Чтобы  не  изнаши-
вать дискеты, после работы с MX: можно остановить двигатель
командой

        .SET MX: QUIET


ПРИМЕЧАНИЕ.  Команды SET можно выполнять до установки драй-
             вера в системе.



        8. ПРИМЕР НЕСТАНДАРТНОГО КОПИРОВАНИЯ ФАЙЛОВ

    Предположим, чот Вам надо перенести информацию,  содер-
жащуюся в файлах FILE1.PAS, FILE2.PAS, FILE3.PAS с D40/2 на
D80/1. Для этого надо выполнить следующие действия:

    1. Загрузить систему с D40/2, привод MX0:.
    2. Выполнить команды:
        .SET MX1 NOSIDEUP MEMORY FORMAT
            <диалог с программой форматирования>
        .INITIALIZE/NOQUERY MX1:
        .COPY/WAIT MX0:(FILE1,FILE2,FILE3).PAS MX1:
            <копирование с перестановкой дискет по подсказ-
             кам PIP>
        .SET MX1 SIDEUP MEMORY

    3. Перейти к ЭВМ с D80/1.
    4. Загрузить ОС на этой ЭВМ с привода MX0:.
    5. Вставить принесенную дискету в MX1:
    6. Выполнить команды:
        .SET MX1: SKIP TRACKS = 40 MEMORY
        .DIR MX1:
            <убедиться, что каталог прочитан верно>
        .COPY MX1: MX0:/WAIT
        .SET MX1 NOSKIP MEMORY

    На этом операцию по переносу файлов можно закончить.


    Аналогичноым образом можно перенести ОС с D40/2 на 
D80/1:

    1. Загрузить систему с D40/2, привод MX0:.
    2. Выполнить команды:
        .SET MX1 NOSIDEUP MEMORY FORMAT
            <диалог с программой форматирования>
        .INITIALIZE/NOQUERY MX1:
        .COPY/SYSTEM MX0:(RT11SJ,TT,SL,MX).SYS MX1:
        .COPY MX0:(PIP,DIR,DUP,RESORC).SAV MX1:
            <больше на MX1: не поместится>
        .RUN MX1:MX.SYS
        MX>/Y:MX0:SKI/N:MX0:SID/N:MX1:SID/T:MX1:80./L
            <по ключу /L драйвер распечатает новые значе-
             ния параметров. Убедитесь, что они соотвест-
             вуют:
                .SET MX0:  SKIP NOSIDEUP TRACKS = 40
                .SET MX1 NOSKIP NOSIDEUP TRACKS = 80 >
        .COPY/BOOT MX1:RT11SJ MX1:
        .SET MX1 SIDEUP MEMORY

    3. Перейти к ЭВМ с D80/1.
    4. Вставить принесенную дискету в MX0:
    5. Загрузить ОС на этой ЭВМ с привода MX0:.
    6. Выполнить команды:
        .SET MX1: FORMAT
            <отформатировать будущую системную дискету в 
             формате F80/1>
        .INITIALIZE/NOQUERY MX1:
        .COPY/SYSTEM SY: MX1:
        .RU MX1:MX.SYS
        MX>/T:MX0:80./N:MX0:SKI/L
            <Убедитесь, что MX0: и MX1: соответствуют
                .SET MX0: TRACKS = 80 NOSIDEUP NOSKIP
                .SET MX0: TRACKS = 80 NOSIDEUP NOSKIP >
        .COPY/BOOT MX1:RT11SJ MX1:
        .BOOT/WAIT MX0:
            <переставьте дискету из MX1: в MX0:, ответьте
             "Y" на вопрос "Continue?" - и у Вас загрузится
             уже родная для D80/1 ОС >
