program BPAbsoluteDemo;

type
  TString = String (80);
  TTypeChoice = (t_Integer, t_Char, t_String);

(* WARNING: BAD STYLE! *)
procedure ReadVar (var x : Void; TypeChoice : TTypeChoice);
var
  xInt : Integer absolute x;
  xChar : Char absolute x;
  xStr : TString absolute x;
begin
  case TypeChoice of
    t_Integer : ReadLn (xInt);
    t_Char    : ReadLn (xChar);
    t_String  : ReadLn (xStr);
  end
end;

var
  i : Integer;
  c : Char;
  s : TString;

begin
  ReadVar (i, t_Integer);
  ReadVar (c, t_Char);
  ReadVar (s, t_String);
  WriteLn (i, ' ', c, ' ', s)
end.
