PDA

Просмотр полной версии : Модульный РАДИО-86РК



AlexZ
23.11.2016, 00:01
Всем доброго вечера.
Посетила меня навязчивая идея которая всё не выходит из головы.
А идея довольно проста - модульный пк, что то на подобии шилдов ардуино.

http://savepic.ru/12338497m.jpg (http://savepic.ru/12338497.htm)

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

http://savepic.ru/12380495m.png (http://savepic.ru/12380495.htm)

На первой (самой нижней) плате - блок питания из импульсного источника на 5 вольт + преобразователь на +12 и -5 вольт (по схеме опубликованной здесь на форуме). Выводы на верхнюю плату - все номиналы питания. Возможен вариант платы где вместо бп будет только преобразователи на 12 и -5 вольт + разъем USB для запитывания пк от зарядки планшета или еще чего. А также вариант с только 5 вольтами под основной модуль на 85 микросхеме.

На второй плате - процессорный модуль: процессор, звук (или лучше отдельный модуль), монитор и озу + тактовый генератор и логика для мультиплексирования шины. Выводы на верхнюю плату - питание, шина (адрес + данные), прочее (аля такты для ВГ75). Эти же контакты повторяются на всех остальных платах выше в тех же местах, для возможно перестановки местами например третьего и четвертого модуля или сколько их там у вас будет.

CPU модуль под 8085 - схема (https://easyeda.com/normal/CPU_module_i8085-ac96e87e61c545f5b52425f68e7b9949)
CPU модуль под 8085 - плата (https://easyeda.com/normal/CPU_module_i8085-5fb7ab8414c04978b9f816fc8c260cbb)

На третьей плате - видео система: пдп, буферный и сдвиговый регистр, вг75, пзу знакогенератора и вся мелко-логика обвязки, разъем, либо контакты под разъем видео.

На четвертой плате - периферия: два ВВ55 с сопутствующей обвязкой + магнитафонный вход.


При наличии возможности или желания после сборки можно будет все это добро обернуть в какой либо корпус (мне например нравится прозрачный)

Как видите, ПК при таком подходе становится похож на многослойный пирог из печатных плат между которыми находятся микросхемы в дип корпусах :rolleyes: Должно получиться не очень толсто.

Основные фичи проекта:

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

2. Дешевизна, самодельный РК не должен стоить дороже 1000-1500 рублей (если все покупать). Заказывать готовые рк на статике от 3+ килорублей - это не про модульный Радио-86РК. А также ПК не должен состоять из компонентов недоступных в продаже, очень неприятно видеть чужие разработки со схемами где используется такой антиквариат, что их мало что не купить, так и информации (даташитов) по ним в интернете нет.

2. Возможность модификации без пере-изготовления всего пк. Например: VGA видео - потребуется развести и изготовить небольшую плату-модуль видеосистемы и просто поменять их местами, или например 85 проц и статическая рам или ROM диск или ... - ну вы поняли...

3. Оригинальная "журнальная" архитектура и полная совместимость со всем доступным софтом.

4. Возможность функционирования в урезанном варианте. Например, если не нужен видео-выход и периферия, то пк сможет работать только на процессорном модуле.

5. Разработка благодаря комьюнити. Не за денежное вознаграждение, а для удовольствия каждый желающий может принять участие в разработке. Это значит что стоит попробовать не жужжать на друг друга в комментах (благо тут такое встречается редко), а внести хоть и небольшую, но все-таки лепту в развитие проекта. Ибо повторять чужой проект не так приятно как разработать свой, но если внести небольшую лепту в разработку - удовольствие будет как от своего проекта. Участие в разработке плат стало доступно благодаря облачным сервисам разработки, например easyeda (ни разу не реклама), которым я и предлагаю воспользоваться.

Надеюсь что кому то эта идея покажется интересной и проект удачно стартанет. :v2_dizzy_vodka4:

kolk
23.11.2016, 02:33
Конструктив - 8-битное (IBM PC XT) подмножество PC-104. http://wiki.embeddedarm.com/w//images/3/34/TS-2100-Board-Dimensions.jpg
Вопрос - какое пространство заявлять (памяти или ВВ), и что выставлять на старшие адреса? (Если платы от IBM подключать не надо, ответ не важен.)

PATHNK
23.11.2016, 09:29
Надеюсь что кому то эта идея покажется интересной и проект удачно стартанет.
Ну так и делайте сами.
Каждое соединение через разъем - это потенциальный источник проблемы плохого контакта и повышенного сопротивления из-за нагрева, окисления, старения, деформации и т.п. Плюс электромагнитные многоэтажные наводки. Идея не нравится, пусть даже и выглядит хорошо.

xlat
23.11.2016, 11:28
Давайте будем реалистами - в бюджет 500-1000 рублей за весь РК даже при самом оптимистичном раскладе влезть не получится. Разве что, если там совсем не будет деталей, кроме разъёмов.

Vladimir_S
23.11.2016, 11:52
В два слоя и то не удобно отлаживать было, то до одного не доберешься, то до другого. А тут ...
http://zx-pk.ru/threads/6505-radio-86rk-raznoe.html?p=789569&viewfull=1#post789569

Mick
23.11.2016, 12:03
2. Дешевизна, самодельный РК не должен стоить дороже 500-1000 рублей. Заказывать готовые рк на статике от 3+ килорублей - это не про модульный Радио-86РК. А также ПК не должен состоять из компонентов недоступных в продаже, очень неприятно видеть чужие разработки со схемами где используется такой антиквариат, что их мало что не купить, так и информации (даташитов) по ним в интернете нет.


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

P.S. И откуда такие фантазеры берутся. :v2_dizzy_facepalm:

andykarpov
23.11.2016, 17:00
Можно вместо бутерброда сделать модульность по образу и подобию, как это сделано для проекта RC2014: http://rc2014.co.uk

http://rc2014.co.uk/wp-content/uploads/2014/10/RC2014_Overview.jpg

AlexZ
23.11.2016, 20:53
Добрый вечер.
Спасибо за ваше мнение.
Очень удивила заинтересованность ценообразованием.

Вот моя примерка:

магазин - элеконт, дата сегодня

КР580ВВ55 х 2 = 45 х 2 = 90
КР580ВТ57 х 1 = 3
КР580ВМ80 х 1 = 13
КР580ВГ75 х 1 = 10
КР580ГФ24 х 1 = 8

573РФ1 х 1 = 274 (заменяем на РФ2 по 60)
573РФ2 х 1 = 60

К155ИР13 х 1 = 50
К589ИР12 х 1 = 62

К555ИР10 х 1 = 9
М555ЛН1 х 1 = 30
М555ЛА3 х 1 = 19
К555ЛП5 х 1 = 18
К555ИД7 х 1 = 26
К555ЛИ1 х 1 = 18
М155ИЕ4 х 1 = 6
М555ТМ2 х 1 = 6

К140ИД8 х 1 = не нашел надо подбирать чтото похожее

К555КП11 х 2 = 20 х 2 = 40
КР565РУ5В х 8 = 48 х 8 = 384 (в местном оффлайн магазине по 15 рублей, но считаем по элеконту)

Логика итого: 930 рублей

Платы из китая 10на15, две штуки, резать пополам (так у меня примерно получается), приблизительно 26 рублей

кварц, разъем на 40 пинов + резюки кандеры, еще примерно на 50 рублей.

Итого: не считая усилителя вложиться в чуть более 1к рублей реально. Все из магазина.

Согласен что планку стоит поднять до 1000-1500р.
Но самые дотошные могут уложиться и в менее 1к, если поискать аналоги микросхем по дешевле в разных магазинах, в том числе и оффлайн, как в моем случае произошло с памятью.

Mick
23.11.2016, 21:09
Платы из китая 10на15, две штуки, резать пополам (так у меня примерно получается), приблизительно 26 рублей

Это при каком количестве - 100...1000шт
А доставка из Китая плат?

AlexZ
23.11.2016, 21:34
Это при каком количестве
ошибся, писал по памяти, не 26 а 100 рублей. 10 штук, доставка бесплатно
Вот например (https://www.aliexpress.com/item/Wholesale-10pcs-lot-PCB-One-Side-Single-Side-Copper-Clad-70x100x1-5mm-Single-PCB-Board-30710/32488213248.html?spm=2114.30010308.3.1.XyXqQW&ws_ab_test=searchweb0_0,searchweb201602_2_10065_10 068_10000007_10084_10083_10080_10082_10081_10060_1 0061_10062_10056_10055_10037_10054_10059_10032_100 99_10078_10079_10077_10073_10097_10100_10096_10070 _423_10052_10050_424_10051,searchweb201603_6&btsid=8f22d53d-8bd4-4e04-a9b6-18a42921c5b8)

cy6
23.11.2016, 23:51
В два слоя и то не удобно отлаживать было
Угу. В Суру хотелось бы прямо в панельку процессора что нибудь запихать, типа тестера всех шин и ПЗУ, но не тут то было. Верхняя плата (с кварцом и ОЗУ) ставится почти впритык. :v2_dizzy_wall: А на внешний разъем, выведены далеко не все нужные сигналы с шины управления, остается тянуть их на пустые зарезервированные контакты "через весь двор".

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

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

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

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

И, скорее всего, не стоит перебарщивать с группировкой потенциально разных модулей на одну плату.
Пример функционально разных частей: модуль процессора, модуль ОЗУ (один или более), модуль ПЗУ (один или более), модуль видеоконтроллера (черно-белый, цветной, графический), модуль устройств ввода/вывода (клавиатура, джойстик, магнитофон), модуль дополнительных ПУ (еще одна ВВ55), модуль SD карты.

AlexZ
25.11.2016, 00:20
Добавил наброски процессорного модуля в шапку темы.
Пока примерялся, понял что однослойным его сделать вместе с пзу монитора и озу будет практически невозможно.
Пришлось пойти на упрощение, вынести озу и пзу на отдельные платы.
Прошу неравнодушных высказать мнение или посоветовать по делу.

UEA
25.11.2016, 01:13
Даже в интернете сложно найти "самопальную" плату РК, ибо такой кусок двустороннего текстолита даже из китая стоит как брусок золота. А уж про двусторонний лут таких размеров ходят только байки.

Ну почему же байки (https://get.google.com/albumarchive/100553456700087938694/album/AF1QipPERgxY7Petq_JjPcKCWs-fWxL6Cyptax_lNlyv?authKey=COPnrdv0663qgAE)? :)

AlexZ
25.11.2016, 10:52
Ну почему же байки?
Снимаю шляпу.
Это какой то мега уровень ЛУТа, я бы на такое только с фоторезистом осмелился.

HardWareMan
25.11.2016, 11:52
AlexZ, фигня. Я и сложнее платы делал (и по размеру и по посадочным местам, вроде TSOP56). Вот в 90х у меня была плата Ориона, которую нарисовал мой друг рейсфедером по журнальным картинкам.
http://mywishlist.ru/pic/i/wish/orig/003/138/196.gif
Вот то был высший пилотаж, но тогда даже ЛУТа не было... Помню, как меня достало пропаивать все пистоны. Жаль тогда фотика у меня не было.

cy6
25.11.2016, 13:29
Понятно, что есть мега гуру могущие все. Или готовые скурпулезно и долго что то "выпиливать". Получается шикарно.
Но ведь основная идея РК, это массовая повторяемость. :) Как автомат калашникова, доступный всем. :)

Что касается двухстороннего ЛУТа, то это вопрос хотя бы небольшой его практики. Сама технология упирается в площадь платы (большую плату можно прогреть только в ламинаторе, и это уже не ЛУТ, а ЛЛТ), толщину и плотность покрытия проводников.

HardWareMan
25.11.2016, 15:04
Что касается двухстороннего ЛУТа, то это вопрос хотя бы небольшой его практики. Сама технология упирается в площадь платы (большую плату можно прогреть только в ламинаторе, и это уже не ЛУТ, а ЛЛТ), толщину и плотность покрытия проводников.
Кстати, да. Вкусив однажды ламинатор, я никогда не вернусь к утюгу. Хотя у меня как раз самый идеальный утюг, тяжелый и полированный, из СССР родом (все еще живой, курилка). :) Современными "Тафелями" так не поутюжить. А ламинатор просто повышает на порядки не только качество процесса но и повторяемость, особенно на больших площадях: я проверял вплоть до А4, больше в ванночку не помещается, хотя сам ламинатор А3.

barsik
27.11.2016, 20:55
Делать ещё один вариант РК с базовой архитектурой - неинтересно, неважно модульной он конструкции или одноплатный. Гораздо интереснее расширить РК, дать ему архитектуру, позволяющую удовлетворить более высокие потребности, можно сделать из РК "хамелеон". Т.е, при сохранении совместимости с базовым железом 1986 года, ввести такие доработки, которые должны были сделать авторы РК-МАКСИ в 1994-95. Меня вообще удивляет желание повторять схемы в оригинале. Вы что их для музея делаете? Или для себя?

Например, несложной схемой программно переключаемой "карты памяти" реализованной на 556РТ4 (по типу ИРИШИ), можно переносить адреса В/У куда угодно, например, освобождая сплошные 60К для ОЗУ на РУ5.

РУ5-е выгодно заменить на РУ7, чтобы получить внутренний эл.диск из лишнего ОЗУ (как в ОРИОНЕ). С ним работать быстрее, чем с внешней массовой памятью (на чём бы она ни была). И когда ты только собрал машину и никаких SD-карточек и винчестеров у тебя ещё нет, то всё-равно можешь полноценно пользоваться РК. Подключил его двумя проводами к IBM PC, закачал в эл.диск 192К десяток программ и пользуйся. РУ7 должен регенерироваться в стандартном режиме 30*78, т.к 9 векторов регенерации при выводе экрана перебираются всего за время вывода (512/78) 7-ми строк, т.е 64*7= 448 МКС, что меньше 4 МС. Одновременно с переключением архитектуры надо переключать и ПЗУ F800 (27256 вместо РФ2), чтобы были ROM-BIOS-ы для всех архитектур и "карт памяти". Наличие прошивки позволяет, например, получить

- цельно банковую коммутацию ОЗУ в окне 0...7FFF или 0...EFFF по типу ОРИОНА
- большое сплошное ОЗУ (0...EFFF) с портами F000...F7FF
- базовую архитектуру с открытым окном ОЗУ 8 кб на месте ППА D14 (A000...BFFF)
- архитектуру, когда в F800...FFFF - ОЗУ, защищённое от записи (загрузка личного ROM-BIOS)

Затем, программно переключаемая скорость тактирования CPU. ГФ24 вообще не нужен - он дефицитен и плохо работает с высокими кварцами. Да и вообще он не нужен при нормальном процессоре, т.е при Z80 или HD64180ZP8 (это Z80 с 8-ми разрядной шиной и адресным пространством в 512К). Если уж надо иметь КР580, то гораздо лучше работает схема формирования Ф1 и Ф2 СПЕЦИАЛИСТА. Можно 3 скорости - ТУРБО (где-то 3 МГЦ, максимум для КР580), номинальная скорость, и жульническая - в 2 раза медленнее номинала (чтобы проходить сложные игры).

Непонятно почему, делая платы РК, никто не поставил ВИ53, ведь он фактически стандарт РК86, т.к стандарты задавали публикации в РАДИО, а ВИ53 опубликован 3 раза. Однако нужны все 3 канала для звуков. ВИ53 может звучать красиво, если иметь регулировку громкости по каналам и генератор вибрато (6-8 ГЦ). Впрочем, AY-8912 обходится в меньшее число деталей, чем формирователи на выходах ВИ53.

Адаптер магнитофона никому и даром не нужен. Также для экономии места, второй ППА лучше вынести на периферию, введя вместо него регистр управления на 1533. На вход МГ подать мендр 5ГЦ, аналогично БК-010, что позволит работать в реальном времени и тем самым выводить музыку на ВИ53 в верном темпе.

Нужен красивый фонт шириной в 8 пикселей, а не 6, как в оригинале (тем более, что это обходится всего в 2 диода и резистор). Необходимо иметь 4 фонта. Для этого РФ2 мало. Нужен базовый фонт в 2К высотой не в 8 линий растра, а в 10 (хотя бы, чтобы рисовать рамки сплошные по вертикали, без необходимости перепрограммивать ВГ75 на высоту символов в 8 точек, что плющит изображение). Нужен альтернативный фонт и фонт для текстообработки (КОИ-8), где есть маленькие (прописные) русские буквы вместо псевдографики (0...1F), и четвертый фонт, где русские буквы на кодах 0...1F, а латинские большие и маленькие по стандарту ASCII (в оригинале РК КОИ7-Н1), чтобы работать в CP/M. Также надо сделать REVERSE VIDEO (это обходится в ТМ2, ЛП5 и два диода). На базовом РК это не очень удобно, но если мы можем менять ROM-BIOS, то можно программно поддержать такую схему.

Возможен фонт для игр, где прошиты фрагменты красивых спрайтов в разных фазах (односимвольные и 2*2, т.е состоящие из 4 символов). Тогда челевечек при беге будет шевелить ножками и ручками, пакмэн будет раскрывать рот, а взрыв будет красивым. Правда, сомневаюсь, что кого-то интересуют игры РК, даже если они станут чуть красивее. Впрочем, кардинальное решение - это программная загрузка фонта (что будет несколько громоздко и фатально удорожит плату). Можно подумать о цветовых схемах, они обходятся в мало деталей. Тут мнения нет, я их не видел в работе.

Процессор. Неудобная и нелогичная мнемоника INTEL всем давно надоела. Любой кто хоть чуть-чуть поработал в мнемонике Z80, уже никогда не возвращается к ней, даже работая для КР580. Для любителей старины можно поставить КР580, но стоит предусмотреть замену его на Z80 (или даже на 8-ми разрядный 68008). Разумно поставить две панельки - для КР580 и Z80. Какой нравится, такой и ставь. Если кто-то скажет, что Z80 несовместим с КР580, то это не довод. Несложно конвертировать те несколько программ РК, что не работают на Z80. Если будет РК на Z80, то я это сделаю. Вообще-то надо отрывать руки тем, кто делает программы для КР580 несовместимыми с Z80.

Разумно где-то разместить контроллеры 'micro-SD', винчестера IDE и КМОП для BIOS с часами (512ВИ1). А также предусмотреть место куда можно "втыкать" внешнюю графическую плату.

В общем, идею модульности можно конвертировать в маленькую основную плату РК с 3-мя слотами-разъёмами и развитыми периферийными платами. Для начала - платой мультикарты с основными контроллерами и платой граф.адаптера 512*256.

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

Vital72
28.11.2016, 13:02
Итак, давно хотел высказаться и вот настал момент.
На счёт модернизации РК-шки -- barsik`а я поддерживаю полностью, ибо базовый вариант слишком ущербен и убог.
Еще в далекие 90-е я модернизировал свою РК-шку, когда базовых возможностей стало не хватать, часть идей была взята из журнала Радио -- это такие, как увеличение тактовой частоты процессора, улучшение узла формирования импульсов CAS, другие идеи я реализовал сам -- это увеличение памяти до 60к, причём, моя реализация в корне отличается от журнальных вариантов тем, что не требует ПЗУ с пережигаемыми перемычками, что в те времена было очень острой проблемой, а всё, что требовалось -- это допаять всего одну логическую микросхему. Другое моё улучшение -- использование атрибутов видеоконтроллера, что позволило выводить символы двух градаций, мерцание и инверсию, а также позволило выводить символы из двух знакогенераторов одновременно (мне очень хотелось иметь маленькие буквы одновременно с большими).
Сейчас я заканчиваю разработку своей версии РК-шки, используя свои доработки прошлых лет, а также новые, такие как: цвет, звук, RTC и SD-Card. Здесь нет переключаемого дешифратора, как предлагает barsik, но я и не вижу в нем особого смысла -- программы, которые используют только вызовы монитора будут работать без какой-либо доработки, а для тех программ, которые любят лезть к железу напрямую легко будет поменять адреса портов на правильные. Также нет загружаемого знакогенератора, целью было использовать минимум дополнительных корпусов для получения максимальной эффективности и мне кажется, я этого добился: потребовалось всего 8 дополнительных микросхем (включая Атмегу) для получения улучшенной версии РК-шки. И все эти изменения можно будет реализовать на оригинальной печатной плате, которые сейчас имеются у народа, хотя и потребуется потрудиться (через некоторое время я выложу все требуемые доработки). Если же требуется создать вообще что-то такое супер-пупер, то, я думаю, надо проектировать новый компьютер с нуля и закладывать в него уже всё, что душа пожелает. Я уже развел плату, получилось очень компактно, но до производства еще рано, т.к. требуется проверить некоторые узлы и написать программу для микроконтроллера.

И по поводу родных мнемоник i8080. Да есть некоторая странность в командах пересылки, но лично мне это не мешает программировать в этом синтаксисе. И если кому-то мнемоники Интела кажутся странным, то посмотрите на мнемоники команд пересылки Атмеги от Atmel: mov, movw, ldi, ld, ldd, lds, st, std, sts, lpm, elpm, spm -- это же ужас ужас!

Vladimir_S
28.11.2016, 14:15
Если цвет, то как в Апогее, а насчет дешифратора, то только что мысля прилетела - а что если запараллелить 155РЕ3 кроме выборки. Выборки инверсные и можно выбирать конфигурацию программно.

Ewgeny7
28.11.2016, 15:22
Лучше вообще взять Апогей цветной, как "вершину РК-эволюции" и лепить новые компы с оглядкой на него. Можно сложнее и лучше (опция), но проще - нельзя.
ИМХО, разумеется.
АпоГЕЕВ на руках много, заводские корпуса, почему бы не сделать его стандартом де-факто?

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

Было бы, кстати, весьма интересно прикошачить к "каноническому" апогею Z80. Наподобие Z80-Сard II для Ориона.

HardWareMan
28.11.2016, 15:49
Команда подсказывает? Шикарно. А кто подскажет саму команду? Запомнить полтора десятка состоящих из непроизносимых буквосочетаний команд для одного общего по логике действия ( "загрузка <приемник>, <источник>), это дико неудобно. Человеческий мозг биологически стремится к экономии, интеловские мнемоники для него после Z80 - абсурд.
Что легче для мозга, выучить одно LoaD и тысячу практически бессистемных правил или: MOVe, MoVe Immediate, STore Accumulator indeXed, STore Accumulator, LoaD Accumulator indeXed, LoaD Accumulator и у каждой свое конкретное правило, указанное в названии? У меня именно такие слова и всплывают, когда я смотрю на мнемоники ВМ80. Я понимаю, что это придумывалось англоязычными людьми для англоязычных программистов, но это дает возможность читать программу, я уже это говорил тут на форуме. А сухое LD от Z80 не прочтешь особо. И да, ходило мнение, что разрабы Z80, которые как раз и прикладывали руку к i8080 в свое время, не смогли использовать мнемонику i8080 из-за патентов, так бы вы все сейчас по другому пели.


И по поводу родных мнемоник i8080. Да есть некоторая странность в командах пересылки, но лично мне это не мешает программировать в этом синтаксисе. И если кому-то мнемоники Интела кажутся странным, то посмотрите на мнемоники команд пересылки Атмеги от Atmel: mov, movw, ldi, ld, ldd, lds, st, std, sts, lpm, elpm, spm -- это же ужас ужас!
И чего тут странного то? Наоборот все логично: MOVe Word, LoaD Immediate и так далее. Да та же SBIC - Skip Bit If Clear (логически Bit и If должны быть переставлены, но это не мешает, видимо ставка делалась на удобство произношения мнемоники). Программу можно читать!

Я вижу тенденция у современных программистов просто зубрежка. Это понятно, каждый делает как ему удобно. Но кто из вас хоть раз пытался не просто выучить а вникнуть в ассемблер целевой системы? Я очень рад, что у ARMa тенденция сохранилась и их программу можно читать. Я даже очень быстро въехал в нее, с нулевым входом. Ewgeny7, ты же столько миникомпиков собрал и, самое главное, программки к ним понаписал. Неужели так и в чем не разобрался сам а тупо зубрил?

Vladimir_S
28.11.2016, 16:06
Ewgeny7, А еще SRAM для упрощения схемы.

HardWareMan
28.11.2016, 16:16
Vladimir_S, сейчас SRAM это уже по умолчанию.

Ewgeny7
28.11.2016, 17:20
А еще SRAM для упрощения схемы.
А я бы еще присоветовал заменить 155РЕ3 и прочие РТ11 (если они есть) на обыкновенные китайские копеечные (10 рублей/штука) GALки. Их прошивать на порядок проще и надежней. К тому же они - многоразовые.
Прошиватор можно сделать для параллельного порта, практически из гумна и палок (если нет заводского программатора типа TL866A или подобного).
Среда для написания прошивок - бесплатный мелкий Wincupl.
Программа для галки, имитирующая ПЗУ типа РЕ3 может выглядеть так, к примеру -


Device g16v8 ;

/* Input pins */
Pin [2..5] = [a0..3];

/* Output pins */
Pin [12..15] = [q0..3];

FIELD inp = [a0..3];
FIELD outp = [q0..3];
TABLE inp => outp {
0 => 'h'3;
1 => 'h'a;
2 => 'h'3;
3 => 'h'0;
4 => 'h'9;
5 => 'h'3;
6 => 'h'0;
7 => 'h'9;
8 => 'h'c;
9 => 'h'0;
10 => 'h'f;
11 => 'h'0;
12 => 'h'0;
13 => 'h'0;
14 => 'h'0;
15 => 'h'0;
}



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

Думаю, тут не надо быть великим знатоком языка CUPL (Абель), чтобы понять этот код :)

Vladimir_S
28.11.2016, 17:43
АпоГЕЕВ на руках много, заводские корпуса, почему бы не сделать его стандартом де-факто?
Я наверно один Апогей малость модернизирую для пробы. Заменю память на статику, сделаю заменяемую программно конфигурацию, можно и проц поменять.

обыкновенные китайские копеечные (10 рублей/штука) GALки.
Евгений, а их параллелить можно? У РЕ3 выходы ОК и их можно подключать впараллель.

Ewgeny7
28.11.2016, 17:48
Я наверно один Апогей малость модернизирую для пробы. Заменю память на статику, сделаю заменяемую программно конфигурацию, можно и проц поменять.
Владимир, это было бы безмерно здОрово! :)


Евгений, а их параллелить можно? У РЕ3 выходы ОК и их можно подключать впараллель.
Тут немножко другое. У галок выходы с тремя состояниями, тактируются сигналом OE. Примерно как 555АП5. То есть можно параллелить, если есть управление выходом.

cy6
29.11.2016, 13:11
На счёт модернизации РК-шки -- barsik`а я поддерживаю полностью, ибо базовый вариант слишком ущербен и убог.
Вся восьмибитная архитектура ущербна, и шестнадцатибитная тоже. Это устаревшие технологии с технологической свалки. Предлагать вместо одной микросхемы со свалки "более совершенную" с такой же свалки - нонсенс.
Имхо, невозможно оценивать ретро-ПЭВМ и ее технологии с такой точки зрения, так как ценность ее совершенно в другом. Необязательно быть шедевром в своем поколении "технологии", чтобы представлять ценность.

с убогим DIS МИКРОН
Не сказать, чтобы я обожала пакет "Микрон", но он не убогий. И к его разработчикам отношусь уважительно. Каждая программа имеет свою нишу, свою аудиторию, свое время и свое железо. Пакет "Микрон" это классика для РК. И несмотря на то, что есть альтернативы типа редактора "Well" и ассемблера "M&S", пакет "Микрон" всегда маст-хэв.

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


Считаю, что полная совместимость с базовым РК это аксиома.
Да, поддерживаю всеми лапами. :)

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

Открытие ОЗУ в адресах A000...BFFF или 8400...BFFF этому требованию удовлетворяют.
А вот про схему дешифрации "8400...BFFF" хотелось бы узнать, все таки. :)

Т.к к доп.ППА на A000 обращается только директива U (чтение блока из ROM-диска) и единственная программа - программатор УФ-ПЗУ.
Нет, еще есть контроллер SD-карты (c) vinxru. Он зависим от параллельного порта. Но думаю, что его перекомпиляция не составит проблем.

Vital72
29.11.2016, 13:35
Вся восьмибитная архитектура ущербна, и шестнадцатибитная тоже. Это устаревшие технологии с технологической свалки. Предлагать вместо одной микросхемы со свалки "более совершенную" с такой же свалки - нонсенс.
Имхо, невозможно оценивать ретро-ПЭВМ и ее технологии с такой точки зрения, так как ценность ее совершенно в другом. Необязательно быть шедевром в своем поколении "технологии", чтобы представлять ценность.

Чевось? Явно не для моего ума.
--
Радио-86РК -- далеко не предел совершенства 8-битной архитектуры, можно сделать лучше и намного лучше, выжать, так сказать максимум из 8-битного железа, поэтому и существуют разные проекты новых 8-битных компьютеров, в том числе и мой.

barsik
30.11.2016, 11:09
Только что заметил, что эта тема продолжается и не все ушли в новую тему.


пакет МИКРОН всегда нужно иметь

Для полноты коллекции - да, для использования - нет.


МИКРОН не убогий (речь шла о дизассемблере)

Дизассемблером МИКРОН очень сложно дизассемблировать программу размером более 2 Кб (например, BDOS - 3.5 Кб, его при адаптации CP/M пришлось дизассемблировать МИКРОНОМ, т.к других инструментов без дисковода нет). Большой код дизассемблируют по частям и приходится тратить много времени на ручную редакцию. Тогда, как самый примитивный дизассемблер DISASM.COM делает эту работу за 2 секунды и сразу даёт готовый исходник.

А т.к Вы сейчас сидите на IBM PC, где есть интерактивный дизассемблер IDA, то Ваша фраза о том, что нужно иметь МИКРОН - совсем непонятна.

Вероятно, Вы имеете ввиду, что "МИКРОН всегда нужно иметь" на случай, если дисковые устройства недоступны. Например, упал утюг на контроллер 'micro-SD', одновременно раздавив РК-КНГМД. Тогда остаётся только запустить из ROM-диска ассемблер с редактором МИКРОН и начать писать тест для "железа"...


Вся восьмибитная архитектура ущербна

Это чем же интересно? Тем, что в микросхеме CPU, не 200 ног и адресное пространство меньше терабайта? Или тем, что не MMX, отчего на РК86 трудно смотреть MPG-видео и слушать MP3-музыку?


это технологии с технологической свалки. Предлагать вместо одной ИМС со свалки "более совершенную" с той же свалки - нонсенс.

Жёстко. Если бы Вы были другого пола, за такие высказывания Вас бы "закидали тапками". А так смотрите, все заткнулись на сутки... переживают обиду молча. Никто не хочет обижать девушку.

Я сторонник вообще только тех ИМС, что были доступны в момент изобретения данной рэтро ЭВМ. Иначе нечестно. Я ещё понимаю эмуляторы, - это удобно.

Но новоделы на ПЛИС - это не рэтро ЭВМ. Просто человек изучает приёмы конструирования и нашёл на чём проводить свои "экскременты" (с тем же успехом он мог бы реализовать схему управления ёлочными гирляндами). На сам РК и его программы таким деятелям обычно наплевать.

В данной теме более ёмкие ОЗУ предлагаются лишь из экономии, чтобы было меньше ручного монтажа. Хотя в случае РК86 замена динамических ОЗУ на статические не имеет смысла, т.к регенерация РУ5, обходится лишь в несколько корпусов логики (и для статики затраты на обрамление сократятся, в лучшем случае, лишь на 1 корпус 1533). Неужели преимуществом считается экономия электроэнергии (РУ5 в активном состоянии жрёт до 150 мА, отчего выгорает, если более 200 МСЕК /CAS=0).

Динамические ОЗУ всё-равно более ёмкие, и снять такие ОЗУ со старых плат IBM доступно всем, кто начал апгрейдить PC с середины 90-х. Например, две 44256 займут меньше места, чем две 62256 и дадут в 4 раза большее ОЗУ.


Необязательно быть шедевром технологии своего времени, чтобы представлять ценность... невозможно оценивать ретро-ПЭВМ с такой точки зрения, т.к ценность её совершенно в другом.

И в чём же? -- В сентиментальной ностальгии?

Чтобы, глядя на экран, с тоской вспоминать как долгими зимними вечерами в детстве, Вы играли в игры РК и писали свои первые программы на бейсике.

HardWareMan
30.11.2016, 12:51
Дизассемблером МИКРОН очень сложно дизассемблировать программу более 2 Кб (например, BDOS CP/M 3.5 Кб, что пришлось делать при адаптации, т.к других инструментов без НГМД просто не было), приходится тратить часы на ручную редакцию. Тогда, как самый примитивный дизассемблер DISASM.COM делает эту работу за 3 секунды и сразу даёт готовый исходник.
Это потому, что он сначала создает в каждой строке 5 лишних символов (адрес и пробел), которые потом используются в директиве 2 (расстановка меток, иногда кончаются метки - 256 на 1 символ - и приходится запускать по новой), которые можно убрать по директиве 3. Я разбирал и собирал микрон (по отдельности) и ASSM и DISS. И это все можно пофиксить (но не актуально). Компиляция ассемблера идет минут 5 (чай я успевал попить) на Спеце.

Vladimir_S
01.12.2016, 07:47
Владимир, это было бы безмерно здОрово!
Хреново, в Апогее плата так расположена, что расширение на PBS просто не влезет и отверстия под микросхемы очень маленькие. Даже разъем PBS не вставить. И решил я родить комп с двумя конфигурациями РК/Апогей.
И с выбором процессора ВМ85/Z80. Поставить их так, что бы они перекрывали друг друга, и нельзя было бы воткнуть оба. Нужно ввести порт на ТМ7 для программного переключения конфигурации и тактовой частоты.
На Z80 подать 1.75 Мгц, турбо 3.5 Мгц. На ВМ85 соответственно 3.5 Мгц и 7 Мгц.

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

Справочник подсказал что лучше порт на ТМ8, со сбросом.

cy6
01.12.2016, 14:08
Дизассемблером МИКРОН очень сложно дизассемблировать программу размером более 2 Кб

Ваша фраза о том, что нужно иметь МИКРОН - совсем непонятна

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


И в чём же? -- В сентиментальной ностальгии?
Чтобы, глядя на экран, с тоской вспоминать как долгими зимними вечерами в детстве, Вы играли в игры РК и писали свои первые программы на бейсике.

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

Я видела первый вариант "редакции" (что то про водку и магнитные головки). Фантастику люблю, но только без чернухи. Флейм не интересен (особенно на тему "как надо", и "что круче"). Интересны реальные советы по доработке реального железа.

Например, "как сделать мапинг РУ5" для непоказанных 32К. Интересуют именно РУ5, но пока что очень тихо на эту тему.
Я тут подумала, а зачем вообще окно 8400-9FFF, ведь резать 8кб на восемь кусков это целый ИД7 нужен.
А если кто то обращался к порту клавиатуры посредством операторов работы с портом, то восемь бит адреса на шине адреса дублируются. Получаем адреса не 8000-8003, а 8080-8383. Теперь поняла, почему выбрано окно 8000-83FF.

А если сделать мапинг 8000-8FFF порт, 9000-9FFF ОЗУ. Также, ОЗУ наверное можно сразу показывать в B000-BFFF и D000 - DFFF. Итого, 12кб на постоянной основе, но фрагментированной. Окна A000-AFFF, C000-CFFF надо видимо иметь возможность включать программно. Итого, уже 20к нефрагментированного ОЗУ (где порты отключенные используются редко).

С окном E000-FFFF все немного сложнее, там по видимому нужен дешифратор на восемь кусков, но также программный. Так как там система запуска, контроллер НГМД и нужна возможность видеть ОЗУ вместо ПЗУ монитора и ДОС.

Адресацию старших 32к сделать кусками 4кб железячно можно, а дальше думать как сделать программный дешифратор (переключатель окон). На Суре он сделан корпусом ВВ55а. Но не слишком ли избыточно будет такой чип, может быть какой то регистр лучше. И выдержит ли его шина?

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

Error404
01.12.2016, 14:33
На Z80 подать 1.75 Мгц, турбо 3.5 Мгц. На ВМ85 соответственно 3.5 Мгц и 7 Мгц.


А что так Z80 обидели? Он в разновидностях побыстрее ВМ85 будет, до 20Мгц (Z840020). Логичнее было бы стандарт (1.75 Мгц) и Турбо (по максимуму - у кого какой проц)



Справочник подсказал что лучше порт на ТМ8, со сбросом.

Или TM9, на ней разрядов больше (в запас, мало ли что еще надо конфигурить)

Vladimir_S
01.12.2016, 14:41
Error404, Насчет частоты - у ВМ85 на тактовом входе делитель на 2. А насчет ТМ8 - Что бы лишние инверторы не ставить.

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


Логичнее было бы стандарт (1.75 Мгц) и Турбо (по максимуму - у кого какой проц)
Ну в принципе можно джамперы поставить для Z80. 3.5 или 7.

barsik
01.12.2016, 14:46
интересует схема формирования выборки окна 8400...BFFF

Привожу три варианта вышеописанных схем дешифратора на окно 8400...BFFF. Установка ЛИ1 для формирования /CAS при обращения в окно 8400...BFFF здесь не приведена - для этого смотри текст.

PS: Нижняя схема оптимизируется - ЛА3 заменяется на вентиль ЛИ1 с последующим инвертором на ЛН1 и тогда ЛА3 вообще не нужен.

Vladimir_S
01.12.2016, 14:47
Кстати вопрос - у меня есть кварцы ровно на 7.0 Мгц, а есть на 7.3728 Мгц. Для маг. входа какой предпочтительней? Один чуть не дотягивает до 1.78, у другого чуть побольше. Или по барабану?

Ewgeny7
01.12.2016, 15:02
Давай на ширпотреб ориентироваться, 7.0М.

tnt23
01.12.2016, 17:11
По поводу шины самый интересный вопрос, нигде не видела рекомендаций, сколько еще корпусов выдержит небуферизованная шина РК. Просто делают доработки и все. А у меня, если честно, даже шлейф контроллера НГМД вызвает ужас. В котором половина проводов тянется нужных только ПЗУ. Может это паранойя, конечно.

Небуферизированная шина РК выдерживает 1 ТТЛ вход. Ну, может, полтора. По сути это нагрузочная способность ВМ80А кроме случаев ПДП, когда адреса на шину драйвит контроллер ПДП.

По уму, конечно, желательно поставить буфер хотя бы шины данных на ВА86 или эквиваленте.

Vital72
01.12.2016, 17:52
Небуферизированная шина РК выдерживает 1 ТТЛ вход.

Правильнее было бы указать серию ТТЛ микросхем, так как и 155 серия и 555 -- всё ТТЛ, а у 555 серии нагрузка на выход при уровне лог "0" в 4 раза ниже 155 серии (а 1533 серия в 8 раз ниже), а при уровне лог "1" всего в два.
И, кстати говоря, авторы РК-шки перегрузили линию А15 процессора, повесив на неё 1 вход 155ЛА3 (D10.1) и один вход 555ИД7 (D11) из-за чего у одного персонажа были сбои (журнал "Радиолюбитель" 1994, №2, стр. 13)

barsik
01.12.2016, 19:23
Прежде чем обсуждать тип буферов для ОЗУ, необходимо отыскать хотя-бы одного человека, который уже поставил себе буфера на ОЗУ. Потому что РК86 такой аппарат, что здесь "возможны чудеса". То есть я не исключаю того, что лобовая попытка поставить буфер по обычным схемам не удастся. В этом случае надо поставить буфер только на В/У, т.е на сигналы, что выводятся на системный разъём (слот). Хотелось бы, чтобы все, кто имеет опыт с буферами на РК поделились опытом. Если такие лица не признаются, то надо уговорить кого-то провести эксперименты с буферизацией.

Мне не удалось поставить в РК системный контроллер ВК28. Поэтому я скептичен. А насчёт типа буферов, то по-моему альтернативы АП6 нет. Если сдуру будут поставлены ВА86 (т.е маленькие печки для изготовления яичницы), то все пользователи всё равно будут делать так, как делали на ОРИОНЕ - заменяли их на АП6 (с разворотом корпуса на 180' и инверсией сигнала DIR, нога 1), т.к совпадают все ноги кроме питания. ВА86 не выдержит и 3 МГЦ - сдохнет от перегрева, а АП6 будет работать и на 10.

cy6
02.12.2016, 02:17
Правильнее было бы указать серию ТТЛ микросхем, так как и 155 серия и 555 -- всё ТТЛ, а у 555 серии нагрузка на выход при уровне лог "0" в 4 раза ниже 155 серии (а 1533 серия в 8 раз ниже), а при уровне лог "1" всего в два.
И, кстати говоря, авторы РК-шки перегрузили линию А15 процессора, повесив на неё 1 вход 155ЛА3 (D10.1) и один вход 555ИД7 (D11) из-за чего у одного персонажа были сбои (журнал "Радиолюбитель" 1994, №2, стр. 13)
То есть, на любой сигнал процессора можно повесить: один 155 корпус или четыре 555-ых или восемь 1533, так? ПЗУшки 573рф2, вроде как сами выдерживают нагрузку, как и процессор "один TTL вход" (1,6 / 0,1 мА). А сколько корпусов из процессорной серии 580 можно? Их уже так много висит на шине РК. :v2_dizzy_stupid:

Vladimir_S
02.12.2016, 06:54
Хотелось бы, чтобы все, кто имеет опыт с буферами на РК поделились опытом. Если такие лица не признаются, то надо уговорить кого-то провести эксперименты с буферизацией.
starik говорил что удачно буферизировал РКшку.

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


Ну в принципе можно джамперы поставить для Z80. 3.5 или 7.
Переделал схемку генератора - теперь после общего сброса на ВМ85 идет 3.5 Мгц, на Z80 1.75 Мгц.
После записи в порт 00 и 11 как при сбросе, 01 и 10 на ВМ85 идет 7 Мгц. При 01 на Z80 3.5 Мгц, а при 10 7Мгц.
И не нужно никаких джамперов.

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

Вот так.

Vital72
02.12.2016, 09:17
То есть, на любой сигнал процессора можно повесить: один 155 корпус или четыре 555-ых или восемь 1533, так?

Вроде как получается так. Про серию 580 ничего не могу толком сказать, справочник про входные токи умалчивает, для ВГ75 упоминаются только токи утечки на входе 10 мкА, можно предположить, что 580 серия создаёт маленькие входные токи, так, что можно их не учитывать, ну или заморочиться и проверить прибором :)

starik
02.12.2016, 16:12
Я буферизировал РК-86 с памятью на статике. Схема простая: ИР82 на адреса, ВА86 на данные (буферизированы именно шины от проца). Работает нормально, но кроме контроллера дисковода к шинам ничего нет (внешние SD и прочее через ВВ55 не считаются), так что сколько можно еще нагрузить - вопрос.

barsik
02.12.2016, 17:40
Как видите, starik буферизовал только процессор КР580, что в общем-то почти бесполезно, так как не он "слабое звено". На СПЕЦИАЛИСТЕ и ОРИОНЕ я убедился, что ресурс по нагрузке у КР580 значительно выше одного 155-го входа. И выше, чем у ВВ55, РФ2 и тем более РУ3/РУ6/РУ5. Так как надёжность в гораздо большей степени зависит от типа динамических ОЗУ, а не от подбора конкретного КР580, то можно сделать вывод, что "слабое звено" - именно ОЗУ.

В частности, у меня надёжно работали TMS 4164, в то время 7 других разных типов ОЗУ, сбоили при попытке нагружать шину. Что наводит на мысль, что дело в "слабости" ОЗУ. Другой факт. При установке в СПЕЦИАЛИСТ кварца 13.5 МГЦ (чтобы 640x256 влезали в растр), т.е с тактом 13.5:4=3.375 МГЦ, и нагрузке шины данных в 2 ПЗУ РФ2, ВВ55 и 2 входа 555, - никакого подбора ни РФ2, ни ВВ5, ни КР580, не требовалось. И никаких сбоев не было. Но у СПЕЦИАЛИСТА, в отличие от РК86, ОЗУ буферизованы. Кстати, при применении специальных мер, КР580 почти без сбоев 1 час работал на 4 МГЦ, хотя и был дико раскалён. Что и доказывает, что буферизовать следует именно ОЗУ, а не КР580.

Буферизовать процессор при статических ОЗУ нет особой потребности. Статических ОЗУ тянут частоты 10 МГЦ и выше, а значит имеют мощные выходы. И шину грузят намного меньше, чем динамические ОЗУ. И не в тему сказано, но буфера портят быстродействие. Без всяких буферов Z80B "тянул" 9 МГЦ (а Z80H - аж 12), а с буферами - едва 6-7. Это из-за задержек в буферах.

Из всего вышеизложенного следует, что вопрос cy6 о том, сколько ещё "потянет" КР580 не интересен. А интересен вопрос сколько ещё "потянет" РУ3? Предлагаю буферизовать РУ3/РУ6/РУ5 буфером 1533 АП6 и второй АП6 поставить на сигналы для слота. А адреса из экономии буферизовать только "маленькие" (A0 и A1) и может ещё и A15 (раз есть мнение, что это требуется).

Буферизовать процессор не обязательно. Например, есть такие мощные Z80, как Z80 SHARP, который не уступают в мощи буферам, хотя и раскаляется как печка уже на такте 3.5 МГЦ (причём повышенный разогрев не помогает ему "тянуть" более 5 МГЦ).

Есть ещё один способ решить проблему буферов. А именно - дать время микросхемам, чтобы они смогли "вытянуть" перегруженную шину. Имеется ввиду добавка одного такта WAIT при обращении CPU к памяти (0...FFFF). РФ2 и РФ5 не "тянут" более 6 МГЦ, если не дать им 1 такт WAIT. 27256 "тянут" до 7-8 МГЦ, при их подборе. 27С256 в этом плане показали лучшие результаты (но тоже не смогли работать на 10 МГЦ без 1 такта WAIT).

Поэтому, если будет применён Z80B на такте 7 (или Z80H на 14 МГЦ), то разумно вообще для всех устройств, кроме ОЗУ, ввести 1-2 такта WAIT. Для РУ3/РУ5 это сделать сложнее (т.к тут надо продлевать /CAS, а удлинение сигналов /RD /WR на них не влияет), поэтому и "заморачиваться" не надо. Этим я хочу сказать то, что если для работы с платами, втыкаемыми в слот, использовать 1-2 такта WAIT, то и буфер АП6 для слотов можно будет с'экономить, что и позволит сократить размер матки РК86.

Rokl
02.12.2016, 21:20
Поэтому, если будет применён Z80B на такте 7 (или 14 МГЦ), то разумно вообще для всех устройств, кроме ОЗУ, ввести 1-2 такта WAIT..
Извините, что вмешиваюсь в ваш разговор, но, а как же КР580ВТ57 в упряжке с Z80H на такте 7 (или 14 Мгц)?? Или предполагается использовать чип DMA из линейки ZILOG Z810A. Правда я не в курсе, делали ли их на 7 - 14 Мгц.

kolk
02.12.2016, 22:58
Поэтому, если будет применён Z80B на такте 7 (или 14 МГЦ), то разумно вообще для всех устройств, кроме ОЗУ, ввести 1-2 такта WAIT. Для РУ3/РУ5 это сделать сложнее (т.к тут надо продлевать /CAS, а удлинение сигналов /RD /WR на них не влияет), поэтому и "заморачиваться" не надо.
А схема добавления WAIT STATE к РК86 публиковалась? Не могу вспомнить... По-моему, в оригинальной схеме удлинение /RD - /WR приводит к такому же удлинению /RAS - /CAS. Насколько я помню, RDY я получал, изрядно нарастив все тот же сдвиговый регистр, и проинвертировав какой-то очередной его выход.

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


Извините, что вмешиваюсь в ваш разговор, но, а как же КР580ВТ57 в упряжке с Z80H на такте 7 (или 14 Мгц)?? Или предполагается использовать чип DMA из линейки ZILOG Z810A. Правда я не в курсе, делали ли их на 7 - 14 Мгц.

Видел КР580ВТ57 работающим в РК на 8 МГц, насколько я помню, с 1 WS ОЗУ и 2 WS IO.

barsik
03.12.2016, 00:39
Удлинение сигналов /RD /WR за счёт 1-2 тактов WAIT не приводит к продлению сигнала /CAS
По-моему, в оригинальной схеме удлинение /RD - /WR приводит к такому же удлинению /RAS - /CAS.

Я "ляпнул" эту фразу, не глядя на схему и, имея в голове мысль, что ОЗУ синхронны с тактом, как в ОРИОНЕ. Но сейчас посмотрев на схему РК86, обнаружил, что /CAS формируется из /WR и RD (который к КР580 назван DBIN) с задержкой в 4 такта сдвига регистра ИР1 (D16). И соответственно, /CAS продлевается, если продлеваются /WR или RD (DBIN) из-за действия READY на входе КР580. То есть Ваше замечаение совершенно справедливо, и я "сморозил глупость".

Схем WAIT в журнале РАДИО не публиковали. Но я использовал много схем WAIT на ОРИОНЕ, где WAIT при КР580 существенно повышает надёжность КНГМД, а при быстрых тактах Z80 необходим, чтобы правильно работали ВВ55.

Схемы WAIT, по крайней мере для Z80, - простые. По одному из фронтов CLK в триггере защёлкивается /MREQ и выход триггера подаётся на вход /WAIT Z80. Этот же сигнал идёт на D-вход второго триггера. При поступлении очередного CLK взводится второй триггер, выход которого подаётся на входы сброса обоих триггеров. Таким образом Z80 получает на входе /WAIT импульс длиной ровно в один такт клока и на столько же продлевает /MREQ. Если надо 2 такта, то добавляется еще один триггер. То есть, поставив последовательно 4 триггера, мы введём три такта WAIT.

На ОРИОНЕ, если вводятся более 1 такта WAIT, то по экрану почему-то "мелькают блёстки". Для борьбы с чем, применяется особая схема "блёстко-гашения". Но в РК86 такого точно не будет.


КР580ВТ57 с Z80H на такте 7 (или 14 Мгц)?

Согласен, что ВТ57 не потянет 7 МГЦ (тем более 14). Но мы это и не собираемся делать. Я конечно не аппаратчик, но знаю, что ВТ57 в схеме РК работает асинхронно и потому может иметь свой клок, отличный от клока Z80. К тому же повышать такт КР580 мы собираемся асинхронно с видеочастью, используя идею турбо из журнала РАДИО 01.1991. То есть, ВГ75 и счётчик числа сдвигов в знакоместе D3 (155ИЕ4), мы по прежнему будем тактировать тактом 16 МГЦ, иначе не будет синхронизации на экране телевизора. В РК86 есть такты 1.77 и 2.63 МГЦ. Выгодно подать такт 2.63 на ВТ57 вместо 1.77, что сократит торможение от ПДП. То есть при ТУРБО высокий такт будет только у процессора, остальные узлы останутся на тормозной скорости.

Z80H всегда был большим дефицитом, и мне кажется, сейчас его не достать. Но зато доступен, ещё более скоростной, 20-ти мегагерцовый китайский Z840020.

Для получения красивого фонта 8*8 вместо некрасивого фонта 6*8, достаточно вместо 155ИЕ4 поставить ИЕ5 (+ пара диодов), что приведёт к формированию не 6, а 8 тактов сдвига на одно знакоместо. А добавив триггер ТМ2 и вторую ИР13, мы сможем получить даже фонт 10x10 (тогда в ПЗУ фонта прошьём VGA-фонт). Разумно использовать максимум возможностей, что даёт ВГ75. А невредный для зрения и красивый фонт важен. Тогда, по крайней мере, по качеству шрифта на экране РК86 намного превзойдёт все отечественные 8-ми разрядки.

А вот идея применить Z80DMA - интересна. Он может выполнять перекачку "память -> память" и одновременно с обслуживаением видео сможет ускорять трансфер на экран массивов (вывод спрайтов и быстрый ролик экрана). Увы, для текстового режима и при горизонтальной организации экрана - это не очень полезно.

kolk
03.12.2016, 00:52
При формировании WAIT на ИР1 можно управлять его длительностью по параллельным входам. Сделав этот ИР1 независимым (затактировав от CLK, а не OSC), можно поменять полярность подключения последовательного и параллельного входов и избавиться от инвертирования выхода.

barsik
03.12.2016, 03:01
можно поменять полярность сигналов на последовательном и параллельном входах и избавиться тем самым от необходимости инвертировать выход ИР1 на вентиле D9.5

На первый взгляд хорошая идея, чтобы исключить 1 вентиль в формирователе /CAS. Но одновременно проинвертируются все выходы ИР1. Если для входа SEL мультиплексора (ноги 1 в КП11) - это без разницы (при разводке просто переставляем выходы КП11). То для /RAS инверсия недопустима. А значит придётся для получения /RAS истратить с'экономленный вентиль на инверсию сигнала с ноги D16/13. В итоге, не вижу выигрыша.


тактирование ИР1 от CLK, а не OSC, сделает этот ИР1 независимым...

Сигнал OSC это понятно выход ГФ24. Но сигнал CLK я на схеме не нашёл. Возможно Вы имеете ввиду клок Z80, в случае, если в новой схеме РК будет применён он вместо КР580. Но это же и так придётся сделать, т.к для Z80 никто ставить бесполезный ГФ24 не будет. Не могли бы Вы более детально пояснить мысль о независимости. По столь краткой фразе невозможно понять о чём речь.


можно управлять длительностью WAIT по параллельным входам

На самом деле Вы имеете ввиду в данной фразе - управлять длительностью RAS-CAS. Длина RAS-CAS на дительность WAIT не влияет.

Полагаю, что при 4-х разрядном регистре пределы изменения длины RAS-CAS за счёт смены данных на параллельных входах отсутствуют, но при 8-ми разрядном регистре можно менять длины RAS-CAS плюс-минус 4 такта. Думаю, что Вы предполагаете одновременно с удлинением RAS-CAS вводить такты WAIT (в противном случае работать не будет).

Удлинив 4-х разрядный регистр, например, до 6-ти разрядного, мы удлиняем RAS-CAS. Но без WAIT с точки зрения процессора, это мало что даёт, т.к он по прежнему читает только то время, что определяется частотой сигналов Ф1 и Ф2. Поэтому в удлинении RAS-CAS без одновременной подачи процессору сигнала READY, для введения тактов WAIT, нет никакого смысла.

Что толку, что сигнал на выходе ОЗУ продолжается, если CPU уже давно перестал считывать ШД. А по записи - вообще трагедия. Данные на выходе CPU уже исчезли, а передний фронт /CAS ещё не пришёл, в итоге в ОЗУ запишется "мусор". Я понимаю, что ИР1 формирует на 11 ноге сигнал при обращениях ко всему адресному пространству 0...FFFF, отчего его можно использовать для вызывания WAIT-тактов процессора не только для ОЗУ, но и при обращении к любым В/У.


нарастив длину регистра, взяв какой-то его выход и проинвертировав, я получал сигнал RDY вызывающий WAIT

Из этого я предполагаю, что вы берёте /RAS с выхода ИР1/13, инвертируете его и подаёте на вход RDY. Не на вход ГФ24 READYIN? Т.е отрезав вход RDY КР580 от ГФ24, прямо на вход RDY КР580. Так можно делать если сигналы синхронны.

kolk
03.12.2016, 10:46
На первый взгляд хорошая идея, чтобы исключить 1 вентиль в формирователе /CAS. Но одновременно проинвертируются все выходы ИР1.

Подразумевается инверсия отдельной ИР1 только для WAIT, не связанной с ИР1 /RAS - /CAS.



Сигнал OSC это понятно выход ГФ24. Но сигнал CLK я на схеме не нашёл. Возможно Вы имеете ввиду клок Z80, в случае, если в новой схеме РК будет применён он вместо КР580. Но это же и так придётся сделать, т.к для Z80 никто ставить бесполезный ГФ24 не будет. Не могли бы Вы более детально пояснить мысль о независимости. По столь краткой фразе невозможно понять о чём речь.


CLK - либо Z80, либо 5-вольтовый Ф1. Короче, тактовый вход проца. Я шрифт не менял, поэтому OSC для видео брал от ГФ24 с кварцем 16 МГц.



На самом деле Вы имеете ввиду в данной фразе - управлять длительностью RAS-CAS. Длина RAS-CAS на дительность WAIT не влияет.


Нет, я имею в виду отдельную ИР1. При удлинении ИР1 (подключении к выходу предыдущей и тактировании от OSC), получаем ограничения:
- ее неудобно инвертировать;
- она тактируется в несколько раз (в оригинале - в 9) более высокой частотой, столько разрядов надо будет на каждый такт.
Для турбированной РК путем деления OSC в CLK - Ф1 - Ф2 на рассыпухе это меньше, но все равно много.

Переставлять отводы /RAS - /CAS я ни разу не предполагал, они остаются на старом месте.

При наращивании ИР1 или замене на ИР13 WAIT берется с одного из последующих после /CAS выходов. Его можно прервать/укоротить, подавая 0 на некоторые параллельные входы после /CAS, т.е. его не задевающие.

Сигналом управления подразумевается A15, при инвертированной ИР1 инвертированный.

Из этого я предполагаю, что вы берёте /RAS с выхода ИР1/13, инвертируете его и подаёте на вход RDY. Не на вход ГФ24 READYIN? Т.е отрезав вход RDY КР580 от ГФ24, прямо на вход RDY КР580. Так можно делать если сигналы синхронны.

Для WAIT я беру гораздо более дальний отвод. При Ф = OSC : 9 можно пропустить его через ГФ24. Вообще-то он синхронный, особенно при отдельном ИР1. Можно синхронизировать его и отдельным триггером (он заодно может проинвертировать сигнал и устранить его слишком быстрое пропадание при укорачивании/блокировке в варианте наращивания формирователя /RAS - /CAS).

barsik
04.12.2016, 04:40
Есть ещё один способ удлинить сигналы /WR и /RD (/DBIN) при КР580. Что, как мы выяснили выше, автоматически приводит к удлинению активных уровней RAS-CAS и, соответственно, даёт больше времени РУ3-им, чтобы "вытянуть" тяжёлую шину за порог TTL-уровня.

С проблемой, что В/У не успевают вытянуть шину за короткое время активности /WR, /RD (/DBIN) столкнулись на СПЕЦИАЛИСТЕ при подключении КНГМД с ВГ93. Ещё острее проблема проявилась на ОРИОНЕ. Надёжность работы с НГМД на некоторых образцах (где на ШД ставили ТМ7,ТМ8 155-серии) оказывалась фатально низкой.

Было выдвинуто предположение, что ВГ93 не успевает за 400 НСЕК вытянуть тяжёлую шину данных (три ВВ55, РФ2 и куча входов 155 серии). Это предположение полностью подтвердилось, т.к после установки буфера АП6 на плату КНГМД (буферизуя только ВГ93) проблемы исчезли. Тогда был использован любительский трюк по разгрузке шины. На ШД (D0...D7) прямо рядом с ногами ВГ93 устанавливались резисторы 300 Ом подключенные к земле. Что облегчало ВГ93 вытянуть шину (токи по 0 намного больше токов по 1, т.к единица на входах TTL устанавливается сама по себе, а 0 надо вытягивать током в 2 мА).

И, о чудо, такой наглый трюк - сработал, надёжность существенно возросла. Именно поэтому на платах КНГМД "ЛЕНИНГРАД-90" прямо напротив выводов D0...D7 ВГ93, Вы видите 9 дырок в ряд. Это для запайки выше упомянутых "резисторов разгрузки".

Когда я объяснил одному любителю ОРИОНА низкую надёжность НГМД тем, что /RD КР580 без использования ВК28 слишком короткий, этот человек воспринял эту идею как программу действий. И уже через месяц я увидел, что он продаёт на "толчке" печ.платы КНГМД для ОРИОНА, на которых... вот смешно... стоял контроллер ВК28. Причем он ничего не буферизовал, а служил лишь только для получения из него сигнала /MEMR. Данный сигнал длиннее, чем DBIN процессора, что и давало высокую надёжность КНГМД. Как выглядит подобная экзотическая плата, можно посмотреть на моих фотографиях.

Однако данный КНГМД, так и остался "экзотом", т.к вскоре я обнаружил, что введение 1 такта WAIT решает проблему надёжности гораздо лучше вышеупомянутых "химических" методов. Причём, введение WAIT обходится на ОРИОНЕ с КР580 всего лишь в 1 вентиль из ЛЛ1 (триггеры не нужны, т.к уже есть аналогичный сигнал DSYNC c D13.2).

Цель выше изложенного доказать, что ВК28 (а лучше ВК38, т.к у него /MEMR ещё длиннее) позволяет увеличить длительность сигнала чтения (записи) вообще без использования тактов WAIT.

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

В одном вражеском журнале я увидел конструктив печ.платки для умощнения выходов Z80, втыкаемой в любую ЭВМ прямо в панельку для Z80. Подобный конструктив я и использовал. На крошечной платке со стороны пайки я впаял 40 штырьков, (ножек) отломанных от дохлых 27xxx. А со стороны монтажа разместил рядом КР580 и ВК28. Получилось вполне эстетично. Без всяких вторжений на основной плате в РК86 вводится системный контроллер ВК28. Фото платки с ВК28 прилагаю.

Однако меня ждало жестокое разочарование. Никакими мерами не удалось заставить РК86 работать с этой платкой. Эта трагедия сломила мой дух, полностью подорвала доверие к РК86, а также открыла мне глаза на то, что я ни черта не понимаю в схемотехнике РК86. После чего, мне уже не оставлось ничего другого, как забросить РК86 и перейти на более примитивный и понятный любительский компьютер ОРИОН.

Было бы здорово, если бы кто-то, более грамотный, сумел применить ВК28 в РК86. Это возможно! Раз это удалось изобретателю РК-МАКСИ. Тогда с помощью крошечной платки с ВК28 втыкаемой в панельку вместо КР580, были бы решены все мои проблемы с РК86. С надёжностью ОЗУ и быстродействием, т.к ВК28 (ВК38) позволил бы разогнать РК86 до такта 3.5 МГЦ. Кроме того ВК28, если какую-то его ногу подать прямо на +12В, заменяет и контроллер прерываний (по INT происходит CALL на 38H). Т.о, введя ВК28, одновременно "убиваем сразу 4-х зайцев".

Желание иметь Z80 во многом определяется его скоростными возможностями, а наличие в РК скоростного КР580 делает потребность в Z80 менее насущной. Т.к никто, почему-то, не хочет ставить Z80 (и число сторонников КР580 растёт), то возникает альтернатива. Применить в новоделе - КР580 с ВК28 на такте до 3.5 МГЦ. Это тоже неплохой вариант, который устроит многих. И это интересно, чтобы доказать, что и из деталей доступных в 1985 можно было разработать намного более качественный РК86.

Вариант с ВК28 имеет преимуществом то, что не оставляет "за бортом" тех, кто не собирается паять плату новодел РК86 с альтернативной архитектурой, но с удовольствием воткнёт в панельку КР580 простенькую платку с КР580 и ВК28. Чтобы повысить надежность, поднять нагрузо-устойчивасть шины и, при необходимости, увеличить такт КР580 до 3.5 МГЦ.

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



При удлинении ИР1 (подключении к выходу предыдущей и тактировании от OSC), получаем ограничения:
- её неудобно инвертировать;
- она тактируется в 9 раз более высокой частотой, столько разрядов надо будет на каждый такт.


Согласен. Но, если Вы ставите отдельный регистр и тактируете его клоком CPU, - Вы приходите к той же самой схеме WAIT с двумя-тремя ТМ2, что я описал выше, как традиционный вариант введения WAIT в компьютеры (2-3 последовательно включённых ТМ2 - это тот же последовательный регистр сдвига).



нарастив регистр, взяв какой-то его выход и проинвертировав, я и получал сигнал RDY, вызывающий WAIT


я предполагаю, что вы берёте /RAS с выхода ИР1/13, инвертируете его и подаёте на вход RDY
я беру гораздо более дальний отвод сдвигового регистра, чтобы сформировать из него RDY


А зачем более дальний? Наоборот, надо брать наиболее ранний сигнал, производный из /RD /WR (/MREQ). А правильнее всего формировать RDY из каждого из самих сигналов /WR и DBIN. Их надо объединить, - это два лишних вентиля. По счастью, объединение этих сигналов в схеме уже имеется - это сигнал D4.4/11, который инициирует возникновение сигналов /RAS и /CAS. Но этот сигнал единичный, а для RDY нужен нулевой. А раз сигнал /RAS как раз нулевой и оттого, что в тексте речь шла о регистре, я и предположил, что Вы выбрали лучший сигнал, что даёт ИР1, чтобы делать из него RDY. Т.е сигнал /RAS, который можно напрямую подавать на вход RDY КР580.

Хотя я так и не понял, как Вы сбрасываете RDY в следующем такте. Иначе получается "вечно не ГОТОВ и WAIT навсегда". В предложенной мной схеме сброс READY (/WAIT Z80) далает второй триггер.

Именно так, прямо из самих сигналов /WR, /RD (/DBIN), всегда и формируют RDY для КР580 или /WAIT для Z80. Нет никакой пользы в их задержке на треть или половину машинного такта. К тому же, задерживая подачу READY слишком надолго, Вы рискуете задержать его до появления отрицательного фронта Ф2, в момент которого КР580 и делает анализ входа READY (RDY, ГОТОВ в других книгах). Что приведет к тому, что такт WAIT вообще не будет добавлен в следующем маш.такте. Посмотрите как сделано в ИРИШЕ - любое обращение к любому В/У прямо из сигнала обращения формирует активный RDYIN на входе ГФ24.

Но что обсуждать разные варианты? Рисуйте свой, уже реализованный, вариант формирователя такта WAIT на ИР1. Я нарисую свой, ещё не проверенный на практике, вариант на ТМ2. Пусть кто-нибудь, из умеющих макетировать, проверит схемы на практике. Проверит их работоспособность. И главное, дают ли они выигрыш по нагрузочной способности шины и повышению надёжности ОЗУ. Выберем такой вариант, где меньше деталей и лучше результат.

А в идеале - надо ставить буфер АП6 на ОЗУ и 1 такт WAIT для всех устройств. А еще лучше - буфер АП6 на ОЗУ, 1 такт WAIT для всех устройств, и ВК28 для КР580. Вот это будет схема, которую бы сделал профессиональный инженер, руководствующийся документацией по КР580 серии.

Vital72
04.12.2016, 09:27
Не тем вы занимаетесь, пытаетесь из РК создать какого-то монстра, а плата будет состоять из сплошной лапши.
Если уж хотите использовать серию 580 по-максимому -- надо создавать новый компьютер с нуля, ибо ограничения базовой схемы будут вылезать постоянно. Я уже занялся такой разработкой и на макетке (12 на 18 см) спаял процессорный модуль, где находятся сам процессор, тактовый генератор, с программным переключением частоты, контроллер (ВК28), логика, дешифраторы и память. Потом на второй такой же макетке буду собирать дисплейный модуль с улучшенными характеристиками, чем у РК: экран 80 на 25, загружаемый знакогенератор, загружаемая палитра цветов.

kolk
05.12.2016, 03:22
Я уже не помню точную схему своего WAIT (с какого отвода брал, куда подавал А15) - 25 лет прошло, а ту РКшку ее владелец лет 20 назад продал. Это был действительно худший вариант из рассмотренных здесь, с наращиванием ИР1. Ваш лучше. А эквивалентный Вашему вариант на отдельной ИР1, по-моему, еще лучше:
- до 4 тактов на 1 корпус;
- управление длительностью или отмена по параллельным входам;
- триггеры соединены между собой внутри микросхемы, их не надо соединять снаружи.

barsik
05.12.2016, 07:51
пытаетесь из РК создать монстра, плата будет состоять из лапши

Ну почему монстра? А насчёт лапши не понял.

Хотелось бы наоборот сделать печ.платку с размерами меньше платы РК. На 85-90% это останется РК86. На плате новодела РК86, что недавно сделали, тоже есть модификации - реализованы две журнальные доработки по устранению сбоев ОЗУ. И от этого она всё-равно осталась платой РК86.

Например, для смены адресов В/У и расширения ОЗУ, ИД7 и 3 вентиля заменяются на ТМ9 + РТ4. Хотя и ТМ9 не обязателен, его роль может сыграть ППА D14. Т.е можно делать улучшения одновременно сокращая схему.

Я заметил, что обсуждение альтернативной архитектуры проходит вяло... Что странно, т.к большинство участников аппаратчики. А я программист любитель и мало-что понимаю в железе (и дико ненавижу им заниматься). Даже, если Вы не имеете готовых схемных решений, выскажите свои пожелания. Чтобы хоть что-то можно было обсуждать.

Например, моё пожелание - иметь сплошное ОЗУ в 60К, две банки ПЗУ (в окне F800), скорость не менее 3 МГЦ, хотя бы пара фонтов переключаемых GPA, RVV (ReVerseVideo), и какая-нибудь "гуделка" для звуко производства. Можно также посмотреть схему РК-МАКСИ с целью заимствования. Ошибка РК-МАКСИ была в том, что его идеи подходят для новой версии платы, но были слишком грандиозны для реализации проводочками на старой.

Можно обсудить вопрос о прерываниях, нужны ли они? Обычно их используют, для оценки реального времени. Однако тот же результат достигается подачей такта в 5-10 ГЦ на вход МГ. В то же врямя для выхода INTE можно найти гораздо более полезное применение. Для подзвучки клавиатуры мне нравилось использовать КМОП одновибратор-генератор - активируемый коротким стробом (расход 1 шт. 561). По обращению к нему, раздаётся BEEP, причём процессор в этом не участвует, т.е разгружается. Что важно для медленных машин.

В простейшем варианте, выходом INTE можно управлять номером блока (0/1) в 15 Кб, включаемом в окне верхнего ОЗУ. Это даже не мешает использованию INTE для звука. Т.к, когда выводят звук через INTE, в доп.ОЗУ 8400 не лезут. А когда используют верхнее ОЗУ, то звуки через INTE не выводят.

В качестве минимального (и стартового) режима РК предлагаю считать базовый вариант с доп.ОЗУ в 15 Кб в окне 8400...BFFF. Я могу предоставить текстовый редактор (не МИКРОН-1/2) с МАКРО-ассемблером и варианты РК-ДОС и CP/M на базе РК-КНГМД, работающие в этом доп.ОЗУ . Что даёт возможность иметь больший объём исходного текста для трансляции ассемблером. А РК-ДОС можно доработать, введя в неё полноценный CCP, так что все SYS-файлы РК-ДОС можно будет выкинуть - исчезнет необходимость иметь их на всех дискетах. Альтернативные версии ДОС позволяют, если диски эмулируются на 'micro-SD' иметь диски не в 400К, а гораздо большего размера.


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

Не вылезут. Т.к эти ограничения мы и хотим устранить (слабость шин, неэкономную адресацию В/У и нехватку ОЗУ).


Спаял процессорный модуль с ВК28

Вряд-ли Ваш успех с использованием ВК28 на каком-то другом компьютере поможет нам в его установке в стандартный РК86. Я поставил ВК28 в три СПЕЦИАЛИСТА, чтобы их турбировать. Хочу сказать, что поставить ВК28 это совсем не проблема. Проблема поставить его в РК86, причём так, чтобы не было вторжений на печ.плате.


делаю экран 80x25

А смысл? Если надо испортить себе зрение, для этого есть и более простые способы. Чтобы беречь зрение, я всегда предпочитаю более крупные буквы. Например, моя плата текстового адаптера (30 ИМС) работает в режиме 21 строка на 53 символа (а я мог сделать любой формат). Именно для того, чтобы шрифт был VGA, большие и красивые буквы. А даже для CP/M-программ иметь более 64 символов незачем. Все стОящие программы имеют инсталляторы. А те, что не имеют инсталляторов, настраиваются на H_SIZE, V_SIZE вручную (например WM.COM - ячейки 0BAH, 0C1H).


делаю загружаемый знакогенератор, загружаемую палитру цветов

А вот это интересно. Не для применения в новоделе РК с альтернативной архитектурой, а из любопытства. Точнее, как сделать загружаемую палитру, понятно и обезъяне. А вот на реализацию схемы сменяемого фонта для ВГ75 было бы любопытно взглянуть.

Alex_LG
06.12.2016, 21:46
А вот на реализацию схемы сменяемого фонта для ВГ75 было бы любопытно взглянуть.
Делал когда-то
http://zx-pk.ru/threads/20714-pomechtaem-ili-vopros-o-videovykhode.html?p=713206&viewfull=1#post713206

Vladimir_S
15.12.2016, 14:43
Не могу найти карту памяти Микроши. Даже здесь на Wiki что то невразумительное. Паяю комп с двойной конфигурацией РК86/Апогей и пришла мысли запихать туда еще и Микрошу. Пока еще есть возможность малой кровью все это замутить. Потом в готовую конструкцию вставлять - это будет намного проблемотичнее.

kolk
15.12.2016, 14:58
См. схему. http://zxbyte.ru/doc/mikrosha/mikrosha_scheme.zip Там в клавиатуре резисторы и диоды поменяны местами, и сканировать ее надо транспонировано.

sergey_sitnik
15.12.2016, 18:27
Да это очень верно сказано......!

Ewgeny7
15.12.2016, 20:07
Варианты нового РК86 делаются наперегонки, это очень радует :)

Vladimir_S
26.12.2016, 11:24
Сегодня допаял РК86/Апогей. Запустился сразу. Стартуют и РК86 и Апогей, но пока только на ВМ85. Завтра начну копать Z80. И еще с ВИ53 нужно разбираться, живет сам по себе, где то я лопухнулся.

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

На Z80 попутал D6 и D7 местами,хотя они и не рядом. Осталось разобраться с ВИ53.

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

Со вставленной Z80.

Ewgeny7
26.12.2016, 11:55
Ну, с тебя печатная плата, как с победителя в номинации :)

Vladimir_S
26.12.2016, 13:06
Ну, с тебя печатная плата, как с победителя в номинации
Я не знаю в каком виде делать. Во первых, как оказалось, у меня нет ни одной озушки на 64Кб( хотя есть от 8Кб до 1Мб ). И пришлось широкую озу на 32 Кб ставить на кроватку, а узкую тоже на 32Кб впаивать под ней и все кроме выборки параллельно пропаивать. И еще на борту две ОЗУ на 512Кб разбитые на 4 диска (А-D) по 256 Кб, 1011 секторов по 256 байт в каждом. И с аккумулятором. Может никому не нужно? А мне без них не нужно. И еще стоит AM29F040 на 512Кб.

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

Под ОЗУ.

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

Забыл - в РКшке добавлены два куска ОЗУ - 8400-9FFF и A400-BFFF.

sergey_sitnik
26.12.2016, 16:41
Не плохо однако.....!!!!

Vladimir_S
28.12.2016, 05:09
Во балбес - на ВИ53 D0-D7 это ноги 8-1, а я запаял 1-8. Звук появился!

Vladimir_S
11.01.2017, 07:18
Попробовал менять тактовую частоту. При записи 1 в порт ТМ9 скорость заметно выше, а если записать 2, то уже клава не успевает. Выдает всякий мусор при нажатии на кнопки. А вот ВТ57 ничего, вытягивает.

barsik
28.02.2017, 18:33
Идея выпуска новой версии платы РК86 не встретила особого энтузиазма. Но есть альтернатива.

Для большинства массовых западных 8-ми разрядок выпускались так называемые платы акселераторов. Для 6502 на базе 65С02 или 65816, для КР580 на базе Z80, а для Z80 на базе HD64180ZP8. Они втыкались в слот или подключались к системной магистрали, а иногда включались DIP-разъёмом в панельку процессора. Обычно они давали ускорение в 3-15 раз, а иногда давали и смену системы команд процессора.

Благодаря открытости архитектуры, особенно много подобных плат для Apple-II. Для него есть десятки плат акселераторов (https://en.wikipedia.org/wiki/Apple_II_accelerators) дающих ускорение от 3.5 до 15 раз.

Кроме того имеются платы для Apple-II для использования другого процессора, причём они устроены так же, и по сути тоже являются акселераторами (никто не применял в них родной такт, обычно 3.5 МГЦ). Так, всем известная плата Z80 Soft Card (https://en.wikipedia.org/wiki/Z-80_SoftCard), работает не на такте 1 МГЦ, как оригинал, а на такте 3.5 МГЦ. Кроме того для Apple-II есть платы на 6809, на 8088, а также на 68008, что помимо ускорения даёт в 8-ми разрядке 32-х разрядный процессор https://en.wikipedia.org/wiki/Apple_II_processor_cards.

Именно благодаря таким доработкам примитивный Apple-II с неудобным процессором с 3-мя регистрами продержался и был популярен почти 20 лет http://apple2history.org/history/ah13/. Даже ПРИНЦ ПЕРСИИ был написан для Apple-II и лишь в 1990 году портирован на PC.

На плате акселераторов располагают быстрый процессор и быструю память. А дисководы, адаптер клавиатуры и экранная память используется из самого компьютера. При обращении к портам и экранной памяти на основной плате такт процессора переключается на скорость оригинального процессора. Но сама программа пользователя прогоняется на ТУРБО-скорости, что и даёт желаемый эффект.

Возникла идея сделать то же самое для РК86. Это стоит сделать хотя бы для того, чтобы избавиться от погасания экрана при работе с МГ и подключить дисковод от КОРВЕТА, дающий 800К. Важно, что появится возможность работать в реальном времени и, в частности, трансфер файлов по последовательному интерфесу для обмена с PC можно будет имитировать программно без применения громоздкой схемы на базе ВВ51.

Плата акселератора РК86 может быть устроена так. Вытаскиваем КР580, РФ2 и ППА клавиатуры из панелек и в системный разъём вставляем платку акселератора. В ней системная магистраль отключается от шины основной платы переводом 3-х буферов АП6 в 3-е состояние. На платке стоит КР580 на такте 3.5 МГЦ, ПЗУ РФ2, ОЗУ w27512 (или две 62256) и ППА клавиатуры по адресу 8000. Адресное пространство ОЗУ 0...7FFF делится на две части. Область 0...76CF берётся из быстрого статического ОЗУ, а экранная область 76D0...7FFF по-прежнему берётся из РУ3-их на основной плате. На основной плате разумно оставить только одну банку РУ3-тьих, чтобы разгрузить шину. Область расширения ОЗУ 8400...BFFF также читается из быстрой статики. При обращении к РУ3-тьим на основной плате цикл обращения удлиняется на 1 такт WAIT, что соответствует периоду маш.такта в оригинале, так что проблем с тормозными РУ3 не возникнет.
Обычно тактирование КР580 на 3.5 МГЦ требует установки ВК28, но такт 3 МГЦ без проблем достигается и без этого.

При поступлении от ПДП сигнала HOLD, КР580 не останавливается, но буфера на шине данных и буферов отключаются, а на ПДП сразу же выдаётся HLDA. ПДП получает доступ к шине, но КР580 не остановлен. Только если во время ПДП КР580 попытается обратиться в экранный буфер или БИС на основной плате, то для него сформируется READY=0, до тех пор пока ПДП не закончит свой цикл пересылок и не освободит шину.

Ускорение составит 3.5 : 1.3 = 2.7 раза. Можно предусмотреть режим НЕТУРБО с вдвое меньшим тактом 1.75 МГЦ. Чтобы получить скорость равную скорости оригинала можно использовать такт 2.6 МГЦ, что в режиме НЕТУРБО даст ровно 1.3 МГЦ, что соответствует скорости оригинала.

Такая платка при грамотной разводке может быть довольно маленькой, а значит дешёвой. Считаю, что концепция в любом случае должна остаться базовой. То есть нельзя вводить такие доработки, что нельзя было бы простейшим способом получить на базовой плате. Нельзя откидывать тех, кто не может доработать свой базовый РК86 в силу отсутствия паяльника или ума.

Я предложил КР580, т.к фанаты РК86 очень консервативны, но можно применить и процессоры HD64180ZP8 и 68008. Если их использовать на 8 МГЦ, то скорость будет вполне приемлемая. Процессор работает асинхронно, поэтому мы можем иметь любой такт, даже 20 МГЦ на китайском Z80.

Давайте обсудим эту идею и поищем разработчика. Я бы и сам это сделал (это не так уж сложно), но не люблю возиться с железом, может быть сделаю когда-нибудь.

Error404
28.02.2017, 21:41
Мое глубочайшее ИМХО: любая доработка по части ОЗУ/ЦПУ в РК86 прежде всего должна решать катастрофу с вредительским штатным распределением памяти экранов и портов в RK86. Если она не привносит возможность полностью использовать манюсенькие 64к неэффективного процессора 8080/Z80, а оставляет "лоскутки" как и было, то смысл теряется. Т.к. любая диспетчеризация упирается в убогость программного инструментария ее поддерживающего (не видел пока эффективных средств, только какие-то костыли как в современных реализациях ЯВУ хостящихся на РС но копилирующих для 8-биток).

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

Зато если она позволяет дать процу на выполнение все 64к+- (плюс диспетчеры/MMU) хотя бы и в дополнительных страницах ОЗУ, то - да, это удобно. RK же при этом превращается в плату алфавитно-цифрового терминала при этой добавочной карте, причем далеко не самого продвинутого (ввиду того что и как там ограничено в видеовыходе)

barsik
01.03.2017, 02:01
Для ЭВМ с текстовым экраном особо много ОЗУ для игр не надо. Это не графический компьютер, где игры с объёмом кода 6-8 кб с объёмом спрайтов 35 кб. Посмотрите на XONIX. Всего 1700 байт, а играть интересно. Посмотрите на TINY BASIC КР580 (1976). ЯВУ размером всего 1850 байт. То, что маленького ОЗУ достаточно для текстовой ЭВМ, лучше всего доказывает антикварный компьютер ZX80/81. Его выпустили с 1980 по 1983 тиражом 2.5 миллиона и сделали для него тысячи игр, несмотря на то, что у него всего 1 кб ОЗУ, из которого половину сжирает экран и скорость 800 КГЦ. И в этот килобайт умудрились засунуть игры Manic Miner, Pacman, Tetris и даже шахматы.

Большое сплошное ОЗУ нужно было в 80-е годы, чтобы уместить максимальный листинг, т.к не было иного способа транслировать или дизассемблировать большую программу. Эту проблему мог бы решить дисковый ассемблер позволяющий транслировать большой исходник. Увы, для RK-DOS такого ассемблера не появилось, RK-DOS решает лишь проблему хранения файлов. Чтобы такой макро ассемблер получить нужна CP/M, для чего нужно иметь ОЗУ в адресах выше 8000,т.к если CP/M с размером 10К работает в основном ОЗУ, то для загрузки программ остаётся менее 20К, а половина РК-игр имеет больший размер.

Таким образом маленькая платка акселератора решает все проблемы РК - даёт работу в реальном времени, скорость CPU и возможность иметь CP/M и макро ассемблер. Какие-то иные доработки просто бесполезны, их никак не использовать.

Но главное то, что нельзя "уходить" с архитектуры РК86. Нельзя раскалывать оставшихся пользователей на 2 части. На примере ОРИОН-ПРО все убедились, что какая бы крутая не была новая архитектура, она вредна. ОРИОН-ПРО оставил "за бортом" бОльшую часть пользователей, что привело к мгновенной гибели сначала ОРИОНА, а следом и ОРИОН-ПРО.

Прямая архитектура ОЗУ со сплошными 60К нужна только для использования ЯВУ. Но все уже убедились, что для медленной ЭВМ компиляторы ЯВУ бесполезны (интерес представляет только PL/M). Какое преимущество даст "прямая архитектура" со сплошным ОЗУ в 60К, по сравнению с "кривой" базовой архитектурой с портами посередине адресного пространства? Я имел в 1995 РК со сплошным ОЗУ в 60К и CP/M. Но что толку, если все программы РК перестали работать? Вскоре я вынужден был вернуть базовую архитектуру и заняться расширением ОЗУ совместимым образом. Авторы РК-МАКСИ тоже пытались получить "прямую архитектуру", но плохо кончили. Всем стало очевидно, что сохранение "кривизны" архитектуры РК - это аксиома, а доработки допустимы только такие, что можно сделать на базовой плате за пару часов труда.

К таким простейшим доработкам относятся следующие:

- улучшение качества фонта с 6*8 на 8*8 за счёт замены ИЕ4 на ИЕ5
- введение инверсии знакомест за счёт атрибутов ВГ75
- введение альтернативного фонта за счёт его прошивки во вторую половинку РФ2
- расширение ОЗУ в окне 8400...BFFF, минимум, на 15 кб, максимум 1 мб
- турбирование за счёт установки второго кварца по схеме РАДИО 01.1991 стр.38
- буферизация ОЗУ для повышения надёжности при перегрузке шины периферией
- подключение IDE-винчестера или "micro-SD" карточки его имитирующей
- введение цвета по уже опробованным схемам или более совершенным
- подключение к РК86 цветного VGA-монитора
- решение проблемы скоростного обмена файлами с IBM PC по проводной линии

Первые 5 пунктов я уже давно сделал. Цвет меня не волнует, т.к дисплей монохромный. Актуален винчестер и проводная линия. Громоздкой установки ВВ51 можно избежать, если сделать работу КР580 в реальном времени, что и даёт акселератор РК86.

Заметьте, что самой быстрой отечественной ЭВМ на КР580 является ОРИОН (Вектор имеет такт CPU в 3 МГЦ, но из-за WAIT реальное быстродействие 2.4 МГЦ). Имея 3.5 МГЦ реального такта РК86 будет самой быстрой КР580 ЭВМ в мире.

На этом же принципе хотел бы поставить в РК86 процессор 6502 на такте 1.5 МГЦ и 68008 на такте 10 МГЦ, т.к интересуюсь их программированием. Естественно, что при установке чуждых CPU архитектуру разумно "выпрямить". При использовании 6502 можно получить совместимость с Apple-II по вызовам ПЗУ F800 и тем самым совместимость с его системным ПО.

b2m
01.03.2017, 11:19
Я имел в 1995 РК со сплошным ОЗУ в 60К и CP/M. Но что толку, если все программы РК перестали работать?
РК со сплошным ОЗУ в 60К цветом и альтернативным фонтом называется "Апогей БК-01ц". На него было перенесено достаточно много программ с РК.
Ещё был Партнёр-01.01, с CP/M и восемью фонтами, а при подключении блока МЦПГ ещё и практически с графическим экраном. И точно также на нём работали слегка адаптированные программы с РК.

Error404
01.03.2017, 12:16
Но главное то, что нельзя "уходить" с архитектуры РК86. Нельзя раскалывать оставшихся пользователей на 2 части. На примере ОРИОН-ПРО все убедились, что какая бы крутая не была новая архитектура, она вредна. ОРИОН-ПРО оставил "за бортом" бОльшую часть пользователей, что привело к мгновенной гибели сначала ОРИОНА, а следом и ОРИОН-ПРО.


так в том и идея чтобы не уходить, а сделать совместимо: расширить ОЗУ страницами по 64к (что не исключает дополнительных опциональных более мелких окон - например ими можно пользоваться для межстраничных пересылок), добавить порт страниц ОЗУ, где первую страницу (с адресом "0" по сбросу) пожертвовать под совместимость с ретро и адресным порно, при обращении к остальным страницам ничего такого странного не делать
- вся память процессору (почти по Ленину :) ). Всего-то надо - чипселектами того, что лезет в середину адресного пространства, дополнительно управлять в зависимости от порта страниц по 64к.



Прямая архитектура ОЗУ со сплошными 60К нужна только для использования ЯВУ. Но все уже убедились, что для медленной ЭВМ компиляторы ЯВУ бесполезны (интерес представляет только PL/M).


Кто эти все? Убедились думаю в основном кто попробовал и бросил - ниасилил, те, кто продолжал пилить, до сих пор используют: вон даже игры на С вполне себе выпускают (в соседних темах по ZX), библиотеки есть на уровне "сред быстрой разработки" - куда там ассемблеру. А уж для псевдографических и системных утилит где графики мало, по скорости требования ниже, а математики будь здоров сколько, ЯВУ вполне себе инструмент.
А для "лоскутной" адресации таки-да, остается только ассемблер и демосцена (т.е. перевод электричества в тепловыделение), ибо никаких громадных проектов последнее время на асме что-то не видно: "настоящих буйных мало", профи ассемблера (которые писали под CP/M и фирмы-игроделы) ушли, а потенциал для портирования готового исходного кода с других платформ у ассемблера околонулевой (здесь с возможностями ЯВУ даже сравнивать бесполезно).


РК со сплошным ОЗУ в 60К цветом и альтернативным фонтом называется "Апогей БК-01ц". На него было перенесено достаточно много программ с РК.
Ещё был Партнёр-01.01, с CP/M и восемью фонтами, а при подключении блока МЦПГ ещё и практически с графическим экраном. И точно также на нём работали слегка адаптированные программы с РК.

Оно все так, но в те времена было одно существенное ограничение: в СССР память ОЗУ была дорогая и дефицитная. Поэтому чтобы забороть "трудные детские болячки РК" опять же обошлись одной линейкой РУ5, унеся порты и экран, и потеряв железную совместимость. Сейчас с памятью проблемы нет - хочешь статикой выйти можно из положения, хочешь на РУ7 или на более емких DRAM-аналогах. Взять тот де Вектор (ЕМНИП): в нем же так и сделали - имеющуюся страничку с экранами не трогали, а добавили "квазидиск", в котором благодаря прямой адресации ЦПУ работала CP/M=Микродос и прочее что требовало больших страниц.

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

Кстати, компиляторы ЯВУ до сих пор делают, даже среди участников форума есть пример - Vinxru (к сожалению, свалил с форума) с его компилятором С и несколькими играми на этом самом С написанными - как раз таки для Апогея и Ориона (и может еще каких), кросплатформенность же :)

b2m
01.03.2017, 13:17
так в том и идея чтобы не уходить, а сделать совместимо: расширить ОЗУ страницами по 64к
Если взять, что де факто РК имеет ОЗУ 32Кб, то лучше наверное сделать окно 16Кб, чтобы при переключении банок хотя бы какое-то ОЗУ оставалось на месте, тем более что и экран нельзя переключать (а вдруг там мусор и ПДП подсунет ВГ-шке всякую ересь). Так что окно 16Кб с нулевого адреса - вполне адекватно с программной точки зрения, даже если первые 2 страницы будут отражать стандартное ОЗУ 32Кб. Другое дело, что с аппаратной точки зрения, чтобы сделать окно 16Кб и фиксированные 16Кб в области 4000-7FFF - одним проводочком не обойтись.

Error404
01.03.2017, 14:56
Если взять, что де факто РК имеет ОЗУ 32Кб, то лучше наверное сделать окно 16Кб, чтобы при переключении банок хотя бы какое-то ОЗУ оставалось на месте, тем более что и экран нельзя переключать (а вдруг там мусор и ПДП подсунет ВГ-шке всякую ересь). Так что окно 16Кб с нулевого адреса - вполне адекватно с программной точки зрения, даже если первые 2 страницы будут отражать стандартное ОЗУ 32Кб. Другое дело, что с аппаратной точки зрения, чтобы сделать окно 16Кб и фиксированные 16Кб в области 4000-7FFF - одним проводочком не обойтись.

Окно в 16кб (или меньшие) никакого удобства при программировании не дает. Маленькие окна - это медленные и мучительно организовываемые оверлеи кода или данных для единственного приложения, которое придется еще и написать, потому что готовые приложения (если из приличных) - большие и не лезут в 32к из которых еще надо вычесть экран. "Удобство" диспетчера по 16к наглядно иллюстрирует соседняя тема про FUZIX для ZX-128, где уже наизнанку вывернулись, а ничего путного в эти 16к не лезет.

Другое дело, что это окно в 16к приобретает смысл как отключаемая "склеенная" область межстраничного обмена, но только если есть эти большие страницы.

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



Другое дело, что это окно в 16к приобретает смысл как отключаемая "склеенная" область межстраничного обмена, но только если есть эти большие страницы.

В этом случае можно упростить: на время межстраничного обмена накрывать "большие страницы" 32к-шной ОЗУшкой нулевой (основной,начальной) страницы. Т.е. как аналог диспетчера с окном 32к где всегда включается только один сегмент. Это же даст возможность и в экранное ОЗУ писать. Фактически, это будет единственное что будет требоваться от основной страницы в расширенном режиме - экран да подпрограммы межстраничной пересылки.

b2m
01.03.2017, 22:20
на время межстраничного обмена накрывать "большие страницы" 32к-шной ОЗУшкой нулевой
Собственно, нет особой необходимости иметь порты по адресам выше 8000h в расширенных режимах. Можно сделать как в Специалисте-МХ - стандартный режим, совместимый с обычным Радио-86РК, и режим типа МХ, когда все порты сгруппированы по адресам, например, FF00-FFFF. По сбросу - стандартный режим, при записи в область FFFC-FFFF - меняем режим.

barsik
01.03.2017, 23:44
потенциал для портирования готового исходного кода с других платформ у ассемблера околонулевой (здесь с возможностями ЯВУ даже сравнивать бесполезно)

Теоретически так, но на практике нет. Не видел в сети исходников игр на СИ, а вот на ассемблере видел много. Только на прошлой неделе встретил на этом сайте ссылку на исходник TINY BASIC, адаптированный для CP/M (добавлены LOAD/SAVE), странслировал не меняя ни байта, а затем не напрягаясь нашёл в сети более 10 программ на TINY BASIC от антикварных ЭВМ (в том числе ассемблер и дизассемблер 6502). Понятно, что игры убогие (что иного ждать от игр из 1976-77), но важен факт, что работают. Хотелось бы перетранслировать бейсик от ZX80 (4 кб) и найти несколько сотен игр на этом бейсике.


Партнёр-01.01 с CP/M и восемью фонтами, а при подключении блока МЦПГ ещё и практически с графическим экраном

Что за блок МЦПГ? Модуль Цвета Псевдо-Графический? Где увидеть схему и описание? Программировать псевдографику неудобно. Я написал текстовый драйвер 32*12 для режима 192*100, опыт имею.

Что касается АПОГЕЙ, ПАРТНЁР, КРИСТА, МИКРОША... и кто там ещё, всех не упомнишь. Понаделали несовместимых клонов. Если уж так хотелось несовместимости, могли бы сделать в них 2 режима - свой и РК86. Для чего было достаточно вместо ИД7 поставить РТ4 и второе ПЗУ F800. Несовместимых клонов много, а РК86 один. Лучше держаться за РК86, незачем менять компьютер и для РК больше программ.


Кстати, компиляторы ЯВУ до сих пор делают, даже участники этого форума

Лучше бы вместо компиляторов СИ делали бы компиляторы PL/M, который даёт код, в 4 раза более меньший и быстрый. Чтобы понапрасну не "пудрили" людям мозги идеями, что на СИ можно написать что-то для РК86. BEST-C РК86 тому пример. Хотя от лучшего СИ, чем BDS и AZTEC, я бы не отказался.



Все уже убедились, что для медленной ЭВМ компиляторы ЯВУ бесполезны (интерес представляет только PL/M)

Кто эти все? Убедились думаю, в основном, те, кто пробовал и бросил, не осилил. Те, кто продолжал пилить, до сих пор используют. Вон, даже игры на СИ выпускают (в темах по ZX), библиотеки есть на уровне IDE, - куда там ассемблеру?

Исхожу из того, что не встречал для отечественных 8-ми разрядок ни одной приличной программы написанной на ЯВУ (за исключением форта и PL/M). Сам я программирование на СИ и Паскале для CP/M и MSDOS осилил еще в начале 90-х. Видел с какой скоростью работает CHANGER для дисков MSDOS на Pascal МТ+ (объём 32К). Видел 2 Нортона написанных на СИ. Один А.Балдина (1993, с драйвером на 80 символов в экране 400) чисто на СИ, который разбух до 32 кб и был брошен по причине нехватки памяти. Другой мой, написанный на BDC С (или AZTEC не помню), с максимально большими вкраплениями ассемблера, что предположительно должно было помочь удержать объём кода. Но не особо помогло.

Хотел скинуть исходники этих СИ и ПАСКАЛЬ программ, чтобы доказать вышесказанное, но подкаталоги всех версий всех программ на ЯВУ в архиве оказались пустыми. Так бывает когда копируешь каталог, который занят, остались только 200 пустых подкаталогов. На дискетах что-то осталось, но ранние версии, т.к дорабатывал уже в своём эмуляторе. Но нет исправного флопа. Среди TD0 нашёл раннюю версию нортона на СИ в 17 кб (объём последней версии был 30 кб). Если кого интересует могу выложить. Нашёл также текстовый редактор на Турбо-Паскале, аналог турбо паскалевского. Имеет тот же размер, что и SED.COM написанный на форте, причём редактор даже слабее, чем SED, т.к нет свопинга, отчего редактируется только файл, что умещается в ОЗУ, так же как и турбо паскалевский редактор. Если сделать для файлов любого размера, то объём кода увеличится на 30%. Полный аналог редактора на ассемблере в 3.5 раза меньше.

Но что касается СИ, применительно к разработке игр для РК86, то думаю, что здесь еще не сказано последнее слово. Для написания игр для текстовой ЭВМ скоростей СИ хватит, если критичные процедуры переписать на ассемблере и использовать ОЗУ 64К в виде двух полу-банок. Т.к во вторая полубанка может использоваться только для данных, то получается 28К для кода и 32К для графики. Этого вполне достаточно. Для РК86 ещё никто не писал на СИ, т.к в годы когда для РК создавалось ПО, - не было доступа к CP/M и соответственно СИ-компиляторам. Давайте исправим эту ошибку и сделаем для РК86 килограмм игр, используя BDC-СИ (т.к он почти единственный и возможно лучший для КР580).


экран нельзя переключать (а вдруг там мусор)

Можно, и даже нужно. Этой фразой Вы натолкнули меня на две победительные идеи, которые я обязательно использую.

Надо сделать так, чтобы по сигналу HLDA автоматически включалась конфигурация с экранным буфером в адресном пространстве. Вот тогда в области экранного буфера можно включать любую банку ОЗУ.

Это хорошо, но интересная идея не в этом. А в том, как временно убирать экран и KBDPPA из адресного пространства программ пользователя, не нарушая совместимости в самой базовой схеме РК86 на РУ5. Что даёт сплошное ОЗУ 46 кб и позволяет в CP/M увеличить TPA c 28 кб до 37 кб, что для меня существенно. Например, в СПЕЦИАЛИСТЕ я имел TPA 35К и этого хватало (CPM на D000...EFFF, экран с 9000, ниже служ.ячейки и TPA).

При старте программы пользователя (программно) экран переносится на B6D0, для чего сигнал HLDA подаётся на два вентиля ЛП5, которые при HLDA=1 будут инвертировать адреса A14 и A15, поступающие от БИС ПДП (точнее от ИР12, т.к старшие адреса ПДП защелкиваются по ALE в ИР12). Оттого ПДП будет как всегда читая экран с адресов 76D0...7FFF, будет реально считывать экран находящийся на B6D0...BFFF (что как раз удобно попадает в окно расширения ОЗУ 8400...BFFF). Можно перенести экран и в область E6D0...EFFF, но тогда надо 3 вентиля ЛП5, хотя я предпочитаю на E000 иметь ПЗУ с отладчиком DDT (или же ОЗУ, чтобы его туда грузить).

Вторая идея заключается во временном отключении выборки ППА клавиатуры по адресам 8000...83FF. Делаем так. ППА клавиатуры адресуемое на 8000...83FF одновременно выбирается по другому адресу (например, F200). Тогда перед стартом CP/M выборка ППА по 8000...83FF программно отключается, экран для ПДП программно или аппаратно переносится на B6D0 и образуется сплошное ОЗУ 0...BFFF.

Естественно, т.к тот драйвер вывода, что в ПЗУ выводит в экран 76D0, то CP/M выводит на экран не п/п-мой F809, а имеет свой драйвер вывода на экран B6D0 (но выгоднее доработать ПЗУ F800, введя служ.ячейку адрес экрана).

Таким образом в полностью базовой "кривой" архитектуре, мы получаем то, что хотели - 100% совместимость и работу ДОС в сплошном ОЗУ 48К. Эта идея мне нравится.

Если в CP/M переносить экран не аппаратно, а программно, то расход деталей составит всего один корпус ЛА3. В качестве управления - один бит из доп.ППА D14 по адресу F100 или даже неиспользуемый бит PC1 ППА клавиатуры. Если переносить адрес экрана аппаратно, то расход будет уже 2 корпуса: ЛП5 и ЛИ1.

Только вот такие простейшие доработки с минимумом доп.корпусов приемлемы. Что толку от победительной архитектуры, если реализация сложна и её не повторить, даже имея электропаяльник?

Error404
02.03.2017, 01:01
Исхожу из того, что не встречал для отечественных 8-ми разрядок ни одной приличной программы написанной на ЯВУ (за исключением форта и PL/M). Сам я программирование на СИ и Паскале для CP/M и MSDOS осилил еще в начале 90-х. Видел с какой скоростью работает CHANGER для дисков MSDOS на Pascal МТ+ (объём 32К). Видел 2 Нортона написанных на СИ. Один А.Балдина (1993, с драйвером на 80 символов в экране 400) чисто на СИ, который разбух до 32 кб и был брошен по причине нехватки памяти. Другой мой, написанный на BDC С (или AZTEC не помню), с максимально большими вкраплениями ассемблера, что предположительно должно было помочь удержать объём кода. Но не особо помогло.

Хотел скинуть исходники этих СИ и ПАСКАЛЬ программ, чтобы доказать вышесказанное, но подкаталоги всех версий всех программ на ЯВУ в архиве оказались пустыми. Так бывает когда копируешь каталог, который занят, остались только 200 пустых подкаталогов. На дискетах что-то осталось, но ранние версии, т.к дорабатывал уже в своём эмуляторе. Но нет исправного флопа. Среди TD0 нашёл раннюю версию нортона на СИ в 17 кб (объём последней версии был 30 кб). Если кого интересует могу выложить. Нашёл также текстовый редактор на Турбо-Паскале, аналог турбо паскалевского. Имеет тот же размер, что и SED.COM написанный на форте, причём редактор даже слабее, чем SED, т.к нет свопинга, отчего редактируется только файл, что умещается в ОЗУ, так же как и турбо паскалевский редактор. Если сделать для файлов любого размера, то объём кода увеличится на 30%. Полный аналог редактора на ассемблере в 3.5 раза меньше.


BDS C и Aztec C - слабые компиляторы. Они для 8080 (который менее удобен для кодогенератора С чем Z80), они сами по себе генерируют не самый оптимальный код, они не совместимы с ANSII, ЕМНИП оба не умеют int32 (или через какие-то жуткие костыли). У BDS C есть правда один плюс - это писали классики (Borland inc), для MSDOS позже сделавшие лучшие реализации С/C++, и они не так давно официально отдали в PublicDоmain исходники этого своего компилятора (единственные кто так сделал).

Я в своих орионовских проектах (сотни килобайт исходного кода С) использую Hitech C - лучший нативный компилятор С для Z80 (https://github.com/serge-404/HI-TECH-C-V3.09): даже версии работающие на РС его только-только догнали по эффективности после десятков лет допиливания (я сейчас про smallC-переросток SDCC, других реальных конкурентов нету), а по удобству использования пока еще не догнали (и это при том, что работают на безразмерных ресурсах РС, тогда как Hitech C - в 64кб и на Z80). Hitech C версии для CPM официально бесплатен (его исходников правда нет, но есть исходники всех библиотек), совместим с ANSII, умеет int32 (ну и float для желающих странного) . Т.е. им можно странслировать код с Unix или с PC написанный классиками программирования, а BDS C или Aztec C - наврядли. В этом ключе PL/M бесмысленен - что им компилировать? В мире никто на нем не пишет.

Приложения у меня порой доходят до 40-50 кб размера бинарника, не вижу в этом никакой проблемы, тут опять же плата за удобство: хочешь добавить в свой труд технологичность разработки, пользоваться достижениями предшественников, подчас поумнее чем сам (всё есть в OpenSource), - добавь памяти (в данном случае размер TPA) и частоту проца. А у грамотного кода пера опытных программеров и размер будет меньше.

На С я делал 2 командера (один на BDS C чисто для прикола - с графической либой) и один на HI-TECH-C в качестве ГУЯ для копировщика с FAT32, код командера получался порядка 20кб (прикидочно по памяти), но я не делал рюшечки для полной похожести на НортонКомандер v3, чем так увлекся А.Балдин (я видел его нортоны) в ущерб функционалу да еще с привязкой по железу (нортон Балдина работал только в определенном окружении). Нортон от vinxru написанный на его же С (там весьма хакерский С, не совсем по букварю работающий), вообще маленький - несколько килобайт.

Вот кстати, FATfs (библиотека-копировщик с FAT32/FAT16/FAT12 на С со всеми функциями файловой системы, а не только копирования,) без гуя при всех наворотах и 32-битной математике (т.е. на порядок более сложная функционально) в бинаре произведеном HI-TECH-C дает только 20 кб. Вот и пример в сравнении с CHANGER для дисков MSDOS на Pascal МТ+ (объём 32К для только FAT12) - грамотно написанный код и скомпилированный нормальным компилером на порядок меньше.

NEO SPECTRUMAN
02.03.2017, 01:19
Вот кстати, FATfs (библиотека-копировщик с FAT32/FAT16/FAT12 на С со всеми функциями файловой системы, а не только копирования,) без гуя при всех наворотах и 32-битной математике (т.е. на порядок более сложная функционально) в бинаре произведеном HI-TECH-C дает только 20 кб.
А ни кто её не пытался переписать под православный z80 асм?

bigral
02.03.2017, 18:12
Вот кстати, FATfs (библиотека-копировщик с FAT32/FAT16/FAT12 на С со всеми функциями файловой системы, а не только копирования,) без гуя при всех наворотах и 32-битной математике (т.е. на порядок более сложная функционально) в бинаре произведеном HI-TECH-C дает только 20 кб. Вот и пример в сравнении с CHANGER для дисков MSDOS на Pascal МТ+ (объём 32К для только FAT12) - грамотно написанный код и скомпилированный нормальным компилером на порядок меньше.

На порядок обозначает разницу в 10 раз, т.е. 3.2кб вместо 20кб. Но что интересно и тот и другой пример как бы намекает: нужны способы (оверлеи) поднять общий обьем кода\данных программы с обычных 50...60кБ до 128...4Мб для более-менее серьезных программ. А иначе писать все прийдется на ассемблере (который дает выиграш в 3...5 раз по обьему).

barsik
03.03.2017, 17:38
Данная тема, после того как выяснилось, что на новые платы РК86 нет интересантов, плавно преобразовалась в тему по обсуждению изменений архитектуры, что можно сделать на самой плате РК86 или в виде внешних плат расширения.

Сообщение B2M о том, что в одном из клонов РК86 есть целых 8 фонтов, навело меня на мысль, что если число фонтов сделать ещё большим и переключать их не целиком на весь экран, а с помощью GPA ВГ75 лишь для отрисовки конкретного спрайта (т.е переключать фонт в пределах строки), то получится делать красивые игры неотличимые от графических, но работающие гораздо быстрее (без мерцаний). Что доказывает, что возможности РК86 ещё далеко не исчерпаны.

При использовании ПЗУ 27256 или 62256 с подпаянной батарейкой, т.к каждый фонт занимает 1 кб, получаем 32 фонта. Рассмотрим портацию игры Manic Miner от ZX80. Будем использовать спрайты 2 на 2 символа. При матрице знакоместа в 8*8 отображается спрайт в матрице 16*16, а при фонте 6*8 будет 12*16.

Для имитации движения, в среднем вполне достаточно иметь 8 фаз каждого спрайта. Тогда на один спрайт уйдёт 2*2*8= 32 символа. Итого, в одном фонте в 128 символов мы сможем разместить всего 4 спрайта, а в 32 фонтах умещаются 128 спрайтов. В средней игре не более 12-ти спрайтов. При 4-х спрайтах в фонте и до 16 спрайтах в игре, для коммутации фонта надо всего 2 атрибута ВГ75. Это даёт 12 спрайтов и ещё 128 граф.символов для рисования пейзажа. Тогда ПЗУ 32К хватит для хранения графики для 8-16 игр. Некоторые спрайты можно делать 3*3 (благодаря текстовому режиму даже скоростей РК хватит, чтобы двигать большие спрайты), то будет еще красивее.

Аппаратно, - два атрибута ВГ75 коммутируют 4 фонта в конкретной игре (адреса А10,А11 27256), а портом БЭ ППА D14 выбираем игру (адреса A12...A14 27256).

Если добавить цвет, то практически получится реализация Денди, если я правильно понимаю, как он устроен. Если кто-нибудь даст мне спрайты из Manic Miner ОРИОНА, я написал бы демо (движение фигурки, это просто) и тогда можно было бы увидеть, что получается. Кто нибудь может предложить какой-нибудь редактор спрайтов на PC? Не хочется писать ещё и редактор спрайтов (с визуализацией фаз).

Для получения цвета уже не обойтись только заменой ПЗУ, как для получения спрайтов. Здесь придётся делать существенные доработки. К сожалению, в ВГ75 всего 4 выходных сигнала управляемых атрибутными командами. Если 2 атрибута занять на коммутацию фонта, т.е на выбор спрайта в играх, то на цвет остаётся всего 2 бита, т.е всего 4 цвета. Маловато.

Впрочем, для игр можно сделать 7 цветов, имея всего 2 бита. Смотри ниже.

Однако, в играх можно получать цвет из фонта. Для этого параллельно ПЗУ фонта со спрайтами, ставится второе ПЗУ содержащее цвет спрайта. При защелкивании видеобайта из ПЗУ фонта в ИР13, одновременно в добавленной вторым этажом ИР13 защелкиваем 8 битов из ПЗУ цвета. ПЗУ цвета может иметь размер в 8 раз меньше, чем ПЗУ с фонтом, задавая тем самым один цвет на все знакоместо. Как обычно 16 цветов фон и 16 цветов цвет символа. Для оцвечивания текста такой способ не годится (нам ведь не надо чтобы, например, все бувы А были красными на белом, а все буквы Б - зелёными на жёлтом. А вот для раскраски спрайтов это в самый раз. Увы, второе ПЗУ увеличивает сложность конструкции, хотя и даёт спрайтам цвет (не хуже, чем у Синклера).

Если фонт 6*8, то можно получить цвета для спрайтов и без второго ПЗУ с кодами цвета. Тогда цвет прошивается в два неиспользованных бита в каждом байте спрайта. При защелкивании байта из фонта в ИР13, два бита из фонта защелкиваем в D-триггерах и используем для формирования R.G.B. Два бита дают 4 цвета. Расход деталей для такого цвета в играх составит всего 2 TTL-корпуса.

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

Это не моя идея, это идея цвета Apple-II, но об этом знают только те кто изучал Apple-II, т.е практически никто из фанатов РК86 и ОРИОНА. Кстати, количество цветов можно увеличить до 8, отказавшись от сочетаний цветов (в 2-х соседних точках. Тогда если четный и нечетный биты 01 или 10, то один из 6 цветов, а если 11, то это 8-мой цвет.

Если же хочется большее число цветов, то можно использовать 2 бита GPA ВГ75 и 2 бита из ПЗУ фонта. Тогда 2 атрибутных бита задают цвет фона, а 2 бита из ПЗУ фонта задают цвет символов (точнее спрайта). Получаем 4 цвета для фона и 7/8 цветов для символов. А два остальных атрибутных бита используются для выбора спрайта из ПЗУ фонта.

Из-за простоты реализации, цвет из ПЗУ фонта мне нравится больше. Преимущество такого цвета в том, что программисту не надо вообще заботиться о цвете. Спрайт раскрашивается сам, аппаратно. Из-за того, что правее 64-го символа всего 7 пустых знакомест, цвет Апогея допускает всего 3 смены цвета в пределах строки, даёт цвет только символов (не фона), а тут цвет меняет не атрибут, а фонт, потому в играх цвет может меняться хоть в каждом символе и есть цвет фона. Недостаток в том, что на моём РК86 фонт 8*8, и переделывать красивый фонт на уродский я не собираюсь.

Поэтому я придумал ещё один вариант введения аппаратного цвета спрайтов для игр. Он заключается в том, что спрайт делается с размером пикселя не в одну точку растра, а в две. Т.е вдвое снижаем разрешение спрайта по горизонтали (сам размер не меняется). Это достигается расходованием одной КП11. При включении цвета в игре, она в нечётных битах байта из ПЗУ фонта выдает чётные. Вот так: D6,D6, D4,D4, D2,D2, D0,D0. Тем самым биты D1,D3,D5,D7 не участвуют в формировании изображения, т.е свободны. В этих битах и кодируется цвет. КП11 включается в разрыв 4-х цепей идущих от ПЗУ фонта. 4 бита дают 8 цветов символа и 2 цвета фона. 2 цвета фона задаются портом A D14.

Если для цвета добавить вторую схему видео выхода, то можно иметь цвет по принципу CGA, когда 2 соседних бита из фонта задают цвет пикселя. Но тут всё-же больше деталей и меньше число цветов, хотя в спрайте каждый пиксель может быть своего цвета, а не 2 цвета на группу.

Если затратиться ещё на РЕ3 для перекодирования, то из 4-х битов можно было бы иметь 16 оптимальных сочетаний цветов, что ничуть не уже, чем традиционный цвет 16+16. Но это доработка вручную, тут приходится экономить корпуса.

При введении цвета есть один неприятный нюанс. А именно, в РК нет сигнала BORDER, т.к он формируется программно заполнением нулями части экранного буфера. В момент вывода бордюра сигналы R.G.B. или производный из них монохромный яркостный сигнал должны быть погашены. Поэтому если цвет фона нулей в экране не чёрный, то на выходах R.G.B. будет сигнал во время обратного хода развёрток, когда идёт ССИ и синхронизация сорвётся. Чтобы этого не было цвет символа 0 всегда д.быть чёрным.

Затратив один управляющий бит из ППА D14, можем ввести "цвет бордюра". Для этого требуется один вентиль (из ЛИ1 или ЛЕ1) и резистор. Обьединив наш сигнал BORDER с сигналом из ППА и подав его через резистор на вход красного R, мы сможем выводя 1 в бит в ППА окрашивать бордюр экрана (там где записан байт 0) в бледно красный цвет, как сигнал о включённом регистре клавиатуры. Цвет бордюра может быть только бледным (т.к при ярко-красном цвете на дисплее сорвётся синхронизация).

Итак, возможность прогона на РК86 монохромных, цветных и по настоящему графических игр обходится в замену ПЗУ на 27256 и монтаж на плате РК86 4-х корпусов 1533. Адаптация игр РК для такого цвета, намного проще, чем для схемы цвета за счёт атрибутов. Вся работа сводится к выбору символа и цвета из имеющегося набора цветных символов. Но главный сюжет в том, что новые игры РК могут быть полностью графическими и цветными и программировать их легко.

; ---------------------------------------------

В АПОГЕЕ или ПАРТНЁРЕ (или Бог знает где ещё) использовали атрибут RVV для инверсии символов (по схеме из Радиолюбитель за 04.1992). На моём РК тоже так сделано. Но счастья мне это не принесло, т.к оказалось неудобно в программировании.

Для использования атрибутов надо переписать ПЗУ F800, чтобы, при позиционировании по 1B,59 и другим кодам меняющим позицию (в РК эти коды равны кодам курсорных клавиш) учитывались коды атрибутов.

Например, сейчас в ПЗУ F800, при позиционировании по 1B,59 курсор ставится на начало строки и 'nn' раз вызывается п/п-мма "курсор вправо". А при использовании атрибутов надо при этом просматривать строку и если в позиции стоит код более 80H, то надо делать два сдвига позиции, чтобы пропустить неотображаемый атрибут. Вот тогда можно будет при включённой в строке инверсии пользоваться для вывода стандартными подпрограммами вывода и ввода.

А т.к нет желающих так доработать ПЗУ РК86, то для использования инверсии и цвета программист должен сам работать с экраном, а также, запретив аппаратный курсор, должен сам выводить его программно. В итоге от такого атрибута нет толка.

Потому я использую инверсию за счёт альтернативного фонта (что вводится за счёт затраты одного куска провода). Но при этом при инверсии число выводимых символов становится всего 64, как в Apple-II и ZX80 (нет русских букв, вместо них инверсные английские) и нет псевдографики РК (вместо неё инверсные и неинверсные рамочки). Однако, если пользователь РК имеет паяльник и может напаять на ПЗУ РФ2 панельку, куда устанавливается вторая РФ2 с ещё двумя фонтами, то там есть фонт для текстообработки. Точнее два фонта совместно дающие (с инверсией) русские заглавные и маленькие буквы и большие латинские (но рамок нет). Управление фонтом битом PC2 ППА клавиатуры.

Используя атрибут RVV (ReVerse Video) как атрибут выбора текущего фонта, мы получаем и удобную инверсию и все 128 символов. Причём и работе подпрограмм ПЗУ при таком использовании атрибутов вред не наносится, т.к используется режим отображения атрибутов пробелом, отчего экранные позиции никак не сдвигаются. Так можно менять фонт прямо в строке, хотя слова с одним фонтом от слов выводимых с другим фонтом должен разделять пробел. Проще всего задавать фонт сразу на всю строку, тогда атрибут RVV ставится до начала строки (в области левого бордюра из 8 знакомест, что в РК формируется программно), а на место последнего 78-го символа строки ставится атрибут выключения RVV.

Не вижу достойной альтернативы такому способу введения инверсии. Она не только проще стандартной инверсии (кусок проволоки вместо 2-х 155-х корпусов и диодов), но и гораздо удобнее в программировании. Хотя есть и минус, - если ПЗУ фонта всего 2 кб, то русские буквы всегда без инверсии и, соответственно, в открытых инверсных окнах с рамочками тексты могут быть только латинскими буквами.

Потому есть просьба к авторам эмуляторов сделать там поддержку атрибута RVV в качестве коммутатора фонта.

Только такие простейшие доработки, что реализуются лишь расходом проволоки или, в крайнем случае, не более 5-6 TTL корпусов, напаянных вторым этажом, допустимо делать в РК86.

Alex_LG
03.03.2017, 23:14
Сообщение B2M о том, что в одном из клонов РК86 есть целых 8 фонтов, навело меня на мысль, что если число фонтов сделать ещё большим ...
...При использовании ПЗУ 27256 или 62256 с подпаянной батарейкой, т.к каждый фонт занимает 1 кб, получаем 32 фонта...

Нескромно с моей стороны, но пропиарюсь еще раз (уже приводил для Вас данную ссылку), посмотрите http://zx-pk.ru/threads/20714-pomechtaem-ili-vopros-o-videovykhode.html?p=713206&viewfull=1#post713206 Там схема загрузки шрифтов в теневую память. Я дал только пару вариантов использования загружаемых шрифтов, но никто не запрещает загружать нужный шрифт/спрайт в процессе выполнения программы! И тогда мы получим не 8-32 шрифта, а столько, сколько нам нужно, хоть на каждый скрин/уровень свою графику! Переключается, кстати, по кадровому импульсу и нет никаких мерцаний. Схема минимальна, доработок практически никаких (кроме стандартных и пару проводков порезать) делать не нужно. Данная схема была поддержана пользователями форума (за что им моё спасибо), так зачем изобретать велосипед!? Схема, конечно не идеальна, но она УЖЕ работает.

barsik
04.03.2017, 05:02
Посмотрел схему загрузки фонта. Ничего неожиданного, хотя я бы сделал немного иначе. Но в общем-то примерно так я это и представлял. Вот выдержка из темы "Что можно выжать из ВГ75", где freedy использует конструкцию на ВГ75 с загрузкой фонтов.



... знал одного фаната, который пытался доработать РК, введя загрузку фонта (чтобы игры РК стали красивыми). Фонт для ВГ75 хранится в ОЗУ с раздельными входом и выходом. Входы ОЗУ подключены к ШД. А адреса ОЗУ с помощью трёх КП11 при обращениях КР580 переключаются от ВГ75 на ША. Благодаря чему и происходит загрузка фонта. Думаю конструкция могла бы работать.
. . . .
Не вижу, что в таком варианте помешает загрузить фонт (кроме нагрузочной способности шины РК). ОЗУ 1 кб имеет 10 адресных входов, три КП11 коммутируют 12 цепей. Входы ОЗУ на шине данных. Что ещё надо? Ну, для совершенства можно предусмотреть гашение, чтобы не было блёсток по экрану, в момент загрузки фонта.


Этим хочу сказать, что сама концепция загрузки фонта и её достоинства мне известны с 1988 года. Реализовывать её не стал, не было нужды. Фонт 8*10 использовал (правда не в 80-е, а уже в середине 90-х). Фонт у меня был не обычный, а извращенный (2 последних линии - во 2-м килобайте). Это для того, чтобы можно было использовать и фонт 8*8 и 8*10.

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

Загрузка фонтов, позволяет иметь полноценную графику, если дополнить её другой идеей. позволяющей аппаратно или программно выбирать фонт для каждой строки. Режим полноценной графики интересен, но практически бесполезен, т.к реально может быть использован только для текстообработки, а тут настоящий текстовый режим намного быстрее. Игры в полноценной графике на РК86 будут тормознуты.Такой конструкцией я, возможно, займусь позже. Для начала проще ввести спрайтовую графику для игр на принципе Денди.

Использование спрайтов из ПЗУ, как в Денди, - не тормозит, здесь загрузка фонтов актуальна. А если есть и цвет из фонта, т.е аппаратная раскраска спрайтов, то для создания игр это удобнее, чем писать для цветной графики АПОГЕЯ. А удобство программиста важно.

А по трудозатратам. Что проще, просто перезашить ПЗУ или спаять отдельную платку на 8-ми корпусах, соединяемую ворохом проводов с платой РК?

В предлагаемой конструкции доработки до игр со спрайтами за счёт большого ПЗУ фонта удобно использовать не 27256, а 62256 с батарейкой. Вытащил, вставил в панельку загрузчика, загрузил код и опять воткнул в РК86. При старте игры, загружать фонт не надо и во многих играх можно использовать одни и те же спрайты. Это как альтернатива загружаемому фонту для ленивых. Хотя конечно, при разработке программ Ваша платка была бы полезна программистам игр и рисовальщикам спрайтов.

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

Собираюсь спаять Вашу (или чуть изменённую) схему загрузки фонта, но позже. Пока надо сделать более актуальные доаботки.

Теперь, что касается оцвечивания не игр, а текстовых программ, где не требуется, чтобы каждая буква была своим цветом. Истратив всего 8 фонтов по 1 кб, в варианте с двойным ПЗУ (фонт + цвет) и три атрибутных сигнала для их выбора, можно иметь 8 сочетаний цветов, что гораздо лучше, чем просто 8 цветов. Хотя, как и в АПОГЕЕ, при работе с текстом в пределах полной строки возможны лишь 3 смены цвета, и т.к в каждом из этих 8-ми фонтов все символы одного цвета, то смена цветов происходит не кодом символов, а только атрибутами ВГ75 переключающими фонт.

Если соответственно выбрать атрибуты и коды цветов, то схема будет совместимой с АПОГЕЕМ, одновременно давая быстрые цветные спрайты. Но не вижу смысла стремиться к совместимости по цвету с АПОГЕЕМ, т.к во-первых он несовместим с РК86, а во-вторых оцвеченные для АПОГЕЯ игры не нужны - с такой доработкой можно использовать монохромные игры РК в цвете, имея соответствующий цветной фонт.

Важно то, что можно использовать старые РК-игры в цвете без их трудоёмкой переделки, лишь добавив к ним стартёр включающий цветной фонт, специально предназначенный для этой игры. Или оцвечивание некоторых игр требует намного более простой адаптации. В АПОГЕЕ для раскраски надо менять алгоритм, т.е код игры, а здесь достаточно лишь выбрать и включить фонт с односимвольными цветными спрайтами, настроенными для конкретной игры, и лишь редко требуется заменять код символа-спрайта на другой (это когда в качестве спрайта используются буквы и они же используются для вывода текста).

PS: Чтобы было ясно насколько неудобен для программиста цвет АПОГЕЯ вспомните, что каждая атрибутная команда управляет только одним битом из R.G.B. Это же не байт записываемый в ОЗУ цвета, как в ОРИОНЕ. Поэтому чтобы установить неосновной цвет надо записать в строку подряд несколько атрибутов, а в строке Вы можете записать их всего 3. Т.е число цветов в строке ограничено. Ничего такого нет при цвете встроенном в фонт.

; ----------------------

Используя раскраску в варианте с одним ПЗУ фонта, но когда чётные биты в фонте несут информацию о графике, а нечётные - о цвете, из РК86 при минимальной пайке и расходе деталей (только формирователь R.G.B. и замена ПЗУ фонта на 27256) получается совершенно новый цветной текстовый режим с текстовым экраном 32*24, как в ZX80, только с цветом и быстрыми цветными спрайтами для игр. Причем разрешение цвета лучше, чем в ZX-Spectrum и в ОРИОНЕ - два цвета в пределах 4 пикселей и числе цветов 8. Тогда каждый "символ" в ПЗУ фонта имеет ширину 4 пикселя и для формирования символа на экране надо вывести рядом два знакоместа.

Это ограничивает общее число экранных символов до 64 (число символов в одном фонте 128). Но это не фатально, т.к переключая фонты 4-мя атрибутами ВГ75, мы можем иметь даже 256 КОИ-8 символов. Хотя трудно сочетать символы из разных фонтов в одной строке, т.к число атрибутов в строке ограничено.

Если изменить схему видеовыхода, то цвет можно сделать по принципу CGA, когда два соседних бита в фонте задают цвет пикселя (один из 4-х цветов). Это на пару корпусов больше, но зато можно использовать спрайты от PC XT и Amstrad CPC и каждая точка в спрайте может быть своего цвета. Тогда в качестве редактора спрайтов можно использовать графический редактор от PC XT для CGA.

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

Error404
04.03.2017, 12:02
На порядок обозначает разницу в 10 раз, т.е. 3.2кб вместо 20кб.

Спасибо, Кэп. :)
Предвидя именно такие реплики из серии "я не читатель, я писатель" я и указывал постом выше, что в левой части неравенства у нас утилита для FAT12 (просто копирование с/на дискеток), а в правой - полный функционал файловых систем FAT12/FAT16/FAT32 одновременно (с датами и атрибутами файлов, каталогами, длинными именами {и UTF, но я его отключал}, произвольным позиционированием, поддержкой партиций жесткого диска), причем требующая 32-битной арифметики, которая в отличие от 12-битной не может быть реализована на единичных регистровых операциях процессора z80/8080 (соответственно int16 умеет любой компилятор для 8080/z80), а требует подпрограмм. При этом HitechC не только это нативно поддерживает (что уже космос для 8-биток на 8080/Z80), но и код генеририрует более компактный при гораздо большей функциональности. И таки да, на нормальных процессорах где нет такой разницы между 32 и 16 бит (на странице Elm Chan-a есть статистика по разноплатформенным компиляциям FatFS) оно компилируется в ~3..5кб.



Но что интересно и тот и другой пример как бы намекает: нужны способы (оверлеи) поднять общий обьем кода\данных программы с обычных 50...60кБ до 128...4Мб для более-менее серьезных программ. А иначе писать все прийдется на ассемблере (который дает выиграш в 3...5 раз по обьему).

Тоже это уже обсуждали и пришли к мнению, что овчинка реализуема, но выделки не стоит, т.к. при сложности сравнимой с борьбой за компактность кода, лишает удобств и добавляет кучу регулярно вызываемого обслуживающего кода (т.е. и +размер и +тормоза). Если код (что характерно, заведомо известный понятный код, который пишешь ты сам, а не портируемый "на конвейерной основе - фигак_фигак_впродакшн" где ХЗ какие взаимосвязи) еще как-то можно распланировать и разнести по сегментам оверлеев, то все равно это не дает приемлимой гибкости программирования, т.к.:
- все равно в сегменте нельзя сделать malloc куска большего, чем сегмент оверлея (а большой сегмент делать неэффективно)
- нельзя заехать кучей (а это заранее не прогнозируемо) на сегмент оверлея (он же в общем адресном пространстве), т.е. требуются проверки в коде при выполнении каждой операции а не на этапе компиляции
- нельзя заехать стеком (это тоже заранее не прогнозируемо) на сегмент оверлея, т.е. аналогично - требуются проверки при каждой операции

Впрочем, один вариант применения оверлея есть, и мы его обсуждали в теме Uzix - вынесения в оверлей libc (в случае Uzix и libc от HitechC это в максимуме экономии даст 20-30кб). libc часть константная, переписать надо единожды, и можно попробовать этот способ для случая "оверлея только для кода" если сделать оверлей в начале адресного пространства (заведомо ниже кучи и стека). НО я уверен, подводные камни все равно полезут, и кроме того: ну вынесли мы libc, а дальше то - все равно начинается борьба за компактность. :)

Ну и продолжая мысль с libc: можно и прочий библиотечный по логике использования фукционал (ту же поддержку FAT, IP) выносить в ядро (сиречь в другие страницы ОЗУ), но для произвольного приложения все равно вводные не меняются.

b2m
04.03.2017, 15:29
Потому есть просьба к авторам эмуляторов EMU80 и B2M сделать там поддержку атрибута RVV в качестве коммутатора фонта.
RVV у меня жёстко зашит в коде для инверсии, а вот HLGT можно хоть сейчас использовать для коммутации фонтов. Собственно, он и используется в комбинации с GPA1,GPA2 для выбора одного из восьми фонтов при эмуляции Партнёра.

barsik
04.03.2017, 16:31
Для РК86 компиляторы ЯВУ с поддержкой много-банковости, т.е когда код программы раскидывается по всем банкам - пока не особо нужны. Здесь ещё даже не придумали, как ввести эти самые банки. И максимум ОЗУ, что у кого-то есть - это 64 кб. И только в эмуляторе B2M мы имеем до 4 мб. Ограничение потому, что 256 (номер сегмента однобитовый) умножить на размер окна в 16К даёт 4 мб.

Но пока я даже не имею схемы, т.е не проверил на практике, что РУ7-мые, а тем более SIMM 1 мб регенерируются в схеме РК86. При погашенном экране, т.е при выводе на МГ, регенерации РУ7-мых точно не будет, а будет сбой. Т.к при вводе/выводе байта, п/п-мма в ПЗУ сама делает перебор 128-ми адресов, обеспечивая регенерацию РУ3-их. А на перебор 512-ти адресов, что надо для регенерации РУ7-мых, п/п-мма не рассчитана. Так что всякий, кто ставит в РК РУ7-мые или SIMM должен одновременно демонтировать за ненадобностью адаптер магнитофона.

Но с непогашенным экраном при видео-выводе перебираются 2048 ячеек, что делает прозрачную регенерацию РУ7-мых. Естественно, придётся перенести адреса на мультиплексоре адресов так, чтобы по /RAS на ОЗУ выдавались адреса А0...А8, т.е самые высокочастотные при видео выводе. Т.к в строке 78 байт, то 512 адресов перебираются за время вывода 512 : 78= 7-ми строк. Т.к в строке 10 линий растра период регенерации составит 7*10*64 МКС = 4.48 МСЕК, что, увы, больше, чем 4 МСЕК, максимальный период регенерации РУ7-мых.

Таким образом, при установке РУ7 возможны проблемы. Лишь при использовании РУ7-мых наполовину, т.е на 128К регенерация будет с периодом 2.25 МСЕК, т.е в норме. Потому с старыми РУ7-ми связываться рисковано. Хотя это наименее трудоёмкий вариант.

А вот с SIMM 1 мб, боюсь, без труда ничего не выйдет. У них 11-ти битовый вектор регенерации. Хотя при видео-выводе перебирается как-раз 11 адресов (т.к экран более 2 кб), но увы, в слишком долгом периоде. Период перебора 11-ти адресов равен времени вывода 2048:78= 26-ти строк, т.е 26*10*64= 16.6 МСЕК.

Кто-нибудь знает максимальный период регенерации SIMM 1 мб?

В голову сразу приходит мысль регенерировать SIMM 1 мб программно, на прерываниях, как это делается в PC XT. Но тут РК86 не повезло. Прерывания истрачены на звук, а программы РК нагло занимают область Zero Page, где вектора RST, позволяющие иметь прерывания без ВН59. Но даже ВН59 не поможет. Для регенерации надо перебрать 11 адресов, т.е считать 2 кб. При максимально скоростном цикле с линейным участком из 128 команд LD A,(HL) и скорости в 1.3 МГЦ, это занимает (128*7+16)*16/1.3, т.е ~11 МСЕК. Т.о, имея SIMM с периодом регенерации 11 МСЕК, программа может лишь непрерывно регенерировать ОЗУ, на прогон программы времени не остаётся. А ОЗУ с периодом регенерации в 8 МСЕК вообще не удастся программно регенерировать.

Выходом может быть применение узла скоростной прозрачной регенерации. Идея такая. После каждого обращения к ОЗУ процессора КР580 (не ПДП), адреса A0...A10 на входах мультиплексоров переключаются на счётчик регенерации, и выдаётся импульс /RAS на ОЗУ. Т.к КР580 после обращения к памяти, как минимум 4 следующие маш.такта к ОЗУ "не лезет", то это нисколько не мешает. Расход деталей три КП11, две 561ИЕ10 и пара корпусов 1533 логики. Конечно ради 1 мб паять такую схему лень, а вот ради SIMM 64 мб, труд окупается.

Сначала попробую поставить SIMM 1 мб, используя наполовину. Тогда период регенерации будет 8.3 МСЕК. Надеюсь заработает. 512 кб всё-же прятнее, чем только 256 кб.


Для псевдографических игр и системных утилит, где графики мало, требования по скорости ниже, а математики будь здоров сколько, ЯВУ вполне себе инструмент

Думаю, что при реальном такте КР580 в 1.3 МГЦ серьёзный претендент на инструмент программиста это PL/M, дающий такой же эффективный код, как ассемблер. Кстати, Гарри Килдел, автор PL/M, утверждал, что для больших программ он даёт более эффективный код, чем программа написанная человеком на ассемблере. Но и СИ, думаю тоже для игр подойдёт. Лучше, конечно, иметь эффективный по объёму кода СИ и критичные СИ-процедуры переписывать на ассемблере.

Если бы был эффективный СИ-компилятор, позволяющий сделать игру в кодах КР580 с объёмом до 28 кб, т.е размером с ОЗУ пользователя, я был бы рад. Где взять хороший компилятор? Хотя я намного больше программировал на СИ, Паскаль мне нравится больше. Возможно можно часть кода писать на СИ или Паскале, а критичные функции на PL/M?

Для игр для РК86 имеющего ДОС можно использовать СИ. Средствами ДОС при старте игра может загрузить файл-оверлей в расширенное ОЗУ (любой конструкции). Тогда в основном ОЗУ размещаем программный код, а, например, в другой банке - графику уровней. Кстати, если спрайты берутся из ПЗУ фонта, то игра фактически состоит только из кода и графики для рисования пейзажей. Тогда в 28 кб даже BDS-C вполне сможет уместить код почти любой игры. Так что для текстовых машин СИ можно применить, если критичные С-процедуры переписать на ассемблере. И фактически никто ещё не писал программ для РК86 на ЯВУ, т.к в 80-е они были недоступны.


RVV у меня жёстко зашит в коде для инверсии, а вот HLGT можно хоть сейчас использовать для коммутации фонтов. Собственно, он и используется в комбинации с GPA1,GPA2 для выбора одного из восьми фонтов при эмуляции Партнёра

Спасибо за информацию. Значит в эмуляторе ПАРТНЁРА можно написать программу с спрайтами в ПЗУ фонта. Ещё бы знать, чем этот ПАРТНЁР отличается от нормального РК86. Не буду в ПАРТНЁРЕ разбираться, а думаю, что изменив в конфиг-файле ПАРТНЁРА адреса портов и имя файла ROM-BIOS, получу желаемый конфиг для РК86. А атрибут RVV, значит, жёстко зашит в код самого эмулятора и конфигом его для иных целей не задействовать.

tnt23
05.03.2017, 13:35
Кто-нибудь знает максимальный период регенерации SIMM 1 мб?


Определяется типом использованных микросхем DRAM на модуле.

Вообще же можно не изобретать велосипед, а почитать про технологию регенерации CAS-before-RAS (CBR), например, тут: https://www.pjrc.com/mp3/simm/simm.html

Vladimir_S
05.03.2017, 14:27
А в чем кайф ставить динамическую память в РАДИО-86РК? Это ведь супер хреново.

Vital72
05.03.2017, 15:33
А в чем кайф ставить динамическую память в РАДИО-86РК? Это ведь супер хреново.

А в чем кайф собирать и даже что-то делать на РАДИО-86РК? Это ведь супер хреново.

barsik
05.03.2017, 16:48
А в чем кайф ставить динамическую память в РК86? Это ведь супер хреново.

В чём же здесь "супер хреновость"? Наоборот, хреновость когда их нет. Тогда и возникают компьютеры типа ZX80 c ОЗУ в 1 кб (хотя тогда были доступны РУ5, они стояли в Apple уже в 1976). Как иначе получить мегабайты, что же мне ставить килограмм 62256-тых? Но более важный довод в том, что у меня есть куча SIMM от 386,486 и ПЕНТИУМ, которые лежат мёртвым грузом. У меня наберётся из 62256 и w24257 объём в 512 кб, но я замучаюсь их монтировать в таком количестве и просто жалко тратить 10-ти мегагерцовые ОЗУ на такт 1.77 МГЦ. К тому же 512 кб слишком мало. Однажды в начале 90-х я уже пытался поставить в РК 62256 вместо РУ5-тых. И ничего не получилось (не хватило ума). Поэтому у меня возникло предубеждение против статических ОЗУ на РК86.

В компьютерах с интегрированным видео-генератором, к которым относятся все самоделки, регенерация динамических ОЗУ происходит сама по себе, в ходе видео-вывода. Разве, если бы авторы РК применили вместо 2-х банок РУ3-их 64 штуки 541РУ2 было бы лучше? Сам я конечно намного больше люблю антикварные ОЗУ 2114 и 2102 ( (541РУ2 и 565РУ2) и даже сделал на них комп с текстовым адаптером, но все приличные компьютеры 80-х использовали именно динамические ОЗУ. Потому что соотношение ёмкость/цена у них на порядок лучше.




Кто-нибудь знает максимальный период регенерации SIMM 1 мб?
Определяется типом использованных микросхем DRAM на модуле.

Это ясно любому. Но я вообще-то просил дать число в миллисекундах.



Вообще же можно не изобретать велосипед, а почитать про технологию регенерации CAS-before-RAS

Спасибо за подсказку про CAS-before-RAS. Это конечно, существенно упрощает узел регенерации. Эта идея мне пригодится для изготовления периферийной платы памяти для ИРИШИ, а для РК86, обойдусь без специального узла регенерации, т.к сам РК86 это сделает.

Наконец, сам нашёл информацию о временах регенерации SIMM.


refresh times for DRAM have been improving: from 8 MS for 1M chips, 32 MS for 16M chips, to 64 MS for 256M chips. This improvement is achieved by developing transistors that leak significantly less.

Т.е память мне не изменила и у них действительно время регенерации 8 МСЕК. Кроме того, я обнаружил в своих рассуждениях в предыдущем посте ошибку. В РУ7-х вектор регенерации равен 9, а в ОЗУ 1 мб вектор регенерации равен не 11, а 10, т.к каждый лишний вывод даёт 2 адреса. Тогда 1024 ячейки перебираются при выводе 1024:78= 13 строк, что происходит за 13*10*64 МКС = 8.3 МСЕК. Так, что РК86 регенерирует целый мегабайт, причём всего за 8.3 МСЕК. Хотя 8.3 МСЕК больше, чем 8 МСЕК, но думаю запас есть и сработает на крайнем пределе. Если возникнут проблемы, то, или изменю ПЗУ F800, чтобы ВГ75 программировалась не на 10 линий растра в строке, а на 9, что даст период регенерации в 13*9*64 = 7.4 МСЕК, что намного меньше требуемых 8 МСЕК. Или заменю кварц на повышенный соответственно перекрутив частоту строк в видео мониторе.

Сейчас решаю, что применить: 16 мб SIMM от 486-той, 1 мб (или 256 кб) SIMM от 386-той или 256 мб SIMM от ПЕНТИУМ. Про SIMM от ПЕНТИУМ и думать не стоит, т.к там три сотни выводов. В одно-мегабайтовых удобно, что всего 30 контактов и к одной SIMM подпаяться можно, но для 4-х лучше ставить родной разъём.

В SIMM от 486-той 72 вывода, так что придётся распиливать одну из моих 486-тых плат, чтобы выпилить кусок из 4-х (или 2-х) разъёмов для втыкания туда SIMM на 72 вывода. Если поставлю два разъёма, то смогу поставить 2 штуки SIMM 16 мб и использовать их как 2 мб каждая. Т.к в РК86 при видеовыводе перебираются только 11 адресов, то (без схемы регенерации на принципе CAS-before-RAS) больше, чем 2 мб в каждом SIMM не получить. А 4 мегабайта полученные из двух SIMM на 72 вывода - это как раз то, что надо.

30-ти выводных SIMM по 1 мб у меня 4 штуки. Так что получаются те же 4 мб, но уже на 4-х SIMM. А для 4-х штук уже придётся ставить разъёмы, для чего придётся распилить мою любимую 386-тую. Скорее всего и буду применять 30-ти контактные SIMM от 386-той, т.к они почти то же самое, что и РУ7. А 72-х контактные SIMM слишком подозрительны (зачем столько контактов, если адресов лишь ненамного больше, чем у 30-ти контактной SIMM).

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


А в чем кайф собирать и даже что-то делать на РАДИО-86РК? Это ведь супер хреново.

Зачем такие подколки? Здесь каждый выбрал железку по вкусу. Зачем же смеяться над хобби других людей? И вообще, я считаю, что чем железка древнее и технически слабее, тем интереснее. Ну хорошо, допустим, кайф тех людей, что возятся с РК86 неправильный. Что Вы советуете им вместо этого? Получать более качественный кайф от водки и тяжёлых наркотиков?

Vital72
05.03.2017, 17:27
сарказм уже не понимаем?

alx32
05.03.2017, 21:32
У меня в Орионе стоят техасовские TMSкакието (с ходу не скажу), так вот, по даташиту они оказались 4х64 кБит четырёхслойные, то есть их можно регенерировать как обычные РУ5, подавая адрес только на А0...А7, игнориуя А8. А в режиме чтения/записи они ничем от 41256 не отличаются, то есть имеют организацию 1х256 кБит.

Насчёт РУ7 я тоже такую сказку где-то слышал, врать не буду...

Так что на некоторых симах возможно стоят похожие чипы, особенно на старых с малым объёмом...

Vladimir_S
06.03.2017, 00:34
Как иначе получить мегабайты,
Про 80 годы не спорю, но сейчас то?

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


И вообще, я считаю, что чем железка древнее и технически слабее, тем интереснее.
Полностью согласен.

barsik
06.03.2017, 14:56
А не могли бы Вы сделать игру чуть красивее, используя не изображения стандартных символов, а специально нарисованные символы. В текстовых ЭВМ фигурки изображаемые символами, по сути являются спрайтами. И если использовать фонт, в котором вместо символов прошиты стилизованные фигурки или элементы пейзажа, то будет красивее. Если Вы почитаете последние сообшения в теме http://zx-pk.ru/threads/27125-modulnyj-radio-86rk/page8.html, то Вы обнаружите там моё предложение впаять на место панельки для фонта РФ2 панельку на 28 ног, чтобы ставить туда большое ПЗУ типа 27256 (или 62256 с подпаянной батарейкой).

Конечно это следовало сделать 30 лет назад, чтобы дать РК86 шанс иметь приличные игры. Например, в текстовом ГДР-овском компьютере AC1 (1984) ввели второй фонт, чтобы использовать в играх. "Лучше поздно, чем никогда", давайте сделаем расширение фонта. Кроме того, для РК86 Alex_LG разработал несложную схему загрузки фонта, но её никто не станет делать, пока нет соответствующего ПО, использующего полноценную графику. Дайте этой доработке шанс.

Хотя для начала проще выкусить панельку на 24 ноги и впаять панельку на 28 ног. Я так уже множество раз делал на ОРИОНЕ, заменяя его ПЗУ РФ2 на 27256. Выводы 1,2 и 27,28 отгибаем в стороны, на выводы надеваем прокладку (от разобранных разъёмов СНП), это пластмассовая пластинка толщиной 0.5 мм с дырками с шагом 2.5 мм, что поднимает панельку над платой, отчего отогнутые в сторону выводы оказываются над платой. Я сам пока использую такой, более дешёвый вариант: на РФ2 напаивается панелька, уже в которую вставляется вторая РФ2, давая тем самым 4 фонта. В качестве чип селектов используется прямой и инверсный сигнал PA0 ППА D14. При этом требуется инвертор (он есть на плате).

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

Я очень рад, что для РК86 стали появляться новые игры. На Западе для рэтро компьютеров этим занялись давно и даже для ZX80 с ОЗУ в 1 кб выпустили до сотни игр, причём, что нагло, продают их за деньги, т.к есть эмуляторы для всех платформ смартфонов и число потребителей игр для ZX80 вновь стало большим. Если ввести фазы для спрайтов, то движения фигурок будут намного реалистичнее, даже при использовании спрайтов с размером в символ (особенно, если у Вас заменён счётчик ИЕ4 на ИЕ5, отчего фонт стал 8*8 вместо некрасивого 6*8), А используя спрайты 2*2, 2*3 или 3*3, игра вообще станет графической.

В эмуляторе B2M легко получить переключаемые 32 фонта и такой конфиг-файл я имею. Так что разработчик уже сейчас может отлаживать игру с графическими спрайтами, причём с объемом спрайтов до 8-ми фонтов. Не 16 фонтов из-за того, что бит RVV в этом эмуляторе занят на вариант инверсии (ж.Радиолюбитель 04.1992). Этот бит и должен переключать инверсию, но не так неудобно для программиста, как это сделано в АПОГЕЕ, а через фонт.

Однако, значительно легче и на порядок быстрее можно делать игры для РК86 используя ЯВУ. В частности BDS-C (или другой СИ для КР580, если такой будет найден) и на языке PL/M. PL/M даёт код эффективнее, чем ассемблер (по размеру кода и скорости прогона), но по нему трудно найти учебники на русском. А вот использованию СИ ничего не мешает. Я уже делал эксперименты в 1994 по написанию ПО для РК86 на СИ. Достаточно переписать RUM-time модуль, что находится в начале кода, а для игр и этого не надо. Причём, для игр остаётся простор творчества и для любителя ассемблера, т.к написав работающее ядро игры, затем надо все критические по времени прогона подпрограммы переписать на ассемблер.

Для РК86 ещё никто не писал игр на ЯВУ (естественно СИ и ПАСКАЛЬ из 1987 года, что входили в дистрибутивы клонов и находятся в ОЗУ во время прогона, отчего, ни для исходника, ни для объектного кода нет места, - это чушь).

Для управления фонтом, можно использовать 1 или 2 атрибута ВГ75 (остальные атрибуты для цвета, но не такого как в АПОГЕЕ), и порт А ППА D14 (т.к фонтов 32, одним битом уже не обойтись). Но первые 4 фонта должны быть стандартными. Фонт 0 - базовый РК86. Фонт 1 - даёт инверсию знакомест, рамки и инверсные окна с рамками. Фонты 2 и 3 - для текстообработки, где фонт 2 аналогичен базовому, но вместо псевдографики маленькие русские буквы. А фонт 3 то же самое, но полностью инверсный. Фонт 4 и 5 необходимо истратить на ASCII, большие и маленькие латинские и их инверсию, т.к в СИ из CP/M небходимы ASCII-символы 60...7F, а также для чтения английских док-файлов. Фонт 6 разумно отдать для псевдографики 192*100. Фонты 8...15 отдаём для цвета в текстовых программах, а все остальные фонты остаются для цветных игр.

Концепция следующая. Атрибут RVV, что и так во многих клонах задействован для инверсии, будет также делать инверсию. Но не напрямую, т.е управляя входом ЛП5, что приводит к инверсии сигнала с выхода ВГ75. Это не выгодно, из-за расхода в 2 доп.ИМС 155 серии, а главное оттого, что намного сложнее программирование (например, если забыть в строку вставить атрибут выключения RVV, то бордюр, что начинается в ОЗУ строки с 71 позиции будет инверсным и синхронизация по строкам сорвётся. При инверсии фонтом, она делается кодом символа и не надо вставлять в строку атрибуты, отчего позиции символов не сдвигаются и подпрограммы ПЗУ F800 по-прежнему работают правильно. Используется режим отображения атрибутов пробелом, но в отличие от цвета АПОГЕЯ, благодаря фонту инверсные и неинверсные символы могут стоять рядом (не разделённые пробелом).

Таким образом, пока (пока нет игр с большим числом спрайтов) для коммутации фонта достаточно всего 1-го атрибута RVV и 4-х битов порта А ППА D14. Эти 5 битов напрямую подаются на адреса A10...A14 ПЗУ 27256. Т.е только замена панельки и кучка проводов, вот и вся доработка превращающая РК86 в почти графический компьютер. Пока черно белый, но и цвет за счёт фонта делается так же просто (и намного удобнее для программиста, чем цвет в АПОГЕЕ).

Используя компилятор BDS-СИ можно делать новую игру за 3-4 дня, а если уже есть опыт и "движок" ранее реализованный (желательно на ассемблере) и 2 помошника (один рисующий графику, а второй придумывающий сценарий), то и быстрее. Для текстовой машины скоростей РК86 хватит. В РК-играх большой расход времени уходит на опрос клавиатуры медленной подрограммой F81B, так что даже, если скоростей будет мало, то опрос ускоряют прямым доступом в порт клавиатуры. Проблема нехватки ОЗУ в 32К легко решается путём грамотного применения проволоки и замены ОЗУ РУ3 на РУ5, тем более, что у большинчства пользователей и без того платы на РУ5, где вторая половина ОЗУ бездарно пропадает.

Т.к для РК86 существует куча клонов, что отличается только адресами портов и адресом начала экрана, я предлагаю ввести стандарт для совместимости всех программ РК-подобных. Начиная с офсета 3 надо разместить параметры, которые настраивает пользователь (вручную. или простейшим инсталлятором). Там д.быть: адрес экрана, адреса портов, реальный такт процесоора и доп.информация, по расширеному ОЗУ - объём и метод коммутации. Программа должна считывать и использовать эти данные. При программировании на СИ это не составит труда. Тем самым мы навсегда избавимся от проблем несовместимости, организованной неумными разработчиками клонов.

Поддержав, сначала простейшую доработку по расширению фонта, и получив десяток игр приемлемого качества, мы создадим предпосылки для использования схемы загрузки фонта, разработанной Alex_LG, а главное тогда у пользователей появится стимул сделать чуть более сложные доработки (второе ПЗУ фонта, чтобы получить цвет), турбировать РК86 до 3 МГЦ и расширить ОЗУ до 128К...4 мб. Тем самым мы превратим РК86 в "компьютер времён и народов", но главное, - получим приятную платформу для творчества.

В приложении картинки, что достигаются в базовом РК86 за счёт куска проволоки в 10 см (и допрошивки второго фонта в ПЗУ знакогенератора на РФ2). Это даёт всего 1 дополнительный фонт, который истрачен на инверсию знакомест и рамки (для цвета нужно ещё 8 фонтов в параллельном ПЗУ). Сравните расход деталей, труд и результат, с тем что достигается в АПОГЕЕ с его способом использования атрибутов и кучей деталей для цвета. Чтобы окна в РК86 стали цветными надо истратить лишь второе ПЗУ (для фонта цвета) и смонтировать R.G.B. видеовыход.

jerri
06.03.2017, 16:26
barsik, Васюки будут переименованы в Москву а Москва в Нью Васюки.
проблемы РК 86 как то недальновидность и ограниченность создателей это не решит.

barsik
06.03.2017, 18:35
Васюки будут переименованы в Москву, а Москва в Нью-Васюки.
Проблем РК86, вызванных недальновидностью и ограниченностью создателей, - это не решит

Проблемы, вызванные недальновидностью авторов РК86 (а точнее их желанием с'экономить один TTL-корпус), вполне решает замена ИД4 на 556РТ4, на что в публикации в 1986 прямо указано. Авторы РК ошиблись, но это типично. Они не одиноки в этом. Авторы Apple Macintosh, которые точно также для экономии одного лишнего дешифратора поделили адресное пространство 68000 в 16К пополам и отдали 8 мб для программ, а вторые 8 мб отдали портам и слотам. Из-за этого, когда ОЗУ перестало хватать (это случилось спустя 7 лет после выпуска в 1984) пришлось в 1992 переписывать ROM-BIOS и переделывать и ДОС и кучу программ. Где-то читал, что даже разработчики IBM PC считали, что 128 кб хватит "за глаза" на всё и хотели ограничить память в 128К, но кто-то им помешал.

Так что авторы РК86, привыкшие на МИКРО-80 к объёму памяти в 2 кб, поступили вполне "по божески" отдав пользователям аж 32 кб, что вполне резонно, если писать ПО только на ассемблере. Т.к про дисковод, CP/M размером в 9-10 кб и компиляторы ЯВУ, генерирующие гигантский объём кода, никто тогда и не знал. Вполне резонно считать, что для МГ версии РК 32-х килобайт вполне хватит. И они правы, разве есть программы на ассемблере размером более 28 кб, что доступны на РК86? Этих 32К хватает даже сейчас.

Есть только одна проблема, - некуда загружать ДОС. Т.к её надо загружать так, чтобы она могла грузить РК-программы размером до 28 кб. Эту проблему я решил в 1995 году, без потерь освободив от внешних устройств "окно" в области 8400...BFFF.

А проблема нехватки ОЗУ решается его расширением. Так что без разницы, есть у нас только сплошные 48К и прокачка в окне 32К памяти объёмом в 4 мб, или то же самое со сплошными 60К и окном коммутации тоже в 60К.

Таким образом, я не вижу существенных недостатков архитектуры. А после несложной доработки, для написания игр такая организация по работе с цветными спрайтами выгоднее, чем схема ZX-Spectrum. Здесь и раскраска знакомест лучше и движение спрайтов быстрее. РК86 с реальным тактом в 1.3 МГЦ, работая стеком, сделает панорамирование своего большого цветного экрана (в смысле на весь телевизор) быстрее, чем ZX-Spectrum на такте 3.5 МГЦ на своём мизерном экранчике. А тем более, если РК86 турбировать до 3.5 МГЦ. Гораздо более неприятно, чем В/У в центре адресного пространства то, что авторы не включили в схему РК цвет, что резко снизило его популярность.

Кстати о турбировании. Т.к в РК86 процессор не обязан быть синхронным с видео-частью, то если заменить КР580 на Z80 и применить китайский Z80 на 20 МГЦ, то никакой клон ZX-Spectrum никогда не догонит РК86.

Так что я очень рад, что авторы РК86 разместили порты посередине адресного пространства. Если всё идеально, железо совершенное и программ - море, тогда нет места для творчества. Именно поэтому РК86 идеально подходит для нас.

NEO SPECTRUMAN
07.03.2017, 01:13
Таким образом, я не вижу существенных недостатков архитектуры.
один и более чем существенный
отсутствие прерывание по кадровому синхроимпульсу
помножает возможности платформы на 0.01
и одновременно причисляет разработчиков таких поделок к...
...в прочем не важно

почти все советские компьютеростроители этим отличились...



Кстати о турбировании. Т.к в РК86 процессор не обязан быть синхронным с видео-частью, то если заменить КР580 на Z80 и применить китайский Z80 на 20 МГЦ, то никакой клон ZX-Spectrum никогда не догонит РК86.

интересно а что если к спектруму применить китайский Z80 на 20 МГЦ,
а то как то не хорошо сравнивать турбированый РК со стоковым спеком...

а если и менять то так же по принципу на новый и более прогрессивный
(в РК ж не предлагаете ставить 20 МГц-ный i8080)
ставить в спек сразу eZ80 на 20 Мгц
или тоже с учетом в 12 раз быстрей чем был
сразу на все 42 МГц



Т.к в РК86 процессор не обязан быть синхронным с видео-частью,
в смысле не обязан?
разве частота проца не напрямую занижена именно изза этого?

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


"Лучше поздно, чем никогда", давайте сделаем расширение фонта. Кроме того, для РК86 Alex_LG разработал несложную схему загрузки фонта, но её никто не станет делать, пока нет соответствующего ПО, использующего полноценную графику. Дайте этой доработке шанс.
то как задумали разработчики не расширенность и есть теплоламповасть

уже позжно что то изобретать
все это уже не труЪ а дендиконфа

и по моему сменный фонт уже давно изобретен...
хотя что именно для РК уже утверждать не буду...



Проблемы, вызванные недальновидностью авторов РК86
ну тогда интернетов не было...
как умели так и сделали...
не кто ж не заставлял делать так же...

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


РК86 с реальным тактом в 1.3 МГЦ, работая стеком, сделает панорамирование своего большого цветного экрана (в смысле на весь телевизор) быстрее, чем ZX-Spectrum на такте 3.5 МГЦ на своём мизерном экранчике
Ну у РК86 и экран меньше места занимает в 3 раза
возможности в этом плане как бы...

mvg
07.03.2017, 07:09
;))) поддержать в софте можно что угодно, однако...

1. надо определится что именно: доп фонты? загружаемые фонты? новая структура экрана?
2. надо точно определится как всем этим управлять (через порты, ячейки или еще как)
3. желательно мануал сделать, ну хотя бы минимальный.
4. нужна поддержка эмулятора. и, желательно не через шаманство с бубнами.
5. ну, и , наконец - нужна реальная железяка для финальных тестов ;))

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

Alex_LG
07.03.2017, 11:09
в смысле не обязан?
разве частота проца не напрямую занижена именно изза этого?

Нет. У меня, например, два кварца стоит на плате - на 24Мгц для работы ВГ75 в стандарте ВГА и стандартный на 16Мгц.



1. надо определится что именно: доп фонты? загружаемые фонты? новая структура экрана?
2. надо точно определится как всем этим управлять (через порты, ячейки или еще как)
3. желательно мануал сделать, ну хотя бы минимальный.
4. нужна поддержка эмулятора. и, желательно не через шаманство с бубнами.
5. ну, и , наконец - нужна реальная железяка для финальных тестов ;))


1. Здесь нужно голосование ПЗУ или ОЗУ для фонтов. Структуру экрана лучше не трогать.
2. Исходим из стандартной схемы РК, поэтому я предлагаю отдельный порт дабы не лезть в память, которая и так сегментирована для устройств В/В не лучшим способом. Цеплять на Д14 тоже не выход, т.к. она используется для РОМ-диска, программатора ну и т.д.
3. Всё зависит от пп 1 и 2. Что касается схемы с ОЗУ для фонтов, то все описано в теме "Помечтаем или вопрос о видеовыходе" начиная с 44 поста. Там, кстати VovanRK86 предложил на порт FF подключить


...а джампер РОМ/РАМ на порт заменить, он у меня уже есть 0FFh, первые три бита страничное ОЗУ, четвертый Турбо режим, пятый значит будет выбирать ЗГ! как раз свободен.

4. Всё зависит от пп 1 и 2.
5.Железяка для схемы с ОЗУ для фонтов есть. У barsik возможно есть рабочая схема для ПЗУ (я не все сообщения читал, поэтому мог упустить этот момент).

NEO SPECTRUMAN
07.03.2017, 11:26
1. Здесь нужно голосование ПЗУ или ОЗУ для фонтов.
Смысл еще ПЗУ для фонта
одно стандартное
и порт для включения вместо него ОЗУ

тут вопрос как организовать смену его содержания
в идеале он должен мапиться на память
чтоб его можно было быстренько заменить\обновить

еще нужно чтоб во время его обновления на экран не попадал всякий мусор
(дето я это ужо видел и по моему это было не для ЮТ88)
хотя пусть попадает че?

с цветом это будет

немного мешает попиксельному скроулингу ширина знакоместа в 6 пикселей конечно...

ФТОПКУН** ЭТО ВСЕ!!!!

взять просто впилить 2-й фонт с псевдографикой как у Апогея
ну и доработка до такого же цвета
http://zx-pk.ru/wiki/%D0%9F%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%B3%D1%80%D 0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0% B9_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_192x104_%D0%BA%D 0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0% B0_%D0%90%D0%BF%D0%BE%D0%B3%D0%B5%D0%B9_%D0%91%D0% 9A-01

получаемое разрешение довольно высокое :v2_yahoo:

+получаем большую с ним совместимость
можно писать и туда и туда одновременно

и не нужно изобретать никакой велосипед!!!

jerri
07.03.2017, 14:37
barsik,
ты мне лучше скажи что делает вот этот код



ld hl, VG75_ADDR+1
ld a, (hl)

wait1: ld a, (hl)
and 20h
jp z, wait1

ld hl, VG75_ADDR+1
ld (hl), 0
ld hl, VG75_ADDR
ld (hl), 77
ld (hl), 29
ld (hl), 77h
ld (hl), 053h
inc l
ld (hl), 27h

и есть ли какая нибудь нормальная документация на эту тему?
не в djvy не в png сделанных на телефон с сожранных молью инструкций
а нормальная как для спека народ делал.

barsik
07.03.2017, 14:51
не вижу существенных недостатков архитектуры Есть один и более чем существенный: отсутствие прерывание по КСИ, что помножает возможности платформы на 0.01 ... Почти все советские компьютеро-строители этим отличились.

Мы ещё не дошли до реализации. Идея только вчера родилась. Если понадобятся прерывания, - нет проблем сделать. Хотя игры РК86, СПЕЦИАЛИСТА, ОРИОНА и ЮТ-88 обходились без прерываний до сих пор. И ничего, обошлись без них, мерцаний нет. Установка прерываний обойдётся всего в 8 резисторов привязки (чтобы по INT на шину выдавалось RST 38H).



Т.к в РК86 процессор не обязан быть синхронным с видео-частью, то, если заменить КР580 на Z80 и применить китайский Z80 на 20 МГЦ, то никакой клон ZX-Spectrum никогда не догонит РК86. Как то не хорошо сравнивать турбированый РК с нетурбированным спеком... а если и сравнивать, то с новым ZX и более прогрессивным

В ZX такт можно менять только синхронно с тактом сдвигового видео-регистра. ОЗУ должно остаться на такте 3.5 МГЦ или 7 МГЦ. И не видел, чтобы кому-то удалось получить более 10 МГЦ в ZX. А установке Z80H в несинхронный комп ничего не мешает, лишь бы найти такое же быстрое ОЗУ.



Т.к в РК86 процессор не обязан быть синхронным с видео-частью В смысле не обязан? Разве частота проца в РК занижена не именно из-за этого?

Не обязан. На все 3 БИС в РК86 можно подавать любые такты. Более быстрый такт на ПДП - меньше торможение из-за ПДП. Более быстрый такт на ВГ75 - большее число точек по горизонтали в знакоместе или изменение видео стардарта. Более быстрый такт на КР580 - быстрее прогон программы.

У меня КР580 в РК86 без сбоев работал с кварцем 30 МГЦ, что даёт такт КР580 30:9= 3.33 МГЦ. Однако только при разгруженной шине, с снятым ППА D14, отключенным эл.диском на РУ7-мых и вытащенным из слота РК-КНГМД. Если всё снова подключить, то едва тянет 2 МГЦ. Это всё из-за отсутствия буферов у ОЗУ. Кстати, идею турбирования опубликовали в ж.РАДИО только 01.1991, но один мой знакомый сделал это ещё в 1988 (его достало, что шахматы долго думают).

Частота КР580 занижена из-за желания авторов РК с'экономить кварц, вероятно они также боялись, что древние РУ3-тьи больше не потянут.



Alex_LG разработал несложную схему загрузки фонта ... Дайте этой доработке шанс уже поздно что-то изобретать. Всё это уже не труЪ, а дендиконфа.

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

Что за "труЪ"? Что за издевательство над русским языком? Твердый знак не пишется после гласных. Какой-то полный дибил и враг народа придумал это слово, а идиоты из Интернета подхватили. У слова даже нет чёткого устоявшегося смысла. Во Франции и Финляндии есть судебное преследование за введение и популяризацию англиканизмов. Не надо уродовать русский язык, превращая его в уродский английский. А вот тут вообще написано, что это слэнг подонков: http://www.google.ru/url?q=http://argo.academic.ru/5315/%25D1%2582%25D1%2580%25D1%2583%25D1%258A&sa=U&ved=0ahUKEwjN4Ovo9cPSAhXBlCwKHR0uBFYQFghRMA0&usg=AFQjCNGMz6V4SNfxegQOiBcNUIhmtYPAmg.

Да, использование цветных спрайтов из фонта, - это похоже на идеологию Денди.

А то, что не "true original", кого волнует? Погони за повторением оригинала у меня никогда не было. У меня нет ни одного компа без доработок. Я не ольдфаг, необходимости в точности повторять чужое - нет. Если что-то легко улучшить, почему-же нет? Плата - моя (честно отдал за неё 25 рублей в 1987), потому, - что хочу то и паяю.


по моему СМЕННЫЙ фонт уже давно изобретен... хотя что именно для РК уже утверждать не буду

В 2012 изобретён не сменный, а ЗАГРУЖАЕМЫЙ фонт для РК86, автор Alex_LG. Для РК86 это хорошо, но только платы новодела РК86 maddev*xlat в 2015 проигнорировали эту разработку и выпустили плату оригинала РК, почти без доработок (доработка для устранения сбоев ОЗУ). Ну уж, хотя-бы управление вторым фонтом, битом GPA могли бы ввести, не так уж и трудно развести один проводок. А так и у них второй килобайт в ПЗУ РФ2 пропадает впустую. А также могли бы поставить две 155-х ИМС, чтобы задействовать RVV на инверсию (по ж.Радиолюбитель 04.1992).

А СМЕННЫЙ фонт изобретён для Денди. Там в картридже два ПЗУ - одно с программой, а второе ROM CHR (от 8-ми кб и более), содержит море символов, являющихся кусочками спрайтов. И там точно так же есть переключаемые фонты, только в фонте не 128 символов 8*8, а 256 (т.к там 8-ми битовый видеопроцессор, а не ВГ75).

Я предлагаю для игр РК86 абсолютно то же самое, только код с игрой не во втыкаемом в слот ПЗУ с программой, а в ОЗУ РК86. А фонт тоже не вставляется, а навсегда прошит в ПЗУ знакогенератора РК86 (в 27256 или в две РФ2) и не меняется.

Цвет в Денди устроен так же, как предлагал я - 2 бита на пиксель (но цветов не 4. 4 цвета только в пределах символа). Такой цвет выгоднее оттого, что в одном ПЗУ и графика и цвет, т.е экономия ПЗУ 27256. Минус такого цветв в том, что тогда теряется совместимость с монохромным вариантом, т.е если пользователь не спаял R.G.B. видеовыход, ограничившись лишь напайкой на РФ2 знакогенератора второго РФ2 вторым этажом, то он всё-равно без проблем использует игры со спрайтами, хотя и не видит цветов. Однако и эта беда исправляется, если в варианте несовместимого цвета поставить КП11 (ту что подменяет биты D1 на D0, D3 на D2, D5 на D4, D7 на D6 (чтобы освободить биты D1,D3,D5,D7 для цвета). Тогда ленивый пользователь без RGB-выхода увидит тот же спрайт пониженного разрешения, только в монохроме.

С другой стороны, если цвет CGA-шный, где 2 СОСЕДНИХ бита дают пиксель (4 пикселя в линии символа) или цвет тоже 4-х пиксельный, но когда в битах D0,D3,D5,D7 идёт графика, по битам D0,D2,D4,D6 передаётся цвет, причём сразу на всю четвёрку пикселей (2 цветов для нулей и 8 цветов для единиц из байта фонта), то такая доработка совместима с схемой Alex_LG для загрузки фонта. Кстати из этих двух вариантов, второй лучше, т.к 8 цветов лучше 4-х, схема проще и есть совместимость с монохромом (если поставить КП11 для подмены битов на входе ИР13).

Хотя при цвете из одного фонта в линии знакоместа 4 пикселя, но знакоместо остаётся такого же размера, как и ранее. Но увы, разрешение падает, что очень плохо для старых игр, где спрайты одно-символьные (что за красивого человечка можно нарисовать в матрице 4*8 ?). В таком варианте происходит "обмен" разрешения спрайта на возможность иметь цвет (а расход деталей - только КП11 и видеовыход R.G.B.).

При цвете из одного ПЗУ фонта неприятно то, что это удобно только для раскраски спрайтов, а не для оцвечивания текстообработки (т.к разрешение падает вдвое). Т.е цветным мы можем иметь только текст составленный буквами из двух знакомест (т.к цветное знакоместо имеет размер 4*8, а не не 8*8). Это не существенно, т.к в цвете хуже четкость телевизора, так что текстообработку лучше так и так выполнять в монохромном режиме. А для игр 32-х цветных символов в строке хватит.

Т.к всё делается только фонтом, то каждый может сделать себе как цвет из одного ПЗУ, что совместим с Alex_LG и цвет с 2-мя ПЗУ фонта (где второе ПЗУ специально для цвета). Для программ это не важно, т.к меняется не код игры, а код спрайтов, прошиваемый в ПЗУ. Несложно написать программу конверсии двух-фонтовых спрайтов (где в одном фонте графика, в другом цвет) в одно-фонтовые спрайты (хотя и с цвето-потерей при переводе 16-ти цветов в 8). Причём это можно иметь на одном РК86, если ввести ещё один КП11, переключающий R.G.B.I.

Если цвет полноценный (16+16) из отдельного фонта цвета, то схему Alex-LG надо дорабатывать, введя туда вторую ОЗУ (конечно не 537РУ10, а 62256 или w24257), т.к из 8 битов берётся только графика, а для цвета надо ещё 8 битов.

Я очень ленивый и не люблю возиться с железом, потому сторонник минимизации доработок, но минимизация важна, иначе просто не будет пользователей. Если владелец РК, имея электро-паяльник не может сделать доработку за 2 часа, то это перебор. Такая доработка вредна.

Для РК86 цвет из фонта ценен тем, что даёт цвет в спрайтах, без затрат ресурса процессора и труда программиста. Цвет "прикреплён" к спрайту. Программист даже не знает цветной спрайт или чёрно-белый, т.е поставил владелец РК второй фонт для хранения цвета спрайта и спаял R.G.B. видеовыход, или поленился это сделать, ограничившись лишь заменой ПЗУ знакогенератора.


Здесь нужно голосование ОЗУ или ПЗУ для фонтов

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

Кстати, демо сделать очень просто, даже на ассемблере, а тем более на BDS-СИ. Проблема только где взять спрайты. К сожалению в эмуляторе B2M, где можно запустить игры ОРИОНА нет такой полезной функции, как "съём спрайтов". Это режим когда с интервалом в 0.2 или 0.3 секунды делаются Scree-shot-ы экрана и записываются в файлы, причем в формате ОРИОНА, а не BMP. Держишь клавишу - идёт накопление спрайтов. Отпустил, - пошла их запись на винчестер. Если никто не даст мне спрайты, то придётся потратить кучу времени на написание редактора спрайтов.

Вопрос ОЗУ или ПЗУ не стоит. Пока только ПЗУ, потому что плат Alex_LG для загрузки фонта ни у кого нет. Но вставить другое ПЗУ для фонта любой, даже ленивый, владелец РК86 в состоянии. Он сможет оценить возможности такой идеологии и уж только затем примет решение, покупать или не покупать ему платку загрузчика фонта Alex_LG. Сделать такие платы можно только набрав нужное число заказчиков плат.

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


barsik, ты мне лучше скажи что делает вот этот код
Представленный фрагмент сокращает число линий растра в знакоместе с 10 до 8. При этом исчезают две пустые линии растра между строками и можно пользоваться псевдографикой. Я думаю, что представленный режим неправильный. Уменьшив число строк растра в знакоместе, надо синхронно увеличить число строк на обратный ход луча, иначе частота кадров изменится и синхронизация по кадрам сорвётся. Для ясности команды ВГ75 откомментировал.



LD HL, VG75+1
LD A, (HL)

WAIT: LD A, (HL) ; читаем STATUS
AND 20H ; маска на 'Interrupt request flag'
JP Z, WAIT ; ждем конца строки

LD HL, VG_75+1
LD (HL), 0 ; команда RESET
LD HL, VG75_ADDR
LD (HL), 77 ; 77= 4DH 0.1001101 77+1 знакомест
LD (HL), 29 ; 29= 1DH 00.011101 29+1 строк

LD (HL), 77H ; 0111.0111 7+1 линия подчеркивания
; 7+1 линий в знакоместе

LD (HL), 053H ; 0.1.01.0011 - режим со смещ. на 1 строку
; атрибуты не отображать
; курсор - мигающая линия подчеркивания
; 3 такта сдвига - длина обр хода стр.разв-ки

INC L ; адрес VG_75+1
LD (HL), 27H ; команда START DISPLAY



А есть ли какая-нибудь нормальная документация на эту тему?

Я чуть-чуть разбирался с ВГ75 30 лет назад и документации не имею, а вот b2m и PYK вынужденно в этом разобрались досконально и предположительно имеют полную документацию.

NEO SPECTRUMAN
07.03.2017, 16:53
У слова даже нет чёткого устоявшегося смысла.
есть
и альтернативы в великом и могучем ему нет
поэтому и прижилось

а ну еще есть похожее "расово верно"))))) но это на 8 символов больше


вот тут вообще написано, что это слэнг подонков
через А и Ф пожалуйста а то я обижусь :v2_tong2:


Я не ольдфаг, цели в точности повторять чужое - нет. Если что-то легко улучшить, почему-же нет? Плата - моя (честно отдал за неё 25 рублей в 1987), потому, - что хочу то и паяю.
А количество теплых и ламповых плат при этом уменьшается
А мну олдфаг



В 2012 изобретён не сменный, а ЗАГРУЖАЕМЫЙ фонт для РК86
его точно не было раньше?????
там во всяких журналах радио(возможно я путаю с ЮТ88)



Цвет в Денди
в смысле я имел ввиду славно известную конфу для zx-evo от tslabs



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

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

не думаю что можно будет физически продать больше 500 этих плат



за примером далеко идти не надо
таже денди конфа

много под неё игр наадаптировали\написали???

ну ладно не очень хорошее сравнение тк почти новая платформа и много переделывать


вот более похожее
ulaplus для спектрума
Радикально повышает качество картинки

при этом переделка уже готовых игр очень простая (вообще можно без вмешательства в код)
и выглядят они очень не плохо
вот мой любимый пример (простая разукрашка без вмешательства в код)
https://sites.google.com/site/ulaplus/_/rsrc/1258292921618/home/amc.png?height=149&width=200
поделка эта есть в железе
и сообщество спектрумистов побольше будет чем сообщество РК-шников

вот все что под нее накожено
http://www.worldofspectrum.org/infoseekadv.cgi?what=1&regexp=&yrorder=1&year=0&type=0&players=0&turns=0&memory=0&language=0&country=0&licence=0&feature=124&publi=0&release=0&format=0&scheme=0&scorder=1&score=0&have=1&also=1&sort=1&display=1&loadpics=0
все что наразукрашено
https://sites.google.com/site/ulaplus/home
(см список Palettes)


и вообще графический режим
НЕНУЖЕН!!!

https://youtu.be/t76kr2lKC2k

https://youtu.be/OQxmKlPsJG0 - и еще (2 видева не вставляются)
http://www.pouet.net/party.php?which=167&when=2016 - MOAR :v2_thumb:

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


barsik,
ты мне лучше скажи что делает вот этот код

Код:

ld hl, VG75_ADDR+1
ld a, (hl)

wait1: ld a, (hl)
and 20h
jp z, wait1

ld hl, VG75_ADDR+1
ld (hl), 0
ld hl, VG75_ADDR
ld (hl), 77
ld (hl), 29
ld (hl), 77h
ld (hl), 053h
inc l
ld (hl), 27h

и есть ли какая нибудь нормальная документация на эту тему?
не в djvy не в png сделанных на телефон с сожранных молью инструкций
а нормальная как для спека народ делал.


это синхронизация с лучом (в РК её можно проделать)
а потом перепрограммирование вг75

доков на эту тему крайне мало

http://www.emuverse.ru/wiki/Intel_8275/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D 0%B0%D1%86%D0%B8%D1%8F
http://www.emuverse.ru/downloads/datasheets/peripherals/display/8275/8275.pdf

тут нужен реальный вг75 и метод научного тыка

а такого потактового разбора как на спеке для наших недокомпьютеров нигде и нету
и главное ничего не зная про времянки все пытаются писать эмуляторы и зачем то засунуть оно в FPGA и получить кривой клон...



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



ld hl, VG75_ADDR+1
ld (hl), 0 ;сброс
ld hl, VG75_ADDR
ld (hl), 77 ;78 символов в строке
ld (hl), 29 ;30 строк
ld (hl), 77h ;ширина символа 8 пикселей высота линии подчеркивания 8 пикселей
ld (hl), 053h ;ширина строчного синхроимпульса 8 знакомест, Мигающий штрих под символом и еще что то
inc l
ld (hl), 27h ; начать отображение, 55 тактов между запросами ПДП

а там расшифровка уже и была))))))
сильно гигантские посты
пропустил

jerri
07.03.2017, 17:09
NEO SPECTRUMAN, чота там дофига всего что можно менять а принцип выбора изменения не описан.

например
B B Число циклов ПДП в течение одного сеанса
S S S Число тактов между запросами ПДП

что будет если я выкручу их на максимум?

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


тут нужен реальный вг75 и метод научного тыка

а такого потактового разбора как на спеке для наших недокомпьютеров нигде и нету
и главное ничего не зная про времянки все пытаются писать эмуляторы и зачем то засунуть оно в FPGA и получить кривой клон...


вот вот... а почему?
компы делали инженеры мудрые бородатые все по СНИПам да ГОСТам

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

NEO SPECTRUMAN
07.03.2017, 17:57
например
B B Число циклов ПДП в течение одного сеанса
S S S Число тактов между запросами ПДП

что будет если я выкручу их на максимум?

тут я уже не знаю
я рыл о самой работе вг75

а тут уже вроде речь идет о его взаимодействии с вт57

тут нужен b2m
и тема с обсуждением видео режимов на РК уже где то есть

помоему вот
http://zx-pk.ru/threads/18870-64kh64-simvlov-na-ekrane-i-grafika-192x60.html





вот вот... а почему?
компы делали инженеры мудрые бородатые все по СНИПам да ГОСТам

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

до

но при этом они так усердно понарасписовали каждый байт "монитора"
и за что он отвечает

напомню из которого как недавно оказалось даже символов псевдографики всех не выведешь

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


да возможности как бы колосальные
но из за предыдущего они тупо простаивают


чота там дофига всего что можно менять а принцип выбора изменения не описан.
главное чтоб в итоге частота кадров получалась 50Гц и чтоб это все ловил телик))))

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


вот вот... а почему?
мне вот тоже интересно...

возможно есть какая то дополнительная документация
не для простых смертных
и которую еще никто не посканил и не выложил
или которая потерялась во времени

а методом научного тыка
программно МОЖНО что нибудь и спалить

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


компы делали инженеры мудрые бородатые все по СНИПам да ГОСТам

да судя по некоторым пентагонам которые не дружат с палкодерами...

делали их...

..нет что бородатые это да!

barsik
07.03.2017, 18:18
Объясните пожалуйста мне тупому и некомпетентному, зачем надо изучать времянки ВГ75 программисту для РК86?

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

Для счёта времени, я предпочитаю не прерывание, а счётчик 561ИЕ10, чьи выходы заведены на вход порта B ППА D14, на вход счётчика подан КСИ 50 ГЦ, а вход R подключен к неиспользованному биту PC1 ППА клавиатуры. Так, что когда надо считать время, то выкинул импульс на PC1, обнулил счётчик и считывай из порта B ППА D14 сколько времени (в тиках по 20 МСЕК) прошло. Максимальное измерямое время - чуть более 4-х секунд. Это я использовал для частотомера на базе РК86. И для часов реального времени, без всякого 512ВИ1.

И для игр РК86 мне кажется такой таймер намного лучше, чем прерывания 50 ГЦ. Даже самый простейший таймер по типу БК010 и ОРИОНА, когда меандр 5 ГЦ заведён на МГ-вход. Это позволяет в производстве музыки выдержать правильный темп (а без этого намного сложнее её программировать).

Как сказано выше, вывод спрайтов, даже большИх, на РК86 не мигает. Остаётся только проблема с панорамированием, плавным сдвигом всего экрана. Пересылка экрана размером в 2 кб длится



.
LD B,32
LOO: rept 64
LD A,(HL) ; 7
LD (DE),A ; 7
INC HL ; 6
INC DE ; 6
endm

DEC B ; 4
JP NZ,LOO ; 17

Итого: (26*64+21)*32= 53920 машинных тактов


Что при такте 1.77 МГЦ было бы равно 53920:1.77= 30.4 МСЕК, но при реальном такте ~1.3 МГЦ равно ~41 МСЕК. За время кадрового бланка в 4 МСЕК это не переслать. Поэтому, просто тупо гасим экран, отчего скорость возрастает до 1.77 МГЦ и сдвигаем весь экран за 30 МСЕК, это менее двух кадров. Затем снова включаем экран. Глаз, в силу своей инерционности этого даже не заметит. А экран гасим просто для ускорения.

Так что изучать и документировать тиминги программистам для РК86 не требуется. 30 лет как-то обходились без этого. РК86 не хватало только графики, цвета и компилятора BDS-СИ или PL/M, а не прерываний.

NEO SPECTRUMAN
07.03.2017, 18:59
Я могу расписать партянки на 3 как предыдущие
что я об этом думаю...

но у меня уже нет желания

скажу в сокращенной форме так
для расширения возможностей (я много чего не могу сделать. так как не знаю как именно эта недокументированная хитрость поведет себя на реале)
для точной эмуляции (все тоже самое что в предыдущих скобачках)



4 МСЕК это не переслать
вот совершенно неправильный подход измерять все в мсек
он абсолютно бессмысленный и ничего не дает програмисту

нужно или в тактах проца
или в тактах кварца


надо только программистам для
если писать что то
что очень зависимо от времянок ту нужно всем

а тут ни прерывания по КСИ (ну хорошо что хоть по вг75 можно как то синхронизироваться(а вот на львов-е такого уже нету))
ни какой информации по времянкам и задержками


это менее двух кадров. Затем снова включаем экран. Глаз, в силу своей инерционности этого даже не заметит. А экран гасим просто для ускорения.
простите што??? што????
первое это будет жутко мерцать (никакая инерционность не спасет)
второе чтоб это не мерцало еще жутче
нужна точная синхронизация с КСИ
или будет полное безобразие

вот на gameboy dmg 01 и pokemon mini
это прокатит
и даже не заметите что оно как то мерцает


53920 машинных тактов
это слоупочизм
за столько тактов спек перекинет большую часть своего 6К экрана (не юзая ни одной команды из своего расширенного z80 набора)

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


30 лет как-то обходились без этого. РК86 не хватало только графики, цвета и компилятора BDS-СИ или PL/M, а не прерываний.
вот из за этого нормальных игр для РК можно пересчитать на пальцах одной руки
и писать на чем то кроме асма на такой платформе совершенно бессмысленно

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


прерывания 50 ГЦ. На РК86 они бесполезны
а давайте посмотрим
как все что написанное без привязки к прерываниям или какому нибудь таймеру
при установке z80 на 20МГц
начнет
ВНЕЗАПНО просто летать... :рукалицо:


а счётчик 561ИЕ10
но его изначально не завели на...
и теперь весь написанный софт жестко привязан к частоте проца и к тем самым времянкам

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

пойду проветрюсь
а то я не могу остановиться...

jerri
07.03.2017, 19:18
Объясните пожалуйста мне тупому и некомпетентному, зачем надо изучать времянки ВГ75 программисту для РК86?

времянки чего?
чтобы писать быстрые и красивые программы надо знать как работает железо тем более оно слабовато
большинство программ на рк86 не используют имеющихся возможностей железа



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


как так не мерцает?
в роликах на ютубе очень даже мерцает и какбы слистывается
уж не знаю с чем это связано

На то насколько на спектруме хорошо знают и умеют использовать железо
указывает существование Nirvana+ (https://www.worldofspectrum.org/forums/discussion/51209/full-screen-32-columns-bicolor-engine-nirvana/p1)



Для счёта времени, я предпочитаю не прерывание, а счётчик 561ИЕ10, чьи выходы заведены на вход порта B ППА D14, на вход счётчика подан КСИ 50 ГЦ, а вход R подключен к неиспользованному биту PC1 ППА клавиатуры. Так, что когда надо считать время, то выкинул импульс на PC1, обнулил счётчик и считывай из порта B ППА D14 сколько времени (в тиках по 20 МСЕК) прошло. Максимум чуть более 4-х секунд. Это я использовал для частотомера на базе РК86. И для часов реального времени, без всякого 512ВИ1.

И для игр РК86 это будет намного лучше, чем прерывания 50 ГЦ. На РК86 они бесполезны для тех целей о которых Вы думаете. Считайте сами. ПДП стопорит КР580 на 78/1.77= 44 МКСЕК из каждых 64 МСЕК, т.е 2/3 строчного периода КР580 "в захвате шины" и бесполезно висит. Если мы еще и прерываниями будем отнимать из оставшихся процессору 20-ти МКСЕК в строке время на прерывание, то что останется программе?

Как сказано выше, вывод спрайтов, даже больших, на РК86 не мигает. Остаётся только проблема с панорамированием, плавным сдвигом всего экрана. Пересылка экрана размером в 2 кб длится



.
LD B,32
LOO: rept 64
LD A,(HL) ; 7
LD (DE),A ; 7
INC HL ; 6
INC DE ; 6
endm

DEC B ; 4
JP NZ,LOO ; 17

Итого: (26*64+21)*32= 53920 машинных тактов



таки да

на спеке полноэкранный спрайт за 70000 машинных тактов двигают
а здесь 53920 это сколько?
1 фрейм или больше?




Что при такте 1.77 МГЦ было бы равно 53920:1.77= 30.4 МСЕК, но при реальном такте ~1.3 МГЦ равно ~41 МСЕК. За время кадрового бланка в 4 МСЕК это не переслать. Поэтому, просто тупо гасим экран, получаем скорость в 1.77 МГЦ и сдвигаем весь экран за 30 МСЕК, это менее двух кадров. Затем снова включаем экран. Глаз, в силу своей инерционности этого даже не заметит. А экран гасим просто для ускорения.

Так что изучать и документировать тиминги программистам для РК86 не требуется. 30 лет как-то обходились без этого. РК86 не хватало только графики, цвета и компилятора BDS-СИ или PL/M, а не прерываний.

и сколько на РК86 написано интересных игр использующих более менее крупную спрайтовую(из тайлов но больше чем 1х1) графику, интересный сюжет, тот же полноэкранный скролл чтоли.
то чего собственно не написать не зная железа

на спеке есть серия игр от Don Pristley с красивыми цветными очень крупными спрайтами набраными из очень простых тайлов 8х8.
там Throw Trap Door, Benny Hill, Popeye, не вижу ничего подобного пусть упрощенного под РК. это невозможно? или не умели?

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

кстати тут вот писали что область экрана как то программно можно двигать
но так и не написали как? и куда

barsik
07.03.2017, 19:20
Простите что? Что?
Первое, это будет жутко мерцать (никакая инерционность глаза не спасет). Второе, чтоб это не мерцало ещё жутче, нужна точная синхронизация с КСИ или будет полное безобразие

Два кадра из 50-ти это тоже самое, что 1 кадр из 25-ти. Когда Вас зомбируют в телевизоре, пуская 25-тым кадром рекламу (а, возможно, и ещё какую-нибудь гадость), разве Вы это замечаете? Инерционность глаза срабатывает выше 10-12 Герц. В кинематографе было 16 Герц, до середины 20-х годов. Как же вы заметите мигание на 25 Герц? К тому же погасание происходит перед ПОЛНОЙ сменой картинки, т.е гашение идёт на пользу, т.к происходит как бы замедленное нарастание яркости новой картинки.

Зачем синхронизация с КСИ? Я не понимаю?

Но в отличие от ZX-Spectrum, IBM PC (в режиме экрана MDA), РК86 и ОРИОН могут бороться с мерцаниями, т.к они имеют не один экран. На ОРИОНЕ есть игры с большими спрайтами и панорамированием, но которые совершенно не мерцают. Изменение готовится на неотображаемом экране, а затем за одну наносекунду текущий экран переключается (причём, нисколько не синхронизируясь с КСИ). Что эквивалентно выводу спрайта за 1 наносекунду. ZX-Spectrum не повторит это программно, даже имея такт Z80 в 50 МГЦ.

jerri
07.03.2017, 19:43
и кстати вот еще

https://www.youtube.com/watch?v=zVmVq4lnojk

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


Два кадра из 50 это тоже самое, что 1 кадр из 25. Когда Вас зомбируют в телевизре, пуская 25-тым кадром рекламу (а, возможно, и ещё какую-нибудь гадость), разве Вы это замечаете. Инерционность глаза срабатывает выше 10-12 Герц. В кинематографе было 16 Герц, до середины 20-х годов. Как же вы заметите мигание на 25 Герц.

Зачем синхронизация с КСИ? Я не понимаю?


вот поэтому слушай опытных людей

прерывания нужны как точка отсчета.
прерывания всегда приходят в одно и тоже время

ты можешь их использовать, можешь не использовать, но без них ты будешь плавать как БК0010



Но в отличие от ZX-Spectrum, IBM PC (в режиме экрана MDA), РК86 и ОРИОН могут бороться с мерцаниями, т.к они имеют не один экран. На ОРИОНЕ есть игры с большими спрайтами, но которые совершенно не мигают. Изменение готовится на неотображаемом экране, а затем за одну наносекунду текущий экран переключается (причём, нисколько не синхронизируясь с КСИ). Что эквивалентно выводу спрайта за 1 наносекунду. ZX-Spectrum не повторит это программно, даже имея такт Z80 в 50 МГЦ.

на спектруме 128 тоже есть второй экран
а на +2 его даже можно нормально использовать

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

если хочешь увидеть проблему

затурбируй свой РК86 и попробуй поиграть в свои любимые игры

или проще запусти старые ДОС игры с ПЦ (tankwars, chopperduel) на более мощном железе

HardWareMan
07.03.2017, 21:05
Два кадра из 50 это тоже самое, что 1 кадр из 25. Когда Вас зомбируют в телевизре, пуская 25-тым кадром рекламу (а, возможно, и ещё какую-нибудь гадость), разве Вы это замечаете? Инерционность глаза срабатывает выше 10-12 Герц. В кинематографе было 16 Герц, до середины 20-х годов. Как же вы заметите мигание на 25 Герц.
Т.н. 25й кадр (https://ru.wikipedia.org/wiki/25-%D0%B9_%D0%BA%D0%B0%D0%B4%D1%80) миф. И верят в него только постоянные зрители ХренТВ. Я четко вижу мерцание штатного телевизора @50Гц, а использование 100Гц ЭЛТ телевизора (а позднее и монитора в до LCD эпоху) лишь обострило это чувство ("сушилку для глаз" стал выделять даже с большого расстояния, когда она попадала в поле зрения). Замечу, что мерцание бытового ЭЛТ телика заметно ниже мерцания ЭЛТ монитора на той же частоте. Потому как инерция люминофора телевизора рассчитана только на штатные 50Гц, в то время как для монитора с более быстрыми развертками такая "тормознутось" привела бы к "смазыванию" динамично изменяющихся картинок, как у совсем старых LCD на морозе. Алсо, любой среднестатистический человек 100% различает мерцание боковым зрением.

NEO SPECTRUMAN
08.03.2017, 00:28
кстати тут вот писали что область экрана как то программно можно двигать
но так и не написали как? и куда
контролер ПДП пере настраивается
у РК из коробки вертикальная скролл:v2_thumb:
(прикинь да. но куча софта которые дико тормозно еле двигают экран медленнее чем zxbasic-е через какието кривые подпрограмы ПЗУ, про сечение с лучом вообще молчу)

и так же вроде есть принудительный конец строки для экономии памяти

с горизонтальным чуть сложнее (но по моему как то намудрив это тоже можно)
дето тут было демка марио для апогея чтоли(в упор не могу ее нагуглить счас)
там по моему какая то хитрость при выводе использовалась чтоб не перерисовывать весь экран




Два кадра из 50-ти это тоже самое, что 1 кадр из 25-ти. Когда Вас зомбируют в телевизре, пуская 25-тым кадром рекламу (а, возможно, и ещё какую-нибудь гадость), разве Вы это замечаете?
1. уже везде 100 раз всплыло что это бред сивой кобылы
2. мну пускал одиночные кадры при 50Гц их видно только так
а если это будет один при 25 Гц
3. мну вроде бы не одну собаку съел на всяких извращенных гигаскринах, триколорах и еще больше колорах и прочей моргающей гадости

так что мну вынужден принять позицию что

Барсик тролль уровня владтру, такой бред и так уверенно, это уметь надо.

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


Людям которые мигают экраном что бы обновить картинку луч вообще не страшен.
да в принципе и не велика проблема

на ПЦ это повсеместно
правда в 3D играх это уже выглядит как ахтунх

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


Т.н. 25й кадр миф.
с ходу прочитал 256 кадр))))
(до чего доводит...))))

поржал

В 1990-е годы — с опозданием почти на 40 лет — усилиями «жёлтой прессы» в России возрастает интерес к 25-му кадру. В газетах появляются статьи о «зомбировании населения», реклама видеокассет для изучения английского языка, лечения различных заболеваний (например, алкоголизма (https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%BA%D0%BE%D0%B3%D0%BE%D0%BB%D0%B8%D 0%B7%D0%BC)) с помощью 25-го кадра. Газетные статьи перепечатывались столько раз, что мало у кого возникали сомнения в их истинности.[1] (https://ru.wikipedia.org/wiki/25-%D0%B9_%D0%BA%D0%B0%D0%B4%D1%80#cite_note-rep-1)[нет в источнике (https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D 1%8F:%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0 %B5%D0%BC%D0%BE%D1%81%D1%82%D1%8C)] Более того, были даже приняты соответствующие законы.
русские и тут отличились

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


Алсо, любой среднестатистический человек 100% различает мерцание боковым зрением.
видел эти ваши новомодные проэкторы

там чтоб не бросались RGB субпиксели в глаза
сделали черно белую матрицу
и смену цвета подсветки синхронно со сменой изображений одного канала
(я бы так не делал все равно пусть уж лучше субпиксели и размыть их фокусировкой)

так вот этот триколор сразу не видно
цвет вроде бы как стабильный

но стоит легонько крутнуть головой
так стробоскопический эффект сразу дает о себе знать
куча разноцветных rgb кадров в ряд
такое весьма странное ощущение

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


и кстати вот еще
давно хочу ее скачать...
она уже появилась в свободном доступе?? (давно искал еще)

неплохо да? простенький цвет повышает возможности текстового режима
при ЧБ фиг что отличишь при таком

Alex_LG
08.03.2017, 00:30
Сообщение от barsik
В 2012 изобретён не сменный, а ЗАГРУЖАЕМЫЙ фонт для РК86
его точно не было раньше?????
там во всяких журналах радио(возможно я путаю с ЮТ88)

Недавно, пересматривая старые журналы, наткнулся в журнале Радиолюбитель №9/1994 на статью "Загружаемый знакогенератор для ПК "Микроша"". Принцип похож, но там дополнительный знакогенератор мапят в основную память. Возможно про эту статью Вы вспоминали, других, на эту тему, я не видел.

NEO SPECTRUMAN
08.03.2017, 00:47
О это именно то что я хотел!!
яж помню что оно было


но там дополнительный знакогенератор мапят в основную память
так это дает много преимуществ
таких как имитация графического экрана любого строения
смотрим как сделано Hard Drivin' на геймбое

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


Если Вы утверждаете, что кто-то написал бред
вот смотрим как выглядит такое низкочастотное мигание без синхронизации с КСИ
https://youtu.be/64AE0CvXXNU
нет на спеке оно хорошо синхронизировано на большей частоте и не так заметно
а вот на ютубе совсем другое дело...

вот такое и будет
не заметное для инерционого глаза

тут даже мифическое "послесвечение люминофоров" не спасает
https://youtu.be/r8A_i5wHSm0

barsik
08.03.2017, 00:54
Людям, которые мигают экраном чтобы обновить картинку, луч вообще не страшен. Барсик - тролль уровня владтру. Такой бред и так уверенно, это уметь надо.

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

Оскорбления нарушают правила форума. Тем более, когда они неспровоцированы. Хорошие люди, когда видят ошибку в чужом сообщении, вежливо объясняют это, доказывая фактами.

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

Сообщений в темах от vladtru, не читал, т.к недавно на сайте, но его статью о 8-ми битных компьютерах 80-тых читал. Потому считаю сравнение меня с vladtru комплиментом. Спасибо.

Ответные реплики на моё сообщение #34 действительно несколько увели эту тему от темы программирования игр для РК86.

Прошу модераторов перенести из этой темы все посты начиная с #34 в конец темы "Модульный РАДИО-86РК" в разделе "РАДИО-86РК" или в новую тему с именем "Обсуждение доработок РАДИО-86РК". Прошу удалить этот пост и пост #52 и забанить его автора на неделю. Если хамство не наказывать оно расплодится.

NEO SPECTRUMAN
08.03.2017, 00:56
то докажите это
см пред конец пред моего поста

Lethargeek
08.03.2017, 08:52
Что за "труЪ"? Что за издевательство над русским языком? Твердый знак не пишется после гласных. Какой-то полный дибил и враг народа придумал это слово, а идиоты из Интернета подхватили. У слова даже нет чёткого устоявшегося смысла. Во Франции и Финляндии есть судебное преследование за введение и популяризацию англиканизмов. Не надо уродовать русский язык, превращая его в уродский английский. А вот тут вообще написано, что это слэнг подонков: http://www.google.ru/url?q=http://ar...iBcNUIhmtYPAmg.

Да, использование цветных спрайтов из фонта, - это похоже на идеологию Денди.
Что еще за "фонт"? Что это за гнусный англиканизм? Зачем так издеваться над русским языком, когда есть прекрасный германизм "шрифт"? :v2_laugh:


Два кадра из 50-ти это тоже самое, что 1 кадр из 25-ти. Когда Вас зомбируют в телевизоре, пуская 25-тым кадром рекламу (а, возможно, и ещё какую-нибудь гадость), разве Вы это замечаете? Инерционность глаза срабатывает выше 10-12 Герц. В кинематографе было 16 Герц, до середины 20-х годов. Как же вы заметите мигание на 25 Герц?
Хватит спамить ерундой про кинематограф! :v2_dizzy_stop: Если для создания иллюзии движения достаточно около 20 кадров, это совершенно не означает, что качество картинки будет хорошим и глаз не замечает её мерцаний. И поэтому даже в древних кинопроекторах с частотой 16 кадров в секунду обтюратор перекрывал световой поток в три раза чаще именно для повышения частоты мерцания, чтобы субъективно выровнять яркость. А в современной киноаппаратуре flicker rate может доходить и до 72гц! Вопрос закрыт.

HardWareMan
08.03.2017, 09:22
тут даже мифическое "послесвечение люминофоров" не спасает
Почему это мифическое? Вот не самый старый телек:

https://www.youtube.com/watch?v=lRidfW_l4vs

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

А вот уже самый последний телик (https://www.youtube.com/watch?v=2nQ_gEJ6B4A) (а быть может даже уже и моник, судя по качеству послесвечения). А вот сняли бы телик прошлого тысячелетия, то след оставался бы как минимум на половину экрана.

NEO SPECTRUMAN
08.03.2017, 21:03
Почему это мифическое? Вот не самый старый телек:
в смысле для гигаскрина от него 0 толку

хотя видимо быстрый спад только при большой яркости

если яркость выкрутить практически в 0
инерционность экрана становиться достаточно заметной
(хотя возможно это тоже инерционность глаз)



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

а вот сразу после прохождения луча
послесвечение достаточно высокое
но спадает оно достаточно быстро
и только где то районе 0 оно уже держится по несколько секунд

вот более интересное видео
https://youtu.be/8sThyWQC4RY
как раз видно на сколько слабое послесвечение
и то как с повышением частоты съемки падает яркость


Господа и товарищи.
тема "обсуждения так и не раскрытых больших возможностей РК" тоже интересна
есть возможность?
разделите тему на две

NEO SPECTRUMAN
08.03.2017, 22:37
дето тут было демка марио для апогея чтоли(в упор не могу ее нагуглить счас)
вот нашел
https://yadi.sk/i/xas52DrS3FJGzj

по моему выкладывалось только видео

видимо автор забил на это дело...
и все по удалял...

barsik
09.03.2017, 15:16
Сегодня придумал более лучшую идею организации цвета в РК86 и режим 80 символов в строке. Не за счёт фонта, а за счёт модернизации видеовыхода РК86.

80 выдаваемых из ВГ75 символов в строке позволяют сделать компьютер с двумя режимами: 40 цветных символов в строке, плюс 80 символов в моно режиме. Так и надо было сделать авторам в 1986. Тогда в цвете чётные байты - это отображаемые символы, а 7 битов из нечётных байтов - цвет (3 бита цвет фона и 4 бита цвет символа). Сокращаем частоту сдвига ИР13 вдвое и запрещаем строб записи в него в нечетные символы. С режимами монохром 80 символов в строке и цветным с 40 символами в строке РК стал бы компьютером времён и народов.

Однако не поздно эту идею использовать и сейчас. Правда, чтобы получить 40 символов в строке, надо изменить кварц до 20 МГЦ и изменить схемотехнику видео выхода. Надо ввести аппаратное, а не программное формирование бордюра и изменить режим ВГ75 на вывод 80-ти видимых символов. Всё это сделать очень просто.

Т.е схему включения ВГ75 надо изменить так, чтобы как-то иначе формировать КСИ, ССИ и бордёр делать не программно, а аппаратно. Тем самым мы избавимся от программного формирования бордюра за счёт заполнения пробелом или нулём невидимой части экранного буфера экрана, отчего впустую теряется, (78-64)*25 + 5*78 = 820 байтов. Давно пора избавиться от "программного бордюра", что придумали авторы РК86.

Чтобы на реальном РК86 ввести 3 режима: старый 64-моно, 80-моно и режим 40-color, придётся ставить второй задающий генератор и при переключениях режимов не только коммутировать такт ВГ75, но и перепрограммировать её режим.

Однако и без изменения режима ВГ75, установки 2-го кварца и изменения схемы синхронизации, можно ввести цвет, используя эту идею. Однако это даст только 64/2= 32 символа в строке. Символы при их числе 32 в строке и высоте знакоместа в 8 станут большими, но плющенными. Поэтому число линий растра в строке надо увеличить с 10 до 12 и все они должны входить в знакоместо размером 8 на 12 (т.е больше никаких пустых линий растра между строками). Тогда всего будет 21 строка, а формат экрана 32*21 и все символы цветные, без любых ограничений на число цветов в строке. Заметим, что такой фонт будет красивым, как в VGA. А в старом режиме (64 симв/стр) не будет 2-х линий растра между строками.

Чтобы погасить цвет в байтах соответствующих невидимым местам экрана (на программном бордюре), в экранном буфере должны стоять нули. Это необходимо, чтобы не нарушалась синхронизация. Байт 0 в экранном буфере должен не только гасить графику знакоместа, но и цвет. Т.е как чётные, так и нечётные байты должны быть нулями. Это значит, что цвет 0 должен быть чёрным.

Во что это выливается аппаратно? Понадобится 7-ми разрядный регистр цвета (ИР23 или ИР27), ещё один регистр ИР23 для задержки байта графики на такт. В ИР13 байт, перекодированный ПЗУ фонта, переписывается не из ВГ75, а из регистра с задержкой, чтобы подождать появления байта цвета. Также понадобится выходной формирователь R.G.B. на КП11, который в зависимости от бита 0 или 1 на видеовыходе канала графики будет выдавать то RGB-код символа, то RGB-код фона.

Число цветов фона - 8 и число цветов символа тоже 8. А седьмой бит разумно потратить не на цвет, а на фонт, т.к 127 символов и спрайтов мало. Тогда, если бит D6 единица, то вместо основного фонта включается альтернативный (не навсегда, а только на момент когда байт из ПЗУ фонта переписывается в ИР13). Т.е вид символа задаётся не только его 7-ми битовым кодом, но и одним битом из соседнего байта цвета. Таким образом в спрайтовых играх, также как и в Денди будет 256 символов без специального переключения фонта атрибутом ВГ75. Собственно, атрибуты ВГ75 теперь не нужны для цвета, но нужны для переключения фонтов. Цвет теперь не из фонта, а из экранного буфера, также как и в других компьютерах.

Таким образом расход деталей - всего 3 регистра и ещё, предположительно, пара корпусов 1533, чтобы сформировать сигнал записи в ИР13 и коммутировать его при изменении режима вывода 32/64 символа в строке (т.е режимов цвет/монохром). Потребуется перезашивка ПЗУ фонта (теперь на фонт в 127 символов уходят все 2 кб из РФ2). Чтобы получить фонт 8*10 и 8*12 требуется бросить 1 провод от ВГ75 и перезашить ПЗУ РФ2. Что собственно надо было сделать ещё в 1987 году, но никто не догадался из-за того, что авторы РК для фонта применили экзотическую ПЗУ РФ1, которую уже тогда было не достать.

Естественно такая организация цвета ничуть не меняет концепции использования фонта для игр со спрайтами. В режиме 64 симв/стр всё как и раньше. А в режиме 32 симв/стр спрайты становятся крупнее, что только лучше, и могут быть цветными.

Совместимости с загрузчиком фонтов от Alex_LG, это не вредит. Такой цвет с технической точки зрения красивее, но разрешение у цвета из фонта намного выше, как по вертикали так и по горизонтали. Вышеописанный цвет задаётся на всё знакоместо, а цвет из фонта задаёт свой цвет на каждую линию растра в знакоместе.

Еще более просто реализовать режим 32-mono. Для чего достаточно только изменить сигналы у ИР13.

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

Авторы РК86 использовали формирование бордюра программным путём для того, чтобы выиграть всего 1 корпус 155-той серии. Для этого они, гашение экрана во время обратного хода строчной и кадровой развёрток, формируют программным путём, заполняя области экранного ОЗУ попадающие в бордюр, кодом 0 или пробел. А сигнал VSP, что даёт гашение экрана во время обратного хода строчной и кадровой развёрток, использовали в качестве ССИ + КСИ, что избавило их от необходимости формировать ССИ и КСИ аппаратно.

Чтобы получить 80 символов в строке надо, во-первых, отвести нормальные времена для обратного хода строчной развертки (12...16 МКСЕК) и кадровой развёртки (не менее 3.6 МСЕК), а КСИ и ССИ формировать аппаратно. Такт на входе ВГ75 надо поднять с 16 до 20 МГЦ (а при фонте 8*8 - с 20 до 25 МГЦ).

Сигналы HRTC и VRTC это сигналы гашения по строкам и кадрам, а сигнал VSP это их сумма. Поэтому, чтобы получить КСИ и ССИ из HRTC и VRTC достаточно поставить две АГ3, что даёт 4 одновибратора. Первый одновибратор даёт задержку, чтобы ССИ и КСИ были по центру кадрового или строчного бланка, а второй одновибратор и даёт собственно сам кадровый или строчный синхро импульс.

Лучше один одновибратор с'экономить, если в качестве КСИ использовать VRTС, формируя бордёр по вертикали программно, также как это в базовом РК86. Нам важно только получить 80 символов, для чего достаточно аппаратно формировать только ССИ.

Таким образом, за полчаса труда на монтаж одной АГ3 и двух диодов (объединяющих КСИ и ССИ), мы получаем режим 80 символов в строке. Причём и совместимость с стандартным режимом ВГ75, т.е 64*25 для корректных программ сохраняется. Для этого ВГ75 программируется не на 80, а на 78 символов в строке, только иное число периодов вывода знакомест на обратный ход строчной развёртки.

Естественно, программы, которые перепрограммируют режим ВГ75 работать не будут (они ведь рассчитывают на такт сдвига 8 МГЦ, а не 10 МГЦ). Чтобы такие игры заработали надо изменить пару байтов в процедуре программирования ВГ75. Естественно, при этом видны все 78 символов, т.е все надписи, что игры РК пишут на бордюре будут видны, а сам экран 64*25 сплющится с боков.

Если же не хочется переделывать графические игры (что кстати, просто и отнимет ~10 минут на переделку одной игры), то придётся ставить два генератора (16 и 20 МГЦ) и коммутатор, чтобы их переключать, что также можно спаять за час труда.

Vital72
09.03.2017, 15:29
80 символов в строке -- это уже будет не РК-шка.
хотите 80 символов -- давайте создавать новый компьютер, который не будет ограничен РК-шными причудами и такой комп я уже начинаю создавать

barsik
09.03.2017, 16:20
80 символов в строке -- это уже будет не РК-шка.
хотите 80 символов -- давайте создавать новый компьютер, который не будет ограничен РК-шными причудами

Вы шутите? Сделать целиком новый компьютер - это очень много работы. Гораздо проще сделать в РК86 новые режимы. Например режим монохром-80, как указано выше, это расход в один дешёвый TTL-корпус и работа паяльником, максимум, на полчаса. Причём совместимость с текстовыми программами сохраняется, а псевдографические, можно за час адаптировать десяток. А если лень адаптировать, так поставь 2 кварца и КП11 для переключения (можно обойтись тумблером). А то, что картинка с игрой РК86 плющится с боков и выглядит точно также как в ОРИОНЕ, - кого это волнует. Вон - в ОРИОНЕ, экран такой же плющенный, но ведь никто не плачет из-за этого.

А насчёт введения цвета, то тут я ещё не определился. Вариант цвета через фонт или вариант цвета из экранного ОЗУ (за счет снижения горизонтального разрешения вдвое 64 --> 32 или 80 --> 40). Вариант с цветом из фонта позволяет раскрашивать старые игры, а не только их ографи-чивать за счёт фонта. Но вариант с цветом из ОЗУ более красив технически, т.е не выглядит извращённо, как цвет из фонта (основанный на снижении гориз.разрешения в знакоместе вдвое (за счёт чего в нечётных байтах в фонт и добавляется цвет). Цвет в первом варианте достигается снижением вдвое разрешения в знакоместе, а в другом - за счёт снижения вдвое числа символов в строке.

Нужны советы какой вариант лучше.

Например цвет с двумя ПЗУ для фонта (одно для графики, другое для цвета), даёт очень качественный цвет - 16 символов для фона и 16 символов для графики, причем каждая линия растра в знакоместе может быть любого цвета. А расход деталей всего-лишь на одно ПЗУ 27256 больше. Но недостаток - несовместимость с загрузчиком фонтов в ОЗУ от Alex_LG и сложность монтажа второго ПЗУ знакогенератора на плате РК. Очень бы пригодился кусок слепыша на плате со стороны разъёма. Надо руки отрывать тем, кто выпускает платы, не предусмотрев слепыша. Сравните с платой "Зона-87", четверть платы - слепыш.

Впрочем, т.к все предлагаемые доработки предельно просты, то можно иметь и цвет из фонта для раскраски старых игр и цвет из ОЗУ, который традиционен и привычен всем программистам и позволяет заимствовать цветные спрайты от ОРИОНА. Но пока я не вижу даже, чтобы кто-нибудь обрадовался тому, что теперь можно без труда получить более красивые спрайты в старых играх. А уж от популяризации цвета, наверное все кто не дружит с паяльником, будут ещё более недовольны.

Кроме того, как делать новый компьютер? Почитайте эту тему. Никто не хочет новых плат. Рынок для новых плат РК86 отсутствует. Выпуск плат maddev*xlat 2015 года удовлетворил горячий спрос. И теперь актуальны только простейшие доработки на базовой плате РК86.

Кстати разобрался с PL/M. Учебников на русском языке, так и не скачал. Их в сети полно, но все только платные. Пришлось читать 'PLM-80 Programming Manual Jan.1980' от Intel на чужом языке. Но в итоге во всём разобрался. Оказалось удивительно просто. Если чуть-чуть знаком с Паскалем, то считай, что уже мастерски владеешь программированием на PL/M. Так что пока даже не буду пробовать BDS-СИ, т.к код на нём менее эффективен.

NEO SPECTRUMAN
09.03.2017, 17:32
Вон - в ОРИОНЕ, экран такой же плющенный, но ведь никто не плачет из-за этого.
а с этого момента чуть по подробнее

barsik
09.03.2017, 18:15
Вон - в ОРИОНЕ, экран такой же плющенный, но ведь никто не плачет из-за этого
а с этого момента чуть по подробнее

В РК86 такт сдвига выходного видео регистра 8 МГЦ, а в ОРИОНЕ 10 МГЦ. В обоих компьютерах в картинке 384 точки (64*6). Из-за этого слева и справа от картинки ОРИОНА остается по 5 см пустого чёрного пространства, картинка плющенная, пиксель не квадратный, а при рисовке кругов надо применять поправки (т.е рисовать элипс). А в СПЕЦИАЛИСТЕ всё тоже самое как в ОРИОНЕ, только такт сдвига - те же 8 МГЦ, как и в РК86, отчего круги круглые и картинка нормальная, неплющенная с боков, на весь экран.

И если в РК86 увеличить такт сдвига точек с 8 до 10 МГЦ, как в ОРИОНЕ, то и картинка станет такая-же как в ОРИОНЕ.

NEO SPECTRUMAN
09.03.2017, 18:19
то есть пропорции пикселей 0.8х1 ?




Из-за этого слева и справа от картинки ОРИОНА остается по 5 см пустого чёрного пространства а картинка плющенная, пиксель не квадратный, а при рисовке кругов надо применять поправки, т.е рисовать элипс
в принципе никакой проблемы
в комоде пиксели вообще прямоугольные...

вот только об этом нужно везде указывать
а я об этом впервые слышу

...хотя об орионе я не много знаю...

Vital72
09.03.2017, 18:21
не вижу, где там много работы, схему я уже прикинул, выложу в общий доступ как будет рабочий экземпляр.
работать с кривой архитектурой -- вот где много работы

NEO SPECTRUMAN
09.03.2017, 18:22
Из-за этого слева и справа от картинки ОРИОНА остается по 5 см

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

barsik
09.03.2017, 19:50
как раз из за этого на РК часть знакомест находится за границей экрана на куче телеков...

Вообще это вина телевизора. Время вывода растра 48 МСЕК, а допустимо 52. Так что это только на советских телевизорах было так. В программах адаптированных от Партнёра, где кварц 9 МГЦ используют больше больше символов, чем только 64, есть информация на 65, 66, 67 позициях в строке, что очень неприятно остальным пользователям.

Хорошо бы, если бы модераторы поудаляли сообщения не относящиеся к РК86.

И что победительную идею никто так не похвалит и даже не покритикует? Или просто слишком сложно понять о чём речь?

NEO SPECTRUMAN
09.03.2017, 19:54
Так что это только на советских телевизорах было так.

не только на советских!

http://www.radiomuseum.org/r/tec_astrosound_astro_junior.html
смотри производителя

вот почти
http://zx-pk.ru/attachment.php?attachmentid=54336&d=1306154470
это именно тот гигантский бордюр спектрума который всем так не нравится
(немножко не отцентрировано конечно)
ты б видел сколько на нем срезается изображения денди-ка...:v2_eek:
иногда не видно панелей с жизнями




3Ы: ничего не нужно удалять!

Error404
09.03.2017, 21:29
Очень бы пригодился кусок слепыша на плате со стороны разъёма. Надо руки отрывать тем, кто выпускает платы, не предусмотрев слепыша. Сравните с платой "Зона-87", четверть платы - слепыш.


Уууу. Тут такие битвы были за кусочек слепыша на (внимание!) пустом месте платы RK-86 (т.е. с которого медь тупо стравливается зря обогащая раствор). В ход шли нижайшие просьбы, лесть, угрозы. Но нет! Стойкость сторонников мнения
это уже будет не РК-шка. была феноменальна, и до сих пор на новых релизах плат паршивый КТ315 негде приткнуть - только висяками.

barsik
11.03.2017, 14:49
Захотелось узнать во что обойдётся избавление от неудобной архитектуры РК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 нашёл вот такой текст (на другом сайте).



Когда имел РК86, я расширил его ОЗУ до 512К. Для этого нужно было поставить в два этажа РУ7, а дополнительные адреса подключить к паре разрядов дополнительного ППА. Разумеется, нужно было ещё переписать монитор - вставить директивы переключения страниц памяти. В результате, можно было переключать страницы памяти.

Дополнил я также РК-шку "фантомным монитором" - при холодном старте монитор из ПЗУ переписывался в ОЗУ (по тем же адресам), потом ПЗУ отключалось и прикладной софт (собственноручно придуманная операционка) получала полный доступ к модификации управляющего монитора, что дало программную гибкость.

Этот человек написал неточно, т.к адреса РУ7-мых подключаются не напрямую, а через дополнительно установленный мультиплексор КП11. И адреса на мультиплексорах надо сдвигать, чтобы по /RAS шли адреса A0...A8, иначе не будет регенерации. И при при двух РУ7-мых с ОЗУ в пространстве 0...7FFF, будет только половина из 512К, т.е 256К. Т.к невозможно иметь коммутацию по 32К и окно ОЗУ в области F800. То есть, - или ПОЛУ-банковая коммутация по 32К и доступно 512К, но без ОЗУ в F800. Или ЦЕЛЬНО-банковая коммутация по 64К, тогда в области F800 возможно иметь ОЗУ, но доступно только 256К + 16К в окне F800...FFFF.

Наличие ОЗУ в области 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 порядка меньше, чем при разработке полностью нового компьютера, а результат лучше, т.к есть совместимость.

A_AVL
11.03.2017, 22:32
IMHO, вполне разумно.
Хотя, для переключения конфигурации 32/60 и банков ОЗУ наверное лучше поставить регистр и не трогать D14.

barsik
12.03.2017, 01:12
для переключения конфигурации 32/60 и банков ОЗУ, наверное, лучше поставить регистр и не трогать D14

Конечно в обычном компьютере так и надо сделать. Но в РК86 нет буферов на ОЗУ, отчего нет резерва по нагрузке шины. В РК не стОит ставить ничего, что нагружает шину. Чем больше поставишь, тем сильнее сбоит ОЗУ и тем менее высокий такт КР580 потянет.

Так, вообще без периферии, без всякой нагрузки и даже со снятым доп.ППА D14, у меня РК86 с КР580 с радиатором работал с кварцем 32 МГЦ (целый час и не сбоил). А это такт CPU в 32:9= 3.55 МГЦ. А когда я подключил РК-КНГМД, внешнюю плату эл.диска 512К на РУ7-мых и ППА D14, то едва потянуло кварц в 20 МГЦ, что даёт такт всего в жалкие 2.2 МГЦ.

Точно такая же ситуация наблюдалась и на СПЕЦИАЛИСТЕ. Если там на шине много 155-той серии, то такую плату не турбировать. А если всё - на 1533 серии и буфера ЛП10 выкусить (буфера всегда вызывают снижение кварца), то СПЕЦИАЛИСТ стабильно работал с тактом КР580 3.5 МГЦ. И даже в течение часа с тактом 4 МГЦ (КР580 так разогрелся, что начал самовыпаиваться из платы и хороший медный радиатор, приклееный эпоксидкой, не особо помогал). Кстати так просто 4 МГЦ из КР580 не выжать, нужны доп.меры.

Потому в РК86 идеально в качестве управляющих регистров подходит доп.ППА (особенно, если он КМОП 82С55 и мало грузит шину). Например, управляющие регистры на базе ВВ55 сделаны в ОРИОН-ПРО и вот в этом компьютере http://zx-pk.ru/threads/20927-quot-prostejshaya-mikro-evm-quot-i-drugaya-literatura/page12.html.

Кроме того управлять надо много чем. Например, переключением фонтов, а если фонтов 32 штуки, то это 5 битов. Добавьте к этому управление ТУРБО-НЕТУРБО, ещё один бит. Теперь добавьте бит на включение/выключение ПЗУ РФ2/27256 в адресах 0...7FFF. Далее нужны биты на включение/выключение цвета и режима 40/80 символов. А также другого варианта цвета. Управление загрузкой фонта в ОЗУ фонта, что тоже хотелось бы иметь, т.к это упрощает разработку спрайтов (ведь перетыкая 62256 с подпаянной батарейкой, уже через 10 раз будет плохой контакт в панельке ПЗУ). Думаю и ещё какие-то биты понадобятся. Так что возможность использовать доп.ППА в качестве регистров это очень удачно.

A_AVL
12.03.2017, 11:26
IMHO, D14 лучше оставить для того, чему он предназначался разработчиками. Тогда уже лучше добавить в схему ППА D14' для управления конфигурацией.

barsik
14.03.2017, 07:37
Догадался как ещё больше упростить расширение ОЗУ в РК86.

Если переключение конфигураций 32/60 кб программное, то нет смысла иметь адресацию клавиатуры, ПДП, ВГ75, ВИ53 и РК-КНГМД в обоих конфигурациях. Таким образом второй дешифратор внешних устройств не нужен. В обоих режимах необходимо только адресовать ПЗУ F800 и управляющее ППА, которое и переключает конфигурацию. Как дополнительный выигрыш при этом, - не требуется иметь и второе ПЗУ F800 с ROM-BIOS для режима 60К.

Архитектура улучшается, если при доработке одновременно расширить ОЗУ до 128К и более, т.к это позволяет вынести экранный буфер из ОЗУ в 60К.

Сначала рассмотрим вариант с одной банкой РУ5. Доработка заключается в установке дешифратора на 2 выборки, - для ПЗУ F800 и для ППА, который ставится по адресу F700. За исходный вариант берётся плата РК, где используется РК-КНГМД, отчего есть дешифратор на область F000. Область F000 используется для подключения разных В/У - как минимум, РК-КНГМД и ВИ53. Доп.ППА по адресу A000, может как остаться, так и отсутствовать. Но удобнее в области A000...BFFF иметь окно резидентного ПЗУ 27256 или ОЗУ. Область E000...EFFF - открытое ОЗУ из основной банки, что требуется для тех, кому всё-ещё нужна РК-ДОС. Также сюда удобно грузить отладчик.

Для переключения в режим 60К выводится единица по биту ППА F700. Это приводит к полной деактивации ИД7 на плате РК86. Все В/У исчезают из адресного пространста и образуется сплошное ОЗУ до F000. Остаётся только ПЗУ на F800 и управляющее ППА на F700. С одной банкой ОЗУ в режиме 60К для получения сплошного TPA экран программно переносится на E6D0, остальное ОЗУ для CP/M. Для опроса клавиатуры и работы с другими В/У программа включает конфигурацию 32К, в которой все имеющиеся В/У доступны.

Расход деталей в таком варианте составляет лишь ЛА2 + ЛА3, на которых сделан дешифратор, формирователь выборки ППА F700 и ПЗУ F800. Ещё один корпус логики требуется для верного формирования /CAS. Итого, общий расход деталей 3 корпуса логики.

Однако, ещё выгоднее добавить вторую банку РУ5-тых, напаяв её вторым этажом. Тогда при включении режима 60К, вместо основной банки ОЗУ во всём пространстве адресуется дополнительное ОЗУ. В том числе и экранная область остаётся в основной банке ОЗУ. Выводу на экран это не мешает, т.к по сигналу HLDA, свидетельствующем о работе ПДП автоматически включается основная банка ОЗУ. Благодаря этому полностью отпадает даже необходимость перешивать ПЗУ и куда-либо переносить экранный буфер (он как всегда на 76D0). Программа CP/M имеет полные 60 кб и экран ничуть не мешает.

Естественно, 128 кб мало, поэтому, если есть 565РУ7, то вторым этажом лучше напаять их. При этом даже не придётся перекидывать адреса на мультиплексорах, т.к теперь есть более прогрессивная идея регенерации. Расход деталей при установке вторым этажом РУ7 - один корпус КП11, зато это даёт общий объём ОЗУ уже в 64+256= 320 кб.

К сожалению, установка на шину второй банки истратит резерв нагрузочной способности шины и выжать максимальный такт в 3.5 МГЦ уже не удастся, - без установки буфера ОЗУ придётся ограничиться тактом КР580 в ~2.5 МГЦ. Поэтому одновременно, с расширением ОЗУ разумно сразу же ставить буфер - две 589АП16.

Кроме того, придумана схема регенерации SIMM объёмом до 8 мб (в лоб РК регенерирует только 11 адресных линий, что даёт регенерацию ОЗУ до 1 мб). Для этого SIMM ставится не вместо, а в дополнение к имеющейся РУ5-той, причём адреса A8,A9 на КП11 даже не требуется перекидывать. Более того, число деталей (при SIMM до 4 мб) даже не увеличивается, т.к мультиплексор для мультиплексирования адресов ставится в любом случае. Но для регенерации ставится не КП11, а КП12, который теперь мультиплексирует не только адреса A16,A17 и A18,A19, что требуется при /RAS /CAS, но и одновременно при сигнале HLDA выдаёт на ОЗУ адрес регенерации.

При такой регенерации SIMM, надо сохранить базовую банку РУ5-тых, т.к из неё читается экран. Потому что тогда из SIMM экран не читается, отчего во время чтения ПДП на SIMM можно подавать любой адрес. Поэтому 8 адресов регенерации при /RAS формирует ПДП, а в качестве адресов регенерации A8 и A9 берутся сигналы LC0 и LC1 от ВГ75, которые меняются в каждой линии растра. Таким образом период регенерации становится максимально коротким, отчего будут работать даже старые ОЗУ, в которых почти дохлые накопительные PN-ёмкости. Такая идея регенерации ничего не стоит по расходу деталей и не требует применения режима CAS раньше RAS.

Error404
14.03.2017, 14:12
Догадался как ещё больше упростить расширение ОЗУ в РК86.
[...]
Однако, ещё выгоднее добавить вторую банку РУ5-тых, напаяв её вторым этажом. Тогда при включении режима 60К, вместо основной банки ОЗУ во всём пространстве адресуется дополнительное ОЗУ. В том числе и экранная область остаётся в основной банке ОЗУ. Выводу на экран это не мешает, т.к по сигналу HLDA, свидетельствующем о работе ПДП автоматически включается основная банка ОЗУ. Благодаря этому полностью отпадает даже необходимость перешивать ПЗУ и куда-либо переносить экранный буфер (он как всегда на 76D0). Программа CP/M имеет полные 60 кб и экран ничуть не мешает.

Естественно, 128 кб мало, поэтому, если есть 565РУ7, то вторым этажом лучше напаять их.
При этом даже не придётся перекидывать адреса на мультиплексорах, т.к теперь есть более прогрессивная идея регенерации. Расход деталей при установке вторым этажом РУ7 - один корпус КП11, зато это даёт общий объём ОЗУ уже в 64+256= 320 кб.

К сожалению, установка на шину второй банки истратит резерв нагрузочной способности шины и выжать максимальный такт в 3.5 МГЦ уже не удастся, - без установки буфера ОЗУ придётся ограничиться тактом КР580 в 2.5-3 МГЦ. Поэтому одновременно, с расширением ОЗУ разумно сразу же ставить буфер - две 589АП16.
[...]


Я это и предлагал N страниц ранее, тоже считаю что самый разумный способ - в отключаемой странице 0 оставить все как есть для работы с дисплеем и ВУ и 100% совместимости со старым софтом, а fullram и CP/M делать в доп. страницах ОЗУ. Единственно: надо бы весь комп перевести на одну банку РУ7 - это будет красиво (без напаивания ОЗУ вторым этажом) и не потребует дополнительного буфера (и возможности разгона останутся прежними). Как вариант, оставить как есть РУ5, а расширенные страницы сделать на одной единственной SRAM (64к от кэшей 386 или 512кб с доп страницами - у кого какие ОЗУ есть, у меня например есть и такие и такие :) ), что тоже не перегрузит шину.

barsik
16.03.2017, 11:41
Придумал, как истратив один кусок проволоки, ускорить работу РК86, за счёт сокращения времени захвата шины. Благодаря тому что клок КР580 и ВТ57 в РК86 можно произвольно менять, при повышении такта ВТ57 с 1.77 МГЦ до 3.2 МГЦ, более чем вдвое сокращается время простоя КР580. В базовой схеме время простоя CPU составляет ~25%. После повышения клока ПДП простой сократится вдвое. Тогда реальное быстродействие составит 87.5% от частоты 1.77 МГЦ, то есть 1.55 МГЦ, вместо 1.3 МГЦ в базовой схеме. Турбирование на ~20%, что существенно. В "Партнёре", где кварц 18 МГЦ такая доработка даёт реальный такт 1.79 МГЦ вместо 1.5.

В базовой схеме ВТ57 тактируется тем же тактом 1.77 МГЦ, что и КР580. Для ускорения достаточно впаять в схему РК86 счётчик 155ИЕ2, который делит F2TTL 16 МГЦ на 5, что и даёт требуемый такт в 3.2 МГЦ.

Тот, кто не дружит с паяльником, и не в состоянии смонтировать на плате одну дополнительную микросхему, может ограничиться повышением клока ВТ57 до 16:6=2.66 МГЦ. Такой такт присутствует на ноге 9 счётчика ИЕ4 (D3), хотя это и не меандр. Тогда, всего лишь за счёт расхода куска проволоки, время простоя CPU сокращается в 1.5 раза и реальный такт РК86 достигает 1.77 * (1-(0.25 : 1.5)) = 1.475 МГЦ. Турбирование на 13.5%.

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

ВТ57 в моём РК86 нормально работал при тактировании 3.33 МГЦ, так что с этим проблем нет. Ограничение на такт ВТ57 накладывает не быстродействие самого ВТ57, а быстродействие небуферизованного ОЗУ 565РУ5, что зависит от перегруженности шины. Впрочем и это легко исправить введением одного такта WAIT при обращениях к ОЗУ (это конструктивно проще, чем вводить буфер для ОЗУ).

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

При подборе деталей для монтажа РК, обнаружил, что у меня есть скоростная статическая память общим объёмом ~1 мб.


HN58C65FPI-25T 8K x 8 Electrically Erasable and Programmable CMOS ROM

EM51256C-15PL 8 шт 32K x 8 High Speed 15 ns SRAM TAG Memory
w24257AK-15 10 шт 32K x 8 High Speed 15 ns CMOS Static RAM
TC51832ASPL-10 32K x 8 High Speed 10 ns CMOS pseudo static RAM
N341256P-15 32K x 8 CMOS static RAM

TC55257BPL-10 32K x 8 CMOS static RAM
TC55257BPL-10L 32K x 8 CMOS static RAM
CXK58257AP-10L 32K x 8 CMOS static RAM

HM6264LP-15 2 шт 8K x 8 CMOS static RAM
HM6264P-12 8K x 8 CMOS static RAM
CXK5864BM-10L 8K x 8 CMOS static RAM

HM6516-6 2 шт 2048 x 8 CMOS static RAM
HM1-6514-9 12 шт 1024 x 4 CMOS static RAM


Ввиду этого, с учётом отсутствия у меня внешних носителей, появилось желание иметь от 32-х до 128 кб статического ОЗУ. Использовать которое можно, или как псевдо ПЗУ с резидентными программами, прокачиваемое в окне 8К A000...BFFF, или как энерго независимый эл.диск, в котором можно будет хранить все часто используемые CP/M-программы. Запитав микросхемы памяти от батарейки, превращаем RAM в ROM. Поэтому хочу примениить, как минимум, 32 кб статических ОЗУ в роли ПЗУ. Естественно, самые скоростные 10 и 15-ти наносекундные RAM оставлю для акселератора РК86 на Z80B с тактом 9 МГЦ.

Ещё более интересна HN58C65FPI 'Electrically Erasable and Programmable CMOS ROM' с объёмом в 8 кб. Эта микросхема ведёт себя как обычное быстрое статическое ОЗУ, но при выключении питания ничего не забывает. Что очень удобно при разработке и отладке ROM-BIOS, т.к стирать и перешивать УФ-ПЗУ не только утомительно, но главное в том, что ресурс перезашивок у ПЗУ выше 2732 очень мал. Если древние РФ2 выдерживают сотни перезашивок, то 27128, 27256 дохнут уже после 5-10.

Т.к кроме ПЗУ F800, другого ПЗУ в РК нет, а возиться с вводом в МГ-формате, при каждом включении - не смешно, то хочу поставить злектро стираемую ПЗУ в адресах A000...BFFF, где размещу RAMDOS и загрузчик с проводной линии. Тем самым программно и без хлопот, по мере необходимости, смогу менять состав резидентного ПО.

Недавно разработанный новый драйвер проводной линии обеспечивает скорость ~2 кб в секунду (при реальном такте CPU в 2.5 МГЦ), тогда как старый драйвер 1995 имел скорость всего 200 байт в секунду. Но новый протокол передачи требует наличия уже не двух проводов, а четырёх. Естественно, применение ВВ51 позволило бы увеличить скорость передачи ещё, как минимум, в 4 раза, но я предпочитаю обходиться проводами вместо лишних микросхем там где это возможно.



надо бы весь комп перевести на одну банку РУ7 - это будет красиво (без напаивания ОЗУ вторым этажом)

Две банки памяти лучше, чем одна по многим причинам

- число деталей и трудоёмкость одинаковы (точнее при одной РУ7 деталей даже больше).

- РУ5-тые имею только двухэтажными (90% имеющихся РУ5-тых - двухэтажные, т.к на почти всех моих платах ОРИОНА - РУ5-е используются только в таком виде), одиночных РУ5-тых - буквально единицы.

- при 2-х этажах, место на монтаж на плате или слепыше не тратится.

- нагрузочная способность РК изначально рассчитана на двух-этажность ОЗУ (для РУ3-тьих).

- полезно иметь РУ5-тые, чтобы проверять, что они регенерируются в конкретном режиме ВГ75, т.к если режим работоспособен на РУ7-мых, это не значит, что будет работать на РУ5-тых, у которых вдвое меньше период регенерации.

- 256К + 64К= 320К, а это больше, чем 256К.

Но главный довод, - если ставить только одну банку, то это пусть технически "красивее", но не позволяет использовать SIMM. Т.к из SIMM не должен читаться экран. Потому-что, когда ПДП читает экран из основной банки, то SIMM регенерируются. При работе ПДП из SIMM читается не экранный адрес, а адрес регенерации. При этом адреса регенерации A8,A9, A10 для мультиплексора регенерации берутся от ВГ75 (адреса сканирования в знакоместе, что меняются каждые 64 МКСЕК).

Этот же довод, но по другой причине работает и для второй банки на РУ7-мых. Дело в том, что при такой регенерации период регенерации составляет самую маленькую величину. Благодаря чему, надеюсь, ~20 шт оставшихся сбойных РУ7-мых удастся использовать. Без этого РУ7-мые вообще использовать нельзя, т.к даже теоретически период их регенерации при базовой схеме превышает паспортные данные.

Если же ставить только одну банку РУ7-мых, то период регенерации будет превышать паспортные данные (т.е период более 4 МСЕК), что недопустимо, и исправить это за счёт использования LC0,LC1,LC2 будет нельзя из-за экрана (см.предыдущий абзац).

barsik
21.03.2017, 21:36
ВК28 уже давно поставили в схему РК86. И фонт одновременно исправили с 6*8 до 8*8. И ОЗУ буферизовали. Почему никто не признался в этом, когда об этом спрашивали ?
http://i052.radikal.ru/1003/a4/d0f4b2f2b905.jpg

ZEvS
21.03.2017, 23:31
...И фонт одновременно исправили с 6*8 до 8*8.

В этом деле меняют пиксельклок?
По идее вместо 8 МГц, надо 10,(6). Можно 32/3...

Vital72
22.03.2017, 04:12
http://i052.radikal.ru/1003/a4/d0f4b2f2b905.jpg

тьфу ты... я думал там схема.
и доставляет же кому-то удовольствие размещать картинки на *****-радикале

barsik
22.03.2017, 09:37
и доставляет же кому-то удовольствие размещать картинки на *****-радикале

Это не я размещал картинку на "радикале". Схемы тоже не видел. Этот крутой клон РК86 называется "Электроника КР-04" (очень редкая вещь). Ссылку на картинку нашёл вчера на этом же сайте в теме "РАДИО-86РК: Навигация по клонам". Хотел найти там информацию о компьютере у которого ВГ75 стоит по адресу D000. Но ни хрена не нашёл, там даже нет описаний приведённых в списке клонов РК86 с указанием адресов В/У и адреса экрана. Там только бесполезный перечень клонов и ссылки на фотографии (и даже не все из них работают, протухли). Оказалось что клонов РК86 гораздо больше, чем я думал. Для изготовления универсальных программ для РК-платформы надо иметь хотя-бы краткую таблицу, где бы были приведены все нужные программисту адреса для всех РК-клонов.

http://zx-pk.ru/threads/9653-radio-86rk-navigatsiya-po-klonam.html?p=271548&viewfull=1#post271548
http://zx-pk.ru/threads/9653-radio-86rk-navigatsiya-po-klonam.html?p=417417&viewfull=1#post417417

Подскажите как делать ссылку на конкретный пост на этом сайте (видел что надо добавить суффикс &postcount#nn к адресу страницы, но у меня не получилось).

Кстати, нашёл в указанной теме ссылку на сайт, где рассказано как модернизировать РК86.
http://radio86rk.pbworks.com/w/page/58467718/Radio-86RК-SRAM

Сложилось впечатление, что те кто сейчас делают какие-то улушения РК86 занимаются изобретением велосипеда в восьмой раз.

Alex_LG
22.03.2017, 11:20
Подскажите как делать ссылку на конкретный пост на этом сайте (видел что надо добавить суффикс &postcount#NN к адресу страницы, но у меня не получилось).

Номер сообщения - это ссылка, кликните правой кнопкой мыши на номере и выберите "Копировать адрес ссылки".

barsik
22.03.2017, 20:33
Многие сделали или хотят сделать турбирование РК86 по схеме иэ ж.РАДИО 01.1991, для чего монтируют отдельный кварцевый генератор. Как указано в статье, быстродействие РК возрастает не пропорционально соотношению кварцев, а несколько больше. Это происходит оттого, что на большей частоте ПДП быстрее выполняет свою работу, отчего меньший процент времени отнимает у процессора. Хочу привести расчёт, чтобы каждый мог знать какое расчётное быстродействие получит его РК86 с конкретным кварцем.

При тактировании КР580 1.77 МГЦ он отнимает у КР580 25% времени, отчего общее быстродействие падает до 0.75 от такта 1.77 МГЦ. Если такт ВТ57 увеличивается, то во столько же раз сокращается время захвата шины ПДП. Тогда легко рассчитать реальное быстродействие РК86 при тактированиия КР580 тактом в 3 МГЦ (при замене кварца 16 МГЦ на 27 МГЦ):

Время захвата шины сокращается в 3.0 : 1.77= 1.695 раз. И общее быстродействие составит:

3.0 * (1-(0.25 : 1.695))= 2.558 МГЦ.

Если поставить ВК28, то КР580 тянет такт 3.5 МГЦ, что даст эффективный такт процессора:

3.5 * (1-(0.25 : (3.5:1.77))= 3.056 МГЦ.

Есть ещё интересный вопрос, как меняется быстродействие в зависимости от установленного режима ВГ75. В стандартном режиме при 31-й строке ВГ75 тормозит КР580 на ~25%. Обычно используются ещё два графических режима с 39 строками (128*60 и 192*60) и 62-й строками (192*100).

В режиме 128*60 с 39 строками ВТ57 отнимает у процессора в 39:31=1.258 раз больше времени. Тогда имеем эффективный такт процессора:

1.77 * (1-(0.25 * 1.258))= 1.21 МГЦ

В режиме 192*100 с 62 строками имеем эффективный такт процессора:

1.77 * (1-(0.25 * (62:31)))= 885 КГЦ

;--------------------------

Придумал, как без пайки доп.генератора и затрат деталей с помощью лишь куска проволоки поднять быстродействие РК86, если он выполнен на Z80 или 8085 процессоре. Ранее я предлагал поднять быстродействие за счёт подачи такта 2.66 МГЦ на ВТ57, что даёт ускорение на 13.5% . Однако, если используется процессор Z80/8085, то этот же такт можно подать и на Z80 вместо F2TTL. Тогда реальное быстродействие составит:

2.66 * 1-(0.25 : (2.66:1.77)= 2.216 МГЦ.

Если-же в РК86 сделана переделка на фонт 8*8, при которой счетчик D3 заменён на ИЕ5 и делит не на 12, а 16, то на плате присутствует такт не 2.66 МГЦ, а 20:8=2.5 МГЦ. Тактируя этим тактом в 2.5 МГЦ ВТ57 (вместо такта 1.77) получаем сокращение времени захвата ПДП на 2.5:1.77= 1.41. Тогда 25-ти процентный простой из-за ПДП сокращается на столько же. Быстродействие составит

2.5 * (1-(0.25 : 1.41))= 2.06 МГЦ.

А если подать на Z80 такт 5 МГЦ, что тоже присутствует на счётчике D3, то реальная скорость составит:

5.0 * (1-(0.25 : (5:1.77))= 4.19 МГЦ.

Можно ли применить эту идею к КР580? К сожалению, на КР580 надо подавать сразу 2 такта Ф1 и Ф2. Однако, если мы посмотрим на схему СПЕЦИАЛИСТА, то обнаружим, что там Ф1 и Ф2 не из идиотической ГФ24, а формируются с помощью счетчика ИЕ5, дешифратора ИД4 и высоковольтной ЛА8. Заметьте, что счётчик ИЕ5 уже имеется, если выполнена переделка на фонт 8*8. Дешифратор тоже не нужен. Таким образом в схеме РК86 остаётся только добавить ЛА8, чтобы формировать Ф1 и Ф2.

Такт КР580 при этом будет не в 9 раз ниже кварца, а только в 8 раз. При этом ГФ24 работает только как генератор, дающий на выходе OSC частоту кварца. В таком варианте КР580 тактируется тактом в 2.5 МГЦ и эффективный такт равен 2.06 МГЦ. Что конечно маловато, но зато соответствует РТМ на КР580 (кому это надо? - Лучше выжать максимум).

ГФ24 идиотическая потому что делит на 9, что очень неудобно для графических компьютеров, где за такт процессора на экран выводится 8 точек. Поэтому там её никогда и не применяют. Выигрышем при формировании Ф1 и Ф2 по схеме СПЕЦИАЛИСТА является то, что теперь КР580 и ВГ75 работают синхронно, что сокращает потери из-за несинхронности и существенно упрощает расчёт времянок. А также избавляемся от ГФ24, который плохо заводится на высоких частотах, перегревается и совершенно не нужен при Z80 на такте 9 МГЦ. При всякой новой разводке платы ставить ГФ24 - неразумно.

Если не сделана переделка для фонта 8*8 и счётчик ИЕ4 по-прежнему делит на 12, то вероятно, с помощью дешифратора и логики тоже можно получить Ф1 и Ф2, но их временные диаграммы будут нестандартными. Поэтому и связываться с этим не стоит.

Наиболее удобным для РК86 является кварц на 18 МГЦ. Так очень грамотно сделано в "Партнёре". Тогда частота сдвига точек 9 МГЦ, вместо 8. Что лучше, т.к даже в телевизор влезают крайние символы, а на мониторах видны ~75 символов в строке. И из одного кварца получается такт 3.0 МГЦ для ВТ57 и КР580. Режим программирования ВГ75 такой же как в Партнёре, но его программы работать не будут, если в нём другие адреса В/У.

Vital72
22.03.2017, 21:27
да что вы все прикопались до гф24 (8224). 8224 является компектом серии 8080, также и 8228 можно логикой заменить. так же и про 8080 можно сказать, что он идиотической -- три питания, две фазы тактирования...

NEO SPECTRUMAN
22.03.2017, 23:03
две фазы тактирования...
в z80 не так? (яхзпрст)

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


ставить ГФ24 - неразумно.
ставить делитель на 9 в компьютере тоже не разумно...
тем более пускать /9 на проц
а все остальное на видео...

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


ставить ГФ24 - неразумно.
ставить делитель на 9 в компьютере тоже не разумно...
тем более пускать /9 на проц
а все остальное на видео...


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

barsik
22.03.2017, 23:21
ставить делитель на 9 в компьютере тоже не разумно...
тем более пускать /9 на проц, а все остальное на видео...

И я о том же. Потому ГФ24 и не нравится разработчикам компов на КР580 и они вынуждены эмулировать его функции на логике. Но я думаю, что сейчас никто уже не будет его выкусывать из плат и заменять логикой, только ради того, чтобы было легко считать такты. Я написал это на тот случай, если случится чудо и кто-то выпустит платы нового клона РК86.


А что стоит сделать переключаемый дешифратор адреса, чтобы программно менять расположение портов для переключения в режим совместимости с другими РК?

Вводить в РК коммутацию В/У ради совместимости с клонами - не смешно. Этих клонов РК развелось слишком много. Раньше думал, что их 3 штуки, а вчера заглянул в тему "РАДИО-86РК: Навигация по клонам", так убедился, что этих клонов сделали чуть-ли не 20 штук. Теперь это задача программиста - встроить в каждую программу тест определяющий тип клона и соответственно модифицирующий код игры. Я предлагал ввести в игры блок параметров, чтобы этого избежать.

NEO SPECTRUMAN
22.03.2017, 23:43
а вчера заглянул в тему "РАДИО-86РК: Навигация по клонам", так убедился, что этих клонов сделали чуть-ли не 20 штук.
а большая их часть является точной копией одного из тех 4-х. Только с другим названием.
щас полезу удостоверюсь

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

1-й пост
РК, Апогей, Партнер, Микроша
ВСЕ!
может конечно еще где то есть полтора клона с новыми возможностями
но тысячей софта для них не видно
как и упоминания об этих клонах

а то что там еще 10 клонов с разными названиями...

юты88 и микры80 за РК не считаю...

зы я говорю только о смене адресов вг75, вт57 и вв55
а не о запихивание 4-х компов в один

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

Хотя тк куча софта
пользуется єтим *****м монитором...
совместимости оно сильно не прибавит...
фтопку короче...

...хотя если делать подстановку ОЗУ вместо ПЗУ
то можно будет заливать туда монитор нужной машины
и будет почти полная совместимость(для софта не использующего дополнительные возможности... ...даже с теми что как бы клоны РК но использует свой монитор и смену адресов видеопамяти)

barsik
22.03.2017, 23:56
Да, в основном по адресам клонировали РК86 буквально. "Электроника-КР04" исключение. Проблема не только в адресах В/У, а в частотах кварца. Есть с тактом сдвига точек 8 МГЦ, а есть с тактом сдвига 9 МГЦ, а есть и 10 МГЦ. Есть с фонтом 6*8, а есть и сфонтом 8*8. Для каждого клона нужен свой режим ВГ75, рассчитанный на его кварц. Не будете же Вы ставить в UNI-РК86 море дешифраторов, а ещё и кучу кварцев. Или же пользоваться вызовами ROM-BIOS - в этом совместимость есть (тогда и "Микро-80" и "Арго" и ЮТ88 будут совместимы). Поэтому - только программное решение. Написать один раз программу вычисления типа клона и вставить её во все программы для РК-платформы.

Vital72
22.03.2017, 23:58
в z80 не так?

не, не так

ZEvS
23.03.2017, 00:07
...хотя если делать подстановку ОЗУ вместо ПЗУ
то можно будет заливать туда монитор нужной машины
и будет почти полная совместимость

А еще можно в качестве адресного дешифратора воткнуть ПЗУ, и переключать адресацию кодом на оставшихся линиях.

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


... Написать один раз программу вычисления типа клона и вставить её во все программы для РК-платформы.

Может написать транслятор для ПК?
Который, конвертирует, например "*.RKM" в "*.RKP" и т.п.

NEO SPECTRUMAN
23.03.2017, 00:12
Не будете же Вы ставить
де под все них софт?
из этих 4-х РК-шек
у 3-х точно? одинаковые кварцы (за 4-й не знаю)

думаю 4 карты портов хватит всем©Ⓡ™
остальные идут лесом


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


Который, конвертирует, например "*.RKM" в "*.RKP" и т.п.
есть такая шняга как
само модифицируемый код (в том числе его распаковка)
и таблицы переходов

что может помножить автоматическую конвертацию на 0

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


Есть с тактом сдвига точек 8 МГЦ, а есть с тактом сдвига 9 МГЦ,
интересно телек поймает 55Гц в таком случае?

ZEvS
23.03.2017, 00:22
интересно телек поймает 55Гц в таком случае?
Нет, там все в норме, частота знакомест также пропорционально изменена, и строка по прежнему 15625 Гц.

barsik
23.03.2017, 00:28
Понятно, что РТ4, как и планировали авторы РК позволяет оперативно переносить В/У и даже иметь 4 разных адресации портов (3+3 входа на адреса и 2 входа переключателя). Но это никто не сделает. По причине того, что контингент пользователей слишком ретроградный.

Это не сделали при разработке клонов, т.к считали, что программной совместимости по адресам стандартных п/п-мм ПЗУ хватит. И они отчасти правы. Хватило бы. Если бы в 80-е годы не развелось столько "умников", что решили, что небольшое ускорение программы оправдывает прямую работу по железу (о клонах тогда никто и не знал), и что призывы авторов РК работать только через ROM-BIOS - пустой звук.

Ваше аппаратное решение - это не решение проблемы несовместимости. Это решение только для того, кто имеет именно РК86, имеет электро паяльник и умеет, но главное, хочет им пользоваться (а таких почти нет). Но что же делать тем у кого не 100% совместимые с РК промышленные аппараты и они ни за что не полезут внутрь корпуса? Им проще потратить полчаса с дизаccемблером IDA, чтобы адаптировать чужую игру, которую они вначале посмотрят в эмуляторе и решат, что она стоит труда на её адаптацию.

Поэтому аппаратных решений проблемы несовместимости нет. Есть только программное, т.е делать универсальное ПО с автонастройкой на тип аппарата. А все несовместимые ранее программы переводить в универсальные.

NEO SPECTRUMAN
23.03.2017, 00:30
если кварцы разные и стоит гф24 и все кинуто с него так же
то частота уплывет

но я не припомню ни одной программы от какого нибудь кр**
да и ****** мне на него...

а вот запилить РК который будет хавать софт от 4-х ходовых клонов
было бы не плохо


Даже решение встроить в ПЗУ всех РК-клонов в ПЗУ F800
а тут разве не обсуждается некий новый мифический РК?

старые машины как были пусть так и будут

ZEvS
23.03.2017, 00:38
to Barsik. +1. Согласен на все 100%.
Еще меня "бесит" расточительное расходование адресного пространства. Это все из-за экономии 1-2 корпусов микросхем, необходимых для нормальной дешифровки. Раздражает потеря 4 кБ. на одну железку. Но теперь уже не переделать, пострадает совместимость.

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


а вот запилить РК который будет хавать софт от 4-х ходовых клонов
было бы не плохо

Ну может просто сделать хороший адресный дешифратор, а каждый модуль перемычками переключать, как ранее в PC было?

NEO SPECTRUMAN
23.03.2017, 00:44
Ну может просто сделать хороший адресный дешифратор, а каждый модуль перемычками переключать, как ранее в PC было?
для совместимости еще нужно сменное пзу а лучше озу с защитой от записи

а механические перемычки мне не очень нравятся...
хотя программное переключение так же влечет за собой небольшую потерю совместимости
(тк кривой софт начнет клацать картами портов(хотя на РК такого может и не будет(тк не тот уровень программистов совсем...)))

uart
23.03.2017, 00:47
Не понимаю, о какой совместимости вы говорите? Что-то есть уникальное, которое не запускается, а переделать так сложно, что надо железки городить?
Это и 30 лет назад проблемой не было, а сейчас, при наличии мощных компьютеров и эмуляторов и подавно...

ZEvS
23.03.2017, 00:48
для совместимости еще нужно сменное пзу а лучше озу с защитой от записи


Ну, достаточно, просто ПЗУ большего в разы объема, и свободные адресные линии перемычками тыкать.
И тот-же код на адресный дешифратор...

NEO SPECTRUMAN
23.03.2017, 00:56
Что-то есть уникальное, которое не запускается, а переделать так сложно,
ну у каждого из расширенных клонов РК есть немного своего уникального софта
(хотя как раз они в основном и используют свои расширенные шрифты итд...)

а переделывать может просто не быть желания


что надо железки городить?
ну если это не будет сильно большим огородом на новой железке
то чего бы и не нагородить?

и вообще я просто генерирую идеи
городите что хотите...

barsik
23.03.2017, 01:03
Тут разве не обсуждается некий новый мифический РК?

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

Поэтому и нужны только такие доработки, что я (или любой другой человек, имеющий электро паяльник) могу сделать за два часа труда, припаяв несколько (не более 5-6) микросхем вторым этажом на имеющейся плате РК86. А РТ4 отпадает по определению, т.к ни у кого нет их прошивателя и возиться с ними никому не охота. Мне хотелось бы только следующее:

- побольше основного ОЗУ, чтобы иметь ДОС с размером в 10К и более, а также ОЗУ в доп.банках для электронного диска (минимум 256К)

- побольше скорость прогона программ (нижний предел ~3 МГЦ)

- для оцветки рэтро-игр цвет минимально простой в реализации (цвет атрибутами отпадает, т.к он требует переделки кода монохромных игр), а также фонт с типовыми графическими цветными спрайтами. И графика и цвет только на одном ПЗУ, т.е затраты труда только на монтаж RGB-выхода и замена панельки ПЗУ фонта 24-ноги на 28-ногую.

- интерфей с PC по проводной линии, чтобы использовать PC в роли контроллера его же винчестера (тогда каталог файлов на PC выводится в панели РК-Нортона, как обычный привод). Имеется программный интерфейс по 4-м проводам (без ВВ51) со скоростью 2 кб/сек (чем больше такт CPU тем быстрее).

- разъём, чтобы вытащив КР580 из панельки, я мог воткнуть в этот разъём платку с 6502 и получить РК86 на 6502, работающий на скорости примерно Z80 с клоком 4 МГЦ (якобы 6502 на такте 1.5 МГЦ как-раз это делает). А если будет не хватать скорости, то затем заменить 6502 на 65С02 на такте 5 МГЦ и получить РК86 с быстродействием эквивалентным Z80 на такте 15 МГЦ. С ОРИОНОМ или СПЕЦИАЛИСТОМ так не получится, - РК единственный, где так легко менять процессор.

Цвет для начала сделаю совсем простым - из 1 го бита в фонте, что даёт 6 цветов для раскраски игр. Из-за чего фонт будет лишь 7*8. Для цветов уже для новых программ (т.е не для оцветки старых игр) потрачу 3 атрибута (тогда цветов намного больше чем 6 цветов из одного бита). И 1 атрибут остаётся на оперативный выбор фонта (т.е 256 символов для спрайтов в новых играх). Коммутация режимов и интерфейсы - порт C. Коммутация банок - порт B. Коммутация фонтов - порт A. Все из ППА D14, отчего доп.нагрузки шины нет.

Доп.деталей - минимум.

А 16 цветов на пиксель мне пока не надо. Я это просто не сумею использовать. Нет, я не против такой печ.платки. Только надо сделать так, чтобы она была полностью внешней и не особо грузила шины. Т.е, - закрепляем с краю платы РК86 разъём, выводим на него сигналы от ПЗУ и ВГ75. И в это разъём втыкаем плату загрузчика фонта от Alex_LG или плату BMP 16 цветов от ZEvS.

Vital72
23.03.2017, 01:24
Не понимаю, о какой совместимости вы говорите? Что-то есть уникальное, которое не запускается, а переделать так сложно, что надо железки городить?

Ну вот наконец-то здравые мысли. Говорить, что адреса портов нельзя трогать ни в коем случае и при этом потрошить всё остальное так, что от оригинала даже тени не остаётся -- это просто шедевр. У меня есть своё представление, как улучшить РК и это у меня выливается в два проекта. Первый проект -- простое улучшение базовых характеристик: увеличение памяти, увеличение частоты процессора, добавление цвета и звука по схеме Апогея, что позволит достаточно просто переносить с него программы, добавление RTC и подключение SD Card (у меня своя реализация, отличная от vinxru, не занимающая порт), больше я ничего добавлять не планировал. Проект почти готов, уже разведена плата, но есть кое-какие заморочки, которые я стараюсь решить.
Все хотят что-то улучшить, но при этом эти улучшения пытаются впихнуть в уродский компьютер, под названием "Радио-86РК". Зачем? Зачем иметь его ограничения? Так почему бы просто не создать компьютер с нуля, о чём я тут уже неоднократно говорил? Поставить ВК28? Пожалуйста! Памяти вагон? Нет проблем! Цвет? Графика? Да ради бога! Это будет мой второй проект, накидал примерную схему, на макетке спаял пока процессорный модуль, но пока времени им заниматься нет, пока не закончу с первым проектом.

Vladimir_S
23.03.2017, 05:27
Т.к быстрый Z80 никто, кроме меня, иметь не хочет.
У меня Z80 с программно переключаемой тактовой частотой.

barsik
23.03.2017, 10:00
Реализация идеи - "4 архитектуры в одном" теоретически возможна. Но она будет немного громоздка. И одной РТ4 не удастся ограничиться. Придётся ставить две РТ4 или лучше РТ5. Итак 3 входа РТ4 - A12, A13, A14. Ещё 3 входа - на другие адреса. И 2 адресных входа - на переключение типа клона. Но надо не только переносить В/У, но и открывать ОЗУ 8000...EFFF. Значит нужен ещё один выход РТ4. Значит ещё одна РТ4 управляет "открытием ОЗУ" 8000...EFFF. На её адресных входах A12, A13, A14, A15, а выход (инвертированный) идёт на D10.2/4 (что формирует /CAS при активности /WR или DBIN). Две РТ4 заменяются одной РТ5.

Иной вариант - две КП11, коммутирующие адреса на входах ИД7, был бы возможен, если бы была система в распределении адресов клонов. Т.е если адреса В/У в клонах следуют в том же порядке, как и в РК86, т.е PPAKBD, DOPPPA, VG75, VT57+ПЗУ, только не с шагом в 8 кб, а с другим шагом. Но такого нет. Значит без РПЗУ не обойтись.

И нужен всё-же РТ5, т.к в клонах есть ВИ53, отчего нужно формировать уже не 4 чип-селекта для портов, а пять, что реализуется на РТ5. К тому же ещё надо переносить и чип-селект для РК-КНГМД. Т.е надо передвигать уже 6 чип-селектов, так что одной РТ4 явно не хватит. Есть и другие причины почему надо именно РТ5. А доставать и прошивать РТ5 - это кошмарная проблема.

Из идеи "4 в одном" придётся выкинуть "Партнёр". У него иной кварц и память ПЗУ/ОЗУ в адресах выше 8000, управляемая сложной логикой, которую не "отразить" прошивкой РПЗУ. Остаётся идея "3 в одном". Четвёртый, самый крутой клон РК с самыми лучшими программами отпадает.

Сколько игр есть у "Апогея", которых нет у РК86. И сколько игр есть у "Микроши", которых нет у РК86. Таких игр довольно много, возможно до четверти в каждом клоне. Эти игры в основном сделаны идиотами, которые лезут внутрь своего уникального ПЗУ F800, отчего для их переноса недостаточно найти адреса портов и исправить. Кроме того, как я понимаю, не перенесены на РК и игры, которые напрямую используют экран несовпадающий с "эр-кашным", так что для переделки приходится найти все ссылки программы на экран и исправить.

Но есть и обратная проблема - как перенести "железо-ориентированные" программы РК на его клоны. Нельзя заботиться только о части контингента. Но главная беда, - аппаратное решение проблемы несовместимости "откидывает" всех владельцев готовых промышленных аппаратов в опломбированных корпусах. Эти люди или не имеют паяльника или желания им воспользоваться, чтобы увидеть несколько недоступных ранее игр от РК86.

Так что не вижу решения проблемы несовместимости РК и клонов аппаратными средствами.

Для решения проблемы программными средствами можно выяснять тип клона по сигнатуре ПЗУ F800. ПЗУ промышленных аппаратов жёстко фиксированы и журнального РК86 - тоже (точнее в РК86 два стандартных ПЗУ - для РК-матрицы и для MS7007-матрицы клавиш). Поэтому простейшим способом определения типа клона является подсчёт контрольной суммы ПЗУ и извлечение из таблицы известных контрольных сумм результата. Важно, что это не откидывает тех, кто прошил чуть модифицированное ПЗУ F800 (достаточно подставить в код свою КС и Ваш РК86 будет определяться правильно).

Да и вообще, как указал uart, - особой проблемы нет. Из-за проблем несовместимости на РК86 недоступна половина программ от клонов, но имеющихся программ всё-же хватает, чтобы оценить остальные игры. Если бы было несколько программистов желающих потратить несколько дней труда на адаптацию программ от клонов, то проблемы со старым ПО вообще бы не было. Так что нет смысла тратить больше труда на аппаратное решение проблемы, если есть менее трудоёмкое программное решение. Проблема лишь найти энтузиастов любящих работу дизассемблером.

Предвижу, что кто-то выскажется, что на ПЛИС аппаратное переключение адресаций реализуется гораздо проще... Но это не "лампово". Надо применять только те детали, что были доступны авторам РК86.


У меня Z80 с программно переключаемой тактовой частотой.

Надеюсь, что Вы используете Z80B и в режиме ТУРБО имеете такт Z80 в 8 или 9 МГЦ. При тактировании ВТ57 тактом в 3...3.5 МГЦ, циклы ПДП отнимают менее 10% процессорного времени, так что быстродействие остаётся на уровне ~8 МГЦ. Этой скорости достаточно для программной эмуляции клонов РК86. Для совместимости с ориентированным на программные задержки РК-КНГМД надо аппаратно включать режим НЕ-ТУРБО со скоростью ~1.3 МГЦ по обращению в порт РК-КНГМД, а через пол-секунды возвращать режим ТУРБО. Это реализуется на одном одновибраторе АГ3 с константой одновибрации в полсекунды, который перезапускается по каждому обращению в РК-КНГМД.

barsik
23.03.2017, 12:28
а ведь в архитектуре "3-в-1" переключать приходится гораздо больше, чем 3 источника

Трудно понять смысл реплики zebesta. Вероятно он хочет сказать, что что-то подобное сделали ранее на CPLD/FPGA. И то, что идея совместимости в реализации на TTL-корпусах получается слишком громоздкой и не достигается 100% совместимость.

Идея "4 в одном" - не моя, и это меня не интересует. А идею "2 в одном" (Апогей + РК) уже реализовал Vladimir_S.

Так что не вижу в этом ничего невозможного, даже и без CPLD/FPGA. На входе РТ5 в крайнем случае можно поставить КП11, который переключает адреса на РТ5. Для аппаратной совместимости аппаратно переключать приходится адреса семи чип-селектов. Ну и для программ лезущих в ПЗУ - код ПЗУ. Не упомянуто лишь, что для переключения фонта командой DI/EI и смены источника звука тоже придётся истратить КП2, но это ясно и без слов.

Я мало что знаю о клонах. Знаю, что схема та же, а адреса экрана и портов отличаются и ПЗУ F800 другое. Что ещё можно указать как причины несовместимости РК86 с Апогеем и Микрошей? Если цвет сделан атрибутами по ж.Радиолюбитель 04.1992, то даже это совместимо с цветом Апогея-БК/Ц.

Какова цена вопроса? Прошивка РТ5, замена ПЗУ F800 на 27256, замена ПЗУ фонта на 27256, две КП11 и пара-тройка корпусов 1533 логики для обрамления. На мой взгляд это без особых проблем реализуемо и уверен, что даже 100% совместимость достижима. Просто это, - мне лично не интересно.

Если я захочу игру Апогея, я её конвертирую для РК86. А вот игру "Партнёра" я не смогу перенести на РК86, т.к паять модуль МЦПГ со второй параллельной ВГ75, я бы явно не стал, даже если бы имел схему.

Кстати, как синхронизируются две ВГ75 работающие параллельно (в модуле МЦПГ и на плате "Партнёра")? Думаю, что по записи они выбираются одновременно, чтобы принять код команды, а вот чтение они делают каждый из своего ОЗУ. Можно ли вторую ВГ75 напаять вторым этажом на стоящую на плате ВГ75? Даст это какую-то пользу или нет?

Переделка платы РК86 для совместимости "3 в одном" - это не решение проблемы несовместимости для всех. Как указано выше, это решение годится только для нескольких владельцев РК86 имеющих паяльник и кучу энтузиазма, чтобы им воспользоваться. Владельцы МИКРОШ, АПОГЕЕВ и ПАРТНЁРОВ будут разочарованы.

PS: Это не ламповость, это просто старое хобби. А ламповость это, когда в РК86 заменить РУ5-тые на 565РУ1 (динамические ОЗУ 4К на 1 из 1970 года) и гонять в нём КР580 на такте 4 МГЦ с большим медным радиатором и мощным вентилятором. Это вполне реализуемо (когда нибудь, по крайней мере, 3.75 МГЦ сделаю). Один чувак рассказывал, что разгонял КР580 до 6 МГЦ. Врёт конечно, но думаю что до 4.5 МГЦ при интенсивном водяном охлаждении КР580 можно разогнать.

Vladimir_S
23.03.2017, 12:38
А идею "2 в одном" (Апогей + РК) уже реализовал Vladimir_S.
Сейчас жду посылочку и буду паять комп (в общем то тот же самый) только в нем оба процессора будут подключены постоянно, только выбор компа и процессора будет выбираться не перемычками, а с помощью контроллера с индикатором. На морде лица будет три кнопки - включение питания, сброс, и выбор пары (комп+процессор).
Например - (РАДИО - 86РК CPU - Z80).

ZEvS
23.03.2017, 13:26
Реализация идеи - "4 архитектуры в одном" теоретически возможна. Но она будет немного громоздка. И одной РТ4 не удастся ограничиться. Придётся ставить две РТ4 или лучше РТ5.

А почему бы, вместо РТшек не поставить РФку?
У РФки 8 выходов, а значит 8 чипселектов, первый идет на ОЗУ.
Можно взять 2 микросхемы 62256 и сделать ОЗУ на все 64кБ, а вот ПЗУ РФ2, выбирает где есть память, а где нет.
Итак, заводим A0-A3 и A12-A15 на РФ2 (или РФ5 или вообще W27C16), и еще две линии это код клона.
Переключение клонов можно сделать так:
По сбросу, подставляется ПЗУ, вместо ОЗУ (как на родной системе), там инициализируется дисплей, ПДП и клавиатура, и выводится сообщение "выберите клон", после выбора, Нужный "монитор" переписывается из ПЗУ в ОЗУ по адресам F800-FFFF, и туда передается управление. :v2_dizzy_punk:

А можно вообще "монитор" грузить в ОЗУ с носителя, тогда можно переориентировать на любой клон...


Какова цена вопроса? Прошивка РТ5, замена ПЗУ F800 на 27256, замена ПЗУ фонта на 27256, две КП11 и пара-тройка корпусов 1533 логики для обрамления. На мой взгляд это без особых проблем реализуемо и уверен, что даже 100% совместимость достижима. Просто это, - мне лично не интересно.

К слову, мне тоже не интересно, я по микрошам. Но пусть идея развивается.

uart
23.03.2017, 14:13
Что ещё можно указать как причины несовместимости РК86 с Апогеем и Микрошей?
Например памяти у РК мало. Второй шрифт и ВИ53 конечно можно добавить, но зачем держаться за адресное пространство РК, когда Апогей доказал, что никакой сакральности в этом нет.

Vital72
23.03.2017, 16:10
А почему бы, вместо РТшек не поставить РФку?

Ага...
Время задержки сигнала? Не, не слышал. Обычно у РФ-ок время задержки 450 нс, у самых лучших импортных экземпляров время снижается до 200 нс. Время одного такта при частоте синхронизации проца 3МГц равно 333 нс, т.е. пока РФ-ка сработает проц уже выставит новые сигналы на линиях.

alx32
23.03.2017, 16:28
РТ4 ещё можно как-то запрограммировать пусть даже с помощью ручного прошивальщика, а вот насчёт РТ5 у меня даже фантазии не хватает. Я уж не говорю о том что они греются так что текстолит под ними темнеет...
Впрочем как и РЕ3...

ZEvS
23.03.2017, 17:41
Ага...
Время задержки сигнала? Не, не слышал. Обычно у РФ-ок время задержки 450 нс, у самых лучших импортных экземпляров время снижается до 200 нс. Время одного такта при частоте синхронизации проца 3МГц равно 333 нс, т.е. пока РФ-ка сработает проц уже выставит новые сигналы на линиях.

Ваша правда, каюсь, не учел.

Vital72
26.03.2017, 12:37
Разговоры уже давно ушли от главной темы -- модульного компьютера, и я предлагаю к ней вернуться.
Хотелось бы узнать, сколько человек среди участников форума хотят развить эту тему до реального производства плат?
В отличие от ТС я предлагаю соединять модули не бутербродом, а иметь в основании материнскую плату с разъемами, а в неё уже вставляются платы модулей с краевыми разъёмами.
Сегодня с утра, от нечего делать, я развел такую материнскую плату. Для разъёмов выбрал стандартные разъемы на 62 контакта, которые использовались на платах PC XT, так что проблем с их приобретением быть не должно, количество разъемов выбрал 8 штук. Модули я бы разбил так: процессорный модуль, модуль памяти, модуль дешифратора адреса, модуль видеоадаптера и модуль портов. Вообще говоря, данная конструкция не будет заточена конкретно под Радио-86РК, это один из вариантов исполнения, по сути конструкция позволяет создать любой из имеющихся компьютеров, если грамотно разделить его схему, а в самих модулях я предлагаю использовать изменяемую конфигурацию, чтобы один и тот же модуль можно было использовать в разных компьютерах. Например, процессорный модуль: в Радио-86РК не используется контроллер ВК28, а где-то он нужен. Можно предусмотреть место для контроллера, а конкретную конфигурацию выбирать джамперами. Также и с дешифратором адреса.
Готов взять на себя разводку и заказ плат, если будет интерес.
3Д модель материнской платы:

60264

На плате кроме слотов размещены: разъем питания, выключатель, защитные диоды и LC-фильтр. Для питания используется обычный сетевой адаптер с разъемом 2.1 x 5.5 like this:

60267

ALS
26.03.2017, 14:55
Я бы какой-то базовый объем памяти разместил на той же плате, что и процессор.
Как минимум, было бы надежней за счет отсутствия многочисленных переходных контактов.
А вот расширять ее, при необходимости, можно за счет доп. карты.

ZEvS
26.03.2017, 15:37
Хотелось бы узнать, сколько человек среди участников форума хотят развить эту тему до реального производства плат?

Мне тема интересна, но я бы сказал - потенциально. Кстати, как Вы знаете я занимаюсь проектом "видеовыход РК" и, возможно, разведу ее в под Ваш ПЭВМ в дальнейшем (как один из вариантов исполнения).

Теперь, позвольте покритиковать. У Вас, получается, плата есть просто набор спараллеленых слотов, такая плата, на мой взгляд весьма дорогая, может поставить на ней процессор, тактовый генератор, ПЗУ. А все остальное втыкать в слоты?
8 слотов, не многовато?
Вероятнее всего, самой сложной платой в слоте будет плата видео, и размещать контроллер ПДП придется на ней-же.
Наверное интересно сделать на каждой дочерней плате свой адресный дешифратор с перемычками для установки мапинга. Тогда на плате нужен шинный буфер адреса, для того, чтобы тянуть по току все дешифраторы.
Также в дальнейшем можно сделать "конфигуратор" - плата от которой шлейфа идут на другие платы и подтыкаются вместо перемычек, тем самым меняя модель клона.
Такая плата, хорошо-бы, подходила в какой-нибудь корпус, например, mini ITX, тогда можно делать законченные компьютеры с настраиваемой софтовой конфигурацией.

П.С. Такую машинку я бы себе собрал :)

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


Я бы какой-то базовый объем памяти разместил на той же плате, что и процессор.


Я, примерно, про то-же. То, что во всех машинах одинаково, надо ставить на материнку. ИМХО.

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


3Д модель материнской платы:


И еще, немного, критики :)
У Вас на плате разъем питания, выключатель "смотрят" куда-то вбок, а может, разместить их между слотами и направить назад?
И три последних (справа) слота я бы снес и поставил бы процессор с ПЗУ и базовой частью ОЗУ.

Vital72
26.03.2017, 15:41
Я бы какой-то базовый объем памяти разместил на той же плате, что и процессор.

А вот мне кажется, что этого делать не стоит. Во-первых, память располагается по каким-то адресам, значит придётся ещё и адреса дешифрировать, а это не то, что должен делать процессорный модуль, во-вторых, процессорные модули могут содержать разный процессор, кто-то хочет ВМ80, кто-то ВМ85, кто-то Z80. По той же причине, на материнской плате не может быть ничего, кроме запараллеленных слотов. Как вариант, память можно разместить на дешифраторе.



Теперь, позвольте покритиковать. У Вас, получается, плата есть просто набор спараллеленых слотов, такая плата, на мой взгляд весьма дорогая, может поставить на ней процессор, тактовый генератор, ПЗУ. А все остальное втыкать в слоты?

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


8 слотов, не многовато?

Взял с запасом, но можно и уменьшить. Т.к. я изначально предполагал использовать 5 модулей: процессорный, память, дешифратор, видео и порты, то три оставил для расширения.

И опять же. Идея не в том, чтобы сделать модульным именно Радио-86РК, а всё, что душе угодно, что можно разбить на модули, а также создавать уникальные конфигурации, использовать свои разработки.

kuber
26.03.2017, 16:20
Приветствую всех на форуме.
Я тоже за концепцию модульного конструктива.
Упрощается многократно модификация и расширение проекта.
Надо только определится с необходимым кол-вом линий на шине и разъёмов под модули.
На этом сайте на форуме уже где то обсуждали подобное.
В нете как пример RC2014.
Идея очень интересная , можно по обсуждать.
Краевой разьём на "материнской плате" видится SIMM-72, правда не понятно как себя будет вести с "тяжелым модулем",
ПЗУ, процессор, логика?

ZEvS
26.03.2017, 17:35
А вот мне кажется, что этого делать не стоит. Во-первых, память располагается по каким-то адресам, значит придётся ещё и адреса дешифрировать, а это не то, что должен делать процессорный модуль, во-вторых, процессорные модули могут содержать разный процессор, кто-то хочет ВМ80, кто-то ВМ85, кто-то Z80. По той же причине, на материнской плате не может быть ничего, кроме запараллеленных слотов. Как вариант, память можно разместить на дешифраторе.
Этот вариант уже не вписывается в мою идею, а идея заключается в том, что можно будет использовать любой проц.
Взял с запасом, но можно и уменьшить. Т.к. я изначально предполагал использовать 5 модулей: процессорный, память, дешифратор, видео и порты, то три оставил для расширения.
И опять же. Идея не в том, чтобы сделать модульным именно Радио-86РК, а всё, что душе угодно, что можно разбить на модули, а также создавать уникальные конфигурации, использовать свои разработки.

Что, могу сказать... Убедили! :)

После окончания моего проекта, помогу чем смогу, например разведу какую-нибудь дочернюю плату. Если, конечно, Вы не против.

barsik
01.04.2017, 10:05
Идея кросс-платного компьютера была придумана в 1984 году и применена в ИРИШЕ. Только это не помогло ей стать популярной. Такая конструкция удобна только разработчику. Экспериментаторов осталось совсем мало, а подавляющему большинству пользователей не нужна плата для экспериментов, а нужна маленькая готовая плата, где реализован весь РК86 (3.2 МГЦ с ВК28) и плюс два слота, чтобы воткнуть мультикарту и цветной графический адаптер 512*256, схема которого у меня есть. Только с такой платой можно рассчитывать на спрос.

Зачем для РК86 8 слотов? Зачем схему РК86 разбивать на кусочки по 3-4 микросхемы и разбрасывать по 5-ти периферийным платам? А тратить на дешифратор ИД7 целую периферийную плату вообще странно. Зачем делать платы, которые будут почти пустыми? Конечно решает тот, кто делает разработку.

Идея использовать слоты XT хороша, т.к у многих есть платы 386-тых и 486-тых, на каждой из которых уже есть готовая кросс-плата, т.е стоИт 7 слотов, из них половина AT, половина XT слотов. Но и AT-слоты включают XT. У меня, например, есть 3 таких платы. Остаётся только выпилить лобзиком кусок платы и прозвонить соединения.

Вы подали хорошую идею, т.к одну 486-тую я уже уничтожил, чтобы выпилить разьъёмы SIMM-ов. Один такой слот действительно удобно добавить к СПЕЦИАЛИСТУ или РК86. Но только не XT и не целый AT слот. А отпилок от AT-слота, та часть, где 36 контактов. Этого достаточно для любой периферии. Врубную часть удобно выпиливать из старых периферийных плат, например VGA-адаптера.

Вообще-то слоты для РК86 изобретать не надо. Такие слоты на 60 контактов уже применены в МИКРОШЕ и есть периферия для этого стандарта слотов. Потому в новом клоне РК86 правильно использовать стандарт слота МИКРОШИ. Тогда все, у кого есть платы РК-КНГМД (а их было продано тысячи) смогут их использовать. Использовать РК-КНГМД с XT-слотами (вставив вместо 31-го ряда перегородку), - не получится. Т.к шаг дюймовый и за 30 ламелей набегает существенный сдвиг относительно контактов с метрическим шагом..

Сам я использую эпловские слоты по 50 контактов. Платы РК-КНГМД для МИКРОШИ из Лианозово имели врубной раэъём на 30 контактов в ряду (почти XT, где 31 контакт в ряду), но цепи выведены так, что можно просто отпилить 5 контактов в ряду, без потерь сигналов и тогда РК-КНГМД прекрасно втыкаются в эпловские разъёмы. А они у меня как раз были, т.к в начале 90-х распотрошил Правец-8М и пару APPLE-II. Потому эпловские слоты я использовал для подключения РК-КНГМД к РК86, ОРИОНУ и СПЕЦИАЛИСТУ. Потому, если бы я делал клон РК, то я бы поставил эпловские слоты.

Но для XT-слотов следует использовать стандарт XT, чтобы можно было втыкать в плату РК86 видеоадаптер CGA, HERCULES-color, EGA и старые VGA (они не используют AT-шную часть слота, чтобы подходить и к XT).

Слоты полезнее всего тогда, когда в ЭВМ есть "открытая архитектура". В "Партнёре" позаимствовали идею "открытой архитектуры" (потому и смогли легко подключить МЦПГ). Полагаю, что в этой теме мало знатоков APPLE-II. Кратко, изложу суть. На каждый слот выделяется определённое количество адресов В/У, благодаря чему не возникает конфликтов между периферийными платами. Адреса В/У зависят от того в каком слоте стоит плата. На каждый слот выделено 256 байтов для стартёра. И каждая периферийная плата, когда активна, включает в окне 2 кб своё ПЗУ с драйвером. В плате КНГМД драйвер КНГМД, в плате НЖМД - его драйвер, в плате принтера и в платах текстового и граф.адаптера тоже. Поэтому, когда пользователь покупает плату, то покупать дискету с драйвером ему не нужно, т.к драйвер стоит в самой плате.

Но открытая архитектура предполагает обычную конструкцию - матку и периферийные платы. А крейтовая конструкция, что Вы хотите иметь, - это не то.

PS: При XT-слотах нужна дополнительная фиксация плат. Платы без фиксации в фирменных слотах качаются с амплитудой до 6-8 сантиметров, т.е без фиксации плат винтом, контакт будет плохой.

Vital72
01.04.2017, 13:39
вы вообще не поняли суть моего предложения, опять понаписали простыню сплошной воды.


Такая конструкция удобна только разработчику. Экспериментаторов осталось совсем мало, а подавляющему большинству пользователей не нужна плата для экспериментов, а нужна маленькая готовая плата, где реализован весь РК86

Я вообще думаю, что любителей 8-компов осталось немного.

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

barsik
01.04.2017, 17:28
вы вообще не поняли суть моего предложения, опять понаписали простыню сплошной воды

Мне кажется, что я понял. Но если не понял, так разъясните.


Полагал, что это ресурс разработчиков, и тех, кто любит ковыряться в старых железках.

Как-раз разработчиков мало. Больше молодёжи из интереса покупающих готовые платы и собирающих рэтро-компы. Посмотрите, все новички почему-то хотят собирать оригинал. Поэтому и призываю учитывать реальность. Сложные изделия и конструкторы рассчитаные на дальнейшую перспективу не нужны. Не вижу смысла разрабатывать полностью новый 8-ми разрядник. Контрольный вопрос, - кто будет писать для него программы, даже если архитектура будет очень удобная?

Я "не вставляю палки в колёса" Вашему техническому прогрессу. Но ведь это форум, здесь обуждают. В ходе чего рождаются хорошие идеи. Мне понравится всё в Вашем компьютере, что я буду в силах повторить на своём РК86 и не нравится всё, что я повторить не смогу.

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

Кардинальное изменение платформы РК, нехорошо потому что выпуск новых плат (с доработками, что нельзя повторить за несколько часов труда), - это "растаскивание платформы на части", а значит неминуемая гибель. РК86 привлекательнее МИКРОШИ и других клонов тем, что его можно дорабатывать, а готовые промышленные конструкции в запечатанных корпусах нельзя. Я уверен, что имея электро паяльник можно существенно улучшить РК ничего и никого не потеряв.


Идея очень интересная, можно пообсуждать... видится SIMM-72
Почему именно SIMM72, а не SIMM30, ведь они намного удобнее. А если довод нехватка объёма, то существовали SIMM30 на 16 мб. Этого должно Вам хватить, по-крайней мере на первое время... Сам я считаю, что и 1 мб для РК86 чересчур много.

kuber
12.04.2017, 13:24
Приветствую всех на форуме.
Модульность в своих конструкциях использую пару лет. По мне удобств на порядок больше чем трудоемкость в проектировании в единого целого.
simm72 имеется ввиду удобный низко профильный разъём для подключения модулей плат с достаточным кол-вом контактов.
Память - целесообразней статику, на сегодня есть в разных корпусах любых объёмов.
Момент в том какая надёжность фиксации контакта самодельных модулей. В наличии только simm30 разъемы, но в них маловато сигнальных линий.
Кол-во сигнальных линий и линий питания с учётом расширения видится - 20 адрес, 8 данные, 8 управление, 8 питание - 44 контакта минимум.
Из доставаемых simm72 самое то, с лихвой хватит
Достану simm72 разъём, разведу для интереса тестовые платки.
Посмотрим надёжность конструкции.

Vladimir_S
06.06.2017, 19:18
Или TM9, на ней разрядов больше (в запас, мало ли что еще надо конфигурить)
Тогда уж КР1533ИР35.