на каком языке программирования написана эта программа:
/*программа управления холодильником */
start: do;
$include(reg812.dcl)
/* объявление основных переменных и флагов */
(t_1,t_2) word, /*температура в камерах установленная*/
(tr_1,tr_2) word,  /* измеряемая температура */
ind(4) byte,
(i,j,nreg) byte, /* переменные для работы */
(flag, fl_razm,fl_moroz) byte, /*флаги определения режима работы */
ok byte,  /*номера нажатой и пред клавиш */
adc_H,adc_L byte,_p word,
nind byte, /*номер отображаемого индикатора*/
per_t0 word; /*число циклов переполнения таймера0*/
adc:procedure interrupt 6; /*считываем данные с АЦП*/
adccon2=0;
adc_h=adcdatah;
adc_l=adcdatal;=1;eadc=1; adc;
/*____Обработчик прерывания таймера____*/
timer_int: procedure interrupt 1; /* прерывание t0 */
/*установка сканируемого столбца*/nind=0 then P2=00010000b or ind(nind);nind=1 then P2=00100000b or ind(nind);nind=2 then P2=01000000b or ind(nind);nind=3 then P2=10000000b or ind(nind);=nind+1; if nind=4 then nind=0;
/*определение нажатых клавиш и реакции по ним*/
if (p3.4=0b) and (ok<>1) then /*приращение установленной температуры*/
do;ok=1;nreg=0 then do;_1=t_1-1;if t_10<0 then t_1=0;(0)=t_1/10;ind(1)=t_1 mod 10;;nreg=1 then do;_2=t_2+1;if t_2>10 then t_2=10;(2)=t_2/10;ind(3)=t_2 mod 10;;
end;
if (p3.5=0b) and (ok<>2) then /*уменьшение установленной температуры*/
do;ok=2;nreg=0 then do;_1=t_1+1;if t_1>22 then t_1=22;(0)=t_1/10;ind(1)=t_1 mod 10;;nreg=1 then do;_2=t_2-1;if t_2<3 then t_2=3;(2)=t_2/10;ind(3)=t_2 mod 10;;
end;
if (p3.6=0b) and (ok<>3) then/*переключение режимов по кругу */
do; ok=3; nreg=nreg+1;if nreg>=4 then nreg=0;;
if (P3 and 01110000b)=70h then ok=0; /*проверка на отпускание клавиш */
if per_t0>960 then do; /*если прошла мин увеличен счетчик*/
per_t0=0;tim_ptim_p+1; nreg<2 then do;/*включение периодической разморозки*/
if (fl_razm=0)and(tim_p>4320) then do;fl_razm=1;tim_p=0;end; /*24ч*/(fl_razm=1)and(tim_p>180) then do;fl_razm=0; tim_p=0;end; /*2ч*/;nreg=2 then do;(fl_moroz=1)and(tim_p>240) then do;fl_moroz=0;tim_p=0;nreg=0;end; /*3ч*/;
do; /*ежеминутное обновление показаний температуры*/
ind(0)=tr_1/10;ind(1)=tr_1 mod 10;(2)=tr_2/10;ind(3)=tr_2 mod 10; tr_1<>0 then P3.0=0;/*зажигаем минус на индикаторе температуры морозилки*/
end;
end;_t0=per_t0+1; /* увеличиваем счетчик переполнений */
tf0=0; /* сброс флага переполнения */
end timer_int;
init: procedure; /******пpоцедуpа инициализации******/
tmod=00000001b;/*пеpвый pежим для таймеpа */=1;/*пpеpывание по фpонту сигнала пеpеполнения*/,tl0=0;tr0=1; /*обнул счетчики и pазpешаем pаботу 0-го Таймеpa*/=1;/*запускаем таймеp 0 */=1; /*pазpешаем пpеpывания Таймера=0 */
ea=1;/*pазpешаем все пpеpывания*/
/*Инициализация АЦП*/
ADCCON1=60h;/*настраиваем режим AЦП*/
ADCCON2=0h;/*настраиваем канал 0*/
nreg=0;fl_moroz=0;fl_razm=0;ok=0;
/*устаналиваем значения по умолчанию*/
t_1=6;t_2=6;
p3=01111011;/*линии 4-6 на ввод и включаем компрессоры на холод*/
end init;
/*____основнaя программа _____*/init;
/******Исполнительный блок программы******/
do while 1; /*основной цикл работы холодильника*/
chan=0; sconv=1; flag=0;while flag=0; end;/*измеряем температуру t1*/_1=22-(adc_h*255+adc_l)*50/4096;/* перевод результатов АЦП в температуру*/
chan=1; sconv=1; flag=0;while flag=0; end;/*измеряем температуру t2*/_2=((adc_h and 0fh)*255+adc_l)*50/4096;/*перевод результатов АЦП в температуру*/
if nreg=2 then do; fl_moroz=1;time_p=0;end;(nreg<2)and(tr_1>t_1+1) THEN p3.1=1;(nreg<2)and(tr_2>t_2+1) THEN p3.3=1;(nreg<2)and(tr_1<t_1-2) THEN p3.1=0;(nreg<2)and(tr_2<t_2-2) THEN p3.3=0;(fl_razm=1)and(tr_1>-1) then p3.1=0;nreg=3 then do p3.1=0;p3.3=0;end;/*полная разморозка*/(nreg=2)and(tr_1<22) THEN p3.1=1;/*быстрая заморозка*/(nreg=2)and(tr_1=22) THEN p3.1=0;/*;
end start;