Быстро не получилось - много бэдов. Углубленно пока по времени не получается.
>а где фото?
В процессе. отличий от твоих вроде нет.
Только у меня ни один "родной" дисковод не работает. То ли настраивать надо ФАПЧ, то ли еще что. С Тиком работает, но на тике нельзя выставить включение мотора по выбору привода, приходится мотор всегда включенным держать.
На первом дисковый бейсик, которого пока больше нигде нет. Очень интересует. На втором какие-то самопальные бейсик-программы. Тоже неплохо бы взглянуть. Ну и можно DISKU, если не затруднит.
Нет, не надо. Запись в 0x7FF7 - это чисто программный сброс ВГ93. Сбрасываются только внутренние регистры, а механика не трогается! Собственно поэтому я долго не мог понять код инициализации - вначале сбрасывают регистры, а затем подают команду "восстановление", основная цель которой - это возврат головок на нулевую дорожку. Но, когда регистры ВГ93 сброшены, то возврата головок не будет, так как контроллер итак считает, что они уже на нулевой дорожке. В общем, поначалу я считал, что код инициализации ошибочным и нерабочим. А потом внимательно присмотрелся к подпрограмме чтения сектора. В ней перед чтением всегда вызывается подпрограмма позиционирования головок. А вот здесь то собака и зарыта:
То есть, при старте компа происходит загрузка с нулевой дорожки, которая реализована как команда сброса (восстановление) дискогрыза (подпрограмма do_seek_to_track0)! И здесь сброс происходит уже как положенно - при включенном моторе.Код:ROM:4084 fdd_doSeek: < cut here - преобразование логического адреса в физический > ROM:4096 sta drvLines ; drvLines = (physDisk+1) | (physSide << 4) ROM:4099 call fdd_MotorOn ; <<--- включаем мотор ROM:409C dcx h ; HL = &nSector ROM:409D call fdd_BreakCmd ROM:40A0 mov a, m ROM:40A1 sta IO_SECTOR ROM:40A4 ldax d ROM:40A5 sta IO_TRACK ; номер предыдущей дорожки (для команды поиска) ROM:40A8 dcx h ; HL = &nTrack ROM:40A9 mov a, m ROM:40AA stax d ; обновляем lastTrack[nDisk] ROM:40AB ora a ROM:40AC jz do_seek_to_track0 ; <<--- переход на сброс дискогрыза!!! ROM:40AF sta IO_DATA ROM:40B2 lda ctrlConfig ROM:40B5 ori 10h ; команда "поиск" ROM:40B7 jmp fdd_SendCmd ------------------------------------------- ROM:43B2 do_seek_to_track0: ROM:43B2 lda ctrlConfig ; !!!A=0 ROM:43B5 ani 3 ROM:43B7 ori 8 ; команда "восстановление" ROM:43B9 jmp fdd_SendCmd
В общем, очередное интересное решение от наших предков
- - - Добавлено - - -
А зачем включать мотор при выборе привода? Мотор в подпрограммах БИОС всегда включается отдельно, при любых операциях чтения/записи/позиционирования.
У меня похожая проблема с япошкой от писюка. Сектор читает, а дальше сбой. Вынимаешь диск, вставляешь - читает дальше, опять один сектор, после чего опять ошибка. В общем, нужно постоянно вставлять/вынимать диск. Это видимо несоответствие некоторых контактов старых и писюшных дисководов. Я где-то видел решение этого вопроса, но так и не попробовал, поскольку пока нужды не было.
Последний раз редактировалось DemonId7; 18.06.2017 в 23:04.
Вот я именно об этом: в моем заводском КНГМД мотор не включается (16 пин на флопе всегда +5V). И на приводах ЕС5323 выставлено перемычками включение мотора по выбору привода, а не по MotorON.
И если вместо ЕС5323 поставить тик GFR, то он не включает мотор вращения. если же его включить принудительно - система с него нормально грузится.
Это у тебя походу контроллер неисправен, так как управление мотором вроде бы одинаково на всех дисководах и не зависит от перемычек. Погоняй дисководы в утилите (непосредственное управление мотором и головками).
У меня ЕС5323 работает как часы, мотор включается и выключается, головки перемещаются. И все это независимо от наличия дискеты в приводе.
А вот МС5313 без дискеты не работает! По команде включения мотора загорается светодиод, но мотор не раскручивается. Перемещение головок издает постукивание, но головки стоят на месте. При вставленной дискете и закрытой заслонке все работает, как и положено.
Что касается моего япошки, то вот нашел описание проблемы:
На писишных дисководах по дефолту как раз стоит Disk Change. Вот мне и приходилось постоянно дергать заслонку Кстати, как и на 1.44. Он тоже вроде работает, но у меня только самсунги, с коррекцией головок, поэтому так их добром и не "завел". Нужен дисковод попроще, без наворотов."RY/DC" - задаёт режим работы выхода на контакте 34. В клонах которые я видел - положение без разницы, на родном бета-диск что был у меня только Ready. Если оставить режим Disk Change, то при каждом обращении к диску придется открывать\закрывать шторку флопа (в режиме "DC", контакт 34 сбрасывается в 0, если попытаться сменить дискету во время работы, и установливается в 1 по Step и каким -то ещё сменам входных сигналов).
Разве такое может быть? Мотор всю жизнь включался и выключался программой, на время каких-либо операций при обращении к дискам. И это естественно, так как нет смысла без дела постоянно крутить мотор, вырабатывая ресурс дорогого (по тем временам) дисковода.
Собственно загрузка системы с ЕС5323 наглядно это подтверждает. Вначале раскрутка мотора и быстрое чтение дорожки. Затем вывод командной строки системы и через секунду-другую мотор выключается, пока не введешь команду обращающуюся к диску, например DIR.
Мануал на ЕС5323 гуглится за 15 секунд.
"При помощи перемычек, укорачивающих контакты разъемы X08, можно получить следующие варианты управления двигателя:
- Выбор накопителя и старт
- Выбор накопителя /независимо от Старт/
- Старт /независимо от Выбор накопителя/"
Как ни странно на заводском КНГМД выставлен второй вариант.
А, то есть то что комп с него грузится и программы запускает - это неисправность такая? Не знал..... ;-)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ткни плиз носом, я что-то не нашел.
Как ни странно, но мой дисковод показывает, что второго варианта нет, вместо него включается первый - выбор накопителя и старт, стандартный для большинства дисководов. Ну или у меня дисковод глючный. Только это вряд ли, он мне достался в упаковке, муха не сидела, а если сидела, то в тапочках.
В аттаче для тебя спец. редакция утилиты с тремя новыми пунктами:
6 - выбрать дисковод;
7 - отменить выбор дисковода;
8 - переключить мотор (on/off);
Последний пункт отличается от аналогичного по букве 'M' тем, что не трогает биты выбора накопителя. Таким образом легко проверить все три режима дисковода, а так же определить в каком режиме работают другие.
У меня МС5313 работает в 3-м режиме, включая и выключая мотор независимо от выбора накопителя. И прекрасно уживается с изотовским, работающим в стандартном режиме "выбор и старт".
Неисправность - это использовать костыль, в виде насильного включения мотора. Это не правильно, он должен управляться программой! Ты сам же сказал, что твой контроллер походу не выдает сигнала MotorON/OFF и ЕС5323 работает в режиме "выбор независимо от старта"? Мой то контроллер прекрасно управляет линией motor. Вывод? Твой контроллер подглючивает. А если я прав и твой ЕС5323 на самом деле работает в режиме "выбор и старт"? Тогда вывод будет уже другой - тик глючит (правда непонятно отчего).
В общем, пробуй в утилите поуправлять линиями "выбор" и "мотор". Глядишь и найдется причина проблемы.
Не иначе как бес попутал. Глянул схему контроллера. И что я вижу? Сигналы Drive Sel XX на разъем шлейфа формируются как сигналы DriveSelX (с ТМ8) & MotorON (с нее же). Это значит, что плата работает в "режиме №1" - "выбор диска и старт", то есть сигнал "выбор дисковода" не появится, пока не включится сигнал "старт" (MotorOn). Вот почему у меня 5323 показал отсутствие режима "выбор диска (без старта)"
Думаю проблема в ЛА13 D23.4, которая должна инвертировать сигнал MotorON. Либо в дорожке от ТМ8 до ЛА13. Можно утилитой выставлять разные уровни MotorON и тестером быстренько проверить как сигнал проходит от ТМ8 до разъема шлейфа. Делов на пару минут.
Да, по схеме-то всё красиво.
А реалии таковы, что при выбора дисковода А (sel0 - низкий уровень идет на 10-е контакты дисководных разъемов), MotorON (то есть 16-й пин дисководного разъема) в низкий уровень уходит у дисковода B.
Видимо изготовители лицевой панели блока дисководов решили что дисковод А - это всё-таки левый, а B - правый. А разработчики платы задумывали несколько иначе....
Update: извиняюсь за неточность - разработчики как раз хотели А левым, а он оказался правым...
Вот незадача: в блоке дисководов два болгарских привода, оба на вид как новые, и оба одинаково нерабочие :-(
Один я у себя в сусеках на замену нашёл (правда поношенный), B пока оставил нерабочим....
Последний раз редактировалось dk_spb; 24.06.2017 в 23:37.
Вот навыдергивал софта
http://oldpc.su/0/mmmmm.rar
Остальное на PC не читается, можно на "станке" попробовать, но это не быстро.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)