program alarm_melder; uses wincrt;
const
	LPT1D=$3bc;
	LPT1S=LPT1D+1;
var
	min, max, waarde: byte;
procedure tijd_vertraging(teller: longint);
	begin
		while teller>0 do
		begin
			teller:=teller-1
		end
	end;
procedure knipper_led(aan, uit: longint);
	begin
		repeat
			port[LPT1D]:=port[LPT1D] or $01;
			writeln('Led aan.');
			tijd_vertraging(aan);
			port[LPT1D]:=port[LPT1D] and $fe;
			writeln('Led uit.');
			tijd_vertraging(uit)
		until keypressed
	end;
function meetLPT1: byte;
	var
		b: byte;
	begin
		b:=port[LPT1S];
		b:=b and $78;
		b:=b shr 3;
		meetLPT1:=b
	end;
begin
	write('Wat is de ondergrens van het alarm (0..15): ');
	read(min);
	write('Wat is de bovengrens van het alarm (0..15): ');
	read(max);
	repeat
		port[LPT1D]:=port[LPT1D] or $02;
		writeln('Apparaat aan.');
		repeat
			waarde:=meetLPT1
		until (waarde<=min) or (waarde>=max);
		port[LPT1D]:=port[LPT1D] and $fd;
		writeln('Apparaat uit.');
		knipper_led(20000000, 20000000);
		readkey;
		waarde:=meetLPT1
	until waarde=0
end.