.CHARSET 1251 ; приём сигнала PPS от приёмника АСПМК-3 ; через линию BUSY параллельного порта ; звуковое подтверждение и управление каналами порта ; с использованием прерываний SCHET .EQU 40 ; (устанавливается также в R9) .ORG 0 K INT P M SCHET ; количество принимаемых импульсов (из RX) 10 M4 ; 100 мс - длительность звукового сигнала EE 2 M5 ; 1000 Гц - частота звукового сигнала 1 PP M 9090 ; статический режим параллельного порта PP M 9148 ; сброс всех прерываний .NUML PPS <-> ; RX=1 RY=PPS PP M 9131 ; Прерывание 1, приоритет 1, вектор PPS PP M 9156 ; Разрешить аппаратное прерывание параллельного порта (BUSY) .NUML TIMER ENT 2 PP M 9132 ; Прерывание 2, приоритет 2, вектор TIMER PP M 9152 ; Разрешить аппаратное прерывание таймера 2 (звуковой сигнал) 9050 M7 ; для косвенной адресации R9050 + M8 ; (+2) для косвенной адресации R9052 40 M9 ; для косвенной адресации R40 (SCHET) + MA ; для косвенной адресации R9092 PP M 9130 ; разрешение прерываний (RX!=0) A1: KRM9 ; R40 = SCHET F X=0 A1 ; цикл по значению счётчика импульсов A2: KRM8 ; R9052 F X=0 A2 ; задержка включения канала 2 до окончания сигнала PP M 9130 ; запретить прерывания (RX=0) 3 KMA ; R9092 - включить канал 2 (SELECT_IN) RM4 FX^2 ; RX=100 KM7 ; таймер 0 - 1 с A3: KRM7 F X=0 A3 ; проверка таймера 0 ; завершение программы PP M 9090 ; выключить параллельный порт (RX=0) ; каналы отключаются автоматически R/S ; останов программы PPS: ; прерывание BUSY RM5 RM4 KM8 ; R9052 - звук 5 KMA ; R9092 - включить канал 1 (AUTOFEED) CX ENT ENT ; очистка стека в прерывании - для вывода KRM9 ; R40 = SCHET 1 - ; декремент счётчика KM9 ; R40 = SCHET K SCR ; вывод SCHET на экран PP RTN ; возврат из прерывания TIMER: ; прерывание таймера 2 (звук) 7 KMA ; R9092 - отключить каналы управления 1-3 PP RTN ; возврат из прерывания .END