Важная информация

User Tag List

Страница 4 из 20 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 200

Тема: Вектор-06Ц: Эмуляция - КР580ВМ80А

  1. #31
    Tim0xA
    Гость

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Нужен доброволец с работающим реалом.
    ivagor, готовь тест

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

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

    По умолчанию

    Tim0xA
    Итак, состряпал нечто похожее на тест установки флагов командой sub d (легким движением руки превращается в тест других подобных команд)
    Нужно делать 4 прогона, записывая по адресу 830B команды lxi h,0000 (так исходно); lxi h,8000; lxi h,00FF; lxi h,80FF (младший байт - то, что будет в регистре флагов перед sub d; старший - исходное значение рег-ра A, в ходе теста оно будет увеличено на 127).
    Тест предлагаю делать в Мониторе 3.5, тем более он у тебя прошит в ПЗУ. Стартуем в режиме 1 (9400-9FFF, E000-FFFF)
    На всякий случай желательно сделать XS и задать 100, хотя это вроде только для трассировки, а так стек устанавливается отдельно.
    Загружаем (или набираем) testpsw.
    Запуск C8300
    В адресах 0200-81FF теперь лежит результат
    Задаем имя IPSW0000
    Выгружаем W200,81FF

    Потом остальные варианты - модифицируем команду по адресу 830B - исходно было lxi h,0000; потом делаем lxi h,8000; lxi h,00FF; lxi h,80FF
    Желательно задавать имя сохраняемого файла аналогично аргументу lxi h - PSW0000, PSW8000, PSW00FF, PSW80FF

    После загрузки в PC и сохранения как участка памяти из VV можно объединить фрагменты, например так
    copy /b psw8000 + psw0000 psw00
    copy /b psw80FF + psw00FF pswFF
    (логичнее объединять именно так, т.к. стек идет от старших адресов к младшим, и при таком объединении не будет "скачка аргументов" на стыке)

    В качестве примера я приложил результаты прогонов в VV (на ВМ80, ВМ1 и Z80) и в TDV (там только ВМ80).
    Как нетрудно убедиться, VV и TDV при выполнении sub d обрабатывают флаги совершенно одинаково.
    Также видно, что ВМ80, ВМ1 и Z80 устанавливают флаги по разному
    Обнаружилась, как я считаю, неточность в эмуляции ВМ1 - sub d влияет на флаг MF (бит 3), поэтому pswVV_00_vm1 и pswVV_FF_vm1 одинаковые. По моим представлениям на MF должны влиять только команды SMF0, SMF1 и POP PSW, поэтому pswVV_00_vm1 и pswVV_FF_vm1 должны отличаться значением бита 3 в каждом байте.

    Если я что-то не учел, не заметил или ошибся - поправьте, ведь есть шанс совершить прорыв в точности эмуляции КР580ВМ80
    Последний раз редактировалось ivagor; 04.09.2009 в 18:57.

  4. #33
    Tim0xA
    Гость

    По умолчанию

    ivagor, выполнил тесты, три выгрузил (в приложении), на четвертом комп притормозил, запись была нарушена, но в ней похоже уже нет смысла, т.к. судя по результатам тестов в эмуляции ВМ80А нужно проинвертировать флаг вспомогательного переноса AC.
    Вложения Вложения
    • Тип файла: zip test.zip (3.4 Кб, Просмотров: 219)

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

    По умолчанию

    Вон оно как оказалось...

  6. #35
    Tim0xA
    Гость

    По умолчанию

    Чтож, теперь ждем вердикта от Ramiros-а, что он скажет...

  7. #36
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Действительно, достаточно инвертировать флаг доп. переноса в командах вычитания:
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	PILLARS1.PNG 
Просмотров:	361 
Размер:	10.4 Кб 
ID:	11235  

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

    По умолчанию

    Выяснение этого вопроса заняло примерно 9 лет

  9. #38
    Master Аватар для Ramiros
    Регистрация
    05.08.2008
    Адрес
    Магнитогорск
    Сообщений
    954
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    71
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всем спасибо! совместными усилиями мы это сделали!

    Добавлено через 11 минут
    Весь прикол похоже в том, что ВМ80 в командах вычитания сначало внутренне получает дополнительный код вычитаемого, а потом вместо вычитания делает сложение. Наверное к ВМ1 это тоже относится. Кстати косяк с флагом MF в ВМ1 действительно был, но он сидел в команде POP PSW.
    Последний раз редактировалось Ramiros; 22.03.2009 в 19:32. Причина: Добавлено сообщение
    Здесь можно скачать актуальные версии Virtual Vector (VV)

  10. #39
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И что теперь делать с командой DAA? Оставить так, как есть?

  11. #40
    Master Аватар для Ramiros
    Регистрация
    05.08.2008
    Адрес
    Магнитогорск
    Сообщений
    954
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    71
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    И что теперь делать с командой DAA? Оставить так, как есть?
    Оставить как есть, она после вычитания должна работать неправильно, это нормально
    Последний раз редактировалось Tim0xA; 27.03.2009 в 01:47. Причина: Выделение новой темы
    Здесь можно скачать актуальные версии Virtual Vector (VV)

Страница 4 из 20 ПерваяПервая 12345678 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Вектор-06Ц: Эмуляция
    от ZEman в разделе Вектор
    Ответов: 1450
    Последнее: 16.03.2024, 20:18
  2. Рекомпиляция Z80 -> КР580ВМ80А
    от svofski в разделе Вектор
    Ответов: 59
    Последнее: 28.06.2021, 15:10
  3. Вектор-06Ц
    от Robusta в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 17.03.2009, 23:18
  4. Вектор-06Ц: БП от PC
    от Dmitry Dubrovenko в разделе Вектор
    Ответов: 11
    Последнее: 08.03.2009, 21:53
  5. Ищу ВЕКТОР-06ц
    от BYTEMAN в разделе Барахолка (архив)
    Ответов: 13
    Последнее: 17.11.2008, 20:50

Ваши права

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