Бытовой ретро-компьютер своими руками
http://forum.pk-fpga.ru/

Тесты АльтПро
http://forum.pk-fpga.ru/viewtopic.php?f=45&t=5431
Страница 1 из 1

Автор:  gid [ 21 авг 2013, 22:45 ]
Заголовок сообщения:  Тесты АльтПро

Тесты контроллеров АльтПро


Тест v4.74F

Тест без своего знакогенератора решено всё таки не делать, так что следующая версия всего в одном варианте.

Скачать вариант со своим знакогенератором:
alt_test_v4.74f.rar [20.78 KiB]
Скачиваний: 1127

Изменения:

  • v4.73 - тест памяти на ошибки немного усложнён.
  • v4.74 - тест памяти на ошибки изменён. Добавлено длинное тестирование случайными числами, с целью проверки стабильности, длительность длинного тестирования можно задать свою, а так же совсем отменить.


Тест v4.72

Теперь тест будет создаваться в двух вариантах. Со своим знакогенератором, и с использованием знакогенераторов монитора БК10 или БК11.

Скачать вариант с обычным знакогенератором:
alt_test_v4.7.rar [17.64 KiB]
Скачиваний: 1115

Скачать вариант со своим знакогенератором:
alt_test_v4.7f.rar [19.55 KiB]
Скачиваний: 1129

Изменения:

  • Добавлены тесты конструктивных особенностей: доступ к регистрам HDD, тест буфера ОЗУ для HDD, реакция на команду RESET, реакция на биты 2 (код 4) и 3 (код 10)
  • v4.71 - уточнение реакции на биты 2 и 3.
  • v4.72 - ещё одно уточнение реакции на биты 2 и 3.


Тест v4.61

Дальнейшее развитие теста v4.3, cкачать:
alt_test_v4.6.rar [14.85 KiB]
Скачиваний: 1109

Следующая версия теста контроллеров АльтПро с ДОЗУ 64-512КБ. Описание логики работы теста памяти ДОЗУ и теста переключения страниц в спойлере:

Развернуть/Свернуть
Описание логики работы теста памяти ДОЗУ тестов v4.5 и v4.6.


Общее замечание. Тест памяти оперирует 16 килобайтными половинками 32 килобайтной страницы памяти контроллера AltPro. Для этого,он подключает одну страницу дважды в двух режимах: 0160 и 060 для БК0010; и 0120 и 020 для БК0011.

Далее, под страницей памяти будем иметь в виду 16 кб половинку страницы памяти, подключаемую в одном из режимов.


Тест памяти разбит на 3 этапа:
  1. Перебор всех 32 кодов подключения страниц независимо от количества памяти, и заполнение массива ошибок страниц. Если страница была подключена ранее, проверки на ошибки чтения-записи не производятся.

    В таблице отмечается факт повторного подключения, возникновения прерывания по вектору 4 при чтении и при записи, а так же результат байт-теста.

  2. Подсчёт доступного количества ОЗУ.

    При этом на экран вместе со счётчиком ОЗУ выводятся результаты проверки первого этапа, соответствующие той странице, на которой возникли ошибки:

    «стр. с кодом XXXX уже подключали с YYYY»,
    где XXXX - текущий код подключения страницы вместе с режимом,
    а YYYY - предыдущий код, с которым эта страница уже подключалась
    «write-halt» - если произошло прерывание по вектору 4 при записи.
    «read-halt» - если произошло прерывание по вектору 4 при чтении.
    «byte-test fail» - если байт-тест провален.

    Повторно подключенная страница не подсчитывается при подсчёте количества ОЗУ, в то время как страница с ошибками чтения-записи и байт-тестом - подсчитывается.
  3. Проверка на битые ячейки памяти.

    Проверяются все страницы кроме повторно подключаемых.

    Проверка производится в два этапа:

    Этап 1: методом записи и последующего чтения битовой маски в каждую ячейку страницы.

    Этап 2: методом заполнения всей страницы маской, и последующего чтения маски со всей страницы.

    Перед первым этапом, между этапами и после второго этапа все страницы памяти заполняются определённым значением. На каждом этапе, перед началом тестирования каждая страница проверяется на целостность заданного определённого значения. Если оно не совпадёт с заданным, то будет выведено сообщение:

    «XXXX - синхро ADDRESS:VALUE:ошибка»,
    что означает следующее: во время изменения данных в одной странице, изменились данные по адресу на этой странице, это свидетельствует о внутренних повреждениях чипа памяти.

    Если во время синхротеста возникнет ошибка чтения/записи, то выведется следующее сообщение:

    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:write-halt» или
    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:read-halt»,

    где BBBBBBBBBBBBBBBB - синхрокод, (число 04260 для v4.6 или 051400 для v4.5) в бинарной системе счисления.

    Во время проверки на экране отображаются: текущий код страницы вместе с режимом, битовая маска, а так же сбойные адреса и сам сбой при его наличии. И отображается адрес на котором произошла ошибка чтения и/или записи, информацию о которой можно было видеть при подсчёте количества ОЗУ:

    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:EEEEEEEEEEEEEEEE» или
    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:write-halt» или
    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:read-halt»,

    где XXXX - текущий код подключения страницы вместе с режимом,
    BBBBBBBBBBBBBBBB - текущая битовая маска,
    ADDRESS - адрес, где произошёл сбой,
    EEEEEEEEEEEEEEEE - сбойное значение,
    write-halt - означает, что произошло прерывание по вектору 4 при записи,
    read-halt - означает, что произошло прерывание по вектору 4 при чтении.

    Проверку страницы можно пропустить, нажав почти любую клавишу (кроме СТОП, СУ, АР2, ЗАГЛ, СТР и Шифт). Чтобы одним махом не напропускать лишнего, тоже делается проверка, если вы нажали клавишу, и на экране ничего не происходит - отпустите её, процесс пойдёт дальше. Это полезно, если на странице сплошняком прут ошибки, на каждом адресе. Клавишу жать надо дважды - сперва чтобы пропустить синхротест, затем, чтобы пропустить тест памяти.

Описание логики работы теста режимов переключения страниц.


После того, как выяснилось, что в логике переключения страниц ОЗУ контроллера присутствует недоработка, был написан данный тест. Тест работает только с потенциально проблемными переключениями 120->20, 20->120, 120->100, 100->20, 20->100, 100->0, 0->20, 20->0.

Тест 100->0 и 20->0 пропускается, т.к. в режиме HLT11 по нужным адресам не ОЗУ СМК, но без аппаратной доработки оно всё равно портится, порченный сегмент просто не подключается в этом режиме.

С новой прошивкой и аппаратной доработкой ошибки должны проявляться только в 100->20 и 0->20, т.к. таковы режимы работы контроллера.

С новой прошивкой и без аппаратной доработки ошибки должны проявляться в 100->20, 20->100 и 0->20. В режиме 120->100 ошибка ошибка появляется, но не отлавливается, т.к. в этих режимах расположение сегментов памяти одинаковое. Тест эту ошибку просто не может увидеть, и исправить это просто невозможно, т.к. для этого надо переключиться в режим 20, а это даст наведённую ошибку на контроллере без аппаратной доработки. Поэтому результат будет недостоверен. То же самое для переключения 100->120 для контроллера со старой прошивкой без аппаратной доработки.

Со старой прошивкой и аппаратной доработкой ошибки должны проявляться в 120->20, 100->20 и 0->20.

Со старой прошивкой и без аппаратной доработки ошибки должны проявляться во всех режимах, но не во всех могут отлавливаться. По причинам, описанным немного ранее.

В архиве исходник, скомпилированный файл в формате .bin и просто сам по себе, адрес запуска 01000.

Сделанные изменения по сравнению с тестом v4.3.

  • Тест режимов перенесён вперёд, перед тестом памяти.
  • Добавлен тест переключения страниц в проблемных режимах.
  • После тестов режимов добавлена пауза с надписью "нажмите любую клавишу", чтобы не пропустить результаты работы.
  • Добавлено определение версии прошивки 555РТ5.
  • v4.61 - Иногда, в нештатных случаях могли возникнуть ситуации, когда регистр 177130 на БК-0010 накладывался на ПЗУ бейсика и это приводило к неправильной работе теста. Теперь это исправлено, возникающее прерывание по вектору 4 при записи в 177130 теперь игнорируется.


Тест v4.51

Дальнейшее развитие теста v4.41. Следующая версия теста контроллеров АльтПро с ДОЗУ 64-512КБ.
alt_test_v4.5.rar [16.83 KiB]
Скачиваний: 1105

В архиве исходник, скомпилированный файл в формате .bin и просто сам по себе, адрес запуска 01000.

Функционально аналогичен тесту v4.6, но с небольшим отличием.

Т.к. имеется свой знакогенератор, то есть возможность отслеживать заполняемость экрана, и как только экран будет заполнен информацией, выводится надпись "нажмите любую клавишу" и программа ожидает нажатия любой клавиши, кроме СТОП и управляющих естественно.

Т.к. версии v4.4 и v4.5 долго оставались в нерабочем состоянии, а тест переключения страниц был нужен, то тест v4.6 делался на основе v4.3 и был выпущен раньше, чем был доработан тест v4.4 и на его основе сделан тест v4.5, работающий аналогично тесту v4.6. Хотя есть ещё одно отличие. В синхротесте ошибочное значение в тестах v4.4 и v4.5 отличается от значения в тестах v4.3 и v4.6. Почему - непонятно.


Тест v4.41

Немного изменённая версия теста v4.3.
alt_test_v4.4.rar [16.74 KiB]
Скачиваний: 1116

В архиве исходник, скомпилированный файл в формате .bin и просто сам по себе, адрес запуска 01000.

Изменения.

  • Тест режимов перенесён вперёд, перед тестом памяти.
  • Добавлен свой знакогенератор, чтобы не зависеть от мониторов БК10 и БК11.
  • Добавлено определение версии прошивки 555РТ5.
  • v4.41 - попытка исправить ошибки скроллинга.

Функционально и логически ничем не отличается от теста v4.3.


Тест v4.3

Следующая версия теста контроллеров АльтПро с ДОЗУ 64-512КБ.
alt_test_v4.3.rar [13.6 KiB]
Скачиваний: 1114

Описание логики работы теста памяти ДОЗУ в спойлере ниже:

Развернуть/Свернуть
Описание логики работы теста памяти ДОЗУ тестов v4.3 и v4.4.


Общее замечание. Тест памяти оперирует 16 килобайтными половинками 32 килобайтной страницы памяти контроллера AltPro. Для этого, он подключает одну страницу дважды в двух режимах: 0160 и 060 для БК0010; и 0120 и 020 для БК0011.

Далее, под страницей памяти будем иметь в виду 16 кб половинку страницы памяти, подключаемую в одном из режимов.


Тест памяти разбит на 3 этапа
  1. Перебор всех 32 кодов подключения страниц независимо от количества памяти, и заполнение массива ошибок страниц. Если страница была подключена ранее, проверки на ошибки чтения-записи не производятся.

    В таблице отмечается факт повторного подключения, возникновения прерывания по вектору 4 при чтении и при записи, а так же результат байт-теста.

  2. Подсчёт доступного количества ОЗУ.

    При этом на экран вместе со счётчиком ОЗУ выводятся результаты проверки первого этапа, соответствующие той странице, на которой возникли ошибки:

    «стр. с кодом XXXX уже подключали с YYYY»,
    где XXXX - текущий код подключения страницы вместе с режимом,
    а YYYY - предыдущий код, с которым эта страница уже подключалась
    «write-halt» - если произошло прерывание по вектору 4 при записи.
    «read-halt» - если произошло прерывание по вектору 4 при чтении.
    «byte-test fail» - если байт-тест провален.

    Повторно подключенная страница не подсчитывается при подсчёте количества ОЗУ, в то время как страница с ошибками чтения-записи и байт-тестом - подсчитывается.

  3. Проверка на битые ячейки памяти.

    Проверяются все страницы кроме повторно подключаемых.

    Проверка производится в два этапа:

    • Этап 1: методом записи и последующего чтения битовой маски в каждую ячейку страницы.
    • Этап 2: методом заполнения всей страницы маской, и последующего чтения маски со всей страницы.

    Перед первым этапом, между этапами и после второго этапа все страницы памяти заполняются определённым значением. На каждом этапе, перед началом тестирования каждая страница проверяется на целостность заданного определённого значения. Если оно не совпадёт с заданным, то будет выведено сообщение:

    «XXXX - синхро ADDRESS:VALUE:ошибка»,что означает следующее: во время изменения данных в одной странице, изменились данные по адресу на этой странице, это свидетельствует о внутренних повреждениях чипа памяти.

    Если во время синхротеста возникнет ошибка чтения/записи, то выведется следующее сообщение:

    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:write-halt» или
    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:read-halt»,

    где BBBBBBBBBBBBBBBB - синхрокод, (число 04260 для v4.3 или 051400 для v4.4) в бинарной системе счисления.

    Во время проверки на экране отображаются: текущий код страницы вместе с режимом, битовая маска, а так же сбойные адреса и сам сбой при его наличии. И отображается адрес на котором произошла ошибка чтения и/или записи, информацию о которой можно было видеть при подсчёте количества ОЗУ:

    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:EEEEEEEEEEEEEEEE» или
    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:write-halt» или
    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:read-halt»,

    где XXXX - текущий код подключения страницы вместе с режимом,
    BBBBBBBBBBBBBBBB - текущая битовая маска,
    ADDRESS - адрес, где произошёл сбой,
    EEEEEEEEEEEEEEEE - сбойное значение,
    write-halt - означает, что произошло прерывание по вектору 4 при записи,
    read-halt - означает, что произошло прерывание по вектору 4 при чтении.

    Проверку страницы можно пропустить, нажав почти любую клавишу (кроме СТОП, СУ, АР2, ЗАГЛ, СТР и Шифт). Чтобы одним махом не напропускать лишнего, тоже делается проверка, если вы нажали клавишу, и на экране ничего не происходит - отпустите её, процесс пойдёт дальше. Это полезно, если на странице сплошняком прут ошибки, на каждом адресе. Клавишу жать надо дважды - сперва чтобы пропустить синхротест, затем, чтобы пропустить тест памяти.

В архиве исходник, скомпилированный файл в формате .bin и просто сам по себе, адрес запуска 01000.

Сделанные изменения.

  • Изменён тест определения количества памяти.
  • Добавлен тест проверки на битые ячейки памяти.


Тест v4.1

Доработанный тест контроллеров АльтПро с ДОЗУ 64-512КБ:
alt_test_v4.1.rar [11.82 KiB]
Скачиваний: 1097

Описание логики работы теста памяти ДОЗУ в спойлере:

Развернуть/Свернуть
Описание логики работы теста памяти ДОЗУ теста v4.1.


Общее замечание. Тест памяти оперирует 16 килобайтными половинками 32 килобайтной страницы памяти контроллера AltPro. Для этого, он подключает одну страницу дважды в двух режимах: 0160 и 060 для БК0010; и 0120 и 020 для БК0011.

Далее, под страницей памяти будем иметь в виду 16 кб половинку страницы памяти, подключаемую в одном из режимов.

  1. Подготовительный этап.

    На данном этапе происходит последовательный перебор всех возможных кодов подключения страниц, и попытка подключения страниц памяти.

    • Первым делом проверяется, не подключалась ли данная страница раньше, если подключалась, то дальнейшие проверки не нужны, делается переход к следующей.

      Этот факт отмечается на экране сообщением:

      «Код: XXXX - уже подключали с кодом YYYY»,
      где XXXX - текущий код подключения страницы вместе с режимом,
      а YYYY - предыдущий код, с которым эта страница уже подключалась

    • Затем идёт проверка на доступность страницы по чтению-записи. При возникновении прерывания при операции чтения-записи выводится сообщение:

      «Код: XXXX - сбой подключения страницы.»,
      где XXXX - текущий код подключения страницы вместе с режимом.

      И дальнейшее тестирование страницы прекращается, происходит переход к следующей.

    • Затем ставится метка, что эту страницу уже подключали и делается переход к следующей.

      Во время работы заполняется таблица состояний, в которой отмечается, что либо страница в порядке, либо что-то произошло из вышеописанного.

  2. Подсчёт количества памяти и тестирование на битые ячейки.

    На данном этапе происходит последовательный перебор всех возможных кодов подключения страниц, и попытка подключения страниц памяти.

    • Проверяется, подсчитали ли и не тестировали ли уже данную страницу. Если таки да, то заканчиваем проверку и подсчёт. Таким образом, тест заканчивает свою работу как только встретит первую же повторно подключенную страницу, ну или же коды закончатся.

    • Затем проводится тест на битые ячейки методом арифметических операций над содержимым ячейки, если при этом произойдёт ошибка чтения-записи, то дальнейший тест ячеек памяти прерывается.

    • Затем производится проверка на возможность байтовых операций с памятью.

    Возможны следующие варианты ошибок:

    «Error I» - встретилась битая ячейка памяти.

    «Error H» - ошибка чтения-записи ячейки.

    «Error .» - ошибка байтовой операции.

В архиве исходник, скомпилированный файл в формате .bin и просто сам по себе, адрес запуска 01000.

Особенности работы.

  • Тест памяти определяет только её количество, и корректность байтового доступа.
  • Тест режимов работает и на БК-0010(01), и на БК-0011М, вывод результатов теста режимов сделан более человекопонятным.
  • Определяется тип контроллера по признаку в слове 0167776.


Тест v3.7

Оригинальный тест контроллеров АльтПро с ДОЗУ 64-256КБ:
alt_test_v3.7.rar [7.77 KiB]
Скачиваний: 1095

В архиве исходник, скомпилированный файл в формате .bin и просто сам по себе, адрес запуска 04000.

Особенности работы.

  • Тест памяти определяет только её количество, и корректность байтового доступа.
  • Тест режимов работает только на БК-0010(01).

Образ дискеты, на которой есть все эти тесты вместе, и не только:
alttests.rar [202.96 KiB]
Скачиваний: 1110

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/