program toegang; uses wincrt;
const
	LPT1D=$3bc;
	LPT1S=LPT1D+1;
type
	leerling = record
                  geldig: boolean;
	               naam: array [1..5] of char
              end;
	leerlingen = array [1..15] of leerling;
var
	data: leerlingen;
	teller: integer;
	code: byte;
	wacht: longint;
begin
	teller:=1;
	repeat
		data[teller].geldig:=false;
		teller:=teller+1
	until teller>15;
	data[1].naam:='Bert ';
	data[1].geldig:=true;
	data[7].naam:='Fred ';
	data[7].geldig:=true;
	data[13].naam:='Harry';
	data[13].geldig:=true;
	repeat
		readln; {wacht op intypen van return}
		code:=(port[LPT1S] and $78) shr 3;
		if code>0 then
		begin
			if data[code].geldig then
			begin
				writeln(data[code].naam, ' is in de kast geweest.');
				port[LPT1D]:=port[LPT1D] or $01;
				wacht:=20000000;
				repeat
					 wacht:=wacht-1
				until wacht=0;
				port[LPT1D]:=port[LPT1D] and $fe
			end
			else
				writeln('Poging tot inbraak met code ', code)
		end
	until code=0
end.
