Может кто на реале проверить?
Вид для печати
Может кто на реале проверить?
Я могу, но только вечером.
А вообще, вроде бы должно работать, не вижу причин, почему нет.
Достал свой Апогей, работает. Пришлось заменить только 24 на 64, иначе был срыв синхронизации у телевизора.
Буду думать, что у меня в эмуляторе не так.
uart, 24? на 64?
jerri,Код:0021: 21 01 EF !▘. LXI H,EF01
0024: 36 00 6. MVI M,00
0026: 2D - DCR L
0027: 36 4D 6M MVI M,4D
0029: 36 64 6Д MVI M,64
002B: 36 07 6▜ MVI M,07
002D: 36 63 6Ц MVI M,63
002F: 2C , INR L
0030: 36 27 6' MVI M,27
Pyk, а сравни свой эмулятор с реалом. В реале курсор на строчку выше рамки.
Это если сразу после резета нажать G<ВК>.
uart, не понял, это в каком тесте?
Pyk, из сообщения 40. Я адаптировал его для Апогея.
http://uart.myqnapcloud.com/files/test.rka
Оказывается, не совсем правильно работает, спасибо uart за тест
Ага, сюрприз, однако! Картинка съехала на пару строк вниз.
Однако, судя по даташиту, вроде бы все должно быть ок.
Буду думать и экспериментировать на Партнере, у которого DMA доступен для чтения...
А чего эмуль так долго запускается?
Как загрузить RSS-файлы от ДОС-версии эмулятора?
Нельзя ли коды курсорнык клавиши продублировать на поле боковой цифровой клавиатуры?
Из-за использования тяжелой кроссплатформенной библиотеки wxWidgets - dll долго грузятся. Расплата за кроссплатформенность.
Подумаю, что с этим можно сделать. Можно отдельную windows-версию попробовать сделать, можно попробовать Qt (но она тоже довольно тяжелая)...
А пока можно запускать Emu80lite.exe - она не использует wxWidgets, грузится значительно быстрее, но в ней недоступны окна настроек и переключения типа ПК. Но вполне подойдет, например, для быстрой загрузки файлов из командной строки.
Увы, пока не реализовано :(
Можно, правда в сделать это самостоятельно в конфиге возможности пока нет, так что добавлю в следующую сборку.
интересно сколько десятков гигабайт кода за это время накомпилирует sjasm...:v2_dizzy_facepalm:
а теперь немножко цифер
2-х ядерный пень на 2294.3 MHz
эмуль на рамдиске (производительность в defrager-е написана) 1334.72 MB\s
время запуска 10-11 секунд
4-х ядерный амд на 3893.51 MHz
эмуль на рамдиске 1515.37 MB\s
время запуска 10-11 секунд
совпадение?
запустил с жесткого 150.83 MB\s
тоже 10 секунд...
мне только от одного названия wxWidgets прет ведром
hello world там столько же запускается?
там случаем не таймер для имитация бурной деятельности? :v2_dizzy_facepalm:
И еще вот пожелания по улучшению
уберите нафик закрыть текущее окно с alt-f10
или добавьте щифт к этому
хочешь нажать ресет закрываешь окно
хочешь сменить платформу закрываешь окно
а потом десять секунд ждать...
и выход с alt-x
комбинации клавиш которые могут вызывать моментальную потерю данных
не должны нажиматься случайно
или должно быть подтверждение
(или получается ведроид в котором пока листаешь(скролишь) настройки ставишь 7 галочек :v2_dizzy_facepalm: )
меня неимоверно бесит когда лепят всякий сброс всего по f12
и вообще нужно избавляться от каменного века
и делать кликабельные кнопки :v2_dizzy_turn::v2_thumb::v2_dizzy_roll:
[свернуть]
У меня на Core2Duo ~2 ГГц тоже примерно столько же :(
На i5 3,5 ГГц (Haswell) - 3 секунды.
Hello world запускается ровно столько же :(
При этом Lite-версия, не использующая wxWidgets, запускается меньше, чем за секунду.
В общем, я сам уже не рад, что связался с этой библиотекой. Придется, наверное переходить на Qt. Как, по ощущениям, Xpeccy, например, быстро запускается?
Понял проблему. Просто меня, наоборот, раздражают лишние подтверждения - я почему-то практически никогда не промахиваюсь. Наверное стоит сделать опциональное подтверждение или добавления Shift'а. А вообще:
Согласен. На то это и тестовая версия - я больше времени уделял собственно эмуляции, а не интерфейсу (мне самому-то удобно - все с клавиатуры, к мышке тянуться мне обычно лень). Прилепил на скорую руку интерфейс на wxWidgets - сам вижу, что не то. Так что буду пробовать альтернативы - скорее всего Qt, которая позволит и кнопки сделать человеческие, и грузится побыстрее. А если использовать Qt5, то можно наверное и от SDL совсем отказаться (в Qt4 не было кое-чего мне нужного).
Вопрос только во времени, которого как обычно на все не хватает - либо в первую очередь вылизывать эмуляцию и добавлять новые компы и конфигурации, либо заниматься интерфейсом. Постараюсь найти золотую середину :)
Так что буду рад любым предложениям и по интерфейсу, чтобы сделать его по возможности удобным :)
ну умя пальнцы не очень хорошо работают
и на клаве на который все фки сгрупиророваны в один ряд и не отделены от цифр найти лежа нужную сходу не часто выходит
пилить эмуляцию в первую очередь!!
я надеюсь вы учитываете что за 4 такта проца\дма проходит 3 такта вг75 и все из этого вытекающие последствия
запилите простейшую эмуляцию телевизора (в eightyone даже помехи от работы проца? прущие на видео выход запилили)
простой счетчик на длину КСИ ССИ
если насчитал нужное\регулируемое количество
то начинать обновление экрана по новой...
ато когда окно дрыгается в высоту
на моих поделках...
+потестить на телеке видео режимы и глянуть когда изображение начинает терять синхронизацию
и запилить тоже
- - - Добавлено - - -
И ЕЩЕ ЗАБЫЛ
НУЖНО ВПИЛИТЬ DRAG&DROP!!!
когда нужно просмотреть 100500 файлов
єто очень полезно
и ускоренную перемотку
для тех софтов который писали *********
и понавставляли 20 минут тупых заставок
под унылые звуки
В общем, эксперименты с интерфейсом и ускорением загрузки оставлю ориентировочно до майских праздников плюс/минус. Интерфейс и ядро эмулятора у меня довольно самостоятельны, так что замена интерфейса не потребует радикальной переделки эмулятора.
Учитываю. Как и то, что на Партнере, например, DMA работает на тактовой частоте ВГ75, а не процессора. А вот с точным подсчетом тактов задержек ПДП пока не все так хорошо.
(Точный подсчет есть в эмуляторе Retro80, да и интерфейс у него отличный. Но он под MacOS.)
Сделаю. Хотя лично для меня это еще одна бесполезная функция ;) Мне проще нажать Enter на файле, чем тащить его куда-то мышкой... Если, конечно, эмулятор не грузится 10 секунд ;)
Согласен. Добавлю в планы. В старых версиях, кстати, было.
Возможно, я не совсем понял, что именно нужно, может выставить фиксированный размер окна в настройках, чтобы оно не дрыгалось?
А это от телека/монитора зависит.
И вообще, я довольно пессимистически настроен относительно этих экспериментов в ВГ75. Чего в итоге достичь-то хочется? Сэмулировать ВСЕ нереально.
- - - Добавлено - - -
А, кажется понял.
Сделать один экран из нескольких частей с разными параметрами?
Ну это да
но если КСИ ССИ сильно короткие
они по идеи должны быть проигнорированы
да и писать софты нужно с учетом самых капризных телеков желательно
И лучше если эмуль покахет разсинхронизацию
чем стабильную картинку с разверткой 250 Гц
ато писатели под эмулятор глянут что оно работает
и понаписывают...
умя сразу вспоминается упоминание игры под zx81 которая работает только на эмуляторе...
- - - Добавлено - - -
вот такое разрешение как в кубике слева
только на большей площади экрана
и по центру
http://savepic.ru/13326696.jpg
- - - Добавлено - - -
ну это тоже да
но это скорей всего не реально
кроме сочетаний с режимами с высотой строки 1
а я наоборот не люблю ассоциации файлов )))
есть шанс увидеть новую версию эмулятора хотя-бы в апреле ?
Все по мере наличия свободного времени, а с ним-то как раз было не очень :(
Вообще планировал сегодня сделать новую сборку - сейчас как раз допиливаю кое-что...
Но если вдруг что-то помешает, то завтра-послезавтра...
Выложил новую тестовую сборку:
http://emu80.org/v4beta/Emu80_40225.zip
Изменения по сравнению в версией 4.0.218:
Легенда:
+ Нововведение
* Изменение / улучшение
- Исправлен баг
* Ускорен запуск эмулятора. Просьба оценить скорость запуска и необходимость lite-версии.
* Используется текущая папка при передаче имени файла без пути в командной строке.
- Исправлены некоторые фильтры при загрузке файлов.
+ Автозапуск файлов при загрузке по Alt-F3 (обычная загрузка - Alt-L).
+ Ассоциация расширений файлов в конфигурационном файле
Если не указана опция выбора типа платформы, он оперделяется на основании расширения файла.
При загрузке файла по умолчанию происходит автозапуск, если нужно просто загрузить,
используйте новую опцию "-l"
+ Drag-n-drop файлов: пока только автозапуск. Перетаскивать файлы нужно в окно, в котором
эмуляруется платформа, соответствующая перетаскиваемому файлу.
* Улучшения в эмуляции ВГ75:
исправлено поведение при одновременной установке атрибутов мерцания и подчеркивания,
исправления, касающиеся работы с флагом IE,
гашение экрана после команд stop display и reset
* Стрелки работают также и на на цифровой клавиатуре
+ Ускоренная перемотка (3x) при нажатой клавише End
+ Пауза/возобновление работы эмулятора по кнопке Pause/Break. При вызове отладчика режим паузы выключается.
+ Экспериментальная опция: Aspect Ratio. Позволяет отображать как квадратные пиксели
(1:1), так и в соотвтетствии с реально отображаемой на экране соответствующего ПК
картинкой. Горячая клавиша - ALt-R. Пока поддерживается только режим PAL (576i).
+ Конфигурация для РК-86 с процессором Z80 (вариант Владимира Чистякова).
Информацию в первом сообщении также поменял.
Кое-что из начатого и обещанного доделать не успел - войдет в следующие сборки.
По моему на одном компе скорость запуска стала нормальной на другом(тот что по старей) так и осталась...
потом еще проверю (мог закинуть не ту версию)
в Emu80lite вообще есть смена конфигурации? попадание в настройки?
сброс и 2!!!!!! версии закрыть окна в нем работают...
но не F9
И ищо
за перехват обращения к магнитофону
когда делаю загрузку I
и не выбираю никакой файл
загрузка завершается
0000
0000
0000
при этом b2m правильно(по моему мнению) продолжает выполнять процедуру загрузки...
можно зайти в дебагер подебагать её...
в РК можно отменить загрузку??? есть какой нибудь break на клавиатуре??
или если она началась то ее не остановить??
чтот у меня так и осталась ассоциация файлов со старой версией (3.04) эмулятора.
и пауза по кнопке "pause/break" не включается.
у меня такое чувство будто в b2m вообще не эмулируются задержки от DMA...
и вообще сравнивать кривые эмуляторы...
еще бы сравнили с Е3000...
- - - Добавлено - - -
ты посмотри как эмулируется спектрум
выбираешь пентанон
и повышается скорость\частота звука
хотя у пентагона таже частота проца
но другая частота кадров
а в эмулях на оборот
одна частота кадров
но разное количество тактов в них...
В lite-версии нет ни настроек, ни смены конфигурации. Только диалоги выбора файла.
В принципе, можно тоже подобное поведение сделать. Но у b2m сделано чтение wav-файлов, так что это имеет смысл, а у меня пока нет. Доберусь до чтения wav - переделаю и отказ от загрузки.
Отмены загрузки в РК нет - нужно жать на reset.
Можно ассоциировать текущую версию вручную: правой кнопкой - "Открыть / выбор программы из списка установленных" либо "Открыть с помощью", потом "Обзор" и выбрать emu80.exe и галку "всегда использовать..."
Никакого автоматического ассоциирования пока нет.
В emu в конфиге по умолчанию не настроено торможение из-за ПДП. Чтобы это включить, добавьте "hrq=CPU.hold" в секцию "dma : K580wt57". Это относится к РК, Апогею и Микроше. Как сделать (и можно ли) в emu правильное торможение ПДП для Партнера, я не знаю.
В Emu80 должно соответствовать реалу с погрешностью меньше 1% в обычном режиме. В emu скорее всего тоже. (Точнее пока только в Retro-80.)
Ну а как тогда...
...мне эмулятор партнера 3-жды не нужен
...не делать же отдельный исполняемый файл для каждой платформы?
или делать? (так например в vice)
пойду прямо счас проверю время запуска...
Ага тогда я запустил не ту версию видимо
На обоих компах время запуска нормальное :v2_thumb:
NEO SPECTRUMAN,
Во первых, автозапуск Партнера настроен в конфиге, это можно поменять.
Во вторых, можно запускать эмулятор с опциями командной строки для запуска нужной платформы.
В третьих, при передаче в качестве параметра имени файла, в последней версии произойдет автоопределение запускаемой платформы на основании расширения файла.
Так что lite-версия даже в таком виде вполне юзабельна. Вполне можно ассоциировать с нужными расширениями для автозапуска.
- - - Добавлено - - -
Можно поподробнее - при каких обстоятельствах проверялось? Проверил - вроде бы все ок, пауза включается...
а при этом не работает какой нибудь плеер или переназначалка клавиатуры?Цитата:
и пауза по кнопке "pause/break" не включается.
у меня периодически возникают подобные траблы изза подобного в некоторых приложениях.
У меня стоит переназначалка клавиатуры "punto switcher" называется - довольно полезная для быстрого набора слов и корректировки ошибок программа, хотя иногда довольно вредная.
Жму на клавишу пауза, пауза проскакивает пару раз (очень быстро включается-выключается) а потом клавиша пауза как-будто игнорируется.
Может назначите паузу на другую клавишу какую-нибудь F ?
Не помню, возможно на форуме проскакивало. В конфиге Микроши, кажется, уже сделано.
Сейчас проверил на Микроше - и в Emu80, и в emu одинаковые результаты. К тому же свой эмулятор я с реалом сверял, хотя это давненько уже было...
Что за тесты? Не знаю о них, возможно, именно на них проблемы?
- - - Добавлено - - -
Хорошо, продублирую на сочетание Alt + что-нибудь.
Я не пользовался punto switcher'ом, он как раз клавишу Pause использует по умолчанию?
В эмуляторах, где специально принимаются меры для балансировки времён исполнения команд такая ситуация. Чем быстрее компьютер на котором прогоняется эмулятор, тем точнее балансировка времён исполнения команд. На одноядерном ПЕНТИУМ-II все современные эмуляторы дают 100% погрешность времен прогона некоторых команд (а если одновременно загрузить современный 100-мегабайтный браузер, жрущий все ресурсы CPU, то намного больше). А на CELERON 500 вообще даже не выходят на номинальную скорость (примерно вдвое медленнее). Это из-за использования ЯВУ, на ассемблере более точный эмулятор можно сделать на 286-той с тактом всего 16 МГЦ?
Эти знаю, конечно.
Только зачем же использовать тест не по назначению?
Он предназначен для тестирования ВГ75. А поскольку с эмуляцией ВГ75 остались пока проблемы, результат выдается не совсем корректный, и время выполнения получается не вполне корректное.
Как в emu дела обстоят с этим тестом - точно не знаю.
Потестируйте на чем-нибудь, что корректно работает в эмуляторе, да хоть просто дамп области памяти в Мониторе.
Ну, на современных компьютерах с достаточно мощным процессором все зависит только от самого эмулятора, не думаю, что проблемы могут быть из-за того, что не успевает компьютер, на котором этот эмулятор запущен...
Это легко проверить. Когда я в 2000 году заимел свой первый ПЕНТИУМ (Celeron 500), который эмулировал в 5-6 раз быстрее, чем до того имевшийся 486DX2-80 (170 XT), то решил сбалансировать времена исполнения команд в своём эмуляторе. При 486-той ещё не было ресурса для этого. Для этого я прогонял 500 миллионов раз подряд одну команду Z80 и по системному таймеру (что считает клики в 1/18 секунды) "засекал" время.Цитата:
Сообщение от Pyk
Замечу, что сбалансировать 100% всё-равно не удастся - времена исполнения команд колеблются в разных процессорах из разных фирм. Кроме того, у одного кэш более быстрый, у другого конвейер более эффективный, в третьем компьютере интегрированный видеоадаптер тормозит. Конечно отличия невелики, но всё-же есть.
Что Вам мешает написать подобный тест и оттестировать корректность времянок по командам.
Тут некоторые пытаются тестировать программы основанные на времянках на эмуляторах. Я вообще не понимаю как это возможно. Ведь эмулятор на фреймах "рвёт" прогон программы ещё покруче, чем это делает ПДП в РК86. Так как, как минимум 50 раз в секунду, процессор в PC прекращает эмуляцию и начинает делать визуализацию, выкидывая картинку на экран SVGA. Понятно, что за секунду усреднённое торможение от визуализации постоянно. Но за короткий промежуток времени - это как попадёт. Если попадёт между двумя периодами визуалиции - это одна скорость, а если фрагмент придётся на период регенерации, то время прогона этого фрагмента изменится в разы. Или у Вас визуализацию делает другой процессор, не мешая основному?
ПонИл. Тесты с ВГ75 нерелевантны ни разу. Ок.
Эмулятор может быть вполне адекватным. Всё зависит от того как сделана визуализация. Если так как выше описано, т.е процессор в каждом каждом кадре надолго прекращает прогон и начинает визуализацию всего экрана это одно. А если визулизация "размазана тонким слоем" по времени кадра, т.е после прогона каждых 10 команд Z80, мы визуализируем маленький кусочек экрана (но не весь) это другое.Цитата:
Сообщение от zebest
И совсем третье, если визуализация сделана грамотно, когда все команды Z80 пишущие в экран отлавливаются (но не визулизируются сразу, а запоминаются), а затем после прогона очередноё 6000-ной команды все изменения экрана разом визуализируются и время процедуры визуализации подгоняется так, чтобы и при одном изменении экрана и при 150-ти, пауза в прогоне была одна и та же. Тогда скорость прогона неизменна, как для программ не пишущих в экран, так и для программ с быстрой динамикой на экране. При этом способе 50 раз в секунду делается визуализация не всего экрана, а лишь меняются произошедшие изменения на экране. Отчего потери скорости не на 99.9% как у цельно-фреймовой визуализации, а лишь на 0.05%. Так делаются эмуляторы на 286-том, которые работают лучше, чем эмуляторы на ПЕНТИУМЕ, что в 10 тысяч раз скоростнее. К сожалению, в моём эмуляторе не так. Я выравнивание потерь на визуализацию не делал, поэтому на 286-той (15 XT) есть 10%-ные колебания скорости в динамичных играх. Но уже на 386DX40 (43 XT) колебаний скорости нет.
Какой таймер, в режиме прогона прерывания запрещены. Точно также как клавиатура обслуживается собственным драйвером, INT_9 не работает, отчего программы для скрин-шота не работают. Поэтому копию экрана эмулятора я делаю в эмуляторе DOS BOX. Получается четверная эмуляция: DOS BOX, PC XT, ОРИОН, РК86. Кстати DOS BOX неверно эмулирует текстовый адаптер, а именно режим загрузки своих фонтов (это он делает), но не выпоняет функцию использовать фонт 9*16 вместо 8*16, отчего мой красивый фонт слипается, и в мониторе-отладчике отображается слипшийся фонт)Цитата:
Сообщение от Pyk
Не могли бы Вы пояснить идею. Я это не понял.
Я понимаю, что можно определить сколько маш.тактов прогналось за единицу времени, скорректировать константу тормозилки и снова протестировать. Через несколько итераций получим константу тормозилки, чтобы скорость соответствовала РК86 с реальным тактом в 1.3 МГЦ. Выяснить скорость легко даже по секундомеру. Так что не важно полагаетесь Вы на таймер или ручной секундомер. Как Вы тормозите - добавляя паузу после каждой команды (как делаю я, отчего получается дискретность и разбалансировка), добавляя большую паузу после, например 10.000 команд или добавляя количество кадров визуализируемых за секунду?
Выполняя в одном цикле эмуляции ровно столько тактов процессора, сколько выполнилось бы реальным процессором за время, которое прошло с предыдущего цикла. Сколько раз в секунду запускать цикл эмуляции, в таком случае, неважно. Можно 50 раз, а можно и 100 раз. Главное, что будет проэмулировано ровно столько тактов, сколько надо. Единственная погрешность - это погрешность при пересчёте времени в такты. У меня в эмуляторе время берётся в миллисекундах (количество тиков), соответственно если тактовая частота не кратна 1000, то количество тактов будет плюс-минус один. При 100 циклах в секунду до 100 тактов погрешности. Но при частоте около 2МГц это лишь 0.005%.