БОЛЬШАЯ ПРОСЬБА: накидать сюда всяких разных других тестовых пзу....
На данный момент поддержаны следующие расширения памяти:
Spectrum 128
Scorpion 256 (Спасибо SamStyle)
АКТУАЛЬНУЮ ВЕРСИЮ(0.24 от 23.04.2008) КАЧАТЬ ТУТ:
Вид для печати
БОЛЬШАЯ ПРОСЬБА: накидать сюда всяких разных других тестовых пзу....
На данный момент поддержаны следующие расширения памяти:
Spectrum 128
Scorpion 256 (Спасибо SamStyle)
АКТУАЛЬНУЮ ВЕРСИЮ(0.24 от 23.04.2008) КАЧАТЬ ТУТ:
Вроде ничего так, только с цветами косяк вышел))
в скринтесте на горизонтальных цветных полосках надписи ГРИН и МАГЕНТА как бы местами попутаны - опячатка наверно )
я не первый =)
а... нуда.... исправлю....
но я всётаки просил всётаки больше предложений и общих оценок....
пысы - исправил.... версию с исправлеными арфаграфичискими ашыпками и ачипятками найдете в посте под номером "первый"
rasmer,
ну это так замечания по косякам..
мну кажеться что тест оперативки самый значимый.
потом, тест вг93 не помешал бы.
чрв мне кучу советов надавал/забыл я их уже правда/... но хотелось бы и ещё койчаво у ола уточнить:
КАКИЕ именно тесты проводить с памятью - подробное описалово плиззз....
Ну то что он работать должен не юзая память понятно..
а так вроде стандартно
1. обрывы шины данны (по физическим чипам)
2. обрывы по адресам (тож по физическим чипам)
3. коротыши адресов/данных
4. визуальные тесты, что бы было ясно что из памяти все правильно на экран попадает
5. ну и само собой сыплящуюся память
это так навскидку, над каждым пунктом думаю можно долго и нудно спорить
Пока что прилеплю эту тему "сверху".
Тест-ПЗУ ценная штука.
Отладишь- пущу в "свободное плавание"
эт канешно хорошо... но вот видимо по отсутствию эрекции у ола - никому оно нинадо....
Добавлено через 7 минут
и ещё вопрос - для 128й пзу или для 48й компилировать? разница конечно в один байт, а что поделать :)
Микка с ЧРВ советуют делать обе версии... Великсофт просит ещё и РАМ версию компилить... :)
rasmer,
да все гуд, только, пока видно никто ничего предложить не может. А тест пзу нужна!
ну насколько помню 2 теста ОЗУ есть такие - вся память заполняется в первом тесте байтом 55 а в другом АА это взаимо инверсное число потом после паузы в полсекунды вся память сверяется с константой. тэст на динамику проходился со вписыванием в ячейку памяти числа и потом с определенным интервалом оно сдвигалось командой кругового сдвига и проверялось из памяти. вспомню больше - напишу.
Самый правильный тест.
1) память заполняется псевдослучайной последовательностью.
2) Память читается, при этом последовательность генерируется заново (та же самая), значения сравниваются.
В принципе достаточно одного прохода даже. Одинаковыми значениями заполнять не надо, толку мало. Я за свою жись не разу не видел микросхемы с одной битой ячейкой с одным не прописывающимся битом. Косячный или весь столбец, или вся строка, или оба вместе взятых. Многопроходный тест нужен на предмет контроля "рассыпания" памяти.
3) При нахождении несовпадающей ячейки тестируется эта ячейка отдельно на запись-чтение всех 256 значений, при этом проверяется как содержимое самой ячейки, так и содержимое остальной памяти на корректность данных методом 2. Таким образом можно выявить "слипание" адресов, и найти шину или микросхему где оно "слипается". При этом из-за невозможности держать где-то адреса сбойных ячеек, чтобы по результатам разных тестов выявить автоматически дефект тест придется повторять от младших адресов к старшим и обратно, чтобы глазками с дисплея можно было попытаться прочесть данные глазками и сопоставить мозгами.
Недостаток - тест работает ооооочень долго.
Достоинство - работает надежно.
В принципе зная архитектуру машины можно написать специализированый тест, который будет работать швыдче. Но принцип тот-же.
окей - тогда ктонить подскажет хороший генератор псевдослучайных чисел?
или inc a тоже прокатит?
Хороший генератор не нужен, пойдет какая нибудь простая XOR`ка плюс скажем делать восемь проходов и для каждого прохода циклически сдвигать псевдослучайное значение влево или вправо.
Допустим для адреса 0x4000 сгенерили значение 0x57.
Тогда для первого прохода значение 0x57 - 01010111b.
Для второго сдвигаем на один разряд вправо - 0xAD - 10101011b и т.д.
Не надо изобретать велосипед, хороших генераторов с достаточно большим периодом повторения описано много у Кнута в первом томе. Штука в том чтобы последовательность не зацикливалась.
ни кнутов ни пряников нечитали.... читали только абеля... :)
Неплохо добавить текстовый вывод 19200 на выход магнитофона ...
При дохлом видео весьма поможет...
Читаем ZX Review для ПСГЧ.
Там обычно берутся формулы:
имеется число - SEED
можно взять например SEED_new=A0+A1*SEED+A2*SEED^2+..., A0-AN - в принципе можно взять любые. Вся арифметика целочисленная, потому быстрая, и ограничиваются A3 и выше равными 0.
A=low(RND) - младшие биты отсекаем и пишем в память. Писать надо по 8 бит (по байту), хотя можно попробовать через стек фигарить по 16 бит за раз, через стек даже правильнее так как быстрее.
Само SEED очевидно не менее 16 бит.
Добавлено через 2 минуты
Сам тестер должен (поддерживаю) должен выводить диагностические звуки на бипку, дабы можно было вслепую определить в чём собака порыта. Будь памяти поболее можно было бы даже озвучить...
фух.... вечер без инета непрошёл даром - привёл исходник к виду который нестыдно полказать людям....
такс... вставлен при запуске фэст-тест 48й памяти - проверяется каждый бит, бордюр светится номером бита... :) если прога зависла, значит при обработке этого бита произошёл сбой памяти...
теперь начал свою работу сам тест по сути(но пока только щёлкается страницами, и заносит значения которые показывает на экране...)
и самое главное - тест будет УНИВЕРСАЛЬНЫМ!!! но не прошивка, а появится возможность при компиляции при помощи выставления флагов получать нужное ПЗУ на выбор 48е или 128е, с необходимым набором функций, и под любую модель компутера... (пока поддержано спектрум 128 и скорпион 256)... Это произошло благодаря придуманному мной описателю последовательности - тоесть просто табличке которая указывает ПЗУшке какие действия необходимо произвести
к примеру:
1)установить номер порта,
2)вывести в порт такое-то число
3)установить другой порт -
4)в него вывести другое число,
5) сделать проверку 16384 байт с адреса 49152
и так далее
Идея использования цвета бордюра для индикации номера бита гениальна. Поздравляю и преклоняюсь. И как я до того же не додумался в 1993 году...
Гы причем нада что бы если 4 бита то битых
то необходимо 4 полосы на бордюре,
а вот как показывать к примеру обрыв шины A2
или в какой из линеек памяти битый бит данных ?
Добавлено через 9 минут
Нада для тех кто ремонтируе/собирает сделать возможность выводить коды ишибок и даных на POST карту что ли, вывод на пару парочку семисегментных индикатороы кодов ошибок и данных
1. типа 1.1. (с точками что бы было видно что это код ошибки) - битыая шина данных в перво линейке памяти
2. номер первого битого бита (без точек)
3. номер второго битого бита
и т.д.
или
1. 2.1. битый бит адреса в первой линейке ОЗУ
2. номер первого бита
3. и т.д.
ктото это сделал до тебя :)
Добавлено через 1 минуту
Ну зачем так сурово... можно просто опрос кейборда сделать чтобы продолжить...
Добавлено через 2 минуты
ПЫСЫ - кстати люди добрые - мложет быть кто наделает описателей на другие моддели? а то я какие расширения знал - реализовал... :)
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
2rasmer> форум тебе в помощь...
Тема "зажила своей жизнью". Снимаю "важно".
Вопрос. На эмулях тест работает. Прописал в ПЗУ. Работает, но приходится по памяти кнопки жать. Не видно букв, никаких. Атрибуты есть, а букв нету.
а что в твоих словах вопрос а что утверждение, юный подаван?
Пардон. Почему так произошло и как сделать, чтобы буквы видно было?
Вот сделал фотки. Правда в ч.б. виде (палкодера ещё нету). Комп рабочий 100%.
а какой у тебя комп тестится и как смешивал RGB в монохром? судя по фоткам у тебя нет еще одного цвета при смешении. тоесть 4 градации яркости - это только 2 бита цвета! как минимум нет еще одного цвета и брайт сигнала
если нужна ещё какаянить табличка - скажите... я добавлю...
Дело в том, что я не комп проверяю, я проверяю тестовое ПЗУ на 100% рабочем компе. Единственное, что там действительно нет брайт сигнала,- я его собственноручно отцепил ле этак 10 назад. (Он мне в игре "Jetpak" мешал).
Кстати, в тесте, сначала, когда идёт проверка 48 и моргает бордюр,- то на экране меняются вертикальные полосы (побитно), то их видно.
так причем тут рабочий или нерабочий комп? я спрашиваю - как смешивал цвета ибо на фотке монохром. а надписи походу сделаны цветом который не подключен у тебя к смесителю - раз на эмуле пашет ок а на компе нет.
схемку нарисуй прям от руки в PAINTе.
пс Если ты проверяеш робик свой и он у тебя 128м сделан - нажми пробел и заресеть комп и не отпускай пробел до запуска встроенного теста цветов в 128к. потом приаттач тут фотку этого всего безобразия. возможно появилась идея чего нет букв (но это только если ты на Робике его испытывеш)
ну откуда у народа - тяга к вырыванию слов из контекста а потом к задаванию по этому поводу вопросов ?
вот полный вопрос :что в принципе означает - спек выдает цветной сигнал в виде 3х составляющих цветовых сигналов R,G и B для вывода на монохромный телевизор(или монитор) необходимо замешать все 3 сигнала( как правило через резисторы) для получения 8ми градаций серого( брайт не берем в счет - ты его отключил). на фотках я вижу только 4ре градации серого что говорит либо об отсутствии сигнала одного из цветов на смесителе либо о неправильном подборе резисторов.Цитата:
я спрашиваю - как смешивал цвета ибо на фотке монохром. схемку нарисуй прям от руки в PAINTе.
бррр - замахался писать. итак после лирики - ВОПРОС .
Как ты смешивал цвета? схему нарисуеш или еще раз обьяснять мне придется - что я спрашиваю?
вариантом просто может быть что цвета сливаются у тебя.
специально пересмотрел код теста - мои предположения что он рисует в теневой озу - оказались ошибочны . тоесть вариант с хардварным глюком нашего робика - отпал( хотя не знаю - может ты чего менял в схеме обращения к видео ЗУ)