Просмотр полной версии : Пожелания и планы по эмулятору Башкирия-2М
Выложил первый релиз Агата, в принципе работает, но я совсем не знаю этот ПК, возможно есть глюки.
Насчёт дисководов: на Агате было два типа дисководов 140К и 800К, если образ диска маленький, то считается, что подключен дисковод 140К, а если файл больше 360К, то считается, что подключен дисковод 800К. Соответственно для загрузки с диска из монитора нужно дать команду:
C300G для 140К
C500G для 800К
БИОС стартует автоматом загрузку с 800К диска.
ничего не получается запустить.
при открывании диска и набора C300G эмулятор просто повисает, или очень долго грузит диск.
кстати я не понял, надо сначала вставить диск а потом нажать сброс ?
просто в досовом эмуляторе сначала надо было нажать клавишу F2, потом появлялась звёздочка и можно было набирать команду.
каким образом можно загрузить файлы лежащие в конфиге эмулятора и имеющие расширение *.B ?
выкладываю досовый эмулятор агата 7, в архив также входят все образы дисков для агата 7 и инструкция по запуску эмулятора.
http://rapidshare.com/files/160579859/em7.rar.html
и ещё мааааааленькая просьба, можешь добавить в эмулятор какойнибудь значок в уголке, хоть точечку хоть звёздочку какую, чтоб она мигала показывая активность дисковода, а то нифига не понять, толи грузит толи висит.
Добавлено через 43 минуты
с *.В файлами разобрался, эти 4 игрушки отлично работают.
хотя игрушка rocker помоему работает немного быстрей чем положено, и таймер в верхней части экрана стоит.
а чем извлекались файлы с дисков ?
при открывании диска и набора C300G эмулятор просто повисает, или очень долго грузит диск.
Значит образ диска не подходит. Я тут поискал по интернету образы, есть файлы с расширением .dsk, но это посекторные копии, а у меня пока рассчитано на полную копию дорожек. Размеры таких файлов соответственно 232960 и 947520 байт. Надо делать поддержку .dsk файлов.
а чем извлекались файлы с дисков ?
Не знаю :) Были в одном из эмуляторов (который Олега Воронова) уже в виде файлов.
Размеры таких файлов соответственно 232960 и 947520 байт.
именно такой размер и есть у образов дисков для агата 7, в другом виде диски к нему искать бесполезно, насколько мне известно других источников нет.
я написал автору досового эмулятора на емайл, надеюсь он придёт на этот сайт.
при открывании диска и набора C300G эмулятор просто повисает, или очень долго грузит диск.
Большинство дисков не системные, т.е. не содержат Бейсик, из которого и нужно запускать файлы с диска.
А ещё, вроде с прерываниями какой-то косяк, буду исследовать...
Добавлено через 3 минуты
Бейсик есть, например, на im20.img, вставляешь, выходишь в монитор, грузишься с него.
Добавлено через 5 минут
Запуск В-файлов - команда BRUN <имя>. Имя без кавычек и типа.
диск 20 ?
а если из него извлечь нужные файлы и сделать загрузочный диск ?
Добавлено через 41 минуту
интересно, мне удалось обмануть машинку. :)
включаете эмулятор.
нажимаете сброс.
вставляете в первый дисковод диск im20.img
набираете команду C300G
после загрузки диска вставляете в первый дисковод любой другой диск.
набираете команду Catalog
загружайте файлы.
проверял на диске IM3.img
интересно, мне удалось обмануть машинку
Интересно, а я как бы другого и не предполагал :) Вполне логичная последовательность на реальной машине: загрузился, вставил нужный диск и работай.
а нельзя чтобы в первый дисковод загрузочный диск а во второй любой другой ?
каким образом тогда набирать команды что просматривать файлы на втором диске ?
каким образом тогда набирать команды что просматривать файлы на втором диске ?
Это ты у агатовцев спроси :)
b2m, я разговаривал с автором эмулятора, говорит что все диски загрузочные.
насчёт дисководов мне ответил так:
catalog,d2 - каталог диска на текущем контроллере, второй привод
catalog,s5 - каталог диска на контроллере слота 5
catalog,s3,d1 - каталог дискка на контроллер слота 3 привод 1
такие ключики можно указывать другим командам : brun.... run, ... и другим
если у тебя будут какието вопросы по агату свяжись с ним.
я тебе в личку напишу.
b2m, про эмуляцию ПК "Эрик" (а-ля Специалист с Z80) не думал?
http://www.emuverse.ru/wiki/Эрик/Радиолюбитель_1994/Персональный_компьютер_«Эр ик»
У меня уже даже кое-какая документация по нему имеется. А вот дампа ПЗУ нету.
Добавлено через 3 минуты
Сравнил имеющийся у меня pdf с вышеприведённой ссылкой - буква в букву :)
Добавлено через 6 минут
насчёт дисководов мне ответил так
Надо же, работает :)
b2m, тоесть работает, вот так меняя диски загружать ?
мне сказали что все диски загрузочные.
и с его слов "большинство игр идёт под т.н. dos33. именно она, совершенно идентичная на всех дисках, стоит в большинстве образов, т.е с точки зрения загрузки они одинаковы"
я тебе в личку писал, ты получал сообщение ?
Получил. Почему не грузится со всех дисков, пока не выяснил, это надо долго сидеть и трассировать выполнение в дебагере. А работает - catalog,s5,d2 и т.п.
Может лучше сначала b2m ПК6128ц доделает?
В смысле - процессор ВМ85? На чём тестировать-то? Или ты что-то другое имел ввиду?
Может я поторопился с предыдущим постом. Переключение видеостраниц реализовано (проверить недолго, но некогда)? Растактовка для ВМ85 и две дополнительные команды (насчет недокументированных у 85 я не в курсе) реализованы?
У меня уже даже кое-какая документация по нему имеется. А вот дампа ПЗУ нету.
Там сказано "Первоначально в компьютере использовано базовое программное обеспечение от ПК «Специалист»." и указано, какие правки внести в базовое ПО, чтобы получить прошивку для "Эрика". Правок не так и много - всего 13 байт изменить, да 32 дописать.
Переключение видеостраниц реализовано
Да.
Растактовка для ВМ85 и две дополнительные команды
Нет.
Tim0xA, эрик пока делать бессмысленно.
нет дампов программ и пзу, компьютер самодельный и для него если мне не изменяет память не было сделано ни одной программы.
эрик не совместим ни с какими другими компьютерами.
я читал об этом толи в википедии, толи на полигоне призраков, точно уже не помню где.
ZEman, ответом тебе будут цитаты из статьи: "Первоначально в компьютере использовано базовое программное обеспечение от ПК «Специалист»." и "...на базе ПК «Специалист» разработан новый программно совместимый с ним персональный компьютер с открытой архитектурой и контроллером НГМД".
Error404
17.11.2008, 21:16
Небольшое пожелание: не задавать CHS образа диска настройкой в конфиге, а автоматически вычислять из размера образа диска. Очень неудобно: у меня много образов HDD разного размера и при переключении каждый раз приходится вооружаться калькулятором. А если не поправить, то с диска читается странное.
автоматически вычислять из размера образа диска
Формулы не подскажешь? :) Как минимум нужно знать количество секторов на дорожке и количество головок, а количество дорожек, так и быть рассчитаю. Собственно, контроль количества дорожек можно и отключить, задав столько дорожек, сколько душе угодно.
Error404
17.11.2008, 22:35
Формулы не подскажешь? :) Как минимум нужно знать количество секторов на дорожке и количество головок, а количество дорожек, так и быть рассчитаю. Собственно, контроль количества дорожек можно и отключить, задав столько дорожек, сколько душе угодно.
16 головок, 63 сектора, дорожек <размер_файла/(512*головок*секторов)>+1
Где-то примерно так. Ну, можно еще количество секторов попробовать вычислять из кратности размеру файла.
16 головок, 63 сектора
Но ведь это не всегда так? У меня образ hdd с твоего сайта - 16 секторов.
Error404
18.11.2008, 00:38
Но ведь это не всегда так? У меня образ hdd с твоего сайта - 16 секторов.
У меня число "секторов" при открытии файла подбирается в цикле чтобы максимально точно попасть в размер файла - это число секторов и возвращется через Identify. Я не уверен, что это правильно (проверить не чем, все мои софтины используют только LBA-адресацию и соотвественно честный LBA-размер винта, равный реальному с кратностью в 512 байт). Для того файла, о котором идет речь, число секторов, видимо, вычисляется эмулятором как 16 (реально был взят первый попавшийся более-менее понравившийся по размеру файл с "С:\", подключен как образ и fdisk-oм разбит на партиции/отформатирован).
По крайней мере современные LBA-винты для "эмуляции" геометрии CHS используют формулу C*16*63
Если используется только LBA, то можно установить CHS по максимуму - это снимет все ограничения на позиционирование головки, а при адресации в режиме LBA параметры CHS не используются.
Добавлено через 3 минуты
Кстати, в таком случае, можно вообще убрать эту строку с геометрией, по умолчанию у меня используется 1024C255H63S, что соответвует файлу более 8Гб. По-моему достаточно :)
Добавлено через 7 минут
А геометрию я добавил не для Ориона, там и без неё всё работало. А вот на Векторе используется CHS адресация.
Error404
09.12.2008, 17:32
Если используется только LBA, то можно установить CHS по максимуму - это снимет все ограничения на позиционирование головки, а при адресации в режиме LBA параметры CHS не используются.
Добавлено через 3 минуты
Кстати, в таком случае, можно вообще убрать эту строку с геометрией, по умолчанию у меня используется 1024C255H63S, что соответвует файлу более 8Гб. По-моему достаточно :)
Можешь помочь? Нужно слепить конфиг для Ориона: чтобы был CPU ВМ80, IDE по схеме на ВВ55 на порту 0F600h, ROM-DISK (обычный авторский - с Ordos) на порту 0F500h, клавиатура PK86.
Хочу попробовать поизвращаться - попрограммировать для ВМ80. :)
Возьми за основу стандартный Orion-128.cfg, добавь в конце
app2 : K580ww55 {
}
hdd : cf-ide {
drive[0].image="Orion\dos-hdd.ohi"
addr=app2.portA[0-2]
cs0=app2.portA[3]
cs1=app2.portA[4]
iowr=app2.portA[5]
iord=app2.portA[6]
msb=app2.portB
lsb=app2.portC
}
А после строчек
map[ ][F500-F5FF]=app1.data
добавь
map[ ][F600-F6FF]=app2.data
После долгого перерыва воспользовался отладчиком b2m, возник вопрос:
Исправил ошибки в отладчике.
Какие ошибки имелись в виду? Две довольно неприятные (для меня в конфиге вектора c z80, c кр580 раньше тоже было, сейчас не проверял) - 1) "чудеса" с отображением мнемоник команд при включенном обращении стеком к КД и выполнении команды pop, 2) "залипание навечно" клавиши, если обработка ее нажатия протрассирована под отладчиком (формулировка может не на 100% верная но близко к тому).
Насчёт "залипания навечно" я почти на 100% уверен - не может быть такого. Нажатие клавиши не может быть обработано при трассировке, т.к. сообщения о нажатии/отпускании обрабатываются отладчиком, а не эмулятором. Другое дело, когда клавишу мы нажали при нормальном выполнении, а потом сработала точка останова - тогда отпускание обработается отладчиком, и клавиша останется нажатой. В таком случае нужно лишь нажать и отпустить эту клавишу ещё раз при нормальном исполнении.
А про чудеса: в конфигурации с кр580 точно быть не должно, а с z80 вроде я ещё не исправил.
клавишу мы нажали при нормальном выполнении, а потом сработала точка останова - тогда отпускание обработается отладчиком, и клавиша останется нажатой. В таком случае нужно лишь нажать и отпустить эту клавишу ещё раз при нормальном исполнении.
Повторное нажатие сработало, но все же такое поведение нельзя назвать нормальным. Пример - нажал клавишу, попал в обработчик, F5, клавиша якобы еще нажата - снова попал в отладчик, и так пока не снимешь точку останова и не нажмешь еще раз ту самую клавишу. Просьба поправить этот момент.
про чудеса: в конфигурации с кр580 точно быть не должно
Сейчас не проверял, но вспомнил, что когда были разборки с каким-то intro SES, ты исправил, в отладчике в конфиге КР580 все было нормально.
b2m, как там насчет портирования на SDL и многоплатформенности?
По поводу портирования на SDL и прочее: после пары экспериментов обнаружились, что всю мощь графической карты, которую использует непосредственно DirectX, через тонкую дырочку SDL использовать не удастся. Я имею ввиду возможность аппаратного масштабирования изображения. Без него сделать масштабирование окна эмулятора довольно затруднительно. Даже если и сделать это кратно целому числу, то увеличение генерируемого изображения всего в два раза по горизонтали приводит к жуткому съеданию процессорного времени. Так что, либо нормальное изменение размера окна, либо 1-к-1-му, но с использованием SDL.
Другая проблема - отсутствие интерфейса, но она в принципе решаема, можно даже сделать на основе одного из эмулируемых компьютеров :) Т.е. выключаем эмуляцию текущего компа, и включаем другой, который позволит выбрать файл, или даже отобразить окно отладчика :)
Error404
11.02.2009, 13:55
Сейчас был на сайте http://bashkiria-2m.narod.ru/
Вопрос: самописные программы типа редактора, отладчика, эл.таблиц были для CP/M? Если да, то стандартными CP/M или лезли куда-то за пределы TPA, в графику? На Орионе пойдут? :) Было бы забавно...
Если ты имеешь ввиду те, что были сделаны для Башкирии-2м и которые есть на скриншотах, то вряд-ли они пойдут на Орионе, т.к. обычно вывод на экран и ввод с клавы мы делали не обращаясь к процедурам БИОСа, а тем более процедурам СР/М :)
Кроме того, мой отладчик, например, использовал аппаратную возможность переключаться между двумя экранами.
Doronetty
01.04.2009, 13:16
Хочу спросить автора, можно ли использовать наработки Эмулятора 3000 в плане реализации БК - там вроде она достаточно неплохо реализована (да и к тому же сделана приемлемая поддержка БК-0011М)? А то как я понял, поддержка БК зависла пока до лучших времён...
Об этом лучше спросить автора Эмулятора 3000 ;)
Добавил БК-0011М. Хотелось довести до ума, но как-то всё времени не хватает, решил выложить как есть. ANDOS работает, а Бейсик почему-то вылетает.
b2m, это конечно хорошо, но ещё ведь и БК 0010 недоделан.
образы дисков для БК-0011М в виде IMG файлов, эмулятор такие файлы непонимает.
Doronetty
03.05.2009, 22:05
Ничего, обе БК-шки веселее доделывать будет! ;) Тем более что они связаны между собой родственными узами и доделка одной будет автоматически означать доделку другой. Автору респект!!!
образы дисков для БК-0011М в виде IMG файлов, эмулятор такие файлы непонимает.
Принципиального отличия файлов IMG и BKD нет. И то, и другое - посекторные копии диска. Убедится в этом можно переименовав файл в *.bkd (нужно только снять защиту записи с файла, а то у меня ошибка открытия получается, т.к. предполагалось сделать ещё и запись). В следующей версии сделаю маску файлов на оба типа.
Doronetty
06.05.2009, 18:00
Посмотрел БК-шки - как-то они быстровато бегают (во всех эмуляторах БК скорость и звуки бипера соответственно пониже, да и насколько я помню на реале тоже так). Клавиатура иногда залипает (это когда я в Десантник-1 играл). БК-11М не проверял, т.к. IMG не поддерживается (особо хотелось погонять демки с мультиколором, AY и COVOX) :( Ну и до кучи посмотрел Специалист - нет поддержки цвета (а в реале было и в эмуляторах тоже! - стоит тот же цветной вариант Клада запустить на том же Emu80). И управление ведёт себя странновато - клавиши курсора на основной клавиатуре не работают, а на цифровой клавиатуре работают, но не на всех играх (в Budi не работают, а в Budi 2 работают). Вот.
Doronetty, если ты разбираешься в БК, выложи какойнибудь FAQ по БК 0011М.
а то непонятно как и что надо грузить, какими командами надо пользоваться.
Посмотрел БК-шки - как-то они быстровато бегают
Да, количество тактов на команду пока довольно приблизительное. Где взять растактовку команд пока не нарыл.
БК-11М не проверял, т.к. IMG не поддерживается (особо хотелось погонять демки с мультиколором, AY и COVOX)
AY и COVOX пока не подключен. Я пытался запустить несколько демок, пока результат не очень, большинство просто вылетают. Тяжело разбираться с незнакомым компьютером. Вот если бы кто потрассировал в дебагере и нашёл баги... :rolleyes:
до кучи посмотрел Специалист - нет поддержки цвета (а в реале было и в эмуляторах тоже!
Я думал, цветной Специалист это только тот, что МХ. Можно в конфиге добавить дешифрацию портов аналогично Специалист-МХ.
управление ведёт себя странновато - клавиши курсора на основной клавиатуре не работают, а на цифровой клавиатуре работают
Надо просто взять и исправить все layout.kbd продублировав клавиши курсора, как сделано для БК0010. Руки только не доходят :)
Doronetty
06.05.2009, 23:08
Doronetty, если ты разбираешься в БК, выложи какойнибудь FAQ по БК 0011М.
а то непонятно как и что надо грузить, какими командами надо пользоваться.
Ну не то чтобы совсем разбираюсь - я имел дело только с БК-0010-01, а вот 11М в глаза не видывал. А грузить - ничего сложного, весь вопрос в поддержке IMG образов. Там происходит автозагрузка проги типа Нортона - а в ней всё и так понятно;)
b2m Растактовку (да и про всякие навороты) резоннее всего спросить у главного специалиста по БК - Алексея Савельева, который сделал ИХМО лучший эмулятор БК под ДОС http://bk.pictures2.com/
b2m, придумай пожалуйста альтернативу для твоей любимой клавиши <>
Когда делаешь эмуляцию нового компьютера, раскладку откладываешь "на потом", потому что чаще всего она не известна. А потом всё остаётся как есть :) Я надеялся, что на английской клаве есть какой-либо аналог этой клавиши, но похоже эта клавиша существует только на немецкой клаве :)
Почитал тексты Сугоняко отсюда
Я, кстати, не так давно выкладывал ссылку на разобранный и отсортированный архив всей этой прелести: ftp://ftp2+emuverse.ru:gMGAFvXS6CK5@....ru/pub/orion/
из них следует, что для ориона-pro все же была сделана палитра на дополнительной платке. В эмуляторе это не реализовано? Если реализовано, то по каким портам?
Нашел 2 варианта (хотя сомневаюсь, что именно один из них использовался в PRO)
http://orion128.nikom.biz/data/pcx-doc.txt
http://orion128.nikom.biz/data/ega.txt
Нет, палитру я не делал. Покопавшись в исходниках нашёл вот это:
...
;MULTI CARD PALETTE
LD HL,PALTAB
LD BC,10E0H
OTIR
LD BC,10E1H
OTIR
LD BC,10E2H
OTIR
...
;PALETTE FOR MULTI CARD
PALTAB: DB 00H,14H,20H,30H,4CH,5FH,6CH,7FH
DB 80H,90H,0A0H,0B0H,0CCH,0DFH,0ECH,0FFH
;
DB 00H,14H,20H,30H,40H,50H,60H,70H
DB 8CH,9FH,0ACH,0BFH,0CCH,0DFH,0ECH,0FFH
;
DB 00H,14H,2CH,3FH,40H,50H,6CH,7FH
DB 80H,90H,0ACH,0BFH,0C0H,0D0H,0ECH,0FFH
Error404
30.06.2009, 19:14
Почитал тексты Сугоняко отсюда
из них следует, что для ориона-pro все же была сделана палитра на дополнительной платке. В эмуляторе это не реализовано? Если реализовано, то по каким портам?
Нашел 2 варианта (хотя сомневаюсь, что именно один из них использовался в PRO)
http://orion128.nikom.biz/data/pcx-doc.txt
http://orion128.nikom.biz/data/ega.txt
Эти доработки были только у Коровкина (автор из Ижевска). Внедрялись на журнальном Орионе-128 (расширенном до 256к) обязательно с ОЗУ 4х8 РУ5 (т.е. с 4 физическими плоскостями, для 2хРУ7 варианта у Коровкина не существовало, AFAIK). Это накладывало ограничение на разгон (не справлялись 155КП2, а 555/1533КП11 не поставишь - не тянут 32 корпуса РУ5), на ПК (хоть и разогнанного по схеме c Wait) оно работало тормознуто (реально - только статическая графика).
Из ПО для этого многоплоскостного цвета было: 1 просмотрщик + куча конвертированных с PC PCX-файлов. У меня это есть, если не потер. Схем нет.
Хорошо бы включить эмулляцию Специалиста_МХ, если таковой не имеется. Исходники можно взять с сайта http://http://avsh-soft.by.ru/. Правда он иногда не отвечает.:v2_confu:
Хорошо бы включить эмулляцию Специалиста_МХ, если таковой не имеется.
Имеется. Давно бы уже скачал, да посмотрел, что имеется, а что нет. :v2_tong2:
А не можно сделать "Memory block dump to file" и "Load memory block from file"? А то уже с *.rk устал :v2_mad:
"Load memory block from file" c возможностью указать начальный адресс загрузки блока.
"Memory block dump to file" c возможностью указать начальный и конечный адресс выгрузки блока.
Спасибо,
Protom
Если дебаггер открыт, открытие .rom файла через File/Open обрушивает эмулятор. Это немного огорчает, потому что трудно отловить что происходит сразу после загрузки.
XobbiMan
14.08.2009, 20:13
b2m,
А как надо настроить эмулятор, чтобы запустился ФОКАЛ на БК-0010-01 эмуляции?
Сам для себя и отвечаю - надо просто выбирать конфигурацию БК-0010
(просто я никогда с БК близко не сталкивался)
А зачем? Конфигурации БК-0010 и БК-0010-01 только тем и отличаются, что в первой Фокал, а во второй - Бейсик. В остальном это одна и таже конфигурация.
b2m, порт FE в конфиге Орион-128 Z80 Card II на чтение сейчас работает неправильно
Сообщение от ivagor
Error404, вопрос - порт FE на чтение в Z80 Card II как работает? Из за его не совсем верной реализации в b2m galaxian зацикливается.
c порта FE всегда читается 0FFh
XobbiMan
16.08.2009, 21:47
b2m,
В эмуляторе БК-0010-01 выгрузил бейсик-программу в WAV.
Обратно загрузить не получается.
Как это делается?
(по методу как делал в ПК8000 - что-то загружает но не работает - виснет)
Также с реальной БК выгрузил прямо в WAV. Не получилось загрузить.
bk_PRIWET_bas.zip (340.4 Кб) - это с реального бк "PRIWET" записанный аудио редактором.
bk_TEST_bas.zip (3.2 Кб) - это с эмулятора "TEST"
Сам реальный БК обратно WAV созданный эмулятором не понял. Свой записанный аудио редактором загрузил.
Может это сообщение к БК перенести?
Новая версия эмулятора на сайте, добавлены новые возможности отладчика.
Невероятно! Свершилось! Лучше поздно, чем никогда :)
Attach Listing - здорово, но желательно tabы менять на пробелы, а не на квадратики.
Еще бы возможность модифицировать содержимое области памяти и портов
Еще бы возможность модифицировать содержимое области памяти и портов
Память уже можно!
Память уже можно!
"Load Block"? Вот если бы прямо в окне менять, как в шестнадцатеричном редакторе.
Действительно, квадратики :) Как-то не попадалось раньше...
Вобщем, закачал исправленный вариант.
---------- Post added at 22:10 ---------- Previous post was at 22:09 ----------
Господа, всё можно менять. Только, если из порта читается не то, что пишется - то тут уж не обессудьте.
Вот если бы прямо в окне менять, как в шестнадцатеричном редакторе.
И так можно :)
b2m, при разборе attach listing ты игнорируешь метки, которые стоят на "пустых" строках, в которых нет собственно кода, но адрес то есть, может сделаешь, чтобы они тоже воспринимались?
А load/save block с портами тоже работает.
---------- Post added at 22:13 ---------- Previous post was at 22:11 ----------
при разборе attach listing ты игнорируешь метки, которые стоят на "пустых" строках, в которых нет собственно кода, но адрес то есть, может сделаешь, чтобы они тоже воспринимались?
Думал уже об этом, но пока сложно сделать, чтобы одному адресу несколько строк соответствовало.
---------- Post added at 22:14 ---------- Previous post was at 22:13 ----------
Еще бы возможность модифицировать содержимое области памяти и портов
Tab нажми! Или F1 :)
С портами я промахнулся - пытался менять те порты, которых нет, поэтому думал, что порты нельзя редактировать.
---------- Post added at 22:19 ---------- Previous post was at 22:14 ----------
Вобщем, закачал исправленный вариант.
Так намного лучше!
Думал уже об этом, но пока сложно сделать, чтобы одному адресу несколько строк соответствовало.
Несколько строк/меток - это дело будущего, а если данному адресу соответствует одна метка, но она в отдельной от кода строке - вроде эту ситуацию несложно обработать.
если данному адресу соответствует одна метка, но она в отдельной от кода строке - вроде эту ситуацию несложно обработать.
Ну что-ж, будет чем заняться в выходные :)
Ага, точно, можно как в шестнадцатеричном редакторе менять, я просто Tab не нажимал, пытался мышкой кликнуть по ячейке памяти, а надо было сначала туда Tab-ом доклацать. Тогда может стоит сделать переход в окно, если в нем кликнуть мышкой? Кликнул по ячейке и курсор уже там.
Тогда может стоит сделать переход в окно, если в нем кликнуть мышкой? Кликнул по ячейке и курсор уже там.
Да, неплохо бы, сделаю потом. В наше время люди без мышки вообще теряются, что в винде, что в линухе :)
b2m, а где прочитать про дополнительные возможности Отладчика?
svofski, просто нажми в отладчике F1 :)
Я обновил эмулятор, учтены ваши пожелания.
svofski, просто нажми в отладчике F1 :)
Удивил! Спасибо.
Я тут стал разбираться с эмуляцией атрибутов ВГ75 для Апогея и обнаружил, что у b2m они обрабатываются не совсем так, как на реале.
Во вложении фото и скриншот с эмулятора. Мои первичные выводы такие:
1. Вар. 1. Атрибут начинает работать со следующего символа, а не с себя. Вар. 2. Либо ячейка с атрибутом всегда черная.
2. После надписи стоит один пробел (код 20Н). В эмуляторе он почему-то черный, хотя на нем еще должен работать атрибут выворотки (90H), стоящий перед надписью.
Если справедлив 1.1., то после надписи получится два белых символа. Поэтому я склонен считать верным 1.2.
На самом деле, многое зависит от схемного решения. Схемы Апогея у меня нет, спасибо за картинку.
Схемы Апогея у меня нет
http://www.emuverse.ru/downloads/computers/Apogey/docs/Apogey_BK-01C_Schematics_Retouched.djvu
Теперь понятно. Обычно точки символа по сравнению с выводом атрибутов запаздывают на одно знакоместо, т.к. требуется время, чтобы выбрать байт из ПЗУ шрифта и записать его в сдвиговый регистр, а в Апогее они и для атрибутов регистр поставили, который задерживает их на одно знакоместо. Т.е. у Апогея атрибуты не были смещены влево, как у РК, Партнёра, Микроши.
С Партнёром тоже пока не всё ясно, т.к. в некоторых играх, рассчитанных на МЦПГ, наблюдается несоответствие "задуманного" цвета символа, и эмулируемого. Но не везде, это и смущает.
Doronetty
03.11.2009, 18:31
Пожелания таковы: сделать более "продвинутый" GUI, чтобы можно было регулировать опции Video, Sound, выбирать доп. устройства (джойстик, мышь), регулировать тайминги процессоров (т.к. многие игры идут слишком быстро).
P.S: Смотрю, "Специалист" так и не приобрёл цвета :( Для примера высылаю заведомо цветную игру Land (именно её цветной вариант), которая в эмуле идёт по-прежнему в чёрно-белых тонах. И кстате процентов на 30 быстрее идёт, чем должна ;)
P.S: Смотрю, "Специалист" так и не приобрёл цвета
Цветной вариант - Специалист-МХ
Речь об оригинальном цветном варианте:
МК88/7, стр. 46-47
МК90/8, стр. 28 - расширение до 8 цветов
Эмулятор Пыхонина это поддерживает и в архивах игрушек для Специалиста на его сайте есть несколько цветных.
Doronetty
04.11.2009, 00:39
Цветной вариант - Специалист-МХ
Это понятно, только как ни старался, не смог под MX запустить - ведь MX под работу с дисками заточен, а с образами ленты как работать, я так и не смог сообразить... :(
У него и раскладка портов другая. Сделаю, когда-нибудь.
b2m, было бы очень удобно, если в отладчике каким-либо цветом выделялись бы ячейки и номера портов, к которым было обращение во время выполнения программы. Например, изначально все чёрные на белом фоне. Было чтение - фон стал зеленый, запись - желтый, поменялось содержимое при записи - красный. Или можно менять цвет шрифта. Ну и т.п.
Удобны были бы прерывания: на чтение, на запись, на изменение содержимого ячейки памяти/порта.
b2m, ты уверен в нумерации экранных областей для ПК-6128Ц? Ты ее по схеме делал?
Не помню, может быть и не по схеме.
Error404
07.02.2010, 23:17
Я где-то читал в треде, что в отладчике эмулятора есть режим когда дизассемблер синхронизируется с исходным файлом. Интересно - по какому принципу отладчик определяет какой строке в исходнике (и в каком файле, особенно если их несколько по 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' и '.' являются полными
аналогами правой и левой кнопок "мыши" соответственно.
Error404
26.02.2010, 12:20
и было еще какаято корветовская "паралельная" мышка, но я ее упоминание встречал только косвенно в спековсвих доках где-то
У меня такая мышь до сих пор дома где-то валяется - планировал на Орионе попользовать, но руки так и не дошли.
У меня такая мышь до сих пор дома где-то валяется - планировал на Орионе попользовать, но руки так и не дошли.
а фото можно :)
и есть ли детали программирования ?
в treas не все впорядке с оботбражением спрайта героя,
у тебя он в некоторых частях экрана не виден (побегай немного по экрану)
Я подозревал, что прерывание генерируется не тогда, когда луч выходит на экран, а в другой момент, но в какой - я не знаю. Придётся залезть в твои исходники :)
З.Ы. Нету у тебя такой информации, у тебя экран "фотографируется" и выплёвывается, а у меня формируется параллельно с выполнением. Поэтому спрайт успевает отобразиться в "стёртом" состоянии. Скорее всего прерывание формируется как везде, с началом кадрового СИ. Пока сделаю так.
Я подозревал, что прерывание генерируется не тогда, когда луч выходит на экран, а в другой момент, но в какой - я не знаю. Придётся залезть в твои исходники :)
эээ, прерывание называтся VBL
в моем понимании это когда идет кадровый гасящий ...
З.Ы. Нету у тебя такой информации, у тебя экран "фотографируется" и выплёвывается, а у меня формируется параллельно с выполнением.
эт конечно более правильно, если вдруг займусь опять, тоже так сделаю
В ходе разбирательства с ABRIS-ом выяснил одну фичу, которая у меня пока не реализована. Оказывается сигнал gate второго канала таймера тактировался коротким импульсом логического нуля в момент начала КСИ. На режим делителя частоты это никак не влияет, а режим аппаратной задержки без этого не работает. Посмотрел в схему: действительно есть сигнал /SVBL и идёт он на второй канал таймера.
Однако ещё более странным оказалось то, что ABRIS рассчитывет на то, что такой фичи может и не быть, т.е что сигнал gate таймера просто повешен на еденицу, и тогда он использует прерывание по КСИ. Курсор при этом полностью или частично исчезает с экрана при движении в самой верхней части экрана (что сейчас в эмуляторе и происходит). Выяснилось это когда я нашёл у себя ошибку инициализации таймера, из-за которой курсор в ABRIS-е двигался только после второй попытки запуска.
Правда ли, что были такие варианты Корвета?
esl, а вы будете дальше обновлять свой эмулятор ?
esl, а вы будете дальше обновлять свой эмулятор ?
Хотелось бы :)
по крайней мере его НАДО портануть по MAC :)
заодно и переписать по SDL
и дописать таймер (эт единственный серьезный баг в нем)
гораздо важнее это привести в порядок софт корветовский
хотя сейчас эти процессы будут взаимосвязаны (т.к. под мак нету эмулятора корвета а эт сейчас моя основная домашняя платформа).
хотя основную работу так сказать я сделал, теперь уже есть несколько эмуляторов корвета
и значит он не канет в лету :)
---------- Post added at 11:28 ---------- Previous post was at 11:25 ----------
В ходе разбирательства с ABRIS-ом выяснил одну фичу, которая у меня пока не реализована. Оказывается сигнал gate второго канала таймера тактировался коротким импульсом логического нуля в момент начала КСИ. На режим делителя частоты это никак не влияет, а режим аппаратной задержки без этого не работает. Посмотрел в схему: действительно есть сигнал /SVBL и идёт он на второй канал таймера.
Однако ещё более странным оказалось то, что ABRIS рассчитывет на то, что такой фичи может и не быть, т.е что сигнал gate таймера просто повешен на еденицу, и тогда он использует прерывание по КСИ. Курсор при этом полностью или частично исчезает с экрана при движении в самой верхней части экрана (что сейчас в эмуляторе и происходит). Выяснилось это когда я нашёл у себя ошибку инициализации таймера, из-за которой курсор в ABRIS-е двигался только после второй попытки запуска.
Правда ли, что были такие варианты Корвета?
гм, вроде что-то такое было
поищу письмо от авторов.
вроде как это добавили позже, в оригинальном этого небыло
хотя штука удобная, можно точно позиционироватся на нужной строке :)
---------- Post added at 11:36 ---------- Previous post was at 11:28 ----------
Пожелание/бага :)
в About EMU
все еще EMU Version 1.01
Copyright (C) 2005-2008
и имхо было бы не плохо выкладывать Release Notes ...
CodeMaster
05.03.2010, 21:27
Я конечно все 35 страниц не читал, так что извиняйте если вопрос поднимался. А планируется добавить сюда Spectrum ориентированое железо. И вообще, расширение платформ в эмуляторе стандартизировано или это в ручном режиме? Просто интересно бы было сделать мегаплатформу для эмуляторов ;-) Просто я некоторое время увлекался эмулями, т.к. реальное железо не всегда под рукой, так вот многие проекты умирали на взлёте из-за потери интереса к ним автора (что на определённом этапе не удивительно). А ещё было бы круто портировать эту платформу на Dingux и впихнуть это всё в Dingoo! Ну как я размечтался :-) ктоньть принесите губозакаточную машинку ;-)
Никто не запрещает сделать свой "конфиг", и спектрумсовместимое имеет тут одно преимущество: если для разных 8-битных ПК приходится всё время делать свою версию вывода видео, то все спектрумсовместимые имеют одинаковое видео (как минимум). Я сейчас не говорю про всякие там мегаскрины, их пока всё равно нет. Но спектрумсовместимый комп с немного изменённой раскладкой портов или памяти и своим ПЗУ сделать несложно. Однако документации на конфиг-файлы у меня нет.
Правда ли, что были такие варианты Корвета?
в общем схемы подтверждают мою память
во схема от оригинального корвета
16499
тут подается ~VBL
а на схеме с моего сайта (МИКС) там ~HBL
так что были два варианта ...
p.s. Альбом схем ... (http://zx.pk.ru/showthread.php?p=263279#post263279)
Однако, кардинальное отличие: тактовая у второго канала либо 50Гц, либо 15625Гц. Как таймер, наверное, редко использовался.
Однако, кардинальное отличие: тактовая у второго канала либо 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 ?
Может и будет, БК-шка ведь уже есть. Хотя особого энтузиазма в направлении DEC-совместимых компьютеров пока нет.
Doronetty
27.03.2010, 00:22
Лучше ДВК (хотя бы 3М) - его ещё никто не эмулировал!!! Ну и БК эмуляцию оттточить назло всем буржуям ;)
да эмулятор ДВК это было бы нечто...
эх мечты, мечты.
Запустил на реале тест by Ivan Gorodetsky
вот результаты
17005 - реал
17006 - b2m
вот диск с тестом
17008
и исходник
17007
ну и в виде таблички (набирал руками) ...
17010
собственно там надо еще посчитать точно такты до начала теста самих комманд
но они ж постоянны для всех тестов (TestDataInit:)
esl, спасибо за результаты с реала. Я не анализировал схему, но судя по всему у Корвета в кадре не 312, а 306 строк. В последнем случае результаты в эмуляторе "почти совпадают", с точностью до пары-тройки команд. Где-то ivagor уже говорил про этот недостаток эмулятора.
---------- Post added at 15:29 ---------- Previous post was at 15:15 ----------
Выложил эмулятор с данным исправлением.
А у меня из результатов eslа получилось 314 строк :confused: (если считать, что у Корвета в строке 160 тактов, или это не так?).
---------- Post added at 17:49 ---------- Previous post was at 17:22 ----------
Похоже b2m посчитал по 164 такта на строку.
Я не считал такты, я поделил значения с реала на свои и умножил на 312 строк (которые были в эмуляторе).
---------- Post added at 17:07 ---------- Previous post was at 16:52 ----------
Кстати, да, период строчных импульсов у меня 65.6 мс, что соответствует 164 тактам при частоте 2.5МГц. Переделал, когда с таймером разбирались. Это было предыдущее изменение в эмуляции Корвета :)
---------- Post added at 18:05 ---------- Previous post was at 17:07 ----------
Ради совпадения результатов теста с реалом укоротил кадр на 6 тактов :)
Новая версия на сайте.
Интересно, откуда берутся эти 6 тактов? Почему процессор в Корвете при возникновении прерывания простаивает 6 тактов? Например в ПК8002 аналогичная ситуация, но там только 4 такта...
---------- Post added at 18:10 ---------- Previous post was at 18:05 ----------
У меня, конечно, есть предположение: если выполнялась команда HLT, то процессор не может сразу после прерывания возобновить исполнение и считать команду RST или CALL, команда HLT должна завершить цикл, но это же не 6 тактов!
[/COLOR]У меня, конечно, есть предположение: если выполнялась команда HLT, то процессор не может сразу после прерывания возобновить исполнение и считать команду RST или CALL, команда HLT должна завершить цикл, но это же не 6 тактов![/QUOTE]
ну после прерывания PIC подсовывает процу CALL, надо бы глянут сколько это занимает ...
или я не про то ?
кстати, еще нашел, не работает DEFLECTOR
запускаеш игру, а там в любом случае заканчивается энергия и смерть
и на сайте все еще старая версия ...
ну после прерывания PIC подсовывает процу CALL, надо бы глянут сколько это занимает ...
Нет, это учитывается: CALL - 17, RST - 11
кстати, еще нашел, не работает DEFLECTOR
запускаеш игру, а там в любом случае заканчивается энергия и смерть
А я думал, что я просто не успеваю сделать то, что надо. А как должно быть по-нормальному?
и на сайте все еще старая версия ...
Попробуй очистить кеш браузера, на народе бывает непонятка с датой и браузер думает, что файл не изменился.
Нет, это учитывается: CALL - 17, RST - 11
А я думал, что я просто не успеваю сделать то, что надо. А как должно быть по-нормальному?
в моем - работает
там курсором водиш
пробел+курсор - воворачивать зеркала
кстате о растактовке корвета
из документации
частота кадровой похоже
49.8166746373346
20мгц/16=1.25мгц
1.25мгц/164=7.62кгц
7.62кгц/153=49.8166746373346
~hbl = 1(64T=51.2мкс)0(18T=14.1мкс)
~vbl = 0(25T)1(128T)
и еще цитата
"при обращении МП к УВВ формируется один такт ожидания"
УВВ это все бисы
и еще похоже (но не уверен) что при форимровании CALL от контроллера прерываний на каждый байт добавляем по такту ожидания ....
может это что-то объяснит ?
кстате о растактовке корвета
из документации
частота кадровой похоже
49.8166746373346
20мгц/16=1.25мгц
1.25мгц/164=7.62кгц
7.62кгц/153=49.8166746373346
~hbl = 1(64T=51.2мкс)0(18T=14.1мкс)
~vbl = 0(25T)1(128T)
Ну в принципе, и у меня почти также, только я считаю по-другому, исходя из тактовой частоты процессора:
2.5МГц / 164 / 306 = 49.8166...Гц
Насчёт hbl они где-то общитались: 51.2+14.1=65.3мкс, а если по тактам посчитать 164/2.5Мгц = 65.6мкс
А, понял, 18Т=14.4мкс :)
А насчёт vbl я вообще не понял, почему они считают в половину меньше, стандартная ТВ развёртка 625 чересстрочная, то есть в кадре 312,5 строк, с учётом Корветовской развёртки 306, а у них только 153...
и еще цитата
"при обращении МП к УВВ формируется один такт ожидания"
УВВ это все бисы
и еще похоже (но не уверен) что при форимровании CALL от контроллера прерываний на каждый байт добавляем по такту ожидания ....
может это что-то объяснит ?
Один такт ожидания при обращении к УВВ - это только +1 такт в тесте, т.к. там только одна команда обращения к PIC. Насчёт такта ожидания при формировании CALL я сомневаюсь.
А вот сколько тактов тратится на выход из режима HLT, мне неизвестно. На данный момент этот выход у меня мгновенный, и в этом, видимо, главная причина.
---------- Post added at 13:26 ---------- Previous post was at 13:13 ----------
Если порассуждать про команду HLT, то получится следующее.
Циклы МП могут быть 3,4 и 5 тактов. Первый цикл М1 - всегда 4 такта (я так думаю), по документации HLT выполняется за 7 тактов (минимум), т.е. это 4 такта цикла M1 и скорее всего 3 такта цикла ожидания прерывания. Если в начале цикла ожидания обнаруживается запрос на прерывание, то происходит выход из HLT за те-же 3 такта. Однако собственно запрос может возникнуть и на 1-2 такта раньше. Получается на выход из HLT потратится 4-5 тактов. Плюс один такт на обращение к УВВ описанный выше. Итого 5-6 тактов, что подтверждается результатами теста: я пробовал укорачивать размер кадра на 5 тактов, а не на 6 - результат не изменился.
еще про корвет, нашел ответ Скурихина на вопрос по таймеру
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
From: A.Skurikhin <sk@------->
To: Sergey Erokhin <esl@-----.--->
Date: Wednesday, May 21, 2003, 1:51:27 PM
Subject: PK8020, новая версия winbeta1
Files: <нет>
--====----====----====----====----====----====----====----====----====----===--
> какая точно частота подавалась на вход 2-го канала корвета ?
Сколько помню, есть две модификации Корвета. В исходной версии подвалось
50гц (VBL). Но очень быстро выяснилось, что для практических применений
гораздо лучше иметь на входе таймера строчную частоту(64мкс), а
веритикальный синхронизирующий импульс подавать на вход управления этого же
таймера. Такая схема позволяет настроить таймер в режим, когда по сигналу
вертикального синхроимпульса таймер сбрасывается, затем отсчитывает заданное
количество строк и генерит прерывание.
Используя эту технологию, можно обеспечить "гладкий" вывод на экран.
еще про корвет, нашел ответ Скурихина на вопрос по таймеру
Спасибо. Хотя это мы уже выяснили :)
уточнение
~vbl = 0(25T1)1(128T1)
период Т1 = 164Т = 131.2 мксек
и цитата из Технического описания (http://www.emuverse.ru/wiki/%D0%9A%D0%BE%D1%80%D0%B2%D0%B5%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D 0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0 %BD%D0%B8%D0%B5)
Нам осталось разобраться с обработкой прерываний, т.е. с сигналом INTA. При формировании контроллером прерываний D8(12.4) сигнала INT процессор заканчивает выполнение команды и начинает выполнять трехбайтную команду "CALL", которую он принимает из контроллера прерываний, при условии, что прерывания разрешены командой "EI".
Как это делается? Попробуем разобраться без наглядной иллюстрации. В первом цикле процессор выполняет цикл М10, который отличается от М1 наличием единицы в разряде D0 шины данных. Кроме этого вводится такт ожидания, потому при обращении к контроллеру прерываний вырабатывается сигнал CSDEV. Положительным фронтом сигнала на тактовом входе С триггера D15 (3.25) единица в D0 устанавливает выход триггера D15 (5 ножка) в единицу. На рисунке 5 сигнал на тактовом входе D15 показан.
Изменить состояние D15 теперь можно двумя способами. Первый: с приходом следующего положительного перепада на тактовый вход сигнал на линии D0 должен низкий уровень. Но такая ситуация может наступить после выполнения полностью команды "CALL". Второй способ: подать на вход R (RESET) сигнал низкого уровня. Из рисунка 5 видно, что это возможно при выполнении цикла записи (М3 или М5).
Итак, триггер D15 находится в состоянии единица. Сигнал высокого уровня с выхода триггера поступает на дешифратор адресов, запрещая его работу, и на микросхему D18 (3.27) - И. Поэтому сигнал INTA будет инвертированным сигналом DBIN. Сигнал INTA выбирает контроллер прерываний и в цикле М10 в процессор вводится код команды CALL из контроллера.
Команда "CALL" выполняется за пять машинных циклов, из которых первые три связаны с вводом команды в процессор, а два последних с записью в стек текущего адреса прерванной команды. Первый цикл (М10), мы уже разобрали. Затем выполняется два раза подряд цикл М8, отличающийся от М2 только единицей в разряде D0 шины данных. В первом цикле М8 читается младший байт адреса, а во втором цикле М8 - старший байт адреса перехода на программу обработки прерываний. В конце цикла М8 будет вырабатываться сигнал INTA, который и обеспечивает чтение из контроллера.
В четвертом и пятом циклах будет выполняться цикл М5, обеспечивающий запись в стек старшего и младшего байта адреса прерванной программы. Отрицательный сигнал с выхода регистра D27 (3.26) сбросит триггер D15 в нуль. Поэтому в четвертом и пятом циклах команды CALL сигнал INTA формироваться не будет.
При обращении к УВВ низкий уровень сигнала CSDEV появляется на выходе D24 и процессор переходит в режим ожидания, устанавливая на выходе WI сигнал WAIT высокого уровня.
---------- Post added at 13:06 ---------- Previous post was at 13:05 ----------
Спасибо. Хотя это мы уже выяснили :)
во первых обещался, во вторых информация от авторов вполне интересна сама по себе :)
Запустил тест на реале
sta/lda
0DFA - при записи в регистры БИС
0F0D - при записи в обычную память
добавил в TestDataInit еще один sta
mvi a,020h
sta 0FB28h
sta 0FB28h
ei
стало
0DF9 - при записи в регистры БИС
0F0С - при записи в обычную память
а для
nop
1x 30e7
2x 30e7
3x 30e3
соответсвенно 1,2,3 sta
есть предложение
по результатам ваших коллективных эксперементов над процом
вышли мне детали, а я сведу в табличку, чтоб осталось в доступе
esl, интересно бы еще потестировать быстродействие записи в графическое и символьное ВидеоОЗУ и чтения оттуда (если в документации или еще где не написано, например, что доступ полностью прозрачный).
esl, интересно бы еще потестировать быстродействие записи в графическое и символьное ВидеоОЗУ и чтения оттуда (если в документации или еще где не написано, например, что доступ полностью прозрачный).
запись/чтение в ACZU и область клавиатуры и LUT совпадает с обычной памятью
это я проверял
судя по описанию в VRAM не должно быть торможения
но проверить надо бы конечно, но эт не скоро
надо тест переписать и опять железку достать ....
кстати, прогнал сегодня на корвете 8080 CPU Exerciser (KR580VM80A)
с вполне ожидаемым OK :)
какой точно стоит проц - не знаю, он под радиатором ...
а в доке вот что
Рассмотрим теперь сигнал 1READY, который через разъем XS3 поступает на вход RA (готовность) процессора. Он формируется на выходе микросхемы D24 (ИЛИ). На вход D24 подаются два сигнала CSDEV и WAIT. CSDEV - это сигнал обращения к УВВ (при обращении он имеет низкий уровень). Когда обращения к УВВ нет, то на выходе 1READY сигнал высокого уровня и процессор, анализируя этот сигнал в такте Т2, не переходит в режим ожидания. При обращении к УВВ низкий уровень сигнала CSOEV появляется на выходе D24 и процессор переходит в режим ожидания, устанавливая на выходе WI сигнал WAIT высокого уровня. Сигнал WAITЕ формирует сигнал 1READY высокого уровня, поэтому, пропустив после такта Т2 один такт - такт ожидания, процессор продолжает работу с выполнения такта Т3. Таким образом при обращении к УВВ процессор автоматически вставляет один такт ожидания между тактами Т2 и Т3. Эта хитрость применена для надежного обращения к УВВ. На рисунке 5 такт ожидания не показан. Заметим только, что в случае появления такта ожидания сигнал DBIN автоматически расширяется до 800 нсек.
---------- Post added at 15:30 ---------- Previous post was at 15:26 ----------
esl, интересно бы еще потестировать быстродействие записи в графическое и символьное ВидеоОЗУ и чтения оттуда (если в документации или еще где не написано, например, что доступ полностью прозрачный).
кстати, могу выполнить любые ваши тесты :)
tasm -b -85 vst.asm
@copy vst.obj A.COM
@xkorvet d disk.kdi A.COM >nul
@xkorvet a disk.kdi A.COM >nul
эт батник, компилит ваш тест и сразу пишет на диск для эмулятора :)
esl, если я правильно понимаю, "ширина" активной области изображения корвета 51,2 мкс, а большинство ТВ отображают максимум примерно 48 мкс. Старые ТВ и мониторы имели регулировки развертки, которыми (почти всегда) можно было сжать изображение. Была (есть) проблема с обрезанием краев изображения корвета? Как было на старых мониторах, есть ли опыт подключения к новым ТВ (у которых нужных регулировок, как правило, нет)?
Сам я сидел за реальным корветом буквально несколько минут, про края изображения ничего не помню.
ivagor, те корветы с которыми я работал? были с ЧБ мониторами на основании телевизоров Юность 405, причем половина из них даже имела антены и ПТК, а вторая половина без этого добра,
у них все было ОК с картинкой
у нас еще был клас БК0010-01Ш, с цветными мониторами (и надписями про работу не более 30 минут в день :)
подключали их, там тоже было все ок
к контуру был такой квадратный цветой монитор (такой был к агатам)
там тоже было все ок ....
а сейчас я подключал через НедоPC Кодер (RGB->Composite,S-Video)! rev B (http://www.nedopc.com/PALCODER/palcoder.php) через S-Video
на экран не влазит (телевизор CRT 25" Panasonic 100HZ)
причем с правой стороны не влазит знакоместа 4
и левая часть первого символа тоже не влазит
нашел как войти в сетап телевизора, пробовал настраивать, но правый край так и не смог вытянуть правый край (но сколько точно не вытянулось не помню)
может именно по названой вами причине
esl, спасибо за ответ!
может именно по названой вами причине
не возражаю против обращения на ты
b2m, можно ли в режиме эмуляции MSX при загрузке из ROM разблокировать запись в область памяти картриджа 0x4000-0xBFFF ? Это нужно для тестирования рекомпилированных программ, позволит использовать самомодифицирующиеся макросы для замены команд Z80, в результате чего полученный код рекомпиляций будет более корректным, коротким и быстрым.
Вообще-то, запись в эту область означает смену страницы ROM-маппера. Хотя, ясно, что хеш-сумма рекомпилированной проги вряд-ли совпадёт с какой-либо из имеющихся в базе и будет использован маппер "по-умолчанию", и в этом случае можно предусмотреть опцию в конфиге.
---------- Post added at 19:17 ---------- Previous post was at 19:13 ----------
Кстати, можно же грузить прямо в ОЗУ, чем не устраивает такой вариант?
---------- Post added at 19:27 ---------- Previous post was at 19:17 ----------
Вот, к примеру, такое дополнение emu.ext
msx : loader {
config="MSX"
loadaddr=4000
cmd[0].start=no
}
Тогда файлы с расширением *.msx будут грузиться в область 4000h, а bios их сразу будет запускать.
Привет b2m:!
в теме про БК ты напискл
"вывод я сделал через ВВ51, он у меня в сокет перенаправляется)"
а реально ли сделать сеть в Корвете ?
т.е. в конфиге добавить номер рму (ну это совсем просто, биты на ВВ55)
и сделать чтоб две копии эмулятора могли друг с другом по сети обмениваться ...
типа в конфиге РМУ уазать номер порта и ip РМП ...
насколько это реализуемо ?
насколько это реализуемо ?
Дык в Башкирии-2М это уже сделано! Просто нужно в конфиге порт сервера указать, а у клиента ещё и адрес сервера. Клиента нужно запускать вторым, естесственно. Он соеденится с сервером и получит от него один байт - номер машины, который можно считать через netid. Например, дисковый вариант Башкирии - это сервер, центральная машина, номер которой всегда ноль, а варианты с rom-диском - клиенты.
---------- Post added at 14:06 ---------- Previous post was at 12:12 ----------
Кстати, поскольку номер машины у Корвета в порту инверсный, если будешь пробовать, измени строчку:
portA[4-7]=rom[30]
на
portA[C-F]=lan.netid
Это фича такая у меня есть, номера бит 8-F соответствуют инверсным 0-7 :)
А почему было rom[30] объясню - просто по этому адресу в ПЗУ байт 0FFh, что после инверсии соответствовало номеру ноль. Иначе, как я понял, биос даже не пытается загрузиться с диска.
b2m, Пока не получилось
правлильно ли я делаю
в РМП
lan : K580ww51 {
port=15015
}
в РМУ
ppa1 : K580ww55 {
portA[1]=vid.vrtc
portA[3]=vid.attr
portA[C-F]=lan.netid
portB[0]=dsk.drive[0].on
portB[1]=dsk.drive[1].on
portB[2]=dsk.drive[2].on
portB[3]=dsk.drive[3].on
portB[4]=dsk.side
portC[0-1]=vid.page
portC[2]=font.frame[0].page
portC[3]=vid.widechar
portC[4-5]=vid.attrmask
portC[6-7]=mmgraph.page
}
lan : K580ww51 {
port=15015
server="127.0.0.1"
}
все ли правильно ?
и кстати, lan.netid выдается по мере коннекта 1,2,3,... ?
---------- Post added at 13:27 ---------- Previous post was at 13:25 ----------
А почему было rom[30] объясню - просто по этому адресу в ПЗУ байт 0FFh, что после инверсии соответствовало номеру ноль. Иначе, как я понял, биос даже не пытается загрузиться с диска.
а почему нельзя было просто написать в конфиге 0 ?
в теории в разных ПЗУ там может не всегда быть FF :)
все ли правильно ?
Вроде бы всё правильно. Серверу тоже можно lan.netid вместо rom[30] назначить.
и кстати, lan.netid выдается по мере коннекта 1,2,3,... ?
Да, выдаётся первый свободный номер.
а почему нельзя было просто написать в конфиге 0 ?
Потому что нет такого девайса "0", хотя можно было бы и сделать псевдоустройство, которое при чтении выдавало бы всегда указанную константу. Но поскольку это употребляется очень редко, я пока и не сделал.
А как работать с сетью?
---------- Post added at 15:59 ---------- Previous post was at 15:52 ----------
Блин, мы же про прерывание забыли :)
intctl : K580wn59 {
irq[3]=lan.irq
irq[4]=vid.irq
мини баг
в корвете похоже размер экрана чуть чуть неправильно ставится
см скриншот
верхний эмулятор - по дефолту
нижний - в меню выбрано 1:1
17648 17649
17647
похоже экран чуть чуть больше и маштабируется ...
работает очень старнно и очень частично
в аттаче 17656 два диска и конфиги
один cpm
там есть программа sender.com
она передает com файл на все рму и запускат (эт для игрушек)
ее особенность - она только маленький загрузчик передает через "стандартный" сетевой пртокол, но даже его без контроля чего бы то нибыло
при ее запуске на рму появляется надпись RECEIVE
и после передачи должно запустится, игры с диска можно передавать
в Б2М очень интересно
с первый РМУ не работатет
со всеми остальными запущенными запускается
(кстати было бы полезно для РМУ в заголовке писать их номер в скобках)
причем первый рму после передачи сендером виснет на ресет
а на микродосовском диске родная программа для обмена с РМУ
называется STS
она вообще виснит при запуске, похоже чегойто ждет в порту
она умеет разное передавать и принимать
например на диске етсь тест kt.bin если правилно помню его надо передать на рму с адреса толи 9000 толи 8000
ну и что-то бейсиковское там есть
при старте вроде писало "не отвечают следующие рму"
верхний эмулятор - по дефолту
нижний - в меню выбрано 1:1
То есть у тебя так: ты выбираешь 1:1, закрываешь программу, а когда снова запускаешь, размер окна немного другой? По идее, размер и позиция окна должны сохраняться в .ini файле и восстанавливаться после повторного запуска той-же конфигурации (т.е. размер и позиция сохраняется для каждой конфигурации). Может ты напутал чего, у тебя ведь сейчас целых три конфигурации Корвета? :) Если ты делал скриншоты через меню, то после 1:1 размер должен был бы быть 512х256. Между прочим, у меня аналогичная бяка при запуске эмулятора в VMware Player, ты случайно не в нём тестируешь?
с первый РМУ не работатет
со всеми остальными запущенными запускается
Вот кстати, когда у меня был ещё PII-400, две копии эмулятора грузили проц на 100%, и чтобы проверить работу РМУ Башкирии, я написал небольшую программу-сервер, которая могла засылать файл на квазидиск, т.е. фактически аналог РМП. Так вот, первая попытка пересылки тоже всегда была ошибочной, а вторая - успешно. Я пытался разобраться, но с наскоку не вышло, и я плюнул на это дело - со второго раза ведь грузилось :) К тому же программа РМП передавала нормально, но она сначала тестирует все РМУ, т.е. посылает как минимум 15 тестовых пакетов.
Спасибо за образы, будет чем вечерком заняться...
---------- Post added at 18:41 ---------- Previous post was at 18:22 ----------
называется STS
она вообще виснит при запуске, похоже чегойто ждет в порту
Посмотрел, чего висит: ждёт 85h из порта состояния, а там 5. Глянул в исходники ВВ51 - старший бит нигде не устанавливается :) Буду курить доки, когда этот старший бит надо устанавливать...
Кстати, первый РМУ висит на аналогичной процедуре. К тому-же после сброса буфер сокета не очищается, вот он и дёргается постоянно, но после достаточного количества сбросов уже не виснет :)
То есть у тебя так: ты выбираешь 1:1, закрываешь программу, а когда снова запускаешь, размер окна немного другой? По идее, размер и позиция окна должны сохраняться в .ini файле и восстанавливаться после повторного запуска той-же конфигурации (т.е. размер и позиция сохраняется для каждой конфигурации). Может ты напутал чего, у тебя ведь сейчас целых три конфигурации Корвета? Если ты делал скриншоты через меню, то после 1:1 размер должен был бы быть 512х256. Между прочим, у меня аналогичная бяка при запуске эмулятора в VMware Player, ты случайно не в нём тестируешь?
посмотрю попозже, а то мне чтоб в реальной винде пробовать надо второй винт цеплять (отключаю любимый хакинтош :)
пускал на реальной 7ке
скриншоты делал ее встоенной скриншотелкой win7
Doronetty
12.05.2010, 12:09
b2m Огромное спасибо за доделку БК - наконец-то она заработала с нормальной скоростью!!!
Спасибо nzeemin-у, что напомнил о тестах и подтолкнул меня победить свою лень и заняться БК-шкой :)
Заодно нашёл баг в контроллере дисковода. Я знал, что он там есть, т.к. работало нестабильно и сильно зависело от скорости эмуляции. Тем не менее, всё это хоть как-то, но всё-же работало. А после исправления ошибок в процессоре я был просто вынужден заняться поиском этого бага, потому что контроллер дисковода вообще перестал работать.
Я рад, что не зря потратил время, и всё-таки есть благодарные пользователи моего эмулятора БК. А то у меня складывается впечатление, что сообщество БК-шников как-то игнорирует мой эмулятор.
Кстати, AO-DOS 2.1 пишет, что она работает под эмулятором Савельева :) С одной стороны, лестно, что она путает мой с одним из лучших на данный момент, с другой стороны жаль, что она всё-таки определяет, что это эмулятор...
А как у БК-эмуляторов принято делать загрузку .bin-файлов обычно? Просто загрузить в память по адресу из заголовка и сделать туда jmp? А как работают всякие стремные .bin-ы, которые затирают собой при загрузке стек и автозапускаются?
Doronetty
12.05.2010, 15:13
Спасибо nzeemin-у, что напомнил о тестах и подтолкнул меня победить свою лень и заняться БК-шкой :)
Заодно нашёл баг в контроллере дисковода. Я знал, что он там есть, т.к. работало нестабильно и сильно зависело от скорости эмуляции. Тем не менее, всё это хоть как-то, но всё-же работало. А после исправления ошибок в процессоре я был просто вынужден заняться поиском этого бага, потому что контроллер дисковода вообще перестал работать.
Я рад, что не зря потратил время, и всё-таки есть благодарные пользователи моего эмулятора БК. А то у меня складывается впечатление, что сообщество БК-шников как-то игнорирует мой эмулятор.
Кстати, AO-DOS 2.1 пишет, что она работает под эмулятором Савельева :) С одной стороны, лестно, что она путает мой с одним из лучших на данный момент, с другой стороны жаль, что она всё-таки определяет, что это эмулятор...
Всегда рад поддержать! :v2_clap2:
Кстати, на радостях поробовал запустить БК-шный Boulder Dash, а он не работает - вернее, загружается и стартует нормально, а вот при старте игры она тут же вылетает обратно в меню. На остальных эмуляторах нормально всё работает...
Остальные игры потестил (Десантник например) - всё шикарно бегает :)
P.S: А под реалом AO-DOS 2.1 интересно что пишет? У меня такие подозрения, что это тоже Савельев :v2_tong2:
А как у БК-эмуляторов принято делать загрузку .bin-файлов обычно? Просто загрузить в память по адресу из заголовка и сделать туда jmp? А как работают всякие стремные .bin-ы, которые затирают собой при загрузке стек и автозапускаются?
Не надо jmp. Автозапуск делается как обычно - методом загрузки в область стека, благо он непосредственно перед самой программой, которая располагается по адресу 01000. Запуск происходит при возврате из EMT.
Кстати, на радостях поробовал запустить БК-шный Boulder Dash, а он не работает
Мне вот тоже интересно, почему он не работает. Но с этим, я так думаю, я разберусь ещё не скоро.
esl, есть и для тебя новости: я сделал установленным по-умолчанию в 1 значение старшего бита статуса сети, новая версия на сайте. Теперь sender работает отлично, рассылает на все машины, а вот в sts иногда выскакивает ошибка "помехи" :) С чем связано - непонятно. Я уж и скорость передачи повысил, и отправку данных сделал без ожидания (по-умолчанию сокет некоторое время накапливает данные), но всё бестолку.
в эмуляторе есть поддержка винчестеров для Вектор 06ц, нельзя ли границы CHS как нибудь изменять? сечас у всех винтов количество секторов равно 63-м, а тут всего 18
Для Ориона это сделано примерно так:
hdd : cf-ide {
drive[0].image="Orion\dos-hdd.ohi"
drive[0].geometry=144C16H16S
В примере - 144 cyl 16 heads 16 sec.
---------- Post added at 17:09 ---------- Previous post was at 17:03 ----------
Да, кстати, если не указывать геометрию (т.е. удалить строчку), то по-умолчанию будет 1024 C 63 H 255 S.
Может быть уже все-таки завести вики какую-нибудь с описанием b2m'a? Я не представляю как кто-нибудь, кто только что нашел этот эмулятор, сможет найти как в нем чего-то настроить. Вся эта информация в форуме -- пустая трата сил, найти чего бы то ни было в ветке из 40 страниц невозможно.
Не сыпь мне соль на рану... :)
я тоже добавлю соли ! :)
эмулятор сейчас содержит СТОЛЬКО уникальной информации что просто страшно ее потерять :)
Я не со зла. Начать можно с того, что отвечать на вопросы типа "как сделать X для компьютера Y" не в ветке форума, а на страничке вики "FAQ по Y".
Вики можно завести хоть на том же code.google.com -- никто не заставляет иметь в проекте сорцы ;) Сделать проект b2mdoc и писать все туда.
Начать можно с того, что отвечать на вопросы типа "как сделать X для компьютера Y" не в ветке форума, а на страничке вики "FAQ по Y".
Как показала практика, "сделать X для компьютера Y" не всегда возможно без доработки эмулятора. Но описание, конечно, нужно. Даже я, когда делаю новый комп, чаще всего лезу в исходники, чтобы посмотреть что и как сделать в конфиге, чтобы это работало :)
Ну так вот, доработал эмулятор и записал в вики ;)
Кажется я понял, в чём дело: на БК вообще не проверялось, чётный ли адрес в регистре PC. Убрал проверку, и всё заработало как надо, и Bolder, и Disco Club.
ну наконецто, сильный прогресс :)
ждём новый билд emu.
ну наконецто, сильный прогресс :)
ждём новый билд emu.
Готово.
да так намного лучше.
но некоторые игры по прежнему отказываются работать или идут с ошибками.
например:
DEMSL - она же Demon stalker после заставки вылетает.
klad - вместо уровней выдаётся набор символов.
PIPE - недействуют клавиши.
PLATE - немного поиграл и обнаружил интересный баг, в тех комнатах где стоят красные шары на ножках, почемуто часто вылазиет окно эмулятора с предложением сохранить файл как...
Rtype - сбрасывается в меню на первом уровне.
SLALOM - недействуют клавиши.
вообще совместимость у эмулятора увеличилась раза в два наверно.
и ещё мне непонятно почему для загрузки нужно использовать следующий набор ?
MON --- ENTER --- L --- ENTER
когда во всех других эмуляторах сделано
MON --- ENTER --- M --- ENTER
некоторые игры по прежнему отказываются работать или идут с ошибками
Спасибо за информацию об ошибках, посмотрю на досуге, в чём дело.
Там, где недействуют клавиши, возможно их надо было сначала задать, но я встречал игры, где действительно не действуют. Пока не разобрался.
непонятно почему для загрузки нужно использовать следующий набор ?
MON --- ENTER --- L --- ENTER
когда во всех других эмуляторах сделано
MON --- ENTER --- M --- ENTER
Не нужно, а можно. К тому-же в БК-0011м команда М как-то странно работает, а вот L - как и положено, загружает файл с магнитофона.
---------- Post added at 15:42 ---------- Previous post was at 15:38 ----------
Извиняюсь за оффтоп.
Кстати, я запускал PIPE, вроде нормально работает...
PIPE запускается, меню работает а вот в самой игре ничего не действует.
b2m, а можно попросить о маленьком улучшении для БК ?
ты можешь добавить кнопку Auto load как это сделано в эмуляторе грабовеца. http://www.cplusplus.boom.ru/
а то набором команд очень долго и муторно проверять все игры ;)
ZEman, почему нельзя продолжить эту дискуссию в ветке про эмулятор b2m?
ну просто разговор начался тут, поэтому нехотелось перебегать с одной страницы на другую.
ну или пусть уважаемые модераторы перенесут вопрос в нужную тему.
но некоторые игры по прежнему отказываются работать или идут с ошибками.
например:
DEMSL - она же Demon stalker после заставки вылетает.
Знакомо. У меня он так же в эмуляторе вылетал, до тех пор, пока я не исправил формирование флагов в байтовых командах. Проверьте их, особенно movb и cmpb. И заодно маскирование младшего байта.
klad - вместо уровней выдаётся набор символов.
Пользуетесь файлом klad1.bin длиной 15876 байт, начинается с байтов 0x00 0x02 0x20 0x20? Он испорчен. Повбывав бы автора ...
Не, у меня DEMSL вылетал по другой причине: нельзя было записывать счётчик таймера. При записи всё равно никаких действий не происходит, я думал что будет ошибка шины. Rtype тоже вылетал, но потому что не было регистров 177700-177705, я их добавил, но пока это просто кусочки памяти. Сейчас, если что-то и не работает, то только потому, что неправильно сэмулирована переферия, а насчёт ЦП я уверен на 99,9% (ну разве что не эмулируется переключение в режим HALT и связанные с ним команды, впрочем как и у тебя).
Глядя на программу MINI-KEG я уже не уверен, что у меня правильно эмулируется клавиатура. Странно как-то она работает с клавиатурой, нестандартно. Там получается, что бит в регистре статуса сбрасывается не только после чтения кода клавиши, а ещё когда-то. Вопрос - когда? А ещё встречал, что в цикле читается только код клавиши и сравнивается с определённым значением, и пока оно равно, крутится в этом цикле. Получается, что код клавиши тоже когда-то обнуляется. Опять вопрос.
Mick: Перенес из темы "Тест ВМ1"
b2m: Спасибо :)
Решил в этой ветке написать (извините, если что не так)
По поводу последнего - не опечатка ли это? Был ли вообще К580ВМ86?
IMHO это 100% опечатка. Если посмотреть статью в Радио 6/87 на ту же тему, там говорится, что собирались установить в БК-0100 в качестве второго проца 580 или 1810 (соответственно 580ВМ86 - бумажный мутант из 580ВМ80 и 1810ВМ86). Вряд ли статью писал сам главный технолог "Экситона", наверно с ним побеседовал журналист, который слегка переврал некоторые детали.
b2m, я чтото не понял, у тебя в списке изменений для последнего билда эмулятора написано - "- добавил поддержку открытия .bin файлов для БК-0010".
но ведь .bin файлы и раньше можно было открывать.
что ты имел в виду ?
Я имел ввиду, что теперь можно открывать их через File/Open, а также (что более удобно) перетаскивать их из проводника на окно эмулятора (или ярлык). Раньше это делалось исключительно перехватом EMT, а теперь эти файлы просто грузятся в память и после небольшой преамбулы (инициализация, очистка экрана, определения адреса запуска) сразу запускаются.
Единственный недостаток - теперь все файлы с расширением .bin считаются программами для БК-0010, хотя это очень распространённое расширение имени файла. Но раз уж так исторически сложилось, пусть так и будет. К тому-же никто ведь не против, что все файлы .rom считаются программами для Вектора-06ц. :)
а, теперь понятно.
только вот...
может стоит указать автоматически открываемы файлы в кнопке open ?
или может лучше всётаки добавите кнопку autostart.
мне кажется так лучше было бы.
может стоит указать автоматически открываемы файлы в кнопке open ?
Забыл. Добавь .bin по аналогии в начале файла EMU.ext и будет тебе щастье.
или может лучше всётаки добавите кнопку autostart.
А чем такая кнопка будет отличаться от кнопки открытия файла на тулбаре?
тем что это мы, те кто сидит тут постоянно на форуме, понимаем что к чему и для чего.
а остальные могут и не догадаться, не сразу поймёшь.
Doronetty
22.05.2010, 12:28
И настроек всяких прибавить бы :)
Например, звук: выбор частоты (до 96 КГц), возможность вкл/выкл AY, Covox, ит.д.
Хотя... это всё и подождать может - главное эмуляцию отшлифовать как следует - вон БК-шный диск Samara'97 DISCO CLUB+T.DREAMS на менюшке выдаёт паразитный громкий звук, в Insult Megademo в частях, где играет Covox явно накладывается сторонний звук (AY).
вон БК-шный диск Samara'97 DISCO CLUB+T.DREAMS на менюшке выдаёт паразитный громкий звук
И не только там. Везде, где есть поддержка мыши, которая у меня пока не эмулируется. Как я понимаю - была либо мышь, либо covox. Вместе это не работало. Вот тут и нужна дополнительная настройка.
в Insult Megademo в частях, где играет Covox явно накладывается сторонний звук (AY).
Знаю. Пока не смотрел, почему AY не выключается. Если в демке есть и AY звук, и covox, значит они как-то вместе сосуществовали. Вопрос - как? Переключатель?
b2m, такой к вам вопросик: можно ли добавить эмуляцию компьютеров Байт и Байт-01? Байт отличается от 48к спектрума наличием синтезатора ВИ53, изменённой прошивкой и дополнительными функциональными клавишами. Байт-01 - это монстр (48к спек, тыр-дос и поддержка CP/M), имеет на борту 128к. Могу обеспечить тех. документацией на оба компьютера. Краткая информация о компах есть на http://byte01.narod.ru
Скопировать конфиг спектрума 48к и заменить ПЗУ я уже пробовал, но явных отличий не заметил. Про ВИ53 информации не нашёл.
Doronetty
28.05.2010, 11:59
И не только там. Везде, где есть поддержка мыши, которая у меня пока не эмулируется. Как я понимаю - была либо мышь, либо covox. Вместе это не работало. Вот тут и нужна дополнительная настройка.
Знаю. Пока не смотрел, почему AY не выключается. Если в демке есть и AY звук, и covox, значит они как-то вместе сосуществовали. Вопрос - как? Переключатель?
Этот вопрос я пытался выяснить у кучи народа, но ни от кого (даже А. Савельева) внятного ответа не получил :v2_conf3: У меня в своё время был доступ только к БК-0010-01, поэтому в тонкостях 11М я есть нихт ферштейн. Надо бы бросить клич среди реальщиков!
По логике, если в той же демке Insult попеременно играют то AY, то Covox, а на экране нет надписи "переключите свой БК в режим Covox", то значит ручного переключателя не было.
Насчёт мыши тоже надо спросить реальщиков...
b2m, если сможете полностью реализовать Байт и Байт-01, то скину тех. документацию на оба компьютера.
А поподробнее можно, что значит "полностью"? Как я понял, Byte - это Спектрум-48, а Byte-01 - это Спектрум-128 с тырдосом. Я спектрумами не занимался, для меня это тёмный лес.
Как я понял, Byte - это Спектрум-48,
Да, это так. Только ещё ВИ53 прикрутили.
Byte-01 - это Спектрум-128 с тырдосом.
Не совсем так. Это спектрум-48 с СР/М, имеющий на борту 128К памяти, возможность использования подгружемого образа ПЗУ (так реализован тыр-дос, он сам с дискетки грузится), 512х192 видеорежим.
Да, это так. Только ещё ВИ53 прикрутили.
А как-то из бейсика оно играло?
Doronetty
02.06.2010, 11:30
Мне кажется, логичней обратиться чтобы Байт в Анриале поддержали - ведь там самая большая на сегодняшний день поддержка клонов "Спектрума" - ну разве что Спринтера и ZX-Next нет... Тем более что там проект Portable сейчас активно развивается - как раз будет чем заняться товарищам ;)
Глядя на программу MINI-KEG я уже не уверен, что у меня правильно эмулируется клавиатура. Странно как-то она работает с клавиатурой, нестандартно. Там получается, что бит в регистре статуса сбрасывается не только после чтения кода клавиши, а ещё когда-то. Вопрос - когда? А ещё встречал, что в цикле читается только код клавиши и сравнивается с определённым значением, и пока оно равно, крутится в этом цикле. Получается, что код клавиши тоже когда-то обнуляется. Опять вопрос.
Не разобрался пока?
http://bk0010.narod.ru/docs/BK_Magazine/bk-1993.1.djvu
Тут вот какие-то ужасы на стр.65 про команду RESET и как на нее реагирует клавиатурный контроллер. Может быть из той же оперы?
Кстати про RTYPE: у меня такое ощущение, что это ошибка. Поставил собачку там, где не надо было. Без индирекшна код становится очень похож на какой-нибудь канонический фрагмент вывода спрайта на экран. Чудом оказалось, что регистр 177700 тоже есть и в нем почти 177700 — 177740 =)
Не разобрался пока?
http://bk0010.narod.ru/docs/BK_Magazine/bk-1993.1.djvu
Тут вот какие-то ужасы на стр.65 про команду RESET и как на нее реагирует клавиатурный контроллер. Может быть из той же оперы?
В том-то и дело, что нет там команды RESET. Такое ощущение, что там рассчитывается на инверсное значение бита 7 регистра состояния клавиатуры. Если исправить команду BMI на BPL (после опроса регистра) то всё вроде как работает. А журнальчик этот я уже давно читал, но пока эта фича у меня не реализована.
А регистры 177700,177702,177704 действительно существуют. Как я понял - какой-то атавизм, я не стал вникать - просто добавил.
В эмуляторе Грабовца (cplusplus.boom.ru), который вообще все БК-шные заскоки очень достоверно изображает, MINI-KEG тоже неуправляем. Может кто-нибудь показать, где он работает?
По поводу 177700 -- Феликс говорит, что это стандартная ловушка и что такая же есть в УКНЦ. 177702 - адрес, обращение к которому перехватывается, 177704 -- вектор обработчика ловушки. 177700 -- режимы ловушки. Но работает это все только из приоритетного режима, а какая с этого польза на БК, где он не поддержан никаким образом, я так и не понял.
(упс, не отследил перенос сообщений модератором)
Там получается, что бит в регистре статуса сбрасывается не только после чтения кода клавиши, а ещё когда-то. Вопрос - когда?
На этих граблях топтался и я :) Бит в статусе сбрасывается при входе процессора в прерывание от клавиатуры. Если точнее, то в тот момент, когда процессор читает вектор прерывания из контроллера.
А ещё встречал, что в цикле читается только код клавиши и сравнивается с определённым значением, и пока оно равно, крутится в этом цикле. Получается, что код клавиши тоже когда-то обнуляется. Опять вопрос.
Код меняется только по нажатию клавиши (при отпущенных других!). Либо по команде RESET, если что-то в наборе нажатых клавиш поменялось.
PS: Разве что контроллер нулит код в момент отпускания всех клавиш? Не помню. Надо попросить кого-нибудь с реалом проверить.
PPS: А где бы этот MINI-KEG скачать? У меня в закромах не нашлось.
http://pdp-11.ru/mybk/BIN/
b2m, кажется в отладчике есть неприятный глючок. Я отлаживал эмуляцию контроллера дисковода и наблюдал, как изменяются регистры ВГ93. Так вот если во время пошагового прогона обновлять окно состояния портов, например переключением ctrl+m в память и назад - на каждое обновление происходит чтение регистра данных ВГ93. Соответсвенно, когда доходит дело до процедуры чтения данных в отлаживаемой программе через IN 0x18 - данные уже будут не те, что нужно.
И вообще, надо бы сделать наконец автоматическое обновление памяти и портов.
данные уже будут не те, что нужно.
Это не глюк, это фича :)
Я уже тоже думал, что для отладчика нужны другие связи, так сказать "через заднее кирильцо", как говорил Аркадий Райкин. Особенно неприятно сказывается эта фича при просмотре верхней памяти в БК-0010(11), там вообще после просмотра генерируется прерывание по несуществующему устройству.
И вообще, надо бы сделать наконец автоматическое обновление памяти и портов.
По Shift+F8 должно всегда обновляться (только надо не забывать отпускать Shift когда jmp,call или rst выполняется), другое дело, что в связи с вышеописанной фичей это не всегда удобно. Поэтому нужно сначала сделать всем устройствам "заднее крыльцо" :) Только вот код разрастётся, т.к. придётся везде учитывать, нормальное это чтение, или из отладчика, а я не люблю раздутого кода. Как вариант, можно вместо просмотра портов сделать просмотр состояния устройства, грубо говоря, просто некий текст от устройства, но редактировать его будет нельзя.
Есть небольшой баг в эмуляции AY. Он проявляется по крайней мере в Cannon ball (нет звуков ударов шариков о стенки и стрелки по шарикам) и Driller tanks (нет звука при движении drillera). Насколько я помню, ты этот баг уже правил в 2008, но недавно ты поправил другой баг (в Indian no bouken) и, возможно, вернулся "старый баг" (или образовался новый, но похожий на старый - тебе виднее). В версии 15.03.2010 в canball и driller еще нормально, в 30.04.2010 уже плохо.
Если честно, я уже перестаю понимать, что должно происходить при установке регистров в разной последовательности. Вроде всё просто, ан нет - то одно не работает, то другое. Буду искать самое подробное описание AY...
Выложил исправленный вариант на сайт.
Было бы здорово запоминать в отладчике положение отдельно для окна памяти и отдельно для окна портов.
Вот, к примеру, такое дополнение emu.ext
msx : loader {
config="MSX"
loadaddr=4000
cmd[0].start=no
}
Тогда файлы с расширением *.msx будут грузиться в область 4000h, а bios их сразу будет запускать.
Если я таким образом загружаю файл, который превышает 16кб, то в ячейки 0x8000 - 0x8002 перезаписываются нули.
Можешь проверить на любом MSX 16кб ROM-файле, добавив к нему несколько байт.
Можно это исправить? Я сейчас отлаживаю рекомпиляцию на 17131 байт и этот глюк очень некстати.
В смысле, ты хочешь, чтобы я подправил бейсик, чтобы он не писал туда нули? Для справки: с адреса 8000h начинается программа на бейсике, а три нулевых байта - это конец программы.
В смысле, ты хочешь, чтобы я подправил бейсик, чтобы он не писал туда нули? Для справки: с адреса 8000h начинается программа на бейсике, а три нулевых байта - это конец программы.
Теперь понятно. Если ты можешь поправить бейсик и это не займет много времени, то сделай плиз такой вариант специально для рекомпиляторщиков. Если нет, то буду вставлять в код временную процедурку для восстановления этих трех байт.
Если ты можешь поправить бейсик и это не займет много времени
Первый байт устанавливается непосредственно, а второй и третий вроде совмещён с процедурой установки конца программы, и вообще это вроде часть оператора NEW. Так что быстро не получится.
Проще сделать в программе приблизительно на этом месте 8000h-8002h (неиспользуемый) буфер.
Проще сделать в программе приблизительно на этом месте 8000h-8002h (неиспользуемый) буфер.
Да, это хороший вариант.
Было бы здорово запоминать в отладчике положение отдельно для окна памяти и отдельно для окна портов.
Добавлено.
sergey2b
02.09.2010, 15:48
было бы желательно что бы можно было считывать бинарные файлы для rk86
хотя ковнертор bin to rk я сдел уже
В отладчике можно загрузить любой файл по любому адресу.
Есть также возможность настроить автоматическую загрузку файла с определённым расширением в EMU.ext
b2m, в режиме эмуляции MSX1 не загружается ROM-файл (см. в приложении). В эмуляторе BlueMSX работает.
Уже грузится, скачай эмуль ещё раз. Zanac перестал грузиться, завтра поправлю.
Doronetty
09.09.2010, 00:12
Интересно, как эмулятор в режиме БК относится к тестам, которые BKBTL "тест 791401 проходит, тест 791404 НЕ проходит" - всё ли он проходит?!
Аналогично. Тест инструкций проходит, тест ОЗУ ругается там, где надо, а тест прерываний не проходит ввиду отсутствия каких-то из них.
Там и прерывания и какие-то внешние устройства, которых на БК в принципе нет. Не стоит зацикливаться на тестах. Они только намекают на исправность, но ее не гарантируют.
Doronetty
18.09.2010, 13:59
Потестил Insult Megademo (БК-0011М) с последней версией - результат очень порадовал: AY и COVOX теперь удачно сосуществуют и не мешают друг другу!
Автору мегареспект - такого не удавалось ещё никому!!!
А вот диск с Techlological Dreams (на амигаподобном загрузчике) продолжает жутко и противно гудеть ;) Ну и на самих демках (и T Dreams и Disco Club) происходит не совсем корректная работа - в области графики и палитр пока есть недоработки - но думаю автор успешно справится и с ними!
Потестил Insult Megademo (БК-0011М) с последней версией - результат очень порадовал: AY и COVOX теперь удачно сосуществуют и не мешают друг другу!
Автору мегареспект - такого не удавалось ещё никому!!!
Как это "никому"? А как же я? :frown:
Выбираем Smart Covox, и всё работает. По крайней мере, на мой слух :)
Вот же чёрт! Обратно не работает, сломал перед релизом. Ну ладно, в следующей версии исправим.
Кстати, загрузчик Technological Dreams будет жужжать ковоксом на частоте 50 Гц, если его запустить на реале. Особенность его работы с портом 177714, увы. А ещё он подразумевает, что ничего кроме мыши к порту не подключено (сейчас специально протрассировал код).
Кстати, загрузчик Technological Dreams будет жужжать ковоксом на частоте 50 Гц, если его запустить на реале.
Я тоже так подумал. Либо ковокс, либо мышь (а её пока у меня нет).
Кстати, Sandro, ты, как человек знающий БК, может скажешь, в районе какой сканлинии формировалось прерывание по кадровому СИ?
А то у меня демки с мультиколором криво идут. Хотя это может быть и неправильный тайминг команд.
Я тоже так подумал. Либо ковокс, либо мышь (а её пока у меня нет).
Это не совсем так. Канонический опросчик мыши щёлкает только 2 битом (и кто придумал засунуть строб в младший байт единственного порта ввода-вывода? Ненависть! :mad:). Поэтому можно сравнивать новое значение в порту со старым, и не обновлять ковокс, если изменился только 2 бит. Тогда звук щёлкнет один раз в начале мышевозной программы, и всё. Опция "Smart Covox" у меня делает именно это.
Более того, если программа пишет в ковокс только байтами или только словами, то можно попытаться отделить записи в него от работы с AY. У меня есть рабочая версия, но в релиз 0.4 она не попала, увы, хоть и была готова :(
А вот как подружить всю троицу, я пока не представляю.
Кстати, Sandro, ты, как человек знающий БК, может скажешь, в районе какой сканлинии формировалось прерывание по кадровому СИ?
А то у меня демки с мультиколором криво идут. Хотя это может быть и неправильный тайминг команд.
Тут дело такое: в своё время у меня была ремонтная документация на БК, где всё это было описано детально, но она погибла вместе с дисками. :v2_cry:
Фрагменты из этой доки, которые мне удалось найти в сети (и то только по БК-0010) этих времянок не содержат. Поэтому у меня времянки ненадёжные, выставлены по воспоминаниям 20-летней давности об этих доках и по стандарту SECAM.
Если есть интерес, в ближайшие 2-3 дня (когда найдётся время) выложу в подфорум по БК мои времянки вместе с соображениями, почему так. Благо Insult выглядит почти нормально, значит ошибка невелика. Technological Dreams, правда, искажён сильно в сцене с шариками.
Канонический опросчик мыши щёлкает только 2 битом
Странно, TDR щёлкает 3-м битом (засылает восьмёрку в порт), сделал пока нечувствительность к изменению бита D3. Теперь не гудит.
Третьим, конечно же :) Не надо было так поздно ночью в форум писать.
Doronetty
22.09.2010, 11:00
Да, теперь всё играет замечательно! Мегареспект!
P.S: Может, у А.Савельева удасться узнать все секреты мультиклолров и таймингов?
А палитра-то у Sandro более правильная, заметно в одной из частей insult-а. Сделал, как у него.
Doronetty
22.09.2010, 22:22
Да, теперь более похоже на правду (особенно в части Insult'а с синим мумбриком). Хотя в том же Эмуляторе 3000 отличия есть, например, в заставке между частями (чудищем с медальоном) - там зубы и глаза ещё одной градации красного, самой светлой. Вообще хотел запустить последнюю версию эмулятора Савельева (ведь в Эму3000 вроде как использованы сорцы не слишком последней версии эмулятора Савельева), чтобы посмотреть что да как, но пока нигде машины с Dos'ом или хотя бы Win 98 не нашёл...
А палитра-то у Sandro более правильная, заметно в одной из частей insult-а. Сделал, как у него.
Палитра у меня набита в соответствии с официальным руководством программиста по БК :)
Собственно, не нужно было со скриншотами возиться, вот она:
private final static byte[] fullColorMap = {BC_BLACK, BC_BLUE, BC_GREEN, BC_RED, // 0, a.k.a BK colors
BC_BLACK, BC_YELLOW, BC_MAGENTA, BC_RED, //1
BC_BLACK, BC_CYAN, BC_BLUE, BC_MAGENTA, //2
BC_BLACK, BC_GREEN, BC_CYAN, BC_YELLOW, //3
BC_BLACK, BC_MAGENTA, BC_CYAN, BC_WHITE, //4 - CGA colors
BC_BLACK, BC_WHITE, BC_WHITE, BC_WHITE, //5 - fake mono palette
BC_BLACK, BC_DRED, BC_MRED, BC_RED, //6 - red shades
BC_BLACK, BC_GREEN, BC_LGREEN, BC_YELLOW, //7 - FIXME!!! could be wrong
BC_BLACK, BC_VIOLET, BC_LBLUE, BC_MAGENTA, //8
BC_BLACK, BC_YELLOW, BC_LBLUE, BC_MAGENTA, //9
BC_BLACK, BC_YELLOW, BC_VIOLET, BC_RED, //10
BC_BLACK, BC_CYAN, BC_YELLOW, BC_RED, //11
BC_BLACK, BC_RED, BC_GREEN, BC_CYAN, //12
BC_BLACK, BC_CYAN, BC_YELLOW, BC_WHITE, //13
BC_BLACK, BC_YELLOW, BC_GREEN, BC_WHITE, //14
BC_BLACK, BC_CYAN, BC_GREEN, BC_WHITE //15
};
Собственно, ещё нужно помнить, что у БК палитра имеет формат RrGB, то есть там два бита на красный и по одному на все остальные. Это используется в палитре 6 (да, там 3 разных красных) и, насколько я понимаю, в палитрах 7 и 8 (цвета LGREEN и LBLUE -- в их точном значении я не уверен).
но пока нигде машины с Dos'ом или хотя бы Win 98 не нашёл...
Рекомендую dosbox, очень толковый эмулятор старых x86 с досом. Правда, если машинка медленная, то в настройках стоит поставить core=dynamic. Бесплатный, взять можно тут: http://www.dosbox.com/
Doronetty
23.09.2010, 13:12
Про DosBox давно знаю, тока эмулятор под ним идёт очень криво - и медленно и с ужасными граф. багами. Буду пытаться запустить на реале под Win ME
Предлагаю поставлять вместе с эмулятором прошивку версии 2.10 для Ориона-ПРО. 2.0 уже несколько устарела.
Я пробовал, в режиме Орион-128 почему-то командер вылетает. А где взять актуальное содержимое ROM-диска?
---------- Post added at 13:38 ---------- Previous post was at 12:18 ----------
Так, оказывается режим прерываний IM 2 в Орион-Про эмулируется неправильно, надо переделывать...
---------- Post added at 15:16 ---------- Previous post was at 13:38 ----------
Переделал. Прошивки новые положил.
А где взять актуальное содержимое ROM-диска?
Налепить самому. Как у меня появится ноут, я сделаю программу для создания РОМ-диска и разбора готового РОМ-диска на BRU-файлы.
Error404
04.10.2010, 15:45
Налепить самому. Как у меня появится ноут, я сделаю программу для создания РОМ-диска и разбора готового РОМ-диска на BRU-файлы.
я создаю romdisk-и так:
copy /b ordos.bru + file1.bru + file2.bru + ... + file_ff.dat romdisk.bin
А в обратном направлении зачем?
Для универсальности. Вдруг найдутся Орионщики, у которых на ром-дисках записан какой-нибудь эксклюзив. Вот и считаем его :) Будуть режимы как для Ориона-ПРО, так и для обычного 128-го. Но у меня пока что нет своего компьютера, поэтому не получается начать работу, равно как и закончить уже начатое (дописать конвертер текстовых файлов Орион-РС. Я почти закончил доработки, но файлы все остались дома, на домашнем компьютере).
b2m, обнаружил ошибку в эмуляторе.
при переходе в полноэкранный режим в режиме эмуляции specialist mx, цветовая схема эмулятора портится.
подозреваю что это какаято несовместимость эмулятора с семёркой.
и ещё, одно пожелание, добавь пожалуйста поддержку файлов i80.
обнаружил ошибку в эмуляторе.
при переходе в полноэкранный режим в режиме эмуляции specialist mx, цветовая схема эмулятора портится.
По-умолчанию, в полноэкранном режиме используется 256-цветный режим, и при этом система вынуждена идти на компромисс: позволить перепрограммировать палитру или оставить какие-то цвета зарезервированными. Вообще, использование этого режима - анахронизм, мне раньше казалось, что в этом режиме эмуляция экрана будет быстрее, т.к. меньший объём данных приходится каждый раз обновлять.
В конфиге можно строго задать режим, попробуй в начале конфига добавить строчку:
main.fullscreen=1280x1024x16
И посмотри, исправилась ли ситуация. Если да, то сделаю по-умолчанию 16-битную глубину цвета.
и ещё, одно пожелание, добавь пожалуйста поддержку файлов i80.
Обычно, вместе с таким файлом идёт описание, куда грузить и какой монитор использовать. Файл называется так-же, но с расширением .cpu (это придумал А.Шевцов, aka AVSh). А вообще - нет такого стандартного формата .i80.
не помогло.
экран в спциалисте мх вместо синего в полноэкранном режиме становится красным.
попробовал проверить другие эмуляторы такие как VV и некоторые другие, проблем с цветом в фулскрине нет.
не помогло
А размер экрана изменился? У тебя вообще возможен режим 1280x1024 65536 цветов?
у меня семёрка 64-битная, здесь вообще нету выбора 16 или 32 бит цвета на рабочий стол.
размер экрана в фулскрине не изменился.
получился этакий красный прямоугольник в чёрном экране.
в окне всё нормально отображается, а как перехожу в фулскрин вот такая беда
первая и вторая картинки сфоткал монитор чтоб видно было кривые цвета.
картинка №3 это уже снимок из окна (нормальный).
блин, оригинально...
оказывается всему виной кривой проводник винды.
если запустить эмулятор из под семёрки через вот этот батник то всё нормально показывает, цвета не корёжатся.
правда вот размер из фулскрина почемуто всё равно не меняется 640х480 остаётся.
b2m, у тебя через что работает эмулятор ?
через древний direct draw чтоли ?
VV отлично работает через OGL, в фулскрине никаких проблем.
у меня семёрка 64-битная
А у меня эмулятор 32-битный :)
правда вот размер из фулскрина почемуто всё равно не меняется 640х480 остаётся.
Я так понимаю, запускается в режиме совместимости с XP. Вряд-ли там предлагается большой выбор режимов.
b2m, у тебя через что работает эмулятор ?
через древний direct draw чтоли ?
Через тот, что у тебя в режиме совместимости. Да, программный интерфейс старого direct draw используется (из соображений совместимости со старыми системами), но это ничего не меняет. Какой стоит DirectX, такой и используется. В системе не бывает двух разных версий DirectX.
doorsfan
16.10.2010, 21:27
Просьба подправить скорость эмуляции Львова. EMU Version 1.01
http://zx.pk.ru/showthread.php?p=323299#post323299
Doronetty
29.11.2010, 02:53
Пришла мысль запустить демку Satisfaction в режиме Спектрума. И... я так и предполагал! В части, где должна звучать цифровая музыка через AY стоит полная тишина! (потом чистоты ради эксперимента запустил ещё пару AY-оцифровок с тем же результатом) :(
Я это не к тому говорю, что эмуляция Спектрума плоха - его можно было бы и вообще не делать, ибо эмуляторов его (включая очень навороченные) - тьма тьмущая. Но вот эмуляция AY - это дело совсем другое, этот чип во многих советских машинах стоит (в том числе и в моей любимой БК-0011М)! Очень прошу обратить внимание на указанную недоработку (советую взять готовую реализацию AY скажем у того же Unreal - там исходники открыты)!
P.S: И о-о-очень надеюсь на доработку экрана БК-0011M - появилась важная информация по времянкам!
Не обязятельно, но хотелось бы...
1) В диалоге открытия файлов запоминать тип(группу) файлов.
2) (магнитофонный диалог) Добавить маски файлов *.bss (бейсик без заголовка), *.bsm (бейсик микрон), *.edm (редактор микрон) в "Data files (*.rk?)". Это тоже, что и *.rk?, просто с другим расширением (см. эмулятор Пыхонина)
С другой стороны, какое расширение давать файлам это, наверное, уже больше религия. Может вынести группы и маски в ini-файл ?
3) добавить в исходнике "EMU Version ... %s", __DATE__ . . . . . (это ж бубль-гум!) ;)
Может вынести группы и маски в ini-файл ?
Это уже давно сделано. Файл называется EMU.ext
Doronetty
19.01.2011, 12:46
Есть ли планы в ближайшее время подкорректировать времянки экрана БК-0011М? ;) Больно уж охота посмотреть на нормальную работу демок, да душой порадовацца...
Пока таких планов не было.
b2m, есть ли возможность запуска эмулятора с конфигурацией по умолчанию? т.е. например мне нужен постоянно эмулятор Вектора, чтоб не выбирать его постоянно из списка, и ещё вопросик, есть поддержка режима LBA при обращении к образу HDD?
b2m, есть ли возможность запуска эмулятора с конфигурацией по умолчанию?
Пока нет, планирую сделать параметр командной строки. На данный момент советую использовать drag&drop, чтобы запускать rom-файлы Вектора. Т.е. из эксплорера файл можно бросить на эмулятор или на ярлык на него. Или указать файл в командной строке (например в FARе удобно ассоциировать эмулятор с расширением rom).
есть поддержка режима LBA при обращении к образу HDD?
Есть.
В Радио-86РК команды IN и OUT можно использовать вместо LDA и STA для обмена с контроллерами. Например, IN 0A1H вместо LDA 0A001H. В эмуляторе это не работает. Можно ли в конфиге как-то поправить?
В Радио-86РК команды IN и OUT можно использовать вместо LDA и STA для обмена с контроллерами. Например, IN 0A1H вместо LDA 0A001H. В эмуляторе это не работает. Можно ли в конфиге как-то поправить?
Вместо LDA 0A001H нельзя использовать IN 0A1H. Можно использовать вместо LDA 0A1A1H. В конфиге нужно добавить port.maptomem=1, как это сделано в Mikrosha.cfg. Добавлю во все конфиги (где нужно) в следующей версии.
Вместо LDA 0A001H нельзя использовать IN 0A1H. Можно использовать вместо LDA 0A1A1H
В общем случае, конечно, нельзя. Но в РАДИО-86 A001 то же самое, что A1A1.
Прописал в конфиг, работает. Спасибо.
Error404
23.06.2011, 14:24
Дмитрий, добавь пожалуйста в конфиг Ориона чип RTL8019AS по адресам F770..F7FF. Накрайняк можно F770..F78F (чтение регистра данных LDIR-ом я пока не использую).
Дмитрий, добавь пожалуйста в конфиг Ориона чип RTL8019AS по адресам F770..F7FF. Накрайняк можно F770..F78F (чтение регистра данных LDIR-ом я пока не использую).
В смысле, сделать ещё один конфиг и добавить в архив на сайте?
Или ты для себя? :)
Ты, вроде, планировал какие-то заморочки с аппаратным сбросом. Я, честно-говоря, не собирался добавлять такие фичи. А добавить F770..F78F не сложно, но это будет "стандартная" раскладка портов.
Я хотел сначала подправить поиск tap-адаптера, чтобы его не надо было в конфиге указывать (чтобы по-умолчанию брал первый попавшийся tap-адаптер), но всё руки не доходят...
Error404
23.06.2011, 23:52
В смысле, сделать ещё один конфиг и добавить в архив на сайте?
Или ты для себя? :)
Ты, вроде, планировал какие-то заморочки с аппаратным сбросом. Я, честно-говоря, не собирался добавлять такие фичи. А добавить F770..F78F не сложно, но это будет "стандартная" раскладка портов.
Я хотел сначала подправить поиск tap-адаптера, чтобы его не надо было в конфиге указывать (чтобы по-умолчанию брал первый попавшийся tap-адаптер), но всё руки не доходят...
В архив на сайте. Для себя я оттуда и скачаю. :)
Буду проверять свои поделки на двух движках, а выложенное на сайте может и еще кому-то пригодится. Сброс по ловушке записи 0FDh в F770 можно и не делать - достаточно если RTL будет сбрасываться при включении питания и кнопке reset, "стандартная" раскладка портов для начала тоже потянет.
А вот про первый попавшийся tap-адаптер - это только если в конфиге явно не указан tap-адаптер. У меня например их несколько и Орион висит на втором. Т.к. на первом уже задолго до эмуляторов висит OpenVPN.
В архив на сайте. Для себя я оттуда и скачаю.
Я добавил сеть в конфигурации Орион+Z80, можешь скачивать.
З.Ы. Кстати, ты бы не мог выложить текущие бинарники uIP (образ диска), чтобы я тоже посмотрел на это хозяйство под Орионом? А то мне лень качать и разбираться с Hitech-C и MyZ80.
Error404
24.06.2011, 20:18
Я добавил сеть в конфигурации Орион+Z80, можешь скачивать.
З.Ы. Кстати, ты бы не мог выложить текущие бинарники uIP (образ диска), чтобы я тоже посмотрел на это хозяйство под Орионом? А то мне лень качать и разбираться с Hitech-C и MyZ80.
Там бинарников пока только telnetd. Уже лежит у меня на страничке (http://orion-z.mylivepage.ru/file/337/5967_dos-tty4-sd.zip) и на форуме (http://zx.pk.ru/showpost.php?p=275608&postcount=851)- там загрузочный образ, в нем в User 1 вместе с коммуникационными программами и лежит telnetd.com.
Сейчас мучаю вебсервер, но пока больше оно меня мучает. :)
---------- Post added at 20:18 ---------- Previous post was at 19:44 ----------
Я добавил сеть в конфигурации Орион+Z80, можешь скачивать.
Чегой-то не работает. Толи я не разобрался с конфигом. В ifname надо писать название TAP-соединения?
Чегой-то не работает. Толи я не разобрался с конфигом. В ifname надо писать название TAP-соединения?
Посмотрел исходники с твоего сайта: у меня не был реализован бит сброса в регистре запросов. Теперь пингуется. А на команды telnetd не реагирует (хотя кое-что и выдал в начале).
Только что увидел, что есть эмуляция Арго :) А фиолетовый цвет в цветном режиме - это взято на основании чего? И, кстати, может ли так быть, что у Арго аналогичная реализация цвета, как и в Юниоре?
Error404
25.06.2011, 10:53
Посмотрел исходники с твоего сайта: у меня не был реализован бит сброса в регистре запросов. Теперь пингуется. А на команды telnetd не реагирует (хотя кое-что и выдал в начале).
что-то у меня icmpecho не запускается.
у тебя регистры identify правильно возвращаются?
LD A,021H
LD (P0_CMD),A ; Stop\Abort, Set Reg Page 0, release RSTDRV pin (reset off)
LD HL, TITLE2
CALL MSG ; show message acts as delay for RTL8019 init
LD HL,(P0_RBCR0)
LD A, H
CP 70H ; RTL8019 specific constant
RET NZ ; RTL8019 not found
LD A, L
INIT0: CP 50H ; RTL8019 specific constant
RET NZ ; RTL8019 not found
telnetd таки - да, работает странно: весь демон уходит в астрал (перестает пинговаться) по первому нажатию кнопки в telnet-клиенте.
Странно, но у меня такого не происходит - работает в обе стороны.
Под VirtualBox (на "честной" винде не проверял) emu при переключении пропорций в 2:1 такие корки мочит... :) Виндовозное окно остается где и было (маленькое в центре экрана, его можно двигать но картинки в нем нет), а директиксное - в левом верхнем углу экрана (без рамки, повер всех окон шпарит, двигать его понятно нельзя и портится канвас всех окон которые оказались под ним). На ПринтСкрин оно не попадает: показать не могу.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot