PDA

Просмотр полной версии : Простой тест стабильности шины данных в момент подтверждения прерывания



Spectramine
20.11.2017, 01:30
Написал простой тест проверки стабильность шины данных в момент подтверждения прерывания на фоне переключения страниц ОЗУ: 62959


Если шина данных стабильно = #FF на момент прерывания, тест работает бесконечно, выводя в верхней трети экрана произвольные атрибуты, и мигая черно/белым в остальной части экрана. Если шина данных нестабильна, тест, если он был запущен после USR 0, выйдет в бейсик с сообщением DATA BUS ERROR, если из меню 128, сбросится. В процессе работы тест постоянно переключает страницы ОЗУ, и копирует 256 байтов из ПЗУ в текущую верхнюю страницу.

upd: Тест можно запускать и на 48к моделях - если тест "висит" без каких-либо признаков жизни, шина данных в порядке, если выходит в бейсик с сообщением, шина нестабильна.

upd: Тест не вполне подойдет для машин с более точной дешифрацией порта #7FFD, в частности, для Скорпиона - он будет работать, но без переключения страниц и видеоэффектов, просто будет висеть, как и на 48к моделях. Но если шина данных нестабильна и без переключений страниц, тест на Скорпионе закончится заполнением экрана упорядоченным фиолетовым "матрасом".

upd. Для +2А/+3 он не подойдет вообще.

Листинг ассемблера привожу.

org #6000

// иниц. IM2
DI
LD (SAVESP),SP
LD HL, #5B00
LD A,H
L1 LD (HL),#60
INC HL
BIT 2,H
JR Z,L1
LD (HL),#61
LD I,A
IM 2
EI

// основной бесконечный цикл
L3 XOR A
LD H,A
LD L,A
L2 OUT (#FD),A
LD DE,#D800
LD BC,256
LDIR
INC A
CP 32
JR NZ,L2
JR L3

// обработка некорректного прерывания - выход в бейсик 48
ORG #6060
LD SP,0
SAVESP EQU $-2
LD BC,#7FFD
LD A,#10
OUT (C),A
IM 1
EI
RET

// обработка корректного прерывания
ORG #6160
EI
RET

- - - Добавлено - - -

Portos13 запустил этот тест на своей машине, и у него он выдал "DATA BUS ERROR". Моё предположение, из-за чего у него не работает дема EyeAche2, оказалось верным. Возможно, тест будет полезен кому-то ещё.

Тест также полезен в том плане, что он более полно тестирует железо по сравнению с существующими тестами на ту же тему - т.к. проверка стабильности шины данных происходит на фоне переключения страниц. В частности, обычные тесты стабильности шины у Portos13 отрабатывали без вопросов, включая тест INT`a от Ковалевского (http://zx-pk.ru/threads/16957-test-int-a-ot-kovalevskogo.html?p=420786&viewfull=1#post420786)

goodboy
20.11.2017, 12:36
Portos13 запустил этот тест на своей машине, и у него он выдал "DATA BUS ERROR". Моё предположение, из-за чего у него не работает дема EyeAche2, оказалось верным.
странно, когда дема начинается вектор берётся строго из #92FF , полной таблицы нет
(на прерываниях висит переключение страниц для вызова плейера)
..................
(извини, уже понял что дему ты частично изучил)

- - - Добавлено - - -


Если шина данных стабильно = #FF на момент прерывания, тест работает бесконечно, выводя в верхней трети экрана произвольные атрибуты, и мигая черно/белым в остальной части экрана.

проверил на своём реале (старый пентагон из 90х) - стабильно мерцает уже минут 5

Spectramine
20.11.2017, 13:59
странно, когда дема начинается вектор берётся строго из #92FF , полной таблицы нет
(на прерываниях висит переключение страниц для вызова плейера)
..................
(извини, уже понял что дему ты частично изучил)

Да, я знаю. Дело в том, что у Protos13 шина данных не постоянно нестабильна, она засоряется после определённых переключений страниц памяти. Тест Ковалевского у него работал 18 минут без проблем. Я смотрел код демы, ничего там особенного не нашел, кроме переключения страниц через упрощенную адресацию порта, и 2хбайтного вектора прерываний. Предположил, что определённое переключение влияет на шину, проверил этим тестом - действительно.


проверил на своём реале (старый пентагон из 90х) - стабильно мерцает уже минут 5 Ну вот, проблем нет - тест не вылетает.

SoftFelix
20.11.2017, 15:24
upd: Тест не вполне подойдет для машин с более точной дешифрацией порта #7FFD, в частности, для Скорпиона - он будет работать, но без переключения страниц и видеоэффектов, просто будет висеть, как и на 48к моделях.
Шёл 21-ый век... :v2_dizzy_facepalm: А что там мешает вставить LD BC,#7FFD?

В частности, обычные тесты стабильности шины у Portos13 отрабатывали без вопросов, включая тест INT`a от Ковалевского
Только про него хотел спросить. У меня КАЙ, он почти Скорп. Сделай, плиз, всеядный тест.

p.s. А кто в курсе, почему TEST v4.30 ругается на нестабильную шину в TR-DOS'е? В частности, на КАЕ.

Spectramine
20.11.2017, 16:03
Шёл 21-ый век... :v2_dizzy_facepalm: А что там мешает вставить LD BC,#7FFD?
Там смысл был в том, чтобы проверить переключение на упрощенной дешифрации порта, как в демке EyeAche2.


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