Захотелось узнать во что обойдётся избавление от неудобной архитектуры РК86. Естественно, при сохранении совместимости. Т.е узнать экономией какого числа деталей вызваны трудности РК86 по использованию CP/M и несовместимость с клонами. Поэтому нарисовал схему реконфигуратора архитектуры РК86, которую при публикации РК86, для тех кто хочет расширить ОЗУ, обещали опубликовать позднее.
Первой мыслью о схеме коммутации адресов является применение 556РТ4, где на 4 входа подаются адреса A13,A14 и A8,A9 (также и A15), а на 8-й вход подаётся сигнал управления архитектурой. В 2-х опубликованных схемах расширения ОЗУ (см.вложения) также применили РТ4. Только сделали это "намертво", т.е навсегда имеешь только 60 кб, потеряв при этом совместимость со всем старым ПО для РК с 32К. Естественно, такой вариант не годится.
РТ4 позволяет иметь оперативную реконфигурацию, для чего она и нужна. Иначе, вообще на кой хрен ставить неудобную РТ4, если для жёсткой смены адресов достаточно лишь добавить ЛА2 и перекинуть пару проводков на ИД7. Потому приведённые во вложении схемы считаю глупыми. РТ4 неудобна потому, что её надо прошивать, а значит паять прошиватель РТ4. РТ4 позволяет сократить схему на 1 корпус, ради чего связываться с РТ4 просто не стоит.
И без РТ4 схема получается простой. Добавляем ЛА4, ИД7 и КП11. ЛА4 и ИД7 совместно образуют дешифратор на F000, F100, F200,... F700. Выходы старого ИД7 дающего выборки 8000, A000, C000 и E000 отрезаем от печати и в разрыв цепей вставляем КП11. КП11 коммутирует выходы двух ИД7. Она, в зависимости от бита управления, будет подавать на В/У, то старые выборки, начинающиеся с адреса 8000, то новые выборки с адреса F000 с дополнительного ИД7. Чтобы управлять формированием /CAS требуется ещё один корпус логики.
Для работы с ОЗУ 60К придётся добавить 2-ю банку ПЗУ. Второе ПЗУ ставится в параллель старому ПЗУ, для чего на него напаивается панелька в которую вставляется второе ПЗУ РФ2. Переключение можно сделать и тумблером, но лучше программно. Тогда из одной конфигурации можно запускать программы для другой конфигурации. Для расширения ОЗУ в таком варианте можно использовать только цельнобанковую коммутацию.
Итого цена проблемы: 4 корпуса 1533 серии. Теперь надо думать. Делать большое ОЗУ или не делать. На этой же схеме РК86 превращается в АПОГЕЙ.
Кто-то умный скажет, что схему можно сократить переключая адреса A13,A14 и A8,A9 прямо на входах ИД7. Да, деталей меньше, но мне надо чтобы дешифраторы работали одновременно, т.к некоторые адреса общие для обоих конфигураций.
Кстати, по поводу расширения ОЗУ в РК86 нашёл вот такой текст (на другом сайте).
Этот человек написал неточно, т.к адреса РУ7-мых подключаются не напрямую, а через дополнительно установленный мультиплексор КП11. И адреса на мультиплексорах надо сдвигать, чтобы по /RAS шли адреса A0...A8, иначе не будет регенерации. И при при двух РУ7-мых с ОЗУ в пространстве 0...7FFF, будет только половина из 512К, т.е 256К. Т.к невозможно иметь коммутацию по 32К и окно ОЗУ в области F800. То есть, - или ПОЛУ-банковая коммутация по 32К и доступно 512К, но без ОЗУ в F800. Или ЦЕЛЬНО-банковая коммутация по 64К, тогда в области F800 возможно иметь ОЗУ, но доступно только 256К + 16К в окне F800...FFFF.Когда имел РК86, я расширил его ОЗУ до 512К. Для этого нужно было поставить в два этажа РУ7, а дополнительные адреса подключить к паре разрядов дополнительного ППА. Разумеется, нужно было ещё переписать монитор - вставить директивы переключения страниц памяти. В результате, можно было переключать страницы памяти.
Дополнил я также РК-шку "фантомным монитором" - при холодном старте монитор из ПЗУ переписывался в ОЗУ (по тем же адресам), потом ПЗУ отключалось и прикладной софт (собственноручно придуманная операционка) получала полный доступ к модификации управляющего монитора, что дало программную гибкость.
Наличие ОЗУ в области F800 действительно даёт гибкость, хотя ещё лучше сделать эту область некоммутируемой. Наличие ОЗУ F800 позволит обойтись одним ПЗУ РФ2. Тогда в ПЗУ прошивается загрузчик из проводной линии, который стартует по кнопке сброс и из IBM PC в ОЗУ закачивается ROM-BIOS. Лучше сразу оба, для ОЗУ 32К и ОЗУ 60К и размещаются в другой банке ОЗУ. Тогда возможно переключение конфигураций при всего одном ПЗУ РФ2.
- - - Добавлено - - -
Расход деталей в варианте с одной конфигурацией и в варианте с двумя конфигурациями архитектуры практически одинаков (и даже с 2-мя конфигурациями деталей меньше).
После размышления я решил учесть мнение корифанов B2M и error404 считающих, что большое ОЗУ с цельно-банковой коммутацией лучше, чем 32К или даже 48К с коммутацией доп.памяти в окне 8400...BFFF. Объём ОЗУ становится важен, если программное обеспечение пишется на ЯВУ и используется ДОС, получше, чем РК-ДОС.
Т.к никто не хочет высказаться по поводу доработок, то очевидно все согласны и понимают, что в силу своей лени, я и без подсказок сделаю так, как будет проще по числу деталей и объёму труда. Вот какая архитектура получается.
Конфигурация 32К включается по сбросу. В конфигурации 32К - адреса портов стандартны: 8000, F200, C000, E000. ОЗУ - 32К и в области F800 - тоже ОЗУ 537РУ10, а не ПЗУ. ПЗУ 2К, включается по сбросу, всегда стоит с адреса 0 и занимает адресное пространство 0...7FFF, так что если поставить 27256, то будет как раз. Порт клавиатуры кроме как по 8000 выбирается и по F100. А доп.ППА всегда выбирается только по F200. Кроме того ВИ53 выбирается по адресу F500. Т.к доп.ППА перенесён, то в области A000...BFFF - ОЗУ, так что фактически это конфигурация с ОЗУ 32+8= 40 кб.
В конфигурации 60К адреса портов F000, F100, F200... F700. ОЗУ сплошное 60К 0...EFFF. В области F800 также ОЗУ. КНГМД F000, порт клавиатуры F100, доп.ППА D14 по адресу F200,
ВГ75 по адресу F300, ВТ57 по адресу F400, а ВИ53 по адресу F500, ВВ51 по адресу F600.
Конфигурации переключаются битом PC7 доп.ППА D14. Т.к во всех конфигурациях ППА D14 доступен по F200, переключение доступно из любой конфигурации.
Банки переключаются битами PC0...PC6 ППА D14, который во всех конфигурациях стоит на F200. Таким образом возможно лишь 128 банок по 64К (доступно только 60К), что даёт возможность использовать SIMM до 8 мб. Надеюсь, этого хватит на первое время, хотя при дальнейшем расширении ОЗУ придется вводить старший байт номера банки.
Плату ТУРБО акселератора, я сразу паять не буду, а вначале поставлю буфер для ОЗУ. Почти не сомневаюсь, что это позволит заменить кварц с 16 МГЦ на 27 МГЦ, что даст такт КР580 ровно 3 МГЦ. На первое время этого хватит. В режиме НЕТУРБО такт будет переключаться на 1.5 МГЦ. Акселератор имеет смысл паять только ради существенного выигрыша путем применения Z80 на такте 8 МГЦ со статическим ОЗУ 62256. Ради КР580 на 3...3.5 МГЦ акселератор делать не стоит, т.к этого же можно добиться и без дополнительных плат.
Чтобы было 80 символов в строке ВГ75 у меня будет тактироваться тактом 12.5 МГЦ (а если фонт старый некрасивый 6*8, то надо 10 МГЦ). Весь расход деталей на введение 80-ти символов, только кварц и АГ3 для аппаратного формирования ССИ. Экран плющенный, но дающий видимых 78/80 символов в строке. Такая доработка мне нужна, чтобы в дальнейшем получить 40 полноценных цветных символов.
Цвет для начала из одного фонта за счёт сокращения разрешения в знакоместе, это минимальный расход деталей и труда. Только чтобы посмотреть как выглядят игры с графикой и цветом. В дальнейшем имеет смысл иметь цвет из отдельного фонта цвета, в качестве которого разумно использовать загружаемый фонт по схеме от Alex_LG, только это ОЗУ ставить не вместо основного фонта, а в параллель, как это сделано в МЦПГ "Партнёра", что даёт 16 цветов INK и 16 цветов для PAPER.
Т.к все доработки очень простые и делаются по одной, т.е поэтапно, то проблем с отладкой не возникнет. Подобные доработки РК86 я уже делал в начале 90-х. Так что проблем нет. Важно, что труда - на 2 порядка меньше, чем при разработке полностью нового компьютера, а результат лучше, т.к есть совместимость.




Ответить с цитированием