Программное обеспечение На главную

Примеры "самопальных" программок с пояснениями.

"МИНЗДРАВ ПРЕДУПРЕЖДАЕТ!": Все программки, представленные здесь созданы для определенных версий и определенных конфигураций АТС. Механический перенос их в Вашу версию будет, в лучшем случае, бесполезным, а в худшем - ...! Поэтому, при адаптации данных программок для других версий и конфигураций - максимально проявляйте творческий подход. 

Пример № 1

Программа "сброса" массива битов состояния ПДМ и ПЛ-КЕ (10220-10221 и 10228-10229) при значениях "3 из 4 ПДМ кассеты - заняты" с организацией счетчика "сбросов" . Для АТСКЭ "КВАНТ"-1024 (село) с двумя кассетами  БВЛ и двумя кассетами ПДМ. Запуск от программы монитора 2-го уровня "РУ ДВО 1 мин".

Смещение к БА Команда Пояснения
0 61000 Сброс 1Р (Обнулить 1РОН)
1 72077 Записать в 7Р инф. 10221 (ст. адрес массива битов состояния ПДМ)
2 10221
3 23000 Переписать в [3-0] 3Р инф. из битов [3-0]  ячейки, адрес которой указан в 7Р
4 70040
5 630C4 Сброс битов [F-4] в 3Р
6 6131B Сравнить с 0 бит ячейки, в которой содержится константа. Номер бита записан в 3Р
7 63210
8 7110C Если бит =0, то переход к адресу БА + С
9 21000 бит не равен 0. Обнулить биты [3-0] в ячейке, адрес которой записан в 7Р
A 74040
B 4132F Выставить "флаг" в бите [F] 1Р 
C 67220 7Р биты [1-0] минус 1
D 7110F Если биты=0 - переход к адресу БА + F
E 71103 Иначе - переход к адресу БА + 3
F 6121F 1Р биты [F] минус 1. "Флаг" выставлен?
10 71118 Нет - переход к адресу БА + 18
11 72011 Да - в 1Р записать информацию 740F0 для записи в ОЗУ состояния КЕ.
12 740F0
13 21208 Запись инф. в ОЗУ сост. КЕ (10228) 
14 21209 Запись инф. в ОЗУ сост. КЕ (10229) 
15 21320 (1Р) := 1
16 27389 (7Р) := 150А0
17 11200 (150А0) плюс 1 - увеличение СЧК кол-ва обнулений.
18 72066 Переход к исполнению программы "РУ ДВО 1 мин."
19 адрес РУ ДВО 1мин
1A 71100
1B 72080 Константа программы (использование описано ниже)

Комментарий к программе: Используется для сельской АТС 1024№№  с двумя БВЛ с "импульсным челноком" в одном из двух исходящих направлениях. Создана после того, как программисты отказались "лечить" версию от "зависаний" ПДМ и КЕ в ЧНН. №№ ПДМ с 0 по 7. КЕ с "дырками".  Идея программки заключается в обнулении массивов ОЗУ состояния ПДМ и ПЛ КЕ при условии, что хотя бы в одной из четверок ПДМ одновременно заняты три ПДМ. В этом случае обнуляются биты состояния соответствующей четверки и безусловно обнуляются биты состояния всех КЕ. После начала работы этой программки жалобы абонентов на "занятость" в направлении прекратились.
Работа программы: в 7 РОН записывается 10221 - адрес старшей ячейки ОЗУ состояния ПДМ(для данной версии - всего две ячейки) . В 3РОН записывается содержимое битов состояния ПДМ (для данной версии - четыре ПДМ на ячейку). Всего для четверки ПДМ возможно F значений битов состояния(0 - F). В константе (яч. БА+1В) в битах [7], [В],[D],[E],[F] записаны 1. Т.е., если, например, в ячейке ОЗУ 10221 отмечены занятыми ПДМ 1, 3 и 7 (см м.РСП, стр. 11), то в 3РОНе будет содержаться информация В. Эта информация используется командой УПН(адрес=БА+6), как № бита в ячейке, содержащей константу. При равенстве данного бита константы единице - происходит обнуление битов [3-0] ячейки 10221, в 1РОНе в бите [F] выставляется "флаг" для очистки массивов состояния КЕ и условно вычитается 1 из битов[1-0] адреса 10221. При равенстве бита константы 0 - сразу переход к вычитанию 1 из адреса. Затем следует цикл проверки для ячейки 10220. По окончании всех циклов (последней проверяется состояние ячейки 10220) - переход к анализу наличия "флага" в 1РОНе. При наличии "флага" - безусловное обнуление (по маске, записанной в 1РОНе) массива состояний ПЛ КЕ.  Затем к содержимому ячейки 150А0 (счк обнулений) прибавляется 1. Далее следует переход к программе "РУ ДВО 1мин". При отсутствии флага - переход осуществляется сразу же. Адрес программы  "РУ ДВО 1мин" записан в ячейке 212В2. По размещению данной программки в памяти адрес в ячейке 212В2 подменяется на базовый адрес этой программки. Занесение информации в счетчик можно исключить, поставив в ячейке с адресом=БА+15 информацию 71118 или немного переделать программу, выкинув ячейки с БА+15 по Ба+17 и заменив команды БПУ и смещение для команды УПН (сравнение с константой). В этом случае программа станет короче на три ячейки.