{ ------------------------------------------------------------------- }
{ Dieser Quelltext ist urheberrechtlich geschuetzt.                   }
{ (c) 1991-1999 Peter Mandrella                                       }
{ (c) 2000-2001 OpenXP-Team                                           }
{ (c) 2002-2026 FreeXP, http://www.freexp.de                          }
{ CrossPoint ist eine eingetragene Marke von Peter Mandrella.         }
{                                                                     }
{ Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der     }
{ Datei SLIZENZ.TXT oder auf http://www.crosspoint.de/oldlicense.html }
{ ------------------------------------------------------------------- }

{   Cross \\//         }
{         //\\ Point   }

{$I XPDEFINE.INC }

{$M 32768,131072,655360}

program xp;

uses xpx, crt, dos,typeform,uart,keys,fileio,inout,help,video,datadef,
     database,databaso,maske,mouse,maus2,winxp,win2,montage,lister,archive,
     printerx,crc,resource,stack,clip,eddef,editor,feiertag,
     xpdiff,xpdatum,xpglobal,
{$IFDEF CAPI }
     capi,
{$ENDIF }
     xp0,      { Definitionen       }
     xp1,      { allg. Routinen     }
     xp1o,
     xp1o2,
     xp1help,  { Online-Hilfe u.a.  }
     xp1input, { Eingabefunktionen  }
     xp2b,
     xpnt,     { Netztypen          }
     xp_des,   { DES-Codierung      }
     xp_pgp,   { PGP-Codierung      }
     xpkeys,   { F-Tasten/Makros    }
     xp_uue,   { UUencode/UUdecode  }
     xp2,      { Startup            }
     xp2x,     { Startup X          }
     xp2m,     { Erweitertes Startup}
     xp2db,    { Database-Startup   }
     xp2c,     { Konfiguration      }
     xp2f,     { Farben & F-Keys    }
     xp3,      { Datenbearbeitung   }
     xp3o,
     xp3o2,
     xp3ex,    { Msg. extrahieren   }
     xp4,      { Hauptmodul         }
     xp4e,
     xp4o,
     xp4o2,    { Bez ge, packen     }
     xp4o3,
     xp4rta,   { Reply-To-All       }
     xpauto,   { Autoversand/-Exec  }
     xp5,      { Utilities          }
     xpreg,    { Registrierung      }
     xp6,      { Nachrichten senden }
     xp6o,     { Unversandt, Weiterleiten }
     xp7,      { Netcall            }
     xp7o,
     xp7f,     { Fido-Netcall       }
     xpuu,     { ucico              }
     xp8,      { 'maps & Filesercer }
     xp9,      { UniSel (B/G/S/K)   }
     xp10,     { Timing-Lst./Makros }
     xpe,      { Editor             }
     xpstat,   { Statistik          }
     xpterm,   { CrossTerm          }
     xpcc,     { Verteiler          }
     xpfido,   { Nodelist u.a.      }
     xpfidonl, { Nodelist-Config    }
     xpf2,     { TIC-File auswerten }
     xpmaus,   { Maus-Funktionen    }
     xp_iti,   { Maus-ITI-Infofile  }
     xpview,   { Binfile-Viewer     }
     xpmime,   { Multipart-Decode   }
     xpfonts,  { interne Fonts      }
     xpimpexp, { Import/Export      }
     lfn;      { Long filenames     } 

{$O win2}    {$O help}    {$O maske}    {$O lister}   {$O archive}
{$O clip}    {$O editor}  {$O databaso} {$O feiertag} {$O encoder }
{$O xp_uue}  {$O xp1o}    {$O xp1o2}    {$O xp_pgp}   {$O xp1input}
{$O xp1help} {$O xp2b}    {$O xp2x}
{$O xp2}     {$O xp2c}    {$O xp2f}     {$O xp2db}    {$O xp2m}
{$O xp3o}    {$O xp3o2}   {$O xp3ex}    {$O xp4rta}
{$O xp4}     {$O xp4e}    {$O xp4o}     {$O xp4o2}    {$O xp4o3}
{$O xpauto}  {$O xp5}     {$O xpreg}    {$O xp6}      {$O xp6o}
{$O xp7}     {$O xp7o}    {$O xp7f}     {$O xp6n}
{$O xpuu}    {$O xp8}     {$O xp9}      {$O xp9bp}    {$O xp10}    {$O xpe}
{$O xpstat}  {$O xpterm}  {$O xpcc}     {$O xpmaus}   {$O xp_iti}
{$O xpfido}  {$O xpf2}    {$O xpfidonl}
{$O xpview}  {$O xpmime}  {$O xpimpexp} {$O xpfonts}  {$O xpglobal }
{$O xpnt}    {$O xpdatum} {$O xp3}      {$O crc }     {$O mimedec}
{$O xp_des}  {$O xpkeys}  {$O xpdiff}   {$O eddef}    {$O stack}
{$O montage} {$O xpovl}   {$O xp9sel }  {$O xp1 }     {$O xpcfg }

{$IFDEF CAPI }
{$O capi }
{$ENDIF }

label ende;

var pwcnt:byte;
    pwrc:boolean;

begin
  readpar;
  loadresource;
  initvar;
  testlock;
  TestAutostart;
  if not quit then
  begin
    cursor(curoff);
    defaultcolors; SetColors;
    read_regkey;
    readconfig;    { setzt Men s }
    if ParG1 or ParG2 then
    begin
      gtest;
      goto ende;
    end;
    test_pfade;
    readkeydefs;
    if not parmono then
    begin
      readcolors;
      if not exist(ColCfgfile) then savecolors;
      SetColors;
    end;
    showscreen(true);
    ExErase('NETCALL.ALL');
    ExErase('NETCALL.END');
    DelTmpfiles('*.$$$');
    if not DelViewTmp then Delviewtmp:=(getenv('DELVTMP')<>'');
    if Delviewtmp then begin  {Temporaere Viewer-Files loeschen}
      DelTmpFiles('TMP-????.*');
      DelTmpFiles(temppath+'TMP-????.*');
      end;
    testdiskspace;
    testmpuffer;
    testfilehandles;
    initdatabase;
    pwcnt:=0; { drei PW-Versuche, dann beenden }
    repeat
      pwrc:=password;
      inc(pwcnt);
    until (pwrc or (pwcnt=3));
    if pwrc then
    begin
      test_defaultbox;
      ReadDomainlist;
      if quit then
      begin    { Registrierungshinweis abgebrochen }
        closedatabases;
        exitscreen(0);
        goto Ende;
      end;
{$IFDEF Beta } { Betameldung anzeigen, /nb schaltet diese ab }
      if not ParNoBeta and (ParTiming = 0) then
      begin
        BetaMessage;
        if quit then
        begin    { Betahinweis abgebrochen }
          closedatabases;
          exitscreen(0);
          goto Ende;
        end;
      end;
{$ENDIF }
      if parTiming = 0 then
      begin
        if UKA and not ukawp then askRTA(true,1);
        if not ParNoDLL then
        begin
          {$IFNDEF NO386}
          test_dll;
          {$ENDIF }
          if quit then
          begin     { Hinweis auf falsche/fehlende XP_NTVDM.DLL abgebrochen }
            closedatabases;
            exitscreen(0);
            goto Ende;
          end;
        end;
        askRTA(true,0);        { Bei neuer Version RTA-Konfiguration abfragen }
      end;
      setAutoTZ(true);             { autom. Zeitzonen-Umstellung aktivieren }
      test_defaultgruppen;
      test_systeme;
      DefaultViewer := nil;
      DefTextViewer := nil;
      PTextViewer := nil;
      ReadDefaultViewers;
      testtelefon(telefonnr^);
      check_date;
      checkTimeZone(true);  { Zeitzone pr fen und ggf.  ndern }
      InitNodelist;
      startup:=false;
      showusername;
      AutoSend;
      AutoExec(true);
      if not AutoMode then     { in XP7 }
        mainwindow;
      AutoStop;
      FlushSmartdrive(true);
      closedatabases;
      exitscreen(iif(ParNojoke,0,1));
      delete_tempfiles;
      set_checkdate;
    end
  else
    exitscreen(2);
  end;
ende:
  closeresource;
  {$IFNDEF NO386}
  DestructWinVersion;
  {$ENDIF }
  runerror:=false;
  halt(errlevel);
end.
