RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Апрель 2024
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930     

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

Последние темы
» Вити больше нет!
автор bug19 Пн Фев 20 2023, 19:54

» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47

» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05

» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03

» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02

» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52

» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36

» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37

» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33

» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00

» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58

» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17

» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07

» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08

» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09

» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02

» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47

» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11

» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33

» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38

» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12

» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01

» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22

» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08

» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08

Самые активные пользователи за месяц
Нет пользователей

Поиск
 
 

Результаты :
 


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


Дисковод для СПЕЦИАЛИСТА

Перейти вниз

Дисковод для СПЕЦИАЛИСТА Empty Дисковод для СПЕЦИАЛИСТА

Сообщение  barsik Вс Дек 17 2017, 08:34

1
Ещё в античные времена люди выяснили, что дисковод существенно увеличивает производительность программиста. Первым в этом убедился некий Гарри Килдэлл, преподаватель морского училища в Сиэтле из США.

Когда в 1972 году ему удалось разработать язык программирования PL/M для первого в мире 8-ми разрядного микропроцессора 8008 и продать его фирме Intel, то эта фирма, наряду с денежной оплатой подарила ему один из первых в мире дисководов фирмы Shugart. Т.к без программного обеспечения использовать его было невозможно, то Гарри Килдэлл просто вынужден был в 1973 году написать на языке PL/M собственную операционную систему, которую назвал CP/M.

Это стало первым серъёзным применением этого первого в мире ЯВУ написанного для микропроцессоров. Также на языке PL/M были написаны все утилиты CP/M. Кстати, сам язык PL/M широко использовался в 70-тые годы для программирования микропроцессоров, особенно для микроконтроллеров. Позднее язык PL/M был вытеснен появившимися в 1978 году (в варианте для микропроцессоров) Паскалем и Си, которые предоставляли больший уровень абстракции, и потому в большей степени облегчали программирование.

Язык PL/M исходно был написан на языке Fortran-IV и использовался в виде кросс-компилятора для майн-фрейма. Но он мог быть странслирован для любой платформы (имеющей фортран) в том числе и с родным процессором. Но из-за того, что компилятор не был однофайловым, он мог использоваться только в DOS (причём был только для ОС ISIS, хотя исходно использовался в виде кросс-версий).

В 1976 г. для сокращения объёма кода, в версии 2.0 CP/M была переписана на ассемблере КР580, и в таком виде уже получила популярность и использовалось на ~400 типов компьютеров на процессорах 8080, 8085 и Z80. Нумерация функций и FCB-методы работы с файлом из CP/M были заимствованы для версии 1.0 MSDOS (что облегчило конверсию программ от CP/M), но в версии 2.0 для работы с файлом стал использоваться метод дескриптора файлов, а метод FCB был признан отстойным. Из-за этого программы MSDOS, использующие метод FCB работают только на маленькой партиции.

Когда в декабре 1973 был анонсирован микропроцессор 8080 (хотя первые поставки начались лишь весной 1974), то Гарри Килдэлл переделал свой компилятор PL/M-8008 под процессор 8080 и на нём без проблем перетранслировал свою новую DOS CP/M под процессор 8080 (это важное преимущество ЯВУ, они не зависят от типа микропроцессора).

Однако, когда Гарри предложил фирме Intel купить эту DOS всего за 20 тысяч USD, то получил отказ. Поскупившись фирма Intel лишила себя возможности заработать на продаже DOS миллиарды. Это произошло потому, что в 1974, ещё было неясно, что на микропроцессорах начнут массово делать целые компьютеры, а не только промышленные контроллеры для управления станками ЧПУ и кассовые терминалы.

Это выяснилось позднее, когда в 1974 году мелкий предприниматель Эд Робертс догадался, что на базе микропроцессора можно сделать целый домашний компьютер и сделал его. А для фирмы Intel производство микропроцессоров в те годы было лишь побочным продуктом, служащим целью увеличить сбыт их микросхем памяти.

Гарри Килдэлл из-за этого просто вынужден был в 1976 на пару со своей женой (тоже программисткой) основать собственную фирму Digital Research и наладить торговлю CP/M в розницу и первыми его покупателями стали некоторые из 20 тысяч любителей собравших из набора для самосборки радиолюбительский компьютер Altair-8800 и сумевших поиметь дисковод.

В итоге, после того, как во второй половине 70-тых, как грибы стали появляться разработки компьютеров на базе 8080 и Z80, которым нужна была DOS, Гарри Кидэлл заработал миллионы (продав уже к 1980 году 250 тысяч копий CP/M), а его фирма Digital Research стала одним из гигантов компьютерной индустрии, наряду с Microsoft, IBM и Intel. В начале 90-тых Гарри Килдэлл был убит в пьяной драке в баре, а фирма Digital Research разорилась и была распродана.

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

В СССР (была когда-то такая страна, занимающая существенную часть Евразии) в 80-тые годы в пользовании у населения (не считая клонов ZX) было в основном лишь два типа отчественных компьютеров - это самодельный РК86 (включая промышленные РК-клоны и так называемые РК-подобные) и самодельный Специалист (который тоже имел промышленные клоны, хотя масштаб их производства был существенно ниже).

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

В конце 80-тых пользователям клонов ZX-Spectrum стала доступна довольно примитивная ОС TR-DOS, использующая контроллер на ВГ93, называемый Beta-диск. Естественно, владельцы Специалиста и РК86 с завистью смотрели на владельцев самодельных клонов ZX-Spectrum, которые без всяких хлопот могли купить платку контроллера дисковода на ВГ93 и пользоваться встроенной в ПЗУ TR-DOS.

С другой стороны в стране уже серийно производился бытовой компьютер КОРВЕТ, в котором стоял контроллер на базе ВГ93 и использовались DOS CP/M и МИКРОДОС. Хотя пользователей РК было, как минимум, на порядок больше, чем пользователей Специалиста, для них поиметь дисковод оказалось проблематичным. Т.к оба имеющихся решения (КНГМД от Корвета и Beta-диск) использовали программный обмен с ВГ93.

А у РК86 не только не хватало скорости, но известные программные решения для РК не годились. Т.к в РК прогон программы постоянно "рвётся" для целей видео отображения, что делает невозможным программный обмен с ВГ93. Можно использовать БИС ПДП, но увы, сделать такую разработку с нуля любителям не хватало квалификации, а готового такого решения, чтобы можно было замствовать в 80-тые ещё не было.

Потому пользователи РК просто остались без дисковода. Лишь много лет спустя Е.Седов придумал  оригинальный способ как обойти эту проблему и разработал свою РК-КНГМД и РК-ДОС (опубликовано в ж.РАДИО в начале 1993).

А вот для Специалиста, как только дисководы стали более менее доступны (по цене и наличию на рынке) было разработано, как выясняется, аж целых 6 аппаратно-программных решений для подключения дисковода. Хотя в силу отсутствия Интернета и возможности три решения из этих 6-ти так и остались экспериментальными образцами в единичном экземпляре и были никому неизвестны до появления Интернета.

Т.к переделать для Специалиста TR-DOS в коды КР580 было более проблематично, было ясно, что заимствовать схемотехнику контроллера и ОС для СПЕЦИАЛИСТА разумно у КОРВЕТА, а не у ZX-Spectrum, что потребовало бы установки в СПЕЦИАЛИСТ процессора Z80.

Однако и с использованием КНГМД от КОРВЕТА на базовом СПЕЦИАЛИСТЕ возникли проблемы. Оказалось, что скорость потока данных из (и на) ВГ93 настолько высока, что такта КР580 в СПЕЦИАЛИСТЕ в 2.0 МГЦ для программного обмена недостаточно, даже при использовании команд LD A,(HL), что исполняются быстрее, чем команды IN A,(port). Для программно реализованного чтения нужен такт CPU 2.2 МГЦ, а для программной записи аж 2.4 МГЦ (а при использовании команд IN/OUT ещё выше).

Лобовым и самым простым выходом из ситуации является уменьшение частоты кварца в КНГМД от КОРВЕТА с 8 МГЦ до 7 МГЦ, что понижает скорость потока данных, но одновременно сокращает полезную ёмкость диска до 640 кб и делает дискеты нечитабельными в IBM PC.

Потому в СПЕЦИАЛИСТЕ (из-за отсутствия связи между любителями, лишь в Ленинграде) получило распространение другое решение скоростной проблемы. Для этого с помощью паяльника вторым этажом на плате монтируется 155 ТМ2, а задающий кварц в плате СПЕЦИАЛИСТА заменяется на 10 МГЦ. Это повышает такт КР580 до 2.5 МГЦ, позволяет иметь стандартный формат дискет в 720 или 800 кб, но увы, как побочный эффект, плющит экран (как в ОРИОНЕ).

Такое лобовое турбирование позволило поиметь на СПЕЦИАЛИСТЕ дисковод с CP/M. Я имел такую систему в конце 1989 года. Но в итоге этот КНГМД достался ОРИОНУ. Таже и первая партия печатных плат КНГМД для СПЕЦИАЛИСТА, выпушенная в декабре 1990 (с надписью "Ленинград-90") досталась уже орионщикам, т.к немногие местные "специалисты" к тому времени исчезли, перешли к самосборке XT или купили платы ОРИОНА.

К сожалению для CP/M объёма памяти базового СПЕЦИАЛИСТА оказалось недостаточно, даже при открытии верхнего ОЗУ D000...F7FF в старших адресах. Так как экран 12 кб, ПЗУ 4 кб и область В/У в 2 кб занимают в адресном пространстве слишком много места. Для использования фирменных CP/M-пакетов и компиляторов ЯВУ требуется TPA минимум в 51 кб (обычно западные ЭВМ имели TPA 54-56 кб,  встречал компиляторы, которые  нуждаются в TPA в 62 кб), а на СПЕЦИАЛИСТЕ можно поиметь TPA максимум в 29 кб (т.к всего доступно 36 кб, а BDOS 4 кб и BIOS более 3 кб). С таким крошечным TPA не работают ЯВУ и все серъёзные программы CP/M. Таким образом на СПЕЦИАЛИСТЕ от CP/M используется только файловая система и компилятор ассемблера (которому достаточно 29 кб ОЗУ).

Выходом из ситуации могла бы стать добавка второй банки ОЗУ и использование её в качестве ОЗУ для системного ПО. Тогда старая основная банка ОЗУ с доступным объёмом всего в 48 кб по-прежнему используется только для работы прикладных программ. Т.е СПЕЦИАЛИСТ остаётся СПЕЦИАЛИСТОМ, только для нужд DOS добавлена вторая банку РУ5-тых. Есть и более дешёвый вариант доработки (он кстати, использовался), - это подключение банки 565 РУ6 в 16 кб, для закрытия ею области 8000...BFFF, что убирает из адресного пространства экран.

Известным вариантом исправления архитектуры стал вариант MX Л.Афанасьева. Но т.к он ориентировался не на CP/M, а на свою авторскую DOS, то добавленную банку 64К, он использовал не для DOS, а как квазидиск. А т.к готовых плат варианта MX Л.Афанасьев не мог предложить, то мало кто взялся за реализацию этой переделки. Проще оказалось купить готовую плату ОРИОНА, где все эти проблемы частично решены. Появление ОРИОНА поставило жирную точку на популярности СПЕЦИАЛИСТА в 1990, хотя на периферии он продержался ещё несколько лет. В 1992-1993 на Украине имела распростанение CP/M Практик V2.1 (она использовала КНГМД по схеме Л.Афанасьева и работала в дополнительном ОЗУ D000...F7FF и давала TPA аж в 35.5 кб).

С проблемой нехватки скорости СПЕЦИАЛИСТА столкнулись все, кто пытался использовать дисковод. Часть энтузиастов сникла перед этой проблемой, предпочтя купить другой, более скоростной бытовой компьютер. До недавних пор мне было известно только о 3-х вариантах дисковода для СПЕЦИАЛИСТА - это КНГМД Корвета на турбированном СПЕЦИАЛИСТЕ, хитроумный вариант MX и РК-КНГМД Е.Седова. Однако благодаря Интернету стало известно о ещё трёх попытках преодолеть нехватку скорости для дисковода.

Во-первых, это дисковод в системе MX Л.Афанасьева из Магнитогорска. Идея заключается в том, что вместо программного чтения регистра статуса ВГ93, используются аппаратные выводы готовности, что есть в ВГ93. Это ноги 38 и 39. Но даже чтение этих выводов программно не решает проблемы. Скорости для записи всё-равно немного не хватает.

Поэтому Л.Афанасьев в 1992 изобрёл хитрый трюк с подвеской процессора сигналом HOLD. Выдав команду чтения сектора в ВГ93, процессор программно взводит триггер, который его же и переводит в режим HОLD, т.е захват шины. Выходы 38 и 39 из ВГ93 объединяются и подаются на сброс триггера HOLD. Как только ВГ93 считает очередной байт с дискеты, то он выставляет готовность на 38/39 ногах, что приводит к сбросу триггера. Режим захвата шины заканчивается, процессор освобождается и продолжает прогон с того же места - ему остаётся только забрать считанный байт из ВГ93. Отпадает программный цикл ожидания готовности считыванием регистра статуса и контролем в нём бита READY. Так просто и красиво была решена проблема дисковода СПЕЦИАЛИСТА. https://krsk.au.ru/446043/

Для варианта MX сохранились и схемы КНГМД и программы для него (MX-DOS). Увы для варианта MX не выпускалось готовых плат, а переделка самого СПЕЦИАЛИСТА в MX довольно сложна. А для обычного Специалиста с доп.ОЗУ D000...F7FF была CP/M "Практик" со своим Нортоном.

Третьим и значительно более простым вариантом получения дисковода на СПЕЦИАЛИСТЕ является использование контроллера КНГМД от РК86. Этот РК-КНГМД хорош тем, что может работать на любой ЭВМ с КР580 с тактом всего в 1.2 МГЦ и выше. Речь не о малоизвестном КНГМД для РК86 на базе ВГ93 с ПДП и не о программном контроллере А.Мельникова, которые появились слишком рано в 1989, когда дисковод был недоступен любителям. От них кроме схем ничего не сохранилось.

А речь о широко известном (благодаря публикации в ж.РАДИО), контроллере дисковода от МИКРОШИ. Этот контроллер серийно выпускался в виде готового изделия для МИКРОШИ на заводе в Лианозово, а для любителей в начале 1993 был налажен сбыт печатных плат и версии DOS для РК86 через частное МП "Лианозово". Благодаря этому пользователи РК86 наконец-то смогли обзавестись дисководом, избавившись наконец-то от муторной загрузки с МГ-ленты.

Одновременно, благодаря тому, что в СПЕЦИАЛИСТЕ применён тот же самый CPU, архитектура позволяет иметь ПЗУ в области E000 и есть свободный чип-селект по адресу РК-КНГМД, некоторые ушлые пользователи СПЕЦИАЛИСТА (а также других бытовых компьютеров) также смогли использовать РК-КНГМД и RK-DOS практически в оригинальном виде.

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

Пятый вариант - это вариант М.Короткина, который разработал, видимо в 1991, контроллер на ВГ93 для СПЕЦИАЛИСТА и на его базе сделал публикации в декабре 1992 в ж.РАДИО о НГМД для ОРИОНА и SP-DOS, являющейся расширением ORDOS. Недавно он рассказал об этом на форуме ZX-PK.ru. К сожалению, автор не смог предоставить, ни схем, ни программ. Но нет оснований не верить, т.к контроллер М.Коротких для ОРИОНА и его SP-DOS для ОРИОНА повторили многие читатели журнала РАДИО. Увы, из-за утери программ воссоздать это для СПЕЦИАЛИСТА уже не удастся. Недавно я дизассемблировал SP-DOS для ОРИОНА, но она жутко завязана на ORDOS и похоже проще написать своё по той-же идеологии, чем пытаться адаптировать это для СПЕЦИАЛИСТА.

И вот совсем недавно был обнаружен шестой вариант подключения дисковода к СПЕЦИАЛИСТУ. Это вероятно, самый ранний вариант подключения дисковода, датированный 1989 годом. К сожалению, как и в других вариантах, не сохранилось операционной системы, без которой дисковод нельзя использовать. Судя по фотографии данный контроллер построен на базе ВГ93, но метод решения в этой схеме скоростной проблемы пока неизвестен.

Вообще самым научно-правильным способом был бы метод подключения КНГМД с использование ПДП, как это сделано в КНГМД Партнёра. Но для Специалиста насколько мне известно никто до этого не додумался.


Последний раз редактировалось: barsik (Вс Фев 23 2020, 13:28), всего редактировалось 16 раз(а) (Обоснование : исправление ошибок и дополнение)
barsik
barsik
Ветеран

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

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

Дисковод для СПЕЦИАЛИСТА Empty Выбираем контроллер НГМД

Сообщение  barsik Ср Дек 20 2017, 06:36

2
Как ранее указано в предыдущей главе, в 90-тые годы в реале использовались только выше перечисленные 5 вариантов подключения дисковода к СПЕЦИАЛИСТУ . К сожалению, три из этих шести вариантов, сейчас для повторения недоступны, т.к сделаны они были в единичном экземпляре лишь у их авторов и ни программ, ни схем, ни свидетелей их работоспособности нет.

Потому рассмотрим, то что реально доступно сейчас и сделаем выбор в пользу одного из трёх остающихся вариантов. Из 3-х вариантов, самым интересным и оригинальным является КНГМД разработанный Леонидом Афанасьевым. К сожалению, этот вариант был использован автором в качестве стимула для переманивания любителей СПЕЦИАЛИСТА на вариант СПЕЦИАЛИСТ-MX. Потому, увы, для обычного базового СПЕЦИАЛИСТА не предлагалось ни схем подключения КНГМД, ни соответствующей DOS.

Вариант Афанасьева привлекателен тем, что позволяет получить стандартный формат дискет (а это даёт возможность читать дискеты в IBM PC). Вероятно, не так уж сложно написать подпрограммы чтения и записи сектора и подпрограмму формат трека для схемотехники Л.Афанасьева использующей HOLD. Наличие этих подпрограмм без хлопот позволяет встроить их в любую DOS для СПЕЦИАЛИСТА, исходники которой Вы имеете и получить DOS для конкретного КНГМД.

Но увы, сейчас у меня есть только КНГМД для ВГ93 от ОРИОНА и РК-КНГМД. Возможно, в будущем если хватит энтузиазма, я попробую вручную повторить контроллер Л.Афанасьева или же сделать подобный, но не на сигнале HOLD, что неприемлем для РК86, а на сигнале READY, что не меняет сути идеи. Таким образом этот вариант отпадает, как из-за отсутствия ПО, так и из-за отсутствия железа.

"И их осталось двое" (c).

Т.о остаётся выбор между двумя вариантами КНГМД, - от КОРВЕТА (он же от ОРИОНА) и РК-КНГМД от РК86. По сложности варианты примерно одинаковые, хотя по цене и деталей и доступности элементной базы выигрывает РК-КНГМД, т.к БИС 1818 ВГ93 достать уже не так просто как в начале 90-тых. По надёжности железа сильно выигрывает РК-КНГМД, т.к всякий знает как быстро ВГ93 дохнут при пропаже 12-ти вольт. По доступности плат РК-КНГМД тоже впереди, т.к платы КНГМД КОРВЕТА, если я не ошибаюсь не выпускались с середины 90-тых. В то же время платы РК-КНГМД сейчас доступны на барахолке сайта ZX-PK.ru, и опубликованы даже их герберы.

К сожалению или к счастью, новодельные платы РК-КНГМД являются полной репликой плат МИКРОШИ, т.е это узкие и длинные платы предназначеные для установки в слот МИКРОШИ. Возможно для некоторых, было бы более удобным, если бы эти платы имели обычную прямоугольную форму в расчёте на монтаж в корпусе СПЕЦИАЛИСТА на стойках над основной платой по типу КНГМД от ОРИОНА.

Как указано в предыдущей главе, скоростей базового СПЕЦИАЛИСТА не хватает для работы с ВГ93 в стандартном формате. Выходом, как указано выше, является лобовое турбирование СПЕЦИАЛИСТА до такта в 2.5 МГЦ, что невыгодно в силу необходимости хоть небольших, но всё-же коррекций на основной плате СПЕЦИАЛИСТА, а главное из-за уплющенности экрана, что ещё кое-как терпимо на старых советских телевизорах, но выглядит противно на нормальных видео-мониторах.

Вторым вариантом является замена кварца в РК-КНГМД на более низкочастотный, с 8 МГЦ до, например 6.5...7.0 МГЦ. При этом скорость потока данных с КНГМД понижается и хватает быстродействия СПЕЦИАЛИСТА, а надежность дискет даже повышается. Недостатками является утрата возможности читать дискеты в IBM PC и потеря ёмкости диска с 800 кб до 640 кб.

Однако для варианта с понижением частоты кварца в КНГМД пока нет ПО, хотя я имею в планах эту ситуацию исправить, т.к хочу использовать для СПЕЦИАЛИСТА КНГМД от ОРИОНА (у меня их просто больше, чем РК-КНГМД).

С другой стороны, при использовании РК-КНГМД есть железо, не требуются доработки, и есть готовое программное решение - RK-DOS Е.Седова. Немаловажным плюсом является то, что РК-КНГМД гораздо менее требователен к качеству дискет, чем КНГМД на базе ВГ93. Т.к сейчас новых дискет уже не достать (хотя читал, что в Японии они продаются до сих пор), а старые уже осыпались и полудохлые несмотря на пожизненную гарантию.

И вот выбор падает на РК-КНГМД.

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


Последний раз редактировалось: barsik (Пт Янв 05 2018, 03:41), всего редактировалось 3 раз(а)
barsik
barsik
Ветеран

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

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

Дисковод для СПЕЦИАЛИСТА Empty RK-DOS от Е.Седова

Сообщение  barsik Ср Дек 20 2017, 07:46

3
RK-DOS была написана Е.Седовым по мотивам Apple-DOS, он имел полную информацию о DOS для АГАТА (об этом он сам сообщил недавно на одном форуме).

Идея Apple-DOS заключается в том, что в каталоговой записи файла не хранится список блоков, как в CP/M или нач.номер кластера для цепочки в FAT, как в MSDOS, а вместо этого в каталоге хранится лишь указание на сектор, который в свою очередь содержит список секторов составляющих файл. Т.к каждый сектор на диске адресуется номером трека и сектора, то такой сектор в терминологии Apple-DOS называется T/S LIST (T/S аббревиатура от слов Track/Sector). Такая организация резко сокращает размер каталога по сравнению с CP/M, что было важно для древних компьютеров с тактом CPU в 1 МГЦ и минимумом ОЗУ (большое ОЗУ нужно для загрузки FAT). Это идеальная организация диска для слабых машин и малоёмких дискет.

Кроме того, для хранения информации о том, какой сектор занят, какой свободен на диске отводится сектор хранящий так называемый VTOC (Volume Table Of Contents), в котором каждый байт описывает один трек, а каждый бит в нём равный 1 свидетельствует о занятости сектора. Каждый сектор T/S LIST может содержать ссылки на 126 секторов составляющих файл. Но это не ограничивает макс.размер файла в 126 секторов, т.к первые 2 байта содержат номер сектора продолжения списка секторов. Т.е если весь список секторов составляющих файл не уместился в одном секторе T/S LIST, то создаётся сектор продолжения. И теоретически размер файла не ограничен, а реально ограничен размером дискеты.

Каталог в оригинальной Apple-DOS хранится на дорожке 17, т.к эта дорожка находится ровно посередине диска с 35-ю дорожками, а в древних дисководах головка позиционировалась с помощью "улитки", а не с помощью японского шагового мотора, отчего время шага с трека на трек составляло не 2 МСЕК, как в современных флопах, а долгие 50 МСЕК. А т.к DOS большую часть времени шарится по каталогу, т.е постоянно елозит от трека с данными файла к треку с каталогом, то его размещение посередине диска вполне оправдано.

Для современных флопов это уже не нужно и выгоднее располагать каталог на самой надёжном треке, т.е дорожке 0, как это сделано во всех DOS. Однако Е.Седов по необьянимым причинам выбрал для каталога дорожку 32. На этой дорожке в первом же секторе хранится сектор VTOC, далее следуют сектора каталога. Каталог и VTOC недублированы, так что гибель одного из секторов на дорожке 32 фатальна для диска. Это разумно исправить в доработанных версиях, т.к дискеты по мере старения всё-больше и больше теряют надёжность.

Как указано выше, ещё в 1993 году, благодаря тому, что в СПЕЦИАЛИСТЕ применён тот же самый CPU, архитектура позволяет иметь ПЗУ в области E000, и есть свободный чип-селект по адресу РК-КНГМД, некоторые пользователи СПЕЦИАЛИСТА (а также других бытовых компьютеров) смогли заимствовать у РК86 и использовать РК-КНГМД и RK-DOS практически в оригинальном виде.

Доработки состояли в установке на плату двух диодов и замене двух байтов в коде RK-DOS. Два диода позволяют обеспечить выборку в адресах F800...F8FF участка ПЗУ С800 размером в 256 байт. Этого достаточно для совместимости СПЕЦИАЛИСТА с РК86 по входам F803, F806, F809... , что избавляет от необходимости изменять адреса CALL в программах от РК86, в частности, и в RK-DOS.

ПЗУ с кодом RK-DOS пришлось чуть-чуть изменить из-за традиционной при адаптации игр от РК86 проблемы, связанной с отличающейся работой п/п-раммы F812, которая как в ОРИОНЕ так и в СПЕЦИАЛИСТЕ немного отличается от работы этой п/п-ммы в РК86.

Итак, чтобы оригинал RK-DOS V2.95 от Е.Седова работал на СПЕЦИАЛИСТЕ, достаточно сделать замены байтов 12 и B7 а адресах ECE8 и ECE9 на байты 1B, 3C. Это позволяет RK-DOS работать на СПЕЦИАЛИСТЕ при полном сохранении функционала.

RK-DOS написана изощрённым методом программирования, местами с нетрадициооным использованием стека и главное, она использует команды IN и OUT для доступа к портам. Хотя портов как устройств ввода/вывода (I/O устройств) в РК86 нет как класса, т.к вообще отсутствует системный контроллер ВК28. Используется таинственное свойство КР580 попадать в ОЗУ при использовании команд IN/OUT.

Этот наглый трюк работает только, если для адресации каждого порта выделена область не менее 400H (1024 дес) ячеек, что не проблема в РК86, где на порты сдуру вообще выделяют по 8 кб. Также этот трюк не работает на процессоре Z80 у которого команды IN/OUT работают иначе. Таким образом с'экономив на командах OUT всего 21 байт, Е.Седов создал проблемы при переносе RK-DOS на более приличные компьютеры, чем РК86.

На СПЕЦИАЛИСТЕ и ОРИОНЕ принято тратить на порты по 256 байт или менее. Из-за этого оригинал RK-DOS может работать на СПЕЦИАЛИСТЕ только, если выделить для адресации РК-КНГМД целых 2 кб - F000...F7FF.

В СПЕЦИАЛИСТЕ порты распределены так

FF00 - ППА клавиатуры
FE00 - доп.ППА для УФ-прошивателя, принтера, SD-карты и ROM-диска
FD00 - таймер 580 ВИ53 (второй ВИ53 может быть на FD80)
FC00 - контроллер НГМД на базе ВГ93 по схеме Корвета
FB00 - контроллер КНГМД от РК86
FA00 - управление режимом цвета (журнальный/расширенный или палитры)
F900 - D0...D6 переключение банок по 48/62 кб, запрет прерываний битом D7 (факультатив).
F800 - переключение страниц ПЗУ 27512 в окне C000...DFFF. Бит D7 отключает ПЗУ совсем

Потому, чтобы адресовать РК-КНГМД участком всего в 256 байт RK-DOS пришлось несложно доработать. Т.к RK-DOS ужата до предела и мне с трудом удалось её уплющить всего на полтора десятка байтов, то пришлось забить драйвер принтера, что позволило выиграть ещё менее 20-ти байтов. Этого выигрыша мне хватило на то, чтобы исправить команду DIR (вывод в 3 столбца) и избавиться, наконец, от мерзких команд OUT. Данная, уже неоригинальная, версия RK-DOS теперь может работать как с Z80, так и в компьютерах, где для порта выделено меньше чем 400H адресов.


Вот здесь выложены исходники и коды как самой RK-DOS, так и внешних SYS-команд, программы COPY и COMMAND.COM (который в реальности не командный процессор, а просто стартёр BAT-файлов). Чуть позже выложу здесь версии других программ RK-DOS адаптированных для СПЕЦИАЛИСТА.

Обратите внимание, что RKS-файлы будут вводиться с ошибкой контрольной суммы. Это потому, что ассемблер не умеет считать КС странслированного блока. КС надо считать вручную и подставлять в исходник (там написано где). Но т.к файлы в МГ-формате нужны лишь единоразово, чтобы считать их с ленты и затем записать на диск командой SAVE, то нет смысла тратить на это время. Если будет желание, сами подсчитайте контрольные суммы директивой К (или проще посмотрите КС, что выдаёт монитор при вводе блока с МГ-ленты), подставьте в исходник и странслируйте. Тогда МГ-файлы будут грузиться без ошибки КС. Адреса блока видны из дампа (это первые 4 байта в формате RKS).

Как ни странно, эмуляторы ни хрена не поддерживают основной МГ-формат СПЕЦИАЛИСТА, т.е используют формат не орловского, а волковского монитора (RKS надо грузить по R, а файлы с именем грузятся по I).

В следующей главе рассмотрим какие дисковые программы от РК86 можно использовать на СПЕЦИАЛИСТЕ и есть ли возможность использовать на СПЕЦИАЛИСТЕ те дисководные программы РК86, что непосредственно лезут в экран.


Последний раз редактировалось: barsik (Пн Дек 16 2019, 14:22), всего редактировалось 2 раз(а) (Обоснование : исправлены опечатки)
barsik
barsik
Ветеран

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

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

Дисковод для СПЕЦИАЛИСТА Empty контроллер НГМД с 1810 ВГ72

Сообщение  barsik Пн Янв 21 2019, 14:08

4
Кроме выше описанных альтернатив есть и ещё одна.


Дисковод для СПЕЦИАЛИСТА Titel


В 1989 году я собирался подключать дисковод вот по этой книге купленной мной в 1987 году в магазине "Книги соц.стран" (она у меня есть и сейчас). Здесь представлен несложный контроллер дисковода (без ФАПЧ) на БИС 8272. Есть ещё две подобные публикации любительских контроллеров на 8272 в технической литературе из ГДР (в журнале RFE 04.1989 и в журнале Funkamateur 07.1990).

К сожалению, в этой книге не было кода CP/M. Приведена только процедура формата дискеты и исходник CP/M-BIOS. Листинг CP/M BIOS для 8272 был у меня также из другой немецкой литературы 1989 года (которая у меня тоже есть). CP/M для ЮТ88 опубликовали только в 1990, когда я уже имел на Специалисте дисковод работающий в CP/M на корветовском контроллере.

Таким образом, если бы осенью 1989 я не купил Корвет, то ориентировался бы на контроллер на 8272 и тогда, возможно, на Специалисте, а затем и на ОРИОНЕ дисковод использовал бы контроллер на 8272, а не на ВГ93. Возможно, что не имея CP/M, пришлось бы писать самодельную DOS, как сделал для ПК Львов А.Мамонтов. Даже сейчас интересно собрать такой контроллер и использовать его, например на ИРИШЕ.

Теперь Вы можете посмотреть как сделать подключение дисковода на 8272 и даже сделать себе. Код CP/M и даже исходники теперь не проблема. Встречал мнение, что БИС ВГ93 лучше, чем БИС ВГ72, но встречал и обратное мнение.

Вот здесь Вы можете найти кусок данной книги со всей информацией, что есть в ней о дисководах и CP/M.

http://www.ac1-info.de/literatur/pmt.htm

Спойлер:
barsik
barsik
Ветеран

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

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

Дисковод для СПЕЦИАЛИСТА Empty .

Сообщение  barsik Пт Дек 06 2019, 01:17

5
С трудом разобрался с конфигом EMU80 для эмуляции Специалиста, чтобы была поддержка КНГМД по схеме Ориона/Корвета. Этот КНГМД и подпрограммы обмена взятые от Корвета требуют реального такта CPU в 2.4 МГЦ. По видимому, М.Короткину в 1992 удалось добиться того, что 1818 ВГ93 с небольшой доработкой КНГМД и при более тщательном программировании смог работать с дискетой в DD-формате и при процессоре с более низким реальным тактом (хотя пока это никто, кроме М.Короткина не видел). Но КНГМД М.Короткина эмулятор пока не поддерживает, как и КНГМД ЭРИКА (только КНГМД ОРИОНА и РК86). С КНГМД от РК86 пока напряг (но тоже надеюсь скоро разберусь).

Исходник оригинала CP/M для Специалиста использовать в полной мере не удалось, подпрограммы не сработали, возможно в исходнике уже была или была позднее внесена ошибка. Потому к оригинальному исходнику пришлось подключить более удачные для Специалиста свои подпрограммы из CP/M ОРИОНА для банки 0 (пока для Z80). Они для Специалиста выгоднее, т.к экономят 1 кб TPA. Пока странслировал отладочную версию, которая имеет эл.диск из открытого верхнего ОЗУ 10 кб. Это позволило отлаживать процедуры работы с дискетой. В практической версии, вместо использования под эл.диск, эти 10 кб верхнего ОЗУ будут использованы под код CP/M, чтобы поднять TPA до максимума в 35 кб (что максимально позволяет архитектура Специалиста), а эл.диск будет присутствовать только при наличии второй, или ещё нескольких, доп.банок ОЗУ, коммутируемых портом F900.

Как видно на скриншоте, эта стартовая версия CP/M для ВГ93 грузится с магнитофона (её можно стартовать и из ROM-диска). В принципе CP/M запускаемая из резидентного ПЗУ удобна. Но конечно для практического использования нужна версия CP/M с более высоким TPA, чтобы можно было запускать любые программы стандартного Специалиста (размером аж до 35 кб).

Такая версия CP/M с загрузкой с МГ-ленты нужна, чтобы проинсталлировать CP/M на реальную дискету. Для этого сначала с МГ-ленты на адрес $100 загружается инсталлятор SG.COM (т.к он стартует с адреса $100, как и все CP/M-программы), затем в то же ОЗУ, но выше него на 20 кб грузится стартовый модуль CP/M и запускается. При старте/реcтарте этой CP/M, ОЗУ ниже области загрузки кода не портится, потому, если код в ОЗУ менее 20-ти килобайт, то после старта CP/M командой SAVE код инсталлятора можно записать на эл.диск (или, если объёма эл.диска для этого не хватает, то как-нибудь сделать JMP 100). Запускаем инсталлятор и создаём системную дискету CP/M, после чего можно с неё загружаться и версия CP/M загружаемая с МГ-ленты с маленьким эл.диском больше не нужна.

Размер эл.диска не важен. Для нашей задачи (чтобы CP/M просто запустилась) достаточно иметь эл.диск всего лишь размером в 1 кб (т.е с полезным объёмом в 0 байт, 1 кб это каталог). В CP/M можно запустить программу размером с TPA, а как видно в данной версии это 29 кб, - не требуется обязательно стартовать программу с дискового привода. Для этого используется следующий трюк. Загружаем программу в ОЗУ на адрес $100. Затем стартуем CP/M, которая специально стартует в максимально высоких адресах (чтобы не затирать код с адреса $100).

Для банки 0, если у Вас на Специалисте стоит ленинградский монитор, то особых хитростей не нужно. Достаточно ввести сочетание клавиш <НР>+<F9> и затем команду G100<ВК>. Но можно запустить программу с адреса $100 и более хитро. Для этого в CCP вводим команду SAVE 0 RUN.COM, что создаёт на дисковом приводе файл с размером 0 (что кстати не занимает место, только экстент в каталоге). Далее достаточно командой CCP запустить программу RUN и эта программа длиной 0 байтов будет загружена в ОЗУ и запустится. А реально стартанёт тот код, что находится c адреса $100.

Теперь осталось перетранслировать для Специалиста корректный (относительно DOS) нортон и попробовать добиться того, чтобы код CP/M работал прямо из ПЗУ C000. Так как на плате "Экспресс" (если воткнуть в панельку на 28 ног ПЗУ типа 27256/27512), то ПЗУ - в достатке, а вот с наличием ОЗУ дело обстоит печальнее. Потому, конечно, основная доработка Специалиста, что актуальна для каждого, кто пытается программировать для Специалиста, - это напайка доп.банки 565РУ5 вторым этажом, чтобы поиметь дополнительные 62 кб ОЗУ.

Дисковод для СПЕЦИАЛИСТА CPM1.1575583924

Дисковод для СПЕЦИАЛИСТА CPM2.1575584211

Дисковод для СПЕЦИАЛИСТА CPM3.1575584242
barsik
barsik
Ветеран

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

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

Дисковод для СПЕЦИАЛИСТА Empty .

Сообщение  barsik Пн Дек 16 2019, 15:45

6
Т.к я сейчас не люблю возиться с паяльником (могу сделать лишь минимальную доработку работающей платы Специалиста на Z80), то вынужден придумать минимальный вариант нужных доработок Специалиста. Это (не считая замены на Z80) лишь следующее:

- дисковод c DOS позволяющей запускать имеющиеся программы объёмом до 32 кб
- дополнительное ОЗУ в 32 кб из которого можно работать с экраном
- волковский цвет
- и при желании ускорение скорости прогона программ

Обдумав варианты, я пришёл к выводу, что наименее трудоёмко расширять ОЗУ в Специалисте получается на статическом ОЗУ 62256 (т.к по сути это просто установка микросхемы 62256 в имеющуюся панельку). Не считая схемы цвета (на что требуется 5-6 доп.микросхем), доработки, дающие требуемое, при грамотном подходе выливаются в расход ~5 дополнительных TTL-корпусов и трудоёмкость работы паяльником всего в несколько часов.

Что касается КНГМД, то тут сейчас и сходу, как и 30 лет назад, доступны всего два тривиальных варианта позволяющие поиметь дисковод. Т.е есть два варианта не требующие практически никакого труда. Первый, - это лобовой вариант с понижением скорости потока данных из дисковода. Для чего достаточно заменить кварц в типовом КНГМД на ВГ93 с 8 МГЦ до 7 МГЦ и использовать форматёр дискеты не 5 секторов на трек, а только 4 сектора на трек (работа на 3 минуты по модификации форматёра дискеты). Это сокращает ёмкость дискеты с 800 кб до 640 кб, зато заменить кварц в КНГМД намного проще, чем добавлять в схему Специалиста триггер ТМ2, чтобы заменить в нём кварц с 8 МГЦ на 10 МГЦ, что даёт ускорение работы на 25%, но зато неприятно плющит экран.

А второй вариант это, естественно, простая и надёжная схема Турбо с WAIT при процессоре Z80. Она и без замены кварца в Специалисте даёт эффективный такт Z80 в ~2.8 МГЦ, чего вполне достаточно для работы типового программного КНГМД на ВГ93. А в сочетании с заменой кварца на 9 МГЦ такое Турбо даёт реальный такт в ~3.2 МГЦ, что может хватить даже для продвинутых графических программ с мышью.

Но есть ещё и третий вариант поиметь дисковод на базовом тормозном Специалисте и даже на КР580. Но уже не в формате DD (Double Density), а в формате SD (Single Density). ВГ93 имеет вход DEN и при подаче туда 0 скорость потока данных из/в ВГ93 падает вдвое. При этом достаточно быстродействия CPU всего лишь в 1.2 МГЦ. При этом годится тот же КНГМД от ОРИОНА (но не от ОРИОНСОФТ, т.к в нём из упр.регистра удалено управление плотностью). При SD-плотности записи надёжность немного лучше, на трек записываются те же 5 секторов, но размер сектора вдвое меньший, 512 байт вместо 1 кб. И в формате SD форматная ёмкость дискеты составляет всего 410 кб, из которых полезными являются только 404 кб (из общего объёма в 205 блоков отнимаются 3 блока: 2 блока каталог и блок 0 - BOOT-сектор).

КНГМД сам настраивается на формат SD и в схеме КНГМД ничего не меняется. Потому на базовом Специалисте с клоком 2 МГЦ можно использовать тот же КНГМД. А если впоследствии в базовый Специалист поставить Z80 или турбировать КР580 до 2.5 МГЦ, то ничего менять не надо, - достаточно новый диск отформатировать в формате DD. Но пока я не странслировал версию CP/M для КР580, сделаю попозже, если это кому-то надо. Это не большая проблема, достаточно лишь при трансляции взять другой модуль FLOP.INC из ранних CP/M ОРИОНА. Хотя т.к верхнего ОЗУ с буфером в 2 кб (вместо 1 кб) может не хватить лучше бы использовать и для КР580 используемый сейчас модуль очистив его от Z80 команд.
barsik
barsik
Ветеран

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

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

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

- Похожие темы

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