Тема: Тестовое ПЗУ для Apple ][
Существует ли тестовое ПЗУ для Apple ][? А то плата лежит неисправная, поднять бы надо...
Персональный компьютер "Агат" - технические беседы (является частью agatcomp.su / agatcomp.ru) Как зарегистрироваться?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
ПЭВМ "Агат" 7-9: Форум → Apple ][ → Тестовое ПЗУ для Apple ][
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Существует ли тестовое ПЗУ для Apple ][? А то плата лежит неисправная, поднять бы надо...
Раз теста ни у кого нет, почему Вы не попросите любителей программирующих для АГАТА написать хотя бы самый простой тест? Это простейшая задача отнимет у специалиста всего несколько минут.
Если программисты для АГАТА не помогут, так давайте сами напишем простейший тест. Это очень просто и сразу же позволит начать осваивать ассемблер. Напишем коллективно, если возникнут сложности, то программисты-любители для АГАТА помогут. Хотя, скорее всего Вы уже написали такой тест, поделитесь, это будет полезно, т.к сейчас и другие люди тоже заняты настройкой плат Apple-II.
Простейший, но вполне результативный тест сможет написать даже полнейший новичок в программировании, пролистав учебник по 6502, например, книги Левенталя или даже русскоязычного Морера.
Тест РК86 выводил результаты теста на ППА D14. Но в Apple-II нет ППА, на выходе которого можно было бы уровнями отображать дохлые разряды. Программно управляемой лампочки (типа РУСЛАТ в РК86) в Apple тоже нет. Хотя регистров на вывод имеется достаточно, но они однобитовые и их контроллировать придётся осцилографом, что не очень удобно. Потому проще сделать однобитовый тест, использовав для индикации гуделку.
Простейший тест ОЗУ 4116 состоит лишь из нескольких программных петель. В начале теста, чтобы показать, что процессор работает, выдаём однократный гудок. Затем программной петлёй заполняем ОЗУ в 16 кб кодом 0. После чего другой программной петлёй проверяем, что по биту D0 в ОЗУ 16 кб читается записанный туда 0. Затем тоже самое делаем с байтом FF, и убеждаемся, что по биту D0 читается 1. Если это так, то считаем ОЗУ исправным, выдаём два коротких гудка и зацикливаем процессор в вечной петле. Если же ОЗУ дохлое, то выдаём один длинный гудок и также зависаем.
Если есть хотя бы небольшой опыт в программировании для системы команд конкретного процессора, то подобный тест пишется за 5 минут. И даже такой полный чайник в программировании как я, заглядывая в учебник, в состоянии написать простейший тест за час. А если есть сомнения, то отладить тест можно в эмуляторе, хотя ошибка в столь простой программе маловероятна.
Более сложный тест может тестировать сразу 8 битов и использвать для индикации экран. Однако вывод на текстовый экран при хотя бы одном дохлом бите не сделать, потому это придётся делать на графический экран 280*192. Сам 8-ми разрядный тест почти такой же, только по обнаружении несовпадения считанного и записанного, в заранее очищенную экранную область выводится графический текст: "BAD BIT: x", где x номер первого несовпадающего разряда.
Такая программа уже намного сложнее, т.к содержит драйвер вывода на графический экран (для отладки уже необходим эмулятор). На случай, если сдохло слишком много разрядов, то индикацию дохлого разряда полезно дублировать количеством гудков. Ещё тест полезно дополнить процедурой подсчёта контрольной суммы ПЗУ по адресам D000...F7FF, т.к область F800...FFFF занята ПЗУ с самим тестом.
Конечно для полноценного тестирования ОЗУ нужны хитроумные алгоритмы, позволяющие выявить залипы адресов внутри кристалла. Но обычно ОЗУ или цело или нет и простейшего теста на запись в ячейку 0 или 1 вполне достаточно. Впоследствии можно написать полноценный тест для тестирования всего основного ОЗУ в 48К и, работающий из ОЗУ, тест для Language Card.
Тест, не использующий ОЗУ и издающий звуковой сигнал, я уже написал и зашил в ПЗУ. В эмуляторе работает, как только заработает на реале, если будут проблемы с работой компьютера, буду расширять возможности. Думаю, следует действовать по принципу "хочешь сделать всё хорошо - делай сам". А если ждать от кого-то - работа никогда не будет сделана.
Конечно, это не значит, что я отказываюсь от сторонней помощи - напротив, я буду очень благодарен за неё и, думаю, это может, впоследствии, пригодиться ещё кому-нибудь.
А может кто-нибудь подсказать схему пошагивателя для Apple-II? При отладке систем на КР580 это всегда помогало в случае проблем на шинах.
Как раз подумал сделать пошагиватель. Тем более, что все микросхемы на панельках. Для начала можно попробовать просто подавать на вход процессора тактовые импульсы со схемы пошагивателя, аналогичной используемой для РК86. Правда, я не знаю, пока что, как внутренние регистры будут реагировать на такое - у некоторых процессоров есть нижняя граница частоты...
Как второй вариант - подключить вместо 6502 контроллер и тогда можно создавать какие угодно ситуации на шинах.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
ПЭВМ "Агат" 7-9: Форум → Apple ][ → Тестовое ПЗУ для Apple ][
Форум работает на PunBB, при поддержке Informer Technologies, Inc