PDA

Просмотр полной версии : ПК8000 - Контроллер дисковода



Страницы : 1 [2]

Mick
18.06.2017, 07:35
кстати, у меня диск1 из комплекта поставки 90-го года без оболочки, дает командную строку. Если что найдёте интересное в содержимом дисков (прилагаю) могу скопировать.
DISK1.TXT DISK3.TXT DISK4.TXT DISK5.TXT DISK9.TXT DISKU.TXT

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

Я так понимаю, ты оригинальный блок дисководов ты заимел, а где фото?

dk_spb
18.06.2017, 09:48
А что тут спрашивать - надо все сохранять.
Быстро не получилось - много бэдов. Углубленно пока по времени не получается.

>а где фото?
В процессе. отличий от твоих вроде нет.
Только у меня ни один "родной" дисковод не работает. То ли настраивать надо ФАПЧ, то ли еще что. С Тиком работает, но на тике нельзя выставить включение мотора по выбору привода, приходится мотор всегда включенным держать.

DemonId7
18.06.2017, 23:01
DISK1.TXT DISK3.TXT
На первом дисковый бейсик, которого пока больше нигде нет. Очень интересует. На втором какие-то самопальные бейсик-программы. Тоже неплохо бы взглянуть. Ну и можно DISKU, если не затруднит.



Минуточку!!! То есть программка из ПЗУ для выбора дисковода А пишет в 7FF7 значение 0x01 !?!?!?!
А кто, простите, будет MotorON делать!?!?! Надо же писать 0x21 для дисковода А и 0x42 для дисковода B.Нет, не надо. Запись в 0x7FF7 - это чисто программный сброс ВГ93. Сбрасываются только внутренние регистры, а механика не трогается! Собственно поэтому я долго не мог понять код инициализации - вначале сбрасывают регистры, а затем подают команду "восстановление", основная цель которой - это возврат головок на нулевую дорожку. Но, когда регистры ВГ93 сброшены, то возврата головок не будет, так как контроллер итак считает, что они уже на нулевой дорожке. В общем, поначалу я считал, что код инициализации ошибочным и нерабочим. А потом внимательно присмотрелся к подпрограмме чтения сектора. В ней перед чтением всегда вызывается подпрограмма позиционирования головок. А вот здесь то собака и зарыта:

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

То есть, при старте компа происходит загрузка с нулевой дорожки, которая реализована как команда сброса (восстановление) дискогрыза (подпрограмма do_seek_to_track0)! И здесь сброс происходит уже как положенно - при включенном моторе.
В общем, очередное интересное решение от наших предков :)

- - - Добавлено - - -


но на тике нельзя выставить включение мотора по выбору привода, приходится мотор всегда включенным держать.
А зачем включать мотор при выборе привода? Мотор в подпрограммах БИОС всегда включается отдельно, при любых операциях чтения/записи/позиционирования.
У меня похожая проблема с япошкой от писюка. Сектор читает, а дальше сбой. Вынимаешь диск, вставляешь - читает дальше, опять один сектор, после чего опять ошибка. В общем, нужно постоянно вставлять/вынимать диск. Это видимо несоответствие некоторых контактов старых и писюшных дисководов. Я где-то видел решение этого вопроса, но так и не попробовал, поскольку пока нужды не было.

dk_spb
19.06.2017, 07:10
Вот я именно об этом: в моем заводском КНГМД мотор не включается (16 пин на флопе всегда +5V). И на приводах ЕС5323 выставлено перемычками включение мотора по выбору привода, а не по MotorON.
И если вместо ЕС5323 поставить тик GFR, то он не включает мотор вращения. если же его включить принудительно - система с него нормально грузится.

DemonId7
19.06.2017, 22:52
Это у тебя походу контроллер неисправен, так как управление мотором вроде бы одинаково на всех дисководах и не зависит от перемычек. Погоняй дисководы в утилите (http://zx-pk.ru/threads/11089-pk8000-kontroller-diskovoda.html?p=858510&viewfull=1#post858510) (непосредственное управление мотором и головками).
У меня ЕС5323 работает как часы, мотор включается и выключается, головки перемещаются. И все это независимо от наличия дискеты в приводе.
А вот МС5313 без дискеты не работает! По команде включения мотора загорается светодиод, но мотор не раскручивается. Перемещение головок издает постукивание, но головки стоят на месте. При вставленной дискете и закрытой заслонке все работает, как и положено.
Что касается моего япошки, то вот нашел описание проблемы:

"RY/DC" - задаёт режим работы выхода на контакте 34. В клонах которые я видел - положение без разницы, на родном бета-диск что был у меня только Ready. Если оставить режим Disk Change, то при каждом обращении к диску придется открывать\закрывать шторку флопа (в режиме "DC", контакт 34 сбрасывается в 0, если попытаться сменить дискету во время работы, и установливается в 1 по Step и каким -то ещё сменам входных сигналов).
На писишных дисководах по дефолту как раз стоит Disk Change. Вот мне и приходилось постоянно дергать заслонку :) Кстати, как и на 1.44. Он тоже вроде работает, но у меня только самсунги, с коррекцией головок, поэтому так их добром и не "завел". Нужен дисковод попроще, без наворотов.


И на приводах ЕС5323 выставлено перемычками включение мотора по выбору привода, а не по MotorON.Разве такое может быть? Мотор всю жизнь включался и выключался программой, на время каких-либо операций при обращении к дискам. И это естественно, так как нет смысла без дела постоянно крутить мотор, вырабатывая ресурс дорогого (по тем временам) дисковода.
Собственно загрузка системы с ЕС5323 наглядно это подтверждает. Вначале раскрутка мотора и быстрое чтение дорожки. Затем вывод командной строки системы и через секунду-другую мотор выключается, пока не введешь команду обращающуюся к диску, например DIR.

dk_spb
22.06.2017, 20:21
так как управление мотором вроде бы одинаково на всех дисководах и не зависит от перемычек.
Мануал на ЕС5323 гуглится за 15 секунд.
"При помощи перемычек, укорачивающих контакты разъемы X08, можно получить следующие варианты управления двигателя:
- Выбор накопителя и старт
- Выбор накопителя /независимо от Старт/
- Старт /независимо от Выбор накопителя/"
Как ни странно на заводском КНГМД выставлен второй вариант.



Это у тебя походу контроллер неисправен,
А, то есть то что комп с него грузится и программы запускает - это неисправность такая? Не знал..... ;-)

DemonId7
22.06.2017, 23:08
Мануал на ЕС5323 гуглится за 15 секунд.
Ткни плиз носом, я что-то не нашел.


Как ни странно на заводском КНГМД выставлен второй вариант.
Как ни странно, но мой дисковод показывает, что второго варианта нет, вместо него включается первый - выбор накопителя и старт, стандартный для большинства дисководов. Ну или у меня дисковод глючный. Только это вряд ли, он мне достался в упаковке, муха не сидела, а если сидела, то в тапочках.
В аттаче для тебя спец. редакция утилиты с тремя новыми пунктами:
6 - выбрать дисковод;
7 - отменить выбор дисковода;
8 - переключить мотор (on/off);
Последний пункт отличается от аналогичного по букве 'M' тем, что не трогает биты выбора накопителя. Таким образом легко проверить все три режима дисковода, а так же определить в каком режиме работают другие.
У меня МС5313 работает в 3-м режиме, включая и выключая мотор независимо от выбора накопителя. И прекрасно уживается с изотовским, работающим в стандартном режиме "выбор и старт".


А, то есть то что комп с него грузится и программы запускает - это неисправность такая? Не знал..... ;-)Неисправность - это использовать костыль, в виде насильного включения мотора. Это не правильно, он должен управляться программой! Ты сам же сказал, что твой контроллер походу не выдает сигнала MotorON/OFF и ЕС5323 работает в режиме "выбор независимо от старта"? Мой то контроллер прекрасно управляет линией motor. Вывод? Твой контроллер подглючивает. А если я прав и твой ЕС5323 на самом деле работает в режиме "выбор и старт"? Тогда вывод будет уже другой - тик глючит (правда непонятно отчего).
В общем, пробуй в утилите поуправлять линиями "выбор" и "мотор". Глядишь и найдется причина проблемы.

DemonId7
23.06.2017, 16:13
Не иначе как бес попутал. Глянул схему контроллера. И что я вижу? Сигналы Drive Sel XX на разъем шлейфа формируются как сигналы DriveSelX (с ТМ8) & MotorON (с нее же). Это значит, что плата работает в "режиме №1" - "выбор диска и старт", то есть сигнал "выбор дисковода" не появится, пока не включится сигнал "старт" (MotorOn). Вот почему у меня 5323 показал отсутствие режима "выбор диска (без старта)" :)
Думаю проблема в ЛА13 D23.4, которая должна инвертировать сигнал MotorON. Либо в дорожке от ТМ8 до ЛА13. Можно утилитой выставлять разные уровни MotorON и тестером быстренько проверить как сигнал проходит от ТМ8 до разъема шлейфа. Делов на пару минут.

dk_spb
24.06.2017, 20:27
Да, по схеме-то всё красиво.
А реалии таковы, что при выбора дисковода А (sel0 - низкий уровень идет на 10-е контакты дисководных разъемов), MotorON (то есть 16-й пин дисководного разъема) в низкий уровень уходит у дисковода B.
Видимо изготовители лицевой панели блока дисководов решили что дисковод А - это всё-таки левый, а B - правый. А разработчики платы задумывали несколько иначе....

Update: извиняюсь за неточность - разработчики как раз хотели А левым, а он оказался правым...

Вот незадача: в блоке дисководов два болгарских привода, оба на вид как новые, и оба одинаково нерабочие :-(
Один я у себя в сусеках на замену нашёл (правда поношенный), B пока оставил нерабочим....

dk_spb
27.06.2017, 17:54
Вот навыдергивал софта
http://oldpc.su/0/mmmmm.rar
Остальное на PC не читается, можно на "станке" попробовать, но это не быстро.

DemonId7
29.06.2017, 16:38
Васик рабочий, какой в свое время был у меня. Спасибо!
Недостающие файлы взял с мелкософтского бейсика, версии 5.3. Прога нормально скомпилировалась в com-файл.
Еще бы Си и Паскаль найти, для полного счастья.
Кстати, на дисках наконец-то встретились не битые файлы CHESS и ТЯП-ЛЯП. До этого все они были в той или иной степени малость покоцаны (лишние артефакты на экране).

dk_spb
29.06.2017, 17:10
DemonId7, То есть остальное (побитые файлы я переименовывал в .del) пытаться каким-то образом прочитать не надо?
А то я уже и холодильник "разогрел" ;-)

Mick
29.06.2017, 18:29
То есть остальное (побитые файлы я переименовывал в .del) пытаться каким-то образом прочитать не надо?
А то я уже и холодильник "разогрел"

А почему бы не попробовать их считать, нечего отлынивать :)

DemonId7
29.06.2017, 19:52
А там всего двух файлов не хватает: BRUN.COM и OBSLIB.REL. Конечно неплохо бы их восстановить, но если не получится, то можно взять их с подходящей версии микрософтского васика, определив точную версию по размеру уцелевших файлов.
Но я однозначно за попытку восстановить оригинальные, может в них вносили исправления, адаптируя под ПК8000.

dk_spb
29.06.2017, 20:30
По-порядку:
OBSLIB.REL - такого не было. Был BASLIB.REL, но я его считал.



А почему бы не попробовать их считать, нечего отлынивать
Поставил в очередь ;-)

DemonId7
30.06.2017, 07:08
OBSLIB - это необязательный файл из полного пакета. Нужен для компиляции полностью автономных программ. По дефолту создаваемые программы загружают BRUN.COM, в котором и хранятся подпрограммы бейсика. OBSLIB позволяет избавиться от этой зависимости, правда размер сом-файла разбухает до 9 КБ.

dk_spb
30.06.2017, 08:18
DemonId7, Спасибо за разъяснения. Но у меня ни на одной дискете такого нет. Так что считать не смогу.

Mick
01.07.2017, 08:13
Вот до комплекта плат демо монтажки оригинального контроллера дискогрыза.
Надо доделать, чтобы так сказать не возвращаться больше к этому вопросу.
По поводу топологии, то нижняя сторона срисуется без проблем, а вот верхняя там где скрыта под микросхемами будет по наитию - потом когда появится возможность, то всегда можно подкорректировать.

Black Cat / Era CG
07.07.2017, 11:24
Наткнулся тут случайно на эту тему и выяснил что моя утилка внезапно умеет открывать образы дисков от ПК8000 (по крайней мере те, что тут выложены), если их, правда, предварительно вытащить из td0. В принципе, это логично, ибо используется та же система с хранением параметров диска на самом диске.
:)

DemonId7
01.12.2017, 21:23
Подправил утилитку для настройки дисководов (http://zx-pk.ru/threads/11089-pk8000-kontroller-diskovoda.html?p=858510&viewfull=1#post858510). Изменил способ определения слота с адаптером, теперь ПЗУ в принципе и не нужна. Приложил сорсы.

vwarlock
04.12.2017, 15:18
Вот навыдергивал софта
http://oldpc.su/0/mmmmm.rar
Что-то не находится файлик....

dk_spb
04.12.2017, 15:26
vwarlock, Процитирую пророка ;-)

А то тут как обычно будет, сначала нафиг надо, потом будут слезно просить скопировать, но поезд уже ушел.

vwarlock
04.12.2017, 16:33
Значит на поезд я уже опоздал......?! :(
P.S. Всего-то полгода и прошло-то :)

dk_spb
04.12.2017, 17:08
Я надеюсь что DemonId7 всё-таки поделится тем что он наковырял/скомпоновал из того что я выкладывал.
Если нет - буду искать свой файлик, но Вам опять придётся делать работу, которую DemonId7 уже делал.
Ну и я не теряю надежды что Mick дополнит странички своего сайта по ПК8000, в том числе и раздел "Программы" ;-)
Но декабрь на дворе, а в декабре, обычно, у всех с временем на хобби очень нерадостно.

Mick
04.12.2017, 18:26
Ну и я не теряю надежды что Mick дополнит странички своего сайта по ПК8000, в том числе и раздел "Программы" ;-)

Я все слышу :)
Сейчас я пока отрисовываю плату контроллера дисковода, одну сторону почти закончил.

- - - Добавлено - - -


Значит на поезд я уже опоздал......?!

Типа того :)
Ну если Денис не будет возражать, то пусть полежит у меня на яндексе - https://yadi.sk/d/-XDCISJI3QJmA2
Когда начну заполнять страничку у себя на сайте, ссылку удалю.

dk_spb
04.12.2017, 19:21
Тык была же уже плата?
Я до сих пор не знаю куда остатки плат девать....

DemonId7
04.12.2017, 20:24
Я надеюсь что DemonId7 всё-таки поделится тем что он наковырял/скомпоновал из того что я выкладывал.
Бейсиком? Можно, я его восстановил до родного состояния, даже тестовые программы компилировал. Остальные еще не разобраны, очень много дубликатов, различающихся порой несколькими байтами (ошибки чтения с кассет/дискет). Дело продвигается, но довольно медленно.
А так, если кому что нужно, обращайтесь, храню все что здесь выкладывалось.

Mick
04.12.2017, 21:03
Тык была же уже плата?

Я знаю что была плата от Mifody, но это новодел.
Лично я лишь перерисовываю оригинальную плату. Производить я ее не буду - просто так сказать для истории.


Я до сих пор не знаю куда остатки плат девать....

А что тебя на барахолке забанили :)
Немного оффтопа: А чудную большую плату ты сделал, а то хочется узнать, завелась или нет?

dk_spb
04.12.2017, 22:30
>А что тебя на барахолке забанили
>Немного оффтопа: А чудную большую плату ты сделал, а то хочется узнать, завелась или нет?
На оба вопроса ответ один,
Со временем .опа,
(а дальше сочинить времени нет ;-) )

vwarlock
08.12.2017, 12:01
Бейсиком? Можно, я его восстановил до родного состояния, даже тестовые программы компилировал
Я не отказался бы... :)

DemonId7
13.12.2017, 16:10
Собственно бейсик.
BASIC.COM - это BASCOM 5.30a, мелкософтский бейсик. Пропатчено две функции, непонятно для чего и кем. Работа с ним подробно описана в книге №5 (бейсик. руководство пользователя) в разделе 7. Транслятор.
MBASIC - это интерпритатор из того же пакета BASCOM. Удобен на этапе отладки программ, поскольку компиляция длится очень долго. Затер оригинальные копирайты и прописал аналогично копирайтам в BASIC.COM.
*.REL - стандартные либы; их назначение описано в книге №5, в разделе 7.
MLINK - линковщик. Описан в книге №9 (редактор связей).
В архиве так же три примера, два из комплекта COMBASIC и MOONS.BAS - из пакета астрономических программ. Последний малость причесал, заменил вещественные переменные на целые и скорость возросла в несколько раз.
Компилировать можно так:
63403

Существует возможность вставки своих функций, но честно говоря не знаток бейсиков и точно не знаю как.

Mick
24.12.2017, 20:12
Сейчас я пока отрисовываю плату контроллера дисковода, одну сторону почти закончил.

Все таки одну сторону дорисовал.

https://a.radikal.ru/a24/1712/be/6269f02908b6t.jpg (https://a.radikal.ru/a24/1712/be/6269f02908b6.png)

Вторую отрисовать будет немного сложнее. Там детали и выпаивать их не хочется (не буду).

Mick
02.01.2018, 10:33
Решил платы к платам запихать - http://zx-pk.ru/threads/20271-pk8000-pechatnye-platy.html?p=943582&viewfull=1#post943582

MacBuster
13.05.2018, 23:40
Кто-нибудь делал платы и собирал этот контроллер? У меня Хобби ПК8000 случайно образовался, хочу попробовать подключить.

Mick
16.05.2018, 08:53
Кто-нибудь делал платы и собирал этот контроллер? У меня Хобби ПК8000 случайно образовался, хочу попробовать подключить.

Посмотри по ветке. Делали его только в другом виде. Реплику оригинала (имеется ввиду оригинальная плата) по моему не делали.

tank-uk
13.08.2018, 22:05
Народ, извините что не в тему, но может кто подскажет как это вложение переконвертить из РТ2 в 27512 ?

tnt23
02.12.2018, 23:08
pilgrim, спасибо за схему.

Mick, насчёт двух регистров ИР26 мы с тобой в точку попали - так и есть, при чтении, адрес это DRQ и INT.

Вы, наверное, будете смеяться, но прослеживается тесная родственная связь этого контроллера с контроллером для "Океана-240" (http://azmaster.narod.ru/Ocean-240/Hard/KFDD.jpg)