-
Вложений: 3
Предварительная версия теста недокументированных флагов 8085.
Можно увидеть отличия emu
Вложение 44648
и VV
Вложение 44649
Версия стэндэлонная для ПК6128, но сделана как бы под CP/M + "наноэмулятор двух функций CP/M", т.е. при необходимости очень легко переделать под CP/M. Пока тестируется часть команд с разрядностью операндов 8, 8+8 (надо бы еще добавить adi и т.п., а также с M) и 16. Очевидно, что такой подход к тестированию команд с разрядностью операндов 16+8 и тем более 16+16 по времени неприемлем.
Исходник в комплекте, может кто заметит ошибки или будут какие-то предложения по улучшению.
-
Вот еще результаты VirtualT v1.5
Код:
inr a K:B4BFE7CD V:5140CBAD
dcr a K:B4BFE7CD V:14907484
daa K:B4BFE7CD V:941D8FBB
ral K:B4BFE7CD V:941D8FBB
rar K:B4BFE7CD V:941D8FBB
rlc K:B4BFE7CD V:941D8FBB
rrc K:B4BFE7CD V:941D8FBB
add b K:E2ACA54D V:70669BEA
sub b K:E2ACA54D V:F40F4344
ana b K:E2ACA54D V:3A917959
ora b K:E2ACA54D V:3A917959
xra b K:E2ACA54D V:3A917959
inx h K:22757277
dcx h K:74C300AE
Набирал вручную, поэтому ошибки не исключены, хотя и маловероятны.
Три эмулятора и в каждом свое видение 8085.
-
Давайте я уже что-нибудь запущу на реале.
Или завтра или на НГ каникулах
-
dk_spb, заранее спасибо, но все же тестик пока неполный. Как тестировать dsub примерно придумал, ldsi и ldhi пожалуй даже не стоит тестировать.
-
Вложений: 2
Неожиданно тестик становится сериалом как минимум в двух частях, т.к. все результаты не влезают на экран, хотя я и выкинул название и копирайт и уменьшил межстрочное расстояние.
Вот результаты прогона в emu (поленился делать еще и в VV)
Вложение 44710
Для SIM RIM считается CRC для аккумулятора, а на флаги они не влияют.
Время работы вполне терпимое, в районе 15 минут.
Во второй части будут dad и dsub. Может что-нибудь еще, что я забыл в первой части.
-
ivagor, ты сразу опиши суть тестирования, чтоб потом исправлять было проще.
-
ftst1
1. Все, кроме sim rim:
Тестируются все возможные комбинации операндов + два варианта флагового регистра (00000000/11111111 - строго говоря, такие числа туда пишутся, но бит 3, конечно, всегда будет 0, все равно это ни на что ни влияет).
Перед тестом каждой команды инициализируютcя два CRC флагов (для K и V).
После каждого изменения операнда маскируется флаговый регистр - сначала выделяется флаг K, потом V и обновляются соответвующие CRC.
2. SIM RIM - тестируются все 256 (можно было ограничиться 128ю) возможных значений аргумента SIM + два возможных значения INTE. Каждый раз читаем по RIM и обновляем CRC.
-
Вложений: 3
Вторая часть теста флагов 8085.
Результаты в emu:
Вложение 44760
и VV
Вложение 44761
arhl и rdel тестируются аналогично inx и dcx в первой части.
Флаги K, AC и V в dad и dsub тестируются в два приема - все комбинации младших байтов и все комбинации старших байтов аргументов (флаги как всегда тоже в двух вариантах: 00000000 и 11111111). AC в dad (да и K тоже) можно было не тестировать, но я не стал делать отдельный вариант теста, все равно время работы второй части всего 6 с половиной минут.
Тестирование флага P в dsub отличается тем, что первый операнд всегда 0, второй меняется от 0 до 65535.
Проверять S, Z и C в dsub мне кажется не стоит, и так все понятно.
По скорости тесты можно оптимизировать, но смысла в этом не вижу - речь о минутах, а не о часах, в отличие от эксисайзера.
-
dk_spb, теперь все тесты готовы, если сможете проверить на новогодних каникулах - было бы очень здорово.
-
То есть я этот .rom перегоняю в .wav и запускаю?
Сколько времени ориентировочно займет (ночь, сутки, и т.д.)?