Апогей в Proteus

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Апогей в Proteus

Post by Damir »

Попробовал собрать на РК86 схему дешифрации портов Апогея и подключил её ПЗУ и ЗГ - запустил его пока в Протеусе :
APO_1-photo.jpg
APO_3-photo.jpg
Предварительно все работает. ПЗУ АПОГЕЯ практически полностью повторяет ПЗУ оригинального РК86, за исключением настроек памяти, экранной области и портов специфических для Апогея. директива "U" не работает, нет перехода на "F000", есть 4 перехода на адреса второй ПЗУ 2Кб с "F000", но что там пока не понял.
Сохранены все стандартные точки входа в Монитор, думаю если использовать эти стандартные точки входа, РКашные программы будут работать без переделок, например у меня без проблем заработала моя программа загрузки каталога из РОМ диска
APO_5-photo.jpg
Думаю, если без переделок , только добавив выходы для цвета, как в Апогее и изменить настройки ВГ75 - РК сможет стать такой же цветной , как Апогей. все остальное полностью совпадает. осталось разобраться с 2 ПЗУ - похоже там есть какието тесты и ещё что то ?
You do not have the required permissions to view the files attached to this post.
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Апогеи

Post by Damir »

Продолжаю с Апогеем Ц
подключил РОМ диск - тоже аналогично как в РК86:
APO_6-photo.jpg
есть много игр :
APO_8-photo.jpg
И мой РК86 в Протеусе тоже стал ЦВЕТНЫМ !!!
RA86_15-photo.jpg
правда в РК пришлось изменить вывод на экран - своя программа безжалостно обнуляет старший бит 7 при записи в экранную память и никакие атрибуты цвета не работают.
В дополнительном 2 ПЗУ есть список новых команд :
"J", "Z" "W" "H" "Q" "A" "B" "K" "V" "P"
"P" - это тесты памяти Апогея.
"V" похоже на запись данных на внешний РАМ диск, причем запись происходит командами EI DI - установка сброс выхода INTE процессора, который ктому же используется для переключения страниц ПЗУ знакогенератора
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Апогей в Proteus

Post by Shaos »

Это ПЗУ от Апогея? V получается недокументированная директива? Надо её чтоли дизассемблировать...
Я тут за главного - если что шлите мыло на me собака shaos точка net
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Апогей в Proteus

Post by Damir »

Искал в документации информацию про то как организован графический режим и нашел далеко в другой теме про эту директиву "V" - в документации - есть про неё тоже оказывается :
APO_127-GSSM.jpg

а про графический режим так ничего и не понятно.
Понял, что переключает знакогенератор на 2 половину - где знакоместа 4 ряда по 6 точек, и значит что бы заполнить экран надо выводить
не 25 а 50 строк по 64 символа, а для этого должна быть дополнительная экранная память ( ещё столько же ) а где она располагается и как определить когда она подключается - пока неясно ...
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Апогей в Proteus

Post by Shaos »

А это из какой книжки? И что изображено на рисунке 10.2?...всё нашёл - это приложение 1, страница 65 - и вот текст программы на рис.10.1 со стр.66 и схема на рис.10.2 со стр.67:
Apogey-Appendix1-pages66-67.jpg
Damir wrote:а про графический режим так ничего и не понятно.
Понял, что переключает знакогенератор на 2 половину - где знакоместа 4 ряда по 6 точек, и значит что бы заполнить экран надо выводить
не 25 а 50 строк по 64 символа, а для этого должна быть дополнительная экранная память ( ещё столько же ) а где она располагается и как определить когда она подключается - пока неясно ...
Вот тут я приводил исходники демки от vinxru, использующей этот урезанный шрифт высотой 4 пиксела и соответствующий режим ВТ57/ВГ75:

You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Апогей в Proteus

Post by Damir »

Т е ты говоришь что графический экран будет только в половину экрана, зато широкоэкранный !

но сместив экранную область в другие адреса можно выводить и на полный экран должно быть.?
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Апогей в Proteus

Post by Shaos »

Damir wrote:Т е ты говоришь что графический экран будет только в половину экрана, зато широкоэкранный !

но сместив экранную область в другие адреса можно выводить и на полный экран должно быть.?
Нет - ВГ75 максимум 64 строки умеет, а если символ высотой 4 пиксела, то это только 64x8=256 строк вместо обычных РК-шных 30x10=300 (плюс 1-2 строки на кадровый синхро-импульс) - т.е. это получается видеосигнал похожий на NTSC - около 60 Гц кадровой частоты и если монитор 4:3 то кадр будет растянут на эти 4:3 (не широкоэкранный) - широко только эмулятор Emu80 показывает (кстати там на скриншоте видно в нижней строке статуса написаны характеристики видеовыхлопа).
Я тут за главного - если что шлите мыло на me собака shaos точка net
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Апогей в Proteus

Post by Damir »

Полный экран я имел ввиду стандартные РКашные 25 строк символьных высотой по 8 тв строк + 2 тв-строки для между строк . Но если они высотой по 4 тв-строки, то нам надо на полный экран выводить 50 строк, если без межстрочных промежутков то ещё 10 строк символов.
итого 60 строк высотой по 4 тв-строки = всего 240 тв-строк, ну или если 64 строки - то 256.
но это и информации о символах тоже в 2 раза больше, а экранная область имеет фиксированное расположение и обьем.
Т е в графическом режиме эта область меняется, а вот информация о том куда она смещается и на сколько - где в системной области это храниться? - вот что мне надо, что бы выводить на ЛЦД экран , но это скорее всего напрямую пишется в ДМА и ВГ75.

А эмуляторы да, в зависимости от программ показывают разные значения разрешения - 30х78, 50х78, есть и 64 х 78 ...ну и экранная картинка
скачет в пропорциях - то шире то квадрат.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Апогей в Proteus

Post by Shaos »

Смотри исходник vinxru под спойлером - там экран сдвинут в памяти вниз т.к. он больше:

Code: Select all

VG75_ADDR = 0EF00h
VT57_ADDR = 0F000h
VIDEOMEM_ADDR = 08000h
VIDEOMEM_SIZE = 78*64
Напомню, что это Апогей, где ОЗУ распространяется вплоть до EAFF (EBFF?)

Приаттачиваю архив с бинарником (и исходником) на попробовать:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Апогей в Proteus

Post by Damir »

Почему то эмуляторы этот тест показывают по разному :
TestAPO_1.jpg
Первый ЕМУ80 - делит экран и меняет местами верх-низ, а второй В2В показывает правильно.

У Апогея адреса дешифрируются в ПЗУ и понять как используется ОЗУ без анализа прошивки этого ПЗУ невозможно.
не понятно как использовать область с EAF5 - EAFF, EB00-EBFF.
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Апогей в Proteus

Post by Shaos »

Чтобы подобные программы работали как надо на Emu80 там в конце экрана нужно код F3 воткнуть

Прошивка ПЗУ дешифратора Апогея пролетала на зхпк:

Code: Select all

00: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
10: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
20: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
30: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
40: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
50: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
60: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
70: 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
80: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
90: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
A0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
B0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
C0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
D0: 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
E0: 06 06 06 06 06 06 06 06 06 06 06 06 05 04 03 02
F0: 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 00
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Апогей в Proteus

Post by Shaos »

Получается оно принимает решение с точностью до 256-байт:

00XX...7FXX -> 7 : первая половина ОЗУ
80XX...EBXX -> 6 : вторая половина ОЗУ
ECXX -> 5 : ВИ53
EDXX -> 4 : ВВ55 клавы
EEXX -> 3 : ВВ55 разъёма
EFXX -> 2 : ВГ75
F0XX...F7XX -> 1 : первая половина ПЗУ на чтение, ВТ57 на запись
F8XX...FFXX -> 0 : вторая половина ПЗУ

Выходит EB00-EBFF это ОЗУ
Я тут за главного - если что шлите мыло на me собака shaos точка net
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Апогей в Proteus

Post by Damir »

У меня на дискретах тоже не так сложно получилось, и можно переключить Апогей/РК86, хотя почти все ркашные проги работают на Апогее, если не писать прямо в память и порты, а пользоваться стандартными точками Монитора :
CX_photo.jpg
и графику получилось и своё немного попробовал добавить , но в мой протеусовский экран не все вмещается :
APO_GRAF_TST-COLORo.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Апогей в Proteus

Post by Shaos »

Damir wrote:У меня на дискретах тоже не так сложно получилось, и можно переключить Апогей/РК86, хотя почти все ркашные проги работают на Апогее, если не писать прямо в память и порты, а пользоваться стандартными точками Монитора
Я 10 лет назад запланировал себе сделать гибрид РК/Микроша/Апогей - вроде даже на мелкой логике дешифратор не сильно тяжелый выходит (хотя на галке было бы сильно легче):

http://www.nedopc.org/forum/viewtopic.php?f=93&t=10581
Я тут за главного - если что шлите мыло на me собака shaos точка net
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Апогей в Proteus

Post by Damir »

Cделал наконец свой гибрид РК86-Апогей-Специалист с выводом на ЛЦД экран. Схема вот такая - всего 17 корпусов, не считая две микросхемы ЕЕПРОМ 24С256, которые пока не задействованы, но запланированы на будущее развитие :
AT32-BM80_ApRK_SP_SPI_LCD8b-RAM-14.PDF
Новшества - на все адресное пространство поставил одну микросхему ОЗУ на 64К. ПЗУ в адресном поле нет совсем. Дешифратор адресов сделал на ПЗУ 27С64, что резко сократило схему и номенклатуру микросхем, которых у меня все равно нет в наличии.
ДешифрРК-Апо-Спец_006.jpg
Конфигурация ПК выбирается двумя переключателями - РК-Spec и РК-Апо, в зависимости от выбранной конфигурации микроконтроллер в режиме ПДП записывает по нужным адресам в ОЗУ (РК - c E000, Апогей с F000 и Спец-т с С000) программу Монитора соответствующего ПК и необходимые доп программы и подает сигнал "Сброс ЦПУ" и процессор стартует в обычном режиме. Дешифратор работает с шагом в 16 байт для каждого адреса внешнего устройства ( 2 ППА, Таймер ВИ53, имитатор ВГ75 и адресное поле ВТ57) все остальное пространство - ОЗУ к которому есть полный доступ. Также сделал для РК86 поддержку цвета в формате Апогея.

Можно даже в Протеусе загрузить из внешнего ПЗУ или СДРОМА программки или игры и поиграть и РК и в Апогее :
2024-04-10_004.jpg
You do not have the required permissions to view the files attached to this post.