Простейшая микро-ЭВМ

         

В РАБОЧЕМ РЕЖИМЕ


Итак, ПМ-ЭВМ собрана, реаги­рует на нажатия клавиш, индикация загорается и гаснет, по-ви­димому, так, как нужно. Но это еще не значит, что ПМ-ЭВМ полностью проверена и функционирует правильно. Гарантиро­вать стопроцентную проверку вычислительной системы вообще невозможно, тем более с помощью имеющихся у читателя про­стейших средств. МП может неправильно выполнять некоторые операции и притом только для некоторых сочетаний кодов, микросхемы запоминающих устройств могут иметь неисправ­ные или ненадежные ячейки, искажающие некоторые сочетания кодов. Отдельные элементы ЭВМ могут работать в предельных режимах по нагрузке, по временным допускам, по питанию, по уровню помех и выдавать сбои при изменении внешних условий. Рано или поздно это выявится в процессе эксплуатации. Однако надлежаще проведенные испытания в начале эксплуатации по­зволят выявить значительную часть дефектов и устранить их. Первое, что необходимо сделать, - это проверить работоспо­собность ОЗУ. Простейший способ - записывать в ячейки ОЗУ с помощью клавиатуры различные коды, а затем последователь­но считывать их, проверяя совпадение. Такой метод очень трудо­емок, так как ПМ-ЭВМ имеет 1024 ячейки ОЗУ, к тому же не­которые ячейки, надежные в статике, в динамике могут выда­вать неверные коды. Приведенная ниже программа позволяет автоматически записать заданный код в произвольно заданную зону оперативной памяти. Программа записывается, начиная с ячейки ОЗУ с адресом 014Q OOOQ и занимает 24 ячейки. Зона памяти, в которую заносится код, может начинаться с ячейки 014Q 030Q. Этот адрес заносится в регистровую пару Н коман­дой LXIH. Адрес конца зоны заносится в регистровую пару D командой LXID. Устанавливаемый код задается вторым байтом команды MVIM адреса 014Q 007Q и 014Q 024Q. Проверку пра­вильности записи можно произвести вручную, последовательно просматривая память:

014000041                                 Ml: LXIH, 014Q 030Q

014001 030

014002014

014003021                                             LXI D, 017Q377Q


014 004 377

014005017

014006066                                 M2: MVIM, OOOQ

014 007 000

014010043                                             INXH

014011 174                                             MOV A, H

014012222                                             SUBD



014 013 302                                             JNZ M2

014014 006

014015  014

014016173                                             MOV A, E

014017225                                             SUBL

014 020 302                                             JNZ M2

014 021 006

014022014

014 023 066                                             MVI M, OOOQ

014 024 000

014025303                                             JMPM1

014 026 000

014027014

Путем незначительного усложнения программы можно авто­матизировать проверку правильности записи:

014 000 006                                             MVI B, OOOQ

014 001 000

014002041                                 Ml: LXI H, 014Q 055Q

014003055

014 004 014

014 005 021                                             LXI D, 020Q OOOQ

014 006 000

014 007 020

014010160                                 M2: MOV M, В

014011 170                                             MOV А, В

014012226                                             SUBM

014013302                                             JNZM4

014014  035

014015  014

014016043                                   МЗ: INX H

014017174                                               MOV A, H

014 020 222                                                SUB D

014021302                                               JNZM2

014022010

014023  014

014024  173                                                MOV A, E

014025225                                                SUB L

014026302                                                JNZ M2

014027010

014030014

014031000                                               NOP

014032303                                                JMPM1



014033  002

014034  014

014035174                                   M4: MOV A. H

014036323                                                OUT 0010

014037 001

014040175                                               MOV A, L

014041323                                                OUT OOOQ

014 042 000

014043 176                                                MOV A, M

014044323                                                OUT002Q

014045 002

014046315                                               CALLSKL

014047 177

014050000

014051303                                                JMPM3

014052016

014053 014

В данной программе проверочный код заносится по адресу 014Q 001Q. Сверка кодов производится последовательно в по­рядке возрастания адресов. При обнаружении ошибки програм­ма выводит адрес в порт 001 (старшие разряды) и в порт 000 (младшие разряды), содержимое ячейки — в порт 002 и перехо­дит в режим опроса клавиатуры. Нажатие любой кнопки за­пускает программу на проверку следующих ячеек до новой ошибки, и так далее до конца проверяемой зоны. Для более полной проверки необходимо задавать различные проверочные коды, в предельном случае — от OOOQ до 377Q. Поставив на место команды NOP по адресу 014Q 031Q команду INRB (код 004Q), получим программу автоматической проверки памяти для всех кодов. Читатель" может сам оценить, какая программа удобнее в эксплуатации. Необходимо заметить, что ячейки ОЗУ, отведенные для программы проверки, должны быть заве­домо исправными, и чем длиннее программа, тем труднее найти зону для ее размещения.

В результате проверки выясняется, какой частью ОЗУ можно располагать для работы. Лучше всего, когда все ячейки ОЗУ исправны и, значит, программы могут последовательно разме­щаться в ячейках памяти. Однако и при наличии дефектных ячеек (если их не слишком много) можно использовать почти весь оставшийся объем памяти, обходя дефектные места с по­мощью команды JMP.

С помощью простейших пробных программ необходимо также проверить исполнение всей системы команд МП.Напри­мер, программа MVI A, OPERA ADI, OPERB OUT PORT1 проверяет исполнение команд MVIA, ADI и OUT.



Содержание раздела