Программное обеспечение БПП
Так как БПП работает с данными, расположенными в своей памяти данных, то перед выполнением микропрограммы выбранного алгоритма необходимо передать массивы данных из ОЗУ ЭВМ в память данных БПП, если они еще не участвовали в обработке. По окончании обработки нужно «выгрузить» данные в память ЭВМ. Эти операции осуществляет контроллер. При этом в регистр памяти ЭВМ заносится адрес ячейки памяти, с которой производится чтение или запись, а в регистре счета слов устанавливается число передаваемых слов в дополнительном коде. Передача данных в (из) память (и) БПП может производиться с прерыванием по концу передачи и без прерывания. В первом случае в регистре управления НДК должен быть установлен разряд 06 (прерывание разрешено). При равенстве нулю содержимого регистра счета слов устанавливается разряд 07 регистра управления и происходит прерывание с адресом вектора 314. Подпрограмма обработки прерывания должна определить причину прерывания и выполнить дальнейшие действия, предусмотренные основной программой.
Кроме того, прерывание с адресом вектора 314 может происходить по ошибкам обращения к памяти данных БПП или к памяти ЭВМ (обращение по существующему адресу).
Направление передачи данных определяется установкой разряда 03 регистра управления НДК, а запуск передачи данных — установкой разряда 00.
Для запуска микропрограммы выбранного алгоритма необходимо предварительно сформировать управляющую таблицу, т. е. занести соответствующие этой микропрограмме параметры в соответствующие регистры устройства вычисления адреса, арифметического устройства и умножителя. Эти действия производит микро-ЭВМ программным путем с помощью регистра управления панелью. Для примера проведем формирование управляющей таблицы для микропрограммы арифметических и логических операций:
- MOV # 0, @ # КР — адрес первого входного массива;
- MOV # 1000, @ # РУП — заносим в R0 устройства вычисления адреса (УВА);
- MOV # 2, @ # KP — приращение первого входного массива;
- MOV # 1001, @ # РУП — заносим в R1 УВА;
- MOV # 200, @ # КР — адрес второго входного массива;
- MOV # 1002, @ # РУП — заносим в R2 УВА;
- MOV # 2, @ # KP — приращение второго входного массива;
- MOV # 1003, @ # РУП — заносим в R3 УВА;
- MOV # 2, @ # KP — адрес выходного массива;
- MOV # 1004; @ # РУП — заносим в R4 УВА;
- MOV # 4, @ # РУП — приращение выходного массива;
- MOV # 1,005, @ # КР — заносим в R5 УВА;
- MOV # 0, @ # КР — код операции (0 — сложение);
- MOV # 1006, @ # РУП — заносим в R6 УВА;
- MOV # 200, @ # KP — число элементов выходного массива;
- MOV # 1040, @ # РУП — заносим в AR0 ПУ;
- МОV # 1000, @ # РУНД К — разрешение прерывания по вектору 310 по концу работы микропрограммы.
После формирования таблицы осуществляется пуск программы путем установки разряда 14 регистра управления панелью с начального адреса выбранной микропрограммы, записанного в клавишный регистр. БПП выполняет выбранный алгоритм, по окончании которого производится прерывание с адресом вектора прерывания 310.
Программы, реализующие эти процедуры для всех алгоритмов БПП, объединены в пакет программ в виде объектных модулей. Модули имеют имена, соответствующие выполняемым функциям. Обращение к модулю по имени возможно из программы на Фортране и Ассемблере.
Обращение из Фортран-программы производится с помощью оператора:
CALL имя модуля (а1, а2, а3, ..., аn), где ai, ..., аn — параметры, требуемые для выполнения функции.
Обращение из программы на Ассемблере производится с помощью оператора JSR с предварительной засылкой адреса таблицы параметров (АТП) в регистр R5:
МОV # АТП, R5
JSR PC, имя модуля.
Пакет программ поставляется на перфоленте в виде объектного модуля. Загрузочный модуль получается совместно с программой пользователя с помощью программы Компоновщик ПЛОС или ФОДОС. Пакет программ занимает 32768 байт оперативной памяти ЭВМ. Пользователю поставляется также на перфолентах программа отладки и тесты, обеспечивающие проверку правильности функционирования БПП.
Программа отладки позволяет выводить на терминал содержимое внутренних регистров БПП, читать (записывать) из (в) памяти (6) данных, осуществлять операции над числами, запускать останавливать и выполнять в пошаговом режиме любую микропрограмму.