home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / pibterm / pibt41s4.arc / SETSTATU.MOD < prev    next >
Text File  |  1988-03-06  |  4KB  |  96 lines

  1. (*----------------------------------------------------------------------*)
  2. (*      Set_Status_Line_Name --- Sets terminal name in status line      *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. PROCEDURE Set_Status_Line_Name( Name : AnyStr );
  6.  
  7. (*----------------------------------------------------------------------*)
  8. (*                                                                      *)
  9. (*     Procedure:  Set_Status_Line_Name                                 *)
  10. (*                                                                      *)
  11. (*     Purpose:    Sets status line entries                             *)
  12. (*                                                                      *)
  13. (*     Calling Sequence:                                                *)
  14. (*                                                                      *)
  15. (*        Set_Status_Line_Name( Name : AnyStr );                        *)
  16. (*                                                                      *)
  17. (*           Name --- the terminal name                                 *)
  18. (*                                                                      *)
  19. (*----------------------------------------------------------------------*)
  20.  
  21. VAR
  22.    I       : INTEGER;
  23.    L       : INTEGER;
  24.    S       : AnyStr;
  25.    M_String: STRING[2];
  26.    H_String: STRING[2];
  27.    Hours   : INTEGER;
  28.    Mins    : INTEGER;
  29.    ScrName : STRING[10];
  30.  
  31. (* STRUCTURED *) CONST
  32.  
  33.    OffOn : ARRAY[0..1] OF CHAR  = ('-','+');
  34.  
  35.    Status_Line_Skeleton : STRING[34] = 'CA  PR  LO  LF  LE  XO  CT  CD COM';
  36.  
  37. (*
  38.              1         2         3         4         5         6
  39.     12345678901234567890123456789012345678901234567890123456789012345
  40.      TTTTTTTTTT HH:MM -CA -PR -LO -LF -LE -XO -CT -CD COM2 19200N81
  41. *)
  42.    XOFF_Message : STRING[13] = 'XOFF received';
  43.  
  44. BEGIN (* Set_Status_Line_Name *)
  45.  
  46.    Status_Line_Name := Dupl( ' ' , 19 ) + Status_Line_Skeleton +
  47.                        Dupl( ' ' , Max_Screen_Col - 53 );
  48.  
  49.    IF Script_File_Mode THEN
  50.       BEGIN
  51.          Status_Line_Name[1] := '+';
  52.          ScrName             := Scripts[Current_Script_Num].Script_Name;
  53.          IF ( ScrName[1] = '!' ) THEN
  54.             I := 1
  55.          ELSE
  56.             I := 2;
  57.          MOVE( ScrName[1], Status_Line_Name[I], LENGTH( ScrName ) );
  58.       END
  59.    ELSE IF Script_Learn_Mode THEN
  60.       BEGIN
  61.          Status_Line_Name[1] := '-';
  62.          ScrName             := Script_File_Name;
  63.          MOVE( ScrName[1], Status_Line_Name[2], LENGTH( ScrName ) );
  64.       END
  65.    ELSE
  66.       MOVE( Short_Terminal_Name[1] , Status_Line_Name[2],
  67.             LENGTH( Short_Terminal_Name ) );
  68.  
  69.    IF Async_XOff_Received THEN
  70.       MOVE( XOFF_Message[1], Status_Line_Name[65], 13 );
  71.  
  72.    Status_Line_Name[19] := OffOn[ ORD( Capture_On ) ];
  73.    Status_Line_Name[23] := OffOn[ ORD( Printer_On ) ];
  74.    Status_Line_Name[27] := OffOn[ ORD( Logging_On ) ];
  75.    Status_Line_Name[31] := OffOn[ ORD( Add_LF ) ];
  76.    Status_Line_Name[35] := OffOn[ ORD( Local_Echo ) ];
  77.    Status_Line_Name[39] := OffOn[ ORD( Async_Do_XonXoff ) ];
  78.    Status_Line_Name[43] := OffOn[ ORD( Async_Do_CTS ) ];
  79.    Status_Line_Name[47] := OffOn[ ORD( Current_Carrier_Status ) ];
  80.  
  81.    Status_Line_Name[54] := CHR( ORD('0') + Comm_Port );
  82.  
  83.    STR( Baud_Rate:5, S );
  84.    S := S + Parity + CHR( ORD('0') + Data_Bits ) + CHR( ORD('0') + Stop_Bits );
  85.  
  86.    MOVE( S[1], Status_Line_Name[56], ORD( S[0] ) );
  87.  
  88.    IF Do_Status_Time THEN
  89.       BEGIN
  90.          Current_Status_Time := -1;
  91.          Update_Status_Line;
  92.       END;
  93.  
  94. END   (* Set_Status_Line_Name *);
  95.  
  96.