User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 30

Тема: Эмуляция 8080 на z80

  1. #1
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,863
    Спасибо Благодарностей отдано 
    658
    Спасибо Благодарностей получено 
    1,854
    Поблагодарили
    1,059 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Эмуляция 8080 на z80

    Надеюсь не ошибся с разделом.
    Сделал простейший (трудоемкость написания 3-5 человеко-часов) вариант интерпретатора 8080 для z80. Зачем это нужно (в теории) - можно перехватывать команды, которые обращаются к железу и получить на (ретро)компе с z80 эмулятор другого ретрокомпа с 8080. В теории звучит интересно, но практического смысла в текущем варианте маловато, тем не менее озвучу некоторые характеристики, возможно кто-то делал и у него получилось лучше или где-то лежит более удачный вариант: размер почти 2.5 Кб; скорость примерно в 15 раз меньше, чем у нативного исполнения, т.е. для соответствия 2 МГц 8080 нужен z80 30 МГц. Попробовал на примере специалиста. Программы (down to earth, exolon, zoo, mona, basic-практик адаптированный к z80) работают. Пробовал на 20 МГц, немного медленнее оригинала, но терпимо. Конечно хотелось бы побыстрее, но ускорить получится разве что с динамической рекомпиляцией (типа как здесь).

  2. Этот пользователь поблагодарил ivagor за это полезное сообщение:

    NEO SPECTRUMAN (24.03.2021)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Конечно хотелось бы побыстрее,
    думаю если влезу я то можно и чуть быстрее
    но только sjasm+ADP
    ну и отлаживать потом это будет раз в 7 тяжелее если что
    ну и размер увеличится раза в 2

    я начол писать именно динамический рекомпилятор но потом забил...
    ...точнее я планировал делать рекомпиляцию если парсер находит зацикливание на участке который поместится в буфер (для начало рекомпиляции уже нужно знать список всех переходов и куда они ведут, так что парсер не просто тратит время)
    а в случае не ненахождения запускать интерпретатор

    но оказалось это на порядок несколько больше мороки чем простой интерпретатор

    - - - Добавлено - - -

    кстате никаких сслыок на результат в первом посте нету

    - - - Добавлено - - -

    Цитата Сообщение от ivagor Посмотреть сообщение
    (в теории) - можно перехватывать команды, которые обращаются к железу и получить на (ретро)компе с z80 эмулятор другого ретрокомпа с 8080.
    любой перехват обращения
    катастрофически просаживает производительность
    а защита\трансляция адресов памяти так просто моментально в разы
    самый оптимальный вариант
    например эмулятор специалиста на специалисте
    ну как например это со спектрумом было в первых zxzxemul-аторах
    когда напряммую читается родное пзу и пишется в родную видео память

    - - - Добавлено - - -

    Цитата Сообщение от ivagor Посмотреть сообщение
    другого ретрокомпа с 8080
    ну и особо нет ретрокомпов на 8080
    которые можно было бы эмулировать

    там или конченейшие %все что угодно% контроллеры которые и на ПЦ досих пор нормально не эмулируются
    или памяти больше чем у хост платформы...
    Последний раз редактировалось NEO SPECTRUMAN; 23.03.2021 в 19:01.

  5. #3
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,863
    Спасибо Благодарностей отдано 
    658
    Спасибо Благодарностей получено 
    1,854
    Поблагодарили
    1,059 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    любой перехват обращения
    катастрофически просаживает производительность
    а защита\трансляция адресов памяти так просто моментально в разы
    Есть комбинация эмулирующего и эмулируемого компьютеров, для которой по минимуму требуется только эмуляция клавиатуры. Частичная (исходя из разумной достаточности) защита памяти для этой комбинации также обойдется очень дешево. В сумме накладные расходы (для одного конкретного варианта) вряд ли потянут больше 10%, скорее всего единицы процентов для типичных программ.

  6. #4
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Есть комбинация эмулирующего и эмулируемого компьютеров
    нудо
    вектор\специалист
    вектор\орион
    орион\специалист

    у кого там экраны в одинаковом направлении?

    может еще можно среди рк-шек
    перенаправлять обращение к портам
    но пзу-шку то не подменишь
    хотя азачем?

    но это не интересные варианты...

    - - - Добавлено - - -

    для эмуляций всего хорошо бы пошел АТМ с его любая страница в любое окно
    а вот на других это уже...

    все интересные машинки на z80 6502
    а z80 не так легко эмулировать
    у него 100500 команд...

    эмулятор 6502 проверенный временм давно есть
    бери пиши
    и по моему даже не один
    Последний раз редактировалось NEO SPECTRUMAN; 23.03.2021 в 19:18.

  7. #5
    Activist
    Регистрация
    17.07.2018
    Адрес
    г. Воронеж
    Сообщений
    276
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    37
    Поблагодарили
    33 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мне всегда казалось что Z80 практически на 100% совместим с 8080. Интереснее было бы наоборот, эмулировать Z80 на 8080. Но попытка написать VM на Z80 это забавно.

  8. #6
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,582
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    283
    Спасибо Благодарностей получено 
    236
    Поблагодарили
    185 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    скорость примерно в 15 раз меньше, чем у нативного исполнения, т.е. для соответствия 2 МГц 8080 нужен z80 30 МГц
    а чего так медленно-то? у z80 же вдвое больше регистров, и даже если эмулировать 64k, большинство команд сводится к exx:команда:exx
    Прихожу без разрешения, сею смерть и разрушение...

  9. #7
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    а чего так медленно-то?
    напиши узнаешь
    тыж забыл про эмуляции PC

    самый быстрый табличный вызов только жрет 18 тактов
    что уже 4+ нопа

    ld h,tab ;7
    ld h,(hl) ;7
    jp (hl) ;4

    но это то недостаточно

    добавляем pc

    ld a,(bc) ;
    ld l,a ;

    еще 3 нопа

    добавляем exx
    еще 2 нопа

    еще инкримент PC

    вот уже и в 10 раз медленее...

    кстате а когда мы инкриментим PC
    нам уще нужно сохранить флаги
    в 12 раз медленее

    а не в 10
    inc bc на флаги же не влияет (вот нам эта гадость\особеннсть наконец пригодилась)
    Последний раз редактировалось NEO SPECTRUMAN; 23.03.2021 в 21:05.

  10. #8
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,863
    Спасибо Благодарностей отдано 
    658
    Спасибо Благодарностей получено 
    1,854
    Поблагодарили
    1,059 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    большинство команд сводится к exx:команда:exx
    Так и сделал, без этого было бы сильно медленнее.

  11. #9
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Так и сделал, без этого было бы сильно медленнее.
    давай я те перепишу дыркодер команд
    посмотрим на сколько станет быстрее
    может приобщим тя к православному sjasm-у

    ...или омжет мне проще написать оно с 0-ля
    команд у 8080 не так много...
    только для меня это не 3...5 человекочаса
    а больше...
    в придачу я щас много чего другого делаю одновременно

    тогда посмотрим у кого длиннее

    хотя мне проще забить
    Последний раз редактировалось NEO SPECTRUMAN; 23.03.2021 в 21:18.

  12. #10
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,582
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    283
    Спасибо Благодарностей получено 
    236
    Поблагодарили
    185 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    самый быстрый табличный вызов только жрет 18 тактов
    что уже 4+ нопа

    ld h,tab ;7
    ld h,(hl) ;7
    jp (hl) ;4
    ну, во-первых, очевидно не самый быстрый...
    Прихожу без разрешения, сею смерть и разрушение...

Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Z80 => 8080 адаптация
    от NEO SPECTRUMAN в разделе Программирование
    Ответов: 22
    Последнее: 22.06.2021, 18:12
  2. схема АОН на 8080/z80
    от sergey2b в разделе Разный софт
    Ответов: 7
    Последнее: 07.02.2010, 22:43
  3. эмуляция Z80: тайминг
    от boo_boo в разделе Эмуляторы
    Ответов: 5
    Последнее: 06.02.2006, 13:29
  4. An 8080/Z80 C Compiler
    от breeze в разделе Программирование
    Ответов: 1
    Последнее: 18.08.2005, 06:54

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •