program vport1;
uses dos,crt;
var vport,b0,b1,b2,b3,b4:byte;
ch :char;
label start,stop,cont,c1,c2,c3,c4;
function binary(x:longint;numofbits:byte):string;
var bit,i:byte;
s:string[32];
begin
s:='';
for i:=0 to 31 do begin
bit:=(x shl i) shr(31);
s:=s+ chr(ord('0')+bit);
end;
delete(s,1,32-numofbits);
binary:=s;
end;
procedure init;
begin
clrscr;
writeln;writeln('1-вкл ГШ 2-выкл ГШ');
port[$378]:=2;
delay(100);
port[$378]:=4;
writeln('3-ХХ 4-КЗ');
writeln('5-терм.1 6-терм.2 ');
writeln('7-термопары 8-приёмник');
writeln;
vport:=4;
writeln(binary(vport,8*sizeof(vport)));
writeln;
writeln('ГШ выключен');
writeln('ХХ');
writeln('Термопара 1');
writeln('Подключен Р-38');
b0:=0;b1:=0;b2:=1;b3:=0;
end;
begin
init;
start:
ch:=readkey;
clrscr;
case ch of
'1':begin
vport:=vport or 1;
port[$378]:=vport;
delay(100);
vport:=vport and (255-1);
port[$378]:=vport;
b0:=1;
end;
'2':begin
vport:=vport or 2;
port[$378]:=vport;
delay(100);
vport:=vport and (255-2);
port[$378]:=vport;
b0:=0;
end;
'4':begin
vport:=vport and (255-4);
b1:=1;
end;
'3':begin
vport:=vport or 4;
b1:=0;
end;
'5':begin
vport:=vport and (255-8);
b2:=1;
end;
'6':begin
vport:=vport or 8;
b2:=0;
end;
'8':begin
vport:=vport and (255-16);
b3:=0;
end;
'7':begin
vport:=vport or 16;
b3:=1;
end;
'q':goto stop;
else begin
clrscr;
writeln ('Тормоз! Не на ту клавишу нажал! ');
sound(1000);
delay(500);
nosound;
clrscr;
end;
end;
port[$378]:=vport;
writeln;writeln('1-вкл ГШ 2-выкл ГШ');
writeln('3-ХХ 4-КЗ');
writeln('5-терм.1 6-терм.2 ');
writeln('7-термопары 8-приёмник');
writeln;
writeln(binary(vport,8*sizeof(vport)));
writeln;
if b0=0 then writeln('ГШ выключен')
else writeln('ГШ включен');
c1: if b1=1 then writeln('КЗ')
else writeln('ХХ');
c2: if b2=1 then writeln('Термопара 1')
else writeln('Термопара 2');
c3: if b3=1 then writeln('Подключена термопара')
else writeln('Подключен Р-38');
c4: goto start;
stop: init;
end. |