Вход

Просмотр полной версии : тестПЗУ



rasmer
18.04.2008, 20:46
БОЛЬШАЯ ПРОСЬБА: накидать сюда всяких разных других тестовых пзу....

На данный момент поддержаны следующие расширения памяти:
Spectrum 128
Scorpion 256 (Спасибо SamStyle)

АКТУАЛЬНУЮ ВЕРСИЮ(0.24 от 23.04.2008) КАЧАТЬ ТУТ:

scooby-do
18.04.2008, 21:34
Вроде ничего так, только с цветами косяк вышел))

aniSKY
18.04.2008, 21:40
в скринтесте на горизонтальных цветных полосках надписи ГРИН и МАГЕНТА как бы местами попутаны - опячатка наверно )

я не первый =)

rasmer
18.04.2008, 21:45
а... нуда.... исправлю....
но я всётаки просил всётаки больше предложений и общих оценок....

пысы - исправил.... версию с исправлеными арфаграфичискими ашыпками и ачипятками найдете в посте под номером "первый"

scooby-do
18.04.2008, 21:50
rasmer,
ну это так замечания по косякам..

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

rasmer
18.04.2008, 21:51
чрв мне кучу советов надавал/забыл я их уже правда/... но хотелось бы и ещё койчаво у ола уточнить:
КАКИЕ именно тесты проводить с памятью - подробное описалово плиззз....

ZEK
18.04.2008, 23:11
подробное описалово плиззз....
Ну то что он работать должен не юзая память понятно..

а так вроде стандартно
1. обрывы шины данны (по физическим чипам)
2. обрывы по адресам (тож по физическим чипам)
3. коротыши адресов/данных
4. визуальные тесты, что бы было ясно что из памяти все правильно на экран попадает
5. ну и само собой сыплящуюся память

это так навскидку, над каждым пунктом думаю можно долго и нудно спорить

rasmer
18.04.2008, 23:47
Ну то что он работать должен не юзая память понятно..

а так вроде стандартно
1. обрывы шины данны (по физическим чипам)
2. обрывы по адресам (тож по физическим чипам)
3. коротыши адресов/данных
4. визуальные тесты, что бы было ясно что из памяти все правильно на экран попадает
5. ну и само собой сыплящуюся память

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

Ewgeny7
19.04.2008, 10:55
Пока что прилеплю эту тему "сверху".
Тест-ПЗУ ценная штука.
Отладишь- пущу в "свободное плавание"

rasmer
19.04.2008, 20:29
эт канешно хорошо... но вот видимо по отсутствию эрекции у ола - никому оно нинадо....

Добавлено через 7 минут
и ещё вопрос - для 128й пзу или для 48й компилировать? разница конечно в один байт, а что поделать :)
Микка с ЧРВ советуют делать обе версии... Великсофт просит ещё и РАМ версию компилить... :)

scooby-do
19.04.2008, 20:44
rasmer,
да все гуд, только, пока видно никто ничего предложить не может. А тест пзу нужна!

balu_dark
19.04.2008, 22:09
ну насколько помню 2 теста ОЗУ есть такие - вся память заполняется в первом тесте байтом 55 а в другом АА это взаимо инверсное число потом после паузы в полсекунды вся память сверяется с константой. тэст на динамику проходился со вписыванием в ячейку памяти числа и потом с определенным интервалом оно сдвигалось командой кругового сдвига и проверялось из памяти. вспомню больше - напишу.

ram_scan
20.04.2008, 15:15
Самый правильный тест.

1) память заполняется псевдослучайной последовательностью.
2) Память читается, при этом последовательность генерируется заново (та же самая), значения сравниваются.

В принципе достаточно одного прохода даже. Одинаковыми значениями заполнять не надо, толку мало. Я за свою жись не разу не видел микросхемы с одной битой ячейкой с одным не прописывающимся битом. Косячный или весь столбец, или вся строка, или оба вместе взятых. Многопроходный тест нужен на предмет контроля "рассыпания" памяти.

3) При нахождении несовпадающей ячейки тестируется эта ячейка отдельно на запись-чтение всех 256 значений, при этом проверяется как содержимое самой ячейки, так и содержимое остальной памяти на корректность данных методом 2. Таким образом можно выявить "слипание" адресов, и найти шину или микросхему где оно "слипается". При этом из-за невозможности держать где-то адреса сбойных ячеек, чтобы по результатам разных тестов выявить автоматически дефект тест придется повторять от младших адресов к старшим и обратно, чтобы глазками с дисплея можно было попытаться прочесть данные глазками и сопоставить мозгами.

Недостаток - тест работает ооооочень долго.
Достоинство - работает надежно.

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

rasmer
20.04.2008, 15:29
окей - тогда ктонить подскажет хороший генератор псевдослучайных чисел?
или inc a тоже прокатит?

Keeper
20.04.2008, 17:01
окей - тогда ктонить подскажет хороший генератор псевдослучайных чисел?
или inc a тоже прокатит?


1) память заполняется псевдослучайной последовательностью.
2) Память читается, при этом последовательность генерируется заново (та же самая), значения сравниваются.

Хороший генератор не нужен, пойдет какая нибудь простая XOR`ка плюс скажем делать восемь проходов и для каждого прохода циклически сдвигать псевдослучайное значение влево или вправо.

Допустим для адреса 0x4000 сгенерили значение 0x57.
Тогда для первого прохода значение 0x57 - 01010111b.
Для второго сдвигаем на один разряд вправо - 0xAD - 10101011b и т.д.

ram_scan
21.04.2008, 07:02
Не надо изобретать велосипед, хороших генераторов с достаточно большим периодом повторения описано много у Кнута в первом томе. Штука в том чтобы последовательность не зацикливалась.

rasmer
21.04.2008, 18:38
ни кнутов ни пряников нечитали.... читали только абеля... :)

ASDT
22.04.2008, 10:02
Неплохо добавить текстовый вывод 19200 на выход магнитофона ...
При дохлом видео весьма поможет...

GriV
22.04.2008, 12:31
Читаем ZX Review для ПСГЧ.
Там обычно берутся формулы:
имеется число - SEED
можно взять например SEED_new=A0+A1*SEED+A2*SEED^2+..., A0-AN - в принципе можно взять любые. Вся арифметика целочисленная, потому быстрая, и ограничиваются A3 и выше равными 0.
A=low(RND) - младшие биты отсекаем и пишем в память. Писать надо по 8 бит (по байту), хотя можно попробовать через стек фигарить по 16 бит за раз, через стек даже правильнее так как быстрее.
Само SEED очевидно не менее 16 бит.

Добавлено через 2 минуты
Сам тестер должен (поддерживаю) должен выводить диагностические звуки на бипку, дабы можно было вслепую определить в чём собака порыта. Будь памяти поболее можно было бы даже озвучить...

CHRV
22.04.2008, 15:50
Неплохо добавить текстовый вывод 19200 на выход магнитофона ...
При дохлом видео весьма поможет...

Лучше аудио на пищалку... как в ПЦ, типа три зеленых свистка

Mick
22.04.2008, 20:56
ну насколько помню 2 теста ОЗУ есть такие - вся память заполняется в первом тесте байтом 55 а в другом АА это взаимо инверсное число потом после паузы в полсекунды вся память сверяется с константой. тэст на динамику проходился со вписыванием в ячейку памяти числа и потом с определенным интервалом оно сдвигалось командой кругового сдвига и проверялось из памяти. вспомню больше - напишу.


Вот для любителей протестировать память специально были придуманы алгоритмы. Я приведу часть книги "Справочник. Полупроводниковые БИС запоминающих устройств" 1986 - как раз про это сказано. Сильно не пинайте за скан - книга в мой сканер не хочет лезть :(

rasmer
23.04.2008, 18:42
фух.... вечер без инета непрошёл даром - привёл исходник к виду который нестыдно полказать людям....
такс... вставлен при запуске фэст-тест 48й памяти - проверяется каждый бит, бордюр светится номером бита... :) если прога зависла, значит при обработке этого бита произошёл сбой памяти...

теперь начал свою работу сам тест по сути(но пока только щёлкается страницами, и заносит значения которые показывает на экране...)

и самое главное - тест будет УНИВЕРСАЛЬНЫМ!!! но не прошивка, а появится возможность при компиляции при помощи выставления флагов получать нужное ПЗУ на выбор 48е или 128е, с необходимым набором функций, и под любую модель компутера... (пока поддержано спектрум 128 и скорпион 256)... Это произошло благодаря придуманному мной описателю последовательности - тоесть просто табличке которая указывает ПЗУшке какие действия необходимо произвести
к примеру:
1)установить номер порта,
2)вывести в порт такое-то число
3)установить другой порт -
4)в него вывести другое число,
5) сделать проверку 16384 байт с адреса 49152
и так далее

Wlodek
26.04.2008, 02:32
Идея использования цвета бордюра для индикации номера бита гениальна. Поздравляю и преклоняюсь. И как я до того же не додумался в 1993 году...

ZEK
26.04.2008, 21:00
Гы причем нада что бы если 4 бита то битых
то необходимо 4 полосы на бордюре,

а вот как показывать к примеру обрыв шины A2

или в какой из линеек памяти битый бит данных ?

Добавлено через 9 минут
Нада для тех кто ремонтируе/собирает сделать возможность выводить коды ишибок и даных на POST карту что ли, вывод на пару парочку семисегментных индикатороы кодов ошибок и данных


1. типа 1.1. (с точками что бы было видно что это код ошибки) - битыая шина данных в перво линейке памяти
2. номер первого битого бита (без точек)
3. номер второго битого бита
и т.д.

или
1. 2.1. битый бит адреса в первой линейке ОЗУ
2. номер первого бита
3. и т.д.

Ewgeny7
26.04.2008, 22:38
просьба модёров переименовать тему
???

rasmer
26.04.2008, 23:06
???ктото это сделал до тебя :)

Добавлено через 1 минуту

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

Добавлено через 2 минуты
ПЫСЫ - кстати люди добрые - мложет быть кто наделает описателей на другие моддели? а то я какие расширения знал - реализовал... :)

Ewgeny7
27.04.2008, 15:19
rasmer, а как насчет добавить тест памяти для Скорпион-1024?
Я таких тестов, вроде, пока и не видел...
Переключение верхних страниц через 6 и 7 биты #1FFD.

rasmer
27.04.2008, 18:30
rasmer, а как насчет добавить тест памяти для Скорпион-1024?
Я таких тестов, вроде, пока и не видел...
Переключение верхних страниц через 6 и 7 биты #1FFD.как оно примерно переключается я знаю.... имеет ли смысл?

Добавлено через 2 часа 29 минут
Вот как выглядит обработчик действий на основе макросов для Scorpion 256:
Кому что непонятно - спрашивайте - отвечу....
может быть ктонить для других компов составит обработчики?

IF ROM_MODE=128
PORT_SET #1FFD
JUST_OUT #00
PORT_SET #7FFD
PAGE_TEST #10,0
PAGE_TEST #11,1
PAGE_TEST #13,3
PAGE_TEST #14,4
PAGE_TEST #16,6
PAGE_TEST #17,7
PORT_SET #1FFD
JUST_OUT #10
PORT_SET #7FFD
PAGE_TEST #10,8
PAGE_TEST #11,9
PAGE_TEST #12,10
PAGE_TEST #13,11
PAGE_TEST #14,12
PAGE_TEST #15,13
PAGE_TEST #16,14
PAGE_TEST #17,15
PORT_SET #1FFD
JUST_OUT #00
DB #FF
ENDIF
IF ROM_MODE=48
PORT_SET #1FFD
JUST_OUT #00
PORT_SET #7FFD
PAGE_TEST #00,0
PAGE_TEST #01,1
PAGE_TEST #03,3
PAGE_TEST #04,4
PAGE_TEST #06,6
PAGE_TEST #07,7
PORT_SET #1FFD
JUST_OUT #10
PORT_SET #7FFD
PAGE_TEST #00,8
PAGE_TEST #01,9
PAGE_TEST #02,10
PAGE_TEST #03,11
PAGE_TEST #04,12
PAGE_TEST #05,13
PAGE_TEST #06,14
PAGE_TEST #07,15
PORT_SET #1FFD
JUST_OUT #00
DB #FF
ENDIF

Ewgeny7
28.04.2008, 00:08
имеет ли смысл?
Вопрос риторический - глянь на мою подпись :)

GriV
28.04.2008, 11:06
2rasmer> форум (http://zx.pk.ru/showthread.php?t=452&highlight=7ffd+1ffd) тебе в помощь...

Ewgeny7
04.05.2008, 22:26
Тема "зажила своей жизнью". Снимаю "важно".

lisica
25.04.2009, 11:13
Вопрос. На эмулях тест работает. Прописал в ПЗУ. Работает, но приходится по памяти кнопки жать. Не видно букв, никаких. Атрибуты есть, а букв нету.

rasmer
25.04.2009, 16:18
а что в твоих словах вопрос а что утверждение, юный подаван?

lisica
25.04.2009, 17:13
Пардон. Почему так произошло и как сделать, чтобы буквы видно было?
Вот сделал фотки. Правда в ч.б. виде (палкодера ещё нету). Комп рабочий 100%.

balu_dark
29.04.2009, 10:59
а какой у тебя комп тестится и как смешивал RGB в монохром? судя по фоткам у тебя нет еще одного цвета при смешении. тоесть 4 градации яркости - это только 2 бита цвета! как минимум нет еще одного цвета и брайт сигнала

rasmer
29.04.2009, 20:49
если нужна ещё какаянить табличка - скажите... я добавлю...

lisica
30.04.2009, 08:02
а какой у тебя комп тестится и как смешивал RGB в монохром? судя по фоткам у тебя нет еще одного цвета при смешении. тоесть 4 градации яркости - это только 2 бита цвета! как минимум нет еще одного цвета и брайт сигнала

Дело в том, что я не комп проверяю, я проверяю тестовое ПЗУ на 100% рабочем компе. Единственное, что там действительно нет брайт сигнала,- я его собственноручно отцепил ле этак 10 назад. (Он мне в игре "Jetpak" мешал).

Кстати, в тесте, сначала, когда идёт проверка 48 и моргает бордюр,- то на экране меняются вертикальные полосы (побитно), то их видно.

balu_dark
30.04.2009, 21:50
так причем тут рабочий или нерабочий комп? я спрашиваю - как смешивал цвета ибо на фотке монохром. а надписи походу сделаны цветом который не подключен у тебя к смесителю - раз на эмуле пашет ок а на компе нет.
схемку нарисуй прям от руки в PAINTе.

пс Если ты проверяеш робик свой и он у тебя 128м сделан - нажми пробел и заресеть комп и не отпускай пробел до запуска встроенного теста цветов в 128к. потом приаттач тут фотку этого всего безобразия. возможно появилась идея чего нет букв (но это только если ты на Робике его испытывеш)

lisica
02.05.2009, 01:25
а надписи походу сделаны цветом который не подключен у тебя к смесителю - раз на эмуле пашет ок а на компе нет.
Надписи сделаны белым цветом (в эмуле видно).


схемку нарисуй прям от руки в PAINTе.
Схему чего?


пс Если ты проверяеш робик свой и он у тебя 128м сделан - нажми пробел и заресеть комп и не отпускай пробел до запуска встроенного теста цветов в 128к. потом приаттач тут фотку этого всего безобразия. возможно появилась идея чего нет букв (но это только если ты на Робике его испытывеш)
Вот как раз на нём, родимом и испытываю этот тест.
Вот новые фотки...

Заоодно сделал фотки того, что он выдаёт при обычной работе.

balu_dark
02.05.2009, 16:51
Схему чего?


ну откуда у народа - тяга к вырыванию слов из контекста а потом к задаванию по этому поводу вопросов ?
вот полный вопрос :
я спрашиваю - как смешивал цвета ибо на фотке монохром. схемку нарисуй прям от руки в PAINTе.
что в принципе означает - спек выдает цветной сигнал в виде 3х составляющих цветовых сигналов R,G и B для вывода на монохромный телевизор(или монитор) необходимо замешать все 3 сигнала( как правило через резисторы) для получения 8ми градаций серого( брайт не берем в счет - ты его отключил). на фотках я вижу только 4ре градации серого что говорит либо об отсутствии сигнала одного из цветов на смесителе либо о неправильном подборе резисторов.

бррр - замахался писать. итак после лирики - ВОПРОС .
Как ты смешивал цвета? схему нарисуеш или еще раз обьяснять мне придется - что я спрашиваю?
вариантом просто может быть что цвета сливаются у тебя.
специально пересмотрел код теста - мои предположения что он рисует в теневой озу - оказались ошибочны . тоесть вариант с хардварным глюком нашего робика - отпал( хотя не знаю - может ты чего менял в схеме обращения к видео ЗУ)

lisica
02.05.2009, 18:14
Хорошо было бы код оттрасить на самом робкие. А цвета там смешиваются подстроечниками и как их не крути, на экране букв нет. Цветовые сигналы при этом на выходе присутствуют. Мне кажется, это все таки конфликт программы и конкретного железа.
Кстати вот кусок схемы смешивания.

lisica
02.05.2009, 20:00
Только что отключил память выше 128:- тоже самое, если приглядеться то градации все присутствуют.

lisica
03.05.2009, 23:53
Ура! Разобрался! Работает!
При перезаписи с писюка на робик, куда то подевались старшие 8 кб. Забито все нулями было. А там знакогенератор. Извените за наезды, сам виноват и наказан, (купил пиво).
Кстати, закинте, плиз, фото градаций яркости, как оно должно быть.

fan
04.05.2009, 12:49
Кстати, закинте, плиз, фото градаций яркости, как оно должно быть.
У меня на одном компе так - http://sblive.narod.ru/ZX-Spectrum/DUET/DUETCompositeMONO.jpg
Это со встроенного теста ZX-Spectrum 128к (держать caps shift & space и нажать сброс).

В аттаче цветная картинка из эмулятора (для сравнения чтоб было понятно где какие оттенки).

balu_dark
06.05.2009, 00:34
Ура! Разобрался! Работает!
Извените за наезды, сам виноват и наказан, (купил пиво).


Брррррррррррр.
Наказан - или награжден пивом????????
ты его (пиво) кому купил????????? ;)

Добавлено через 14 минут

Ура! Разобрался! Работает!
При перезаписи с писюка на робик, куда то подевались старшие 8 кб. Забито все нулями было. А там знакогенератор. Извените за наезды, сам виноват и наказан, (купил пиво).
Кстати, закинте, плиз, фото градаций яркости, как оно должно быть.

по яркости - могу ошибаться но : синий самый темный - зеленый самый светлый.
грубо - каждый из них соеденяещ через резистор с номиналом в Н раз больше. например R- 2K G - 1k B - 3k спаиваеш между собой, подаеш килоома через 2 синхросмесь и потом все это даеш на + электролита 47мкФ*16В а с него - даеш все в телег.
я просто сейчас вряд ли найду статейку - как правильно мешать.
идея одна - пофиг на цвета в конечном итоге но чтобы при выводе цветов от 0 до 7 - у тебя на телеке была дорожка с увеличивающимися яркостями и четко была видна граница разделения двух соседних цветов.

lisica
06.05.2009, 08:51
по яркости - могу ошибаться но : синий самый темный - зеленый самый светлый
Загрузил картинку с теста в фотошоп, перевёл в градации яркости. Зелёный оказался самым темным из светлых. Даже переставил его с малиновым, а шоп всё равно определил его так как первый раз. Вобщем отрегулировал (на картинке).

Наказан - или награжден пивом????????

Получается, что наказан до сих пор стоит в холодильнике.

balu_dark
06.05.2009, 12:10
добавь еще схемку - элемент 3ИЛИ+2И (схему рисовать лень) на 3 входа ИЛИ подай RGB выход дай на один из входов И на второй вход И дай сигнал брайт а выход И заведи на диоды которые у тебя брайт на схеме делают - получиш 16 цветов и нормально сможеш играть в игрушки где раньше раздражали светлые квадраты.