Да, неплохо бы, сделаю потом. В наше время люди без мышки вообще теряются, что в винде, что в линухе :)
Вид для печати
b2m, а где прочитать про дополнительные возможности Отладчика?
svofski, просто нажми в отладчике F1 :)
Я обновил эмулятор, учтены ваши пожелания.
Я тут стал разбираться с эмуляцией атрибутов ВГ75 для Апогея и обнаружил, что у b2m они обрабатываются не совсем так, как на реале.
Во вложении фото и скриншот с эмулятора. Мои первичные выводы такие:
1. Вар. 1. Атрибут начинает работать со следующего символа, а не с себя. Вар. 2. Либо ячейка с атрибутом всегда черная.
2. После надписи стоит один пробел (код 20Н). В эмуляторе он почему-то черный, хотя на нем еще должен работать атрибут выворотки (90H), стоящий перед надписью.
Если справедлив 1.1., то после надписи получится два белых символа. Поэтому я склонен считать верным 1.2.
На самом деле, многое зависит от схемного решения. Схемы Апогея у меня нет, спасибо за картинку.
Теперь понятно. Обычно точки символа по сравнению с выводом атрибутов запаздывают на одно знакоместо, т.к. требуется время, чтобы выбрать байт из ПЗУ шрифта и записать его в сдвиговый регистр, а в Апогее они и для атрибутов регистр поставили, который задерживает их на одно знакоместо. Т.е. у Апогея атрибуты не были смещены влево, как у РК, Партнёра, Микроши.
С Партнёром тоже пока не всё ясно, т.к. в некоторых играх, рассчитанных на МЦПГ, наблюдается несоответствие "задуманного" цвета символа, и эмулируемого. Но не везде, это и смущает.
Пожелания таковы: сделать более "продвинутый" GUI, чтобы можно было регулировать опции Video, Sound, выбирать доп. устройства (джойстик, мышь), регулировать тайминги процессоров (т.к. многие игры идут слишком быстро).
P.S: Смотрю, "Специалист" так и не приобрёл цвета :( Для примера высылаю заведомо цветную игру Land (именно её цветной вариант), которая в эмуле идёт по-прежнему в чёрно-белых тонах. И кстате процентов на 30 быстрее идёт, чем должна ;)
Речь об оригинальном цветном варианте:
МК88/7, стр. 46-47
МК90/8, стр. 28 - расширение до 8 цветов
Эмулятор Пыхонина это поддерживает и в архивах игрушек для Специалиста на его сайте есть несколько цветных.
У него и раскладка портов другая. Сделаю, когда-нибудь.
b2m, было бы очень удобно, если в отладчике каким-либо цветом выделялись бы ячейки и номера портов, к которым было обращение во время выполнения программы. Например, изначально все чёрные на белом фоне. Было чтение - фон стал зеленый, запись - желтый, поменялось содержимое при записи - красный. Или можно менять цвет шрифта. Ну и т.п.
Удобны были бы прерывания: на чтение, на запись, на изменение содержимого ячейки памяти/порта.
Я подумаю :)
b2m, ты уверен в нумерации экранных областей для ПК-6128Ц? Ты ее по схеме делал?
Не помню, может быть и не по схеме.
Я где-то читал в треде, что в отладчике эмулятора есть режим когда дизассемблер синхронизируется с исходным файлом. Интересно - по какому принципу отладчик определяет какой строке в исходнике (и в каком файле, особенно если их несколько по INCLUDE компилировалось и вызовы из одного в другой) соответствует дизассемблируемый дамп? "На больших машинах" это достигается только включением в бинарник при компиляции отладочной информации. А у нас - код где такой информации нет. :v2_conf2:
Синхронизируется не с исходным файлом, а с листингом ассемблера, т.е. где строка вида: NNN XXXX XX XX XX text
При этом выдаётся строка с адресом XXXX только если байты XX XX XX совпадают. И метки тоже вставляются между строк, если они на отдельной строке.
Что ни говорите, а Yamaha MSX - это вещь.
Для большинства посетителей этого форума знакомство с бескрайним миром игр началось со Спекки. А вот моё знакомство началось именно с Ямахи. И хотя это и не совсем отечественный компьютер, даже совсем не отечественный, но в память о тех славных временах я решил добавить в свой эмулятор MSX. Правда, более детальное знакомство с архитектурой и наличием огромного количества разных типов ромов (фактически разных внешних устройств) несколько охладило мой пыл, но я не собираюсь останавливаться на достигнутом и Ямаха в эмуляторе будет постепенно развиваться, может и не так быстро, как этого бы хотелось.
Привет!
нашел багу в эмуляции Корвета
не играет музыка в игрушке Treasure (на первом диске treas.com)
deflektor
не работает 32хсимвольный текстовый режим ...
посмотри в apple.com (на 3м диске) и galaxian, anton
в apple.com и со звуком явно грабли, тормозит оно странно
в АБРИСе со второго диска не двигается курсор ...
p.s. эти штуки в моем эмуляторе работают (диски то из него :)
ОК, 32-х символьный текстовый режим я добавил, заодно добавил выбор шрифта.
А вот насчёт АБРИСа вопрос: вроде на Корвете мышь была, куда подключалась, и вообще как с ней работать можно было? Может он её случайно у меня в эмуляторе определил и пытается использовать? Вроде раньше курсор двигался, но когда баг появился, я к сожалению не заметил.
З.Ы. Музыка в treas теперь тоже есть. С тормозами разобрался.
в treas не все впорядке с оботбражением спрайта героя,
у тебя он в некоторых частях экрана не виден (побегай немного по экрану)
а по поводу мышки
а по поводу мышей, там все просто - стандартная MS-Mouse
вроде кто-то умеет использовать MouseSystem. я с этим игрался но в релиз не вставлял.
и было еще какаято корветовская "паралельная" мышка, но я ее упоминание встречал только косвенно в спековсвих доках где-то
а сериальные мышки - стандартный ком порт и прерывание
не знаю нужно ли оно, но я реализовал
смотри в исходниках mouse.c
а поддержка есть в арисе и акварелле
причем у тебя абрис не работает а акварель работает
вот цитата из доки по абрису
Цитата:
" ПРИЛОЖЕНИЯ
Приложение А. Подключение манипулятора "мышь"
фирмы Microsoft.
"Мышь" фирмы "Microsoft" подключается к последовательному
порту компьютера. В таблице приведено соответствие выводов
этого разъема и разъема манипулятора. Нумерация выводов соот-
ветствует разъему РП15-9 (она отличается от американской, ука-
занной на разъеме манипулятора).
компьютер "мышь"
----------------------------------------------------
1 1
8 2+7 (выводы соединить)
3 3
4 4
----------------------------------------------------
Приложение Б. Управлением редактора от
клавиатуры.
Графический редактор ABRIS предусматривает управление от
клавиатуры. Это необходимо в случае отсутствия у пользователя
манипулятора "мышь", а также удобно для точной установки кур-
сора в определенную точку.
Для управления координатами курсора используется дополни-
тельное поле клавиатуры (группа клавишей с цифрами и стрелками
справа от основного поля). Нажатием '1', '2', '3', '4', '5',
'6', '7', '8', и '9' осуществляется перемещение курсора в од-
ном из восьми направлений на одну точку экрана. Те же клавиши
\\
в верхнем регистре (нажатые вместе с одной из клавишей
[SHIFT]) вызывают аналогичные смещения но на восемь позиций.
Клавиши дополнительного поля '0' и '.' являются полными
аналогами правой и левой кнопок "мыши" соответственно.
Я подозревал, что прерывание генерируется не тогда, когда луч выходит на экран, а в другой момент, но в какой - я не знаю. Придётся залезть в твои исходники :)
З.Ы. Нету у тебя такой информации, у тебя экран "фотографируется" и выплёвывается, а у меня формируется параллельно с выполнением. Поэтому спрайт успевает отобразиться в "стёртом" состоянии. Скорее всего прерывание формируется как везде, с началом кадрового СИ. Пока сделаю так.
В ходе разбирательства с ABRIS-ом выяснил одну фичу, которая у меня пока не реализована. Оказывается сигнал gate второго канала таймера тактировался коротким импульсом логического нуля в момент начала КСИ. На режим делителя частоты это никак не влияет, а режим аппаратной задержки без этого не работает. Посмотрел в схему: действительно есть сигнал /SVBL и идёт он на второй канал таймера.
Однако ещё более странным оказалось то, что ABRIS рассчитывет на то, что такой фичи может и не быть, т.е что сигнал gate таймера просто повешен на еденицу, и тогда он использует прерывание по КСИ. Курсор при этом полностью или частично исчезает с экрана при движении в самой верхней части экрана (что сейчас в эмуляторе и происходит). Выяснилось это когда я нашёл у себя ошибку инициализации таймера, из-за которой курсор в ABRIS-е двигался только после второй попытки запуска.
Правда ли, что были такие варианты Корвета?
esl, а вы будете дальше обновлять свой эмулятор ?
Хотелось бы :)
по крайней мере его НАДО портануть по MAC :)
заодно и переписать по SDL
и дописать таймер (эт единственный серьезный баг в нем)
гораздо важнее это привести в порядок софт корветовский
хотя сейчас эти процессы будут взаимосвязаны (т.к. под мак нету эмулятора корвета а эт сейчас моя основная домашняя платформа).
хотя основную работу так сказать я сделал, теперь уже есть несколько эмуляторов корвета
и значит он не канет в лету :)
---------- Post added at 11:28 ---------- Previous post was at 11:25 ----------
гм, вроде что-то такое было
поищу письмо от авторов.
вроде как это добавили позже, в оригинальном этого небыло
хотя штука удобная, можно точно позиционироватся на нужной строке :)
---------- Post added at 11:36 ---------- Previous post was at 11:28 ----------
Пожелание/бага :)
в About EMU
все еще EMU Version 1.01
Copyright (C) 2005-2008
и имхо было бы не плохо выкладывать Release Notes ...
Я конечно все 35 страниц не читал, так что извиняйте если вопрос поднимался. А планируется добавить сюда Spectrum ориентированое железо. И вообще, расширение платформ в эмуляторе стандартизировано или это в ручном режиме? Просто интересно бы было сделать мегаплатформу для эмуляторов ;-) Просто я некоторое время увлекался эмулями, т.к. реальное железо не всегда под рукой, так вот многие проекты умирали на взлёте из-за потери интереса к ним автора (что на определённом этапе не удивительно). А ещё было бы круто портировать эту платформу на Dingux и впихнуть это всё в Dingoo! Ну как я размечтался :-) ктоньть принесите губозакаточную машинку ;-)
Никто не запрещает сделать свой "конфиг", и спектрумсовместимое имеет тут одно преимущество: если для разных 8-битных ПК приходится всё время делать свою версию вывода видео, то все спектрумсовместимые имеют одинаковое видео (как минимум). Я сейчас не говорю про всякие там мегаскрины, их пока всё равно нет. Но спектрумсовместимый комп с немного изменённой раскладкой портов или памяти и своим ПЗУ сделать несложно. Однако документации на конфиг-файлы у меня нет.
в общем схемы подтверждают мою память
во схема от оригинального корвета
Вложение 16499
тут подается ~VBL
а на схеме с моего сайта (МИКС) там ~HBL
так что были два варианта ...
p.s. Альбом схем ...
Однако, кардинальное отличие: тактовая у второго канала либо 50Гц, либо 15625Гц. Как таймер, наверное, редко использовался.
зато можно точно узнать момент прохождения луча на нужной строке :)
надо будет залезть в контур и посмотреть что там запаяно физически....
и кстати цитата из techref
дома гляну что в бумажной (оригинальной) версииЦитата:
Канал 2
предназначен для генерации прерываний через фиксированные
промежутки времени. На вход С канала 2 поступает сигнал HBL с
периодом 65.6 мксек. Режим работы канала 2 задается по шине
данных в регистре режима, а коэффициент деления частоты - в
счетчике канала, адресуемых по линиям CSCT, А0, А1.
Эмуляция MSX и MSX-2 уже вполне приличная, запускаются, к примеру, такие игры как Vampire Killer и Batman (если не забыть скачать msxromdb.xml и положить в каталог MSX).
Чот йа не фкурю... (прошу прощения за мой о(а)лбанский) . Творение автора темы - это будет УНИВЕРСАЛЬНЫЙ эмулятор что ли ? Нескольких (многих) старых компов ? А каких ?
b2m, у тебя же вроде эмулятор отечественных компов, накой тебе сдался MSX, всё равно выше Blue msx не прыгнешь.
лучше бы эмуляцию БК доделали.
Универсальным я назвал его уже давно :) На данный момент эмулируются: Башкирия-2М, Агат-7, Апогей, БК-0010, БК-0011м, Вектор-06ц, Вектор Старт-1200, Ириша, Корвет, Лик, Львов ПК-01, Микро-80, Микроша, Орион-128, Орион-Про, Партнёр, ПК-6128ц, ПК 8000 Сура/Веста/Хобби, ПК 8002 Эльф, Радио-86РК, Специалист, Специалист-МХ, Юниор, ЮТ-88, а также ZX-Spectrum 48K/128K с дисководом, а теперь ещё и MSX/MSX-2. Основная фича эмулятора в том, что почти вся архитектура компьютера, за исключением видео-вывода, задаётся в конфигурационном файле.
Из всего этого списка, реально я работал с Башкирия-2М,Партнёр и MSX-2 (был также небольшой опыт общения с БК-0010, а с Корветом я общался только в течении 3-4 часов пока длился практический тур школьной олимпиады по программированию в Новосибирске в 88-ом году, если мне не изменяет память ;) ). Так что желание включить эмуляцию MSX в свой эмулятор, думаю, объяснимо. А ZX-Spectrum был промежуточным этапом перед MSX, т.к. его видео-вывод реализовать труда не составило, а основная цель была - погонять исходники Z80, которые единственные в моём эмуляторе являются позаимствованными.
УК-НЦ будет ? Или ДВК-3 ? В общем что нибудь под RT-11 ?