home *** CD-ROM | disk | FTP | other *** search
/ kermit.columbia.edu / kermit.columbia.edu.tar / kermit.columbia.edu / archives / ucsdpecan.tar.gz / ucsdpecan.tar / setshow.text < prev    next >
Text File  |  1990-08-05  |  6KB  |  187 lines

  1.  
  2. { Change log:
  3. 30 Apr 89, V1.1: moved into kermutil   RTC
  4. 30 Apr 89, V1.1: Added SET INTERFACE command    RTC
  5. 16 Apr 89, V1.1: Added Client Unit to SHOW VER command      RTC
  6. 14 Apr 89, V1.1: Added SHOW VERSION command   RTC
  7. 14 Aug 88: Added SYSTEM-ID and modified DEBUG      RTC
  8. 31 Jul 88: Modified to permit REMUNIT to accept/reject baud rate    RTC
  9.  
  10. }
  11.  
  12. procedure fill_parity_array;
  13.  
  14. (* parity value table for even parity...not(entry) = odd parity *)
  15.  
  16. const min = 0;
  17.       max = 255;
  18.  
  19. var i, shifter, counter: integer;
  20.     ch: char;
  21.  
  22. begin
  23.    for ch := chr(min) to chr(max) do
  24.      case parity of
  25.         evenpar: begin
  26.                     shifter := aand(ord(ch),255); (* mask off parity bit *)
  27.                     counter := 0;
  28.                     for i := 1 to 7 do begin       (* count the 1's *)
  29.                        if odd(shifter) then
  30.                           counter := counter + 1;
  31.                        shifter := shifter div 2
  32.                     end; (* for i *)
  33.                     if odd(counter) then       (* stick a 1 on if necessary *)
  34.                        parity_array[ch] := chr(aor(ord(ch),128))
  35.                     else
  36.                        parity_array[ch] := chr(aand(ord(ch),127))
  37.                  end; (* for ch *) (* case even *)
  38.         oddpar:  begin
  39.                     shifter := aand(ord(ch),255);  (* mask off parity bit *)
  40.                     counter := 0;
  41.                     for i := 1 to 7 do begin        (* count the 1's *)
  42.                        if odd(shifter) then
  43.                            counter := counter + 1;
  44.                        shifter := shifter div 2
  45.                     end; (* for i *)
  46.                     if odd(counter) then        (* stick a 1 on if necessary *)
  47.                        parity_array[ch] := chr(aand(ord(ch),127))
  48.                     else
  49.                        parity_array[ch] := chr(aor(ord(ch),128))
  50.                  end; (* for ch *) (* case odd *)
  51.         markpar: parity_array[ch] := chr(aor(ord(ch),128));
  52.         spacepar:parity_array[ch] := chr(aand(ord(ch),127));
  53.         nopar:   parity_array[ch] := ch;
  54.       end; (* case *)
  55.   end; (* fill_parity_array *)
  56.  
  57. procedure write_bool{s: string255; b: boolean};
  58.  
  59. (* writes message & 'on' if b, 'off' if not b *)
  60.   begin
  61.     write(s);
  62.     case b of
  63.         true: writeln('on');
  64.         false: writeln('off');
  65.       end; (* case *)
  66.   end; (* write_bool *)
  67.  
  68. procedure show_parms;
  69.  
  70. (* shows the various settable parameters *)
  71. var
  72.   i,first,last : vocab;
  73.  
  74. begin
  75.    if noun = allsym then
  76.      begin
  77.        first := baudsym; last := systemsym
  78.      end
  79.    else
  80.      begin
  81.        first := noun; last := noun
  82.      end;
  83.    for i := first to last do
  84.      case i of
  85.        debugsym:    write_bool('Debugging is ',debug);
  86.  
  87.        escsym:      writeln('Escape character is ^',ctl(esc_char));
  88.  
  89.        filenamsym:  begin
  90.                       write('File names are ');
  91.                       if lit_names
  92.                         then write('Literal')
  93.                         else write('Converted');
  94.                       writeln
  95.                     end;
  96.  
  97.        filetypesym: begin
  98.                       write('File type is ');
  99.                       if f_is_binary
  100.                         then write('Binary')
  101.                         else write('Text');
  102.                       writeln
  103.                     end;
  104.  
  105.        filewarnsym: write_bool('File warning is ',fwarn);
  106.  
  107.        ibmsym:      write_bool('IBM is ',ibm);
  108.  
  109.        localsym:    write_bool('Local echo is ',halfduplex);
  110.  
  111.        emulatesym:  write_bool('Emulate DataMedia is ', emulating );
  112.  
  113.        baudsym:     writeln( 'Baud rate is ', baud:5 );
  114.  
  115.        paritysym:   begin
  116.                        case parity of
  117.                           evenpar: write('Even');
  118.                           markpar: write('Mark');
  119.                           nopar: write('No');
  120.                           oddpar: write('Odd');
  121.                           spacepar: write('Space');
  122.                        end; (* case *)
  123.                        writeln(' parity');
  124.                     end; (* paritysym *)
  125.  
  126.        systemsym:   writeln('System ID is ',system_id);
  127.  
  128.      end; (* case *)
  129.    if noun = versionsym then
  130.      begin
  131.        writeln(ker_version);
  132.        rec_version; sen_version; cli_version;
  133.        hlp_version; pak_version; utl_version; gbl_version;
  134.        mnu_version; par_version;
  135.      end
  136. end; (* show_sym *)
  137.  
  138.  
  139. procedure set_parms;
  140.  
  141. (* sets the parameters *)
  142.  
  143.   var
  144.     oldbaud : integer;
  145.  
  146.   begin
  147.     case noun of
  148.         debugsym: debug := adj = onsym;
  149.         escsym: escchar := newescchar;
  150.         filenamsym : lit_names := adj = litsym;
  151.         filetypesym : f_is_binary := adj = binsym;
  152.         filewarnsym: fwarn := (adj = onsym);
  153.         ibmsym: case adj of
  154.                     onsym: begin
  155.                         ibm := true;
  156.                         parity := markpar;
  157.                         half_duplex := true;
  158.                         fillparityarray
  159.                       end; (* onsym *)
  160.                     offsym: begin
  161.                         ibm := false;
  162.                         parity := nopar;
  163.                         half_duplex := false;
  164.                         fillparityarray
  165.                       end; (* onsym *)
  166.                   end; (* case adj *)
  167.         intsym: if adj = ucsdsym then menu_interface;
  168.         localsym: halfduplex := (adj = onsym);
  169.         emulatesym: emulating := (adj = onsym);
  170.         paritysym: begin
  171.               case adj of
  172.                   evensym: parity := evenpar;
  173.                   marksym: parity := markpar;
  174.                   nonesym: parity := nopar;
  175.                   oddsym: parity := oddpar;
  176.                   spacesym: parity := spacepar;
  177.                 end; (* case *)
  178.               fill_parity_array;
  179.              end; (* paritysym *)
  180.         baudsym: begin
  181.             oldbaud := baud; baud := newbaud;
  182.             if not setup_comm then baud := oldbaud
  183.          end { baudsym };
  184.         systemsym: system_id := line;
  185.       end; (* case *)
  186.   end; (* set_parms *)
  187.