*/
Want to see what people are talking about? See the latest forum posts.
*/

View \NODEEDIT.PAS

Full Source Code To Vision Bbs System

Submitted By: WEBMASTER
Rating: (Not rated) (Rate It)


Program NodeLists;        (* Generic program to
                             set up the node lists for
                             netmail ver 1.01 *)


Uses Crt,Dos,Gentypes,Configrt,GenSubs,PullTTT5;

Var Node:NodeNetRec;
    Fn:File of NodeNetRec;
    Input:String;
    I,J,Cnt:Integer;
    C:Char;
    TheMenu:Pull_Array;
    Major,Minor:Byte;

Procedure ShowNode;
Begin
  ClrScr;
  WriteLn('Node #',i);
  WriteLn('Node Password        :',node.Pass);
  WriteLn('Node Name            :',Node.Name);
  WriteLn('Node Phone Number    :',Node.Phone);
  WriteLn('Node Baud Rate       :',Node.Baud);
  WriteLn('Node ID Number       :',Node.Node);
  WriteLn;
  WriteLn('Press Any Key to View Bases Netted.');
  C:=ReadKey;
  ClrScr;
  For I:=1 to 255 Do
    If Node.BaseSelection[I] Then WriteLn('Base Id #',I,' is NetWorked.');
  WriteLn;
  Write('Press Any Key to Continue.');
  C:=ReadKey;
  End(* End ShowNode *)

Procedure DisplayNodeInformation;
Begin
  ClrScr;
  Write('Which Node to List:[1-',filesize(Fn),']:');
  ReadLn(Input);
  I:=Valu(Input);
  If (I<1) or (I>(FileSize(Fn))) Then Else Begin
  Seek(Fn,I-1);
  Read(Fn,Node);
  ShowNode;
  End; (* End If then Begin *)
End; (* End DisplayNodeInformation *)

Procedure InitializeThisStuff;
Begin
  ReadConfig;
  Assign(Fn,ConfigSet.ForumDi+'NodeList.BBS');
  If Exist (ConfigSet.ForumDi+'NodeList.BBS') then
    Reset(Fn) Else ReWrite(Fn);
  ClrScr;
  WriteLn('ViSiON BBS Cheap and Sleazy Node Editor Version 1.00');
  GotoXy(24,23);
  Write('Press Any Key To Continue');
  C:=ReadKey;
  ClrScr;
  FillChar(TheMenu,SizeOf(TheMenu),0);
  TheMenu[1]:='\Node Maintenance';
  TheMenu[2]:='List Nodes';
  TheMenu[3]:='Edit a Node';
  TheMenu[4]:='Delete a Node';
  TheMenu[5]:='\Add a Node      ';
  TheMenu[6]:='\About Node Edit ';
  TheMenu[7]:='\Quit Node Editor';
  TheMenu[8]:='\\';
  Major:=1;
  Minor:=1;
End;         (* End InitializeThisStuff *)

Procedure AboutNodeEdit;
Begin
  ClrScr;
  WriteLn('ViSiON Node Editor Version 1.00 is written using TechnoJocks Toolkit.');
  WriteLn('It was written for the implementation of NetWorking version 1.01 which is');
  WriteLn('A TRUE Bi-Directional NetMail routine.');
  WriteLn('This program will be implemented in a rather condensed form in ViSiON BBS');
  WriteLn('Some time in the near future. Thank you.');
  GotoXy(24,23);
  Write('Press Any Key to Continue.');
  C:=ReadKey;
End;               (* End AboutNodeEdit *)


Procedure AddNode;
Begin
  ClrScr;
  FillChar(Node,SizeOf(Node),0);
  Write('Enter Node Password:');
  ReadLn(Input);
  If Input='' then Exit;
  Node.Pass:=Input;
  Write('Enter Node Name:');
  ReadLn(Input);
  If Input='' then Exit;
  Node.Name:=Input;
  WriteLn('For this do NOT include any "-"s or "("s');
  Write('Enter Node Phone Number:');
  ReadLn(Input);
  If Input='' then Exit;
  Node.Phone:=Input;
  Write('Enter node Baud Rate (ex:38400):');
  ReadLn(Input);
  If Input='' then Exit;
  If Input='1200' then Node.Baud:=1200;
  If Input='2400' then Node.Baud:=2400;
  If Input='4800' then Node.Baud:=4800;
  If Input='9600' then Node.Baud:=9600;
  If Input='19200' then Node.Baud:=19200;
  If Input='38400' then Node.Baud:=38400;
  Write('Enter Node ID Address:');
  ReadLn(Input);
  If Input='' then Exit;
  Node.Node:=Input;
  ClrScr;
  WriteLn('Now we are going to pick the BASE ID''s to be networked.');
  WriteLn('Just enter the net ID''s that you WISH to pick up and then enter');
  WriteLn('A "0" when you are done.');
   Repeat
     Write('Base Id:');
     ReadLn(Input);
     I:=Valu(Input);
     If (I>0) and (I<256) then Node.BaseSelection[I]:=True;
     If (I>255) or (I<0) then WriteLn('Invalid range!');
   Until I=0; (* End Repeat Loop *)
   Write('Adding node to list...');
   Seek(Fn,FileSize(Fn));
   Write(Fn,Node);
   WriteLn('Completed!');
   WriteLn('Press Any Key to Continue.');
   C:=ReadKey;
  End;               (* End AddNode *)

Procedure DeleteNode;
Begin
  ClrScr;
  Write('Whice Node to Delete [1-',filesize(Fn),']:');
  ReadLn(Input);
  I:=Valu(Input);
  If (I<1) or (I>FileSize(Fn)) then Exit;
  Write('Deleting Node...');
  Dec(I);
  For Cnt:=i to FileSize(Fn)-2 do Begin
    Seek(Fn,Cnt+1);
    Read(Fn,Node);
    Seek(Fn,Cnt);
    Write(Fn,Node);
  End;
  Seek(Fn,FileSize(Fn)-1);
  Truncate(Fn);
  Close(Fn);
  Assign(Fn,Configset.ForumDi+'NodeList.BBS');
  Reset(Fn);
  WriteLn('Deleted.');
  WriteLn;
  WriteLn('Press Any Key to Continue.');
  C:=ReadKey;
End; (* End DeleteNode *)

Procedure EditNode;
Var EditMenu:Pull_Array;
    EMajor,EMinor:Byte;
    NodeNum:Integer;

  Procedure InitEditor;
  Begin
    FillChar(EditMenu,SizeOf(EditMenu),0);
    EMajor:=1;
    Eminor:=1;
    EditMenu[1]:='\General Editing ';
    EditMenu[2]:='Phone Number';
    EditMenu[3]:='Baud Rate';
    EditMenu[4]:='Node Name';
    EditMenu[5]:='Show Node Info';
    EditMenu[6]:='\Specific Editing';
    EditMenu[7]:='Node Password';
    EditMenu[8]:='Node ID Number';
    EditMenu[9]:='\Net Worked Bases';
    EditMenu[10]:='\Quit Editing    ';
    EditMenu[11]:='\\';
  End; (* End InitEditor *)

  Procedure GetPhoneNum;
  Begin
    ClrScr;
    Write('Enter the NEW Phone Number for this Node:');
    ReadLn(Input);
    If Input<>'' then Node.Phone:=Input;
  End(* End GetPhoneNum *)

  Procedure GetName;
  Begin
    ClrScr;
    Write('Enter the NEW Name for this Node:');
    ReadLn(Input);
    If Input<>'' then Node.Name:=Input;
  End; (* End GetName *)

  Procedure GetBaud;
  Begin
    ClrScr;
    Write('Enter the New baud Rate for this node:');
    ReadLn(Input);
    If Input='1200' then Node.Baud:=1200
      Else
    If Input='2400' then Node.baud:=2400
      Else
    If Input='4800' then Node.Baud:=4800
      Else
    If Input='9600' then Node.Baud:=9600
      Else
    If Input='19200' then Node.Baud:=19200
      Else
    If Input='38400' then Node.Baud:=38400;
  End; (* End GetBaud *)
  Procedure NodePassword;
  Begin
    ClrScr;
    Write('Enter the NEW Node Password:');
    ReadLn(Input);
    If Input<>'' then Node.Pass:=Input;
  End; (* End NodePassword *)

  Procedure NodeIDNumber;
  Begin
    ClrScr;
    Write('Enter the NEW Node ID Number:');
    ReadLn(Input);
    If Input<>'' then Node.Node:=Input;
  End; (* End NodeIDNumber *)

  Procedure NetBases;
  Begin
    ClrScr;
    WriteLn('To Change the status of a base ID Number to network, just enter the');
    WriteLn('The Base Number to change. When you are finished, just enter a "0"');
    WriteLn;
    Repeat
      Write('Base ID To change:');
      ReadLn(Input);
      I:=Valu(Input);
      If (I>0) and (I<256) then Begin
         Node.BaseSelection[I]:=Not Node.BaseSelection[I];
         If Node.BaseSelection[I] then WriteLn('Base ID:',i,' WILL be networked.')
         Else
         WriteLn('Base ID:',I,'Will NOT be networked.');
      End; (* End Conditional Begin *)
    Until I=0; (* End Repeat Loop *)
  End; (* End NetBases *)

  Begin (* Begin Main EditNode Loop *)
    InitEditor;
    ClrScr;
    Write('Enter the Node to Edit: [1-',filesize(Fn),']:');
    ReadLn(Input);
    I:=Valu(Input);
    If (I<1) or (I>FileSize(Fn)) then Else Begin
      Seek(Fn,I-1);
      Read(Fn,Node);
      NodeNum:=i-1;
      Repeat  (* Begin Main Repeat Loop *)
        ClrScr;
        Pull_Menu(EditMenu,Emajor,Eminor);
        Case EMajor of
          1:Case Eminor of
              1:GetPhoneNum;
              2:GetBaud;
              3:GetName;
              4:ShowNode;
            End; (* End Eminor case *)
          2:Case Eminor of
              1:NodePassword;
              2:NodeIDNumber;
             End; (* End Case Eminor *)
          3:NetBases;
        End; (* End Case *)
      Until Emajor=4; (* End Main Repeat Loop *)
    Seek(Fn,NodeNum);
    Write(Fn,Node);
  End; (* End Conditional IF Then *)
End; (* End EditNode *)


Begin
 InitializeThisStuff;
 Repeat
 ClrScr;
 Pull_Menu(TheMenu,Major,Minor);
 Case Major of
   1:Case Minor of
      1:DisplayNodeInformation;
      2:EditNode;
      3:DeleteNode;
      End; (* End Case *)
   2:AddNode;
   3:AboutNodeEdit;
 End(* End Case *)
 Until Major=4(* End Repeat Loop *)
 ClrScr;
 WriteLn('Thank you for Choosing ViSiON BBS Software!');
 GotoXy(23,10);
 WriteLn('Cheap and Sleazy Node Editor');
 GotoXy(22,11);
 WriteLn('Written by Ken Sallot (c) 1990');
 Close(Fn);
End.        (* End Program *)

corner
© 1996-2008 CommunityHeaven LLC. All rights reserved. Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
North American business development: Nicolai Wadstrom. Publisher: Lars Hagelin.