PDA

Просмотр полной версии : Эмулятор Партнёр-01.01



TWN
24.02.2015, 10:19
Решил понастальгировать: поискать свои программы.
Нашёл одну, но не смог в неё поиграть на существующих эмуляторах. Может просто не нашёл, но написал свой эмулятор.
Прошу потестировать и написать замеченные ошибки и пожелания.
Загрузка программ по команде I.
С эмулятором прилагается моя программа, которую нашёл. Может у кого то найдутся ещё мои программыц - был бы очень признателен.

b2m
24.02.2015, 12:32
В моём (http://bashkiria-2m.narod.ru/files/emu.rar) работает (нужно только помнить, что функциональные клавиши у меня расположены на доп. цифровой клавиатуре). Но! Наблюдаются артефакты переключения знакогенератора. Судя по всему, у меня не совсем правильно это реализовано. Хорошо, что нашлась программа, активно использующая эту фичу Партнёра.

З.Ы. Кстати, нашёл у себя этот пасьянс, но с рекламной вставкой:

TWN
24.02.2015, 13:53
Приятно познакомиться с автором эмулятора, который поддерживает много платформ. Помимо программного труда - это надо было найти все описание на структуры схемных решений, прошивки и хорошо разбираться в работе применяемых процессоров.
По поводу вставки рекламы - в то время немало кто зарабатывал на копировании программ. Для борьбы с такими я реализовал автозапуск программ при считывании + другие "фишки" и записывал свои программы сам. Но похоже благодаря этому некоторые программы теперь совсем не найдутся 8(

hobot
24.02.2015, 15:27
TWN, что то вот такое есть
http://arendatr.chat.ru/

b2m
24.02.2015, 16:29
Приятно познакомиться с автором эмулятора
А из Руссофта кого-нибудь знаете? Дмитрия Прокудина, Алексея Ерёмкина (и его брата) например.

У меня в эмуляторе есть поддержка МЦПГ и дисковода (загружаться командой монитора E2 и включить цветной режим). Там на диске есть несколько их игр, может и своё найдёте.

TWN
25.02.2015, 09:09
В Руссофте было два брата. Когда писались программы - встречались, но к сожалению потом контакты потерялись. Хорошо знаю Прокудина Дмитрия, Ряжских Александра (оба из BSC, в студии был третий - Борман - но я его знал мало). С Пчёлкиным Леонидом некоторое время поддерживали связь. С Saggit встречались несколько раз. С Матюшиным Сергеем (MVG) дружим до сих пор.
Нашёл ещё одну свою: Sokoban 8)

TWN
27.02.2015, 15:35
Нашёл в своём эмуляторе две ошибки эмуляции кодов процессора. Исправил. Вроде работает. Хотя на 100% не уверен. Особенно в команде DAA. Не нашёл однозначного описания.
Буду признателен - если найдёте ещё ошибки в его работе.

esl
27.02.2015, 17:06
https://github.com/begoon/i8080-core

это коре 8080
там внутри есть набор тестов которые тестироуют правильность эмуляции

uart
08.03.2015, 00:00
Запутался я атрибутами ВГ75. У кого и какие атрибуты затрагивают предыдущий символ? У меня почему-то в Партнере сдвигались и этот пасьянс немного некорректно выбирал фонт.

---------- Post added 08.03.2015 at 00:00 ---------- Previous post was 07.03.2015 at 23:52 ----------

И коль речь зашла о Партнере. На вышеприведенном ресурсе есть такое:


CP/M-50Kb
Используются двухсторонние диски по 800Кб: 80 дорожек, 5 секторов на дорожку, 1024 байт в секторе. Дорожки 0 и 1 отведены под систему.
Данная версия использует максимум доступной памяти, разрешение экрана 25х80 символов и является вполне стандартной CP/M.

Ну, во-первых, сохранился ли у кого-то образ такой дискеты. И во-вторых, 25x80 это художественное преувеличение или через mcpg малочитаемым фонтом реализовано?

b2m
08.03.2015, 12:07
Запутался я с атрибутами ВГ75. У кого и какие атрибуты затрагивают предыдущий символ?
Всё зависит от того, какая схема реализована после ВГ75, как используются её выходы. На чтение из знакогенератора обычно отводится несколько тактов, а чтобы вывод менялся синхронно с выходами ВГ75, это время обычно делают равным ширине символа, т.е. знак смещён на одно знакоместо вправо. В зависимости от того, задерживаются ли другие сигналы ВГ75 получаются различные результаты.


Ну, во-первых, сохранился ли у кого-то образ такой дискеты.
Всё есть в моём эмуляторе на моём сайте. Загружаться с диска в моём эмуляторе из монитора - команда E2.

uart
08.03.2015, 14:50
Всё зависит от того, какая схема реализована после ВГ75, как используются её выходы.
Теорию я понимаю, меня интересует практика. Что конкретно задерживается в РК/Микроше/Апогее и Партнере.


Всё есть в моём эмуляторе на моём сайте. Загружаться с диска в моём эмуляторе из монитора - команда E2.
Нашел там два диска, на обоих CP/M 28K...

b2m
08.03.2015, 19:43
Наблюдаются артефакты переключения знакогенератора.
Сейчас просто поменял в конфиге строчку mode=0 на mode=2 - артефакты исчезли.

---------- Post added at 21:35 ---------- Previous post was at 21:14 ----------


Теорию я понимаю, меня интересует практика. Что конкретно задерживается в РК/Микроше/Апогее и Партнере.

Это схемы смотреть надо. У меня в эмуляторе для этих фич в конфиге у ВГ75 есть параметр mode, бит D0 означает задержку сигнала LTEN, который используется для формирования курсора (вариант по-умолчанию, с лёгкой руки создателей РК реализовано почти везде). В Партнёре как раз отсутствует. Бит D1 означает задержку других атрибутов (инверсия, повышенная яркость и два атрибута общего назначения). В Партнёре атрибуты используются для выбора ЗГ и переключения на вывод МЦПГ. В Апогее и Юниоре (а теперь оказывается и в Партнёре) есть задержка атрибутов, в отличие от остальных.


Нашел там два диска, на обоих CP/M 28K...
Действительно. Не обращал раньше внимания.

---------- Post added at 21:43 ---------- Previous post was at 21:35 ----------

По поводу артефактов: посмотрел схему Партнёра - инверсия не задерживается. Придётся доделывать параметр mode, чтобы задержкой инверсии можно было отдельно от других атрибутов управлять...

uart
08.03.2015, 23:46
b2m, спасибо, переделал у себя. Но остались вопросы с инверсией. Допустим на Апогее. Как правильно должно выводиться:

90 61 70 6F 67 65 6A 20 62 6B 2D 30 31 20 80

У тебя они по разному выводятся на ц/б и цветном варианте. И мне кажется, что как минимум в цветном варианте, неверно. Не могу сейчас проверить...

Остался вопрос по формированию нереализованной в РК "псевдографики". Я посмотрел как выводит Апогей и сделал у себя тоже самое. А как правильно сделать для РК/Микроши и Партнера?

Кстати, заметил, что у тебя не реализован цвет фона в МЦПГ.

b2m
09.03.2015, 11:28
b2m, спасибо, переделал у себя. Но остались вопросы с инверсией. Допустим на Апогее. Как правильно должно выводиться:

90 61 70 6F 67 65 6A 20 62 6B 2D 30 31 20 80

У тебя они по разному выводятся на ц/б и цветном варианте. И мне кажется, что как минимум в цветном варианте, неверно.
Это из-за отсутствия информации "как должно быть". Вообще, делать точно так как у меня - не совсем правильно. В моём эмуляторе многие игры выглядят "нормально", но это не означает, что эмуляция 100% точная.


Остался вопрос по формированию нереализованной в РК "псевдографики". Я посмотрел как выводит Апогей и сделал у себя тоже самое. А как правильно сделать для РК/Микроши и Партнера?
Насколько я помню, в Партнёре (имел возможность в своё время поэкспериментировать) псевдографика точно есть. Хотя, возможно я перепутал тогда наличие разных знакогенераторов и наличие псевдографики.


Кстати, заметил, что у тебя не реализован цвет фона в МЦПГ.
Можно поподробнее, как должно быть?

---------- Post added at 13:28 ---------- Previous post was at 13:25 ----------

Кстати, в Апогее вроде должно быть всё верно, vinxru делал тест, прогонял его на реале, а я допиливал эмулятор, чтобы было точно также.

uart
09.03.2015, 18:26
Это из-за отсутствия информации "как должно быть". Вообще, делать точно так как у меня - не совсем правильно. В моём эмуляторе многие игры выглядят "нормально", но это не означает, что эмуляция 100% точная.
Вообще я ориентируюсь на свой цветной Апогей БК-01. А вот скажем Партнера 01.01 у меня никогда не было, да и никогда и не будет. Поэтому приходиться разбираться в той немногой информации, какую удалось разыскать, да и анализом работы разных приложений как в моем эмуляторе, так и в других, в частности в твоем. Никаких сдвигов атрибутов в цветном Апогее нет (хотя правильнее сказать наоборот), но реализовать сей процесс хочется. :)


Можно поподробнее, как должно быть?
Из доки (копия у тебя на странице) "7.2.3. Использование знакогенератора МЦПГ в прикладных программах":
После этого можно работать со знакогенератором МЦПГ (два набора символов, два атрибута изображения - подчеркивание и мерцание, управление фоном), а также со штатным знакогенератором МВЦ. Переключение в нужный режим производится посредством записи в видеоЗУ МВЦ байта управляющего кода, назначение битов которого приводится на рис. 3.
Биты П и М, установленные в 1, включают соответствующие атрибуты изображения, а установленные в 0 - выключают. Бит НБ, установленный в 0, позволяет работать с первым набором знакогенератора МЦПГ, установленный в 1 - со вторым набором. Выбор фона осуществляется битами Ф1, Ф2, Ф3 в соответствии с табл. 3. Действие управляющего кода распространяется до появления следующего кода (в границах видеоЗУ). В видимой части видеоЗУ управляющий код отображается пробелом.

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


Кстати, в Апогее вроде должно быть всё верно, vinxru делал тест, прогонял его на реале, а я допиливал эмулятор, чтобы было точно также.
Цветной или черно-белый? Сейчас подключил цветной, инверсия действительно выглядит правильно. Но заменил код 90 на A0 - на Апогее подчеркнутым стало то, что было инвертировано, у тебя в эмуляторе и само поле атрибута. В эмуляции черно-белого какой-то странный артефакт в родном тесте. Повышенная яркость раньше инверсии. Не похоже, что так и должно быть.

b2m
09.03.2015, 22:06
Соответственно один из цветов знакогенератора не черный, а имеет цвет фона.
В своё время я не разобрался с цветом фона (эксперименты давали неожиданные результаты), а сейчас перечитал - вроде всё понятно. Надо будет снова попробовать доделать.


Цветной или черно-белый?
Цветной.