home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / ucsdpecan.zip / kermglob.text < prev    next >
Text File  |  1990-08-05  |  5KB  |  131 lines

  1. unit kermglob;
  2.  
  3. interface
  4.  
  5. {Change log:
  6. 13 May 89, V1.1: Added COMMENT vocab. & Eliminated "int_bool_rec"   RTC
  7. 30 Apr 89, V1.1: Added vocabulary for SET INTERFACE command   RTC
  8. 26 Apr 89, V1.1: minor cleanups   RTC
  9. 16 Apr 89, V1.1: Added BYE & FINISH commands       RTC
  10. 13 Apr 89, V1.1: Added Version message      RTC
  11. 14 Aug 88: Added LOG, CLOSE, and SET SYSTEM commands    RTC
  12. 31 Jul 88: Added variable system_id string for REMUNIT    RTC
  13. 31 Jul 88: Added attributes packets & exact size bin. xfrs    RTC
  14. 10 Jul 88: Removed screen command definitions    RTC
  15. 30 Jun 88: Modified for binary files, "take", ^X & ^Z   RTC
  16. }
  17.  
  18.    const
  19.          blksize = 512;
  20.          oport = 8;          (* output port # *)
  21.          inport = 7;
  22.          keyport = 2;
  23.          bell = 7;           (* ASCII bell *)
  24.          maxpack = 93;       (* maximum packet size minus 1 *)
  25.          soh = 1;            (* start of header *)
  26.          sp = 32;            (* ASCII space *)
  27.          cr = 13;            (* ASCII CR *)
  28.          lf = 10;            (* ASCII line feed *)
  29.          del = 127;          (* delete *)
  30.          can_cur = 24;       { cancel current file char ^X }
  31.          can_all = 26;       { cancel all files char    ^Z }
  32.          my_esc = 29;        (* default esc char for connect (^]) *)
  33.          maxtry = 5;         (* number of times to retry sending packet *)
  34.          my_quote = '#';     (* quote character I'll use *)
  35.          my_qbin = '&';      { 8th bit quote character I want }
  36.          my_pad = 0;         (* number of padding chars I need *)
  37.          my_pchar = 0;       (* padding character I need *)
  38.          my_eol = 13;        (* end of line character i need *)
  39.          my_time = 5;        (* seconds after which I should be timed out *)
  40.          maxtim = 20;        (* maximum timeout interval *)
  41.          mintim = 2;         (* minimum time out interval *)
  42.          at_eof = -1;        (* value to return if at eof *)
  43.          at_badblk = -2;     { value to return if at bad block }
  44.          {rqsize = 5000;      (* input queue size *)
  45.          qsize1 = 5001;      (* qsize + 1 *)}
  46.          eoln_sym = 13;      (* pascal eoln sym *)
  47.          back_space = 8;     (* pascal backspace sym *)
  48.          defaultbaud = 1200; (* default baud rate *)
  49.  
  50.    (* screen control information *)
  51.      (* console line on which to put specified info *)
  52.          menu_line = 0;
  53.          title_line = 2;
  54.          statusline = 3;
  55.          packet_line = 4;
  56.          retry_line = 5;
  57.          file_line = 6;
  58.          error_line = 7;
  59.          debug_line = 8;
  60.          prompt_line = 9;
  61.      (* position on line to put info *)
  62.          statuspos = 60;
  63.          packet_pos = 19;
  64.          retry_pos = 17;
  65.          file_pos = 11;
  66.  
  67.    type packettype = packed array[0..maxpack] of char;
  68.         parity_type = (evenpar, oddpar, markpar, spacepar, nopar);
  69.  
  70.         string255 = string[255];
  71.  
  72.  
  73.         statustype = (null, at_eol, unconfirmed, parm_expected, ambiguous,
  74.                       unrec, fn_expected, ch_expected, num_expected);
  75.         vocab = (nullsym, allsym, baudsym, binsym, byesym, closesym, comsym,
  76.                  consym, convsym, debugsym, emulatesym, escsym, evensym,
  77.                  exitsym, filenamsym, filetypesym, filewarnsym, finsym,
  78.                  getsym, helpsym, ibmsym, intsym, kermitsym, litsym,
  79.                  localsym, logsym, marksym, nonesym, oddsym, offsym, onsym,
  80.                  paritysym, putsym, quitsym, recsym, sendsym, setsym,
  81.                  showsym, spacesym, systemsym, takesym, textsym, ucsdsym,
  82.                  versionsym);
  83.  
  84.     var noun, verb, adj: vocab;
  85.         status: statustype;
  86.         vocablist: array[vocab] of string[13];
  87.         xfilename, line: string255;
  88.         newescchar: char;
  89.         expected: set of vocab;
  90.         newbaud: integer;
  91.  
  92.         currstate: char; (* current state *)
  93.         xeol, quote, qbin, esc_char: char;
  94.         lit_names, f_is_binary, fwarn, ibm, half_duplex,
  95.         en_attr, en_qbin, debug: boolean;
  96.         i, size, rpsiz, spsiz, pad, n, num_try, oldtry, timint: integer;
  97.         recpkt, packet: packettype;
  98.         padchar, ch: char;
  99.         s: string255;
  100.         debf: text; (* file for debug output *)
  101.         parity: parity_type;
  102.         xon: char;
  103.         filebuf: packed array[1..blksize] of char;
  104.         bufpos, bufend: integer;
  105.         parity_array: packed array[char] of char;
  106.         ctlset: set of char;
  107.         rec_ok, send_ok: boolean;
  108.         baud: integer;
  109.         emulating: boolean;
  110.         last_blksize : integer;  {size of last block of boolean file}
  111.         t_file : text   {file for text file transfers};
  112.         b_file : file   {file for binary file transfers};
  113.         cmd_file : text {file of "take" commands};
  114.         ker_version,            { version id for other units }
  115.         system_id : string      {id string for REMUNIT};
  116.  
  117.    procedure gbl_version;
  118.  
  119. implementation
  120.  
  121.    const
  122.      my_version = '   Kermglob Unit V1.1, 13 May 89';
  123.  
  124.    procedure gbl_version;
  125.  
  126.      begin
  127.        writeln(my_version)
  128.      end {gbl_version};
  129.  
  130. end. { kermglob }
  131.