ПЭВМ Агат » Мастерская » Линк 2 » Help для Мост140

Линк 2: Help для Мост140

Архив с софтом для Мост140

Оглавление страницы:

* * *

Первое включение устройства

Для работы понадобится компьютер с LPT портом (или LPT картой). Нужно чтоб на нём был установлен Win98 или MS-DOS, другие варианты (загрузка с Live-CD/Флешки или через эмуляторы типа DOSBox) возможны, но не изучены.

Адрес порта LPT вкомпилирован в программы, и имеет значение - $378. Поэтому проверяем настройки в BIOS, и ставим режим EPP1.7 или EPP1.9:

Флоп 140Кб от АГАТ(тип 5088) подключается штатным кабелем к разъему AGAT FDD.
Флоп 140Кб от Apple/Правец подключается штатным шлейфом к разъему APPLE FDD.
! устройство работает только с первым приводом (который был бы загрузочным) !

Питать устройство можно от БП компьютера, с которым он работает, вытащив свободный MOLEX через заглушку на задней стенке. Либо питать от отдельного блока AT/ATX, коннектором MOLEX или ATX.

Следует помнить что в отличии от АГАТовских, дисководы Apple/Правец требуют наличия "-12в". Для такого варианта лучше всего подходит питание от отдельного БП по ATX коннектору. Но можно и по коннектору MOLEX, тогда потребуется установка элемента V1 (конвертер DC/DC).

Дальше подключаем МОСТ к LPT разъему, можно через LPT-удлинитель. Через экранированный шнур длиной пару метров оно у меня работает.

COM-порт нужен только для смены прошивки.

Помните, что конструкция открытая, дорожки все неизолированы. А по ним бегают электрончики. И по корпусам блока питания и компа тоже бегают. Неудачные соприкосновения одного с другим (при поданном напряжении питания) может иметь различные последствия вплоть до фатальных.

Маленькая кнопка: она делает RESET. Иногда её имеет смысл нажимать, когда мост не используется, но перед этим глючил. Ну или перед началом работы, после включения питания.

Тестировать сперва лучше под чистым досом или в "режиме эмуляции ms-dos" (это, конечно, никакая не эмуляция, а именно дос и есть, просто так в микрософте названия любят придумывать). Технически мост работает и под win98 в окне, но могут быть задержки в скорости при передаче больших объёмов данных.

Сначала, после соединения всех разъёмов, можно подать напряжение на контроллер. Он работает только с первым приводом (который был бы загрузочным). При включении или сбросе контроллер даёт вам возможность визуально проверить основные части дисковода: четыре раза включает/выключает основной двигатель и индикатор на дисководе, затем рекалибрует головку. Это сразу показывает, что нормально запустился контроллер, что работает тактовый генератор и подано питание на дисковод. Наличие PC для этого теста не обязательно.

Дальнейшие тесты идут под управлением PC.

* * *

Тесты

CLOCK.exe - его можно просто запустить без параметров, он проверяет работу EPP-порта на инфранизкой скорости, а также тактовый генератор моста. Проверка идет подсчётом секунд таймером моста и PC-шным. Результат выводится в две колонки, если всё правильно, колонки не должны разойтись (ну или чуть-чуть в конце и не каждый раз). Считает оно до 250 секунд.

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

* * *

SPEED.exe - тест скорости дисковода. Дискета должна быть установлена, но запись на неё не выполняется, , но нужно, чтобы хотя бы чуть-чуть её форматирование соответствовало ДОС-стандарту данного дисковода (технически: в качестве индекса используется поле адреса нулевого сектора, номер трека не проверяется). Время должно быть 200 мс на оборот, ну там плюс-минус (обычно +- < 3 мс).

Меня устроило что мои дисководы давали 199-201. Во второй колонке выводится среднее время.
Этот тест не перемещает головку дисковода, но она должна быть на какой нибудь нормальной дорожке. Если идёт постоянная ошибка "не дождался сигнала индекса", возможно, имеет смысл пошевелить головку рукой.
Точная скорость довольно важна для записи дисков, для чтения же можно о ней сильно не переживать. Особенно если она понижена (Т.е. время в пределах 200-205 - обычно нормально воспринимается декодером. Если диск нормальный, он вообще может читаться где-то в диапазоне 190..210 мс).

Также следует помнить, что при чтении раритетных дисков, которые были записаны хрен знает как на черт знает чём, возможно, имеет смысл при чтении образа подкручивать скорость и следить за результатами: если дисковод записи был сильно расстроен, то и успешное чтение может потребовать изменения скорости.

* * *

POS.exe - тест позиционера головки. Он, собственно, не столько тест сколько просто программка для развлечения и отладки моста. Ну может ещё полезен для ремонта дисковода. Дисковод включается и стрелками влево/вправо можно гонять головку, а пробелом возвращать её на нулевой трек. Прога также пытается подсчитывать текущий номер цилиндра, причем подсчёт идёт в формате фаз - т.е. две фазы на каждую, используемую для хранения данных, дорожку. Стрелками вверх/вниз можно менять время включения очередной фазы, тем самым, исследуя механические характеристики вашего привода.

Программой удобно пользоваться при очистке головок дисковода, выбирая на чистящем диске место посвежее :)

* * *

SPTEST.exe - тест EPP (запускается с аргументами "l" и "h"). Первый - мягкий тест. Он пытается оценить скорость канала, если она будет задаваться компом. У меня получалось что-то вроде 900 кб/с. Этот тест должен пройти любой комп, в т.ч. под windows. У меня первый пень его проходил и другие компы. Причем скорость мало зависела от CPU.
Второй тест - жесткий. Там скорость задает мост, и если этот тест проходит, он может достигать скоростей раза в полтора больше (1440 кб/с). Но его пройдет не любой комп (Тут дело даже не в CPU, я думаю, а в микросхеме SuperIO/LPC и/или чипсете. А под виндой он, вероятно, не пройдет вообще. Но попробовать можно.
Оба теста длятся 10 секунд и завершаются сами.

Если проходит первый тест, но не второй - это не повод не пробовать реальное снятие данных с дискет.

Пользоваться так: SPTEST.exe l или SPTEST.exe h.

* * *

duplex.exe - тест двух направлений. Важен для записи дисков. Полноценного дуплекса EPP не обеспечивает, но направление может меняться в любой момент, что и проверяется, в т.ч. с большим количеством данных. Также проверяется буферизация обоих направлений мостом.

Скорость этот тест показывает невысокую, у меня было около 10 кб/с, но важно, чтобы не было ошибок.

* * *

Снятие образов с дисков

cat.exe - просмотр каталога диска. Она просто читает каталог дискеты, по каналу передаются уже декодированные данные, каталог выводится на экран, пауза - кнопкой PAUSE, если есть русификатор, русские буквы тоже будут видны.

Какого либо восстановления/перечитывания в случае ошибок не выполняется, каталоги понимает только обычные, формата dos33 (onix и прочее - нет). Это просто чтобы быстро глянуть - что там есть. Эта программа не выполняет никаких рекалибровок головки, поэтому, если перед этим головку куда нибудь двигали руками, результатом будет "I/O Error"

* * *

GET_DSK.exe - чтение в формат .dsk. В качестве аргумента ей указывается имя создаваемого образа. Две версии (get_dsk0 и get_dsk1) отличаются въедливостью и временем чтения: первая снимает образ очень быстро, не особенно заморачиваясь на рекалибровки головок и прочее, вторая же мусолит диск по максимуму, сравнивая варианты чтения и пытаясь слегка покачивать головку. Однако описываемая далее get_nibb.exe всё равно снимет образ плохого диска достовернее и, в зависимости от особенностей ошибок, быстрее. При чтении выводится карта результатов, пояснения к ней даёт сама прога в начале работы.

Её имеет смысл использовать чтобы быстро снять содержимое известного (не архивного и нормально читающегося) диска сразу в dsk. Для качественного вычитывания дисков она не годится.

Пользоваться так: GET_DSK0.EXE diskname.dsk или GET_DSK1.EXE diskname.dsk, где diskname - желаемое имя для образа.

* * *

GET_NIBB.exe - чтение диска в формат .eim. Это самая главная программа, благодаря которой вычитывались все диски для сайта AGATCOMP. Если вы собираетесь сдампить свою или чужую коллекцию Агатовских дисков - это то, что надо. Плохо читающиеся и разрушенные диски, защита от копирования и нестандартное форматирование - это её стихия. Вообще программа готова к различным подлянкам на диске.

Пользоваться так: GET_NIBB.EXE diskname.EIM , где diskname - желаемое имя для образа.

!! Важно: если образ с таким именем уже существует, программа будет дополнять его новыми данными !!
По задумке, такая функция служила для многократного чтения диска в один файл. Но на практике без особой надобности такой способ применять не удобно. Даже если читать одну и ту же дискету на разных дисководах, предпочтительнее сохранять результаты в отдельных EIM.

Если чтение дорожки проходит успешно, происходит переход к следующей, если есть проблема - программа пытается её перечитать, до 6-8 раз. Причем все попытки будут сохраняться в EIM (отсюда у них приличный размер - до 10 мб запросто, хотя мне однажды попалась дискета, которая заняла 70 Мб, но он хорошо сжимается архиваторами).
Независимо от результатов, диск проходится четырежды. Просто на всякий случай и для сравнения результатов проходов, чтобы уменьшить случайные ошибки.

Если в процессе PC не успевает принимать данные - появляется сообщение "ошибка перебегания", система вновь установит контакт. Это не страшно, но каждый сбой заметно тормозит работу, т.к. синхронизация занимает чуть больше 2 секунд. Обычно на дискету таких сбоев бывает 2-4, если больше - можно попробовать настроить PC: может быть отключить отложенную запись на HDD или что-то ещё.

Если что-то прочитать всё таки не удаётся, в конце работы выводится сообщение "Не прочитавшиеся все таки треки" и их номера. Запишем эту информацию на бумажку, она может пригодится.

Если выяснилось что некоторые треки нужно перечитать, не обязательно заново читать ВЕСЬ диск, можно аргументом указать требуемое место:

Например, GET_NIBB.EXE diskname.eim 20 - будет перечитываться только трек 20,

или GET_NIBB.EXE diskname.eim 20 25 - будут перечитываться треки 20....25.

Ну и не забываем, что в 140ке иногда использовали обе стороны диска, но не все для этого вырезали защиту записи, некоторые предпочитали удалять выключатель в дисководе -> смотреть надо обе стороны диска.

* * *

Запись дисков

PUT_DSK.exe - предназначена для записи образов формата DSK на физические диски. Других прог (для записи NIB, например) пока нет, т.к. неизвестно, с какими конкретно изменениями стандартного формата придётся встретится. А если изменений нет, то DSK - наилучшее решение. Запуск программы:

PUT_DSK.EXE diskname.dsk - где diskname - имя записываемого образа.

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

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

!! Не менее желательно проверить скорость вращения перед записью - 200 мс/оборот !!

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

Сообщения об ошибках

put_dsk не проверяет результат записи, поэтому множество ошибок, связанных с некачественными/дохлыми дискетами отсутствует. Отсутствие дискеты также пройдёт незамеченным. Но всё же несколько ошибок могут быть получены:

Группа ошибок, связанных с глюками контроллера и/или помехами в канале: "мост не принимает команду", "перебегание: PC не успела принять данные" и т.д.. Эти же ошибки могут возникать если что-то мешает программе обслуживания контроллера работать в реальном времени. Это может быть включение отложенной записи на HDD, переключение окон Windows, обращение к SWAP-файлу... Поэтому рекомендуется вначале работать под чистым ДОС. После того, как оцените надёжность, можете экспериментировать с другими комбинациями софта. Также подобные ошибки могут возникать из-за неудачного кабеля между системным блоком и контроллером. Попробуйте начать работу без кабеля, вставляя контроллер сразу в разъём LPT-порта.

"Не совпала общая CRC": канальный уровень работает нормально, но при завершении записи дорожки программа обнаружила расхождение общей контрольной суммы (её рассчитывают контроллер и PC). Программа попытается автоматически повторить запись. Одиночная ошибка не опасна, но интересна тенденция.

"Неожиданный ответ моста": контроллер вроде бы общается, но отдаёт странные данные. Почему ? А кто его знает... Может у вас рядом сварочный аппарат включен ? Либо это просто несовпадение протокола прошивки и программы put_dsk.

"Запись заблокирована": дисковод сообщает контроллеру о том, что на дискете заклеен вырез защиты записи. Это же сообщение может появится, если дисковод будет отключен от контроллера.

"Ошибка недобегания": во время записи буфер данных оказался пуст, т.е. PC не передала данные вовремя. Эта ошибка не зависит от скорости PC-шных накопителей, т.к. перед записью дорожки все её данные буферизуются в ОЗУ PC. Значит либо кто-то грубо приостановил работу программы (резидент ? ОС ? отладчик ?) или у PC очень сильно не хватает производительности. В то время, как контроллер выполняет запись поля адреса и соседних GAP-полей, PC судорожно пытается закодировать очередное поле данных. "Агат" работать в таком режиме не успевал, в результате, даже в лучших драйверах, дорожка обрабатывалась за два оборота. Здесь же делается попытка сделать всё за один оборот. Обычно успешная.

"Данные передавались меньше 203 мс": оборот (а следовательно и время непрерывной записи) трека - 200 мс. Плюс/минус погрешность, ошибки, запас - на всякий случай (чтобы не оставалось мусора). Программа проверяет, что запись длится хотя бы 203 мс. Время записи жестко определено алгоритмом, и сообщение о такой ошибке, скорее всего, указывает на глюк софта.

* * *

Bonus - сортировка дисков

SEEK.exe - нужна для сортировки и полезна скорее тем кто собирается переводить большие залежи дисков.

Немного теории:

На точках Х7 и Х8 платы дисковода ес5088 появляется напряжение если хоть какая-то инфа есть на диске. Таким образом можно отличить диск записанный хоть на чем-то от совершенно нового пустого. На дисководах DISK][ тоже есть такие точки но я не знаю какие.

Понадобится мультиметр умеющий мерить малое переменное напряжением. Ставим переключатель на 200m V переменка, подключаем тестер на нужные концы (+ - не важно).

Например я взял два контакта типа ЛИРА, вставил в них щупы и зацепил на солдатики дисковода. Чтоб щупы руками не держать.

При выключенном компе показывает 00.0
Дальше я буду приводить свои значения, они могут немного отличатся от Ваших

При запущенной программе, например POS.exe, без диска - показания от 00.2 до 00.5
С чистым диском показания точно такие же!

С дискетой на 140кб на разных треках показания от 27.4 до 60.7
С дискетой на 840кб на разных треках показания от 18.2 до 53.0
С дискетой IBM PC на 360кб на разных треках показания от 09.1 до 14.0

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

По началу для таких тестов использовал прогу POS.exe, ей устанавливал головку на 0 трек (там больше вероятности что-то найти) или с клавиатуры ездил головой. Однако позже выяснилось, что диски бывают всякие и по одному 0 треку сложно ориентироваться, а щелкать клавой туда и обратно на каждом диске утомительно.

Вот для этого и служит прога SEEK.exe, она ездит по диску взад\вперед, читает но никуда не передает. Можно подсовывать диски по очередности (не отвлекаясь к клавиатуре), и отсортировать большую кучу.

* * *

Автор раздела: Garnizon