Сделал альтернативный тест для Вектора с запуском из ПЗУ. В отличие от теста KTSerg, тестирование производится не только памяти и без вывода какой-либо полезной информации на экран, работает тест так:
1. Тестирование процессора с генератором, клавиатуры и ВИ53. На этом этапе, сразу после запуска, просто мигает индикатор "РУС/ЛАТ" с выводом щелчка при переключении, если нажать на клавишу "СС", "УС" или "РУС/ЛАТ", то через ВИ53 выводятся частоты 3, 2 или 1 кГц соответственно. При этом ОЗУ Вектора не используется совсем, только ПЗУ.
2. Тестирование верхней памяти (8000h-FFFFh). Запуск тестирования выполняется после одновременного нажатия "УС" и "СС". Тестирование выполняется три раза, заполнением памяти значениями 55AAh, AA55h и 0000h, каждый проход сопровождается выводом звука через ВИ53, тоже 1, 2 и 3кГц. В случае обнаружения первой ошибки в памяти, в порт В на "ПУ" выводится сбойные биты, в 5-4 битах порта C на "ПУ" -- номер банка памяти ("11" -- банк 8000h-9FFFh; "10" -- банк A000h-BFFFh; "01" -- банк C000h-DFFFh; "00" -- банк E000h-FFFFh), после чего сразу идёт возврат к п.1. По сохранившейся тональности можно определить, на каком проходе была выявлена ошибка памяти.
3. Тестирование нижней памяти (0000h-7FFFh). Если предыдущий тест не обнаружил сбоев в верхней памяти, то туда копируется содержимое ПЗУ и ожидается нажатие БЛК+СБРОС для его отключения. Если в этот момент нажать "РУС/ЛАТ", то произойдёт возврат к п.1 и можно будет запустить тест снова. В случае наличия автозапуска, как на 02-м Векторе, вторая часть теста стартует автоматически. Тестирование нижней памяти выполняется аналогично, как и верхней, в три прохода. В случае обнаружения ошибок, они также выводятся в ПУ и после нажатия "РУС/ЛАТ" идёт повтор теста нижней памяти.
4. Дополнительные тесты. Если во время всех тестов ошибок не было обнаружено, то всё, что было записано ПЗУ после тестов, копируется в память с адреса 0100h и запускается на исполнение. Т.е. к файлу "BLINK.EPR" в конец можно (и нужно) дописать любую программу до 32кБ, и эта программа будет запущена сразу после теста памяти. Это могут быть тесты устройств, квазидиска или даже некая оболочка с выбором последующего теста из нескольких -- всё, что поместится в 32Кб минус 593 байта. Для примера, в архиве в файл "BLINK.r0m" дописан стандартный тест техпрогона.
Архив с прошивкой для ПЗУ и исходниками: blink.7z
Проверил работу в эмуляторах и на живом Векторе (не из ПЗУ). Да, мой тест несколько хуже в плане информативности по ошибкам, т.к. останавливается на первой же найденной ошибке, но какое-то заключение по работе Вектора с ним можно получить. Кроме того, он может работать с полностью неисправным ОЗУ, без вывода на ТВ, а также не использует прерывания и не программирует палитру. Пусть будет как альтернатива.




Ответить с цитированием