{$F+}
{$M $4000,500000,650000}
program passwortabfrage;

uses crt,design;
const Passwoerter : array[1..10] of string =
        ('Data Becker','Inspire','PC Underground','Soundblaster',
         'Demos','Super','Vengeance','Dynamite','Bier','Haus');
      Pw_Pages : array[1..10] of word =
        (17,3,29,43,12,21,4,9,13,30);

Var pw_nr : byte;
    verbleibende_durchlaeufe : byte;
    Passwort_correct : word;
    New_Pass : string;
    PNeues_Passwort_waehlen : pointer;
    PEingabe_Box_zeichnen : pointer;
    PPasswort_abfragen : pointer;
    PSystem_anhalten : pointer;
    unnoetige_Variable1 : word;
    unnoetige_Variable2 : word;

{$L Pwmodul}
procedure Abfrage_Schleife; far; external;

procedure Neues_Passwort_waehlen;
begin;
  pw_nr := random(10)+1;
  unnoetige_Variable1 := 1;
  unnoetige_Variable2 := 2;
end;

procedure Eingabe_Box_zeichnen;
var pws : string;
begin;
  str(Pw_Pages[pw_nr]:2,pws);
  asm int 3; end;
  Fenster(20,10,40,4,'Bitte Passwort auf Seite '+pws+' eingeben',black,7);
  unnoetige_Variable1 := 1;
  unnoetige_Variable2 := 2;
  gotoxy(23,12);
end;

procedure Passwort_abfragen;
begin;
  readln(New_Pass);
  unnoetige_Variable1 := 1;
  unnoetige_Variable2 := 2;
  if New_Pass = Passwoerter[pw_nr] then
    Passwort_correct := 1
  else
    Passwort_correct := 0;
end;

procedure System_anhalten;
begin;
  textbackground(black);
  textcolor(7);
  clrscr;
  writeln('Wir h„tten doch wohl besser ein Orginal gekauft ...');
  halt(0);
end;


procedure Main_Programm;
begin;
  textbackground(black);
  textcolor(7);
  clrscr;
  gotoxy(20,12);
  writeln('Wilkommen im Hauptprogramm !');
  gotoxy(20,22);
  write('Enter zum Beenden ... ');
  readln;
  halt(0);
end;

begin;
  textbackground(black);
  textcolor(7);
  clrscr;
  verbleibende_durchlaeufe := 57;
  PNeues_Passwort_waehlen := @Neues_Passwort_waehlen;
  PEingabe_Box_zeichnen   := @Eingabe_Box_zeichnen;
  PPasswort_abfragen      := @Passwort_abfragen;
  PSystem_anhalten        := @System_anhalten;
  randomize;
  Abfrage_Schleife;
end.