Передовица » Hardware » ДЗУ » Подключаем дисковод 3.5 дюйма к Агату

Подключаем дисковод 3.5 дюйма к Агату

Самый надёжный флоп для Агата - 5-дюймый Teac-fd55. Но найти хорошую, почти не пользованную, трехдюймовку несравненно проще, чем пятидюймовку. Как и дискеты к ней. Особенно дискету с непиленной нулевой дорожкой.

* * *

Все операции проводились с контроллером 840кб. Контроллер 140кб отношения к работе не имеет.

Итак: сначала находим в шлейфе контроллер-дисковод лапку, показанную на фотографии (кажется, это B7), отпаиваем провод идущий от дисковода и изолируем, а лапку припаиваем к "земле":

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

Теперь находим/паяем питание. Обычно трёшки используют только 5в, но я использовал полный (5 и 12в) переходник:

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

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

Если ключа нет (как в моём случае) - значит нужно просто правильно подключить разъём к дисководу, найдя на последнем маркер первой жилки (треугольник/стрелку/цифру "1"):

Теперь нужно озаботится положением селектора привода. Суть в следующем: дисководы, распространенные в мире последние лет 30, в т.ч. те, что стоят в PC, могут работать по четыре штуки на шлейфе. Т.е. есть четыре провода, только один из которых активизирует данный дисковод. Какой из четырех - выбирается перемычкой/переключателем/джампером на дисководе. Если дисковод откручен от PC или хотя бы продавался как предназначенный для PC, джампер будет стоять в положении "d1". Нам нужно поставить его в положение "d0". Бывают также положения "d2" и "d3". Ищем этот джампер и переключаем его (он на разных приводах разный):

Такой переключатель используется на этом приводе:

Возможно, в вашем случае он будет спрятан где-то глубже. В дисководах, выпускавшихся 2000..2005 годах это может быть оловянная (паянная) перемычка.

Дискеты: в общем, не знаю, какие надо, но вспоминается факт: были такие дискеты, кажется Verbatim, с глубоким форматированием для PC - на них ещё писалось "НЕ ФОРМАТИРОВАТЬ!" (попытка форматирования таких дискет убивала их). Соответственно, для Агата они не подойдут. Но, кажется, сейчас они уже не продаются.

Найдите на дискете окошко защиты записи. Напротив него есть ещё одно окошко: оно всегда открыто и указывает на физические характеристики магнитного слоя - HD. Но если вам посчастливится добыть дискету без этого окошка - она должна ещё лучше подойти для Агата - это DD-слой. Но даже если дискета с окошком - просто заклейте его скотчем - агатовский контроллер это тоже вполне устраивает.

* * *

Об одной особенности импортных флопиков

У некоторых дисководов, как 5.25 так и 3.5 дюймов, имеется особенность, мешающая работе некоторых агатовских драйверов. Дисковод не начинает передачу данных (блокирует канал чтения) на время разгона шпинделя и/или на время перемещения и успокоения (после перемещения) головки. Известно, что этим свойством обладают некоторые модели Teac (5.25), а также, например, Samsung SFD-321B /ke (3.5).

Наиболее стабильны в работе с такими флопиками драйвера, шедшие от новосибирской группы разработчиков, занимавшихся системой Школьница. Таким образом, проблеме не подвержены драйвера Диалогового Отладочного Комплекса (в ИКП называется "Ассемблер"), а также интерпретатора РАПИРа. Также не было замечено проблем с ИКП-шным "Копировщиком". Проблема имеет место в драйверах ДОС ИКП-Бейсика, вероятно также, она есть практически во всех версиях BTK и The BEST, поддерживающих дисководы 840 кб.

Проявление выглядит как нормальная загрузка системы и последующий отказ в работе с дисководом. Особенность проявления в ИКП-Бейсике: "ошибка ввода/вывода" возникает меньше чем за секунду от начала исполнения команды (т.е. не выполняется попыток рекалибровки головки или какого либо ожидания), дисковод включается на очень незначительное время. В BTK проблема до конца не изучена, возможно, она связана с допустимой скоростью позиционирования головок. Выглядит как ошибка ввода/вывода, проявляющаяся на случайных секторах с очень высокой вероятностью. Загрузка системы проходит успешно, однако даже только что считанные треки оказываются недоступны по команде "R". При тестировании диска ИКП-"Копировщиком" никаких сбоев не обнаруживается.

Лечение для ИКП-Бейсика, в простейшем случае, выглядит так: poke $b5d,40. Эту команду можно добавить в файл HELLO, она одинакова как для ИКП-7 так и для ИКП-9.

Однако, в некоторых случаях, сбой может произойти ещё до загрузки этого файла. Кроме того, этот патч нарушает контрольную сумму системы, поэтому команда FP будет возвращать предупреждение "СИСТЕМА ИСПОРЧЕНА".

Более аккуратным будет внесение патча непосредственно в сектора загрузки Бейсика (применительно к ИКП-9, очень распространённая версия "Фг. 00031-01 12 01"):

Сектор	Смещение	Исходное	Требуемое	Адрес
			значение	значение	в ОЗУ
13/09	5d		0a		40		0b5d
14/20	45		2d		63		df45

Номер сектора - десятичный, остальные числа - шестнадцатеричные.

Первый байт патча: задержка анализа данных до раскрутки шпинделя (если за это время хоть какие нибудь данные не начнут передаваться в контроллер, драйвер сочтёт, что у флопика сдох моторчик либо не вставлена дискета). Второй байт: элемент таблицы контрольных сумм, поправка на изменение первого байта. Для ИКП-7 интегрированного патча пока нет.

Изначальное значение задержки: 10. Если интересно, вы можете измерить необходимое значение следующей программой:

    5  ONERR  GOTO 100
   10 L = 1:H = 255
   15 N = (H - L) / 2 + L
   17 N =  INT (N)
   20  POKE $B5D,N
   25  PRINT "tUNE VALUE = "N
   27  FOR G = 1 TO 7000: NEXT :REM Задержка для гарантированной остановки флопика
   30  PRINT : PRINT  CHR$ (4)"CATALOG"
   40  PRINT "TEST OK"
   50 H = N
   60  GOTO 200
  100  PRINT "TEST FAULT"
  110 L = N
  200  IF L <  > H THEN 15
  210  PRINT "RESULT = "N
  220  STOP 
  230  END 

Работы программы очень проста: она проверяет доступность дисковода, вызывая команду CATALOG и, в зависимости от результата (успех/ошибка чтения), вычисляет новое значение задержки используя метод двоичного поиска. Для корректной работы программы важно, чтобы диск был отформатирован стандартным образом, например, командой INIT ! Т.е. каталог должен начинаться и заканчиваться на треке 17. В противном случае драйверу будет необходимо двигать головку после предыдущей попытки чтения, за это время флопик может успеть выйти в нормальный режим работы, что приведёт к успешной попытке чтения независимо от заданной задержки.

Использование материалов проекта agatcomp без получения предварительного письменного разрешения agatcomp запрещено.


Почта для обратной связи: mail@agatcomp.ru


Живое общение по теме Агата: Telegram группа Agatcomp.


Накопленные знания и проекты: тематический ФОРУМ.


© 2004-2024 agatcomp.su / agatcomp.ru

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *