uses crt; {Benutze aus Unit folgende Befehle:}
          {ClrScr;window;GotoXY;TextBackground;TextColor}
          {ReadKey;KeyPressed;}
          {Sound;Delay;NoSound}

{Extra TypDefinition, da im ProcedurKopf string[3] nicht genommen wird}
type string3=string[3];
 

{***************************************************************************}
{************************** Nummernschilder ********************************}
{********************** A B K Ü R Z U N G E N ******************************}
{***************************************************************************}
const                                    {Ablegen als Konstante}
code:array[1..513]of string3=(           {maximale Länge=3}
'A','AA','AB','ABG','AC','AE','AIC','AK','AM','AN','ANA','ANG','ANK','AÖ','APD','ARN',
'ART','AS','ASL','AT','AU','AUR','AW','AZ','B','BA','BAD','BB','BBG','BBL','BC','BD',
'BED','BEL','BER','BG','BGL','BI','BIR','BIT','BIW','BL','BM','BN','BNA','BO','BOR','BOT',
'BP','BRA','BRB','BRG','BS','BSK','BT','BTF','BÜS','BÜZ','BW','BWL','BYL','BZ','C','CA',
'CB','CE','CHA','CLP','CO','COC','COE','CUX','CW','D','DA','DAH','DAN','DAU','DB','DBR',
'DD','DE','DEG','DEL','DGF','DH','DL','DLG','DM','DN','DO','DON','DU','DÜW','DW','DZ','E',
'EB','EBE','ED','EF','EH','EI','EIL','EIS','EL','EM','EMD','EMS','EN','ER','ERB','ERH',
'ES','ESA','ESW','EU','EW','F','FB','FD','FDS','FF','FFB','FG','FI','FL','FLÖ','FN','FO',
'FOR','FR','FRG','FRI','FRW','FS','FT','FTL','FÜ','FW','G','GA','GAP','GC','GDB','GE',
'GER','GF','GG','GHA','GHC','GI','GL','GM','GMN','GNT','GÖ','GP','GR','GRH','GRM','GRS',
'GRZ','GS','GT','GTH','GUB','GÜ','GVM','GW','GZ','H','HA','HAL','HAM','HAS','HB','HBN',
'HBS','HC','HD','HDH','HDL','HE','HEF','HEI','HEL','HER','HET','HF','HG','HGN','HGW','HH',
'HHM','HI','HIG','HL','HM','HN','HO','HOL','HOM','HOT','HP','HR','HRO','HS','HSK','HST',
'HU','HV','HWI','HX','HY','HZ','IGB','IL','IN','IZ','J','JB','JE','K','KA','KB','KC','KE',
'KEH','KF','KG','KH','KI','KIB','KL','KLE','KLZ','KM','KN','KO','KÖT','KR','KS','KT','KU',
'KÜN','KUS','KW','KY','L','LA','LAU','LB','LBS','LBZ','LC','LD','LDK','LER','LEV','LG',
'LI','LIB','LIF','LIP','LL','LM','LN','LÖ','LÖB','LSA','LSN','LSZ','LU','LUK','LWL','M',
'MA','MAB','MB','MC','MD','ME','MEI','MER','MG','MGN','MH','MHL','MI','MIL','MK','MM',
'MN','MOS','MR','MS','MSP','MTK','MÜ','MVL','MYK','MZ','MZG','N','NAU','NB','ND','NDH',
'NE','NEA','NEB','NES','NEW','NF','NH','NI','NK','NL','NM','NMB','NMS','NOH','NOM','NP',
'NR','NRW','NU','NW','NY','NZ','OA','OAL','OB','OBG','OC','OD','OE','OF','OG','OH','OHA',
'OHZ','OL','OR','OS','OVL','OZ','P','PA','PAF','PAN','PB','PCH','PE','PER','PF','PI',
'PIR','PK','PL','PLÖ','PN','PS','PW','PZ','QFT','QLB','R','RA','RC','RD','RDG','RE','REG',
'RH','RIE','RL','RM','RN','RO','ROS','ROW','RPL','RS','RSL','RT','RU','RÜD','RÜG','RV',
'RW','RZ','S','SAD','SAL','SAW','SBG','SBK','SC','SCZ','SDH','SDL','SDT','SE','SEB','SEE',
'SFA','SFB','SFT','SG','SGH','SH','SHA','SHG','SHL','SI','SIG','SIM','SK','SL','SLF',
'SLN','SLS','SLZ','SM','SN','SO','SON','SÖM','Sp','SPB','SR','SRB','SRO','ST','STA','STB',
'STD','STL','SU','SÜW','SW','SZ','SZB','TBB','TET','TG','THL','TIR','TÖL','TP','TR','TS',
'TÜ','TUT','UE','UEM','UL','UN','VB','VEC','VER','VIE','VK','VS','W','WAF','WB','WBS',
'WDA','WE','WEN','WES','WF','WHV','WI','WIL','WIS','WK','WL','WLG','WM','WMS','WN','WND',
'WO','WOB','WR','WRN','WSF','WST','WSW','WT','WTM','WÜ','WUG','WUN','WUR','WW','WZL','X',
'Y','Z','ZE','ZI','ZP','ZR','ZS','ZW','ZZ','0','1-1');

{***************************************************************************}
{************************* Nummernschilder *********************************}
{********* Erläuterungen zu den Abkürzungen -> Konstanten ******************}
{***************************************************************************}
name:array[1..514]of string[58]=(     {maximale Länge=58}
'Augsburg','Ostalbkreis in Aalen','Aschaffenburg','Altenburg','Aachen','Auerbach',
'Aichach-Friedberg in Aichach','Altenkirchen/Westerwald','Amberg (Stadt)','Ansbach',
'Annaberg','Angermünde','Anklam','Altötting','Apolda','Arnstadt','Artern',
'Amberg-Sulzbach in Amberg','Aschersleben','Altentreptow','Aue','Aurich',
'Bad Neuenahr-Ahrweiler in Ahrweiler','Alzey-Worms in Alzey','Berlin','Bamberg',
'Baden-Baden (Stadt)','Böblingen','Bernburg','Brandenburg, Landesregierung und Landtag',
'Biberach/Riß','Bundestag, Bundesrat Bundesregierung','Brand-Erbisdorf','Belzig','Bernau',
'Bundesgrenzschutz','Berchtesgadener Land in Bad Reichenhall','Bielefeld (Stadt)',
'Birkenfeld/Nahe und Idar-Oberstein (Stadt)','Bitburg-Prüm in Bitburg','Bischofswerda',
'Zollernalbkreis in Balingen','Erftkreis in Bergheim','Bonn (Stadt)','Borna',
'Bochum (Stadt)','Borken in Ahaus','Bottrop (Stadt)','Deutsche Bundespost',
'Wesermarsch in Brake/Unterweser','Brandenburg','Burg','Braunschweig (Stadt)','Beeskow',
'Bayreuth','Bitterfeld','Büsingen am Hochrhein','Bützow',
'Bundes-Wasser-und Schiffahrtsverwaltung',
'Baden-Württemberg, Landesregierung und Landtag','Bayern, Landesregierung und Landtag',
'Bautzen','Chemnitz','Calau','Cottbus','Celle','Cham','Cloppenburg','Coburg',
'Cochem-Zell in Cochem','Coesfeld/Westfalen','Cuxhaven','Calw','Düsseldorf (Stadt)',
'Darmstadt','Dachau','Lüchow-Dannenberg in Lüchow','Daun','Deutsche Bundesbahn',
'Bad Doberan','Dresden','Dessau (Stadt)','Deggendorf','Delmenhorst (Stadt)',
'Dingolfing-Landau in Dingolfing','Diepholz','Döbeln','Dillingen/Donau','Demmin','Düren',
'Dortmund (Stadt)','Donau-Ries in Donauwörth','Duisburg (Stadt)',
'Bad Dürkheim/Weinstraße in Neustadt/Weinstraße','Dippoldiswalde','Delitzsch',
'Essen (Stadt)','Eilenburg','Ebersberg','Erding','Erfurt','Eisenhüttenstadt','Eichstätt',
'Eisleben','Eisenberg','Emsland in Meppen','Emmendingen','Emden (Stadt)',
'Rhein-Lahn-Kreis in Bad Ems/Lahnstein (Stadt)','Ennepe-Ruhr-Kreis in Schwelm',
'Erlangen (Stadt)','Odenwaldkreis in Erbach/Odenwald','Erlangen-Höchstadt in Erlangen',
'Esslingen/Neckar','Eisenach','Werra-Meißner-Kreis in Eschwege','Euskirchen','Eberswalde',
'Frankfurt am Main (Stadt)','Wetteraukreis in Friedberg/Hessen','Fulda','Freudenstadt',
'Frankfurt/Oder (Stadt)','Fürstenfeldbruck','Freiberg','Finsterwalde','Flensburg (Stadt)',
'Flöha','Bodenseekreis in Friedrichshafen','Forchheim','Forst',
'Breisgau-Hochschwarzwald und Freiburg (Stadt)','Freyung-Grafenau in Freyung',
'Friesland in Jever','Bad Freienwalde','Freising','Frankenthal/Pfalz (Stadt)','Freital',
'Fürth','Fürstenwalde','Gera','Gardelegen','Garmisch-Partenkirchen','Glauchau',
'Gadebusch','Gelsenkirchen (Stadt)','Germersheim','Gifhorn','Groß-Gerau','Geithain',
'Gräfenhainichen','Gießen','Rheinisch-Bergischer Kreis in Bergisch Gladbach',
'Oberbergischer Kreis in Gummersbach','Grimmen','Genthin','Göttingen','Göppingen',
'Görlitz','Großenhain','Grimma','Gransee','Greiz','Goslar',
'Gütersloh in Rheda-Wiedenbrück','Gotha','Guben','Güstrow','Grevesmühlen',
'Greifswald (Kreis)','Günzburg','Hannover','Hagen/Westfalen (Stadt)','Halle (Stadt)',
'Hamm/Westfalen (Stadt)','Haßberge in Haßfurt','Hansestadt Bremen und Bremerhaven',
'Hildburghausen','Halberstadt','Hainichen','Rhein-Neckar-Kreis und Heidelberg (Stadt)',
'Heidenheim/Brenz','Haldensleben','Helmstedt','Hersfeld-Rotenburg in Bad Hersfeld',
'Dithmarschen in Heide/Holstein','Hessen, Landesregierung und Landtag','Herne (Stadt)',
'Hettstedt','Herford in Kirchlengern','Hochtaunuskreis in Bad Homburg vor der Höhe',
'Hagenow','Hansestadt Greifswald','Hansestadt Hamburg','Mohenmölsen','Hildesheim',
'Heiligenstadt','Hansestadt Lübeck','Hameln-Pyrmont in Hameln','Heilbronn/Neckar','Hof',
'Holzminden','Saar-Pfalz in Homburg/Saar','Hohenstein-Ernstthal',
'Bergstraße in Heppenheim/Bergstraße','Schwalm-Eder-Kreis in Homberg/Bez. Kassel',
'Hansestadt Rostock','Heinsberg','Hochsauerlandkreis in Meschede','Hansestadt Stralsund',
'Main-Kinzig-Kreis in Hanau','Havelberg','Hansestadt Wismar','Höxter','Hoyerswerda',
'Herzberg','St.Ingbert (Stadt)','Ilmenau','Ingolstadt/Donau (Stadt)',
'Steinburg in Itzehoe','Jena','Jüterbog','Jessen','Köln (Stadt)','Karlsruhe',
'Waldeck-Frankenberg in Korbach','Kronach','Kempten/Allgäu (Stadt)','Kelheim',
'Kaufbeuren (Stadt)','Bad Kissingen','Bad Kreuznach','Kiel (Stadt)',
'Donnersberg-Kreis in Kirchheimbolanden','Kaiserslautern','Kleve','Klötze','Kamenz',
'Konstanz','Koblenz (Stadt)','Köthen','Krefeld (Stadt)','Kassel','Kitzingen','Kulmbach',
'Hohenlohe-Kreis in Künzelsau','Kusel','Königs Wusterhausen','Kyritz','Leipzig',
'Landshut','Nürnberger Land in Lauf/Pegnitz','Ludwigsburg','Lobenstein','Lübz','Luckau',
'Landau (Stadt)','Lahn-Dill-Kreis in Wetzlar','Leer/Ostfriesland','Leverkusen (Stadt)',
'Lüneburg','Lindau/Bodensee','Bad Liebenwerda','Lichtenfels','Lippe in Detmold',
'Landsberg/Lech','Limburg-Weilburg in Limburg/Lahn','Lübben','Lörrach','Löbau',
'Sachsen-Anhalt, Landesregierung und Landtag','Sachsen, Landesregierung und Landtag',
'Bad Langensalza','Ludwigshafen/Rhein','Luckenwalde','Ludwigslust','München',
'Mannheim (Stadt)','Marienberg','Miesbach','Malchin','Magdeburg (Stadt)','Mettmann',
'Meißen','Merseburg','Mönchengladbach (Stadt)','Meiningen','Mülheim/Ruhr (Stadt)',
'Mühlhausen','Minden-Lübbecke in Minden','Miltenberg','Märkischer Kreis in Lüdenscheid',
'Memmingen (Stadt)','Unterallgäu in Mindelheim','Neckar-Odenwald-Kreis in Mosbach',
'Marburg-Biedenkopf in Marburg/Lahn','Münster/Westfalen (Stadt)',
'Main-Spessart-Kreis in Karlstadt','Main-Taunus-Kreis in Hofheim a. Taunus',
'Mühldorf a. Inn','Mecklenburg-Vorpommern, Landesregierung und Landtag',
'Mayen-Koblenz in Koblenz','Mainz-Bingen und Mainz (Stadt)',
'Merzig-Wadern in Merzig/Saar','Nürnberg (Stadt)','Nauen','Neubrandenburg',
'Neuburg-Schrobenhausen in Neuburg/Donau','Nordhausen','Neuss',
'Neustadt-Bad Windsheim in Neustadt/Aisch','Nebra','Rhön-Grabfeld in Bad Neustadt/Saale',
'Neustadt/Waldnaab','Nordfriesland in Husum','Neuhaus','Nienburg/Weser',
'Neunkirchen/Saar','Niedersachsen, Landesregierung und Landtag','Neumarkt/Oberpfalz',
'Naumburg','Neumünster (Stadt)','Grafschaft Bentheim in Nordhorn','Northeim','Neuruppin',
'Neuwied/Rhein','Nordrhein-Westfalen, Landesregierung und Landtag','Neu-Ulm',
'Neustadt/Weinstraße (Stadt)','Niesky','Neustrelitz','Oberallgäu in Sonthofen',
'Ostallgau in Marktoberdorf','Oberhausen/Rheinland (Stadt)','Osterburg','Oschersleben',
'Stormarn in Bad Oldesloe','Olpe','Offenbach/Main','Ortenaukreis in Offenburg',
'Ostholstein in Eutin','Osterode/Harz','Osterholz in Osterholz-Scharmbeck',
'Oldenburg in Oldenburg','Oranienburg','Osnabrück',
'Obervogtland in Klingenthal und Oelsnitz','Oschatz','Potsdam','Passau',
'Pfaffenhofen/Ilm','Rottal-Inn in Pfarrkirchen','Paderborn','Parchim','Peine','Perleberg',
'Enzkreis und Pforzheim (Stadt)','Pinneberg','Pirna','Pritzwalk','Plauen','Plön/Holstein',
'Pößneck','Pirmasens','Pasewalk','Prenzlau','Querfurt','Quedlinburg','Regensburg',
'Rastatt','Reichenbach','Rendsburg-Eckernförde in Rendsburg','Ribnitz-Damgarten',
'Recklinghausen in Marl','Regen','Roth','Riesa','Rochlitz','Röbel/Müritz','Rathenow',
'Rosenheim','Rostock (Kreis)','Rotenburg/Wümme',
'Rheinland-Pfalz, Landesregierung und Landtag','Remscheid (Stadt)','Roßlau','Reutlingen',
'Rudolstadt','Rheingau-Taunus-Kreis in Bad Schwalbach','Rügen in Bergen','Ravensburg',
'Rottweil','Herzogtum Lauenburg in Ratzeburg','Stuttgart (Stadt)','Schwandorf',
'Saarland, Landesregierung und Landtag','Salzwedel','Strasburg','Schönebeck',
'Schwabach (Stadt)','Schleiz','Sondershausen','Stendal','Schwedt/Oder (Stadt)',
'Bad Segeberg','Sebnitz','Seelow','Soltau-Fallingbostel in Fallingbostel','Senftenberg',
'Staßfurt','Solingen (Stadt)','Sangerhausen',
'Schleswig-Holstein, Landesregierung und Landtag','Schwäbisch Hall',
'Schaumburg in Stadthagen','Suhl','Siegen','Sigmaringen',
'Rhein-Hunsrück-Kreis in Simmern','Saalkreis in Halle','Schleswig-Flensburg in Schleswig',
'Saalfeld','Schmölln','Saarlouis','Bad Salzungen','Schmalkalden','Schwerin','Soest',
'Sonneberg','Sömmerda','Speyer (Stadt)','Spremberg',
'Straubing-Bogen und Straubing (Stadt)','Strausberg','Stadtroda','Steinfurt','Starnberg',
'Sternberg','Stade','Stollberg','Rhein-Sieg-Kreis in Siegburg',
'Südliche Weinstraße in Landau','Schweinfurt','Salzgitter (Stadt)','Schwarzenberg',
'Main-Tauber-Kreis in Tauberbischofsheim','Teterow','Torgau',
'Thüringen, Landesregierung und Landtag','Tirschenreuth',
'Bad Tölz-Wolfratshausen in Bad Tölz','Templin','Trier-Saarburg und Trier (Stadt)',
'Traunstein','Tübingen','Tuttlingen','Uelzen','Ueckermünde',
'Alb-Donau-Kreis und Ulm (Stadt)','Unna','Vogelsbergkreis in Lauterbach/Hessen','Vechta',
'Verden/Aller','Viersen','Völklingen (Stadt)',
'Schwarzwald-Baar-Kreis in Villingen-Schwenningen','Wuppertal (Stadt)',
'Warendorf in Beckum','Wittenberg','Worbis','Werdau','Weimar','Weiden/Oberpfalz (Stadt)',
'Wesel','Wolfenbüttel','Wiihelmshaven (Stadt)','Wiesbaden (Stadt)',
'Bernkastel-Wittlich in Wittlich','Wismar (Kreis)','Wittstock','Harburg in Winsen/Luhe',
'Wolgast','Weilheim-Schongau in Weilheim/Oberbayern','Wolmirstedt',
'Rems-Murr-Kreis in Waiblingen','St. Wendel','Worms (Stadt)','Wolfsburg (Stadt)',
'Wernigerode','Waren','Weißenfels','Ammerland in Westerstede','Weißwasser',
'Waldshut in Waldshut-Tiengen','Wittmund','Würzburg',
'Weißenburg-Gunzenhausen in Weißenburg/Bayern','Wunsiedel','Wurzen',
'Westerwald-Kreis in Montabaur','Wanzleben',
'Bundeswehr f. Fahrzeuge d. NATO-Hauptquartiere','Bundeswehr','Zwickau','Zerbst','Zittau',
'Zschopau','Zeulenroda','Zossen','Zweibrücken (Stadt)','Zeitz',
'Fahrzeuge des Diplomatischen Corps',
'Dienstkraftwagen des Präsidenten des Deutschen Bundestages',
'Das ist kein deutsches Kennzeichen!');

{***************************************************************************}
{* PROCEDURE 1 *************** M E N U *************************************}
{***************************************************************************}
procedure MENU;
begin
 textbackground(LightGray);  window(1,1,80,25); clrscr; {GesamtHintergrund}
 textbackground(Black);      window(7,3,78,12); clrscr; {Schatten Menu}
 textbackground(Brown);      window(5,2,76,11); clrscr; {MenuFenster}
 textcolor(Yellow);                                 {gelber Text}
 gotoxy(17,2);write('Autokennzeichen der BRD (C)94 by Dave Sun');     {Überschrift}
 gotoxy(15,3);write('ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ'); {Überschrift}
 textcolor(Black);                                  {schwarzer Text}
 window(9,6,76,11);                                 {erspart gotoxy}
 writeln('Geben Sie ein Kennzeichen ein (z.B. WE), bei Enter wird nach dem');
 writeln('zugehörigen Ort gesucht und  ausgegeben. Dies können Sie solange');
 writeln('wiederholen bis Sie ESC drücken. Geben  Sie ein Fragezeichen ein');
 writeln('und  Sie  erhalten einen  Gesamtüberblick über alle Kennzeichen.');
 writeln('Das Listing können Sie mit Cursor-Tasten, PgDn und PgUp steuern.');
 textbackground(Black); window(9,16,76,23); clrscr; {Schatten EingabeTabelle}
 textbackground(Blue);  window(7,15,74,22); clrscr; {EingabeTabelleFenster}
 textcolor(LightGray);                              {Hellgraue TextFarbe}
 gotoxy(9,2);write('**************************************************');
 gotoxy(8,3);write('***********************       **********************');
 gotoxy(9,4);write('**************************************************');
end;
{***************************************************************************}
{* PROCEDURE 2 *************** E I N G A B E *******************************}
{***************************************************************************}
{string3 siehe type-Deklaration /"var" Übergabe der geänderten Variablen}
procedure EINGABE(var buf:string3;var c:char);
var
 lv2:integer;                        {VariablenDeklaration}

begin
 textcolor(LightCyan);               {HellCyaner Text}
 lv2:=0;buf:='';                     {EingabeLänge und String Leeren}
 gotoxy(32,3);                       {KennZeichenKürzelKoordinate setzen}
 while(keypressed) do c:=readkey;    {TastenPuffer Leeren}
 while(NOT(keypressed)) do;          {jetzt warten auf TastenDruck}
 write('      ');                    {Lösche Altes KennZeichenKürzel}
 gotoxy(6,6);                        {Position auf Erläuterung und löschen}
 write('                                                          ');
 gotoxy(32,3);                       {EingabeKoordinate wieder herstellen}
 repeat                              {Eingabeteil}
 c:=readkey;                         {Registrierung des TastenDrucks}
 if ord(c)=0 then begin              {SteuerungsTaste wurde gedrückt}
    c:=readkey;c:='#';end;           {unzulässiges Zeichen einsetzen}
 if(c>='a')AND(c<='z') then c:=chr(ord(c)-32); {GroßbuchstabenWandel}
 if(c='ä') then c:='Ä';              {UmWandlung der SonderZeichen}
 if(c='ö') then c:='Ö';              {von klein in GroßBuchstaben}
 if(c='ü') then c:='Ü';
 if(((ord(c)>64)AND(ord(c)<91))OR    {ist das Zeichen ein "A" bis "Z"}
   (c='Ä')OR(c='Ö')OR(c='Ü')OR       {oder ein SonderZeichen}
   (c='-')OR(c='0')OR(c='1'))AND     {oder ein anderes zulässiges Zeichen}
   (lv2<3) then begin                {Und ist EingabeLänge nicht überschrittn}
      lv2:=lv2+1;buf:=buf+c;         {EingabeLänge und EingabeString anpassen}
      write(c,' ');end               {Ausgabe des Zeichens}
 else begin                   {wurde ein unzulässiges Zeichen eingegeben}
      if ((ord(c)<>13)AND     {ENTER ESC und "?" sind zulässige Zeichen,}
          (ord(c)<>27)AND     {desshalb nehme ich diese Zeichen raus}
          (c<>'?')) then begin
          Sound(520);         {entspricht Beep}
          Delay(100);         {SoundLänge 100ms}
          NoSound;end;        {Sound ausschalten}
 end;                         {ENDE wurde ein unzulässiges Zeichen eingegeben}
 until ((ord(c)=13)OR(ord(c)=27)OR(c='?')); {Abbruch des Einlesens bei Enter}
end;
{***************************************************************************}
{* PROCEDURE 3 *************** L I S T I N G *******************************}
{***************************************************************************}
procedure LISTING;
var lv1,lv2:integer;      {VariablenDeklaration - LaufVariablen}
          c:char;         {Charakter zum Lesen der Tastatur}
begin
 lv1:=0;                  {Start des Listings bei String Null}
 window(1,1,80,25);       {VollBild}
 textcolor(Brown);        {brauner Text}
 textbackground(Black);   {auf schwarzem Hintergrund}
 repeat                   {Äußere ListingSchleife}
   clrscr;                {BildSchirm löschen}
   for lv2:=1 to 24 do begin             {neuer BildAufBau mit 24 Zeilen Text}
     gotoxy(9,lv2); write(code[lv1+lv2]);{KennZeichenKürzel schreiben}
     gotoxy(15,lv2);write(name[lv1+lv2]);{dazugehöriger Name dahinter}
   end;                                  {Ende BildSchirmAufBau}
   repeat                                {TastenSteuerungsTeil}
     c:=readkey;                         {Lesen einer Taste}
     if ord(c)=0 then begin c:=readkey;  {SteuerungsTastenAuswertung}
       if (c='I')AND(lv1>0) then begin   {PGUp SeitenWeise nach oben}
          lv1:=lv1-24;c:=chr(0);end;     {Listingstring anpassen / ExitCode}
       if (c='H')AND(lv1>0) then begin   {UP   ZeilenWeise nach oben}
          lv1:=lv1-1; c:=chr(0);end;     {Listingstring anpassen / ExitCode}
       if (c='P')AND(lv1<489) then begin {Down ZeilenWeise nach unten}
          lv1:=lv1+1; c:=chr(0);end;     {Listingstring anpassen / ExitCode}
       if (c='Q')AND(lv1<489) then begin {PGDN SeitenWeise nach unten}
          lv1:=lv1+24;c:=chr(0);end;     {Listingstring anpassen / ExitCode}
       if lv1<1   then lv1:=0;           {FeldLänge würde unterschritten?}
       if lv1>489 then lv1:=489;         {FeldLänge würde überschritten?}
     end;                                {ENDE SteuerungsTastenAuswertung}
   until ((ord(c)=27)OR(ord(c)=0));      {ENDE TastenSteuerungsTeil}
 until (ord(c)=27);             {ENDE Äußere ListingSchleife bei ESC}
end;
{***************************************************************************}
{* PROCEDURE 4 ********** E I N Z E L S U C H E ****************************}
{***************************************************************************}
procedure SUCHE(buf:string3);            {Übergabe ohne Änderung}
{Die letzte Erläuterung(514) sagt aus, daß kein Kennzeichen}
{gefunden wurde siehe name[] ! ! ! ! }
var lv2:integer;                         {VariablenDeklaration}
begin
 lv2:=0;                                 {Start der Such ab 1. Kürzel}
 repeat                                  {Beginn der SuchSchleife}
  lv2:=lv2+1;                            {KürzelPosition erhöhen}
 until (lv2=514)OR(buf=code[lv2]);       {Abbruch gefunden oder nicht}
 gotoxy(34-(length(name[lv2]) div 2),6); {Zentrierte AusgabeKoordinate}
 write(name[lv2]);                       {Ausgabe der gefundenen Erläuterung}
end;
{***************************************************************************}
{********************** H A U P T P R O G R A M M **************************}
{***************************************************************************}
var               {Variablen für alle nutzbar aber nicht ganz global}
      c:char;     {zum Tastaturlesen}
 buffer:string3;  {KennZeichenkürzel siehe Typ-Def. Stringlänge=3}
begin
 MENU;                      {AufBau des gesamten BildSchirms}
 repeat                     {große ProgrammSchleife}
   EINGABE(buffer,c);       {EingabeAufforderung aufrufen}
   if c='?' then begin      {wurde ein FrageZeichen eingegeben}
      LISTING;              {dann ListingAufruf}
      MENU;end              {gesamter BildSchirm regenerieren}
   else SUCHE(buffer);      {ansonsten suche die Erläuterung}
 until (ord(c)=27);         {ENDE große ProgrammSchleife / Abbrechen bei ESC}

 textcolor(LightGray);      {Hellgrauer Text}
 textbackground(Black);     {Schwarzer Hintergrund}
 window(1,1,80,25);         {maximales Fenster}
 clrscr;                    {Bildschirm löschen}
end.
{********************  E N D E   H A U P T P R O G R A M M  *****************}