From 22b68a0e8c2e71c87c5b5c2edfe61744442ef287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B8=D0=BC=D0=B0?= Date: Sun, 29 Dec 2024 04:59:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?/=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Описание теста 128 Андрея Хахонова --- TEST128_ver_1_1 (3).txt | 424 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 424 insertions(+) create mode 100644 TEST128_ver_1_1 (3).txt diff --git a/TEST128_ver_1_1 (3).txt b/TEST128_ver_1_1 (3).txt new file mode 100644 index 0000000..e894132 --- /dev/null +++ b/TEST128_ver_1_1 (3).txt @@ -0,0 +1,424 @@ + + ТЕСТ ОЗУ 128К + + ТЕСТ-128 v1.1 предназначен для проверки правильности функ- +ционирования персональных компьютеров, совместимых с компьютером +ZX-SPECTRUM-128 (а также различных его модификаций имеющих ОЗУ +объемом 128К), с помощью программных средств. + Для удобства использования тестовая программа записана в +микросхему ПЗУ. + + ТЕСТ-128 v1.1 ВКЛЮЧАЕТ В СЕБЯ ПРОВЕРКУ + СЛЕДУЮЩИХ ЭЛЕМЕНТОВ КОМПЬЮТЕРА: + + 1. Проверка правильности функционирования цветоформирующего ка- +нала и регистра цветов бордюра. + 2. Проверка правильности отображения на экране цветовых атрибу- +тов и соответствия адресов, формируемых видеоконтроллером, адре- +сам, формируемым процессором для области цветовых атрибутов эк- +рана, а также проверка правильности формирования видеоконтролле- +ром графической структуры экрана и соответствия адресов, форми- +руемых видеоконтроллером, адресам, формируемым процессором для +графической области экрана. + 3. Проверка исправности буфера чтения данных (из ОЗУ в процессор) + 4. Проверка функционирования канала звука и выхода сигнала для +записи на магнитофон. + 5. Проверка исправности буфера чтения данных из ОЗУ в процессор. + 6. Проверка порта конфигурации. + 7. Предварительная проверка исправности микросхем ОЗУ. + 8. Обнаружение сбоев, сложных ошибок в микросхемах ОЗУ с помощью +мощного псевдослучайного теста памяти, основанного на псев- +дослучайной последовательности. + + ОТЛИЧИТЕЛЬНЫЕ ОСОБЕННОСТИ ТЕСТА 128 v1.1 + + 1. Программа теста не использует стека и других ячеек ОЗУ +компьютера и может функционировать при полностью неисправном +ОЗУ. + 2. Отображение результатов диагностики на экран производится +таким образом, что результаты могут быть прочитаны при од- +ной-двух полностью неисправных микросхем ОЗУ. + 3. Все результаты диагностики выводятся на экран на русском +языке. + + ТРЕБОВАНИЯ + + Микросхема ТЕСТ-ПЗУ типа 573РФ2(5) устанавливается в па- +нельку так, чтобы 12 вывод ПЗУ 573РФ2(5) совпадал с 15 выводом +панельки. При этом необходимо отогнуть 21 и 24 выводы, соединить +их перемычкой и завести на +5V (28 вывод панельки). В случае ис- +пользования двух и более микросхем, ТЕСТ-ПЗУ устанавливается на +место младшей (0-й) микросхемы. + + ВНИМАНИЕ! + +ДЛЯ ПРАВИЛЬНОЙ РАБОТЫ ТЕСТА НЕОБХОДИМО, ЧТОБЫ ОТОГНУТЫЕ ВЫВОДЫ +НЕ КАСАЛИСЬ КОНТАКТОВ ПАНЕЛИ - В ПРОТИВНОМ СЛУЧАЕ ОТДЕЛЬНЫЕ ЭТА- +ПЫ ТЕСТА МОГУТ ВЫПОЛНЯТЬСЯ НЕПРАВИЛЬНО ИЛИ СОВСЕМ НЕ РАБОТАТЬ!!! + + ОБ УСТРОЙСТВЕ ZX-SPECTRUM-128 + + Компьютер ZX-SPECTRUM-128 имеет ОЗУ объёмом 128К, которое +разделено на 8 частей по 16 Килобайт и которые условно называют- +ся банками памяти, а также имеют номера от 0 до 7. Так как про- +цессор Z80 имеет адресное пространство только 64К, то нет воз- +можности разом подключить к процессору всю оперативную память. +Выход был найден следующим образом: представим себе адресное +пространство микропроцессора Z80, т.е. 64К разбитым на 4 сектора +по 16К каждый и пронумеруем из от 0 до 3. К каждому из 4-х сек- +торов подключены следующие устройства: в 0-м секторе - ПЗУ сис- +темы (в начальном состоянии, после сброса, это прошивка BASIC +128, в дальнейшем она может быть программным образом заменена +прошивкой BASIC 48 для совместимости с моделью ZX-SPECTRUM-48). +В первом секторе находится один из 16-ти килобайтных банков ОЗУ, +часть которого является памятью дисплея и отображается в область +экрана - в начальном состоянии это 5-й банк памяти, но в процес- +се работы он может быть заменён на 7-й. + Во втором секторе жёстко находится 2-й банк ОЗУ. В третий +сектор может быть подключён любой из 8-и банков ОЗУ, после сбро- +са туда подключён 0-й банк. + В системе имеется порт конфигурации, который доступен прог- +раммисту и имеет адрес #7FFD. С помощью записи в этот порт (ре- +гистр) мы можем менять конфигурацию системы - т.е. переключать +ПЗУ, банки ОЗУ и т.д. Регистр конфигурации имеет 8 разрядов. +Первые три (с 0 по 2-й) разряда определяют один из 8-ми банков +ОЗУ, подключенный в последний сектор адресного пространства про- +цессора. Третий определяет один из 2-х банков, который будет +подключён в первый сектор адресного пространства и отображён на +экран, 0 - подключён 5-й банк, 1 - подключён 7-й банк, 4-й раз- +ряд определяет ПЗУ: 0 - подключена прошивка BASIC 128, 1 - BASIC +128. Пятый разряд заведует блокировкой записи в регистр конфигу- +рации: 0 - запись разрешена, 1 - запись блокирована. Это необхо- +димо для работы в режиме ZX-SPECTRUM-48. + + + АДРЕС Z-80 СЕКТОР ПЗУ 32К + ---------------¬ --------------¬ + 0000-3FFF ¦ 16K ¦ ___¦0 в разряде 4--+BASIC 128 16K¦ + ¦ 0-й сектор ¦ ¦1 в разряде 4--+BASIC 48 16K¦ + +--------------+ L-------------- + 4000-7FFF ¦ 16K ¦ ___ ОЗУ 128К + ¦ 1-й сектор ¦ ¦1 в разряде 3--+7-й БАНК 16К ¦ + +--------------+ ¦ ¦6-й БАНК 16К ¦ + 8000-BFFF ¦ 16К ¦ ¦0 в разряде 3--+5-й БАНК 16К ¦ + ¦ 2-й сектор ¦ ¦4-й БАНК 16К ¦ + +--------------+ ¦3-й БАНК 16К ¦ + C000-FFFF ¦ 16К ¦--------------------¦2-й БАНК 16К ¦ + ¦ 3-й сектор ¦ любой из ¦1-й БАНК 16К ¦ + L--------------- 8-ми ¦0-й БАНК 16К ¦ + БАНКОВ ОЗУ L-------------- + 000 в разрядах 2 - 0 - 0-й БАНК + 001 ------------------ 1-й БАНК + ............................... + 111 ------------------ 7-й БАНК + + + ПУСК ТЕСТА В РАБОТУ + + Тест автоматически начинает свою работу при включении пита- +ния или после нажатия кнопки 'СБРОС' компьютера. При этом в те- +чении 1-2 секунд на бордюре появляются полосу всех цветов (от +чёрного до белого). Они должны либо стоять неподвижно, либо мед- +ленно перемещаться. Это полезно, во-первых, для проверки наличия +всех цветов на бордюре, а во-вторых, в качестве задержки между +этапами. Правда стоит заметить, что чёткие полосы мы будем ви- +деть не на всех вариантах ZX-Spectrum-128. Из-за различия в так- +товой частоте и реализации сигнала WAIT на некоторых машинах +вместо полос мельтешение цветов, хотя машины работали исправно. +Но во всяком случае на варианте, который создал Сергей Зонов на +базе своей улучшенной платы для ZX-Spectrum-48, цветные полосы +как приклеенные. + + ТЕСТ АТРИБУТОВ И ГРАФИКИ: + + Учитывая, что тест атрибутов (как и тест графики) необходим +только на начальном этапе отладки компьютера, мы, в отличии от +тестов SPECTRUM 48K, попадаем в него только в том случае, если +нажимаем клавишу SPACE/BREAK на клавиатуре компьютера перед +окончанием самой первой задержки. Причём клавиша также может +быть нажата и удерживаема заблаговременно. + Если компьютер находится на столь ранней стадии отладки, +что не имеет клавиатуры, тогда вместо нажатия клавиши +можно подать уровень логического 0 на вход порта клавиатуры D0 +шины данных системы. + Если вы нажали клавишу , после задержки, экран +начнёт медленно очищаться от цветовых атрибутов. При этом на +смену хаотически мигающим цв. знакоместам будут приходить знако- +места чёрно-белые, нормальной яркости и не мигающие (при этом +зона цветовых атрибутов ОЗУ с адреса #5800 по #5AFF будет запи- +сываться код #38). Заполнение области атрибутов происходит мед- +ленно, давая возможность проследить стр-ру экрана. Атрибуты +должны переписываться начиная с левого верхнего левого угла сле- +ва направо и сверху вниз по строкам - так, как мы читаем книгу. +Одновременно по бордюру должны бежать красно-голубые полосы, а +на выходах сигнала 'ЗВУК' и 'МАГНИТОФОН' должен присутствовать +сигнал 'МЕАНДР' (импульсы со скважностью 2 и частотой около +800Гц). + После очистки цветовых атрибутов на экране мы увидим хаоти- +чески расположенные чёрные точки на белом фоне. Затем начнётся +медленное заполнение области экрана байтами #FF, что воспринима- +ется на глаз, как рисование чёрных линий. При правильной стр-ре +экрана линии должны появляться по той же схеме, как и при заг- +рузке картинки на экран с магнитофона, т.е. сначала рисуется ли- +ния шириной в одну точку в самой верхней строке экрана; следую- +щая рисуется на 8 точек ниже неё; следующая ещё на 8 точек ниже; +и так 8 линий. Затем 9-я линия рисуется во второй строке, деся- +тая на 8 точек ниже 9-й, и т.д., пока верхняя часть экрана не +окажется полностью закрашенной в чёрный цвет, после чего начина- +ет закрашиваться вторая часть экрана, а за ней и нижняя треть +экрана. В конце концов весь экран должен оказаться закрашенным +чёрным цветом. Весь этот процесс сопровождается чёрно-белыми по- +лосами на бордюре и сигналом частотой 800Гц на выходах 'ЗВУК' и +'МАГНИТОФОН'. + Этот тест позволяет выявит такие неисправности как 'залипа- +ния' или обрывы адресных шин, ведущих от мультиплексоров к мик- +росхемам ОЗУ и от процессора или видеоконтроллера к мультиплек- +сорам, а также неисправность или неправильное включение самих +мультиплексоров или микросхем ОЗУ и т.д. + Скажем, если одновременно рисуется не одна линия, а две или +более, то эта неисправность линии адреса, выдаваемого видео- +контроллером в районе средних адресов. Если линия одновременно +начинает рисоваться в нескольких местах одной и той же строки, +это означает неисправность линии адреса видеоконтроллера в райо- +не младших адресов (A0-A4) и т.д. + Т.е. путём анализа видимой на экране картины рисования ли- +ний можно составить представление о характере неисправности. + Помимо проверки стр-ры экрана мы можем убедиться в способ- +ности ячеек ОЗУ, содержимое которых отображается на экране, за- +писывать и хранить единицы и нули, что немаловажно для чита- +бельности сообщений в следующих частях теста. + + ТЕСТ БУФЕРА ЧТЕНИЯ ДАННЫХ + + Для проверки буфера чтения данных из ОЗУ программа теста +производит запись в первую ячейку ОЗУ (адрес #4000), а затем +считывает записанный байт и сравнивает его с тем, который запи- +сался. Проверка производится всеми возможными комбинациями от +#00 до #FF. + Если все комбинации считаны правильно, то на экран будет +выдано следующее сообщение: + + ТЕСТ БУФЕРА + БУФЕР-НОРМА + + а при ошибке: ТЕСТ БУФЕРА + ОШИБКА + ЗАПИСАНО - 00100000 + СЧИТАНО - 00000000 + + Выдаются записанный и считанный байты в двоичном коде, что +позволяет быстро определить неисправность конкретного буфера +чтения данных. (При этом возможна как неисправность микросхемы +буфера, так и обрыв соответствующей линии данных, ведущей от бу- +фера к микросхеме ОЗУ или к процессору, а также полная нерабо- +тоспособность микросхемы ОЗУ соответствующего разряда шины дан- +ных. Однако в последнем случае эта неисправность может быть вы- +явлена простой перестановкой микросхем ОЗУ на плате и повторени- +ем теста.) + Если тест прошёл успешно, то после задержки программа пе- +рейдёт к тесту порта конфигурации, а если обнаружена ошибка, то +вышеуказанное сообщение будет сохранено на экране, причём бордюр +будет чёрным, а программа зависнет, так как, если неработоспосо- +бен буфер, то нет смысла продолжать тест. + + ТЕСТ ПОРТА КОНФИГУРАЦИИ + + Порт конфигурации, как говорилось выше, имеет адрес в сис- +теме #7FFD и предназначен для подключения различных банков памя- +ти в адресное пространство процессора. Во время теста мы записы- +ваем байты, отличающиеся на 1 в первую ячейку каждого из 8-и +банков, последовательно подключая их в старший сектор (для про- +цессора адрес первой ячейки любого подключенного банка - #C000). +Затем производится считывание этих байт и, если они совпали с +записанными, то байт записываемый в первую ячейку 0-го банка, +увеличивается на единицу и процесс повторяется до тех пор, пока +до нулевого банка не будут перебраны все комбинации от #00 до +#FF. Т.е. на первом проходе в 0-й банк пишется #00, в 1-й - #01, +во 2-й - #02,... , в 7-й #07. + На втором проходе в 0-й банк - #01, в 1-й - #02,... , в 7-й +- #08 и так далее до 255 прохода (#FF). + После этого порт конфигурации считается исправным и вы- +даётся сообщение: + ТЕСТ - ПОРТ КОНФИГУРАЦИИ + ПОРТ КОНФИГУРАЦИИ - НОРМА + + Если обнаружено несовпадение считанного с записанным бай- +том, то выдаётся сообщение об ошибке: + + ТЕСТ - ПОРТ КОНФИГУРАЦИИ + ОШИБКА + СЕКТОР - 3 ЗАПИСАНО - 00000000 + БАНК - 0 СЧИТАНО - 00000010 + + Так следует обратить внимание на следующие моменты: чтобы +проверить правильность начальной установки 0-го банка в послед- +ний сектор адресного пространства тестирующая программа записи +его в первую ячейку байта 00 не производит записи в порт конфи- +гурации никаких значений, а считает, что после сброса 0-й банк +уже установлен. Поэтому, если программа не может считать байт 00 +из 0-го банка, то причиной этого может оказаться неверная на- +чальная установка, хотя я не даю каких-либо возможных картин +возможных неисправностей, например такое же сообщение будет вы- +дано при постоянном 0 на выходе 1-го разряда порта конфигурации +или при замыкании выходов 0-го и 1-го разрядов. + При ошибке в данной части теста предстоит попытаться проа- +нализировать ситуацию и проверить схему на возможные неисправ- +ности. Например, в вышеприведённом примере следует попытатьтся +понять, почему при попытке чтения из 0-го банка мы получили +байт, который послали во 2-й банк. Ещё один момент: байты, запи- +санные в первые ячейки банков 2 и 5, мы пытаемся прочесть не +только из ячейки с номером #C000, но и из первых ячеек других +секторов. Для банка 2 - как по адресу C000, так и по адресу +8000; а для банка 5 - как по адресу C000, так и по адресу 4000. +При несовпадении записанного и считанного будет выведено сообще- +ние: + + для банка 2 - СЕКТОР - 2 для банка 5 - СЕКТОР - 1 + БАНК - 2 БАНК - 5 + + Это означает, что, видимо, вместо этих банков подключено +бог знает что. Естественно, чтобы тест прошёл успешно, необходи- +мо, чтобы первые ячейки ОЗУ были бы исправны, в противном случае +будет выдано сообщение об ошибке, хотя сам порт исправен. Выход +может быть найден перестановкой микросхем ОЗУ. + + ПРЕДВАРИТЕЛЬНЫЙ ТЕСТ ОЗУ + + Предварительный тест ОЗУ, несмотря на все его недостатки +(обнаружение не всех ошибок ОЗУ), проверяет адресные линии. Он +способен отличить ошибку адреса от ошибки данных, проверяет спо- +собность ячеек ОЗУ хранить '0' и '1', и главное, делает это +очень быстро. Это достигается записью на первом проходе всей об- +ласти ОЗУ кодовой последовательностью. + + 11011011 (#DB) + 10110110 (#B6) + 01101101 (#6D) + + После записи всей последовательности происходит считывание +получившихся кодовых последовательностей. Например мы записыва- +ли: + + АДРЕСА БАЙТЫ + ... A2 A1 A0 HEX + --------------------------- + ... 0 0 0 DB + ... 0 0 1 B6 + ... 0 1 0 6D + ... 0 1 1 DB + ... 1 0 0 B6 + ... 1 0 1 6D + ... 1 1 0 DB + ... 1 1 1 B6 + + Предположим, что у нас имелся обрыв линии адреса +'A2'(A2=0), тогда у нас получится следующая комбинация: + + АДРЕСА БАЙТЫ + ... A2 A1 A0 HEX + --------------------------- + ... 0 0 0 DB B6 + ... 0 0 1 B6 6D В эту область ОЗУ + ... 0 1 0 6D DB процессор запишет + ... 0 1 1 DB B6 контрольные коды дважды + ... * 0 0 ** + ... * 0 1 ** Эта область недоступна + ... * 1 0 ** процессору + ... * 1 1 ** + + При такой неисправности программа обнаружит отказ линии и +выдаст сообщение типа: + + ТЕСТ ОЗУ + ОШИБКА + АДРЕСА АДРЕС - C000 + СЕКТОР - 3 ЗАПИСАНО - 11011011 + БАНК - 0 СЧИТАНО - 10110110 + + Если же обнаружено несовпадение лишь одного бита в байте, +то это будет считаться отказом какой-либо из восьми микросхем +ОЗУ и будет выдано сообщение: + + ТЕСТ ОЗУ + ОШИБКА + РАЗРЯДА 2 АДРЕС - D843 + СЕКТОР - 3 ЗАПИСАНО - 11011011 + БАНК - 6 СЧИТАНО - 11011111 + + Что означает следующее: во время теста ОЗУ выявлена ошибка +микросхемы ОЗУ, соответствующая шине данных D2 процессора Z80. +Запись, а затем и чтение производилось из последней четверти ад- +ресного пространства процессора (из 3-го сектора с адреса C000 +по FFFF; следует заметить, что как в предварительном, так и в +бесконечном тестах ОЗУ эта информация служит скорее напоминани- +ем, по той причине, что чтение-запись производится только из +этого сектора т.е. 3). С помощью порта конфигурации в этот сек- +тор подключён 6-й и 16-и килобайтный банк из имеющихся с 0-го по +7-й (128К). Конкретный адрес ошибки - D843, по этому адресу был +записан 0, а считана 1. + Второй проход отличается от первого только другой последо- +вательностью записываемых в ОЗУ байт: + + 00100100 (#24) + 01001001 (#49) Выводимые при этом сообщения те же. + 10010010 (#92) + + Следует обратить внимание ещё на один момент. Во время опе- +раций записи и чтения, как в предварительном, так и в бесконеч- +ном тесте ОЗУ цвет бордюра даёт нам информацию о том, какой из +банков подключен - чёрный цвет - подключён 0-й банк, синий - 1-й +и т.д. Байт, который программа пишет в порт конфигурации, дубли- +руется в порте цветов бордюра. Во время теста ОЗУ можно видеть +как происходит заполнение 128к, а затем считывание; при этом в +обоих случаях цвет бордюра меняется от чёрного до белого. + Если же ОЗУ исправно, на экран выводится сообщение: + + ТЕСТ ОЗУ + ОЗУ - НОРМА + + После этого начинает выполняться мощный бесконечный тест +ОЗУ. Если найдена ошибка, то тест зависает и дальше не идёт. + Часто приходится сталкиваться с такой ситуацией: некто тес- +тировал ОЗУ в чужом компьютере и там оно работает хорошо, из +этого человек делает вывод, что оно обязательно должно также хо- +рошо работать и в его машине. А тест может выдавать ошибки то в +одной микросхеме ОЗУ, то в другой, то в третьей. Значит, делает +вывод неудачный творитель компьютера, дело в тесте, он работает +неправильно. Очевидно, тут дело, как правило, не в самих микрос- +хемах ОЗУ, а в плохом питании, отсутствии шунтирующих конденса- +торов, 'натянутых' временных диаграммах сигналов управления ОЗУ +(WR, RAS, CAS и адресных мультиплексоров). Поэтому, настраивая +плату со сбоями ОЗУ, следует попробовать следующее: + 1. Более тщательно посмотреть монтаж, промыть плату от ка- +нифоли, усилить и пропаять подозрительные печатные проводники в +районе установки микросхем ОЗУ, а также микросхем, вырабатываю- +щих управляющие сигналы и синхронизацию. + 2. Поставить шунтирующие конденсаторы рядом с микросхемами +ОЗУ (как керамику так и электролиты). + 3. Применить более быстродействующие ОЗУ (с меньшей буквой) +- если стояла Д - надо поставить Г, если Г - то В и т.д. + 4. Улучшить сигнал CLC процессора путём уменьшения резисто- +ра между этим сигналом и +5V. + 5. Попытаться, если в вашем типе компьютера есть подозрения +на то, что временные диаграммы 'натянуты', ускорить некоторые из +сигналов управления (резистор между сигналом и +5V), либо наобо- +рот, 'затянуть' резистор или конденсатор на 'землю'. Иногда, ес- +ли один и тот же сигнал используется как в качестве сигнала RAS, +так и в качестве сигнала управления мультиплексорами, то, чтобы +затянуть один из этих сигналов, оставив другой неизменным, можно +'врезать' резистор порядка 50-100 Ом и только после него ставить +конденсатор. + + МОЩНЫЙ БЕСКОНЕЧНЫЙ ТЕСТ ОЗУ + + Бесконечный тест ОЗУ предназначен как для выявления сбоев в +течении длительного времени, так и для выявления сложных ошибок, +которые не смог обнаружить предварительный тест. Бесконечный +тест генерирует псевдослучайную последовательность и пишет её в +память. Он будет бесконечно тестировать ОЗУ до тех пор, пока не +будет обнаружена ошибка. После этого будет выдана такая же диаг- +ностика, как и при предварительном тестировании ОЗУ. Рекоменду- +ется при обнаружении ошибки запускать тест несколько раз кнопкой +<СБРОС>. Если тест обнаруживает сбой не в одной, а в нескольких +(или всех микросхемах), то не спешите менять ОЗУ, а воспользуй- +тесь рекомендациями, приведёнными выше - видимо ОЗУ не виновато.