\page ▄Приложение II. ┬Программа выполнения различных дисковых операций (VFY.COM) Автором данной программы является Терехов С.(ВЦ СО АН, Новосибирск). Программа может выполнять следующие действия: 1) проверку читабельности системных секторов дискеты; 2) проверку правильности FAT; 3) проверку соответствия FAT диска Справочнику (в том числе ищет "потерянные" файлы и вводит их в каталог); 4) проверку читабельности диска с отметкой нечитающихся кластеров; 5) сжатие пустых входов в Справочнике; 6) сортировку каталога по именам, расширениям и размерам; 7) упорядочение кластеров на дискете ("сборка" кластеров, относящих╨ ся к одному файлу). Программа вызывается следующей командной строкой: \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ ┴ A>VFY [┌Дисковод:─] {/┌Ключ─} ┴ , ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- где: ┌Дисковод─ - имя дисковода, в котором находится проверяемая дискета; ┌Ключи: /h - ┌сжатие─ "пустых" входов в Справочнике. Пустые "входы" появляются при удалении файлов. Система при удалении файла заменяет первую букву имени файла буквой русского алфавита "Е", и теперь "вход" считается ┌пустым─. При открытии нового файла он занимает первый встреченный пустой "вход". Поэтому в системе нельзя сделать файл с именем, начинающимся с русской буквы "Е"! /q - ┌упорядочение─ кластеров; /r - проверка "читабельности" всего диска; /s - сортировка Справочника по ┌размерам; /t - сортировка Справочника по ┌типам. /n - сортировка Справочника по ┌именам; Программа в любом случае проверяет читабельность системных секторов на диске. Если хотя бы один из них не читается, программа прекращает работу. В случае сортировки Справочника никаких других функций не выполняет╨ ся. Перед сортировкой из каталога удаляются все пустые "входы", а также выдается сообщение: Sorting directory... При уплотнении каталога (уничтожение "пустых" входов) выдается сооб╨ щение: Directory shuffled При выполнении остальных операций (кроме сортировки) вначале прове╨ ряется соответствие Справочника и ТРФ (FAT). Затем проверяется структу╨ ра файлов в FAT, и все "потерянные" файлы по возможности вводятся в Справочник с именеми LOSTnnn.VFY . При выполнении этой операции возможны сообщения: \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ 1. ┴ юимя─ is double entry for юимя─ ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- Означает, что два входа в каталоге указывают на один физический файл. Ошибка исправляется пользователем ┌вручную─. Сама по себе она не опасна! \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ 2. ┴ юимя─ points not to first cluster of file ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- Означает, что данный файл указывает не на начало физического файла. Ошибка интересная, исправляется ┌вручную. \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ 3. ┴ юимя─ removed: has no clusters ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- Означает, что из Справочника удален файл, не имеющий кластеров. \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ 4. ┴ юимя─ & юимя─ intersects at cluster ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- Означает, что указанные файлы пересекаются в указанном кластере, т.е. этот кластер физически принадлежит двум файлам. Очень интересная ошибка, исправлять ее трудно! \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ 5. ┴ юимя─ entered as юимя─ ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- Означает, что в каталог введен потерянный файл. "Длина" его вычисля╨ ется по количеству в нем кластеров. \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ 6. ┴ юимя─ can't entered ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- Означает, что каталог переполнен и файл вводить некуда. В этом слу╨ чае ничего не происходит. \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ ┴ Если система что-то исправила в ТРФ или в Справочнике, то она ┴ ┴ "сбросит" исправления на дискету перед окончанием работы. ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- Если задан ключ проверки читабельности диска (/r), и не обнаружено никаких "страшных" ошибок в структуре ТРФ, то система начинает пробо╨ вать читать все кластеры в Области данных ("Data area") дискеты. При окончании тестирования физического трека на экране выдается со╨ общение: Track nn tested Если какой-то кластер не читается, то выдается сообщение: \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ ┴ <Ошибка> at cluster nnnn ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ Сообщение ┴ Bad is free ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- означает, что плохой кластер был свободен, и он помечается в FAT кодом EEEh. \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ Сообщение ┴ Bad already marked ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- означает, что кластер уже помечен как "плохой". \/T0/1 ─┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬│ Сообщение ┴ Bad in file юимя─ ┴ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ \/T1/1- означает, что плохой кластер находится в указанном файле. Тип файла ме╨ няется на BAD. После окончания проверки читабельности FAT и Справочник "сбрасывают╨ ся" на дискету, так что если Вы этого хотите, то установите его на за╨ пись. Если задан ключ упорядочивания кластеров на диске (/q), и на диске нет отмеченных плохих кластеров ( при наличии таковых может произойти неприятная история с содержимым файлов! ), то начинается "бурная де╨ ятельность", которая занимает до 15 минут в зависимости от заполнения дискеты. ┌Упаси Вас Бог вынимать дискету из дисковода─ после начала этой опера╨ ции! При любой ошибке обмена с диском во время упорядочения диск может стать частично ┌испорченным.