Красивый вариант, особенно понравилось использование десятичной коррекции.
Красивый вариант, особенно понравилось использование десятичной коррекции.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Можно еще добавить определение AMDшных клонов, пусть даже на векторе их никогда не было. Инфа здесь.
Добавил как сумел детект amd8080
Выглядит почти также неуклюже, как 1й вариант в теме, т.к.
1. Не используются недокументированные команды
2. Не меняется банк памяти 580ВМ1
В идеале было бы здорово добавить детект разных вариантов z80 и даже режима эмуляции 8085 в NEC V20/V30, но я не готов. Пока даже не уверен, правильно ли добавил amd8080.
Последний раз редактировалось ivagor; 19.01.2014 в 19:22. Причина: удалил старую версию CPUID
Добавил детект R800
Последний раз редактировалось ivagor; 19.01.2014 в 19:15. Причина: удалил старую версию CPUID
И почти без перерыва нечто менее экзотическое - опциональное определение CMOS/NMOS Z80. Опциональное (с ключом /Z) потому что используются прерывания, которые есть не на любой CP/M машинке.
Интересно, что в emu и VV такая фигня, как баг NMOSовских Z80 с LD A,R и LD A,I не поддерживается. А в BlueMSX поддерживается.
Последний раз редактировалось ivagor; 20.01.2014 в 11:09. Причина: удалил старую версию CPUID
Наспамил я в этой теме, но в итоге сделал практически все, что хотел (остались всякие хитрые Z80 и Co). В 1.5 добавил определение режима эмуляции 8080 (не 8085, как я писал выше) в NECах Vx0. Гарантировать правильность детектилки NECов могу не на 100% (во всех остальных уверен), но даже если она не сработает, CPUID15 напечатает i8080 или amd8080, т.е. не зависнет. Опция /Z (или /z) работает как и в 1.4, т.е. при наличии прерываний позволяет различить NMOS и CMOS Z80.
Последний раз редактировалось ivagor; 20.01.2014 в 17:12. Причина: удалил старую версию CPUID
Завершающий штрих. Изменил написание и смысл опции. Теперь не /Z, а /I.
Без /I прерывания не затрагиваются.
С /I возможны 2 варианта:
1. Если идем по ветке z80, то пробуем определить NMOS/CMOS. При выходе состояние прерываний как на входе. Т.е. все аналогично предыдущей опции /Z.
2. Если идем по ветке 8080, то получаем возможность уверенно детектить NECи Vx0 (без /I вероятность меньше 100%). При выходе прерывания будут разрешены.
В детектировании 8085 и 580ВМ1 прерывания не участвуют.
детект C и N MOS Z80 и эмуля есть в тесте HorrorFasTest - вродебы прерывания не юзаются - давно смотрел
ivagor (23.08.2020)
Да, там детектят недокументированной командой. К сожалению это команда out, поэтому тоже не универсальный метод, надо знать, куда на данном компе можно записать, чтобы потом еще можно было и прочитать.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)