home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / PASCAL / TPKERMIT / MISCCOMM.PAS < prev    next >
Pascal/Delphi Source File  |  1987-03-25  |  4KB  |  104 lines

  1. (* +FILE+ MISCCOMM.PASMSCPM *)
  2. (* ================================================================== *)
  3. (* LOGIT - creates a Log file to record all incoming data from the    *)
  4. (*       remote line.                                                 *)
  5. (*           The file name is specified in the Parameter .            *)
  6. (*               if no parameter specified logging is turned off.     *)
  7. (* ================================================================== *)
  8. Procedure Logit  (filename : comstring);
  9. Begin (* Logit Procedure *)
  10. If (length(filename) < 3) or (filename='OFF') then
  11.     Begin (* Turn off Logging *)
  12.     Logging := false ;
  13.     Close (Logfile);
  14.     Writeln (' Logging is turned off ');
  15.     End   (* Turn off Logging *)
  16.                         else
  17.     Begin (* Turn on Logging *)
  18.     If Logging then Close (Logfile);
  19.     Logging := True ;
  20.     Assign(Logfile,Filename);
  21.     Rewrite(Logfile);
  22.     Writeln(' Logging data to file ',filename);
  23.     LogName := filename ;
  24.     End ; (* Turn on Logging *)
  25. End ; (* Logit Procedure)
  26.  
  27. (* ================================================================== *)
  28. (* Takeit - read commands from a file and executes them.              *)
  29. (*          if no file specified or file is not there if does nothing *)
  30. (* ================================================================== *)
  31. Procedure Takeit  (filename : comstring);
  32. Begin (* Takeit Procedure *)
  33. If length(filename) > 1 then
  34.     If Firstfile(filename,dummy) then
  35.          Begin (* Active file *)
  36.          Writeln ('Activating Command file ',filename);
  37.          ActiveCommandfile := true ;
  38.          Assign(Commandfile,filename);
  39.          Reset(Commandfile);
  40.          End  (* Active file *)
  41.                                 else
  42.          Writeln('No file ',filename) ;
  43. End ; (* Takeit Procedure)
  44.  
  45. (* ================================================================== *)
  46. (* QuitExit    - Terminates the KERMIT.                               *)
  47. (*             the QuitOptions are:                                   *)
  48. (*                  LOCAL,REMOTE,DISCONnect,ALL                       *)
  49. (*               if LOCAL or noparms only the local kermit terminates.*)
  50. (*               if REMOTE then  only the remote kermit terminates.   *)
  51. (*               if DISCONect then the remote kermit is terminated    *)
  52. (*                       and the remote is logged off.                *)
  53. (*               if ALL  then both kermits are terminated and remote  *)
  54. (*                        is logged off.                              *)
  55. (*                                                                    *)
  56. (* ================================================================== *)
  57. Procedure QuitExit  (QuitOption : comstring);
  58. Const
  59.     QuitTable : String[35] = '       LOCAL  REMOTE DISCON ALL    ' ;
  60. Type QuitType = (zero,local,remote,discon,all);
  61. Var
  62.     Qix : integer  ;
  63. Begin (* QuitExit Procedure *)
  64. QuitOption := Uppercase(Concat(' ',QuitOption));
  65. Qix := Pos(QuitOption,QuitTable) div 7 ;
  66. Case QuitType(Qix) of    (* Quit Type *)
  67.  zero,
  68.  local:  Running := false ;
  69.  remote :
  70.          Begin (* terminate remote kermit *)
  71.         (* Send a Finish packet *)
  72.          OutDataCount := 1 ;
  73.          OutSeq := OutSeq + 1 ;
  74.          If OutSeq > 64 then OutSeq := 0 ;
  75.          OutPacketType := Ord('G');
  76.          SendData[1] := Ord('F');
  77.          WaitXon := False ;
  78.          SendPacket ;
  79.          If RecvPacket and (InPacketType = Ord('Y')) then
  80.                Writeln (' Remote Kermit terminated. ')
  81.                                                      else
  82.                Writeln(' Unable to terminate Remote Kermit. ');
  83.          End ; (* terminate remote kermit *)
  84. discon,
  85. all:
  86.          Begin (* logoff Remote  *)
  87.          (* Send a Logoff packet *)
  88.          OutDataCount := 1 ;
  89.          OutSeq := OutSeq + 1 ;
  90.          If OutSeq > 64 then OutSeq := 0 ;
  91.          OutPacketType := Ord('G');
  92.          SendData[1] := Ord('L');
  93.          WaitXon := false ;
  94.          SendPacket ;
  95.          If RecvPacket and (InPacketType = Ord('Y')) then
  96.               Writeln (' Remote host is logging off ')
  97.                                                      else
  98.               Writeln(' Remote host unable to execute a log off ');
  99.          If (Qix = Ord(all))  then Running := False ;
  100.          End;  (* Logoff Remote *)
  101.     End ; (* Case Quit Type *)
  102. End; (* QuitExit Procedure *)
  103.  
  104.