home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / ucsdappleii.zip / kermit.text < prev    next >
Text File  |  1986-04-08  |  5KB  |  171 lines

  1. (* >>>>>>>> KERMIT.TEXT ***********************************************)
  2.  
  3. (*$S+*)
  4. (*$I-*)
  5. (*$R-*)
  6. (*$V-*)
  7.  
  8. PROGRAM kermit;
  9.  
  10.  
  11. USES  kermglob,
  12.       kermacia,
  13.       kermutil,
  14.       kermpack,
  15.       kermsetshw,
  16.       sender,
  17.       receiver,
  18.       helper,
  19.       kerminit,
  20.       parser;
  21.  
  22. PROCEDURE kermterm(BS_to_DEL, Esc_Char, Xon_Char, Xoff_Char : CHAR;
  23.                    Xoff_W_Time : INTEGER;
  24.                    No_Ffeed,Print, Half_Duplex ,
  25.                    Reject_Cntrl_Char, Emulate : BOOLEAN); FORWARD;
  26.  
  27.  
  28.  
  29.  
  30. SEGMENT PROCEDURE Connect;
  31.  
  32. VAR Close_Term, Print : BOOLEAN;
  33.     Ch : CHAR;
  34.     SSC_pass : PACKED ARRAY[0..1] OF CHAR;
  35.  
  36. PROCEDURE Switch_Printer;
  37. BEGIN
  38.   IF Print_enable THEN
  39.     BEGIN
  40.       WRITE('Screendump is ');
  41.       IF Ch = 'P' THEN BEGIN
  42.                          Print := TRUE;
  43.                          WRITELN('on');
  44.                        END
  45.                   ELSE BEGIN
  46.                          WRITELN(Pr);
  47.                          WRITELN('off');
  48.                          Print := FALSE;
  49.                        END;
  50.     END;
  51. END;
  52.  
  53.  
  54. PROCEDURE Show_List;
  55. BEGIN
  56.   WRITELN;
  57.   WRITELN('<?>   Show this list.');
  58.   WRITELN('<S>   Show all current Kermit parameter settings.');
  59.   WRITELN('<C>   Close connection and return to Kermit UCSD command level.');
  60.   Write_Ctl( Esc_Char );
  61.   WRITELN(' Send escape character itself to the remote host.');
  62.   IF ( Acia_implem = A6551 ) OR ( Acia_implem = A6850 )  THEN
  63.     BEGIN
  64.       IF Acia_implem = A6551 THEN
  65.       BEGIN
  66.         WRITE('<Z>   Tell Super Serial Card to pass <^A> to host for ');
  67.                      WRITELN('correct file transfer.');
  68.       END;
  69.       WRITELN('<B>   Send a break signal to the remote host.');
  70.       WRITELN('      Hit any key to turn off break signal.');
  71.     END;
  72.   IF Print_enable THEN
  73.     BEGIN
  74.      WRITELN;
  75.      WRITELN('<P>   Screen output also to printer.');
  76.      WRITELN('<Q>   Turnoff screendump.');
  77.     END;
  78. END;
  79.  
  80.  
  81. BEGIN
  82.   Close_Term := FALSE; Print := FALSE; Ch := ' ';
  83.   SSC_pass[0] := CHR(1); SSC_pass[1] := 'Z';
  84.   PAGE( Output );
  85.   WRITE('>Kermterm connecting to host   (type '); Write_Ctl(Esc_Char);
  86.   WRITELN(' <C> to exit)');
  87.   UNITCLEAR( Inport );
  88.   REPEAT
  89.     UNITCLEAR( Keyport );
  90.     Kermterm(BS_to_DEL, Esc_Char, Xon_Char, Xoff_Char, Xoff_W_Time,
  91.              No_Ffeed, Print, Half_Duplex, Reject_Cntrl_Char, Emulate );
  92.     REPEAT
  93.     WRITELN; WRITE('>Kermterm (<?> <B> <C> <P> <Q> <S> <Z>) =>');
  94.     UNITCLEAR( Keyport );
  95.     UNITREAD( Keyport, Ch, 1 ); WRITELN;
  96.     IF Ch IN ['a'..'z'] THEN Ch := CHR( ORD(Ch) - ORD('a') + ORD('A') );
  97.     IF Ch IN ['B','C','P','Q','S','Z','?' ]
  98.       THEN CASE Ch OF
  99.            'B' : Send_Break( Acia_Comm_Reg );
  100.            'C' : Close_Term := TRUE;
  101.        'P','Q' : Switch_Printer;
  102.            'S' : BEGIN Noun := All_Sym; Show_Parms END;
  103.            'Z' : UNITWRITE( Outport, SSC_pass, 2,, 12);
  104.            '?' : Show_List;
  105.            END; (* of then case *)
  106.     UNTIL Ch <> '?';
  107.     IF Ch = Esc_Char THEN UNITWRITE( Outport, Ch, 1,, 12 );
  108.     IF NOT Close_Term THEN WRITELN('Back to host.');
  109.   UNTIL Close_Term;
  110.   WRITELN('Back to Apple Kermit UCSD')
  111. END;
  112.  
  113.  
  114. PROCEDURE Kermterm; EXTERNAL;
  115.  
  116.  
  117. PROCEDURE closeup;
  118.  
  119. begin
  120.   check_apple_char( all_sp_char );
  121.   page( output )
  122. end; (* closeup *)
  123.  
  124.  
  125. begin (* main kermit program *)
  126.   {$N+}
  127.   {$R kermglob,kermacia,kermutil,kermpack,kermsetshw,parser }
  128.  initialize;
  129.  repeat
  130.    write('Kermit-UCSD> ');
  131.    read_str(line);
  132.    case parse of
  133.      unconfirmed   : writeln('Unconfirmed');
  134.      parm_expected : writeln('Parameter expected');
  135.      ambiguous     : writeln('Ambiguous');
  136.      unrec         : writeln('Unrecognized command');
  137.      fn_expected   : writeln('File name expected');
  138.      pn_expected   : writeln('Volume name expected');
  139.      ch_expected   : writeln('Single character expected');
  140.      num_expected  : writeln('Number > 0 expected');
  141.      null          : case verb of
  142.                        consym   : connect;
  143.              phelpsym, helpsym  : help;
  144.                        recsym   : begin
  145.                                     rec_sw( rec_ok );
  146.                                     write( chr(bell) );
  147.                                     gotoxy( 0, prompt_line - 1 );
  148.                                     if not rec_ok then write('Un');
  149.                                     write( 'succesfull receive' );
  150.                                     close( rec_file, lock );
  151.                                     gotoxy( 0, prompt_line );
  152.                                   end;
  153.                        sendsym  : begin
  154.                                     send_sw( send_ok );
  155.                                     write( chr(bell) );
  156.                                     gotoxy( 0, prompt_line - 1 );
  157.                                     if not send_ok then write('Un');
  158.                                     write('succesfull send');
  159.                                     close( applefile );
  160.                                     gotoxy( 0, prompt_line );
  161.                                   end;
  162.                        setsym   : set_parms;
  163.               dirsym, pdirsym,
  164.            pshowsym, show_sym   : show_parms;
  165.                      end; (* case verb *)
  166.    end; (* case parse *)
  167.  until (verb = exitsym) or (verb = quitsym);
  168.  closeup
  169. end. (* kermit *)
  170.  
  171.