home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / pibterm / pibt41s1.arc / GLOBROUT.PAS < prev    next >
Pascal/Delphi Source File  |  1988-02-13  |  17KB  |  344 lines

  1. UNIT GlobRout;
  2.  
  3. INTERFACE
  4.  
  5. USES
  6.    Dos,      Crt,      GlobType, StringMan, PibTimer, OverMgr, PibMTask,
  7.    PibAsync, PT4Patch;
  8.  
  9. (* EXPORTS *)
  10.  
  11.    PROCEDURE GiveAwayTime( NSlices : INTEGER );
  12.    PROCEDURE Print_Spooled_File;
  13.    PROCEDURE FastTime( VAR HourMin: INTEGER );
  14.    PROCEDURE Write_To_Status_Line( S: AnyStr; X: INTEGER );
  15.    PROCEDURE Update_Status_Line;
  16.    FUNCTION PibTerm_KeyPressed : BOOLEAN;
  17.    FUNCTION ReadKeyboard : CHAR;
  18.    PROCEDURE Error_Handler;
  19.    FUNCTION Color_Screen_Active : BOOLEAN;
  20.    PROCEDURE Set_Text_Mode( Text_Mode : INTEGER );
  21.    PROCEDURE Read_Kbd( VAR Ch: CHAR );
  22.    PROCEDURE Read_Kbd_Old( VAR Ch: CHAR );
  23.    PROCEDURE Press_Any;
  24.    PROCEDURE Sound_Bell;
  25.    PROCEDURE Keyboard_Interrupt_Handler(
  26.              Flags, CS, IP, AX, BX, CX, DX, SI, DI, DS, ES, BP : WORD );
  27.       Interrupt;
  28.    PROCEDURE Ext_Keyboard_Interrupt_Handler(
  29.              Flags, CS, IP, AX, BX, CX, DX, SI, DI, DS, ES, BP : WORD );
  30.       Interrupt;
  31.    PROCEDURE Install_Keyboard_Handler;
  32.    PROCEDURE Remove_Keyboard_Handler;
  33.    FUNCTION Open_For_Append( VAR F      : Text_File;
  34.                                  F_Name : AnyStr   ;
  35.                              VAR Error  : INTEGER   ) : BOOLEAN;
  36.    PROCEDURE Update_Review_Pointers;
  37.    PROCEDURE Write_Log( T            : AnyStr;
  38.                         Continuation : BOOLEAN;
  39.                         On_Screen    : BOOLEAN  );
  40.    PROCEDURE PibTerm_Window( X1, Y1, X2, Y2 : INTEGER );
  41.    FUNCTION Current_Video_Mode: INTEGER;
  42.    FUNCTION EGA_Installed : BOOLEAN;
  43.    FUNCTION VGA_Installed : BOOLEAN;
  44.    PROCEDURE Get_Screen_Address( VAR Actual_Screen : Screen_Ptr );
  45.    FUNCTION Get_Rows_For_EGA : INTEGER;
  46.    PROCEDURE RvsVideoOn( Foreground_Color, Background_Color : INTEGER );
  47.    PROCEDURE RvsVideoOff( Foreground_Color, Background_Color : INTEGER );
  48.    PROCEDURE CursorOn;
  49.    PROCEDURE CursorOff;
  50.    PROCEDURE CursorGet( VAR Current_Cursor : INTEGER );
  51.    PROCEDURE CursorSet( New_Cursor_Type : INTEGER );
  52.    PROCEDURE Upper_Left( VAR X1, Y1 : INTEGER );
  53.    PROCEDURE Set_Global_Colors( ForeGround, BackGround : INTEGER );
  54.    PROCEDURE Reset_Global_Colors;
  55.    PROCEDURE Set_Border_Color( The_Border_Color : INTEGER );
  56.    PROCEDURE Change_Attributes( NAttr: INTEGER;
  57.                                 X    : INTEGER;
  58.                                 Y    : INTEGER;
  59.                                 Color: INTEGER );
  60.    PROCEDURE Set_Text_Attributes( X1, Y1, X2, Y2, FG, BG : INTEGER );
  61.    PROCEDURE ReadCXY( VAR C     ;
  62.                           X         : INTEGER;
  63.                           Y         : INTEGER;
  64.                       VAR Color );
  65.    PROCEDURE MoveToScreen( VAR Source, Dest; SLen: INTEGER );
  66.    PROCEDURE MoveFromScreen( VAR Source, Dest; SLen: INTEGER );
  67.    PROCEDURE Get_Screen_Text_Line( VAR Text_Line     : AnyStr;
  68.                                        Screen_Line   : INTEGER;
  69.                                        Screen_Column : INTEGER );
  70.    PROCEDURE Print_Screen;
  71.    PROCEDURE Write_Screen( Fname : AnyStr );
  72.    PROCEDURE Write_Graphics_Screen( Fname : AnyStr );
  73.    PROCEDURE Get_Screen_Size( VAR Rows: INTEGER; VAR Columns: INTEGER );
  74.    PROCEDURE Set_EGA_Text_Mode( EGA_Rows : INTEGER );
  75.    PROCEDURE Set_Graphics_Colors( EGA_On : BOOLEAN;
  76.                                   GMode  : INTEGER;
  77.                                   FG     : INTEGER;
  78.                                   BG     : INTEGER );
  79.    PROCEDURE WriteCXY( C: CHAR; X: INTEGER; Y: INTEGER; Color: INTEGER );
  80.    PROCEDURE WriteSXY( S: AnyStr; X: INTEGER; Y: INTEGER; Color: INTEGER );
  81.    PROCEDURE WriteLXY( VAR S; X: INTEGER; Y: INTEGER; Len: INTEGER );
  82.    PROCEDURE MoveToXY( X: INTEGER; Y: INTEGER );
  83.    PROCEDURE Save_Partial_Screen( VAR Saved_Screen_Pointer : Saved_Screen_Ptr;
  84.                                       X1                   : INTEGER;
  85.                                       Y1                   : INTEGER;
  86.                                       X2                   : INTEGER;
  87.                                       Y2                   : INTEGER  );
  88.    PROCEDURE Restore_Screen( VAR Saved_Screen_Pointer : Saved_Screen_Ptr );
  89.    PROCEDURE Restore_Screen_And_Colors( VAR Saved_Screen_Pointer : Saved_Screen_Ptr );
  90.    PROCEDURE Save_Screen( VAR Saved_Screen_Pointer : Saved_Screen_Ptr );
  91.    PROCEDURE Draw_Titled_Box( VAR Saved_Screen_Pointer : Saved_Screen_Ptr;
  92.                                   UpperLeftX           : INTEGER;
  93.                                   UpperLeftY           : INTEGER;
  94.                                   LowerRightX          : INTEGER;
  95.                                   LowerRightY          : INTEGER;
  96.                                   Box_Title            : AnyStr );
  97.    PROCEDURE Video_Interrupt_Handler(
  98.           Flags, CS, IP, AX, BX, CX, DX, SI, DI, DS, ES, BP : WORD );
  99.       Interrupt;
  100.    PROCEDURE Install_Video_Handler;
  101.    PROCEDURE Remove_Video_Handler;
  102.    PROCEDURE Scroll( Y1, Y2, X1, X2, Nlines, FG, BG : INTEGER );
  103.    PROCEDURE Clear_Window;
  104.    PROCEDURE Menu_Set_Explode( Explode_ON : BOOLEAN );
  105.    PROCEDURE Menu_Set_Beep( Beep_ON : BOOLEAN );
  106.    PROCEDURE Menu_Set_Box_Chars( Top_Left_Corner     : CHAR;
  107.                                  Top_Line            : CHAR;
  108.                                  Top_Right_Corner    : CHAR;
  109.                                  Right_Line          : CHAR;
  110.                                  Bottom_Right_Corner : CHAR;
  111.                                  Bottom_Line         : CHAR;
  112.                                  Bottom_Left_Corner  : CHAR;
  113.                                  Left_Line           : CHAR  );
  114.    PROCEDURE Draw_Box( X1, Y1, X2, Y2 : INTEGER;
  115.                        Frame_Color    : INTEGER;
  116.                        Title_Color    : INTEGER;
  117.                        Title          : AnyStr   );
  118.    PROCEDURE Draw_Menu_Frame( UpperLeftX,  UpperLeftY,
  119.                               LowerRightX, LowerRightY : INTEGER;
  120.                               Frame_Color, Title_Color,
  121.                               Text_Color               : INTEGER;
  122.                               Menu_Title: AnyStr );
  123.    PROCEDURE Menu_Click;
  124.    PROCEDURE Menu_Beep;
  125.    PROCEDURE Menu_Turn_On( Menu: Menu_Type; Menu_Item : INTEGER );
  126.    PROCEDURE Menu_Turn_Off( Menu: Menu_Type; Menu_Item : INTEGER );
  127.    PROCEDURE Menu_IBMCh( VAR C : CHAR );
  128.    PROCEDURE Menu_Display_Choices( Menu : Menu_Type );
  129.    FUNCTION Menu_Get_Choice( Menu: Menu_Type; Erase_After: BOOLEAN ) : INTEGER;
  130.    PROCEDURE Convert_AsciiZ_To_String( VAR S: AnyStr );
  131.    PROCEDURE Convert_String_To_AsciiZ( VAR S: AnyStr );
  132.    FUNCTION Dir_Get_Current_Path( Drive         : CHAR;
  133.                                   VAR Path_Name : AnyStr ) : INTEGER;
  134.    FUNCTION Dir_Set_Current_Path( Path_Name : AnyStr ) : INTEGER;
  135.    PROCEDURE Dir_Set_Disk_Transfer_Address( VAR DMA_Buffer );
  136.    PROCEDURE Dir_Set_Default_Drive( Drive: CHAR );
  137.    FUNCTION Dir_Get_Default_Drive: CHAR;
  138.    FUNCTION Dir_Count_Drives : INTEGER;
  139.    PROCEDURE Dir_Convert_Time ( Time : WORD; VAR S_Time : AnyStr );
  140.    PROCEDURE Dir_Convert_Date ( Date : WORD; VAR S_Date : AnyStr );
  141.    FUNCTION Dir_Set_File_Date_And_Time( File_Handle: INTEGER;
  142.                                         File_Date  : INTEGER;
  143.                                         File_Time  : INTEGER  ) : INTEGER;
  144.    FUNCTION Dir_Get_File_Date_And_Time(     File_Handle: INTEGER;
  145.                                         VAR File_Date  : INTEGER;
  146.                                         VAR File_Time  : INTEGER  ) : INTEGER;
  147.    PROCEDURE Send_Modem_Command( Modem_Text : AnyStr );
  148.    FUNCTION YesNo( YesNo_Question : AnyStr ) : BOOLEAN;
  149.    PROCEDURE HangUpPhone;
  150.    PROCEDURE Make_A_Menu( VAR Menu     : Menu_Type;
  151.                               Size     : INTEGER;
  152.                               Row      : INTEGER;
  153.                               Column   : INTEGER;
  154.                               Width    : INTEGER;
  155.                               Height   : INTEGER;
  156.                               Default  : INTEGER;
  157.                               Title    : AnyStr;
  158.                               Texts    : AnyStr;
  159.                               GenLet   : BOOLEAN     );
  160.    PROCEDURE Make_And_Display_Menu( VAR Menu     : Menu_Type;
  161.                                         Size     : INTEGER;
  162.                                         Row      : INTEGER;
  163.                                         Column   : INTEGER;
  164.                                         Width    : INTEGER;
  165.                                         Height   : INTEGER;
  166.                                         Default  : INTEGER;
  167.                                         Title    : AnyStr;
  168.                                         Texts    : AnyStr;
  169.                                         GenLet   : BOOLEAN;
  170.                                         Erase_It : BOOLEAN;
  171.                                     VAR Choice   : INTEGER );
  172.    PROCEDURE Clr_Kbd_Buf;
  173.    PROCEDURE Stuff_Kbd_Buf( In_Chr: INTEGER; Clr_Kbd : BOOLEAN );
  174.    FUNCTION Edit_String( VAR In_Str      : AnyStr;
  175.                              Buffer_Len  : INTEGER;
  176.                              Start_X     : INTEGER;
  177.                              X           : INTEGER;
  178.                              Y           : INTEGER;
  179.                              MaxWidth    : INTEGER;
  180.                              Force_Case  : BOOLEAN;
  181.                              Status_Line : INTEGER  ) : CHAR;
  182.    PROCEDURE Read_Edited_String( VAR S: AnyStr );
  183.    FUNCTION Read_Number(      Old_Number: LongInt;
  184.                               Use_Old   : BOOLEAN;
  185.                           VAR Number    : LongInt ) : BOOLEAN;
  186.    PROCEDURE FiniTerm;
  187.    PROCEDURE Split_File_Name(     FileRef    : AnyStr;
  188.                               VAR Drive      : CHAR;
  189.                               VAR Path       : AnyStr;
  190.                               VAR FileName   : AnyStr;
  191.                               VAR FileType   : AnyStr;
  192.                               VAR Bogus_Name : BOOLEAN  );
  193.    PROCEDURE Set_Status_Line_Name( Name : AnyStr );
  194.    FUNCTION Scroll_Lock_On : BOOLEAN;
  195.    FUNCTION Check_If_File_Exists( File_Name : AnyStr; File_Path : AnyStr ): BOOLEAN;
  196.    PROCEDURE Handle_Function_Key( Ch : CHAR );
  197.    PROCEDURE Send_Function_Key( Key_Text : AnyStr ) ;
  198.    PROCEDURE Define_Key( Key_Name : AnyStr;
  199.                          Key_Text : AnyStr  );
  200.    FUNCTION Get_File_Size( Fname: AnyStr; VAR OpenOK : BOOLEAN ): LONGINT;
  201.    PROCEDURE DosJump( Dos_String : AnyStr );
  202.    PROCEDURE Add_Path( VAR File_Name      : AnyStr;
  203.                        VAR Path           : AnyStr;
  204.                        VAR Full_File_Name : AnyStr  );
  205.    PROCEDURE Dir_Convert_File_Date_And_Time(      Date_Time  : LONGINT;
  206.                                               VAR SFile_Date : AnyStr;
  207.                                               VAR SDate_Time : AnyStr  );
  208.    PROCEDURE Int24;
  209.    PROCEDURE Int24On;
  210.    PROCEDURE Int24Off( Flag : BOOLEAN );
  211.    FUNCTION Int24Result : INTEGER;
  212.  
  213.    FUNCTION Heap_Error_Handler( Size : WORD ) : INTEGER;
  214.  
  215.    PROCEDURE Window_Delay;
  216.  
  217.    FUNCTION Scan_Xfer_List( File_Name : AnyStr ) : INTEGER;
  218.    PROCEDURE Get_Auto_File_Name( VAR Keybrd_Line : AnyStr;
  219.                                  VAR FileName    : AnyStr );
  220.  
  221.    PROCEDURE Write_Prt( Ch : CHAR );
  222.    PROCEDURE Write_Prt_Str( S : AnyStr );
  223.  
  224.    PROCEDURE MyFreeMem( VAR P ; Size : WORD );
  225.    PROCEDURE Rewrite_Dialing_Directory;
  226.    PROCEDURE Clear_XOFF_Received;
  227.    PROCEDURE Get_Long_Key_Name(     Short_Name : AnyStr;
  228.                                 VAR Long_Name  : AnyStr );
  229.    FUNCTION Get_Key_Index( Short_Name : AnyStr ) : INTEGER;
  230.  
  231. IMPLEMENTATION
  232.  
  233. CONST                              (* TRUE to return actual keypressed *)
  234.                                    (* status -- see rdkeybrd.mod.      *)
  235.    Return_KeyPressed : BOOLEAN = TRUE;
  236.  
  237.                                    (* Ensure multitasking defined       *)
  238. {$DEFINE MTASK}
  239.                                    (* Interrupt 24 handler              *)
  240. {$I INT24.MOD    }
  241.                                    (* Time of day for status line       *)
  242. {$I FASTTIME.MOD }
  243.                                    (* Write to status line              *)
  244. {$I WRITESTA.MOD }
  245.                                    (* Updates status line               *)
  246. {$I UPDATEST.MOD }
  247.                                    (* Read keyboard driver              *)
  248. {$I RDKEYBRD.MOD }
  249.                                    (* Read character from keyboard      *)
  250. {$I READKBD.MOD  }
  251.                                    (* Do a "press any" question         *)
  252. {$I PRESSANY.MOD }
  253.                                    (* Sound terminal bell               *)
  254. {$I SOUNDBEL.MOD }
  255.                                    (* Redefine Int 9 keyboard handler   *)
  256. {$I KBDINTP.MOD  }
  257.                                    (* Open file for append              *)
  258. {$I OPENFORA.MOD }
  259.                                    (* Update review pointers            *)
  260. {$I UPDATERE.MOD }
  261.                                    (* Write time stamped string to log  *)
  262. {$I WRITELOG.MOD }
  263.                                    (* Print character from spool file   *)
  264. {$I PRINTSPO.MOD }
  265.                                    (* Screen management routines        *)
  266. {$I MYGRAPH.MOD  }
  267. {$I PIBSCRN1.MOD }
  268. {$I PIBSCRN2.MOD }
  269. {$I WRITECXY.MOD }
  270. {$I MOVETOXY.MOD }
  271. {$I PIBSCRN3.MOD }
  272.                                    (* Redefine Int 10 video handler     *)
  273. {$I VIDINTP.MOD  }
  274.                                    (* Scroll portion of screen          *)
  275. {$I SCROLL.MOD   }
  276.                                    (* Clear out current window          *)
  277. {$I CLEARWIN.MOD }
  278.                                    (* Pop-up menu routines              *)
  279. {$I PIBMENUS.MOD }
  280.                                    (* MS DOS directory routines         *)
  281. {$I PIBDIR.MOD   }
  282.                                    (* Send string to modem              *)
  283. {$I SENDMODE.MOD }
  284.                                    (* Get yes/no answer                 *)
  285. {$I YESNO.MOD    }
  286.                                    (* Hangup the phone -- Alt_H         *)
  287. {$I HANGUP.MOD   }
  288.                                    (* Generate a menu                   *)
  289. {$I MAKEMENU.MOD }
  290. {$I MAKEMEND.MOD }
  291.                                    (* Stuff keyboard buffer             *)
  292. {$I STUFFKBD.MOD }
  293.                                    (* Edit a string                     *)
  294. {$I EDITSTRI.MOD }
  295.                                    (* Read and edit a string            *)
  296. {$I READEDIS.MOD }
  297.                                    (* Read a number                     *)
  298. {$I READNUMB.MOD }
  299.                                    (* General error handler             *)
  300. {$I ERRORHAN.MOD }
  301.                                    (* Finish terminal emulation         *)
  302. {$I FINITERM.MOD }                                   (* Split file name                   *)
  303. {$I SPLITFNA.MOD }
  304.                                    (* Set status line name              *)
  305. {$I SETSTATU.MOD }
  306.                                    (* Handle scroll lock                *)
  307. {$I SCROLLOC.MOD }
  308.                                    (* Check if file exists              *)
  309. {$I CHECKIFF.MOD }
  310.                                    (* Send function key                 *)
  311. {$I SENDFUNK.MOD }
  312.                                    (* Handle function key               *)
  313. {$I HANDLEFK.MOD }
  314.                                    (* Define a key                      *)
  315. {$I DEFINEKY.MOD }
  316.                                    (* Get file size                     *)
  317. {$I GETFSIZE.MOD }
  318.                                    (* DOS jump interface                *)
  319. {$I DOSJUMP.MOD  }
  320.                                    (* Add path to file name             *)
  321. {$I ADDPATH.MOD  }
  322.                                    (* Window delay                      *)
  323. {$I WINDELAY.MOD }
  324.                                    (* Scan transfer list                *)
  325. {$I SCANXFER.MOD }
  326.                                    (* Auto find file name               *)
  327. {$I GETAUTOF.MOD }
  328.                                    (* Write character/string to printer *)
  329. {$I WRITEPRT.MOD }
  330.                                    (* Substitute freemem routine        *)
  331. {$I MYFREEM.MOD  }
  332.                                    (* Rewrite phone directory           *)
  333. {$I REWRITED.MOD }
  334.                                    (* Clear any XOFFs received          *)
  335. {$I CLEARXOF.MOD }
  336.                                    (* Look up function key name         *)
  337. {$I GETLKNAM.MOD }
  338.                                    (* Look up function key index        *)
  339. {$I GETKIND.MOD  }
  340.                                    (* Give away time to other tasks     *)
  341. {$I GIVEAWAY.MOD }
  342.  
  343. END   (* GlobRout *).
  344.