Конечно, РК86 удивляет. На первый взгляд он разработан по-идиотски. Точнее странно использует ВГ75. Например, координаты POSX, POSY сдвинуты на 8 и 3, отчего в драйвере ПЗУ приходится исхитряться для вывода в окно 64*25. Однако для этого есть причины.Сообщение от freddy
Хотя то, что РК, заложенные в ВГ75 возможности, использует лишь наполовину, это неоспоримый факт. Самое обидное, что инверсия, вывод рамочек и второй фонт КОИ-8 обошлись бы всего в пару корпусов (ценой по 40 копеек). Если бы вместо ИЕ4 поставили ИЕ5, то РК имел бы красивый фонт 8*8, вместо убогого 6*8. Что сделало бы РК машиной для текстообработки. Добавка цвета сделала бы красивыми игры. А грамотный выбор адресации портов дал бы 60К ОЗУ и фактически превратил бы его в "Роботрон-1715". А главное, - тогда РК стал бы совместимым с сотнями ЭВМ в мире.
Это даже не случай, когда скупой платит дважды. Это случай, когда экономия фактически превратила саму идею РК в нонсенс.
При разработке РК не работал принцип 'Если взялся что-то делать, то делай хорошо'. Одно дело когда ты паяешь что-то на кухне для себя. А другое дело, когда ты лезешь в самый массовый журнал страны, что имеет следствием выпуск сотен тысяч плат РК и клонов, и миллионы впустую истраченных народных денег. Если бы за окном был 37-й год, то авторы РК точно были бы объявлены врагами народа.
Ранее я не понимал схемных решений авторов РК86. Но когда я решил посчитать будут ли в нём регенерироваться SIMM с 10/12-ти битовым вектором регенерации, всё стало ясно.Сообщение от freddy
Т.к экран в РК86 - 78*30, то даже не учитывая, что растр РК не влезает в экран, при попытке использовать 30 строк для текста произойдет срыв синхронизации по кадрам. И по строкам то же самое. Никакой телевизор или монитор ничего не выведет с таким видео-сигналом. Как можно объяснить всё это? Ведь установив размер строки в 64+4 байта (4 на атрибуты) и стандартные 25 строк, получаем экономию в 78*30-68*25 = 640 байт. Зачем их тратить впустую, когда ОЗУ и так не хватает. Но ведь не идиоты же авторы РК86? Остаётся думать, что для того, чтобы сделать такой режим ВГ75, у них были причины.
Вспомним, что в РК86 стоят ОЗУ 565РУ3 с временем регенерации 2 МСЕК. Вывод строки длится 640 МКСЕК. Для регенерации РУ3-х надо считать подряд 128 адресов. В строке перебирается 78 адресов. Итого, для регенерации требуется 2 строки и период 1.28 МСЕК вполне укладывается в допуск 2 МСЕК.
Кадровый период состоит из 312 строчных периодов. Видимый растр выводится за 250 строчных периодов. 62 строчных периода отводятся на гашение экрана по кадрам - т.е кадровый бланк. На 62 строчных периода приходится 6 строк по 10 линий растра.
Таким образом в идеале надо запрограммировать ВГ75 на вывод неотображаемых 6-ти строк на обратный ход кадровой развёртки. Но тогда на время вывода 6-ти строк не будет выполняться регенерация ОЗУ. С учётом того, что регенерация занимает 2 строки, период регенерации составит 8*64*10= 5.12 МСЕК, что явно больше необходимых 2-х МСЕК.
Это и объясняет почему схемотехника РК86 такая.
Авторы, применив динамические ОЗУ и отказавшись от специальных схем регенерации, просто вынуждены были растянуть экран по вертикали до 30 строк (включив тем самым бордюр в экран) и имитировать бордюр программно. Они действовали по РТМ, зная, что при большом числе строк на обратный ход луча по кадрам, будет перерыв регенерации и потеря данных в ОЗУ. Поэтому они и применили минимальное число строк на обратный ход луча и программное формирование "гашения по кадрам".
Таким образом авторы РК86 не были идиотами. Однако тот же программный способ они сдуру применили и для формирования ССИ и бордюра по строкам, затемнив по 7 знакомест слева и справа от строки, за счёт заполнения нулями. Тут это уже не объяснить ничем, кроме желания с'экономить 1 корпус 155-той серии.
Применение аппаратного ССИ и аппаратного бордюра по строкам, ускорило бы прогон, с'экономило бы 14*30=420 ячеек памяти, но главное - позволило бы произвольно программно менять режим дисплея, т.е число символов в строке. А сейчас мы жёстко связаны необходимостью иметь 78 символов в строке. Кстати ровно столько надо, чтобы частота строк была правильной. Строчный период: 78*(6:8) + 6*(6:8)= 64.5 МКСЕК.
Что, жёстко проехал по авторам РК? Согласен. Они были первыми, ещё когда мы слово микропроцессор считали матерным и плевались, получая ж.РАДИО со статьями о КР580. Не спорю, у авторов есть заслуги перед отечеством в сфере компьютеризации и большое спасибо им за это. Но это не отменяет их ошибок.
И полагаю, что все мы "выросли из коротких штанишек РК86". Эта странная, но часто встречающаяся у классиков фраза, должна означать, что реальное начало 'MP-hobby' в нашей стране дал именно РК86.
Для меня РК это мой первый компьютер и первый, что я решил доработать - спаял для него плату граф.адаптера 384*256 (по журналу RFE, 10.1987). Но я тогда не умел делать ПО, - в итоге, этот граф.адаптер стал моим первым эл.диском. А к мысли подключить к РК86 внешнюю графическую плату в ж.РАДИО додумались лишь в середине 90-х.
Насчёт того, что ВГ75 сможет выводить графику 640*400 за счёт доступа процессора к фонту. Не понял, как загрузка фонта поможет увеличить разрешение экрана.
Кстати, в 1988 я знал одного корифана с РК, который пытался его доработать, введя оперативную подгрузку фонта (чтобы игры РК стали красивыми). Фонт для ВГ75 хранится в ОЗУ с раздельными входом и выходом. Входы ОЗУ подключены к ШД. А адреса ОЗУ с помощью 3-х КП11 при обращениях КР580 переключаются от ВГ75 на ША. Благодаря чему и происходит загрузка фонта. Дальше набросков схемы дело не пошло. Но думаю конструкция могла бы работать.
Идея изменять фонт, чтобы сделать игры РК красивыми всё-же была использована. В 1990 я разговаривал с одним белорусским "малым предпринимателем". Он сказал, что поставил в игровой салон в качестве игровых автоматов ЭРКА-шки с играми в ПЗУ. Чтобы игры были красивыми использовался свой фонт для каждой игры. При этом визуально на экране не псевдографика с пикселями 3*4, а реальная поточечная графика. Никто даже не догадался, что это выводит РК.
РК86 с его 29 микросхемами (и дефицитной ВГ75) преподнесён в 1986 году как предел простоты и минимизации. Но 29 микросхем это далеко не предел. В журнале RFE 01.1985 был опубликован текстовый компьютер на двух десятках корпусов, использующий вывод символов процессором цепочкой команд NOP. Полагаю, что идея была заимствована у ZX81.
Скрытый текст
Ещё более победительная идея была реализована в графическом компьютере из журнала RFE 08.1987. Компьютер с разрешением лучше СИНКЛЕРА всего на 21-ой микросхеме! Причём, если заменить 8 шт. РУ5 на две 62256, а две ИР16 на ИР9, то корпусов будет на 7 меньше. Это высший пилотаж разработчика микропроцессорной техники! Автору надо было поставить памятник.
Кучу счётчиков, что в традиционных схемах, заменяют два канала таймера, и используется то, что Z80 во время RFSH-цикла выводит на младшую половину шины адреса регистр R (инкрементируя его каждый раз), а на старшие адреса выдаёт регистр I.
Перед началом кадра приходит INT и Z80 уходит на визуализацию. В которой для синхронизации он ждет импульс от таймера. Регистры R и I ставятся так, чтобы адресовать начало первой строки из экранной области и Z80 уходит в состояние HALT. Затем приходит NMI-импульс, отчего Z80 покидает HALT, но стопорится по WAIT. Пока не придёт ССИ. После чего у Z80 есть время, пока идёт бордюр слева, чтобы адресовать R на текущую строку. Всего 3-х команд Z80 достаточно для подготовки вывода строки. Последней командой выполняется HALT. После чего тактами RFSH начинается вывод на экран. Байт за байтом и без всякого участия процессора и каких-либо счётчиков. Байт считывается из ОЗУ и заносится в регистр сдвига. Затем побитово сдвигается на экран. В конце вывода строки снова приходит NMI и процесс повторяется для следующей строки.
Вся программа визуализации состоит из 3-х команд : LD A,nn : LD R,A : HALT : повторенных 200 раз (сколько строк растра). На период кадра приходится 320 строк, из которых 200 отображаются. Следовательно видео-вывод отнимает у процессора 200/320 - 62 процента времени. Т.е реальная скорость Z80 падает до 38% от такта. А в РК86 видео тормозит лишь до 75%. Но уже при такте Z80 в 4 МГЦ достигается скорость в 4*0.38= 1.52 МГЦ, что быстрее, чем 1.3 МГЦ РК. Тут синхронизация со счётчиками не нужна, можно выбрать любой такт Z80. А т.к Z80A тянет 6 МГЦ, Z80B работает при 8.5, - то считайте сами кто быстрее.
Недостаток в том, что полностью теряются все прерывания. Это не фатально, при нужде их легко заменить опросом флага в процедуре визуализации, которая происходит 50 раз в секунду. Цвет в такой схеме организуется только по принципу адаптера CGA, т.е ОЗУ для экранных атрибутов не может быть в другой банке (как в ОРИОНЕ). Цвет пикселя можно задать только в самом экранном байте.
Важным плюсом является то, что отображаться может любой графический экран с линейным расположением экранных байтов по линии растра. В частности, ИРИША, СПЕЦИАЛИСТ. Т.е это готовый эмулятор чужих ЭВМ, причём изначально предназначенный для турбирования.
Иными словами, схема это шедевр минимизации, а этот компьютер - "машина времён и народов".[свернуть]