А если серьезно -- а может, пускай юзер сам в сетупе выбирает модель из полусотни вариантов, а тест только на тонкие различия смотрит?
Сферический ламер в вакууме
надо уходить от четкой логики к нечеткой там можно и пзу применить, и все что хочешь. и даже отмазаться, что вот 99%, что у вас скорпион, а не 100%
И крайне желательно предусмотреть ручной выбор, на случай если неправильно определит автоматом или попадется неизвестный зверь. Тем более что:
1) уже писали (хотя можно попытаться определять не CRC или не только его, а отдельные куски кода или например надписи)
2) длительность инта на многих клонах пытались (доработками или настройками)
3) Многи порты (особенно память) на разных клонах могут пересекаться или дублироваться
---------- Post added at 16:45 ---------- Previous post was at 16:30 ----------
Если не бОльшая часть, то очень многие такие ПЗУ давно заменены на стандартные
---------- Post added at 16:51 ---------- Previous post was at 16:45 ----------
А вообще, imho, задача сильно упрощается если определиться для чего это определение нужно. Для многих задач достаточно не достоверно определить модель, а определить определенные параметры модели или их совокупность.
Последний раз редактировалось alvis; 19.09.2013 в 17:37.
Скрытый текст
Profi 6.2 Rev.B / 1024
Profi v5.02 /1024/палитра/FDD3,5"/FDD5,25"/HDD130/XT-Keyb/Covox
Profi v4.00 /1024
АТМ Turbo /512/ - собран но еще не запускался
ATM Turbo 2+ v7.10 - собран на 80%
Pentagon 128 - в планах восстановить (раскуроченная плата)
ZXMC20/NemoIDE/AT-Keyb (by Caro)
Revers U8EP3C
Speccy2010, r2
[свернуть]
Лично меня в первую очередь интересуют точные временные параметры кадра (бордер и/или мультиколор). К сожалению, варианты с ручным выбором далеко не всегда реалистичны, просто в силу усложнения итогового кода и ограниченных возможностей спектрума как машины. Более реалистично, с моей т.зр. оказывается поддержать фиксированный набор хорошо изученных и распространённых моделей.
1. Тесты ПЗУ я не считаю элегантными и, по возможности, стараюсь их избегать, т.к. они, в каком-то смысле, косвенные. Т.е. если мы видим ПЗУ как у оригинального Спектрума, это не означает, что это Спектрум оригинальный. Если мы видим ПЗУ отличное от оригинального Спектрума, это не значит, что интересующие меня времянки не совпадут с оригиналом. Не очень ясно в таком случае, как относиться к любым итоговым результатам таких тестов - в любом случае, решение придётся принять на основании чего-то ещё, так зачем плодить сущности? Примерно по тому же принципу, определение TR-DOS по системным переменным - возможно, но не очень-то и надёжно.
2. Длительность инта. Кстати, неудачное название теста, т.к. под этим некоторые люди понимают число тактов между кадровыми прерываниями, а некоторые - собственно, саму продолжительность сигнала кадрового прерывания поступающего на процессор. В моём понимании, это отличный тест, т.к. его легко сделать компактным по памяти, и т.к. этот тест позволяет чётко отличить некоторые модели спектрумов, в частности пентагон и зелёный скорпион, а также спектрумы от Amstrad.
3. Именно из-за того, что порты пересекаются, дублируются и, зачастую, из-за неполной дешифрации, ещё и откликаются на чужие имена, я и просил людей поделиться своми наработками в этом плане.
4. У себя в программе я остановился на 2 основных тестах: кол-во тактов на фрейм + вариант кол-ва тактов на фрейм завязанный на медленной памяти, так что можно отличать компьютеры с вейтами от компьютеров без вейтов, а ещё и сортировать по видам вейтов. Кроме этого, я написал дополнительный определитель по портам, но им я совершенно недоволен, т.к. он далеко не всегда отлавливает то, что мне хотелось бы отловить.
Последний раз редактировалось introspec; 19.09.2013 в 18:45.
"introspec" читается как "интроспек". некоторые читают как "интроспец", но я никакой не спец. я спек.
Если временные параметры, то что мешает запилить сетуп, в котором юзер курсорными клавишами подгоняет простенький бордюрный эффект под метку на экране?
Сферический ламер в вакууме
Согласен, кроме ПЗУ, по причинам изложенным выше. Проверять ПЗУ по-настоящему есть смысл только в том случае, если планируется именно что использование ПЗУ. По-настоящему, я надеялся услышать какие-то идеи относительно 3, т.е. о проверенных в деле последовательностях для тестирования моделей по портам.
---------- Post added at 15:44 ---------- Previous post was at 15:40 ----------
Мешает то, что есть очень много различных подводных камней, которые можно обойти в случае знания конкретной модели спектрума, и которые нельзя обойти "простеньким бордюрным эффектом". Разные виды задержек памяти и процессора. Разное положение int относительно экрана.
"introspec" читается как "интроспек". некоторые читают как "интроспец", но я никакой не спец. я спек.
А что тут сложного? Пауза больше -- пауза меньше.Разное положение int относительно экрана.
Мда, согласен.Разные виды задержек памяти и процессора
Сферический ламер в вакууме
"introspec" читается как "интроспек". некоторые читают как "интроспец", но я никакой не спец. я спек.
Ко мне больше подходит вот это. Я не кодер.Ммм... давай сделаем так, запрограммируюй что-нибудь
Сферический ламер в вакууме
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)