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

  1. (* +FILE+ SETSHOW.PASMSCPM *)
  2. (* ================================================================== *)
  3. (* ShowOptions - Show Parameter Options setting for Kermit.           *)
  4. (*                                                                    *)
  5. (* ================================================================== *)
  6. Procedure ShowOptions ;
  7.  
  8. Begin (* ShowOptions Procedure *)
  9. ClrScr ; (* Clear the Screen *)
  10. GotoXY(1,2);   (* Start at line 2 *)
  11. Writeln('         QK-KERMIT  version ',version,Gversion,' -  ',Date);
  12. Writeln(' ');
  13. Writeln('  Current Setting           Options ');
  14. Writeln('-------------------    --------------------------------------');
  15. Writeln('Baud Rate  = ',Baudrate,'      ( 300 600 1200 2400 4800 9600 19.2 )');
  16. Write  ('Parity     = ') ;
  17.   Case paritytype(parity) of
  18.      OddP : write('Odd  ');
  19.      EvenP: write('Even ');
  20.      MarkP: write('Mark ');
  21.      NoneP: write('None ');
  22.   end ; (* parity case *)
  23. Writeln('     ( Odd   Even  Mark  None ) ');
  24. Write  ('Duplex     = ');
  25.   If LocalEcho then Write('Half ')
  26.                else Write('Full ');
  27.   writeln('     ( Half  Full ) ');
  28.  
  29. Write  ('Protocol   = ');
  30.     If Series1 then write('Series/1 ')
  31.                else If XonXoff then write('Xon-Xoff ')
  32.                                else write('Standard ');
  33.     writeln(' ( Xon-Xoff   Series/1   Standard )');
  34. Writeln(' ');
  35. Write  ('Disk Drive = ',chr(DefaultDrive+$41),':   ') ;
  36.   writeln('     ( A:    B:    C:    D:   )');
  37. Write  ('Com Port   = ');
  38.   If PrimaryPort then Write('One  ')
  39.                  else Write('Two  ');
  40.   writeln('     ( One   Two  ) ' );
  41. Write  ('Destination=');
  42.   If ForPrinter  then Write(' Printer ')
  43.                  else Write(' Disk    ');
  44.   writeln('  ( Disk  Printer )');
  45. Writeln(' ');
  46. If ParmFlag then Begin (* Display Packet Parameters *)
  47. Writeln('-------------------------------------------------------------');
  48. Writeln('Packet Parameters');
  49. Writeln('    Packetsize = ',Packetsize,'  Timeout   = ',Timeout:2,'   *');
  50. Writeln('    NumPad     = ',NumPad:2,'  PadChar   = ',PadChar:2,'   *');
  51. Write  ('    Startchar  = ',StartChar:2,'  EndChar   = ',EndChar:2);
  52. Writeln('   * use decimal values ');
  53. Write  ('    CntrlQuote =  ',chr(CntrlQuote),'  Bit8Quote =  ',chr(Bit8quote));
  54. Writeln('   ! use character values ');
  55. Write  ('    CheckType  =  ',chr(CheckType),'  RepChar   =  ',chr(RepChar));
  56. Writeln('   !   use NULL for null character )');
  57.                 End ; (* Display Packet Parameters *)
  58. If logging then
  59.     Begin writeln(' '); writeln(' Logging data to file ',LogName); end;
  60.  
  61. End;  (* ShowOptions Procedure *)
  62. (* ================================================================== *)
  63. (* SetOptions - Set Parameter Options setting for Kermit.             *)
  64. (*                                                                    *)
  65. (* ================================================================== *)
  66. Procedure SetOptions (var instring:comstring);
  67. Const
  68.     OP1Table : String[40] = '     300  600  1200 2400 4800 9600 19.2 ';
  69.     OP2Table : String[30] = 'ODD  EVEN MARK NONE HALF FULL ';
  70.     OP3Table : String[40] = 'XON-XOFF  SERIES/1  STANDARD  ONE  TWO  ';
  71.     OP4Table : String[40] = 'A:   B:   C:   D:   DISK PRINTER  ';
  72.     PP1Table : String[44] = '           PACKETSIZE TIMEOUT    NUMPAD     ';
  73.     PP2Table : String[44] = 'PADCHAR    STARTCHAR  ENDCHAR    CNTRLQUOTE ';
  74.     PP3Table : String[33] = 'BIT8QUOTE  CHECKTYPE  REPCHAR    ' ;
  75. Type
  76.     Options = (zero,b300,b600,b1200,b2400,b4800,b9600,b19200,
  77.                PO,PE,PM,PN,HALF,FULL,
  78.                Xon,xon1,Series,ser1,Stand,stand1,one,two,
  79.                A,B,C,D,Disk,Print,print1) ;
  80.    PParms = (Pzero,Psize,PTime,PNumPad,PPadChar,
  81.              PStartChar,PEndChar,PcntrlQuote,Pbit8Quote,
  82.              PChecktype,PRepChar);
  83. Var
  84.     Option : comstring ;
  85.     OptionTable : String[255];
  86.     PParmTable : String[122];
  87.     Ix : integer ;
  88.     ScanOptions : boolean ;
  89.  
  90.          Procedure SetValue ( var Pvalue : byte );
  91.          var I,Retcode : integer ;
  92.          Begin (* Set Value *)
  93.          Val(Gettoken(Instring),I,Retcode);
  94.          If Retcode = 0 then Pvalue := I
  95.                         else
  96.               Begin Writeln('>>> Invalid value specified <<<');Delay(2000);End;
  97.          End ; (* Set Value *)
  98.  
  99.          Procedure SetChar ( var Pchar : byte );
  100.          Var atoken : string[10];
  101.          Begin (* set char *)
  102.          Atoken := UpperCase(Gettoken(Instring)) ;
  103.          If Atoken = 'NULL' then Pchar := 0 else
  104.          If Length(Atoken) = 1 then Pchar := Ord(Atoken[1])
  105.                                else
  106.               Begin Writeln('>>> Invalid Specification <<<');delay(2000);End;
  107.          End ; (* set char *)
  108.  
  109. Begin (* SetOptions Procedure *)
  110. OptionTable := OP1Table + OP2Table + OP3Table + OP4Table ;
  111. PParmTable := PP1Table + PP2Table + PP3Table ;
  112. If length(instring)<1 then
  113.     Begin (* Get Settings *)
  114.     ShowOptions;
  115.     Write  ('Enter Option Setting >');
  116.     If audioflag then
  117.        Begin Sound(1000); Delay(250); Sound(2000); Delay(50); Nosound;end;
  118.     Readln(instring);
  119.     End ; (* Get Settings *)
  120. ScanOptions := true ;
  121. While (length(instring)>0) and ScanOptions do
  122.     Begin (* Parse instring *)
  123.     Option := GetToken(instring);
  124.     ScanOptions := Option<>';';
  125.     Option := Concat(' ',Uppercase(Option));
  126.     ix := Pos(Option,OptionTable) div 5 ;
  127.     If ix <> 0 then
  128.          Case Options(ix) of
  129.          b300   : Baudrate := 300 ;
  130.          b600   : Baudrate := 600 ;
  131.          b1200  : Baudrate := 1200 ;
  132.          b2400  : Baudrate := 2400 ;
  133.          b4800  : Baudrate := 4800 ;
  134.          b9600  : Baudrate := 9600 ;
  135.          b19200 : Baudrate := 19200 ;
  136.          PO     : Parity   := OddP ;
  137.          PE     : parity   := EvenP ;
  138.          PM     : Parity   := MarkP ;
  139.          PN     : parity   := NoneP ;
  140.          HALF   : LocalEcho:= True ;
  141.          FULL   : LocalEcho:= False ;
  142.          Xon    : Begin XonXoff := True;  Series1 := False; End;
  143. (*       Series : Begin XonXoff := True;  Series1 := True;  End;  *)
  144.          Series : Begin XonXoff := False; Series1 := True;  End;
  145.          Stand  : Begin XonXoff := False; Series1 := False; End;
  146.          One    : PrimaryPort := True ;
  147.          Two    : PrimaryPort := False ;
  148.          A      : SetDefaultDrive(0) ;
  149.          B      : SetDefaultDrive(1) ;
  150.          C      : SetDefaultDrive(2) ;
  151.          D      : SetDefaultDrive(3) ;
  152.          Disk   : ForPrinter := false ;
  153.          Print  : ForPrinter := true ;
  154.          End   (* case of options *)
  155.                else
  156.          Begin (* check packet parms *)
  157.          ix := Pos(Option,PParmTable) div 11 ;
  158.          If (ix <> 0) and ParmFlag then
  159.               Case PParms(ix) of
  160.          Psize:          SetValue(Packetsize) ;
  161.          PTime:          SetValue(Timeout) ;
  162.          PNumPad:        SetValue(NumPad) ;
  163.          PPadChar:       SetValue(PadChar) ;
  164.          PStartChar:     SetValue(StartChar) ;
  165.          PEndChar:       SetValue(EndChar) ;
  166.          PcntrlQuote:    SetChar(CntrlQuote) ;
  167.          Pbit8Quote:     SetChar(Bit8Quote) ;
  168.          PChecktype:     SetChar(CheckType) ;
  169.          PRepChar :      SetChar(RepChar) ;
  170.               End ; (* Case of  PParms *)
  171.          If chr(CheckType) in ['1','2','3'] then else CheckType := 49 ;
  172.          End ; (* check packet parms *)
  173.     ResetModem; Initmodem ;
  174.     SetModem ;
  175.     End ; (* Parse instring *)
  176. ShowOptions ;
  177. End ; (* SetOptions Procedure *)
  178.  
  179. (* ================================================================== *)
  180. (* DisplayCommands - Display all the valid Kermit Commands.           *)
  181. (*                                                                    *)
  182. (* ================================================================== *)
  183. Procedure DisplayCommands;
  184.  
  185. Begin (* DisplayCommands Procedure *)
  186. ClrScr ;
  187. Writeln('     The Following are the valid Kermit Commands :');
  188. Writeln('---------------------------------------------------------------');
  189. Writeln('CONNECT <options>  - connect to a remote host as a dumb terminal.');
  190. Writeln(' ');
  191. Writeln('SEND    <local-filename > AS <remote-filename> RAW');
  192. Writeln('RECEIVE <remote-filename> AS <local-filename > REPLACE');
  193. Writeln('                        ');
  194. Writeln('SET    <options>   - set option settings.');
  195. Writeln('STATUS             - display optional settings and status');
  196. Writeln('            ');
  197. Writeln('DIRECTORY,ERASE,RENAME,TYPE,RUN <filename> - local commands');
  198. Writeln('MKDIR,CHDIR,RMDIR  <directoryname>         - local commands');
  199. Writeln('REMOTE <commands>                          - remote commands');
  200. Writeln('            ');
  201. Writeln('LOG  <filename>    - Record data received in a log file.');
  202. Writeln('TAKE <filename>    - Take and execute commands from a  file.');
  203. Writeln('DEFINE <dword> <dstring> - define a word to equal a string.');
  204. Writeln('AUDIO,PARMS        - toggle options .');
  205. Writeln('QUIT  <QuitOption> - terminate local or remote kermit program.');
  206. Writeln('                     QuitOptions : LOCAL,REMOTE,DISCONnect,ALL');
  207. Writeln(' ');
  208. Writeln('   Note: All parameters are optional and all commands maybe');
  209. Writeln('         abbreviated to a minimum of unique characters.');
  210. Writeln('---------------------------------------------------------------');
  211. End; (* DisplayCommand Procedure *)
  212.  
  213.