nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 14 Dec 2017 04:16



Reply to topic  [ 37 posts ]  Go to page Previous  1, 2, 3  Next
Точность эмуляции Радио 86РК 
Author Message
Maniac
User avatar

Joined: 14 Mar 2006 01:20
Posts: 211
Location: Иркутск
Reply with quote
Post 
Shiru Otaku wrote:
Ball Bess wrote:
А в режиме "прозрачных" на каждое знакоместо надо отводить по два байта (атрибут и код символа). При этом объём экранной области ОЗУ увеличивается вдвое

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


Да, что-то я поторопился с выводами... :D
По-видимому, предложенная мною система годится только для дисплеев с 16-ю символами в строке, а у разработчиков РК кроме вышеназванных проблем была ещё одна:
СПРАВОЧНИК wrote:
... Следует отметить, что "прозрачный" режим достаточно сложен при разработке системы, так как требует переменной длины знакоряда в страничном ЗУ видеотерминала, в связи с чем мало распространён...

Про переполнение FIFO там же пишут:
СПРАВОЧНИК wrote:
... Если превысить ёмкость стека, то первые знаки будут "вытолкнуты" и потеряны. В этом случае в регистре состояния установится флаг переполнения стека, который будет считан и обработан центральным процессором видеотерминала...

Не сказано, правда, что заставит CPU читать регистр состояния. Нужно, по-видимому, настраивать ВГ на генерирование запроса прерывания в конце каждого кадра.

Shaos wrote:
А ещё вроде есть Радио-86РК с цветным текстом! И там помниться авторы хвалились использованием стандартных фич ВГ75

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

P.S. Русское описание ВГ75 имеется в первом томе двухтомника "Микропроцессоры и микропроцессорные комплекты интегральных микросхем" М., "Радио и связь", 1988 г. под ред. В.А.Шахнова. Довольно подробно, со схемами, эпюрами и т.п. (из него я и давал цитаты).

Значительно укороченное описание мне попадалось в журнале "Микропроцессорные средства и системы", номер 3 за 1988 год.

_________________
Кто мешает тебе выдумать порох непромокаемый?


Last edited by Ball Bess on 13 Aug 2006 19:18, edited 1 time in total.



13 Aug 2006 19:07
Profile
Doomed

Joined: 16 Mar 2002 18:00
Posts: 490
Reply with quote
Post 
Ball Bess wrote:
Не сказано, правда, что заставит CPU читать регистр состояния. Нужно, по-видимому, настраивать ВГ на генерирование запроса прерывания в концекаждого кадра.

Только в РК-шке это невозможно, там не используется запрос прерывания от ВГ, вообще никаких прерываний нет.

Ball Bess wrote:
P.S. Русское описание ВГ75 имеется в первом томе двухтомника "Микропроцессоры и микропроцессорные комплекты интегральных микросхем" М., "Радио и связь", 1988 г. под ред. В.А.Шахнова. Довольно подробно, со схемами, эпюрами и т.п.

Отсканить-бы эти страницы?

Я пользуюсь только оригинальным даташитом на 8275, больше ничего не нашлось. На русском в инете есть маленькая статейка на http://www.computer-museum.ru, но там перевод выборочных мест даташита, и с ошибками.


13 Aug 2006 19:18
Profile
Maniac
User avatar

Joined: 14 Mar 2006 01:20
Posts: 211
Location: Иркутск
Reply with quote
Post 
Насчёт отсканить - сканера пока нет под рукой... :(
Попробую цифровым фотоаппаратом, может быть получится... Мой выдаёт максимум 1600х1200 точек JPG, а потом надобно объём файла уменьшить (для удобной передачи через Сеть). У меня стоит для фоток прога XnView, вроде как может конвертировать, попробую...
Да и радиоконструктор надобно бы заодно сфотать, как ты говорил - "для истории"...
Короче, смотри личное сообщение.

_________________
Кто мешает тебе выдумать порох непромокаемый?


13 Aug 2006 19:34
Profile
Doomed

Joined: 16 Mar 2002 18:00
Posts: 490
Reply with quote
Post 
Ball Bess отфоткал странички из книжки, и с его разрешения я их выкладываю, если кому надо (jpg'и в архиве, полтора мегабайта):

http://rapidshare.de/files/29434072/vg75.rar.html

Описание похоже на вольный пересказ datasheet'а на 8275 - таблички и некоторые картинки похожи. Зато на родном языке, и не дословный перевод, всё-таки понимали, о чём пишут - может пригодится кому-нибудь, кроме меня.


14 Aug 2006 19:59
Profile
Novelist

Joined: 24 Aug 2006 03:14
Posts: 33
Location: pуcвoceмьнадцaть
Reply with quote
Post 
Shiru Otaku wrote:
> Выяснял тут различные подробности устройства РК-шки - как работает ВГ75 вообще
> (даташит 8275 местами ошибается или умалчивает детали),
> и какие её фичи реализованы в РК.
> Написал тест, прогнал его на моём Спектр'е.
> Публикую результат, чтобы авторы эмуляторов РК (я знаю, что они сюда захаживают:),
> если у них будет такое желание, реализовали эмуляцию видеоконтроллера более точно.

Я думаю, они сделали достаточную эмуляцию для использования с существующим ПО.
Но всё равно это оччень интересно.

Shiru Otaku wrote:
> Потестировал Emu80 Виктора Пыхонина...
> В режиме непрозрачных атрибутов:... ...атрибут инверсии эмулируется (а не должен)...

Инверсия появилась "благодаря" схеме цвета. Так же должен был появиться курсор "блок".


Вот кстати моя схема. (которую, я считаю, более правильной :) )
(Кнопочкой можно инвертировать цвета)
RK_COLOR.RAR

Shiru Otaku wrote:
> Но это всё самодеятельность, в конструкторах и промышленных клонах ничего такого не было.

:idea:



Вот результат прогона твоих тестов на моём РК (Радиоконструктор "Электроника КР-02". Отличается от описанного в журнале "Радио" только матрицей клавиатуры и соответствующей процедурой обработки в Мониторе.)
RK_TEST1_50p.7z (~66k)
RK_TEST2_50p.7z (~170k)
RK_TEST3_50p.7z (~780k)
Сигнал снят с оригинального выхода (не цветного).
Проверка с чередующимися знакорядами вызвала срыв синхронизации у caprute device. А на экране выглядит примерно также как у тебя.

- Подчёркивание через знакоместо! Даже не знаю, почему в Спектре сплошное
(надо будет разобраться). Анализировал схемы (мою, оригинала, Спектра и Микроши) - у всех выходная часть CRT сделана абсолютно одинаково.

- Замечание к проверкам с изменением размера экранного буфера в большую сторону.
Вопрос на засыпку: откуда будет DMA брать байты, если ОЗУ "внезапно" кончиться? :wink:
(А кончается "внезапно" ОЗУ после адреса 7FFF)
Правильно! Из клавиатурного ВВ55 !!!
Для таких проверок нужно выбрать другой адрес начала экрана.


Я тут поиздевался над програмками... :roll:
src_TEST123_v02.7z
Все тесты в одном. Мнемоники родного i8080 (компилятор прилагается).


P.S. Интересно ещё по исследовать подробнее проверки с чередующимися знакорядами и конец строки и кадра с остановкой DMA.
P.S.S. А вот размер знакоряда по вертикали ты не потестировал, а он используется в играх и эмулируется Emu80.
P.S.S.S. Спасибо Ball Bess за доку по ВГ75.


Last edited by DDp on 14 Jun 2008 11:00, edited 1 time in total.



26 Aug 2006 04:52
Profile
Doomed

Joined: 16 Mar 2002 18:00
Posts: 490
Reply with quote
Post 
DDp wrote:
Я думаю, они сделали достаточную эмуляцию для использования с существующим ПО. Но всё равно это оччень интересно.

Не спорю, но ведь приятно получить 100% точный эмулятор, а не просто РК-совместимое нечто:) Благо, современные PC уже давно позволяют этого добиться.

DDp wrote:
Инверсия появилась "благодаря" схеме цвета. Так же должен был появиться курсор "блок".

Но ведь Emu80 не эмулирует цвет, разве не так? А если нет эмуляции схемы цвета, то и инверсии быть не должно.

DDp wrote:
Вот кстати моя схема. (которую, я считаю, более правильной

А софт под неё есть?

DDp wrote:
Вот результат прогона твоих тестов (1 и 2) на моём РК

Спасибо!

DDp wrote:
Проверка с чередующимися знакорядами вызвала срыв синхронизации у capture device. А на экране выглядит примерно также как у тебя.

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

DDp wrote:
- Подчёркивание через знакоместо! Даже не знаю, почему в Спектре сплошное
(надо будет разобраться). Анализировал схемы (мою, оригинала, Спектра и Микроши) - у всех выходная часть CRT сделана абсолютно одинаково.

Тут будет более уместно "даже не знаю, почему в КР-02 через знакоместо":) В даташите нет ни слова про прерывистое подчёркивание, оно должно быть сплошным (как и действие всех других атрибутов). Я даже не представляю, как оно может быть прерывистым.

DDp wrote:
- Замечание к проверкам с изменением размера экранного буфера в большую сторону.
Вопрос на засыпку: откуда будет DMA брать байты, если ОЗУ "внезапно" кончиться?

Я посчитал это непринципиальным, хотя по хорошему, конечно, надо переносить буфер пониже.

DDp wrote:
Все тесты в одном. Мнемоники родного i8080 (компилятор прилагается).

Спасибо. Я писал под кроссасмом Z80, что довольно неудобно (и чуток накосячил, как ты правильно заметил).

DDp wrote:
P.S. Интересно ещё по исследовать подробнее проверки с чередующимися знакорядами и конец строки и кадра с остановкой DMA.

Да, и ещё надо проверить, что будет, если курсор находится на пустом знакоряде (будет-ли он виден, или загасится).

DDp wrote:
P.S.S. А вот размер знакоряда по вертикали ты не потестировал, а он используется в играх и эмулируется Emu80.

Не затестил, потому-что этот момент у меня особых вопросов не вызвал. Единственная тонкость там - учесть, что из 4-ёх выходов выбора линии пикселей символа в РК используются только младшие 3. Кстати, Lode Runner использует изменение высоты знакоряда, и у меня изображение в нём начинает мощно мигать (при подключении через тюнер). При этом курсор с экрана не пропадает в моменты мигания.


Даташиты на 8275 и 8257: http://rapidshare.de/files/31061299/8257_8275.7z.html (4 мегабайта)


28 Aug 2006 07:40
Profile
Novelist

Joined: 24 Aug 2006 03:14
Posts: 33
Location: pуcвoceмьнадцaть
Reply with quote
Post 
2 Shiru Otaku: Огромное спасибо за даташиты.

Shiru Otaku wrote:
Но ведь Emu80 не эмулирует цвет, разве не так?

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

Shiru Otaku wrote:
DDp wrote:
Вот кстати моя схема.

А софт под неё есть?


Она совместима с приведённой выше и поддерживаемой Emu80.
Я её сделал в 2000 году, после того как цвет появилася в эмуляторе.
Но реализована более правильно (imho).
Вот ещё про цвет...

Code:
Статьи                        ¹/год   Стр.

Л.ТОЛКАЛИН.
"Цветные" компьютеры "Радио-86К"
Схемы и программы для использования цвета в компьютерах
с видеоконтроллером КР580ВГ75.               4/92   10
                        6/92   12
                        7/92   9
                        9/92   14

М.АКИМЕНКО.
Контроллер "Самоцвет-М"
Приставка к "Радио-86РК" для введения цветного режима
(8 цветов). К155ЛЕ1, К155ЛП5.               10/92   13

В.КОВАЛЕНКО.
"Цветные" компьютеры "Радио-86РК"
Вариант формирования цветных сигналов из сигналов
атрибутов контроллера дисплея (замена микросхемы).      4/93   9

Б.ФРОЛКИН.
Еще раз о цвете в "Радио-86РК"
Схема формирования сигналов цвета,
исключающая необходимость в,переключателе "цвет - монохром".   4/93   9

----------------------------------------------------
Журналы "Радиолюбитель" -->  http://www.radioliga.com/



Shiru Otaku wrote:
DDp wrote:
- Подчёркивание через знакоместо! Даже не знаю, почему в Спектре сплошное...
(надо будет разобраться). Анализировал схемы (мою, оригинала, Спектра и Микроши) - у всех выходная часть CRT сделана абсолютно одинаково.

Тут будет более уместно "даже не знаю, почему в КР-02 через знакоместо":) В даташите нет ни слова про прерывистое подчёркивание, оно должно быть сплошным (как и действие всех других атрибутов). Я даже не представляю, как оно может быть прерывистым.


Хе! Я скажу более: оно прерывисто и в Микроше! :D


Shiru Otaku wrote:
DDp wrote:
- Замечание к проверкам с изменением размера экранного буфера в большую сторону.

Я посчитал это непринципиальным, хотя по хорошему, конечно, надо переносить буфер пониже.


Программировать такие устройства, как ВГ75, нужно очень осторожно. Пример ниже.

Shiru Otaku wrote:
Кстати, Lode Runner использует изменение высоты знакоряда, и у меня изображение в нём начинает мощно мигать (при подключении через тюнер). При этом курсор с экрана не пропадает в моменты мигания.

А я знаю! :P Высота знакоряда особо не при чём...
В LodeRunner-е количество знакорядов 38, адрес начала экрана 4000h, его размер 78*38=2967 (0B94h).
Смотрим (на реальном компьютере) конец видеобуфера:
Code:
4B00 20 20 20 20-20 20 20 20-20 20 20 20-20 20 20 20
4B10 20 20 20 20-20 20 20 20-20 20 20 20-20 20 20 20
4B20 20 20 20 20-20 20 20 20-20 20 20 20-20 20 20 20
4B30 20 20 20 20-20 20 20 20-20 20 20 20-20 20 20 20
4B40 20 20 20 20-20 FF F3 FF-00 FF 00 FF-00 FF 00 FF
4B50 00 FF 00 FF-00 FF 00 FF-00 FF 00 FF-00 FF 00 FF
4B60 00 FF 00 FF-00 FF 00 FF-00 FF 00 FF-00 FF 08 FF
4B70 08 FF 08 FF-00 FF 00 FF-00 FF 00 FF-00 FF 00 FF
4B80 EB 14 EB 04-FF 00 FF 00-EB 00 FF 00-FF 00 FF 00
4B90 EB 00 FF 00-FF 00 FF 00-FB 00 FF 00-FF 00 FF 00
4BA0 EB 00 FF 00-FF 00 FF 00-FF 00 FF 00-FF 00 FF 00
4BB0 FF 00 FF 00-FF 00 FF 00-FF 00 FF 00-FF 00 FF 00
4BC0 00 FF 00 FF-00 FF 00 FF-00 FF 00 FF-00 FF 00 FF
4BD0 00 FF 00 FF-00 FF 00 FF-00 FF 00 FF-00 FF 00 FF
4BE0 00 FF 00 FF-00 FF 00 FF-00 FF 00 FF-00 FF 00 FF
4BF0 00 FF 00 FF-00 FF 00 FF-00 FF 00 FF-00 FF 00 FF

В РК86 (и подобных ему) при сбросе и включении питания ОЗУ не очищается.
Содержимое не очищеного динамического ОЗУ чаще всего выглядит как чередующиеся FF 00 FF 00 FF 00.
Эта комбинация знакома тому, кто включал Спектрум[48] без ROM или без CPU. На экране это выглядит как "шахматка".

В наше случае FF это (официально) запрещённый атрибут для ВГ75.

Выход: или отчистить память (директива "F" монитора) перед использованием LodeRunner, или подкоррекрировать игрушку, чтобы она затирала буфер экрана полностью.


:lol: (С сарказмом) ПРЕДЛАГАЮ эмулировать запрещённые атрибуты, глюки и мусор в динамическом ОЗУ! А "до кучи", что б эмулировалось "осыпающееся" ОЗУ при отключенном контроллере ПДП (читай: отключенной регенерации).




P.S. Вспомнилось: Буратино дали три яблока...


29 Aug 2006 02:08
Profile
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2152
Location: От туда
Reply with quote
Post 
DDp wrote:
:lol: (С сарказмом) ПРЕДЛАГАЮ эмулировать запрещённые атрибуты, глюки и мусор в динамическом ОЗУ! А "до кучи", что б эмулировалось "осыпающееся" ОЗУ при отключенном контроллере ПДП (читай: отключенной регенерации).

Хехе, хаотичные FF/00 вперемежку с битыми битами я эмулировал в своем эмуляторе Спеца - ибо там они классно смотрятся. Вот алгоритм, прост до безобразия:
Quote:
for adr:=0 to 65535 do begin
if (adr and 1)=0 then RAM[adr]:=0 else RAM[adr]:=255;
if (adr and 128)=0 then RAM[adr]:=RAM[adr] xor 255;
if (adr and 4096)=0 then RAM[adr]:=RAM[adr] xor 255;
if (adr and 7)=0 then
if random(32)=0 then RAM[adr]:=random(255);
end;


29 Aug 2006 11:26
Profile
Novelist

Joined: 24 Aug 2006 03:14
Posts: 33
Location: pуcвoceмьнадцaть
Reply with quote
Post 
НАШЁЛ почему в "Радио-86РК" и "Микроше" подчёркивание пунктиром.
Это цепь от 20 вывода ИР13 до 13 вывода ТМ2.
Перерезал. Подчёркивание стало сплошное (на курсор никак не повлияло).

Вопрос (разработчикам): ЗАЧЕМ... :evil:

to Shiru Otaku: посмотри эту цепь на "Спектре". На схеме она есть, на фотографии платы дорожку видно.


Last edited by DDp on 14 Jun 2008 11:02, edited 1 time in total.



30 Aug 2006 03:23
Profile
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2152
Location: От туда
Reply with quote
Post 
Выкидываем сканы Ball Bess'а (ему все равно отдельное спасибо) и качаем полную книгу тут: http://www.nedopc.org/forum/viewtopic.php?t=8406


02 Sep 2006 20:48
Profile
Maniac
User avatar

Joined: 14 Mar 2006 01:20
Posts: 211
Location: Иркутск
Reply with quote
Post 
HardWareMan wrote:
Выкидываем сканы Ball Bess'а (ему все равно отдельное спасибо) и качаем полную книгу тут: http://www.nedopc.org/forum/viewtopic.php?t=8406

Да выкидывайте, я и не вынуждаю никого ими пользоваться. Если эти фотки подтолкнули вас порыться в Сети и найти книжку - это уже хорошо. Своего рода реклама книги получилась... :-|

_________________
Кто мешает тебе выдумать порох непромокаемый?


04 Sep 2006 09:57
Profile
Novelist

Joined: 27 Mar 2008 00:21
Posts: 40
Location: Serbia
Reply with quote
Post 
Может ли кто-нибудь, пожалуйста загрузить тестовые файлы, поскольку они не доступны.


05 Jun 2008 08:38
Profile
Novelist

Joined: 24 Aug 2006 03:14
Posts: 33
Location: pуcвoceмьнадцaть
Reply with quote
Post 
micko wrote:
Может ли кто-нибудь, пожалуйста загрузить тестовые файлы, поскольку они не доступны.

Обновил ссылки в своих постах.
Вот оригинальные тесты Shiru (без видео).


14 Jun 2008 11:06
Profile
Novelist

Joined: 27 Mar 2008 00:21
Posts: 40
Location: Serbia
Reply with quote
Post 
Спасибо DDP.


17 Jun 2008 03:14
Profile
Novelist

Joined: 24 Aug 2006 03:14
Posts: 33
Location: pуcвoceмьнадцaть
Reply with quote
Post 
Обнаружились(нашлись) игрушки для Микроши заслуживающие внимания в плане более точной эмуляции. ( games hit-parade N 1)
Здесь в более компактном виде+ скриншоты.
( Для получения WAV, воспользуйтесь утилитой CSW ).
А основная проблема - они имеют автостарт и записаны не стандартным способом. Защита использует (как минимум) не документированные команды процессора, фальш-импульсы и фальш-блоки в сигнале. Основной код и загрузчик расположены в адресам стандартного буфера экрана.

Я был шокирован тем, что во время загрузки не отключается дисплей.
Оказалось, что контроллер дисплея настраивается на более короткий пакет DMA запросов, и процессор "тормозится" чаще и на более короткий промежуток времени. Таким образом достигается более равномерная скорость работы процессора.

На данный момент не удалось загрузить эти игрушки ни в одном эмуляторе (из поддерживающих WAV я знаю только MESS и Башкирия2М).
У меня имеется реальный Микроша, могу помочь прояснить некоторые детали его работы...


24 Aug 2008 01:34
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 37 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.