program forum;

{ FORUM-PC 2.1 (C) 1986 KENNETH J. DUDA }
{ FORUM-PC 2.5 (C) 1989 Kenneth J. Duda
                   1989 Kevin Boyles    }

{$R-,S-,I-,V-,B-}  { Change to L+ if you have tons of memory }
                   { This will make Forum-PC link much faster }

{$M 65500,0,655360}


Uses Overlay,
     OverInit,
     Crt,
     Dos,
     Printer,

     gentypes,
     configrt,
     modem,
     statret,
     gensubs,
     subs1,
     windows,
     subs2,
     textret,
     mailret,
     userret,
     flags,
     mainr1,
     ansiedit,
     lineedit,
     chatstuf,
     mainr2,
     overret1,
     protocol,
     About,
     Bulletin,
     EchoNet,
     Configur,
     Database,
     Doors,
     Email,
     Filexfer,
     Forumtrm,
     Getlogin,
     Overret2,
     Titlepg,
     Voting,
     Waitcall,
     Mycomman,
     MainMenu,
     Main;

{$O MailRet}
{$O UserRet}
{$O Flags}
{$O MainR1}
{$O AnsiEdit}
{$O LineEdit}
{$O ChatStuf}
{$O Protocol}

{$O About}
{$O Bulletin}
{$O EchoNet}
{$O Doors}
{$O ConfigUr}
{$O DataBase}
{$O Email}

{$O ForumTrm}
{$O GetLogin}
{$O OverRet2}
{$O TitlePg}
{$O Voting}
{$O WaitCall}
{$O MyComman}
{$O MainMenu}

VAR gotoforumterm : boolean;

Begin
  checkbreak:=false;
  readconfig;
  validconfiguration;
  init (true);
  returnto := ' ';
  fromdoor:=paramcount>=3;
  if not (fromdoor or carrier) then titlepage;
  repeat
    gotoforumterm:=false;
    returnfromdoor;
    if not fromdoor then begin
      gotoforumterm:=waitforacall;
      if gotoforumterm then forumterm else getloginproc
    end;
    if not gotoforumterm then begin
      votingbooth (true);
      mainmenuproc;
      fromdoor:=false;
      if not disconnected then disconnect;
      ensureclosed;
      clrscr;
      if sysnext then begin
        dontanswer;
        halt(4)
      end;
      init (false)
    end
  until not gotoforumterm;
  dontanswer;
  halt(0)
end.
