Июнь 2019
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930

Календарь Календарь

Последние темы
» Ферритовые антенны.
автор Viktor2312 Сегодня в 16:27

» ПЭВМ "Ириша". Программное обеспечение (ПО), общая тема.
автор barsik Вчера в 17:03

» ПЭВМ "Электроника МС1502"
автор alemorf Вчера в 12:12

» "Орион Супер-4" (Ташкентский).
автор barsik Вчера в 09:57

» ПЭВМ Специалист, основной вариант
автор barsik Вс Июн 16 2019, 17:00

» Орион-128. Документация, схемы, платы...
автор Viktor2312 Вс Июн 16 2019, 11:21

» Жалобы/пожелания по работе форума
автор barsik Сб Июн 15 2019, 20:56

» Специалист как болванка для творчества аппаратчиков
автор barsik Сб Июн 15 2019, 11:55

» SINOVATE (SIN). Криптовалюта Синовэйт.
автор Viktor2312 Чт Июн 13 2019, 22:10

» Партнер 01.01: О компьютере
автор alemorf Чт Июн 13 2019, 14:29

» ПЭВМ "Эрик"
автор barsik Чт Июн 13 2019, 13:45

» Микросхемы ПЛИС CPLD CoolRunner-II.
автор Viktor2312 Чт Июн 13 2019, 09:46

» Litecoin (LTC). Криптовалюта Лайткоин.
автор Viktor2312 Вт Июн 11 2019, 19:58

» Новинки. Книги. Часть 3.
автор Viktor2312 Вт Июн 11 2019, 07:40

» Обмен между дискетами CP/M <-> IBM (720Kb)
автор barsik Сб Июн 08 2019, 18:30

» Орион-ПРО. Эмулятор iMSX
автор barsik Сб Июн 08 2019, 17:53

» Подключение 3.5" дисковода к Ориону
автор barsik Сб Июн 08 2019, 17:40

» Download для ОРИОНА
автор barsik Пт Июн 07 2019, 20:04

» Формирователь монохромного видеовыхода ОРИОНА
автор barsik Пт Июн 07 2019, 18:05

» Орион-128. Расширение памяти до 512 КБ на 565РУ7.
автор barsik Пт Июн 07 2019, 11:02

» КНГМД (Орион-Турбо)
автор barsik Пт Июн 07 2019, 10:36

» Расширение порта F600. "Орион-128".
автор barsik Пт Июн 07 2019, 10:22

» Орион-128: Полезные доработки ПЭВМ
автор barsik Пт Июн 07 2019, 09:49

» Орион-128: Демки
автор barsik Пт Июн 07 2019, 09:15

» Орион-128: BASIC
автор barsik Пт Июн 07 2019, 08:50

Самые активные пользователи за месяц
Viktor2312
Альтернативные КНГМД для ИРИШИ Vote_lcapАльтернативные КНГМД для ИРИШИ Voting_barАльтернативные КНГМД для ИРИШИ Vote_rcap 
barsik
Альтернативные КНГМД для ИРИШИ Vote_lcapАльтернативные КНГМД для ИРИШИ Voting_barАльтернативные КНГМД для ИРИШИ Vote_rcap 
alemorf
Альтернативные КНГМД для ИРИШИ Vote_lcapАльтернативные КНГМД для ИРИШИ Voting_barАльтернативные КНГМД для ИРИШИ Vote_rcap 
parsec
Альтернативные КНГМД для ИРИШИ Vote_lcapАльтернативные КНГМД для ИРИШИ Voting_barАльтернативные КНГМД для ИРИШИ Vote_rcap 

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Альтернативные КНГМД для ИРИШИ

Перейти вниз

Альтернативные КНГМД для ИРИШИ Empty Альтернативные КНГМД для ИРИШИ

Сообщение  barsik в Пт Май 10 2019, 01:12

1
Эта тема для тех, кто хочет сделать свой КНГМД для ИРИШИ, желательно максимально простой, как минимум втрое проще, чем промышленные КНГМД ИРИШИ. Т.е не на 70-ти корпусах, а на не более 20. Здесь можно обдумать использовать ли РК-КНГМД (что возможно сможет работать на ИРИШЕ без скоростного ОЗУ в формате SD 360К) или КНГМД на ВГ93, что тоже может работать в формате SD, или DD, последнее уже конечно, лишь при турбировании или использовании хитроумной схемы аппаратно заменяющей контроль флага готовности ВГ93.

Конечно для ИРИШИ были разработаны промышленные КНГМД. Но они очень сложные и не под силу для средних умов. В прошлые годы какие-то цифровые археологи откопали все эти три КНГМД ИРИШИ, восстановили документацию и даже сделали новодельные платы КНГМД. По-крайней мере, есть фотографии работающей второй версии КНГМД 1987 года.

Но по-моему, примерно в 20 раз меньше трудов заняла бы собственная разработка, а точнее просто заимствование КНГМД у какого-либо другого компьютера, например, у Корвета, а лучше у РК86.

Однако не совсем всё так просто. Проблема в том, что в базовом варианте (в виде всего 2-х плат) ИРИША не только очень тормозная (что ещё пол беды), гораздо хуже то, что она просто не может работать в реальном времени (т.к её процессор периодически останавливается на 80 маш.тактов).

Потому, нельзя взять где-нибудь какой-нибудь КНГМД и без извращений просто привинтить к ИРИШЕ. В принципе конечно можно, но тогда при чтении дискет экран придётся гасить, как в РК86.

Чтобы любой КНГМД мог заработать в ИРИШЕ надо ещё как-то поиметь в ней безтормозное ОЗУ. Но и тогда это даст всего-лишь жалкие 1.77 МГЦ, чего достаточно для РК-КНГМД, где формат SD (360/400 кб), но для корветовского КНГМД в формате DD (720/800 кб) надо иметь, минимум, 2.4 МГЦ клока КР580.

Получается, что для ИРИШИ с тактом процессора в 1.77 МГЦ, чтобы поиметь формат DD, требуется применение ПДП, как это сделано в КНГМД РК86 и Партнёра на ВГ93. Увы, дисковод в формате DD слишком быстрый, поток данных от дисковода идёт со скоростью на 35% быстрее, чем успевает считывать из ВГ93 процессор тактируемый клоком 1.77 МГЦ. Вот подпрограмма, чтения сектора из CP/M Корвета. Сами посчитайте сколько здесь тактов на байт.

       LD      BC,0301H
       LD      DE,RGCOM
LOOP:  LD      A,(DE)
       AND     B
       XOR     C
       JP      Z,LOOP
       AND     C
       LD      A,(RGDATA)
       JP      NZ,DONE
       LD      (HL),A
       INC     HL
       JP      LOOP

DONE:


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


       PUSH    HL
       LD      HL,DONE
       EX      (SP),HL

       LD      DE,RGCOM
       LD      BC,RGDATA

LOOP:  LD      A,(DE)          ; LD A,(RGCOM)
       RRA
       RET     NC              ; КОНЕЦ ОПЕРАЦИИ (БИТ 0)
       RRA
       JP      NC,LOOP         ; НЕ ГОТОВ (БИТ 1)
       LD      A,(BC)          ; LD A,(RGDATA)
       LD      (HL),A
       INC     HL
       JP      LOOP

DONE:


Поделив полученное число тактов на 4, вы узнаете во сколько раз ПДП качает быстрее, чем КР580 в цикле. Даже грубо прикинув получается, что ПДП качает в ~14...16 раз быстрее, чем в цикле может качать процессор КР580. Потому ранее я считал, что раз КНГМД ИРИШИ даёт DD-формат, то значит единственный способ как это было достигнуто, - это использование ПДП.

Но недавно я посмотрел на иришины КНГМД и вдруг не обнаружил там ПДП. Это означает, что в ИРИШЕ использован не программный цикл, а аппаратный трюк, наподобие того, как в Специалисте исхитрялись читать дисковод при мизерном такте всего в 2 МГЦ. В отличие от варианта Л.Афанасьева здесь бит готовности ВГ93 напрямую подключен к READY КР580. Процессор читает очередной байт и подвисает на ожидании. Как только, ВГ93 считал байт, он сбрасывает аппаратный флаг готовности (на выводах 38 и 39) и КР580 заканчивает чтение. Возможно первым это применил С.Попов подключая в 1984 дисковод и CP/M к МИКРО-80 (об этом он пишет в своих воспоминаниях).

Т.е разработчикам ИРИШИ пришлось извращаться по максимуму, чтобы выжать работу дисковода на тормозятине. Ума заменить кварц в задающем генератор им не хватило. А достаточно было заменить кварц 16 МГЦ у ГФ24 на 21.5 МГЦ или выше.

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

Сначала убедимся, что действительно нет вариантов поиметь КНГМД в базовой тормозной версии ИРИШИ. Думаем, что можно сделать, если есть процессор с эффективным тактом всего в ~1 МГЦ (что имеет место при экране 80 символов, на 40 символов DOS не нужна и даром), да ещё к тому же не работающий в реальном времени.

Единственный работоспособный вариант - это отключение видео, отчего при гашении экрана быстродействие поднимется до 1.77 МГЦ, а главное исчезнут долгие остановы процессора.

Хотя такое же ускорение даёт и работа подпрограммы чтения сектора из ПЗУ, но увы, без безтормозного ОЗУ даже это никак не поможет. Потому-что считанный сектор пишется в ОЗУ, и при записи туда очередного байта произойдёт останов на 80 тактов. Конечно, если бы процессор был не КР580, а MC6802/HD6301, у которого внутри кристалла есть безтормозное ОЗУ, то проблем бы не было, но увы, КР580 не имеет внутри кристалла ни грамма свободного ОЗУ.

Т.е решить проблему нехватки скорости легко, но увы, турбирование ИРИШИ до 2.5 МГЦ для дисковода ничего не улучшает, т.к даже если быстродействия вполне хватает, чтобы программно читать формат DD, то всё-равно проблема невозможности работать в реальном времени остаётся. Видеочасть мешает работать в реальном времени. Очередной байт с дисковода поступает примерно каждые ~50 маш.тактов. И если процессор останавливается на 80 маш.тактов каждые 128 маш.тактов, то программно в цикле не удастся верно считать вообще ни одного байта.  И даже чтение сектора во время кадрового бланка не поможет (он длится в ИРИШЕ 7.2 МСЕК, а сектор читается 20 МСЕК).

Ещё можно подумать о варианте с неполным гашением экрана. Шпиндель дисковода делает оборот за 0.2 СЕК, а один сектор при 10 секторах на треке может быть считан за 20 МСЕК, что как раз равно одному кадровому периоду (т.к частота кадров в телевизоре 50 ГЦ). Если гасить экран каждый нечётный кадр, точнее, после считывания каждого сектора на время 1-2 кадров включать отображение, то картинка на экране не исчезнет совсем, а лишь заметно потеряет в яркости, а скорость обмена с диском упадёт в несколько раз. Т.е это вариант только для очень бедных и уж совсем отчаявшихся поиметь безтормозное ОЗУ.

Потому как ни крути, а без добавки безтормозного ОЗУ дисковод не подключить. Потому-то на КНГМД ИРИШИ разработчикам пришлось ставить ОЗУ. Там оно прозрачное, т.е синхронное и процессор всегда имеет приоритет доступа.

ИРИШУ бы вполне спасло, если бы разработчики ИРИШИ вместо бесполезных ВН59, ВИ53, ВВ51 и 1006ВИ1 (для джойстика) поставили бы на самОй плате ЦП всего-лишь 1 кб безтормозного ОЗУ, например на 541РУ2. Без этого разработчикам пришлось ставить ещё и ВИ53 и ВВ51, чтобы поиметь возможность записи на магнитофон, а при возможности работать в реальном времени всё это громоздкое железо не требуется и плата ЦП существенно бы упростилась.

Процессор на 1.77 МГЦ без всяких проблем читает с МГ и передаёт в линию не намного медленнее, чем ВВ51. ВВ51 имеет смысл, лишь чтобы не отвлекать процессор от работы, в частности, это идеально для терминала и в случае когда скорости процессора просто не хватает (это если нужна скорость обмена много выше 4800 бод).

Имея всего 1 кб безтормозного ОЗУ ИРИША могла бы читать с МГ-ленты блок (а из дисковода физический сектор) размером в 256 или 512 байт, а по окончании ввода пересылать его в основную медленную память, чтобы подготовиться к вводу следующих данных.

Зная, что в ПЗУ ИРИШИ есть пустой участокк в 2 кб, я даже подумывал поставить 1 кб ОЗУ на 541РУ2 в этот участок в окне ПЗУ, что решает все аппаратные проблемы ИРИШИ.

Таким образом, как ни крути, задача распадается на две - добавить безтормозное ОЗУ, чтобы ИРИША могла работать в реальном времени и подключить собственно КНГМД, такой для которого быстродействия ИРИШИ хватает. Таким образом, если просто взять КНГМД от ОРИОНА или от РК86 и припаять к ним длинную косу (~15 проводов ) оканчивающуюся разъёмом ГРПМ-61, то это не поможет, т.к безтормозного ОЗУ это не прибавит.

Делать ОЗУ отдельной платой тоже неудобно (две платы вместо одной). Потому разумно делать плату КНГМД содержащую и ОЗУ. Как минимум 32 кб, лучше 64. Дополнительные 32 кб позволяют получить 64 кб сплошного ОЗУ для программ, а дополнительные 64 кб позволяют поиметь эл.диск без которого копировать дискеты при одном дисководе очень хлопотно.

Трахаться с DRAM глупо, это громоздко и добавляет вместо одного/двух корпусов статики почти два или три десятка корпусов. Мелкая DIP-статика, - это даже не нарушает ламповость, т.к 6264/62256 или аналоги даже в СССР были доступны уже в конце 80-тых (а на Западе они были ещё в начале 80-тых).

Разумеется, ещё более ламповым было бы сделать КНГМД содержащее доп.ОЗУ в 128 кб на 565РУ5. Но т.к паять вручную проводками очень трудоёмко, то уж лучше синицу в руках... чем истратить энергию на пшик. Т.е делать надо то, что минимально трудоёмко. Это даёт хотя бы реальный шанс на успех.

Остаётся только решить какой тип КНГМД выбрать. Типовой контроллер на ВГ93 или РК-КНГМД. РК-КНГМД ничуть не хуже и даёт на дисководе 3.5" формат до 960 кб на диск, тогда как форматы ВГ93 жёстко ограничены, - или SD или DD (360/720 кб), хотя такие дискеты можно читать в дисководе на PC.

У меня есть несколько уже спаянных КНГМД Ориона/Специалиста, т.е запустить КНГМД на ВГ93 мне по трудоёмкости намного проще. Также важный плюс КНГМД на ВГ93 - возможность обмена через дискету с IBM PC (хотя только в MSDOS или Win 98, т.к более новые Windows вообще не подерживают формат 360 кб, а самые новые и 720 кб тоже).

Но РК-КНГМД, даже с учётом того, что его придётся паять вручную, выгоднее. Намного надёжнее работа с плохими дискетами и ёмкость дискеты можно подогнать под максимум для реальной скорости конкретной ИРИШИ.

Получается выбор буриданова осла, т.е выбор из двух примерно одинаковых по привлекательности вариантов. Буриданов осёл помер с голоду так и не решив к какому из двух одинаковых стогов сена пойти, чтобы покушать. Хотелось бы избежать его участи.

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

И всё-же есть ещё один способ подключить в ИРИШУ контроллер дисковода. Для самых тормозных машин ещё в конце 70-тых придумали вариант подключения НГМД с помощью интеллектуального контроллера. Я об этом уже упоминал ранее на нескольких форумах. Речь о том, чтобы использовать идею КНГМД от VIC-20 и Commodore-64. Идея в том, что используется отдельное скоростное МП-ядро с быстрым процессором и FDC соединённое с компьютером по линии. У Commodore-64 используется второй процессор 6502, а скорость обмена настолько медленная (ненамного быстрее, чем с магнитофоном), что можно думать, что обмен там по последовательной линии.

Такая концепция хотя и даёт меньшую скорость обмена с диском, но зато позволяет подключить дисковод к любому тормозному изделию. Причём я пришёл к такому варианту самостоятельно (ещё ничего не зная о контроллерах флопа у Commodore), в ходе организации обмена по линии между 8-ми разрядкой и IBM PC.

Интеллектуальный контроллер удобен тем, что его можно подключить к любому изделию. Такой контроллер может работать и как обычный контроллер, т.е исполнять низкоуровневые команды по типу ВГ93, так и может реализовывать весь высокоуровневый интерфейс. Тогда такой контроллер должен принимать и обрабатывать всего лишь несколько команд, а именно: Форматировать. Считать и выдать в линию каталог. Считать и передать по линии файл с таким-то номером. Принять с линии блок данных и записать его на диск под таким-то именем.

Аппаратные расходы на саму линию при последовательном обмене можно сократить до 0, т.е обойтись без доп.БИС. Даже программно без ВВ51 на безтормозной машине (т.е когда ни в приёмнике ни в источнике нет прерываний или ПДП) можно передавать со скоростью 8 кб в секунду. При этом загрузка среднего файла длится не дольше, чем с реального дисковода (~3-4 секунды). А при параллельном обмене скорость возрастает в 8 раз.

Раз у ИРИШИ уже есть довольно быстрый последовательный интерфейс, то можно использовать и его. Кстати, обмен с очень медленной скоростью может делать даже сама ИРИША. У меня ещё 25 лет назад был опробован обмен между ИРИШЕЙ и IBM PC со скоростью 50 байт в секунду без доп.железа (программа обмена на бейсике, причём она прогонялась в интерпретации). К PC линия подключалась на 2 контакта LPT (ввод по READY, вывод по D0). Скорость обмена приходится понижать, чтобы флюктуации скорости прогона на PC и ИРИШЕ не влияли.

Кстати, есть способы, чтобы неравномерность скорости прогона не влияла. Например, использование двух линий с квиттированием. По одной линии передаются нули, а по другой единицы. Т.к сигналы остаются до подтверждения приёма, скорость ни передающего, ни принимающего МП-ядра не играет роли. Скорость обмена при этом может достигать 10 кб в секунду, но расходуется 3 линии (не считая землю) вместо одной.

Для скорости конечно лучше параллельный интерфейс, хотя последовательный интерфейс позволяет сделать КНГМД в виде совсем отдельного модуля (в коробке дисковода) подключённого тонкой косой.

Из вышеописанных вариантов КНГМД это по железу немного больше, но зато даёт результат наилучший. Вообще-то такая концепция уже давно используется ретро-хоббиистами. Контроллер флэш памяти на мощном микроконтроллере (что там сейчас ставят? - STM, AVR, Atmega или ещё что?) использует ту же самую идею. Всё отличие в том, что я хочу использовать более древние детали, а именно Z80 или даже КР580.

Во что это выливается и что даёт?

Представьте платку конструктива ИРИШИ (т.е с разъёмом ГРПМ-61). На ней стоит КМОП Z80 на такте 5 МГЦ (можно и более, но незачем), ОЗУ 32 кб на одной w24257, ПЗУ РФ2, ППА для интерфейса с иришиным КР580 и к этой конструкции винтами привинчена плата HD-КНГМД от ОРИОНА. В ПЗУ 2 кб вполне уместится драйвер обслуживания. ППА стоит не в МП-ядре Z80, а в иришином адресном пространстве портов (подумываю про порт $40). Через один порт (например B) ИРИША выдает в КНГМД команды и данные, а через другой (порт A) читает. Половина порта C формирует упр.сигналы для Z80 - RESET Z80, флаги готовности для Z80, а с другой половины порта C ИРИША получает сигналы от Z80.

После сброса Z80, читая в цикле порт B, ждёт поступления от иришиного КР580 команды. Дождавшись команды, например, команду считать сектор, Z80 начинает исполнять соответствующую подпрограмму в ПЗУ РФ2 и в итоге считывает сектор (ранее заданный командами установки трека и сектора) в своё буферное ОЗУ 32 кб (в принципе хватило бы и 1 кб, но боюсь, что ретро ОЗУ не потянут 5 МГЦ).

Такта Z80 в 5 МГЦ с запасом хватает для HD-формата 1.44 мб (на треке 18 секторов по 512 байт). А затем закончив обмен с ВГ93, Z80 начинает передачу сектора через ППА в ОЗУ ИРИШИ (на скорости на которую ИРИША способна), точнее Z80 по поступлении флага готовности, последовательно выкидывает байты в порт. Можно даже было бы задействовать смешные блочные команды Z80 типа OTIR, но это ни к чему, скорость обмена через порт ППА будет невысокой. Одновременно такой контроллер может работать и контроллером магнитофона в формате РК86 (сама ИРИША это не может, т.к не работает в реальном времени).

Традиционный КНГМД на ВГ93 в ИРИШЕ, т.е собственно сам контроллер плюс интерфейс (дешифратор портов и буфер) и статическое ОЗУ, это всего ~17...18 корпусов. РК-КНГМД - это ~18...20 TTL-корпусов. А DD- или HD-КНГМД управляемый Z80 это выльется в ~22...25 корпусов.

Таким образом, за счёт дополнительного расхода (относительно типового КНГМД на ВГ93) всего лишь Z80, ПЗУ и двух ППА (с учётом того, что ОЗУ w24257 и на простом КНГМД ставим), мы получаем ИРИШУ с HD-дисководом, хотя и не с оригинальной, но с вполне приемлемой скоростью обмена. Причём заметим, что на других ретро 8-ми разрядках также в силу их тормознутости используется формат DD, который уже давно не читается на PC.

Можно конечно сделать совсем лампово. Если в качестве процессора на плате КНГМД применить не Z80, а КР580 на такте 2.5 МГЦ (число корпусов это не увеличит: вместо ЛН1+Z80 будет ГФ24+КР580). КР580 позволит иметь только DD-формат, но это не особо печально, т.к новых HD-дискет не бывает, а большинство моих старых HD-дискет всё-равно приходится использовать как DD, т.к на HD они уже дают слишком много дохлоты.

Такая концепция имеет ещё один плюс. Можно перегружать из ИРИШИ в это МП-ядро на Z80 программы для этого Z80, например программу выдачи звуков (особенно, если на эту же платку КНГМД впиндюрить AY-8912). Получится полноценная двухпроцессорная система и второй процесор сможет воспроизводить музыку, пока мы играем в Принца Персии на ИРИШЕ (когда его кто-то напишет).

В общем, надеюсь убедил, что хреново ИРИША годится для дисковода. Лишь контроллер винта для ИРИШИ простой, - это всего лишь ППА и пара TTL-микросхем. Т.к винт содержит внутри свой процессор и выдаёт (принимает) данные не в реальном времени (со скоростью потока данных с диска), а буферизованные с любой медленной скоростью (хоть по полбайта в минуту) из своего буфера. Этот буфер (или накопительный кэш) имеет размер, как минимум, на один физический сектор, который в старых винтах равен 512 байт (но читал, что в очень новых винтах он 4 кб).

Таким образом выбор весьма широкий - это плата традиционного КНГМД содержащая также ОЗУ в двух вариантах, ещё те же 2 КНГМД, но уже работающие через промежуточное МП-ядро на Z80, и контроллер винта, что уже конечно совсем не КНГМД, но зато спаять его в десять раз проще.

_________________
***
barsik
barsik
Мастер+

Сообщения : 490
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения