1 Отредактировано garnizon (28-12-2020 19:42)

Тема: Liberty Drive

Выдалось время, и порисовал ЧЕРНОВИК схемы платы Liberty Drive. Старался разделить понятные мне части, и сделать удобной для понимания. Пока не придумал как сделать её поприятнее, куда чего перенести.
Видимо надо чтоб прошло немного времени и опять взглянуть на рисунок.

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


Как и в прошлые разы предупреждаю:  я никогда не рисовал схем никаких кроме автомобильных, и то в институте. Поэтому это скорее картинка а не схема.

Здорово будет если скажете где я накосячил, или что-то перенести\изменить для лучшей читабельности.


Про плату есть еще немного информации здесь:  http://agatcomp.ru/Pravetz/LibertyDrive.shtml

Но пока вопросов больше чем ответов, кроме прочего утверждается что она может хранить 1400 кб для 3,5" дисков. Буду рад любым комментариям или мыслям.

В аттаче картинка покрупнее.

http://forum.agatcomp.ru//misc.php?action=pun_attachment&item=824&download=1

Post's attachments

Attachment icon LibertyDrive.png 103.35 kb, 382 downloads since 2020-12-28 

2 Отредактировано sintech (26-12-2020 17:31)

Re: Liberty Drive

И все это нарисовано только по двум фотографиям с сайта и монтажке? Круто! Можно кстати ее тоже выложить на сайт?
По резисторам наверное критичны номиналы только у тех что подключены к времязадающим входам АГ3. А остальные подтяжки к VCC.
Х - это не подключенные выводы или непонятно куда подключенные?
Может еще подписать отдельно выводы питания? Для ВГ93 нужно обязательно подключать +12В.
Интересно будет эта карта работать на Apple II?

3 Отредактировано avivanov76 (26-12-2020 18:32)

Re: Liberty Drive

На косяки я не проверял, но тут несколько мыслей общего характера возникло.

1) обвязка у ВГ93 максимально упрощена. Например, вообще нет цепи предкомпенсации записи. Выходы SR, SL, TR43 никуда не подключены.

С одной стороны понятно: сигнал на TR43 появляется, когда номер дорожки больше 43. А поскольку плата использовалась с 40 дорожечными дисководами, то он никогда не был активен. Но это никак не отменяет необходимость делать предкомпенсацию записи на внутренних дорожках. Отсюда вывод - на внутренних дорожках запись была не очень хорошая.

2) очень простая схема сепаратора данных (АГ3, ИЕ7). Даже в контроллере 140 К схема более серьезная. Уж не говоря про разные версии контроллеров к "Спектрумам". Соответственно, устойчивость чтения была не очень высокая (ниже, чем могла бы быть).

3) линия запроса прерывания не используется. Состояние запросов на прерывания, которые генерирует ВГ93, нужно выяснять через опрос портов (ЛП11). В общем, это не минус, понятно почему так было сделано. Прерывания на 6502 не слишком шустрые, а в ProDOS контроллер вообще ничего не успевал бы делать. Да и в спектрумовских контроллерах делалось так же.

Самый интересный вопрос, конечно, можно ли было хранить 1400 кб на трехдюймовках.

У меня есть сомнения.

1) 1400 кб - это примерно 9 кб на дорожку. Для этого скорость чтения/записи должна быть 500 кбит/с. ВГ93 с такой скоростью работать может. Но вряд ли может работать процессор.

1 байт на такой скорости будет поступать каждые 16 тактов. Как могла бы выглядеть процедура чтения?

M:  LDA STATUS,X ; 4
    BPL M        ; 2/3
    LDA DATA,X   ; 4
    STA BUFFER,Y ; 5
    INY          ; 2
    BNE M        ; 3

Получается 20 тактов на байт в лучшем случае. Ну и кстати, когда Apple перешла на формат 1,44 Мб, она не стала делать его поддержку для Apple ][. Именно потому, что ЦП не успевал.

2) ВГ93 может работать с тактовой частотой 1 или 2 МГц. Здесь используется частота 2 МГц.
При этом, ВГ93 может работать в режимах FM и MFM. В первом режиме при такой тактовой частоте скорость обмена с диском будет 250 кбит/с. Во втором - 500 кбит/с, как раз то что нужно. Но! Вход выбора режима DDEN подключен к питанию. Вход инверсный, то есть выбран режим FM, 250 кбит/с.

Короче, максимум, что тут можно выжать, на мой взгляд - 700-800 килобайт на диск.

4 Отредактировано AlexBel (26-12-2020 18:44)

Re: Liberty Drive

sintech пишет:

Интересно будет эта карта работать на Apple II?

Скорее всего будет, но, по моему скромному мнению, если уж на Apple II делать контроллер дисковода на ВГ93, то лучше разработать более корректную схему. Правда, не представляю, зачем на Apple II такая штука, какое у неё может быть практическое применение.

Сигнал RW подключен к выводу 21 ПЗУ РФ2, это правильно?

5

Re: Liberty Drive

AlexBel пишет:
sintech пишет:

Интересно будет эта карта работать на Apple II?

Скорее всего будет, но, по моему скромному мнению, если уж на Apple II делать контроллер дисковода на ВГ93, то лучше разработать более корректную схему. Правда, не представляю, зачем на Apple II такая штука, какое у неё может быть практическое применение.

Такое же как и у самого Apple II, радовать пользователя своим ретрокомпьютерным видом и духом ;)
Если уж не сохранилось оригинальных устройств, то сделать реплику это хорошее дело.
Проверить как оно работает на реальном железе, описать в статье для будущих поколений.
У меня нет правца, поэтому и спрашиваю про A2.

6 Отредактировано garnizon (26-12-2020 20:44)

Re: Liberty Drive

Плата будет работать на Эпл2

Сканы монтажки выложу (правда она немного иная чем на фото, но по схеме 1 в 1). Нужна такая плата?

X - никуда не подключены

Да, сигнал RW подключен к выводу 21 ПЗУ РФ2

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

7 Отредактировано avivanov76 (26-12-2020 21:49)

Re: Liberty Drive

garnizon пишет:

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

Тогда другая фигня получается: обычные (не HD) 5,25" флопы поток данных на такой скорости (500 кбит/с) не переварят.
Для них тактовая частота ВГ93 должна быть 1 МГц (как в спектрумовских контроллерах).

И тут либо в схеме что-то не то (кварц не 16 МГц, а 8, или CLC у ВГ93 идет не к 6-й ноге ИЕ7, а к 7-й), либо это вариант платы специально собранный для работы с 3,5" флопом (но тогда остается вопрос, как ЦП успевает читать/писать данные за 16 тактов).

8 Отредактировано garnizon (26-12-2020 22:28)

Re: Liberty Drive

проверил еще раз - CLC идет к 6 ноге ИЕ7.

кварц всегда у них 16 МГц, в экземпляре который комплектовался 360Кб дисководом точно такой.

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

При инициализации, плата пытается проверить количество дорожек.

Регистры. Первые 4 описаны в документации к микросхеме ВГ93, остальные реализованы на плате и являются нестандартными.
•C0X0 - команда/статус
•C0X1 - дорожка
•C0X2 - сектор
•C0X3 - данные
•C0X4 - чтение - состояние дисковода и контроллера
•C0X8 - запись - управляющие флаги (выбор дисковода, головка, плотность и т.п.)

http://agatcomp.ru/Pravetz/LibertyDrive.shtml

9

Re: Liberty Drive

Пересмотрел 4 схемы контроллеров - везде CLC 1 МГц. А фотки обратной стороны собранной платы нет?
Никогда нельзя исключать фактор напаянных перемычек :)

В прошивку тоже глянул. Вот это похоже на процедуру чтения (начинается с SUB_CCF2):

CODE_CCE8
        LDA    DATA_C083, X
        STA    (ZP_6A), Y
        INY
        BNE    SUB_CCF2
        INC    ZP_6B

SUB_CCF2
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C084, X
        BMI    CODE_CCE8
        LDA    DATA_C080, X
        AND    #$01
        BNE    SUB_CCF2

CODE_CD3F
        TXA
        TAY
        LDA    DATA_C080, Y
        LDX    DATA_07F8
        RTS

Видно, что тут даже хуже - минимум 22 такта на байт. То есть, ни о каком чтении на скорости 500 кбит/с речь не идет.

10 Отредактировано LeoN (27-12-2020 02:09)

Re: Liberty Drive

1400 КБ - это выходит геометрия 80х2х35х256. Да, уже нужно как минимум 2 МГц процика...
Имея 800 КБ (80х2х10х512) и удвоив битрэйт до 500 Кб/с почему не стремились к 1600 КБ? Да, отстутствие предкомпенсации записи "на лицо"... И "никакой" сепаратор данных... И битрэйт никак не переключается...
Кстати, 9 нога у ИЕ7 сепаратора в воздухе что ли?

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

11 Отредактировано garnizon (28-12-2020 00:57)

Re: Liberty Drive

Выложил фото всего что есть: http://agatcomp.ru/Pravetz/LibertyDrive.shtml

- фото обратной стороны для оригинальной платы (не я фоткал)

- сканы Ташкентской платы (я делал - они потемнее) и фото такой же платы посветлей (не я делал) в одном архиве.

Кстати прошивки у них немного различаются, может тут ниточка будет.

P.S. заодно отсканил пустую плату  "Time RAM Card" той же фирмы. Кто-то просил в прошлом году. http://agatcomp.ru/Pravetz/TimeRAM.shtml

LeoN пишет:

Кстати, 9 нога у ИЕ7 сепаратора в воздухе что ли?

Это вот я почти все дорисовал, и при проверке обнаружил что забыл про это соединение. И пока не придумал как приличней разместить. И временно сиреневым пометил на теле микросхемы. С 7-й ножкой она соединена.

12 Отредактировано sintech (28-12-2020 00:56)

Re: Liberty Drive

А разные версии трассировки плат чем-то функционально отличаются (кроме кол-ва контактов разъема дисковода и интегрированных проводочков с задней стороны)?
Т.е. имеет ли смысл ориентироваться на последнюю Ташкентскую или лучше оригинал?

13 Отредактировано garnizon (28-12-2020 00:56)

Re: Liberty Drive

А фиг его знает, вроде по схеме совпадают (хотя всякое возможно), но внешне есть отличия не только в разъеме.

14

Re: Liberty Drive

garnizon пишет:
LeoN пишет:

Кстати, 9 нога у ИЕ7 сепаратора в воздухе что ли?

Это вот я почти все дорисовал, и при проверке обнаружил что забыл про это соединение. И пока не придумал как приличней разместить. И временно сиреневым пометил на теле микросхемы. С 7-й ножкой она соединена.

???

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

15 Отредактировано garnizon (28-12-2020 19:39)

Re: Liberty Drive

LeoN пишет:

???

!!! :)

16

Re: Liberty Drive

Сравнил прошивки. Различий немного.
1) В "Ташкентcкой" есть строка "Slim3.06", в "Московской" "Slim3.05". Похоже на номер версии, так что "Ташкентская", видимо, новее.

2) Есть какой-то блок параметров по адресу C9F8, в нем отличается один байт.
Версия 3.05: "$00, $40, $00, $00, $B5, $03, $00, $00".
Версия 3.06: "$00, $40, $00, $00, $B6, $03, $00, $00".
Что это - непонятно, данные куда-то копируются, а потом следы теряются.

3) По адресам CADE, CAEF, CB1C, CDB8, CDD9 находятся команды, отправляемые ВГ93. Изменения версии 3.06 состоят в увеличении времени позиционирования головки и добавлении флага "выдержать 15 мс" в команду записи дорожки. Короче, скорость перемещения головки в новой версии снижена.

4) Есть изменения в процедуре чтения/записи сектора (она тут совмещена).
Версия 3.05

CODE_CC94
        LDX    DATA_07F8
        LDA    DATA_0638, X
        STA    DATA_C082, Y
        TYA
        TAX
        LDY    #$00
        LDA    ZP_68
        CMP    #$02
        LDA    #$A4
        BCS    CODE_CCAB
        LDA    #$84

CODE_CCAB
        STA    DATA_C080, X
        BCS    CODE_CCB5
        JSR    SUB_CCF2
        BCC    CODE_CCB8

CODE_CCB5
        JSR    SUB_CD52

CODE_CCB8
        BCC    CODE_CCBF
        ROL    A
        BMI    CODE_CCE4
        ROR    A
        CLC

CODE_CCBF
        AND    #$1C

Версия 3.06

CODE_CC94
        LDX    DATA_07F8
        LDA    DATA_0638, X
        STA    DATA_C082, Y
        TYA
        TAX
        LDA    ZP_68
        CMP    #$02
        LDY    #$80

CODE_CCA5
        DEY
        BNE    CODE_CCA5
        LDA    #$A4
        BCS    CODE_CCAE
        LDA    #$84

CODE_CCAE
        STA    DATA_C080, X
        BCS    CODE_CCB8
        JSR    SUB_CCF2
        BCC    CODE_CCBB

CODE_CCB8
        JSR    SUB_CD52

CODE_CCBB
        ASL    A
        BMI    CODE_CCE4
        ROR    A
        AND    #$1C

Отличия небольшие. Добавлен пустой цикл по адресу CCA5, дающий задержку примерно в 0,6 мс перед выдачей команд чтения или записи сектора. По адресу CCBB оптимизирован код обработки флага C (возможно, чтобы общий размер кода не поменялся).


Короче, никаких изменений, касающихся формата записи, тут нет. Просто немножко замедлена работа с дисководом, возможно для поддержки большего количества моделей.

Так что вопрос со скоростью записи остается открытым. На ВГ93 можно подать 2 МГц, но процессор не будет успевать ни записывать данные с нужной скоростью, ни читать их.

Правда, я тут выкурил даташит на WD177x, аналогом которого является ВГ93. В нем расписаны блок-схемы чтения/записи. И вот чего выяснилось: ВГ93 допускает "потерю данных".

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

Короче, есть такая безумная идея: тактовая там может и 2 МГц, но разработчики заложились на эту фичу. В результате, при записи сектора на диск процессор отгружает первый байт данных, он записывается, проходит 16 мкс, контроллер видит, что новых данных нет и пишет 0. Процессор дожидается окончания записи этого 0 и отгружает следующий байт. Потом снова пишется 0 и т.д. То есть, сектор на 1024 байта содержит 512 байт реальных данных чередующихся с 512 байтами нулей.

При чтении все работает в обратную сторону: процессор читает первый байт вовремя, второй "не успевает", а там 0. Третий успевает, четвертый не успевает. В результате он вычитывает 512 байт данных из 1024 байтного сектора и все довольны :)

До первого сбоя, когда процессор пропустит свою очередь и начнет читать нули, а данные пропускать :)

17

Re: Liberty Drive

Интересно. Может когда sintech соберет рабочий контроллер - получится проверить это предположение.

18

Re: Liberty Drive

У меня уже сейчас сомнения насчет этой идеи. В прошивке есть процедура по адресу $CEFD, которая форматирует дорожку. Форматирование делается путем выдачи команды записи дорожки, после чего в контроллер передается массив байт, которые должны присутствовать на дорожке, включая "синхросбои", адресные метки, данные секторов, пропуски между блоками и т.д. В прошивке это делается вызовом той же процедуры, которая выполняет запись сектора.

Массив передается извне, в самой прошивке я не нашел места, где он формируется. Так вот, если при записи сектора трюк с пропуском байтов мог бы сработать, то при форматировании дорожки ничего хорошего не получится. Если каждый второй байт будет нулем, то никакие служебные поля вроде адресных меток записать не получится. Диск потом просто читаться не будет, потому что контроллеру крышу снесет.

Конечно, есть вариант, что эта процедура не использовалась, а код форматирования находится где-то еще. Но мне кажется более правдоподобным, что просто ВГ93 работает на частоте 1 МГц. Вот, кстати, довольно странно, что тактовый генератор собран на К555ЛН1. 16 МГц довольно близко к ее предельной частоте, а в генераторах Агата даже при более низких частотах используется 531 серия.

19 Отредактировано garnizon (08-01-2021 23:36)

Re: Liberty Drive

А как ВГ93 может работать на 1 Мгц в данном случае? Схему я проверил несколько раз, фото кварца видно хорошо.

Кстати, я вот когда диски дампил от этого контроллера в DCP писал: dcp386 b: image.dsk -I -S=40/2/10 снялось все четко.

20

Re: Liberty Drive

Я чего-то туплю. Вот на этой фотке:
http://agatcomp.ru/Pravetz/LIBERTY/LIBERTY.jpg
три нуля в конце видно четко, а вот что перед ними, как в редакторе не вертел - опознать не могу. Вроде две цифры. Может 16, а может какие-то еще. Этой же фотки с разрешением побольше нет?
А вот тут:
http://agatcomp.ru/Pravetz/LIBERTY/LibertyUZs.jpg
я вижу только тип кварца РК169 и дату его изготовления.

garnizon пишет:

Кстати, я вот когда диски дампил от этого контроллера в DCP писал: dcp386 b: image.dsk -I -S=40/2/10 снялось все четко.

Если дисковод был не 1,2 Мбайт, то скорость там 250 Кбит/с, как раз для тактовой 1 МГц. Ну и если каждый второй байт нулем не оказался, значит никаких фокусов с пропусками байтов не было, а все было записано на скорости 250 Кбит/с.

Post's attachments

quartz.jpg, 33.42 kb, 576 x 320
quartz.jpg 33.42 kb, 216 downloads since 2021-01-08 

21 Отредактировано garnizon (09-01-2021 02:58)

Re: Liberty Drive

http://retropc.org/Pravec_8S_personalen … _s_79.html

Вот у человека плата такая, там кварц видно.

Дисковод с ней BR (в писишном мире который на 360)  - я только такой с этими платами видел.

В свое время он мне присылал некоторые фото: http://agatcomp.ru/Pravetz/LIBERTY/LDARH.rar

22 Отредактировано avivanov76 (09-01-2021 14:42)

Re: Liberty Drive

Так вот же оно!
Провод к 6 ноге перерезан, а идет к 7-й. Тогда все в норме - частота делится на 16 и на ВГ93 приходит 1 МГц.
И тут http://retropc.org/Dopolnitel_nyj_kontr … _1398.html видно, что от второй ноги этого счетчика тоже сигнал выходит. Почти наверняка это тактовая к сепаратору данных идет.

А более новые платы, видимо, разведены под кварц 8 МГц.

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

Post's attachments

P1090738_zoom.jpg, 67.93 kb, 800 x 280
P1090738_zoom.jpg 67.93 kb, 212 downloads since 2021-01-09 

23

Re: Liberty Drive

avivanov76 пишет:

И тут http://retropc.org/Dopolnitel_nyj_kontr … _1398.html видно, что от второй ноги этого счетчика тоже сигнал выходит. Почти наверняка это тактовая к сепаратору данных идет.

Не понял, растолкуй поподробнее.

24 Отредактировано avivanov76 (09-01-2021 16:01)

Re: Liberty Drive

Я тут зелеными стрелками пометил, где идет дорожка от левого счетчика к 4 ноге правого. Она хоть и под микросхемами проходит, но в основном ее разглядеть можно. Видно, что начало у 2-й ноги левого счетчика. В промежутке между 3 и 4 ногами видно какой-то "нарост" рядом с этой дорожкой. Думаю, там просто резали связь с 3-й ногой.

Сепаратор данных - это схема, которая биты синхронизации выделяет. Она в Liberty типовая. Работать она должна при 4 МГц, так что насчет связи с выводом 2 первого счетчика можно не сомневаться.

Post's attachments

079_001_zoom.jpg, 53.89 kb, 800 x 217
079_001_zoom.jpg 53.89 kb, 223 downloads since 2021-01-09 

RVK1999N6P26.png, 18.01 kb, 323 x 299
RVK1999N6P26.png 18.01 kb, 222 downloads since 2021-01-09 

25

Re: Liberty Drive

Получается эта версия печатки была рассчитана на кварцы 8 и 16Мгц и под конкретный надо было оставить ту или иную пару дорожек?
2 и 7 для 16Мгц
3 и 6 для  8Мгц?