




Pascal Programming Tool-kit
Reference Manual




Volume II
{Version 1.07, Abridged}











Copyright 1995, 1996, P. Renaud
All Rights reserved.












P. Renaud
G-1151 West Klein Street
Mount Morris, Michigan  48458-2359
prenaud@genesee.freenet.org

Licensing Agreement

License

        This Software (and source code) is the exclusive property of the author and is licensed for use to 
the purchaser, much like the way one person rents use of a tool or a house or any tangible item of 
property for use to another person. This Software is licensed on a per user basis.  The author authorizes 
you, the Registered License Holder, to make as many copies of said software as you wish, provided that 
all the copies remain in your sole possession and for your exclusive use only.
        There will be no set limit on the number of computers this software may be installed on, provided 
the Software is reserved for exclusively use by only the Registered License Holder.  Separate licenses 
are required for legal use by any other users.

Terms

        The Registered License agreement begins on the date of purchase and remains in force until 
terminated.  The agreement may be terminated at any time, merely by destroying all held copies of the 
licensed product.  The right to use the product will  also be terminate if you fail to comply with any of the 
terms or conditions of this agreement.
        The Licensed Product may not be assigned, subleased or otherwise transferred by the 
Registered License holder to another party unless that party also agrees to accept and abide by the 
terms and conditions of this License agreement.  If you transfer the Licensed Product, all copies in your 
possession must either be transferred along with it or destroyed.  Special user support will terminated 
upon transfer.
        Programs written and compiled using this software library and that contain any portion of licensed 
code may be used, given away or sold without additional license or fees, provided all copies bear a notice 
of copyright.

Rights

        The author reserves all rights under copyright law in the use and distribution of the library.  No 
additional license, fees or royalties will be imposed on the sale of programs bearing parts or sections of 
this library so long as the program author is properly registered and the program using sections of this 
library bares a valid copyright notice.

Warranty

        Due to the changeable nature of the code in this library, no warranties are made, either written or 
implied about it's suitability or any piece of it for any particular task or purpose.  This disclaimer includes, 
but isn't limited to any implied warranties of merchantability and fitness for any particular purpose.
        Neither the author or otherwise involved in the creation, production or distribution of this software 
shall be liable for any damages, either indirect or incidental.  In addition, in no event shall the author be 
liable for damages exceeding the minimum suggested contribution price of said software or code.
        The author of said programs using the aforementioned code must bare sole responsibility for the 
performance of said program and holds the library's author unaccountable.
        Demonstration programs may not be distributed apart from the above library either in source or 
executable form under the above agreement.
        Some states do not allow the exclusion or limitation of incidental or consequential damages, so 
portions of the above limitation may not apply to you.  
        This agreement shall be governed by the laws of the State of Michigan and shall inure to the 
benefit of the author and any successors, administrators, heirs and assigns.  Any action or proceeding 
brought by either party against the other arising out of or related to this agreement must only be brought 
in a STATE or FEDERAL COURT of competent jurisdiction location in Genesee County, Michigan.  The 
parties hereby consent to in personam jurisdiction of said courts.

Table of Contents
(Places may very)

 Licensing Agreement                            Page 2
 Table of Contents                                      Page 4
 Part I         Routine Reference Guide         Page 5
 Part IIBeta Routine Reference Guide    Page 261


Part I
Routine Reference Guide 

 A

----------------------------------------------------------------------------------------

Accuracy_Adjustment function

From the Time unit
 
Function        This function returns the amount of time in seconds that it takes to 
perform only the Start_Timer and End_Timer routines.

Declaration     Accuracy_Adjustment

Parameters      None

Result  Returns a real number containing the time lapse that occurs with 
Start_Timer and End_Timer called back to back in seconds.

Restrictions    It's best to call accuracy adjustment after you call End_Timer

See also        Start_Timer, End_Timer

Example Heres an example program that times a simple WriteLn procedure and 
includes the accuracy adjustment.

                Program Test_Time( Input, Output );
                  Uses
                    Time;
                  Var
                    Result: Real;
                  Begin
                    Start_Timer;
                    WriteLn( 'Hello out there?' );
                    Result := End_Timer - Accuracy_Adjustment;
                    WriteLn( 'Procedure took ', Result, ' seconds.' );
                  End.

----------------------------------------------------------------------------------------

Add function

From the Fraction unit
 
Function        This function takes to encoded fractions and adds them together 
producing a third encoded fraction.

Declaration     Add( Number_1, Number_2  )

Parameters      Number_1 -  First value to add to the second.  
                Number_2 -  Second value to add to the first.

Result  Returns an encoded fraction containing the sum of the two fractions in 
lowest terms. 

Restrictions    There's a very small chance of overflow.

See also        Subtract, Multiply, Divide

Example {   See unit chapter for example. }

----------------------------------------------------------------------------------------

Add_Integer_String function

From the String_Utilities unit.
 
Function        This function takes two numerical integer strings and adds them together.

Declaration     Add_Integer_String( Number1, Number2 )

Parameters      Number1 - A numerical string containing a number to add to the second 
numerical string.   
                Number2 -  A numerical string containing a number to add to the first 
numerical string.

Result  Returns a string containing the sum of the two numerical strings.

Restrictions    Make sure to supply two numerical strings.  Example "12345".  Take care 
that the result does not cause an overflow.

See also        Subtract_Integer_String, Multiply_Integer_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Add_Matrices function

From the Matrices unit
 
Function        This function will take two matrices and add them together, putting the 
result in the given matrix.

Declaration     Add_Matrices( Operand1, Operand2, Result )

Parameters      Operand1 -  A variable pointer to the first matrix to be added.  
                Operand2 - A variable pointer to the second matrix to be added.  
                Result -  A variable pointer to the matrix in which the result will be placed.

Result  If the sizes match up exactly, the addition is made of the two matrices and 
stored in Result and the function returns with the value of true.  If for any 
reason, the operation can't continue the function quits and returns false.

Restrictions    All the supplied matrices must be initialized or the program will halt.

See also        Subtract_Matrices, Multiply_Matrices

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Add_Note_To_Music procedure

From the Music unit
 
Function        This procedure adds the supplied note to the music system.

Declaration     Add_Note_To_Music( New_Note, Length )

Parameters      New_Note - A notes type argument which specifies the particular note to 
add to the music system.  (C0, CN0, D0, DN0, E0, F0, FN0, G0, GN0, A0, AN0, B0, C1, CN1, D1, 
DN1, E1, F1, FN1, G1, GN1, A1, AN1, B1, C2, CN2, D2, DN2, E2, F2, FN2, G2, GN2, A2, AN2, B2, C3, CN3, 
D3, DN3, E3, F3, FN3, G3, GN3, A3, AN3, B3, C4, CN4, D4, DN4, E4, F4, FN4, G4, GN4, A4, AN4, B4, C5, 
CN5, D5, DN5, E5, F5, FN5, G5, GN5, A5, AN5, B5, C6, CN6, D6, DN6, E6, F6, FN6, G6, GN6, A6, AN6, B6, 
C7, CN7, D7, DN7, E7, F7, FN7, G7, GN7, A7, AN7, B7, C8 )  
                Length -  A real number indicating the length the note is to be played in 
seconds.

Result  The new note is added to the music queue 

Restrictions    None

See also        Add_Sound_To_Music

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Add_Real_String function

From the String_Utilities unit.
 
Function        This function takes two numerical real strings and adds them together.

Declaration     Add_Real_String( Number1, Number2 )

Parameters      Number1 - A numerical string containing a number to add to the second 
numerical string.   
                Number2 -  A numerical string containing a number to add to the first 
numerical string.

Result  Returns a real numerical string containing the sum of the two numerical 
strings.

Restrictions    Make sure to supply two numerical real strings.  Example "12345.001"  
Also note that the strings are not to be in scientific notation and that if they 
are too large, they may cause a numeric overflow.

See also        Subtract_Real_String, Multiply_Real_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Add_Sound_To_Music procedure

From the Music unit
 
Function        This procedure adds the specific frequency to the music queue.  

Declaration     Add_Sound_To_Music( Frequency, Length )

Parameters      Frequency -  A word type value indicting the frequency to be added to the 
music queue.  
                Length -  A real type value indicating the length of time the frequency is to 
be placed in seconds.

Result  The specified frequency is added to the music queue.

Restrictions    None

See also        Add_Note_To_Music

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Address_Storage function

From the Core unit
 
Function        This function returns a pointer to the specified location on the simulated 
screen.

Declaration     Address_Storage( Storage, Row, Column )

Parameters      Storage - Record of Storage_Record type that holds the previously 
allocated simulated screen.  
                Row -  The row location in the storage record.  
                Column - The column location in the storage record.

Result  This function returns a pointer to the location specified in the simulated 
screen by Row and Column.  Generates an error if the values are out of 
range.

Restrictions    The simulated screen must be allocated for this to work.  Error conditions 
may halt the program.

See also        Allocate_Storage

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Allocate_Matrix function

From the Matrices unit
 
Function        This function reserves from the heap an area of memory large enough to 
hold a matrix of the supplied dimensions.

Declaration     Allocate_Matrix( Row_Size, Column_Size )

Parameters      Row_Size -  A value from 1 to Max_Matrix_Size that defines the number 
of rows the allocated matrix is to have.  
                Column_Size -  A value from 1 to Max_Matrix_size that defines the 
number of columns the allocated matrix is to have.

Result  If the function is successful, it returns a pointer to the memory address, 
otherwise it returns nul. 

Restrictions    The matrix size is limited by the constant Max_Matrix_Size.

See also        Deallocate_Matrix

Example { Unfinished.  See unit chapter for example. }

----------------------------------------------------------------------------------------

Allocate_Storage function

From the Core unit
 
Function        This function allocates a block of memory to store a virtual screen

Declaration     Allocate_Storage( Storage )

Parameters      Storage - variable of type Storage_Record to which the memory is 
allocated.

Result  This function returns true if the memory was allocated, false if it wasn't 
and may also terminate the program.

Restrictions    Storage record must be initialized before this routine is called.

See also        Deallocate_Storage

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Assign_File_To_Window procedure

From the Multiple unit
 
Function        This procedure assigns a particular text file to the given multiple screen 
window.  

Declaration     Assign_File_To_Window( The_File, Window_Handle )

Parameters      The_File -  A text file that is to be assigned to the given window.
                Window_Handle -  A byte value that holds the window handle.  

Result  Whatever is written to the file will now appear on the specified window, 
provided it's first opened of course.

Restrictions    Make sure to supply a valid window handle.  The file must still be opened 
and closed like any other file before it will operate properly.

See also        Switch_Active_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Assign_VW procedure

From the Windows unit
 
Function        This procedure allows a text file to be assigned to the virtual window.

Declaration     Assign_VW(  The_File )

Parameters      The_File - A text file which is to be assigned to the virtual window system.

Result  All writes to the text file are redirected to the virtual window.

Restrictions    Be sure to open the file after you assign it.  Also be sure not to access the 
file after the window is closed with Close_All_Windows, Close_Window or 
VW_Destroy

See also        ?

Example { See unit chapter for example. }

 B

----------------------------------------------------------------------------------------

Begin_Timed_Procedure procedure

From the Timer unit
 
Function        This procedure will turn on the interrupt timed calling of your given 
procedure.

Declaration     Begin_Timed_Procedure( New_Procedure )

Parameters      New_Procedure - A  procedure of the far call model.

Result  Your new procedure begins to be called on a regular basis depending on 
the Time_Lapse variable.

Restrictions    Be sure you completely understand the Timer unit before you use this.  
The use of non-reentrant routines is very dangerous to your system's well 
being.

See also        End_Timed_Procedure and the Timer header.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Blank_Column procedure

From the Core unit
 
Function        This procedure blanks the specified column of the display screen.

Declaration     Blank_Column( Column, Top, Bottom )

Parameters      Column -  This byte value defines the column to perform the operation on.
                Top -  This defines the top row of the column.  
                Bottom - This defines the bottom row of the column.

Result  The screen is altered.

Restrictions    Get_The_Mode must be called prior to this procedure.

See also        Get_The_Mode, Blank_Row

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Blank_Row procedure

From the Core unit
 
Function        This procedure fills the given screen row with blank spaces.

Declaration     Blank_Row( Row, Left, Right )

Parameters      Row -  The screen row on which to perform the operation.  
                Left - The left column of the blank area.  
                Right -  The right column of the blank area.

Result  The given row of the screen is set to blanks from Left column to Right 
column. 

Restrictions    Set_The_Mode must be called prior to this procedure.

See also        Set_The_Mode, Blank_Column

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Browse procedure

From the Multiple unit
 
Function        This procedure allows the user the opportunity to use a special procedure 
to browse through the window.  Although it's not necessary, it does offer 
nice standard commands to perform it's task.  Window movement 
commands are also included.  This procedure returns control to the 
program when either Escape or Enter are pressed.

Declaration     Browse( Window_Handle )

Parameters      Window_Handle -  A byte type value referring to a specific window on the 
screen.

Result  The user has the opportunity to browse across the whole virtual window 
and examine it's contents.  The window is made visible if it isn't already.  
The window may be moved by the user but this doesn't affect 
performance.

Restrictions    The window handle must be a valid one for this routine to operate properly.

See also        The Multiple unit description.

Example { See unit chapter for example. }

 C

----------------------------------------------------------------------------------------

Calculate_Percentage function

From the Indicator unit
 
Function        This function calculates the percentage value from the two given values.

Declaration     Calculate_Percentage( Amount, Total )

Parameters      Amount -  A long integer value from 0 to Total.
                Total - A long integer value containing the total possible values that 
Amount is defined to have.

Result  Returns a byte value ranging from 0 to 100. 

Restrictions    Be sure that Amount is less than Total and they are both positive numbers.

See also        ?

Example This example returns the percentage amount of the two numbers and 
writes it to the screen.

                Program Test_Percentage( Output );
                  Uses
                    Indicators;
                  Var
                    Result: Byte;
                  Begin
                    Result := Calculate_Percentage( 678, 929 );
                    WriteLn( '678 is ', Result, '% of 929' );
                  End.

----------------------------------------------------------------------------------------

Call_DOS_About_Drive procedure

From the Drives unit.
 
Function        This procedure inquires the operating system about the existence of the 
given drive.  More precisely, it checks to see if the drive exists and is 
ready.

Declaration     Call_DOS_About_Drive( Drive, Exist )

Parameters      Drive - A character that identifies the drive to the procedure.
                Exist - A variable Boolean value that the result is returned in.

Result  Exist is altered to reflect the result of the operation. 

Restrictions    Be completely sure to supply a valid drive value.

See also        Does_This_Drive_Exist

Example This program checks to see if a F drive is on the system and ready.

                Program Check_Drive( Output );
                  Uses
                    Drives;
                  Var
                    Result: Boolean;
                  Begin
                    Call_DOS_About_Drive( 'F', Result );
                    If Result
                      then
                        WriteLn( 'System has an F drive.' )
                      else
                        WriteLn( 'System lacks an F drive.' );
                  End.

----------------------------------------------------------------------------------------

Capitalize procedure

From the String_Utilities unit
 
Function        This procedure takes any string and swaps all the lowercase letters for 
uppercase letters.

Declaration     Capitalize( Data )

Parameters      Data - A variable string to which the operation is to be performed.

Result  All the lowercase letters in Data will be altered to uppercase. 

Restrictions    None

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Center function

From the String_Utilities unit
 
Function        This function expands a string to fill the given size by centering the data 
around it.

Declaration     Center( Data, Width, Fill )

Parameters      Data - A string which holds the original data.
                Width - A byte value specifying the final length of the requested string.
                Fill -  A character with which to expand the string to the new size.

Result  Will return a string of the given size.  If Data is smaller than Width in size, 
the string will be expanded on both sides with the Fill character.

Restrictions    None

See also        Spread_Out_String, Expand

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Change_Attribute procedure

From the Indicators unit
 
Function        This procedure presents the user with a menu from which to choose a 
appropriate text attribute with a selection bar.

Declaration     Change_Attribute( Current_Attribute )

Parameters      Current_Attribute -  A variable byte value containing the current text 
attribute which the user wishes to alter.

Result  The screen is altered with a menu on it and the value of Current_Attribute 
is very likely to be altered.

Restrictions    Make sure the current screen window is large enough to accept the entire 
menu screen.  Works best in text mode.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Change_Boolean procedure

From the Editor unit

Function        This procedure allows your user to alter the given Boolean value;  The F 
key toggles the value to false, the T to true.  The space flips the value to 
it's opposite.  The value is wrapped if it exceeds the end of the line.  F1 
invokes help.  The routine ends when Enter, Escape, Up or Down are 
pressed.

Declaration     Change_Boolean( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the Boolean value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Change_Key_Routine procedure

From the BTree unit

Function        This procedure takes your own compare functions and inserts them into 
the code so that the BTree can use them instead of it's own routines to 
store the data in a order arrangement.

Declaration     Change_Key_Routine( Tree, Equal, Less_Than )

Parameters      Tree - The BTree file structure which is to use the new routines.
                Equal - a function that returns true if the two given records are equal.
                Less_Than - a function that returns true if the first given record is less 
than the second.

Result  Alters the code used to manipulate the BTree. 

Restrictions    The routines must be exactly the same as used to create the tree for the 
tree structure to operate properly.  See the header for more details.

See also        BTree unit header

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Change_Key_Routine procedure

From the Structures unit
 
Function        This procedure takes your own comparison routines and puts them in the 
binary tree system to handle the binary tree.  (Not supported with compiler 
version 4.0)

Declaration     Change_Key_Routine( Tree, Equal, Less_Than )

Parameters      Tree - A variable of Tree_Type that's used to manage the binary tree 
structure.
                Equal - A function of Compare_Function type that's to be used to ensure 
two records are equal.
                Less_Than - A function of Compare_Function type that's to be used to 
compare two records.

Result  The defaulting comparing routines of the binary tree are replaced with the 
new functions.

Restrictions    Make especially sure you know what you're doing when using this feature. 

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Change_Screen_Attribute procedure

From the Core unit
 
Function        This procedure alters only the attributes of the specified characters on the 
screen.

Declaration     Change_Screen_Attribute( Row, Column, Length, Attribute );

Parameters      Row - The row location of the characters to alter.
                Column - The column location of the characters to alter.
                Length - Amount of characters to alter.
                Attribute -  The new attribute to replace the old ones with.

Result  The screen is altered 

Restrictions    Get_The_Mode must be called prior to this one.

See also        Get_The_Mode, Change_Window_Attribute

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Change_Storage_Attribute procedure

From the Core unit

FunctionThis procedure alters the text attributes in the simulated screen.

Declaration     Change_Storage_Attribute( Storage, Row, Column, Length, Attribute )

Parameters      Storage -  A variable of Storage_Record type that holds the simulated 
screen.
                Row - The row location of the text.
                Column - The column location of the text.
                Length - The amount of text to alter.
                Attribute - The new attribute to use in the simulated screen.

Result  The text at the given location in the simulated screen is altered to use the 
new attribute. 

Restrictions    The Storage variable must have been allocated prior to this procedure.

See also        Allocate_Storage, Get_From_Storage, Put_To_Storage

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Change_Window_Attribute procedure

From the Core unit
 
Function        This procedure alters only the screen attributes for the characters at the 
given location relative to the window buffer.

Declaration     Change_Window_Attribute( Row, Column, Length, Attribute )

Parameters      Row - The row location relative to the window in which to change the 
attributes.
                Column - The column location relative to the window in which to change 
the attributes.
                Length -  Amount of characters attributes in which to change.
                Attribute -  The new attribute.

Result  The screen is altered 

Restrictions    You must call the Get_The_Mode procedure first.

See also        Get_The_Mode, Change_Screen_Attribute

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Change_Window_Attribute procedure

From the Multiple unit
 
Function        This procedure alters the text attribute at the given location in the given 
virtual window.

Declaration     Change_Window_Attribute( Window_Handle, Column, Row, Length, 
Attribute )

Parameters      Window_Handle -  A byte value specifying which virtual window the 
attribute is to be altered in.
                Column - A byte value specifying the column to alter the text attributes.
                Row -  A byte value specifying the row to alter the text attributes.
                Length -  A byte value specifying the amount of characters to include in 
the text attribute alteration.
                Attribute -  A byte value containing the new text attribute to use.

Result  Part of the row of text in the virtual window is altered to contain the new 
text attribute and the screen is updated.

Restrictions    Make sure to use a value window handle.  The specified location should 
be valid within the virtual window.

See also        Put_TextAttr

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Change_Window_Visibility procedure

From the Multiple unit
 
Function        This procedure alters the visibility of the supplied virtual window so that it's 
either invisible or visible on the screen.  Note:  Making a window visible or 
invisible does not in any way alter it's contents or position.

Declaration     Change_Window_Visibility( Window_Handle, View )

Parameters      Window_Handle -  A byte value that indicates to the procedure which 
Multiple virtual window to alter.
                View -  A byte value specifying the view to be used.  Visible and Invisible 
are predefined for your convenience.

Result  The specified virtual window view may be altered and the screen will be 
updated. 

Restrictions    Be sure to specify a valid virtual window.

See also        Create_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Character_Menu_Default function

From the TextEdit unit
 
Function        This is a default function called by TextEdit to allow the user the 
opportunity to select an alternate character from a menu.

Declaration     Character_Menu_Default( Character )

Parameters      Character - A variable of character used to return the new value.

Result  Returns true if the character was picked, otherwise false. 

Restrictions    None

See also        The Character_Menu variable procedures from TextEdit

----------------------------------------------------------------------------------------

Check_For_Pointer function

From the Pointer unit
 
Function        This function checks the system to see if the driver for the pointer is 
operating.

Declaration     Check_For_Pointer

Parameters      None

Result  Results are Boolean.  It returns true if the driver was operating, false if it 
wasn't. 

Restrictions    None

See also        Reset_Pointer, Set_For_Pointer

Example Here's an example program that demonstrates the use of some of the 
pointer routines.

                Program Look_At_The_Pointer( Input, Output );
                  Uses
                    Pointer;
                  Var
                    Data: Pointer_Data_Type;
                  Begin
                    If Check_For_Pointer
                      then
                        Begin
                          Read_Pointer( Data );
                          Write( Data.Row, Data.Column );
                        End;
                  End.

----------------------------------------------------------------------------------------

Check_System_Drives procedure

From the Drives unit
 
Function        This function scans across the system for existing drives, either physical 
or logical and returns the valid ones in a set variable.

Declaration     Check_System_Drives( Drives )

Parameters      Drives - A variable parameter of Drive_Set_Type.  This is a set of the 
possible drive values from A to Z.

Result  Drives is altered to reflect the valid drive letters of the system.

Restrictions    None.

See also        Does_This_Drive_Exist, Call_DOS_About_Drive

Example Here's an example program that writes out all the drives of the system.

                Program List_All_Drives( Output );
                  Uses
                    Drives;
                  Var
                    Point_Drive: Char;
                    All_Drives: Drive_Set_Type;
                  Begin
                    Check_System_Drives( All_Drives );
                    For Point_Drive := 'A' to 'Z' do
                      If ( Point_Drive in All_Drives )
                        then
                          WriteLn( 'System has a ', Point_Drive, ' drive.' );
                  End.

----------------------------------------------------------------------------------------

Clear_Defaults procedure

From the Draw unit
 
Function        This procedure clears the drawing colors to the defaults and moves the 
current pointer back to the upper left corner.

Declaration     Clear_Defaults

Parameters      None

Result  The current pointer is moved back to it's home position and any new 
drawings appear in the original colors.

Restrictions    None

See also        Move_To, Set_Background_Color, Set_Filling_Color, Set_Color

Example This sample program makes simple use of this procedure to re-initialize 
the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Line_To( 50, 30 );
                    Clear_Defaults;
                    Draw_Line_To( 30, 50 );
                  End.

----------------------------------------------------------------------------------------

Clear_Graphic_Screen procedure

From the Screen unit
 
Function        This procedure clears the entire graphical screen using the quickest 
method possible.

Declaration     Clear_Graphic_Screen

Parameters      None

Result  The graphic screen is cleared using the system's fastest method. This 
should also work nicely in text mode, but isn't necessarily the fastest 
method.

Restrictions    None noted.

See also        ?

Example Although simple, this program shows how to use this method.

                Program Clear( Input, Output );
                  Uses
                    Screen;
                  Begin
                    WriteLn( 'This stuff is to mess up the screen.' );
                    Clear_Graphic_Screen.
                  End.

----------------------------------------------------------------------------------------

Clear_List procedure

From the FillCode unit
 
Function        This procedure clears the Y coordinate list and the work area list for the 
graphical buffer structure.  (See FillCode chapter)

Declaration     Clear_List

Parameters      None

Result  The Y coordinate list is cleared and anything that was in there previously 
is destroyed.

Restrictions    None notable

See also        Clear_Y_Coordinate_List, Draw_List

Example This example will produce no viewable results.

                Program Plot( Input, Output );
                  Uses
                    Draw, FillCode, Screen;
                  Begin
                    Set_Screen_Mode( 17 );
                    Clear_List;
                    Filled_Pixel_Job( 1, 3 );
                    Filled_Pixel_Job( 1, 56 );
                    Clear_List;
                    Draw_List;
                  End.

----------------------------------------------------------------------------------------

Clear_Music procedure

From the Music unit
 
Function        This procedure stops the music from playing and clears the entire music 
queue of anything in it.

Declaration     Clear_Music

Parameters      None

Result  The music system stops playing and the music queue is cleared, returning 
all allocated memory back to the heap.

Restrictions    None

See also        Start_Music, Stop_Music

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Clear_Storage procedure

From the Core unit
 
Function        This procedure clears all the text from the simulated screen.

Declaration     Clear_Storage( Storage )

Parameters      Storage - The preallocated simulated screen of Storage_Record type.

Result  The entire simulated storage screen is cleared and replaced with blanks.

Restrictions    Storage must be allocated for this procedure to operate properly.

See also        Allocate_Storage, Clear_Storage_Row, Clear_Storage_Column

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Clear_Storage_Column procedure

From the Core unit
 
Function        This procedure clears a column of text from the simulated screen.

Declaration     Clear_Storage_Column( Storage, Column )

Parameters      Storage - A preallocated simulated screen of Storage_Record type.
                Column - The column in which to perform the operation.

Result  The selected column of the simulated screen is cleared and replaced by 
blanks.

Restrictions    Storage must be reallocated for this routine to operate.

See also        Allocate_Storage, Clear_Storage_Row, Clear_Storage.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Clear_Storage_Row procedure

From the Core unit
 
Function        This procedure clears a particular row on the simulated screen.

Declaration     Clear_Storage_Row( Storage, Row )

Parameters      Storage - Record of Storage_Record type that contains an allocated 
simulated screen.
                Row - Row location in the simulated screen to perform the operation.

Result  Clears a row of text from the simulated screen replacing it with blanks.

Restrictions    Storage must be preallocated for this operation to work.

See also        Clear_Storage_Column, Clear_Storage

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Clear_Y_Coordinate_List procedure

From the FillCode unit
 
Function        This procedure clears only the Y coordinate list.

Declaration     Clear_Y_Coordinate_List

Parameters      None

Result  The Y coordinate list is cleared only.  Nothing visible happens.

Restrictions    Nothing notable.

See also        Clear_List, Draw_List

Example This example will produce no viewable results.

                Program Plot( Input, Output );
                  Uses
                    Draw, FillCode, Screen;
                  Begin
                    Set_Screen_Mode( 17 );
                    Clear_List;
                    Filled_Pixel_Job( 1, 27 );
                    Filled_Pixel_Job( 1, 49 );
                    Clear_Y_Coordinate_List;
                    Draw_List;
                  End.

----------------------------------------------------------------------------------------

Close_All_Windows procedure

From the Windows unit
 
Function        This function closes all the open windows on screen very quickly  

Declaration     Close_All_Windows

Parameters      None

Result  All the open windows on the screen are closed and the screen is restored 
to it's original form.

Restrictions    This routine is intended mostly for emergency use or in the event of a 
severe error

See also        Close_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Close_Tree_File procedure

From the BTree unit
 
Function        This procedure closes the BTree file and commits all the changes to the 
disk.

Declaration     Close_Tree_File( Tree )

Parameters      Tree -  The variable that controls the tree structure that is to be closed.

Result  The tree file is committed to the disk and the changes are preserved.

Restrictions    None except that all tree structures should use this procedure.

See also        Open_Tree_File

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Close_Window procedure

From the Windows unit
 
Function        This procedure closes the current or topmost window using the specified 
animation method.

Declaration     Close_Window( Method )

Parameters      Method - A byte value indicating the animation method to employ in 
closing the window.  (Window_Up, Window_Pop, Window_Left, Window_Down, 
Window_Right, Window_Explode, Window_Up_Left, Window_Up_Right, 
Window_Vertical,  Window_Down_Left, Window_Down_Right, Window_Horizontal, 
Window_Vertical_Up, Window_Vertical_Down, Window_Horizontal_Left,  
Window_Horizontal_Right)

Result  The topmost window is closed and the previous window is again active.

Restrictions    Any virtual window associated with the top-most window is destroyed.

See also        Close_All_Windows, Open_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

ClrEOL procedure  (Clear to end of line)

From the Multiple unit
 
Function        This procedure clears all the text from the cursor's current column in the 
virtual window to the end of the current row.  The cursor remains in the 
same place and spaces replace the rest of the rest of the characters.

Declaration     ClrEOL( Window_Handle )

Parameters      Window_Handle -  A byte value holding the window handle number.

Result  The multiple window is altered and the screen updated.

Restrictions    Make sure the window handle is valid.

See also        ClrScr, Create_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

ClrScr procedure  (Clear screen)

From the Multiple unit
 
Function        This procedure clears all the text from the given virtual window and moves 
the cursor to the top left hand corner.  All characters are replaced with 
blanks.

Declaration     ClrScr( Window_Handle )

Parameters      Window_Handle - A byte containing the number of the specific window to 
perform the operation.

Result  The specific virtual window is altered and the screen updated. 

Restrictions    Make sure that the given window handle is valid.

See also        ClrEOL, Create_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Combine function

From the Core unit
 
Function        This function combines two text attribute values together to produce a 
byte value.

Declaration     Combine( Old_Colors, New_Colors, Keep_Text, Keep_Background )

Parameters      Old_Colors - Defines the old text attribute.
                New_Colors - Defines the new text attribute.
                Keep_Text -  When set to true, the foreground color of Old_Colors is 
used, otherwise the foreground color of New_Colors is used.
                Keep_Background -  When set to true, the background color of 
Old_Colors is used, otherwise the background color of New_Colors is 
used.

Result  Returns a byte combination of the supplied data.

Restrictions    None

See also        Reverse

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Comma_The_String procedure

From the String_Utilities unit
 
Function        This procedure takes a numerical string and puts comma into it in the 
appropriate places.

Declaration     Comma_The_String( Data )

Parameters      Data - A variable string to which the operation is to be performed.

Result  The number in Data will be altered to have commas in standard numerical 
order.

Restrictions    Make sure the supplied string has a number in it.  Example "3789598"

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Confirm_Changes_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit

Declaration     Confirm_Changes_Default( Amount )

Parameters      Amount - A word value indicating the amount of changes that occurred.

Result  Displays to the user the results of the search and replace routine

Restrictions    None

See also        The Confirm_Changes variable procedure in TextEdit

----------------------------------------------------------------------------------------

Convert_To_Real function

From the Fraction unit
 
Function        This function converts an encoded fraction into the real number format.

Declaration     Convert_To_Real( Number )

Parameters      Number - The encoded fraction in a long integer from which the real 
number is to be generated.

Result  Returns a real number with the same value as the encoded fraction.

Restrictions    None

See also        Equals, Convert_To_String, Separate

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Convert_To_String function

From the Editor unit
 
Function        This function converts the source data to a string.

Declaration     Convert_To_String( Source, Length )

Parameters      Source - A untyped variable that holds data to be converted to a string.
                Length - The size of the untyped variable in bytes.  

Result  Returns a string with the data from source in it. 

Restrictions    May return junk if the data isn't convertible.

See also        Typecasting variables for another method of performing the conversion.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Convert_To_String function

From the Fraction unit
 
Function        This function converts a fraction from the encoded long integer into a 
string of characters for output.

Declaration     Convert_To_String( Number )

Parameters      Number - The fraction encoded in a long integer type value.

Result  Returns a string containing the fraction as a string of characters. 

Restrictions    None.

See also        Equals, Convert_To_Real, Separate.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Copy_Block function

From the TextEdit unit
 
Function        This function attempts to make a copy of the block and return it in a 
clipboard.

Declaration     Copy_Block( Text, Clipboard, Start, Finish )

Parameters      Text - A variable of Text_Type that holds the text data structure.
                Clipboard - A variable of Text_Type that holds the result of the copy.
                Start - A variable of Point_Type that points to the beginning of the block to 
copy.
                Finish - A variable of Point_Type that points to the ending of the block to 
copy.

Result  Returns true if the copy was successful, false otherwise. 

Restrictions    Be sure that both text structure variables have been initialized.

See also        Cut_Block, Paste_Block

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Copy_Matrix function

From the Matrices unit
 
Function        This function takes two matrices, the original and the one into which it will 
make a copy.  It then tries to make a copy of the original in the second 
matrix.

Declaration     Copy_Matrix( Operand, Result )

Parameters      Operand -  The original matrix that's to be copied.
                Result -  The matrix into which the copy is to be put.

Result  This function returns true if the action was successful, otherwise it returns 
false.  It may fail if the sizes are incompatible.

Restrictions    The contents of the second matrix will be lost.  Make sure the second 
matrix has been preallocated.

See also        Get_From_Matrix, Put_In_Matrix

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Create_Queue procedure

From the Structures unit
 
Function        This procedure initializes the queue structure to accept data records of the 
given size.

Declaration     Create_Queue( Queue,  Data_Size )

Parameters      Queue - A variable of Queue_Type used to managed the queue data 
structure.
                Data_Size - A word value indicating the size of the queue's data records 
in bytes.

Result  Queue is initialized and ready to accept records of Data_Size length.

Restrictions    None

See also        Discard_Queue

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Create_Stack procedure

From the Structures unit
 
Function        This procedure initializes the stack data structure to allow data records of 
the given size.

Declaration     Create_Stack( Stack, Data_Size )

Parameters      Stack - A variable record of Stack_Type which holds the information for 
managing the stack data structure.
                Data_Size - A word value indicating the size of the stack records in bytes.

Result  The Stack structure is initialized and ready for data 

Restrictions    None

See also        Discard_Stack

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Create_Tree procedure

From the Structures unit
 
Function        This procedure initializes the given tree record to allow it to manage a tree 
structure with records of the given size.

Declaration     Create_Tree( Tree, Total_Data_Size, Key_Offset, Key_Length )

Parameters      Tree - A variable of Tree_Type needed to manage the tree structure.
                Total_Data_Size - A word value indicating the size of the total record to be 
managed.
                Key_Offset - A word value indicating the offset into the record where the 
key is to reside.
                Key_Length - A word value indicating the size of the key in the total record.

Result  The tree structure is set up to manage a tree with records of the given 
proportions.

Restrictions    Make sure the key offset doesn't exceed the size of the record and make 
sure of the same with the key length.

See also        Destroy_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Create_Window function

From the Multiple unit
 
Function        This function creates a virtual window on the screen through the multiple 
window system.  

Declaration     Create_Window( Frame, Method, Left, Top, Right, Bottom, Attribute, 
Row_Size, Column_Size, View )

Parameters      Frame - A byte describing the frame type for the window. (No_Frame, Frame_1, 
Frame_2, Frame_3, Frame_4, Frame_5, Frame_6, Frame_7, Frame_8, Etc)
                Method - A byte describing the animation method of the window 
presentation.  (Window_Up, Window_Down, Window_Pop, Window_Left, Window_Right, 
Window_Explode, Window_Up_Left, Window_Up_Right, Window_Vertical, Window_Down_Left, 
Window_Down_Right, Window_Horizontal, Window_Vertical_Up, Window_Vertical_Down, 
Window_Horizontal_Left, Window_Horizontal_Right, Etc)
                Left -  Screen column for the left side of the window.
                Top - Screen row for the top of the window.
                Right - Screen column for the right side of the window.
                Bottom -  Screen row from the bottom of the window.
                Attribute -  Text attribute for window colors.  (See TextAttr)
                Row_Size -  The virtual height of the window.
                Column_Size -  The virtual width of the window.
                View -  A byte value indicating the view. (Visible, Invisible)

Result  The function returns a byte value handler to the new window.  And a new 
window is created in the multiple system.  The window's creation is 
animated in the event it's visible using the animation Method.  Default 
output file is assigned to the new window.

Restrictions    All writes to the screen should be handled through the Multiple unit 
instead of Turbo Pascal's (R) CRT unit.

See also        Destroy_Window.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Cut_Block function

From the TextEdit unit
 
Function        This procedure attempts to cut the block out of the text structure and 
return it in the clipboard.

Declaration     Cut_Block( Text, Clipboard, Buffer, Start, Finish, Cursor )

Parameters      Text - A variable of Text_Type which holds the text structure.
                Clipboard - A variable of Text_Type in which the clipping is placed.
                Buffer - A variable of Line_Type needed as a second line buffer for the 
operation.
                Start - A variable of Point_Type that points to the beginning of the marked 
block.
                Finish - A variable of Point_Type that points to the ending of the marked 
block.
                Cursor - A variable of Point_Type that indicates the current cursor location 
in the text.

Result  Returns true if the operation was successful.  The data structure in Text is 
altered and the clipping is moved to the clipboard.  Also note that Finish 
and Cursor are updated to indicate their new location in the text structure. 

Restrictions    Be sure that the text structure and clipboard structure have been 
initialized.  Also note that if clipboard isn't empty, it's data is tossed out 
before the operation is carried out.

See also        Copy_Block, Paste_Block

Example { See unit chapter for example. }

 D

----------------------------------------------------------------------------------------

Data_Ready function

From the KeyBoard unit
 
Function        This function checks to see if there is certain data ready to be picked up 
by the Get_Command procedure. It also remembers to check the 
alternative input devices for their status as well.

Declaration     Data_Ready

Parameters      None

Result  Returns true if there is data waiting to be picked up by the Get_Command 
procedure, otherwise this function returns false.

Restrictions    Only to be used with the Get_Command procedure, not for use alone.

See also        Get_Command

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Deallocate_Matrix procedure

From the Matrices unit
 
Function        This procedure returns the heap area reserved by Allocate_Matrix back to 
the system for other uses.

Declaration     Deallocate_Matrix( Matrix )

Parameters      Matrix - Pointer type address of the matrix that was allocated using 
Allocate_Matrix.

Result  The Heap area taken for Matrix is returned back to the system. 

Restrictions    After using this procedure the memory address is off limits from your 
program.

See also        Allocate_Matrix

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Deallocate_Storage procedure

From the Core unit
 
Function        This procedure deallocates the storage memory that Allocate_Storage 
reserved.

Declaration     Deallocate_Storage( Storage )

Parameters      Storage -  Record of type Storage_Record that has a properly allocated 
storage space.

Result  Returns the memory previously allocated back to the heap. 

Restrictions    The memory must have been previously allocated with the 
Allocate_Storage function.

See also        Allocate_Storage

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Default_PrintOut procedure

From the Words unit
 
Function        This is the default procedure used by the word parser system to put data 
to the default output file.

Declaration     Default_PrintOut( Data )

Parameters      Data - A string value containing the characters to be sent to the output file.

Result  The data is written to the output device or file. 

Restrictions    None

See also        The PrintOut variable procedure in the Words unit.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Define_Frame procedure

From the Core unit
 
Function        This procedure sets up the given window frame to one of the users own 
designs.

Declaration     Define_Frame( Frame, Top_Left, Top, Top_Right, Left, Middle, Right, 
Bottom_Left, Bottom, Bottom_Right, Attribute )

Parameters      Frame - A variable of Frame_Type that holds the frame data.
                Top_Left - Character define the top left corner of the frame.
                Top -  Character defining the top of the frame.
                Top_Right -  Character defining the top right corner of the frame.
                Left -  Character defining the left side of the frame.
                Middle -  Character defining the frames filler.
                Right -  Character defining the right side of the frame.
                Bottom_Left -  Character defining the bottom right corner of the frame.
                Bottom -  Character defining the bottom of the frame.
                Bottom_Right -  Character defining the bottom right corner of the frame.
                Attribute - A byte defining the frame text attribute.

Result  Frame is altered to hold the information necessary to create a frame of the 
given user defined style.

Restrictions    None

See also        Set_Window_Frame, Make_Frame, Draw_Window_Frame

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Delete_From_Tree function

From the BTree unit
 
Function        This function removes the given record with the file BTree structure.

Declaration     Delete_From_Tree( Tree, Old_Data );

Parameters      Tree - The tree definition structure into which the data will be stored.
                Old_Data - a record containing the exact data of the record to be removed.

Result  Returns true if the tree was altered to remove the record.  Returns false if 
it fails.

Restrictions    Specified record must be an exact match for the deletion to occur.

See also        Insert_In_Tree, Update_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Delete_From_Tree function

From the Structures unit
 
Function        This function attempts to delete the given data record from the given 
binary tree data structure.

Declaration     Delete_From_Tree( Tree, Old_Data )

Parameters      Tree - A variable of Tree_Type that controls the binary tree structure.
                Old_Data - An untyped variable holding a copy of the data that is to be 
removed from the tree.

Result  This function returns true if the given record was found in the binary tree 
and was appropriately deleted.  Otherwise the function returns false.

Restrictions    The record in the binary tree must match that in Old_Data exactly to have 
the record removed as a safety measure.

See also        Insert_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Destroy_Tree procedure

From the Structures unit
 
Function        This procedure disposes of all the information in the given tree structure, 
reinitializing it for a new tree.

Declaration     Destroy_Tree( Tree )

Parameters      Tree - A variable of Tree_Type used to manage a particular tree.

Result  The information in the tree is lost and the memory is returned back to the 
heap.

Restrictions    None

See also        Create_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Destroy_Window procedure

From the Multiple unit
 
Function        This procedure destroys the multiple unit screen window corresponding to 
the given handle.

Declaration     Destroy_Window( Window_Handle, Method )

Parameters      Window_Handle -  A variable of type byte which should be holding the 
window handle provided by Create_Window when the window was 
created.  This determines which window to destroy.
                Method -  A byte value describing the animation method to use if the 
window happens to be visible on the screen.

Result  The screen is updated and the animation is displayed as the window is 
destroyed.  The value of Window_Handle is altered.

Restrictions    After a window is destroyed, all access to it may result in data going into 
information limbo.

See also        Create_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Determinate_Fast function

From the Matrices unit
 
Function        This function calculates the determinate of the given matrix using a very 
fast method.  I've tried to stabilize the code, by using special occasions to 
switch to the slower method, but this code still has the drawback of 
generating numerical overflows when working with larger matrices 
especially when working with the six byte reals.  The numerical 
coprocessor's extended floating point type tends to provide much more 
stability.  

Declaration     Determinate_Fast(  Matrix )

Parameters      Matrix -  A variable pointer to the matrix with which to find the determinate 
of.

Result  Returns the calculated determinate of the given matrix. 

Restrictions    Take care not to cause overflows when using very large matrices.  Also 
make sure you provide a valid matrix to operate with or the program may 
halt.

See also        Determinate_Slow

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Determinate_Slow function

From the Matrices unit
 
Function        This function calculates the determinate of the given matrix using the 
slower method, which I have found to be somewhat more reliable, but a 
lot less speedy than the faster method.

Declaration     Determinate_Slow( Matrix )

Parameters      Matrix -  A variable pointer to the matrix with which to find the determinate 
of.

Result  This function returns a Matrix_Type number containing the calculated 
determinate of the given matrix. 

Restrictions    This function will work much slower on the larger matrices.  Make sure 
that the given matrix is valid or the program will halt.

See also        Determinate_Fast

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Dim_Screen_Attribute procedure

From the Core unit
 
Function        This procedure alters the screen character attributes at the given location.

Declaration     Dim_Screen_Attribute( Row, Column, Length, Attribute );

Parameters      Row -  The row location of the screen characters.
                Column -  The column location of the screen characters.
                Length - The amount of characters to alter.
                Attribute - value describing in part the alteration to the characters.

Result  The screen display is altered 

Restrictions    The Get_The_Mode procedure must be called before this one.

See also        Get_The_Mode, Change_Screen_Attributes

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Discard_Queue procedure

From the Structures unit
 
Function        This procedure takes the given queue and removes all the elements from 
it.

Declaration     Discard_Queue( Queue )

Parameters      Queue - A variable of Queue_Type which is used to manage the queue 
structure.

Result  The queue structure is emptied and the memory is returned to the heap.

Restrictions    None

See also        Create_Queue, Get_Out

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Discard_Stack procedure

From the Structures unit
 
Function        This procedure removes all the elements from the stack and returns the 
memory back to the heap.

Declaration     Discard_Stack( Stack )

Parameters      Stack - A variable of Stack_Type which is used to manage the stack.

Result  All elements of the stack are eliminated and the stack is ready for new use.

Restrictions    Remember that all information in the stack will be lost.

See also        Create_Stack, Pop_Off

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Disk_Fixed function

From the Drives unit.
 
Function        This function looks for the given drive in the system and returns a Boolean 
value depending on what kind of drive it finds.

Declaration     Disk_Fixed( Drive )

Parameters      Drive - A character value containing the drive to check out.

Result  Returns true if the given drive is permanent, returns false otherwise. 

Restrictions    Be sure that the character passed to it is a proper drive value (A..Z) or the 
code may crash the program.

See also        Does_This_Drive_Exist

Example This example looks to see if drive D is permanent.

                Program Check_Drive( Output );
                  Uses
                    Drives;
                  Begin
                    If Disk_Fixed( 'D' )
                      then
                        Write( 'Drive D is permanent.' )
                      else
                        Write( 'Drive D is not permanent.' );
                  End.

----------------------------------------------------------------------------------------

Display_Information_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit

Declaration     Display_Information_Default ( All )

Parameters      All - A variable of All_Type that contains the information to be displayed.

Result  Information is displayed on the screen for the user 

Restrictions    Be sure that All has been initialized.

See also        The Display_Information variable procedure in TextEdit

----------------------------------------------------------------------------------------

Display_Pointer procedure

From the Pointer unit
 
Function        This procedure displays the pointer on the screen.

Declaration     Display_Pointer

Parameters      None.

Result  The pointer is displayed on the screen and allowed to move around by the 
system's interrupt devices.

Restrictions    Make sure you have a pointer before using this procedure.

See also        Hide_Pointer, Check_For_Pointer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Display_Read_Status_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit

Declaration     Display_Read_Status_Default( Where )

Parameters      Where - A long integer indicating how many lines of text have been read 
in so far.

Result  Displays to the user the current status of a read operation. 

Restrictions    None

See also        The Display_Read_Status variable procedure in TextEdit

----------------------------------------------------------------------------------------

Display_Where_Status_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit

Declaration     Display_Where_Status_Default( Where )

Parameters      Where - A long integer indicating the location of the process in the file.

Result  Displays to the user the current status of the block operation. 

Restrictions    None

See also        The Display_Where_Status variable procedure in TextEdit

----------------------------------------------------------------------------------------

Display_Write_Status_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit

Declaration     Display_Write_Status_Default( Where, Limit )

Parameters      Where - A long integer indicating the current line of text being written.
                Limit - A long integer indicating the total number of lines to be written.

Result  Displays to the user the amount of lines written and the total. 

Restrictions    None

See also        The Display_Write_Status variable procedure in TextEdit

----------------------------------------------------------------------------------------

Dispose_Box_Menu procedure

From the Menu unit
 
Function        This procedure deallocates all the heap memory taken up by the given 
menu structure.  In effect, reinitializing it.

Declaration     Dispose_Box_Menu( Menu )

Parameters      Menu -  A variable of Box_Menu_Type that contains the box menu 
structure to be disposed of.

Result  Everything that was stored in the menu structure is disposed of.  The 
menu is reinitialized to the state it was in after Initialize_Box_Menu

Restrictions    Make sure to supply a valid Menu data type.

See also        Initialize_Box_Menu, Remove_Top_Box_Menu, 
Remove_Bottom_Box_Menu

----------------------------------------------------------------------------------------

Dispose_Of_Text procedure

From the TextEdit unit
 
Function        This procedure releases all the memory or disk space used by the text 
structure for other use.

Declaration     Dispose_Of_Text( All )

Parameters      All - A variable of All_Type that manages the information in the text 
structure.

Result  Everything in All is eliminated and returned back for the system's use.

Restrictions    Be sure that All was initialize prior to using this procedure.

See also        Initialize_The_Text

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Dispose_Pointer function

From the FileMem unit
 
Function        This function takes the given address pointer and reinserts it back to the 
file memory system for reuse.  After this function is used, the data block 
must be considered lost.

Declaration     Dispose_Pointer( Pointer )

Parameters      Pointer - A variable holding the previously allocated address.

Result  Returns true if it's successful, false if something goes wrong.  The address 
is inserted into a structure to reserve it for future use.

Restrictions    Pointer must be a valid address or terrible things may go wrong with the 
file memory system afterwards.  The address must be considered invalid 
after this operation or data corruption may occur.

See also        New_Pointer, Put_New_Pointer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Divide function

From the Fraction unit
 
Function        This function takes two fractions and divides the second from the first.

Declaration     Divide( Number_1, Number_2 )

Parameters      Number_1 -  A fraction to be divided by the second value.
                Number_2 - A fraction to be divided into the first value.

Result  Returns a fraction value containing the result of the division.

Restrictions    Small chance of overflow or underflow.  Watch out for zero denominators.

See also        Add, Subtract, Multiply

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Divide_Integer_String function

From the String_Utilities unit.
 
Function        This function takes two numerical integer strings and divides the second 
into the first.

Declaration     Divide_Integer_String( Number1, Number2 )

Parameters      Number1 - A numerical string containing the dividend.
                Number2 -  A numerical string containing the divisor.

Result  Returns a string containing the division result of the two numerical strings.

Restrictions    Make sure to supply two numerical strings.  Example "12345" 

See also        Multiply_Integer_String, Mod_Integer_String.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Divide_Real_String function

From the String_Utilities unit.
 
Function        This function takes two numerical real strings and divides the second into 
the first.

Declaration     Divide_Real_String( Number1, Number2 )

Parameters      Number1 - A numerical string containing a number to be divided by the 
second numerical string.
                Number2 -  A numerical string containing a number divide into the first 
numerical string.

Result  Returns a real numerical string containing the result of the division of the 
two numerical strings.

Restrictions    Make sure to supply two numerical real strings.  Example "12345.001"  
Also note that the strings are not to be in scientific notation and that if they 
are too large, they may cause a numeric overflow.

See also        Multiply_Real_String, Divide_Integer_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Does_This_Drive_Exist function

From the Drives unit
 
Function        This function checks the system to see if a drive of the given name exists.

Declaration     Does_This_Drive_Exist( Drive )

Parameters      Drive - A character value that identifies the drive to look for.

Result  Returns true if the drive exists and is ready, otherwise this function returns 
false.

Restrictions    None.

See also        Call_DOS_About_Drive

Example This example program displays if drive B exists. (Logically)

                Program Check_For_B( Output );
                  Uses
                    Drives;
                  Begin
                    If Does_This_Drive_Exist( 'B' )
                      then
                        WriteLn( 'There is a B drive' )
                      else
                        WriteLn( 'Drive B doesn't exist.' );
                  End.

----------------------------------------------------------------------------------------

Draw_Arc procedure

From the Draw unit
 
Function        This procedure draws an arc on the screen device.

Declaration     Draw_Arc( CX, CY, Start_Angle, End_Angle, Radius )

Parameters      CX -  An integer defining the x coordinate center of the arc.
                CY -  An integer defining the y coordinate center of the arc.
                Start_Angle -  A word value defining the start angle of the arc.
                End_Angle -  A word value defining the finish angle of the arc.
                Radius -  A word value defining the vertical scale of the arc.

Result  An arc of the given dimensions is drawn on the screen device.

Restrictions    Note that the horizontal radius is adjusted to compensate for the screen 
horizontal density.

See also        Draw _Circle.

Example This sample program makes simple use of this procedure to draw a 
simple arc.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Arc( 50, 50, 20, 300, 50 );
                  End.

----------------------------------------------------------------------------------------

Draw_Bezier_Spline procedure

From the Draw unit
 
Function        This procedure draws a curving line that extends across the two given 
points and around two other points.

Declaration     Draw_Bezier_Spline( E1_X, E1_Y, C1_X, C1_Y, E2_X, E2_Y, C2_X, 
C2_Y )

Parameters      E1_X -  An integer value that defines the x coordinate of the first end-point 
of the line.
                E1_Y -  An integer value that defines the y coordinate of the first end-point 
of the line.
                C1_X -  An integer value that defines the x coordinate of the first 
influencing point.
                C1_Y -  An integer value that defines the y coordinate of the first 
influencing point.
                E2_X -  An integer value that defines the x coordinate of the other 
end-point of the line.
                E2_Y -  An integer value that defines the y coordinate of the other 
end-point of the line.
                C2_X -  An integer value that defines the x coordinate of the second 
influencing point.
                C2_Y -  An integer value that defines the y coordinate of the second 
influencing point.

Result  A curved line is drawn on the screen from the first end point to the second.

Restrictions    Points that are far away do not provide as much influence as those that 
are close by.

See also        Draw_Arc, Draw_Line.

Example This sample program makes simple use of this procedure to draw a 
Bezier Spline.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Bezier_Spline( 1, 1, 60, 70, 100, 100, 40, 25 
);
                  End.

----------------------------------------------------------------------------------------

Draw_Box procedure

From the Draw unit
 
Function        This procedure draws a vertical and horizontal oriented rectangle on the 
screen at the given coordinates.  

Declaration     Draw_Box( Left, Top, Right, Bottom, Depth, Top_On )

Parameters      Left -  An integer value defining the left x coordinate of the box.
                Top -  An integer value defining the top y coordinate of the box.
                Right -  An integer value defining the right x coordinate of the box.
                Bottom -  An integer value defining the bottom y coordinate of the box.
                Depth -  An integer value defining the extent to give the box the illusion of 
depth.
                Top_On -  A Boolean value defining if a top should be drawn on the box.

Result  A box is drawn on the screen device, with or without the illusion of depth.

Restrictions    To deactivate the depth function, merely supply a value of zero for the 
variable.

See also        Draw_Rectangle

Example This sample program makes simple use of this procedure to draw a box 
on screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Box( 50, 50, 150, 150, 20, True );
                  End.

----------------------------------------------------------------------------------------

Draw_Character procedure

From the Character unit
 
Function        This procedure draws a single character in the given screen box.

Declaration     Draw_Character( X1, Y1, X2, Y2, Character )

Parameters      X1 -  An integer value defining the left side of the on screen box in which 
to draw the character.
                Y1 -  An integer value defining the top of the on screen box in which to 
draw the character.
                X2 -  An integer value defining the right side of the on screen box.
                Y2 -  An integer value defining the bottom of the on screen box.
                Character -  A character value that defines the character to be drawn in 
the on screen box.

Result  The given character is drawn on the screen within the given box 
coordinates.

Restrictions    None noted.

See also        Draw_String

Example {Please see unit chapter. }

----------------------------------------------------------------------------------------

Draw_Circle procedure

From the Draw unit
 
Function        This procedure draws a circle on the screen.

Declaration     Draw_Circle( X, Y, Radius )

Parameters      X -  An integer value that defines the x coordinate of the circle's center.
                Y -  An integer value that defines the y coordinate of the circle's center.
                Radius -  A word value that defines the circle's radius in terms of the Y 
axis.

Result  Draws a circle on the screen device, hopefully in a fully rounded manner.

Restrictions    None

See also        Draw_Arc, Draw_Ellipse

Example This sample program uses this procedure to draw a circle on the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Circle( 100, 100, 50 );
                  End.

----------------------------------------------------------------------------------------

Draw_Disjoint_Ellipse procedure

From the Draw unit
 
Function        This procedure draws a complete horizontally and vertically aligned ellipse 
but in separated segments in a disjointed manner.  This is very useful for 
symmetrical objects that require multiple ellipses.

Declaration     Draw_Disjoint_Ellipse( X1, Y1, X2, Y2, X_Radius, Y_Radius )

Parameters      X1 -  Integer value defining the x coordinates of the left most ellipse 
segments.
                Y1 -  Integer value defining the y coordinates of  the top most ellipse 
segments.
                X2 -  Integer value defining the x coordinates of the right most ellipse 
segments.
                Y2 -  Integer value defining the y coordinates of the bottom most ellipse 
segments.
                X_Radius -  Word value defining the x radius of the ellipse segments.
                Y_Radius -  Word value defining the y radius of the ellipse segments.

Result  Four ellipse segments are drawn on the screen device, each centered at 
one of the points defined by X1, Y1, X2, Y2.  

Restrictions    None.

See also        Draw_Ellipse, Draw_Rounded_Box

Example This example program uses this procedure to draw a disjoint ellipse on 
the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Disjoint_Ellipse( 10, 10, 100, 100, 10, 10 );
                  End.

----------------------------------------------------------------------------------------

Draw_Ellipse procedure

From the Draw unit
 
Function        This procedure draws a horizontally and vertically aligned ellipse on the 
screen device.

Declaration     Draw_Ellipse( CX, CY, X_Radius, Y_Radius )

Parameters      CX -  This integer value defines the x coordinate of the ellipse's center.
                CY -  This integer value defines the y coordinate of the ellipse's center.
                X_Radius -  This word value defines the ellipse's x axis radius.
                Y_Radius -  This word value defines the ellipse's y axis radius.

Result  A full ellipse is drawn on the screen device.

Restrictions    None

See also        Draw_Circle, Draw_Elliptical_Arc

Example This example program uses this procedure to draw an ellipse on the 
screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Ellipse( 100, 100, 50, 100 );
                  End.

----------------------------------------------------------------------------------------

Draw_Ellipse_Box procedure

From the Draw unit
 
Function        This procedure draws the outline of a box on the screen with rounded 
corners.

Declaration     Draw_Ellipse_Box( X1, Y1, X2, Y2, X_Radius, Y_Radius )

Parameters      X1 -  Integer value defining the x coordinates of the left corner arcs.
                Y1 -  Integer value defining the y coordinates of  the top corner arcs.
                X2 -  Integer value defining the x coordinates of the right corner arcs.
                Y2 -  Integer value defining the y coordinates of the bottom corner arcs.
                X_Radius -  Word value defining the x radius of the corner arcs.
                Y_Radius -  Word value defining the y radius of the corner arcs.

Result  A rounded ellipses box is drawn on the screen device.  

Restrictions    None.

See also        Draw_Rounded_Box, Draw_Disjoint_Ellipse

Example This example program uses this procedure to draw a ellipse box on the 
screen device.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Ellipse_Box( 10, 10, 100, 100, 10, 10 );
                  End.

----------------------------------------------------------------------------------------

Draw_Elliptical_Arc procedure

From the Draw unit
 
Function        This procedure draws a horizontally aligned elliptical arc on the screen 
device.

Declaration     Draw_Elliptical_Arc( CX, CY, Start_Angle, End_Angle, X_Radius, 
Y_Radius )

Parameters      CX -  An integer value that specifies the x coordinate of the arc's center.
                CY -  An integer value that specifies the y coordinate of the arc's center.
                Start_Angle -  A word that defines the start angle of the arc.
                End_Angle -  A word that defines the finish angle of the arc.
                X_Radius -  A word value that defines the x radius of the arc.
                Y_Radius -  A word value that defines the y radius of the arc.

Result  An arc is drawn on the screen device. 

Restrictions    None

See also        Draw_Ellipse, Draw_Arc

Example This sample program uses this procedure to draw an elliptical arc on the 
screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Elliptical_Arc( 100, 100, 90, 270, 50, 40 );
                  End.

----------------------------------------------------------------------------------------

Draw_Elliptical_Arc_Job procedure

From the Draw unit
 
Function        This procedure plots an elliptical arc on the screen device buffer.

Declaration     Draw_Elliptical_Arc_Job( CX, CY, Start_Angle, End_Angle, X_Radius, 
Y_Radius )

Parameters      CX -  Integer value defining the x coordinates of the arc's center.
                CY -  Integer value defining the y coordinates of the arc's center.
                Start_Angle -  Word value defining the start angle of the arc.
                End_Angle -  Word value defining the ending angle of the arc.
                X_Radius -  Word value defining the x radius of the arc.
                Y_Radius -  Word value defining the y radius of the arc.

Result  An arc is drawn into the screen device buffer for a special graphic.

Restrictions    None.

See also        Draw_Ellipse, The Draw unit

Example This example program uses this procedure to draw a arc in the screen 
device buffer.

                Program Show_Example( Input, Output );
                  Uses
                    Draw,
                    Screen,
                    FillCode;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Clear_List;
                    Draw_Elliptical_Arc_Job( 100, 100, 0, 300, 50, 50 
);
                    Draw_List;  
                  End.

----------------------------------------------------------------------------------------

Draw_Filled_Circle procedure

From the Draw unit
 
Function        This procedure draws a filled or solid circle on the screen at the given 
location.

Declaration     Draw_Filled_Circle( X, Y, Radius )

Parameters      X -  An integer value that defines the circle's center x coordinate.
                Y -  An integer value that defines the circle's center y coordinate.
                Radius -  A word value that defines the circles radius.

Result  A filled or solid circle is drawn on the screen device. 

Restrictions    None.

See also        Draw_Circle, Draw_Filled_Ellipse.

Example This example program uses this procedure to draw a filled circle on the 
screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Filled_Circle( 100, 100, 50 );
                  End.

----------------------------------------------------------------------------------------

Draw_Filled_Ellipse procedure

From the Draw unit
 
Function        This procedure draws a filled ellipse on the screen at the given 
coordinates.

Declaration     Draw_Filled_Ellipse( CX, CY, X_Radius, Y_Radius )

Parameters      CX -  This integer value defines the ellipse center x coordinate.
                CY -  This integer value defines the ellipse center y coordinate.
                X_Radius -  This word value defines the ellipse's x radius.
                Y_Radius -  This word value defines the ellipse's y radius.

Result  A solid or filled ellipse is drawn on the screen device.

Restrictions    None

See also        Draw_Circle, Draw_Ellipse, Draw_Filled_Circle

Example This example program uses this procedure to draw a filled ellipse on the 
screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Filled_Ellipse( 100, 100, 50, 100 );
                  End.

----------------------------------------------------------------------------------------

Draw_Filled_Ellipse_Job procedure

From the Draw unit
 
Function        This procedure plots a ellipse on the screen device buffer.

Declaration     Draw_Filled_Ellipse_Job( CX, CY, X_Radius, Y_Radius )

Parameters      CX -  Integer value defining the x coordinates of the ellipse's center.
                CY -  Integer value defining the y coordinates of the ellipse's center.
                X_Radius -  Word value defining the x radius of the ellipse.
                Y_Radius -  Word value defining the y radius of the ellipse.

Result  An ellipses is plotted into the screen device buffer for a special graphic.

Restrictions    None.

See also        Draw_Ellipse

Example This example program uses this procedure to draw two ellipses in the 
screen device buffer.

                Program Show_Example( Input, Output );
                  Uses
                    Draw,
                    Screen,
                    FillCode;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Clear_List;
                    Draw_Filled_Ellipse_Job( 100, 100, 50, 50 );
                    Draw_Filled_Ellipse_Job( 150, 100, 50, 50 );
                    Draw_List;  
                  End.

----------------------------------------------------------------------------------------

Draw_Filled_Ellipse_Box procedure

From the Draw unit
 
Function        This procedure draws a solid box on the screen with rounded corners.

Declaration     Draw_Filled_Ellipse_Box( X1, Y1, X2, Y2, X_Radius, Y_Radius )

Parameters      X1 -  Integer value defining the x coordinates of the left corner arcs.
                Y1 -  Integer value defining the y coordinates of the top corner arcs.
                X2 -  Integer value defining the x coordinates of the right corner arcs.
                Y2 -  Integer value defining the y coordinates of the bottom corner arcs.
                X_Radius -  Word value defining the x radius of the corner arcs.
                Y_Radius -  Word value defining the y radius of the corner arcs.

Result  A solid or filled rounded ellipses box is drawn on the screen device.  

Restrictions    None.

See also        Draw_Rounded_Box, Draw_Ellipse_Box

Example This example program uses this procedure to draw a filled ellipse box on 
the screen device.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Filled_Ellipse_Box( 10, 10, 90, 90, 10, 10 );
                  End.

----------------------------------------------------------------------------------------

Draw_Filled_Polygon procedure

From the Draw unit
 
Function        This procedure allows you to draw a filled polygon on the screen device 
using the same method as Turbo Pascal's (R) Graph unit.

Declaration     Draw_Filled_Polygon( Amount, Data )

Parameters      Amount -  A word value indicating how many points are to be in the 
polygon.
                Data -  An array of points (X followed by Y as integers ) which define the 
edges of the polygon.

Result  A polygon is drawn on the screen device.

Restrictions    Be sure that Data is as large as defined by Amount since it's taken as an 
untyped variable.

See also        Draw_Polygon

Example This example program uses this procedure to draw a filled triangle on the 
screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Var
                    Data: Array[ 1 .. 6 ] of Integer; 
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Data[ 1 ] := 8; { X coordinate }
                    Data[ 2 ] := 7; { Y coordinate }
                    Data[ 3 ] := 20; { X coordinate }
                    Data[ 4 ] := 7;  { Y coordinate }
                    Data[ 5 ] := 14; { X coordinate }
                    Data[ 6 ] := 18; { Y coordinate }
                    Draw_Filled_Polygon( 3, Data );
                  End.

----------------------------------------------------------------------------------------

Draw_Filled_Rectangle procedure

From the Draw unit
 
Function        This procedure draws a filled or solid horizontally and vertically aligned 
rectangle on the screen.

Declaration     Draw_Filled_Rectangle( Left, Top, Right, Bottom )

Parameters      Left -  An integer value that defines the X coordinate for the left side.
                Top -  An integer value that defines the Y coordinate for the top side.
                Right -  An integer value that defines the X coordinate for the right side.
                Bottom -  An integer value that defines the Y coordinate for the bottom 
side.

Result  A vertically and horizontally aligned rectangle is drawn on the screen 
device.

Restrictions    None

See also        Draw_Rectangle, Draw_Filled_Polygon, Draw_Box

Example This example program uses this procedure to draw a filled rectangle on 
the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Filled_Rectangle( 1, 1, 100, 100 );
                  End.

----------------------------------------------------------------------------------------

Draw_Filled_Rounded_Box procedure

From the Draw unit
 
Function        This procedure draws a vertically and horizontally aligned box on the 
screen device with rounded sides.

Declaration     Draw_Filled_Rounded_Box( X1, Y1, X2, Y2, Radius )

Parameters      X1 -  An integer holding the X coordinate of the center of the left arcs.
                Y1 -  An integer holding the Y coordinate of the center of the top arcs.
                X2 -  An integer holding the X coordinate of the center of the right arcs.
                Y2 -  An integer holding the Y coordinate of the center of the bottom arcs.
                Radius-  A word holding the Y radius of the corner arcs.

Result  A filled or solid rounded box is drawn on the screen device.

Restrictions    None

See also        Draw_Rounded_Box, Draw_Filled_Rectangle

Example This example program uses this procedure to draw a filled ellipse on the 
screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Filled_Rounded_Box( 20, 20, 100, 100, 10 );
                  End.

----------------------------------------------------------------------------------------

Draw_Line procedure

From the Draw unit
 
Function        This procedure draws a line on the screen device.

Declaration     Draw_Line( X1, Y1, X2, Y2 )

Parameters      X1 -  Integer value defining the X coordinate of the first point.
                Y1 -  Integer value defining the Y coordinate of the first point.
                X2 -  Integer value defining the X coordinate of the second point.
                Y2 -  Integer value defining the Y coordinate of the second point.

Result  A line appears on the screen device from the first to the second point.

Restrictions    None

See also        Draw_Line_Relative, Draw_Polygon

Example This example program uses this procedure to draw a line on the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Line( 10, 10, 100, 100 );
                  End.

----------------------------------------------------------------------------------------

Draw_Line_Relative procedure

From the Draw unit
 
Function        This procedure draws a line from the current pointer to a new point 
defined relative to it.

Declaration     Draw_Line_Relative( DX, DY )

Parameters      DX -  An integer value defining the X coordinate steps to go from the 
current pointer.
                DY -  An integer value defining the Y coordinate steps to go from the 
current pointer.

Result  The current pointer is moved to the new point and a line is drawn in it's 
wake.

Restrictions    None

See also        Draw_Line, Draw_Line_To

Example This example program uses this procedure to draw a line on the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Line_Relative( 100, 100 );
                  End.

----------------------------------------------------------------------------------------

Draw_Line_To procedure

From the Draw unit
 
Function        This procedure draws a line from the current pointer to a new point.

Declaration     Draw_Line_To( X, Y )

Parameters      X -  An integer value defining the X coordinate of the new point.
                Y -  An integer value defining the Y coordinate of the new point.

Result  The current pointer is moved to the new point and a line is drawn in it's 
wake.

Restrictions    None.

See also        Draw_Line, Draw_Line_Relative

Example This example program uses this procedure to draw a line on the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Line_To( 75, 200 );
                  End.

----------------------------------------------------------------------------------------

Draw_List procedure

From the FillCode unit
 
Function        This procedure is designed to dump the pixels stored in the y coordinate 
storage structure onto the screen.  In effect to cause the drawing to 
appear.

Declaration     Draw_List

Parameters      None

Result  The screen is covered, hopefully, with a completed graphical object and 
the y coordinate storage structure is re-initialized.

Restrictions    None

See also        Filled_Pixel_Job, Filled_Line_Job

Example This example will produce viewable results.

                Program Plot( Input, Output );
                  Uses
                    Draw, FillCode, Screen;
                  Begin
                    Set_Screen_Mode( 17 );
                    Clear_List;
                    Filled_Pixel_Job( 50, 1 );
                    Filled_Pixel_Job( 50, 100 );
                    Draw_List;
                  End.

----------------------------------------------------------------------------------------

Draw_Pie_Slice procedure

From the Draw unit
 
Function        This procedure draws a segment of a circle on the screen like a pie slice.

Declaration     Draw_Pie_Slice( X1, Y1, Start_Angle, End_Angle, Radius )

Parameters      X1 -  An integer value defining the x coordinate of the circle's center.
                Y1 -  An integer value defining the y coordinate of the circle's center.
                Start_Angle -  A word value defining the start angle of the pie slice.
                End_Angle -  A word value defining the end angle of the pie slice.
                Radius -  A word value defining the radius of the circle.

Result  A pie slice segment of a circle is drawn on the screen device. 

Restrictions Under certain circumstances the segment may be drawn incomplete.

See also        Draw_Circle, Draw_Ellipse, Draw_Filled_Circle.

Example This example program uses this procedure to draw a pie slice on the 
screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Pie_Slice( 100, 100, 60, 300, 75 );
                  End.

----------------------------------------------------------------------------------------

Draw_Polygon procedure

From the Draw unit
 
Function        This procedure draws a polygon on the screen device using the same 
parameters as the procedure in the Turbo Pascal (R) Graph unit.

Declaration     Draw_Polygon( Amount, Data )

Parameters      Amount -  A value of word defining the number of points in the Data 
variable.
                Data -  An untyped variable holding an array of integers defining the X and 
Y coordinates of the points.

Result  Draws a polygon on the screen device. 

Restrictions    Note that to keep as compatible with Turbo Pascal's (R) unit as possible, 
the polygon is not automatically closed.  Therefore be sure to close it by 
making the last point equal to the first.

See also        Draw_Filled_Polygon

Example  This example program uses this procedure to draw a triangle on the 
screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Var
                    Data: Array[ 1 .. 8 ] of Integer; 
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Data[ 1 ] := 8; { X coordinate }
                    Data[ 2 ] := 7; { Y coordinate }
                    Data[ 3 ] := 20; { X coordinate }
                    Data[ 4 ] := 7;  { Y coordinate }
                    Data[ 5 ] := 14; { X coordinate }
                    Data[ 6 ] := 18; { Y coordinate }
                    Data[ 7 ] := Data[ 1 ];
                    Data[ 8 ] := Data[ 2 ];
                    Draw_Polygon( 4, Data );
                  End.

----------------------------------------------------------------------------------------

Draw_Rectangle procedure

From the Draw unit
 
Function        This procedure draws a vertically and horizontally aligned rectangle on the 
screen device.

Declaration     Draw_Rectangle( Left, Top, Right, Bottom )

Parameters      Left -  An integer value defining the X coordinate of the left side of the 
rectangle.
                Top -  An integer value defining the Y coordinate of the top of the 
rectangle.
                Right -  An integer value defining the X coordinate of the right side of the 
rectangle.
                Bottom -  An integer value defining the Y coordinate of the bottom of the 
rectangle.

Result  A rectangle is drawn on the screen device. 

Restrictions    None

See also        Draw_Box, Draw_Rounded_Box, Draw_Filled_Rectangle

Example This example program uses this procedure to draw a rectangle on the 
screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Rectangle( 10, 10, 70, 70 );
                  End.

----------------------------------------------------------------------------------------

Draw_Rounded_Box procedure

From the Draw unit
 
Function        This procedure draws a horizontally and vertically aligned box on the 
screen with rounded corners.

Declaration     Draw_Rounded_Box( X1, Y1, X2, Y2, Radius )

Parameters      X1 -  An integer value defining the X coordinate for the left corner arcs.
                Y1 -  An integer value defining the Y coordinate for the top corner arcs.
                X2 -  An integer value defining the X coordinate for the right corner arcs.
                Y2 -  An integer value defining the Y coordinate for the bottom corner arcs.
                Radius -  A word value defining the radius of the corner arcs.

Result  A rounded corner box is drawn on the screen device at the given location.

Restrictions    Note that the box will extend beyond the given coordinates by a small 
amount.

See also        Draw_Filled_Rounded_Box, Draw_Box, Draw_Filled_Rectangle.

Example This example program uses this procedure to draw a rounded box on the 
screen device.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Rounded_Box( 20, 20, 100, 100, 10 );
                  End.

----------------------------------------------------------------------------------------

Draw_Screen procedure

From the TextEdit unit
 
Function        This procedure draws the editing window on the screen for a static 
moment.  It's intended for use by the extension units.

Declaration     Draw_Screen( Text, Cursor, Row, Adjustment, Max_Window_Row )

Parameters      Text - A variable of Text_Type which holds the text data structure.
                Cursor -  An element of Point_Type that determines where the cursor is 
on the text structure.
                Row - A byte value that determines the screen row of the cursor.
                Adjustment -  A byte value used to control the difference between the 
screen display and the actual position.
                Max_Window_Row - A byte value that determines the maximum amount 
of rows displayed in the window.

Result  The screen is altered to display a portion of the text structure.

Restrictions    Be sure that all the variables are correct.  Make sure that Text has been 
previously initialized.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Draw_Sector procedure

From the Draw unit
 
Function        This procedure draws a section of a filled elliptical arc on the screen.

Declaration     Draw_Sector( X1, Y1, Start_Angle, End_Angle, X_Radius, Y_Radius )

Parameters      X1 -  An integer value defining the X coordinate of the sector's center.
                Y1 -  An integer value defining the Y coordinate of the sector's center.
                Start_Angle -  A word value defining the start angle for the sector's slice.
                End_Angle -  A word value defining the finish angle for the sector's slice.
                X_Radius -  A word value defining the horizontal radius of the sector.
                Y_Radius -  A word value defining the vertical radius of the sector.

Result  A filled elliptical slice is drawn on the screen at the given location.

Restrictions    Note that under some very extraordinary circumstances, the sector may 
contain random streaks through it.

See also        Draw_Pie_Slice, Draw_Elliptical_Arc

Example This example program uses this procedure to draw a sector on the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Draw_Sector( 100, 100, 60, 300, 50, 100 );
                  End.

----------------------------------------------------------------------------------------

Draw_String procedure

From the Character unit
 
Function        This procedure draws a string of characters in the given screen box.

Declaration     Draw_String( X1, Y1, X2, Y2, Sentence )

Parameters      X1 -  An integer value defining the left side of the on screen box in which 
the characters are to be drawn.
                Y1 -  An integer value defining the top of the on screen box.
                X2 -  An integer value defining the right side of the on screen box.
                Y2 -  An integer value defining the bottom of the on screen box.
                Sentence -  A string holding the characters to be put into the on screen 
box.

Result  The string of characters in Sentence is drawn on the screen to fit in the 
box defined by the other parameters.

Restrictions    Be sure the box isn't too small for all the character to fit.

See also        Draw_Character

Example {Please see unit chapter. }

----------------------------------------------------------------------------------------

Draw_Window_Frame procedure

From the Core unit
 
Function        This procedure draws the given window frame on the screen in the 
specified location.

Declaration     Draw_Window_Frame( Frame, Left, Top, Right, Bottom )

Parameters      Frame - A variable of Frame_Type that holds the frame data.
                Left -  A value defining the location of the left side of the frame.
                Top -  A value defining the location of the top of the frame.
                Right -  A value defining the right side of the frame.
                Bottom -  A value defining the bottom of the frame.

Result  Frame is displayed on the screen around the given coordinates.

Restrictions    Set_The_Mode must be called prior to this procedure and the frame must 
have been initialized.

See also        Set_The_Mode, Get_Window_Frame, Define_Frame, Make_Frame

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Drive_Number function (Convert drive to number)

From the Drives unit
 
Function        This function converts a letter value into the drive numbers that the 
operating system uses.

Declaration     Drive_Number( Drive )

Parameters      Drive - A character value of the drive letter to be converted.

Result  Returns a byte value indicating the byte value the system would use.

Restrictions    Be sure that Drive is a value from A to Z.

See also        ?

Example {Please see unit chapter }

----------------------------------------------------------------------------------------

Duel_Side_Bar_Graph procedure

From the Indicator unit
 
Function        This procedure draws a duel bar graph on the screen at the given location 
using the predefined text attributes.

Declaration     Duel_Side_Bar_Graph( Left, Row, Right, Amount1, Amount2 )

Parameters      Left - Defines the left most column for the bar graph.
                Row - Defines the row that the bar graph is drawn on.
                Right - Defines the right most column for the bar graph.
                Amount1 - Defines the percentage value for one graph.
                Amount2 - Defines the percentage value for the second graph.

Result  Displays a bar graph on the screen. 

Restrictions    Be sure to provide valid amount values and locations.

See also        Side_Bar_Graph, Tall_Bar_Graph, Duel_Tall_Bar_Graph.

Example This example draws a duel side bar graph across the top of the screen.

                Program Draw_Bar_Graph( Output );
                  Uses
                    Indicators;
                  Begin
                    Duel_Side_Bar_Graph( 1, 1, 80, 26, 73 );
                  End.

----------------------------------------------------------------------------------------

Duel_Tall_Bar_Graph procedure

From the Indicators unit
 
Function        This procedure draws a duel vertical bar graph on the screen at the given 
location.

Declaration     Duel_Tall_Bar_Graph( Top, Bottom, Column, Amount1, Amount2 )

Parameters      Top - Determines the top row of the graph.
                Bottom - Determines the bottom row of the graph.
                Column - Determines the column to draw the graph.
                Amount1 - Determines the extent of the first bar to graph.
                Amount2 - Determines the extent of the second bar to graph.

Result  Draws a duel vertical bar graph on the screen. 

Restrictions    Be sure to supply valid locations and percentage values to this procedure.

See also        Duel_Side_Bar_Graph, Side_Bar_Graph, Tall_Bar_Graph.

Example This example draws a duel tall bar graph across the front column of the 
screen.

                Program Draw_Bar_Graph( Output );
                  Uses
                    Indicators;
                  Begin
                    Duel_Tall_Bar_Graph( 1, 24, 1, 17, 58 );
                  End.

----------------------------------------------------------------------------------------

Dump_Deallocated_Listings procedure

From the FileMem unit
 
Function        This procedure outputs a listing of the returned and still unused data block 
addresses and their sizes.  This procedure is useful solely for debugging 
purposes.

Declaration     Dump_Deallocated_Listings( Output_File )

Parameters      Output_File -  A text file to which the generated data is to be written.

Result  Writes a simple dump of the internal deallocation storage structure to the 
file.

Restrictions    None, except that the file should be open.

See also        ?

Example { See unit chapter for example. }

 E

----------------------------------------------------------------------------------------

Edit_Integer procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it.  
This routine features standard editing commands and a single line text 
scroll for data that's longer than the screen.  F1 invokes help.  Ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Edit_Integer( Row, Column, Field )

Parameters      Row - Defines the row the editor line will be on.
                Column - Defines the column the editor starts on.
                Field -  Contains the integer value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Edit_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Edit_Long_Integer procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it.  
This routine features standard editing commands and a single line text 
scroll for data that's longer than the screen.  F1 invokes help.  Ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Edit_Long_Integer( Row, Column, Field )

Parameters      Row - Defines the row the editor line will be on.
                Column - Defines the column the editor starts on.
                Field -  Contains the long integer value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Edit_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Edit_Real procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it.  
This routine features standard editing commands and a single line text 
scroll for data that's longer than the screen.  F1 invokes help.  Ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Edit_Real( Row, Column, Field )

Parameters      Row - Defines the row the editor line will be on.
                Column - Defines the column the editor starts on.
                Field -  Contains the real type value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Edit_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Edit_Short_Integer procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it.  
This routine features standard editing commands and a single line text 
scroll for data that's longer than the screen.  F1 invokes help.  Ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Edit_Short_Integer( Row, Column, Field )

Parameters      Row - Defines the row the editor line will be on.
                Column - Defines the column the editor starts on.
                Field -  Contains the short integer value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Edit_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Edit_String procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it.  
This routine features standard editing commands and a single line text 
scroll for data that's longer than the screen.  F1 invokes help.  Ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Edit_String( Row, Column, Field )

Parameters      Row - Defines the row the editor line will be on.
                Column - Defines the column the editor starts on.
                Field -  Contains the string value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Edit_Text procedure

From the TextEdit unit
 
Function        This very extensive procedure allows the user the opportunity to edit the 
text stored in the text structure using the standard commands.

Declaration     Edit_Text( All, Changed )

Parameters      All - A variable of Text_Type that holds the text structure as well as the 
screen control structure.
                Changed - A variable Boolean value that's changed to true if the user 
changes the text in almost any way.

Result  The text may be altered in any way desirable, in which case it may need 
to be saved. 

Restrictions    See the chapter on Edit_Text for more information on limitations.

See also        Initialize_The_Text, Read_Text_File

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Edit_Word procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it.  
This routine features standard editing commands and a single line text 
scroll for data that's longer than the screen.  F1 invokes help.  Ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Edit_Word( Row, Column, Field )

Parameters      Row - Defines the row the editor line will be on.
                Column - Defines the column the editor starts on.
                Field -  Contains the word value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Edit_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

End_Timed_Procedure procedure

From the Timer unit
 
Function        This procedure stops the interrupt calling system of Timer and restores 
the interrupt vector to it's original value.

Declaration     End_Timed_Procedure

Parameters      None

Result  Your interrupt timed procedure ceases to operate and the Timer system 
shuts down.

Restrictions    Although this works anywhere you need it, it's best to perform in an error 
situation or emergency.

See also        Begin_Timed_Procedure

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

End_Timer function

From the Time unit
 
Function        This function takes a look at the current time, then compares it with the 
time stored from Start_Timer and notes the time lapse.

Declaration     End_Timer

Parameters      None

Result  Returns a real number containing the time lapse between the time 
Start_Timer was called and the time End_Timer was called in seconds.

Restrictions    Be sure that Start_Timer was called prior to End_Timer

See also        Start_Timer

Example Heres an example program that times a simple WriteLn procedure.

                Program Test_Time( Input, Output );
                  Uses
                    Time;
                  Var
                    Result: Real;
                  Begin
                    Start_Timer;
                    WriteLn( 'Hello out there?' );
                    Result := End_Timer;
                    WriteLn( 'Procedure took ', Result, ' seconds.' );
                  End.

----------------------------------------------------------------------------------------

Equals function

From the Fraction unit
 
Function        This function takes the numerator and denominator and combines them to 
create a fraction.

Declaration     Equals( Numerator, Denominator )

Parameters      Numerator - An integer value which makes up the upper part of the 
fraction.
                Denominator -  An integer value which makes up the lower portion of the 
fraction.

Result  Returns a fraction encoded in a long integer. 

Restrictions    Denominator should not be zero..

See also        Convert_To_String, Convert_To_Real, Separate

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Escape_Operation_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit after the Escape key was 
pressed during a block operation to confirm the cancelling of an operation.

Declaration     Escape_Operation_Default( Continue )

Parameters      Continue - A Boolean value controlling the continuation of the procedure.

Result  The user is prompted for a confirmation of the desire to escape the 
operation.

Restrictions    None

See also        The Escape_Operation variable procedure in TextEdit.

----------------------------------------------------------------------------------------

Examine_Queue procedure

From the Structures unit
 
Function        This procedure returns a copy of the data that is at the bottom of the 
queue.

Declaration     Examine_Queue( Queue, Data )

Parameters      Queue - A variable of Queue_Type which is used to manage the queue 
structure.
                Data - An untyped variable through which the information at the bottom is 
to be returned.

Result  Data is altered to reflect the value at the bottom of the queue.

Restrictions    Make sure Data is large enough to hold the information from the queue.

See also        Get_Out, Put_In, Queue_Empty

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Examine_Stack procedure

From the Multiple unit
 
Function        This procedure makes a copy of what's at the top of the stack.

Declaration     Examine_Stack( Stack, Data )

Parameters      Stack - A variable of Stack_Type used to manage the stack structure.
                Data - An untyped variable through which the information is returned.

Result  The variable in Data is altered to reflect the value at the top of the stack.

Restrictions    Make sure Data is the same length as the stack structure's records or 
data loss may occur.

See also        Pop_Off, Stack_Empty

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Exchange procedure

From the Core unit
 
Function        This procedure quickly exchanges the source value with the destination 
value needing no intermediary storage area.

Declaration     Exchange( Source, Destination, Length )

Parameters      Source - An untyped variable representing one of the values.
                Destination - An untyped variable representing the other value.
                Length - The size of the variables in bytes.

Result  The data in the two variables are switched. 

Restrictions    Take care not to overwrite other memory locations.

See also        Fill_Word

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Expand function

From the String_Utilities unit
 
Function        This function expands the given character into a string of the specified 
width.

Declaration     Expand( Data, Width )

Parameters      Data - The character which is to constitute the whole string.
                Width - The length of the string. (Number of characters in the string)

Result  Returns a string of the given size comprised entire of the given character.

Restrictions    None

See also        Spread_Out_String, Tab

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Expand_Window_Down function

From the Multiple unit

Function        This function attempts to expand the given virtual window by one row at 
the bottom.

Declaration     Expand_Window_Down( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be expanded 
downward.  Otherwise it returns false.  If it can expand the window, the 
window is expanded by one row and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Expand_Window_Up, Expand_Window_Left, Expand_Window_Right, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Expand_Window_Down function

From the Windows unit
 
Function        This function attempts to expand the current window downward on the 
screen if possible.

Declaration     Expand_Window_Down

Parameters      None.

Result  Returns true if the window was expanded, otherwise returns false with no 
harm done.

Restrictions    None

See also        Expand_Window_Up, Expand_Window_Left, Expand_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Expand_Window_Left function

From the Multiple unit

Function        This function attempts to expand the given virtual window by one column 
to the left.

Declaration     Expand_Window_Left( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be expanded 
leftward.  Otherwise it returns false.  If it can expand the window, the 
window is expanded by one column and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Expand_Window_Up, Expand_Window_Down, Expand_Window_Right, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Expand_Window_Left function

From the Windows unit
 
Function        This function attempts to expand the current window leftward on the 
screen if possible.

Declaration     Expand_Window_Left

Parameters      None.

Result  Returns true if the window was expanded, otherwise returns false with no 
harm done.

Restrictions    None

See also        Expand_Window_Up, Expand_Window_Down, Expand_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Expand_Window_Right function

From the Multiple unit

Function        This function attempts to expand the given virtual window by one column 
to the right.

Declaration     Expand_Window_Right( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be expanded 
rightward.  Otherwise it returns false.  If it can expand the window, the 
window is expanded by one column and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Expand_Window_Up, Expand_Window_Down, Expand_Window_Left, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Expand_Window_Right function

From the Windows unit
 
Function        This function attempts to expand the current window rightward on the 
screen if possible.

Declaration     Expand_Window_Right

Parameters      None.

Result  Returns true if the window was expanded, otherwise returns false with no 
harm done.

Restrictions    None

See also        Expand_Window_Up, Expand_Window_Down, Expand_Window_Left.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Expand_Window_Up function

From the Multiple unit

Function        This function attempts to expand the given virtual window by one row at 
the top.

Declaration     Expand_Window_Up( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be expanded 
upward.  Otherwise it returns false.  If it can expand the window, the 
window is expanded by one row and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Expand_Window_Down, Expand_Window_Left, Expand_Window_Right, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Expand_Window_Up function

From the Windows unit
 
Function        This function attempts to expand the current window upward on the 
screen if possible.

Declaration     Expand_Window_Up

Parameters      None.

Result  Returns true if the window was expanded, otherwise returns false with no 
harm done.

Restrictions    None

See also        Expand_Window_Down, Expand_Window_Left, Expand_Window_Right.

Example { See unit chapter for example. }

 F

----------------------------------------------------------------------------------------

Fill_Line procedure

From The Draw unit
 
Function        This variable procedure draws a horizontal line of points across the 
screen with the specified color.  It's used internally by the unit for drawing 
the solid objects.

Declaration     Fill_Line( X1, X2, Y, Color )

Parameters      X1 -  Integer value containing the starting x coordinate on the screen.
                X2 -  Integer value containing the finishing x coordinate on the screen.
                Y -   Integer value containing the y coordinate on the screen for the line.
                Color -  Word value containing the color to use for the line points.

Result  A horizontal line of points is drawn on the graphical output device.

Restrictions    If replaced, this procedure may not output directly to the screen.

See also        Set_Pixel, Get_Pixel

Example This sample program makes simple use of this procedure to draw a single 
line on the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Fill_Line( 10, 100, 50, Red );
                  End.

----------------------------------------------------------------------------------------

Fill_Word procedure

From the Core unit
 
Function        This procedure copies the source word into the destination variable as 
many times as specified.

Declaration     Fill_Word( Destination, Length, Source )

Parameters      Destination - Untyped variable in which to place the data.
                Length -  Amount of times to repeat the data.
                Source -  The data consisting of a word size value.

Result  The variable in Destination is altered. 

Restrictions    Make sure not to overwrite the destination memory.

See also        Turbo Pascal's (R) FillChar is the byte sized counterpart to this one.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Filled_Line procedure

From the FillCode unit
 
Function        This procedure puts the two given pixel points into the y list storage 
structure as part of the outline.  This procedure will produce immediate 
results it it's possible. 

Declaration     Filled_Line( X1, Y1, X2, Y2 )

Parameters      X1 -  The x coordinate of the first point.
                Y1 -  The y coordinate of the first point.
                X2 -  The x coordinate of the second point.
                Y2 -  The y coordinate of the second point.

Result  The points are stored in the Y coordinate list.  Immediate results are 
displayed if possible. 

Restrictions    Output is more likely to occur if the two points happen to have the same Y 
coordinates.

See also        Filled_Pixel, Filled_Pixel_Job, Filled_Line_Job

Example This example will produce viewable results.

                Program Plot( Input, Output );
                  Uses
                    Draw, FillCode, Screen;
                  Begin
                    Set_Screen_Mode( 17 );
                    Clear_List;
                    Filled_Line( 1, 1, 1, 10 );
                  End.

----------------------------------------------------------------------------------------

Filled_Line_Job procedure

From the FillCode unit
 
Function        This procedure enters two pixel points into the storage structure as part of 
the outline.

Declaration     Filled_Line_Job( X1, Y1, X2, Y2 )

Parameters      X1 -  The x coordinate of the first pixel point.
                Y1 -  The y coordinate of the first pixel point.
                X2 -  The x coordinate of the second pixel point.
                Y2 -  The y coordinate of the second pixel point.

Result  The two pixel points are stored in the y list storage structure for use in the 
outline of the feature.  This routine doesn't produce immediate output but 
waits until the entire graphic is finished. 

Restrictions    None

See also        Filled_Pixel, Filled_Pixel_Job, Filled_Line

Example This example will produce viewable results.

                Program Plot( Input, Output );
                  Uses
                    Draw, FillCode, Screen;
                  Begin
                    Set_Screen_Mode( 17 );
                    Clear_List;
                    Filled_Line_Job( 10, 15, 10, 89 );
                    Draw_List;
                  End.

----------------------------------------------------------------------------------------

Filled_Pixel procedure

From the FillCode unit
 
Function        This procedure puts the pixel into the Y list structure as part of the outline, 
producing immediate results if possible.

Declaration     Filled_Pixel( X, Y )

Parameters      X -  The x coordinate of the pixel to be stored.
                Y -  The y coordinate of the pixel to be stored.

Result  A note of the particular pixel is stored in the Y coordinate list for later 
processing. 

Restrictions    None.

See also        Filled_Pixel_Job, Filled_Line, Filled_Line_Job

Example This example will produce viewable results.

                Program Plot( Input, Output );
                  Uses
                    Draw, FillCode, Screen;
                  Begin
                    Set_Screen_Mode( 17 );
                    Clear_List;
                    Filled_Pixel( 1, 1 );
                    Filled_Pixel( 1, 10 );
                  End.

----------------------------------------------------------------------------------------

Filled_Pixel_Job procedure

From the FillCode unit
 
Function        This procedure enters the given pixel into the y coordinate storage 
structure as part of the outline.

Declaration     Filled_Pixel_Job( X, Y )

Parameters      X -  The x coordinate of the pixel to be stored.
                Y -  The y coordinate of the pixel to be stored.

Result  The data for the pixel is stored in the y coordinate list an no output is 
produced.

Restrictions    None

See also        Filled_Pixel, Filled_Line, Filled_Line_Job

Example This example will produce viewable results.

                Program Plot( Input, Output );
                  Uses
                    Draw, FillCode, Screen;
                  Begin
                    Set_Screen_Mode( 17 );
                    Clear_List;
                    Filled_Pixel_Job( 1, 1 );
                    Filled_Pixel_Job( 1, 10 );
                    Draw_List;
                  End.

----------------------------------------------------------------------------------------

Find_File function

From the Search unit
 
Function        This function searches the operating system's directory structure for the 
first file with the specified name.

Declaration     Find_File( Drive_Path, File_Name )

Parameters      Drive_Path - A string containing the path name from which to start the 
search.  If it's empty the search begins in the current path.
                File_Name - A string containing the file name in which to search for.  
Question marks act as wild cards and will match up to anything.

Result  Returns a string which will contain the name of the file and a fully qualified 
path to it.  If the string is empty, the file was not found.

Restrictions    Make sure to supply the path in a correct notation.

See also        Find_Location, Super_Find, Super_Find_With_Date

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_First_In_File function

From the BTree unit
 
Function        This function locates the first record of the BTree in file order.

Declaration     Find_First_In_File( Tree, Data )

Parameters      Tree -  The BTree file structure from which to get the record.
                Data - variable through which the result is returned.

Result  This function returns true if the tree has a record in it and returns the value 
in the record.  Otherwise it returns false.

Restrictions    This function doesn't work if the BTree is empty.

See also        Find_Next_In_File, Find_Previous_In_File, Find_Last_In_File

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_First_In_Tree function

From the BTree unit
 
Function        This function locates the first record of the BTree in logical order.

Declaration     Find_First_In_Tree( Tree, Data )

Parameters      Tree -  The BTree file structure from which to get the record.
                Data - variable through which the result is returned.

Result  This function returns true if the tree has a record in it and returns the value 
in the record.  Otherwise it returns false.

Restrictions    This function doesn't work if the BTree is empty.

See also        Find_Next_In_Tree, Find_Previous_In_Tree, Find_Last_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_First_In_Tree function

From the Structures unit
 
Function        This function returns the value of the first record in logical order from the 
binary tree structure.

Declaration     Find_First_In_Tree( Tree, Data )

Parameters      Tree - A variable of Tree_Type that handles the managing of the binary 
tree.
                Data - An untyped variable through which the first record is returned.

Result  This function returns true if it finds a record in the binary tree and returns it 
in the untyped variable.  Otherwise it returns false.

Restrictions    Make sure that the untyped variable is at least as large as the records in 
the binary tree.

See also        Find_Last_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_In_Tree function

From the BTree unit
 
Function        This function searches the BTree file structure for the first record with the 
matching key.

Declaration     Find_In_Tree( Tree, Data )

Parameters      Tree -  The BTree file structure in which to search.
                Data - A record with the required key value in it's key location.

Result  This function returns true and the data in the record if it was found, 
otherwise, it returns false.

Restrictions    Tree file must be opened for this to work.

See also        Delete_From_Tree, Insert_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_In_Tree function

From the Structures unit
 
Function        This function attempts to find a record in the binary tree with the key value 
in the given record.

Declaration     Find_In_Tree( Tree, Data )

Parameters      Tree - A variable of Tree_Type that holds the record to manage the binary 
tree structure.
                Data - An untyped variable through which the key is passed and the result 
is returned.

Result  Returns true if a record of the given key was found in the binary tree, 
otherwise it returns false.  If the record is found, it's returned in the 
untyped variable.

Restrictions    Take care to be sure the untyped variable is at least as large as the 
records in the tree.

See also        Find_Next_In_Tree, Find_Previous_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Last_In_File function

From the BTree unit
 
Function        This function returns the last record of the BTree in file order.

Declaration     Find_Last_In_File( Tree, Data )

Parameters      Tree -  The tree data structure from which to obtain the record.
                Data - the variable in which the result is returned.

Result  This function returns true and the last record if it exists.  Otherwise it 
returns false.

Restrictions    The BTree file structure must be open.

See also        Find_First_In_File, Find_Next_In_File, Find_Previous_In_File

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Last_In_Tree function

From the BTree unit
 
Function        This function returns the last record of the BTree in logical order.

Declaration     Find_Last_In_Tree( Tree, Data )

Parameters      Tree -  The tree data structure from which to obtain the record.
                Data - the variable in which the result is returned.

Result  This function returns true and the last record if it exists.  Otherwise it 
returns false.

Restrictions    The BTree file structure must be open.

See also        Find_First_In_Tree, Find_Next_In_Tree, Find_Previous_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Last_In_Tree function

From the Structures unit
 
Function        This function returns the value of the last record in logical order from the 
binary tree structure.

Declaration     Find_Last_In_Tree( Tree, Data )

Parameters      Tree - A variable of Tree_Type that handles the managing of the binary 
tree.
                Data - An untyped variable through which the last record is returned.

Result  This function returns true if it finds a record in the binary tree and returns it 
in the untyped variable.  Otherwise it returns false.

Restrictions    Make sure that the untyped variable is at least as large as the records in 
the binary tree.

See also        Find_First_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Location function

From the Search unit
 
Function        This function searches all the directories of the given path for the first 
occurrence of the specified file.

Declaration     Find_Location( Drive_Path, File_Name )

Parameters      Drive_Path - A string containing the path name from which to start the 
search if it's empty the search begins in the current path.
                File_Name - A string containing the file name in which to search for.  
Question marks act as wild cards and will match up to anything.

Result  Returns a string which will contain the result of the search in a path name 
to the requested file.  If the string is empty, the file was not found.

Restrictions    Make sure to supply the path in a correct notation.

See also        Find_File, Super_Find, Super_Find_With_Date

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Next_In_File function

From the BTree unit
 
Function        This function returns the next record from the given BTree in file order.

Declaration     Find_Next_In_File( Tree, Data )

Parameters      Tree - The BTree file structure from which to obtain the record.
                Data - The record variable into which the result will be returned.

Result  If there's another record in file order, this function returns it in the Data 
record and returns true.  Otherwise it returns false.

Restrictions    The BTree file structure must be opened for this to work.

See also        Find_First_In_File, Find_Previous_In_File, Find_Last_In_File.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Next_In_Tree function

From the BTree unit
 
Function        This function returns the next record from the given BTree in logical order.

Declaration     Find_Next_In_Tree( Tree, Data )

Parameters      Tree - The BTree file structure from which to obtain the record.
                Data - The record variable into which the result will be returned.

Result  If there's another record in logical order, this function returns it in the Data 
record and returns true.  Otherwise it returns false.

Restrictions    The BTree file structure must be opened for this to work.

See also        Find_First_In_Tree, Find_Previous_In_Tree, Find_Last_In_Tree.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Next_In_Tree function

From the Structures unit
 
Function        This function returns the value of the next record, after the last accessed, 
in logical order from the binary tree structure.

Declaration     Find_Next_In_Tree( Tree, Data )

Parameters      Tree - A variable of Tree_Type that handles the managing of the binary 
tree.
                Data - An untyped variable through which the next record is returned.

Result  This function returns true if it finds the record in the binary tree and returns 
it in the untyped variable.  Otherwise it returns false.

Restrictions    Make sure that the untyped variable is at least as large as the records in 
the binary tree.

See also        Find_Previous_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Previous_In_File function

From the BTree unit
 
Function        This function returns the previous record from the BTree in file order from 
the last one accessed.

Declaration     Find_Previous_In_File( Tree, Data )

Parameters      Tree - The file structure from which the record is to be obtained.
                Data - A variable through which the record is returned.

Result  This function returns true and the last record from the file if it exists.  
Otherwise it returns false.

Restrictions    The tree structure must be opened for this to work.

See also        Find_First_In_File, Find_Next_In_File, Find_Last_In_File

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Previous_In_Tree function

From the BTree unit
 
Function        This function returns the previous record from the BTree in logical order 
from the last one accessed.

Declaration     Find_Previous_In_Tree( Tree, Data )

Parameters      Tree - The file structure from which the record is to be obtained.
                Data - A variable through which the record is returned.

Result  This function returns true and the last record from the structure if it exists.  
Otherwise it returns false.

Restrictions    The tree structure must be opened for this to work.

See also        Find_First_In_Tree, Find_Next_In_Tree, Find_Last_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Find_Previous_In_Tree function

From the Structures unit
 
Function        This function returns the value of the previous record, after the last 
accessed, in logical order from the binary tree structure.

Declaration     Find_Previous_In_Tree( Tree, Data )

Parameters      Tree - A variable of Tree_Type that handles the managing of the binary 
tree.
                Data - An untyped variable through which the previous record is returned.

Result  This function returns true if it finds the record in the binary tree and returns 
it in the untyped variable.  Otherwise it returns false.

Restrictions    Make sure that the untyped variable is at least as large as the records in 
the binary tree.

See also        Find_Next_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Float function

From the Multiple unit
 
Function        This function allows you to give a window the topmost screen status so 
that no other window covers it.

Declaration     Float( Window_Handle )

Parameters      Window_Handle - This is a variable byte value that refers to the window in 
which to perform the operation.  Note:  This value is taken as a variable 
since it will assign the window a new handle number.  Make sure your 
code acknowledges this.

Result  The function returns true if the specified window can be moved to the top 
of the screen, otherwise it returns false.  If the window is moved, it's given 
a new handle number returned in the handle and the screen is updated.

Restrictions    Make sure you provide a valid window handle or the system might end the 
program.

See also        Sink

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Flush_Buffers procedure

From the FileMem unit
 
Function        This procedure flushes out the data of the memory buffers, regardless of 
their content.  The data is written to the file and the allocated memory is 
returned to the heap

Declaration     Flush_Buffers

Parameters      None.

Result  You should find more memory available in the heap after this procedure is 
finished. 

Restrictions    None that I'm aware of

See also        ?

Example { See unit chapter for example. }

 G

----------------------------------------------------------------------------------------

Generate_Matrix procedure

From the Matrices unit
 
Function        This procedure generates a matrix filled with random numbers.  The 
numbers range from negative one thousand to one thousand.

Declaration     Generate_Matrix( Matrix )

Parameters      Matrix -  A variable pointer to the matrix that will hold the random numbers.

Result  The supplied matrix is filled with random numbers. 

Restrictions    Make sure not to halt the program by supplying an uninitialized matrix.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Generate_Unique_FileName function

From the Generate_FileName unit
 
Function        This function attempts to create a unique file name for a temporary file in 
the system's temporary file directory.

Declaration     Generate_Unique_FileName

Parameters      None, although it does use the environmental variable TEMP or TMP.

Result  Returns a string with a unique filename and path. 

Restrictions    Be sure that the environmental values are valid.

See also        ?

Example Here's a small example of how to use this function.  Note that this 
program only opens the file and closes it, not doing anything useful with it.

                Program Small_Example( Input, Output, OutFile );
                  Var
                    OutFile: Text;
                  Begin
                    Assign( OutFile, Generate_Unique_FileName );
                    Rewrite( OutFile );
                    Write( OutFile, 'Hello there.' );
                    Close( OutFile );
                  End.

----------------------------------------------------------------------------------------

Get_Absolute_Address function

From the Structures unit
 
Function        This function generates a pointer for the last particular record that was 
access in the binary tree.

Declaration     Get_Absolute_Address( Tree, Address )

Parameters      Tree - A variable of Tree_Type that is used to manage the binary tree.
                Address - A variable pointer in which the address, will be returned.

Result  This function returns true if it can deliver an address, otherwise it returns 
false.  The address is returned in Address.

Restrictions    You should be very careful of what you do with the address returned.

See also        Read_Absolute_Address

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Aspect_Ratio procedure

From the Draw unit
 
Function        This procedure returns the current value for the X and Y aspect ratios 
which determine the proper ratios to draw a fully round circle on a less 
than perfectly spaced rasper display.

Declaration     Get_Aspect_Ratio( X_Ratio, Y_Ratio )

Parameters      X_Ratio -  A word variable in which the X aspect ratio is to be returned.
                Y_Ratio -  A word variable in which the Y aspect ratio is to be returned.

Result  The two aspect ratio values are returned in the variables. 

Restrictions    None.

See also        Set_Aspect_Ratio

Example This example program uses this procedure to get the aspect ratio from the 
system.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Var
                    X_Value,
                    Y_Value: Word;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Get_Aspect_Ratio( X_Value, Y_Value );
                  End.

----------------------------------------------------------------------------------------

Get_Buffer_Data procedure

From the FileMem unit
 
Function        This procedure retrieves the data from the file memory system into a sort 
of buffer variable.

Declaration     Get_Buffer_Data( Address, Data, Size )

Parameters      Address - Contains the previously allocated data address from the file 
memory system.
                Data - An untyped variable to which the data is to be copied.
                Size -  A word value holding the size of the block to copy.

Result  A copy of the data from the file memory system at the address is copied 
into the Data variable if all goes well.

Restrictions    In the case of this procedure, Size must exceed the amount of information 
stored in the file memory system.  Then, only the amount of actual data 
stored in the system will be transferred.  The address must be valid as in 
Get_Data and Size shouldn't exceed the real size of Data.

See also        Get_Data, Put_Data

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Byte procedure

From the Editor unit

Function        This procedure allows your user to enter a value in an manner similar to 
that of an electronic calculator;  The cursor stays at the end of the line and 
the data is moved to the left as new data is entered.  The value is 
wrapped if it exceeds the end of the line.  F1 invokes help.  The routine 
ends when Enter, Escape, Up or Down are pressed.

Declaration     Get_Byte( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the byte value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Get_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Character_From_Screen procedure

From the Core unit
 
Function        This procedure reads the character and attribute from the given screen 
coordinates  and returns it to the program.

Declaration     Get_Character_From_Screen( Column, Row, Character, Attribute )

Parameters      Row - The screen row from which to read the character.
                Column - The screen column from which to read the character.
                Character -  A variable in which the character read value is returned.
                Attribute -  A variable in which the attribute value is returned.

Result  The variables for Character and Attribute are altered.

Restrictions    The Get_The_Mode procedure must be called before this routine.

See also        Get_The_Mode, Put_Character_On_Screen

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Command procedure

From the KeyBoard unit
 
Function        This procedure accepts input from the keyboard and returns it in the form 
of a code and the key pressed.

Declaration     Get_Command( Command, Result )

Parameters      Command -  A variable of type character through which the key values is 
returned.
                Result -  A variable byte through which the code is returned identifying the 
key value.

Result  A command is accepted from the keyboard and quite possibly another 
input device such as the pointer or the joystick or whatever other device 
there is a unit link for.

Restrictions    Special key combinations trigger special codes, therefore some of the 
keys may not come down the expected way.  (See the unit header for 
more information)

See also        Data_Ready

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Confirmation_Of_Change_Default function

From the TextEdit unit
 
Function        This is a default function called by TextEdit to prompt the user for a 
confirmation of a change operation.

Declaration     Get_Confirmation_Of_Change_Default

Parameters      None

Result  Returns a character indicating the choice of the user.

Restrictions    None

See also        Get_Confirmation_Of_Change variable function in TextEdit

----------------------------------------------------------------------------------------

Get_Current_Drive function

From the Drives unit
 
Function        This function returns the current disk drive of the system. (At least for the 
particular session )

Declaration     Get_Current_Drive

Parameters      None.

Result  Returns a letter for the particular drive the system is currently logged onto.

Restrictions    None.

See also        Set_Current_Drive

Example This example program displays the current drive to the user.

                Program Display_Drive( Output );
                  Uses
                    Drives;
                  Begin
                    WriteLn( 'The current system drive is ', 
Get_Current_Drive );
                  End.

----------------------------------------------------------------------------------------

Get_Data procedure

From the FileMem unit
 
Function        This procedure retrieves previously stored data from the file memory 
system.

Declaration     Get_Data( Address, Data, Size )

Parameters      Address -  A pointer that contains a valid address.
                Data - An untyped variable that will hold the data retrieved.
                Size -  A word that contains the size of the data block in bytes.

Result  The data from the system is returned in the supplied variable memory if all 
goes properly.

Restrictions    The address supplied must be valid.  Also note that any information in 
Data will be overwritten.  Make sure that the value in Size does not 
exceed the size of the variable for Data.

See also        Put_Data, Get_Buffer_Data

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Date procedure

From the String_Utilities unit
 
Function        This procedure polls the system for the current date and returns it in a 
string.

Declaration     Get_Date( Data )

Parameters      Data - A variable string which will collect the date from the procedure.

Result  Data is altered to contain the current date in a readable format.

Restrictions    The Date must have been initialed for the value to be current.

See also        Get_Time

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_File_Name_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit that prompts the user for a 
filename to use for a file operation.

Declaration     Get_File_Name_Default( Data )

Parameters      Data - A variable of type string which returns with the name of a file to 
read or write.

Result  The user is prompted to give a filename in Data.

Restrictions    The previous value in Data is destroyed.

See also        The Get_File_Name variable procedure in TextEdit.

----------------------------------------------------------------------------------------

Get_From_Matrix function

From the Matrices unit
 
Function        This function retrieves a single numerical element from the depths of the 
specified matrix.

Declaration     Get_From_Matrix( Matrix, Row, Column )

Parameters      Matrix -  The matrix from which the single number element is to be 
retrieved.
                Row -  The byte sized row value specifying the element.
                Column - The byte sized column value specifying the element.  

Result  Returns a value of Matrix_Number (either real or extended) that occupies 
the specified location in the given matrix.  If the area is out of range, it 
returns a zero. 

Restrictions    Make sure that Matrix has been initialized.

See also        Put_In_Matrix

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_From_Storage procedure

From the Core unit
 
Function        This procedure retrieves a character from the simulated screen

Declaration     Get_From_Screen( Storage, Row, Column, Character, Attribute )

Parameters      Storage - A previously allocated record of Storage_Record type holding 
the simulated screen.
                Row - The row location in the simulated screen.
                Column -  The column location in the simulated screen.
                Character - Variable through which the character value is returned.
                Attribute -  Variable through which the attribute value is returned.

Result  The character on the simulated screen is returned in the Character 
variable and it's attribute is returned in the Attribute variable.

Restrictions    The simulated screen must be allocated for this to work.

See also        Put_To_Storage, Allocate_Storage

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Integer procedure

From the Editor unit

Function        This procedure allows your user to enter a value in an manner similar to 
that of an electronic calculator;  The cursor stays at the end of the line and 
the data is moved to the left as new data is entered.  The value is 
wrapped if it exceeds the end of the line.  F1 invokes help.  The routine 
ends when Enter, Escape, Up or Down are pressed.

Declaration     Get_Integer( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the integer value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Get_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Long_Integer procedure

From the Editor unit

Function        This procedure allows your user to enter a value in an manner similar to 
that of an electronic calculator;  The cursor stays at the end of the line and 
the data is moved to the left as new data is entered.  The value is 
wrapped if it exceeds the end of the line.  F1 invokes help.  The routine 
ends when Enter, Escape, Up or Down are pressed.

Declaration     Get_Long_Integer( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the long integer type value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Get_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_New_Line_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit

Declaration     Get_New_Line_Default( New_Line, Limit )

Parameters      New_Line - A variable long integer through which the new line is returned.
                Limit - A long integer value that holds the high limit for the line.

Result  The user is prompted for a line between 1 and Limit.  The value is 
returned in New_Line.

Restrictions    None

See also        The Get_New_Line variable procedure in TextEdit

----------------------------------------------------------------------------------------

Get_Out procedure

From the Structures unit
 
Function        This procedure removes the bottom element from the queue structure and 
 returns it's value to the user.

Declaration     Get_Out( Queue, Data )

Parameters      Queue - A variable of Queue_Type which is used to manage the queue 
structure.
                Data - An untyped variable through which the information is passed back.

Result  Data is updated to reflect the last value in the queue and the queue is 
shortened as the bottom value is removed.

Restrictions    Make sure Data is large enough to hold the released information.

See also        Put_In, Examine_Queue

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Pixel function

From the Draw unit
 
Function        This variable function reads a pixel from the screen and returns it to the 
program.

Declaration     Get_Pixel( X, Y )

Parameters      X -  Integer value containing the x coordinate of the pixel to poll.
                Y -  Integer value containing the y coordinate of the pixel to poll.

Result  Returns a word value containing the color of the pixel at the given location.

Restrictions    Returns a false value if the location is off the true screen.

See also        Set_Pixel, Fill_Line

Example This sample program makes simple use of this procedure to read a single 
point.

                Program Get_Pixel_Demo( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Var
                    Read_Point: Word;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Read_Point := Get_Pixel( 50, 50 );
                    WriteLn( 'The center pixel is ', Read_Point );
                  End.

----------------------------------------------------------------------------------------

Get_Real procedure

From the Editor unit

Function        This procedure allows your user to enter a value in an manner similar to 
that of an electronic calculator;  The cursor stays at the end of the line and 
the data is moved to the left as new data is entered.  The value is 
wrapped if it exceeds the end of the line.  F1 invokes help.  The routine 
ends when Enter, Escape, Up or Down are pressed.

Declaration     Get_Real( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the real type value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Get_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Screen_Address function

From the Core unit
 
Function        This function returns a pointer to the specified screen location in the video 
buffer memory.

Declaration     Get_Screen_Address( Column, Row )

Parameters      Column - Determines the screen column in which to locate.
                Row - Determines the screen row in which to locate.

Result  Returns a pointer to the screen buffer map at the given Row and Column 
location.

Restrictions    Get_The_Mode must be called before this one will work properly.

See also        Get_The_Mode

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Screen_Mode procedure

From the Screen unit
 
Function        This procedure reads the current screen mode from the system's BIOS 
and returns the value as defined by the system.

Declaration     Get_Screen_Mode( Mode )

Parameters      Mode -  A byte variable through which the mode value is returned.

Result  Mode is altered to display the current P.C.'s video mode. 

Restrictions    None noted.  Please note that in the unlikely event the system mode value 
returned is greater than 128, simply and the value with $7F to get the 
proper system video mode.

See also        Set_Screen_Mode

Example This simple program uses the get screen mode to determine which video 
mode the system is running in.

                Program Check( Input, Output );
                  Uses
                    Screen;
                  Var
                    Mode: Byte;
                  Begin
                    Get_Screen_Mode( Mode );
                    Case Mode of
                      7:  WriteLn( 'The mode is monochrome.' );
                      else WriteLn( 'The mode is color.' );
                    End; { Case }
                  End.

----------------------------------------------------------------------------------------

Get_Search_And_Replace_Data_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit to prompt the user for 
search and replace data

Declaration     Get_Search_And_Replace_Data_Default( Search_Data, Replace_Data )

Parameters      Search_Data - A variable of type string through which the search data is 
returned.
                Replace_Data - A string variable through which the replacement data is 
returned.

Result  The user is prompted to supply a search string followed by a replacement 
string.

Restrictions    None

See also        The Get_Search_And_Replace_Data variable procedure in TextEdit

----------------------------------------------------------------------------------------

Get_Search_Data_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit to prompt the user for a 
search string.

Declaration     Get_Search_Data_Default( Data )

Parameters      Data - A variable of type string through which the search data is returned.

Result  The user is prompted to supply a search string. 

Restrictions    None

See also        The Get_Search_Data variable procedure in TextEdit

----------------------------------------------------------------------------------------

Get_Short_Integer procedure

From the Editor unit

Function        This procedure allows your user to enter a value in an manner similar to 
that of an electronic calculator;  The cursor stays at the end of the line and 
the data is moved to the left as new data is entered.  The value is 
wrapped if it exceeds the end of the line.  F1 invokes help.  The routine 
ends when Enter, Escape, Up or Down are pressed.

Declaration     Get_Short_Integer( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the short integer value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Get_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Size procedure

From the Matrices unit
 
Function        This procedure returns the dimensions of the given matrix.

Declaration     Get_Size( Matrix, Row, Column )

Parameters      Matrix -  The variable matrix address from which to get the size.
                Row - A byte variable through which the row size is returned.
                Column -  A byte variable through which the column size is returned.

Result  The size of the given matrix is returned in Row and Column.

Restrictions    Make sure that the matrix is valid.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_String procedure

From the Editor unit

Function        This procedure allows your user to enter a value in an manner similar to 
that of an electronic calculator;  The cursor stays at the end of the line and 
the data is moved to the left as new data is entered.  The value is 
wrapped if it exceeds the end of the line.  F1 invokes help.  The routine 
ends when Enter, Escape, Up or Down are pressed.

Declaration     Get_String( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the string value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Get_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_TextAttr procedure  (Get text attribute)

From the Multiple unit
 
Function        This procedure reads the current text attribute being used in the given 
virtual window.

Declaration     Get_TextAttr( Window_Handle, Old_Attribute )

Parameters      Window_Handle -  A byte value holding the virtual window handle.
                Old_Attribute - A variable byte value through which the old text attribute is 
returned.

Result  Old_Attribute is altered.  

Restrictions    Make sure to supply a valid window handle.

See also        Put_TextAttr

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_The_Mode procedure

From the Core unit
 
Function        This procedure takes notes of the current video mode and initializes 
various system settings depending on which mode it's operating in.

Declaration     Get_The_Mode

Parameters      None

Result  Nothing visible.  May alter Turbo Pascal's (R) DirectVideo flag.

Restrictions    None

See also        The Core unit header

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Time procedure

From the String_Utilities unit
 
Function        This procedure returns the system time in a readable format.

Declaration     Get_Time( Data )

Parameters      Data -  A variable of type string through which the system time is to be 
returned.

Result  Data is set to contain the system time in a readable format. 

Restrictions    The time returned is always the system time, even if it's uninitialized.

See also        Get_Date

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Top_Box_Menu function

From the Menu unit
 
Function        This function read the choice description at the top of the box menu and 
returns it for your own use.  It's very handy for using with variable menus 
where memory space is at a premium.

Declaration     Get_Top_Box_Menu( Menu )

Parameters      Menu -  A variable of Box_Menu_Type from which the top description is to 
be obtained.  

Result  Returns the string that was originally put into the box menu for the 
selection at the top, or may return a empty string if the menu is empty.

Restrictions    Make sure that Menu has been previously initialized.

See also        Put_Top_Box_Menu

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Get_Word procedure

From the Editor unit

Function        This procedure allows your user to enter a value in an manner similar to 
that of an electronic calculator;  The cursor stays at the end of the line and 
the data is moved to the left as new data is entered.  The value is 
wrapped if it exceeds the end of the line.  F1 invokes help.  The routine 
ends when Enter, Escape, Up or Down are pressed.

Declaration     Get_Word( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the word value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Get_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

GotoXY procedure

From the Multiple unit
 
Function        This procedure allows you to move the cursor within the virtual window to 
a new location.  

Declaration     GotoXY( Window_Handle, Column, Row )

Parameters      Window_Handle - A byte value specifying the virtual window to which the 
operation is to be performed.
                Column -  A byte value taking the column to which the cursor is to be 
moved to.
                Row -  A byte value holding the row to which the cursor is to be moved.

Result  The cursor in the given virtual window is moved to the new location if 
possible.

Restrictions    Make sure to supply a valid window handle.

See also        WhereX, WhereY

Example { See unit chapter for example. }

 H

----------------------------------------------------------------------------------------

Help_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit.

Declaration     Help_Default

Parameters      None

Result  Useful information is displayed 

Restrictions    None

See also        The Help variable procedure in TextEdit

----------------------------------------------------------------------------------------

Hide_Pointer procedure

From the Pointer unit
 
Function        This procedure removes the pointer from the screen.  

Declaration     Hide_Pointer

Parameters      None

Result  The pointer is removed from the screen. 

Restrictions    Make sure the system even has a pointer before using this procedure.

See also        Display_Pointer, Check_For_Pointer

Example { See unit chapter for example. }

 I

----------------------------------------------------------------------------------------

Initialize_Bar_Menu procedure

From the Menu unit
 
Function        This function initializes a bar menu data structure prior to use.

Declaration     Initialize_Bar_Menu( Menu, Data )

Parameters      Menu -  A variable of Bar_Menu_Type containing the information of the 
bar menu.
                Data -  A string that contains the contents the bar menu is to hold.

Result  A modified form of Data is placed in the bar menu data structure and 
special information is derived from it to drive the bar menu selection 
system.

Restrictions    None, except that the menu choices in Data are numbered from left to 
right in sequential order starting at one.  Characters in the string are 
defined to be distinct menu items if two or more spaces separate them.  
Text separated by a single space character is defaulted to be a single 
choice item.  Example:  "Choice-1--Choice-2"  Assuming the hyphens are 
space characters, this create two choices, Choice 1 and Choice 2.

See also        Offer_Bar_Menu

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Initialize_Box_Menu procedure

From the Menu unit
 
Function        This procedure must be called to initialize the box menu data structure 
before any data may be added to it.

Declaration     Initialize_Box_Menu( Menu )

Parameters      Menu - A variable of Box_Menu_Type which is to be initialized.

Result  The Menu data structure is initialize and ready for use. 

Restrictions    None.

See also        The Menu chapter

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Initialize_Standard_Characters procedure

From the Character unit
 
Function        This procedure sets the character table to draw the standard characters 
as defined by the main unit.

Declaration     Initialize_Standard_Characters

Parameters      None

Result  The character set is returned to it's original state before anything was 
altered.  

Restrictions    None

See also        ?

Example In this example, we'll assume the Alternate_Character_Set is from a unit 
called Alternate that redefines some of the characters drawing routines.

                Program  Show_Example( Input, Output );
                  Uses
                    Screen,
                    Character,
                    Alternate;
                  Begin
                    Set_Screen_Mode( 10 );
                    Draw_String( 1, 1, 200, 20, 'Hello in standard text.' );
                    Alternate_Character_Set;
                    Draw_String( 1, 20, 200, 40, 'Hello in alternate text.' );
                    Initialize_Standard_Characters;
                    Draw_String( 1, 40, 200, 60, 'Back to standard text.' );
                  End.

----------------------------------------------------------------------------------------

Initialize_The_Text procedure

From the TextEdit unit
 
Function        This procedure takes the text storage record and initializes it prior to use.

Declaration     Initialize_The_Text( All )

Parameters      All - A variable of All_Type which manages the text data structure.

Result  The record is initialized and ready for use. 

Restrictions    Make sure that nothings in All or it will be overwritten.

See also        Dispose_Of_Text

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Insert_Bar_Bottom_Box_Menu function

From the Menu unit
 
Function        This function inserts a bar in the menu on the bottom.  Bars are a fairly 
new addition to box menus that separate groups of choices from each 
other.

Declaration     Insert_Bar_Bottom_Box_Menu( Menu, Data )

Parameters  Menu - A variable of Box_Menu_Type that contains the menu to which the 
bar is to be added.
                Data -  Byte value ranging from 1 to 4 which defines the type of bar to 
insert.

Result  If a  bar was successfully inserted at the bottom of the box menu, the 
function returns true.  Otherwise it returns false.  The box menu system 
has been modified to ignore the bar.

Restrictions    Menu must be initialized prior to using this function.  Data must be a value 
from 1 to 4.

See also        Insert_Bar_Top_Box_Menu

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Insert_Bar_Top_Box_Menu function

From the Menu unit
 
Function        This function inserts a bar in the menu on the top.  Bars are a fairly new 
addition to box menus that separate groups of choices from each other.  
Successive lines are moved down in the menu.

Declaration     Insert_Bar_Top_Box_Menu( Menu, Data )

Parameters  Menu - A variable of Box_Menu_Type that contains the menu to which the 
bar is to be added.
                Data -  Byte value ranging from 1 to 4 which defines the type of bar to 
insert.

Result  If a  bar was successfully inserted at the top of the box menu, the function 
returns true.  Otherwise it returns false.  The box menu system has been 
modified to ignore the bar. 

Restrictions    Menu must be initialized prior to using this function.  Data must be a value 
from 1 to 4.

See also        Insert_Bar_Bottom_Box_Menu

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Insert_Bottom_Box_Menu function

From the Menu unit
 
Function        This function inserts a menu item into the bottom of the box menu data 
structure.  A menu item consists of a description string and a unique 
generation code.

Declaration     Insert_Bottom_Box_Menu( Menu, New_String, New_Code )

Parameters      Menu -  A variable of Box_Menu_Type holding the menu structure.
                New_String -  A string containing the description of the menu choice.
                New_Code -  A word value containing the code returned if that choice is 
selected.

Result  Returns true if the data was inserted into the menu structure, otherwise 
this function returns false.

Restrictions    The Menu structure must be preinitialized for this operation to work 
properly.

See also        Insert_Top_Box_Menu, Remove_Bottom_Box_Menu

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Insert_In_Tree function

From the BTree unit
 
Function        This function inserts the given record into the file BTree structure

Declaration     Insert_In_Tree( Tree, Data )

Parameters      Tree - A variable of the Tree_Type that holds an open tree structure.
                Data -  Record that contains the data to store in the tree.

Result  Returns true if the data was properly inserted into the tree structure.

Restrictions    Tree structure must be opened.

See also        Delete_From_Tree, Update_In_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Insert_In_Tree procedure

From the Structures unit
 
Function        This function takes new information and inserts it into the binary tree.

Declaration     Insert_In_Tree( Tree, New_Data )

Parameters      Tree - A variable of Tree_Type that is used to manage the tree structure.
                New_Data - A untyped variable holding the information to be inserted.

Result  A record with the given information in New_Data is inserted into the binary 
tree structure.

Restrictions    An empty heap will generate an error.

See also        Delete_From_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Insert_Top_Box_Menu function

From the Menu unit
 
Function        This function inserts a menu item into the top of the box menu data 
structure.  A menu item consists of a description string and a unique 
generation code.  All proceeding menu items are moved down.

Declaration     Insert_Top_Box_Menu( Menu, New_String, New_Code )

Parameters      Menu -  A variable of Box_Menu_Type holding the menu structure.
                New_String -  A string containing the description of the menu choice.
                New_Code -  A word value containing the code returned if that choice is 
selected.

Result  Returns true if the data was inserted into the menu structure, otherwise 
this function returns false.

Restrictions    The Menu structure must be preinitialized for this operation to work 
properly.

See also        Insert_Bottom_Box_Menu, Remove_Top_Box_Menu

Example { See unit chapter for example. }

 L

----------------------------------------------------------------------------------------

Label_Window procedure

From the Windows unit
 
Function        This procedure puts a label on the frame of the current  window.

Declaration     Label_Window( Attribute, Name )

Parameters      Attribute - A byte value indicating to the procedure the text attribute to 
use. (See TextAttr)
                Name - A string value containing a short label to be placed at the top of 
the window.

Result  The window frame on screen is altered. 

Restrictions    Although precautions are taken to preserve the name, the name is only an 
on screen entity and will not be automatically updated when necessary.  
This function does not work with frameless windows.

See also        Open_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Lock_Up procedure

From the Lock unit
 
Function        This procedure invokes the lock unit which accepts a user specified 
password and ties up the system until the user reenters that password.  
Nice for simple locking for short periods of time.

Declaration     Lock_Up

Parameters      None.

Result  Displays a window from which it performs it's task.  Cleans up completely 
after itself except for when the system's in graphical mode.

Restrictions    Doesn't work well in graphical modes.

See also        ?

Example { See unit chapter for example. }

 M

----------------------------------------------------------------------------------------

Make_Window_Frame procedure

From the Core unit
 
Function        This procedure allows the user to set up the given window frame to his or 
her own design..

Declaration     Make_Window_Frame( Frame, Left_Lines, Top_Lines, Right_Lines, 
Bottom_Lines, Attribute )

Parameters      Frame - A variable of Frame_Type that holds the frame data.
                Left_Lines -  A byte value defining the amount of lines on the left side.
                Top_Lines - A byte value defining the amount  of lines on the top.
                Right_Lines - A byte value defining the amount of lines on the right side.
                Bottom_Lines - A byte value defining the amount of lines on the bottom.
                Attribute - A byte defining the frame text attribute.  

Result  Frame is altered to hold the information necessary to create a frame of the 
given user defined style.

Restrictions    None

See also        Set_Window_Frame, Define_Frame, Draw_Window_Frame

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Mark_Memory procedure

From the Check unit
 
Function        This procedure marks the state of the available memory so that the user 
can use the Check unit to search for memory leaks. (Memory that is 
allocated but for some reason, not deallocated resulting in an 
unintentional loss of available memory resources)

Declaration     Mark_Memory

Parameters      None

Result  The available memory is logged internally to the unit. 

Restrictions    None.

See also        Memory_Gone

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Maximize_Solve_Multiple procedure

From the Tables unit
 
Function        This procedure produces multiple solutions of the given table for the 
M-resource and M-activity assignment for total effectiveness.

Declaration     Maximize_Solve_Multiple( Table, Solution_List );

Parameters      Table - A variable of Table_Type which holds the M-resource and 
M-activity table.
                Solution_List - A variable of Solution_List_Type through which a collection 
of possible solutions is to be returned.

Result  A list of solutions is returned in the Solution_List 

Restrictions    There's a practical limit on number of solutions being determined by 
List_Limit.  Make sure that all the values in Table are positive.

See also        Maximize_Solve_Single

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Maximize_Solve_Single procedure

From the Tables unit
 
Function        This procedure produces a single solution of the given table for a 
M-resource and M-activity assignment for total effectiveness.

Declaration     Maximize_Solve_Single( Table, Solution )

Parameters      Table - A variable of Table_Type holding the M-resource and M-activity 
table.
                Solution - A variable of Solution_Type through which the single solution is 
returned.

Result  The maximize solution is generated and returned in the solution variable. 

Restrictions    Be sure to use only positive values in the table.

See also        Maximize_Solve_Multiple

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Memory_Gone procedure

From the Check unit
 
Function        This procedure is called after Mark_Memory and the suspect code to 
compare the original amount of memory to what's left.  If there is any 
difference in the amount of memory available, this procedure will flag the 
discrepancy and halt the program.

Declaration     Memory_Gone

Parameters      None

Result  If the amount of memory is identical to when Mark_Memory was called, 
nothing happens, otherwise this procedure halts the program.  Hint for 
compiler versions with built in debugging:  Put a breakpoint in the Check 
unit in the Memory_Gone procedure just at the halt routine to stop the 
program so you can use the integrated debugger to track down your bug. 

Restrictions    The Mark_Memory procedure must be called before for this procedure to 
operate properly.

See also        Mark_Memory

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Minimize_Solve_Multiple procedure

From the Tables unit
 
Function        This procedure produces multiple solutions of the given table for the 
M-resource and M-activity assignment for total effectiveness.

Declaration     Minimize_Solve_Multiple( Table, Solution_List );

Parameters      Table - A variable of Table_Type which holds the M-resource and 
M-activity table.
                Solution_List - A variable of Solution_List_Type through which a collection 
of possible solutions is to be returned.

Result  A list of solutions is returned in the Solution_List 

Restrictions    There's a practical limit on number of solutions being determined by 
List_Limit.

See also        Minimize_Solve_Single

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Minimize_Solve_Single procedure

From the Tables unit
 
Function        This procedure produces a single solution of the given table for a 
M-resource and M-activity assignment for total effectiveness.

Declaration     Minimize_Solve_Single( Table, Solution )

Parameters      Table - A variable of Table_Type holding the M-resource and M-activity 
table.
                Solution - A variable of Solution_Type through which the single solution is 
returned.

Result  The minimize solution is generated and returned in the solution variable. 

Restrictions    None

See also        Minimize_Solve_Multiple

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Mod_Integer_String function

From the String_Utilities unit.
 
Function        This function takes two numerical integer strings and divides the second 
into the first, and returns the remainder.

Declaration     Mod_Integer_String( Number1, Number2 )

Parameters      Number1 - A numerical string containing the dividend.
                Number2 -  A numerical string containing the divisor.

Result  Returns a string containing the remainder of the operation.

Restrictions    Make sure to supply two numerical strings.  Example "12345"

See also        Multiply_Integer_String, Divide_Integer_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_Relative procedure

From the Draw unit
 
Function        This procedure moves the current pointer to a new position relative to the 
old one.

Declaration     Move_Relative( DX, DX )

Parameters      DX -  An integer defining the X distance to move from the current location.
                DY -  An integer defining the Y distance to move from the current location.

Result  The current pointer is moved to a new location. 

Restrictions    None

See also        Move_To

Example This example program uses this procedure to move the systems current 
pointer.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Move_Relative( 73, 94 );
                  End.

----------------------------------------------------------------------------------------

Move_To procedure

From the Draw unit
 
Function        This procedure moves the current pointer to an absolute position on the 
screen device.

Declaration     Move_To( X, Y )

Parameters      X -  An integer value holding the x coordinate of the new location.
                Y -  An integer value holding the y coordinate of the new location.

Result  The current pointer is moved to the new location without any indication.

Restrictions    None.

See also        Move_Relative

Example This example program uses this procedure to move the current pointer on 
the screen.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Move_To( 58, 100 );
                  End.

----------------------------------------------------------------------------------------

Move_View_Down function

From the Multiple unit
 
Function        This function attempts to move the view within the virtual window down a 
line if the window is smaller than the virtual screen.

Declaration     Move_View_Down( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to alter on 
the screen.

Result  Returns true if it was successful with the operation, otherwise it returns 
false.  The screen is updated if it succeeds.

Restrictions    Be sure to supply a valid window handle

See also        Move_View_Up, Move_View_Left, Move_View_Right, Browse.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_View_Left function

From the Multiple unit
 
Function        This function attempts to move the view within the virtual window to the 
left if the window is smaller than the virtual screen.

Declaration     Move_View_Left( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to alter on 
the screen.

Result  Returns true if it was successful with the operation, otherwise it returns 
false.  The screen is updated if it succeeds.

Restrictions    Be sure to supply a valid window handle

See also        Move_View_Up, Move_View_Down, Move_View_Right, Browse.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_View_Right function

From the Multiple unit
 
Function        This function attempts to move the view within the virtual window to the 
right if the window is smaller than the virtual screen.

Declaration     Move_View_Right( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to alter on 
the screen.

Result  Returns true if it was successful with the operation, otherwise it returns 
false.  The screen is updated if it succeeds.

Restrictions    Be sure to supply a valid window handle

See also        Move_View_Up, Move_View_Down, Move_View_Left, Browse.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_View_Up function

From the Multiple unit
 
Function        This function attempts to move the view within the virtual window up a line 
if the window is smaller than the virtual screen.

Declaration     Move_View_Up( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to alter on 
the screen.

Result  Returns true if it was successful with the operation, otherwise it returns 
false.  The screen is updated if it succeeds.

Restrictions    Be sure to supply a valid window handle

See also        Move_View_Down, Move_View_Left, Move_View_Right, Browse.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_Window_Down function

From the Multiple unit

Function        This function attempts to move the given virtual window one row 
downward.

Declaration     Move_Window_Down( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be moved 
downward.  Otherwise it returns false.  If it can move the window, the 
window is moved downward and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Move_Window_Up, Move_Window_Left, Move_Window_Right, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_Window_Down function

From the Windows unit
 
Function        This function attempts to move the current window downward on the 
screen if possible.

Declaration     Move_Window_Down

Parameters      None.

Result  Returns true if the window was moved, otherwise returns false with no 
harm done.

Restrictions    None

See also        Move_Window_Up, Move_Window_Left, Move_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_Window_Left function

From the Multiple unit

Function        This function attempts to move the given virtual window one column 
leftward.

Declaration     Move_Window_Left( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be moved 
leftward.  Otherwise it returns false.  If it can move the window, the 
window is moved leftward and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Move_Window_Up, Move_Window_Down, Move_Window_Right, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_Window_Left function

From the Windows unit
 
Function        This function attempts to move the current window leftward on the screen 
if possible.

Declaration     Move_Window_Left

Parameters      None.

Result  Returns true if the window was moved, otherwise returns false with no 
harm done.

Restrictions    None

See also        Move_Window_Up, Move_Window_Down, Move_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_Window_Right function

From the Multiple unit

Function        This function attempts to move the given virtual window one column 
rightward.

Declaration     Move_Window_Right( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be moved 
rightward.  Otherwise it returns false.  If it can move the window, the 
window is moved rightward and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Move_Window_Up, Move_Window_Down, Move_Window_Left, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_Window_Right function

From the Windows unit
 
Function        This function attempts to move the current window rightward on the 
screen if possible.

Declaration     Move_Window_Right

Parameters      None.

Result  Returns true if the window was moved, otherwise returns false with no 
harm done.

Restrictions    None

See also        Move_Window_Up, Move_Window_Down, Move_Window_Left.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_Window_Up function

From the Multiple unit

Function        This function attempts to move the given virtual window one row upward.

Declaration     Move_Window_Up( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be moved 
upward.  Otherwise it returns false.  If it can move the window, the window 
is moved upward and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Move_Window_Down, Move_Window_Left, Move_Window_Right, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Move_Window_Up function

From the Windows unit
 
Function        This function attempts to move the current window upward on the screen 
if possible.

Declaration     Move_Window_Up

Parameters      None.

Result  Returns true if the window was moved, otherwise returns false with no 
harm done.

Restrictions    None

See also        Move_Window_Down, Move_Window_Left, Move_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Multiply function

From the Fraction unit
 
Function        This function produced the product of the two given fractions.

Declaration     Multiply( Number_1, Number_2 )

Parameters      Number_1 - The first fraction used to perform the operation.
                Number_2 - The second fraction used to perform the operation.

Result  Returns a function containing the product of the two given numbers.

Restrictions    Overflow or underflows are possible.

See also        Add, Subtract, Divide

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Multiply_Integer_String function

From the String_Utilities unit.
 
Function        This function takes two numerical integer strings and multiplies them 
together.

Declaration     Multiply_Integer_String( Number1, Number2 )

Parameters      Number1 - A numerical string containing a number to multiply with the 
second numerical string.
                Number2 -  A numerical string containing a number to multiply with the 
first numerical string.

Result  Returns a string containing the product of the two numerical strings.

Restrictions    Make sure to supply two numerical strings.  Example "12345"  Also note 
that large strings may easily generate an overflow condition.

See also        Add_Integer_String, Subtract_Integer_String, Divide_Integer_Strings.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Multiply_Matrices function

From the Matrices unit
 
Function        This function attempts to perform the matrix multiplication operation on the 
two given matrices.

Declaration     Multiply_Matrices( Operand1, Operand2, Result )

Parameters      Operand1 -  A variable pointer to the first matrix of which the operation is 
to be performed.
                Operand2 -  A variable pointer to the second matrix of the operation.
                Result -  A variable pointer to the matrix in which the result is to be stored.

Result  This function returns a value of true and the result is returned in the Result 
variable if it is successful.  Otherwise, it returns a value of false.

Restrictions    Make sure that all the supplied matrices have been initialized or the 
function will fail and halt the program.

See also        Add_Matrices, Subtract_Matrices

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Multiply_Real_String function

From the String_Utilities unit.
 
Function        This function takes two numerical real strings and multiplies them together.

Declaration     Multiply_Real_String( Number1, Number2 )

Parameters      Number1 - A numerical string containing a number to multiply with the 
second numerical string.
                Number2 -  A numerical string containing a number to multiply with the 
first numerical string.

Result  Returns a real numerical string containing the product of the two 
numerical strings.

Restrictions    Make sure to supply two numerical real strings.  Example "12345.001"  
Also note that the strings are not to be in scientific notation and that if they 
are too large, they may cause a numeric overflow.

See also        Add_Real_String, Subtract_Real_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Multiply_With_Matrix function

From the Matrices unit
 
Function        This function takes a matrix and attempts to multiply it with a scalar value.

Declaration     Multiply_With_Matrix( Scalar, Operand, Result )

Parameters      Scalar -  A value of Matrix_Number type with which to perform the 
operation.
                Operand -  A variable pointer to the original matrix.
                Result -  A variable pointer to the matrix in which the results are to be 
placed.

Result  This function returns true if the operation is successful and the results are 
placed in the Result matrix.  Otherwise, it returns false.

Restrictions    The program will be halted if the matrix pointers supplied are not properly 
initialized.

See also        Add_Matrices, Subtract_Matrices, Multiply_Matrices

Example { See unit chapter for example. }

 N

----------------------------------------------------------------------------------------

New_Pointer function

From the FileMem unit
 
Function        This function attempts to allocate the specified amount of space in the file 
memory system.

Declaration     New_Pointer( Size )

Parameters      Size - A word indicating the amount of space to reserve for the block.

Result  Returns a pointer that address the space.  If it fails, it returns a nul pointer.

Restrictions    Naturally block sizes can't exceed the word size of Size.

See also        Put_New_Pointer, Dispose_Pointer

Example { See unit chapter for example. }

 O

----------------------------------------------------------------------------------------

Offer_Bar_Menu procedure

From the Menu unit
 
Function        This procedure offers the bar menu to the user on a single line of the 
screen.  The user is given the opportunity to select one of the choices 
using the standard menu selection keys; Left, Right, Home and End.  Also 
the letter or number keys jump to the appropriate choice beginning with 
that character.  Window movement support and Lock support is included.  
F1 invokes a help screen.  This procedure returns control to your program 
when Enter, Escape, Up or Down are pressed. 

Declaration     Offer_Bar_Menu( Menu, Selection )

Parameters      Menu -  A variable of Bar_Menu_Type containing the menu being offered 
to the user.
                Selection -  A byte variable through which the result is returned.

Result  The choice is returned as a byte number through Selection.  A value of 
zero means the Escape key was pressed, otherwise the selection was a 
number as described above.

Restrictions    Make sure the menu is initialized or weird trash may result.

See also        Initialize_Bar_Menu, Offer_Bar_Menu_Update

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Offer_Bar_Menu_Update procedure

From the Menu unit
 
Function        This procedure like Offer_Bar_Menu, offers the bar menu to the user on a 
single line of the screen. However, this procedure also takes a 
precommand which is processed first.  The user is then given the 
opportunity to select one of the choices using the standard menu selection 
keys; Left, Right, Home and End.  Also the letter or number keys jump to 
the appropriate choice beginning with that character.  Window movement 
support and Lock support is included.  F1 invokes a help screen.  This 
procedure returns control to your program when Enter, Escape, Up or 
Down are pressed. 

Declaration     Offer_Bar_Menu_Update( Menu, Selection, Last_Command, Character )

Parameters      Menu -  A variable of Bar_Menu_Type containing the menu being offered 
to the user.
                Selection -  A byte variable through which the result is returned.
                Last_Command - The precommand which is to be processed before the 
menu is presented. (See Get_Command and the KeyBoard unit)
                Character - Character part of the last command

Result  The choice is returned as a byte number through Selection.  A value of 
zero means the Escape key was pressed, otherwise the selection was a 
number as described above.

Restrictions    Make sure the menu is initialized or weird trash may result.

See also        Initialize_Bar_Menu, Offer_Bar_Menu

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Offer_Box_Menu procedure

From the Menu unit
 
Function        This procedure displays a user menu in the current screen window 
defined by Turbo Pascal's (R) CRT unit.  The user menu features a 
moveable selection bar with all the standard menu features such as left, 
right, up, down, page up, page down, home and end.  Search keys are 
supported also.  F1 invokes the help screen.  Window movement key 
support and Lock support is also included.  Scrolling is also fully 
supported for small windows and long menus.  The procedure ends and 
returns control back to your program when the user presses Insert, 
Delete, Enter or Escape and optionally; Left or Right.

Declaration     Offer_Box_Menu( Menu, Code )

Parameters      Menu -  A variable of the Box_Menu_Type containing the menu offered to 
the user.
                Code - A word variable through which the users selection is returned.  A 
code value of zero is returned when the escape key is pressed.

Result  When the procedure returns, Code contains the selection that the user 
selected, or the value of zero meaning the user escaped from the menu. 

Restrictions    This function works best in text modes.  Also note that Menu must be at 
the very least initialized prior to the use of this procedure or serious 
system errors or crashes may occur.

See also        Offer_Bar_Menu

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Offer_Box_Menu_With_Search procedure

From the Menu unit
 
Function        This procedure displays a user menu in the current screen window 
defined by Turbo Pascal's (R) CRT unit with a pre-search.  The user menu 
features a moveable selection bar with all the standard menu features 
such as left, right, up, down, page up, page down, home and end.  Search 
keys are supported also.  F1 invokes the help screen.  Window movement 
key support and Lock support is also included.  Scrolling is also fully 
supported for small windows and long menus.  The procedure ends and 
returns control back to your program when the user presses Insert, 
Delete, Enter or Escape and optionally; Left or Right.

Declaration     Offer_Box_Menu( Menu, Code, Search_Character )

Parameters      Menu -  A variable of the Box_Menu_Type containing the menu offered to 
the user.
                Code - A word variable through which the users selection is returned.  A 
code value of zero is returned when the escape key is pressed.
                Search_Character - A character value used to move the selector bar 
before the user is given the opportunity.

Result  When the procedure returns, Code contains the selection that the user 
selected, or the value of zero meaning the user escaped from the menu. 

Restrictions    This function works best in text modes.  Also note that Menu must be at 
the very least initialized prior to the use of this procedure or serious 
system errors or crashes may occur.

See also        Offer_Bar_Menu_Update

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Open_Tree_File procedure

From the BTree unit
 
Function        This procedure opens up a tree file structure and sets it up to accept or 
distribute information  stored in the tree file.

Declaration     Open_Tree_File( Tree, File_Name, Record_Size, Key_Offset, 
Key_Length )

Parameters      Tree - A variable of Tree_Type used to control the tree file structure in the 
program.
                File_Name - The external name used by the operating system to identify 
the file.
                Record_Size - The size of the records to store in the file structure in bytes.
                Key_Offset -  The offset in bytes of the key in the record.  (If the key is the 
first variable in the record, this is 1)
                Key_Length -  The size of the key in bytes.  (always less than or equal to 
record size)

Result  The tree structure is opened and ready for use. 

Restrictions    This procedure generates an error if the supplied parameters do not 
match those of the supplied file.

See also        Close_Tree_File

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Open_Window function

From the Windows unit
 
Function        This function attempts to open a new window on the screen.  A new 
window is opened at the top of the window stack and the previous window 
is now inaccessible.

Declaration     Open_Window( Frame_Style, Open_Method, Left, Top, Right, Bottom, 
Attribute )

Parameters      Frame_Style - A byte value defining the style of frame the window is to 
have.  (No_Frame, Frame_1, Frame_2, Frame_3, Frame_4, Frame_5, Frame_6, Frame_7, Frame_8, 
Frame_9, Frame_10, Frame_11, Frame_12, Frame_13, Frame_14, Frame_15, Frame_16, Frame_17, 
Frame_18, Frame_19, Frame_20, Frame_21, Frame_22, Frame_23, Frame_24, Frame_S1, Frame_S2, 
Frame_S3, Frame_S4, Frame_S5, Frame_S6, Frame_S7, Frame_S8, Frame_S9, Frame_S10, Frame_S11, 
Frame_S12, Frame_S13, Frame_S14, Frame_S15, Frame_S16, Frame_S17, Frame_S18, Frame_S19, 
Frame_S20, Frame_S21, Frame_S22, Frame_S23, Frame_S24)
                Open_Method - A byte value indicating the animation method in which the 
window is to open.  (Window_Up, Window_Pop, Window_Left, Window_Down, Window_Right, 
Window_Explode, Window_Up_Left, Window_Up_Right, Window_Vertical,  Window_Down_Left, 
Window_Down_Right, Window_Horizontal, Window_Vertical_Up, Window_Vertical_Down, 
Window_Horizontal_Left,  Window_Horizontal_Right)
                Left - A byte value indicating the column to be the left edge of the window.
                Top - A byte value indicating the row to be the top edge of the window.
                Right - A byte value indicating the column to be the right edge of the 
window.
                Bottom - A byte value indicating the row to be the bottom edge of the 
window.
                Attribute - A byte value holding the text attribute to be used to draw the 
window.

Result  Returns true if a window was opened on the screen.  All the underlying 
data is saved.  A cute animation of the screen's creation is shown.  
Otherwise it returns false.

Restrictions    Windows are designed to operated in text mode.  Previous window is now 
off limits until the top window is closed.  Input and output is still handled 
through Turbo Pascal's (R) CRT unit.

See also        Close_Window, Close_All_Windows

Example { See unit chapter for example. }

 P

----------------------------------------------------------------------------------------

Page_Clear procedure

From the PageMaker unit
 
Function        This procedure clears all the text from the current PageMaker page.  All 
the defaults are then set back to normal.  Headers and footers are cleared.

Declaration     Page_Clear

Parameters      None.

Result  All the text remaining on the last unprinted page is erased

Restrictions    None

See also        Page_Print

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Footer1 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a footer for the succeeding pages to 
be printed out by PageMaker.  Page footers print below the bottom margin 
of all pages.

Declaration     Page_Footer1( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the footer to be used.

Result  All succeeding pages printed out by PageMaker has the footer on the fifth 
to bottom line of the page. 

Restrictions    Make sure your footer isn't too long.

See also        Page_Footer2, Page_Footer3, Page_Footer4, Page_Footer5

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Footer2 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a footer for the succeeding pages to 
be printed out by PageMaker.  Page footers print below the bottom margin 
of all pages.

Declaration     Page_Footer2( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the footer to be used.

Result  All succeeding pages printed out by PageMaker has the footer on the 
forth to bottom line of the page. 

Restrictions    Make sure your footer isn't too long.

See also        Page_Footer1, Page_Footer3, Page_Footer4, Page_Footer5

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Footer3 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a footer for the succeeding pages to 
be printed out by PageMaker.  Page footers print below the bottom margin 
of all pages.

Declaration     Page_Footer3( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the footer to be used.

Result  All succeeding pages printed out by PageMaker has the footer on the third 
to bottom line of the page. 

Restrictions    Make sure your footer isn't too long.

See also        Page_Footer1, Page_Footer2, Page_Footer4, Page_Footer5

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Footer4 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a footer for the succeeding pages to 
be printed out by PageMaker.  Page footers print below the bottom margin 
of all pages.

Declaration     Page_Footer4( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the footer to be used.

Result  All succeeding pages printed out by PageMaker has the footer on the 
second to bottom line of the page. 

Restrictions    Make sure your footer isn't too long.

See also        Page_Footer1, Page_Footer2, Page_Footer3, Page_Footer5

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Footer5 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a footer for the succeeding pages to 
be printed out by PageMaker.  Page footers print below the bottom margin 
of all pages.

Declaration     Page_Footer5( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the footer to be used.

Result  All succeeding pages printed out by PageMaker has the footer on the 
bottom line of the page. 

Restrictions    Make sure your footer isn't too long.

See also        Page_Footer1, Page_Footer2, Page_Footer3, Page_Footer4

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Header1 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a heading for the succeeding pages 
to be printed out by PageMaker.  Page headings print above the top 
margin of all pages.

Declaration     Page_Header1( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the header to be used.

Result  All succeeding pages printed out by PageMaker has the header on the top 
line. 

Restrictions    Make sure your header isn't too long.

See also        Page_Header2, Page_Header3, Page_Header4, Page_Header5

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Header2 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a heading for the succeeding pages 
to be printed out by PageMaker.  Page headings print above the top 
margin of all pages.

Declaration     Page_Header2( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the header to be used.

Result  All succeeding pages printed out by PageMaker has the header on the 
second to the top line. 

Restrictions    Make sure your header isn't too long.

See also        Page_Header1, Page_Header3, Page_Header4, Page_Header5

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Header3 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a heading for the succeeding pages 
to be printed out by PageMaker.  Page headings print above the top 
margin of all pages.

Declaration     Page_Header3( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the header to be used.

Result  All succeeding pages printed out by PageMaker has the header on the 
third line from the top. 

Restrictions    Make sure your header isn't too long.

See also        Page_Header1, Page_Header2, Page_Header4, Page_Header5

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Header4 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a heading for the succeeding pages 
to be printed out by PageMaker.  Page headings print above the top 
margin of all pages.

Declaration     Page_Header4( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the header to be used.

Result  All succeeding pages printed out by PageMaker has the header on the 
forth line from the top. 

Restrictions    Make sure your header isn't too long.

See also        Page_Header1, Page_Header2, Page_Header3, Page_Header5

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Header5 procedure

From the PageMaker unit
 
Function        This procedure allows you to define a heading for the succeeding pages 
to be printed out by PageMaker.  Page headings print above the top 
margin of all pages.

Declaration     Page_Header5( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value holding the header to be used.

Result  All succeeding pages printed out by PageMaker has the header on the 
fifth line from the top. 

Restrictions    Make sure your header isn't too long.

See also        Page_Header1, Page_Header2, Page_Header3, Page_Header4

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Margins procedure

From the PageMaker unit
 
Function        This procedure allows the page margins to be set by the programmer.

Declaration     Page_Margins( Left, Right )

Parameters      Left - The column from the left edge of the paper to start the left margin.
                Right - The column from the left edge of the paper to start the right margin.

Result  The left and/or right PageMaker margin may be changed. 

Restrictions    Supplying a value of zero to either of the margin's causes no change to it.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Print procedure

From the PageMaker unit
 
Function        This procedure forces the current page to be printed and resets the 
PageMaker system for new text

Declaration     Page_Print

Parameters      None

Result  The current page in the PageMaker system is printed out on the printer.  
The page is cleared and ready for new text. 

Restrictions    None

See also        Page_Clear, Page_Reset

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Reset procedure

From the PageMaker unit
 
Function        This procedure dumps the current page as in Page_Clear, but doesn't 
affect the headers or footers.

Declaration     Page_Reset

Parameters      None

Result  All the current text in the PageMaker page is dumped into data limbo.  
Everything else remains the same.

Restrictions    None

See also        Page_Clear, Page_Print

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_Write procedure

From the PageMaker unit
 
Function        This procedure writes the given string to the PageMaker system.

Declaration     Page_Write( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value to be put in the PageMaker page.

Result  The given string is put on the PageMaker page.  If the string reaches the 
end of the line, a line feed is performed internally.  If the page is filled at 
any time during the operation, the page is printed out and the next one is 
begun. 

Restrictions    None

See also        Page_WriteLn

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Page_WriteLn procedure

From the PageMaker unit
 
Function        This procedure writes the given string to the PageMaker system and 
performs an internal form feed afterwards.

Declaration     Page_WriteLn( How, Attribute, Data )

Parameters      How - A byte type value defining the way the header is to be displayed.  
(Regular, Centered, Justified, Left_Justified or Right_Justified)
                Attribute - A byte value defining the style the header is to be printed.  
(Pica/Elite, Italics, Reverse, Expanded, Underline, Subscript, Heightened, Compressed, Emphasized, 
Superscript or Doublespaced)
                Data - The string value to be put in the PageMaker page.

Result  The given string is put on the PageMaker page.  If the string reaches the 
end of the line, a line feed is performed internally.  After the string is 
inserted, a form feed is inserted.  If the page is filled at any time during the 
operation, the page is printed out and the next one is begun. 

Restrictions    None

See also        Page_Write

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Paste_Block function

From the TextEdit unit
 
Function        This function attempts to make a copy of the text in clipboard at the 
current cursor location in the given text structure.

Declaration     Paste_Block( Text, Clipboard, Buffer, Start, Finish, Cursor, Point, Limit )

Parameters      Text - A variable of Text_Type to which the data is to be placed.
                Clipboard - A variable of Text_Type which holds the data to be inserted.
                Buffer- A variable of Line_Type needed as temporary space in the 
processing of this function.
                Start - A variable of Point_Type indicating the beginning of the marked 
block in Text.
                Finish - A variable of Point_Type indicating the ending of the marked 
block in Text.
                Cursor - A variable of Point_Type indicating the insertion place in text.
                Point - ?
                Limit - ?

Result  Returns true if the text was copied from the clipboard into the text 
structure.  Start and Finish are altered to indicating the new text location 
within the text structure.

Restrictions    Be sure that Text and Clipboard have been initialized.

See also        Copy_Block, Cut_Block

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Peek procedure

From the KeyBoard unit
 
Function        This procedure sets a group of unit flags to correspond with the current 
status of the keyboard instant keys. (Shift, Control, Alternate, Insert, etc.)

Declaration     Peek

Parameters      None.

Result  Special Boolean flags of the KeyBoard unit are altered to reflect the 
current status of the keyboard;  Key_Shift, Key_Insert, Key_Number, 
Key_Scroll, Key_Capital, Key_Control and Key_Alternate

Restrictions    None

See also        Status

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Peek_Buffer_Data procedure

From the FileMem unit
 
Function        This function performs a data transfer from the file memory system to your 
data structure but bypasses the in memory buffering system.

Declaration     Peek_Buffer_Data( Address, Data, Size )

Parameters      Address - Pointer type containing the address of the block in the file 
memory structure.
                Data -  Untyped variable into which the data will be copied.
                Size -  A word holding the size of Data in bytes.

Result  The data from the system is copied into the variable. 

Restrictions    Same as Get_Buffer_Data;  Address must be valid.

See also        Get_Data, Peek_Data, Peek_Buffer_Data

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Peek_Data procedure

From the FileMem unit
 
Function        This function performs a data transfer from the file memory system to your 
data structure but bypasses the in memory buffering system.

Declaration     Peek_Data( Address, Data, Size )

Parameters      Address - Pointer type containing the address of the block in the file 
memory structure.
                Data -  Untyped variable into which the data will be copied.
                Size -  A word holding the size of Data in bytes.

Result  The data from the system is copied into the variable. 

Restrictions    Same as Get_Data;  Address must be valid.

See also        Get_Data, Peek_Buffer_Data, Get_Buffer_Data

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Pick_File function

From the Pick unit
 
Function        This function offers the user the opportunity to search through the disk 
operating system's directories of files and subdirectories in order to pick a 
file.

Declaration     Pick_File( Current_Path )

Parameters      Current_Path - A string which contains the path with which to start the 
search.  An empty string uses the current directory.

Result  Returns a string with the full path and name combination for the program.  
If an error occurs inside the procedure, Pick_Okay will be set to false.

Restrictions    Under certain low memory conditions the function may fail.  This unit 
relies on the Menu unit to offer the user the choice.

See also        ?

Example Here's a small example program that lets the user select the file and then 
tell him or her which one was selected.

                Program Pick_Example;
                  Uses
                    Pick;
                  Var
                    File_Name: String;
                  Begin
                    File_Name := Pick_File( 'C:\' );
                    Write( 'The file you selected to work with is ' );
                    WriteLn( File_Name );
                  End.

----------------------------------------------------------------------------------------

Pop_Off procedure

From the Structures unit
 
Function        This procedure removes the top record from the stack and returns it's 
information to the user.

Declaration     Pop_Off( Stack, Data )

Parameters      Stack - A variable of Stack_Type that's needed to manage the stack 
structure.
                Data - An untyped variable through which the information is to be returned.

Result  Data is overwritten with the information that was on the top of the stack 
and the top element of the stack is removed.

Restrictions    Make sure that Data is large enough to take the information from the stack.

See also        Push_On, Examine_Stack

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Print_Solution procedure

From the Tables unit
 
Function        This procedure takes one of the solutions generated by the solving 
routines and prints it out to the printer.

Declaration     Print_Solution( OutFile, Solution )

Parameters      OutFile - A text file open for output through which the data is to be written.
                Solution - A variable of Solution_Type which has a generated solution in it.

Result  A report of the given generated solution is written to the text file.

Restrictions    Be sure to include a valid solution.  Make sure that OutFile is opened for 
output.

See also        Print_Solutions

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Print_Solutions procedure

From the Table unit
 
Function        This function produces a report of multiple solutions generated by one of 
the solvers in this unit.

Declaration     Print_Solutions( OutFile, List )

Parameters      OutFile - An open text file through which the report is to be written.
                List - A variable of Solution_List_Type that holds the multiple solutions 
generated by the unit.

Result  A report of the possible solutions is written to the given output file.

Restrictions    Be sure that the solution list has been properly generated.  Also make 
sure that the output file has been opened to accept output.

See also        Print_Solution

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Print_Table procedure

From the Tables unit
 
Function        This procedure prints out the given table in a nice report readable 
formation.

Declaration     Print_Table( OutFile, Table )

Parameters      OutFile - An opened text file through which the data is to be written.
                Table - A variable of Table_Type which holds the table to be printed.

Result  A nice report style display of the Table is written to the given text file.

Restrictions    Be sure that Tables has been initialized and that OutFile is a file opened 
for output.

See also        Read_Table, Write_Table

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Procedure_Default procedure

From the Core unit
 
Function        This procedure does absolutely nothing.

Declaration     Procedure_Default

Parameters      None

Result  None 

Restrictions    None

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Push_On procedure

From the Structures unit
 
Function        This procedure pushes a copy of the given data record onto the stack 
structure.

Declaration     Push_On( Stack, Data )

Parameters      Stack - A variable of Stack_Type used to manage the stack structure.
                Data - An untyped variable holding the information to be placed in the 
stack.

Result  A copy of the information in Data is placed on the stack structure.

Restrictions    Make sure to include a valid record for data. An empty heap will generate 
an error.

See also        Pop_Off

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Push_To function

From the String_Utilities unit
 
Function        This function returns a string expanded with the given character to allow 
both given strings to fit the given size.

Declaration     Push_To( Front, Back, Limit, Fill )

Parameters      Front - The foremost string value.
                Back - The rearmost string value.
                Limit - A byte containing the requested area that all the strings must fit into.
                Fill - The character requested to fill the area in between.

Result  Returns a string of Fill characters to allow a fit into the given size with both 
Front and Back.

Restrictions    Make sure that both Front and Back don't together take up all of the given 
size.

See also        ?

Example This function most defiantly needs an example here to explain it.

                Program Demonstrate( Input, Output );
                  Uses
                    String_Utilities;
                  Const
                    Front: String = 'Chapter 1';
                    Back: String = 'Page 25';
                  Var
                    Data: String;
                  Begin
                    Data := Push_To( Front, Back, 40, '.' );
                    Write( Front + Data + Back );
                  End.

                This example produces a display on the screen similar to this...

                Chapter 1........................Page 25

----------------------------------------------------------------------------------------

Put_Character_On_Screen procedure

From the Core unit
 
Function        This procedure puts the given character on the screen at the given 
location using the provided character attribute.

Declaration     Put_Character_On_Screen( Column, Row, Character, Attribute )

Parameters      Column - The column to which the new character is to be added.
                Row -  The row to which the new character is to be added.
                Character - The character to be put on screen.
                Attribute - The foreground and background colors of the new character.

Result  Screen is altered 

Restrictions    Get_The_Mode must be called before this routine.

See also        Get_Character_From_Screen, Get_The_Mode

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Put_Data procedure

From the FileMem unit
 
Function        This procedure makes a copy of the supplied data to the file memory 
system.

Declaration     Put_Data( Address, Data, Size )

Parameters      Address -  Preallocated address to which the block has been reserved.
                Data -  Untyped variable holding the data to be written to the file memory.
                Size - Word value specifying the amount of  bytes to be copied.

Result  The supplied data is copied to the file memory system. 

Restrictions    Address must be validly allocated for this operation to work.

See also        Get_Data, Put_New_Pointer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Put_In procedure

From the Structures unit
 
Function        This procedure puts a copy of the given data into an element at the top of 
the queue.

Declaration     Put_In( Queue, Data )

Parameters      Queue - A variable of Queue_Type used to manage the queue structure.
                Data - An untyped variable holding the information to be put in the queue.

Result  A copy of the information in Data is put at the top of the queue. 

Restrictions    Make sure that Data holds valid information.  An empty heap will generate 
an error.

See also        Get_Out, Examine_Queue

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Put_In_Matrix procedure

From the Matrices unit
 
Function        This procedure is designed to place the given numerical value into the 
specified location within the matrix.

Declaration     Put_In_Matrix( Matrix, Row, Column, Data )

Parameters      Matrix -  Variable pointer address into which the value is to be stored.
                Row -  Byte specifying the row into which the value will go.
                Column -  Byte specifying the column into which the value will go.
                Data -  A initialized value of Matrix_Number type that will be placed into 
the matrix.

Result  The specified value is placed in the appropriate location of the matrix if the 
range is valid.  Otherwise, nothing happens.

Restrictions    The matrix should have been initialized.

See also        Get_From_Matrix

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Put_New_Pointer function

From the FileMem unit
 
Function        This function attempts to allocate a block of file memory in the system and 
initializes it initially for the user. 

Declaration     Put_New_Pointer( Size, Data )

Parameters      Size - A word value defining the size of the data structure in bytes.
                Data - An untyped variable holding the value to be initially transferred into 
the file memory system.

Result  This function returns a pointer value with the address of the data block if 
it's successful, otherwise it returns the value of nul.

Restrictions    None

See also        New_Pointer, Dispose_Pointer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Put_TextAttr procedure  (Put text attribute)

From the Multiple unit
 
Function        This procedure alters the text attribute in the given virtual window

Declaration     Put_TextAttr( Window_Handle, New_Attribute )

Parameters      Window_Handle - A byte value indicating the window to which to alter the 
current attribute.
                New_Attribute -  A byte value containing the new attribute to assign to the 
virtual window.

Result  The new text attribute is assigned to the virtual window.  Any new text 
written to the window will reflect the change.

Restrictions    Make sure to use a valid window handle.

See also        Get_TextAttr

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Put_To_Storage procedure

From the Core unit
 
Function        This procedure places a character on the simulated screen

Declaration     Put_To_Screen( Storage, Row, Column, Character, Attribute )

Parameters      Storage - A previously allocated record of Storage_Record type holding 
the simulated screen.
                Row - The row location in the simulated screen.
                Column -  The column location in the simulated screen.
                Character - The new character value to put on the screen.
                Attribute - The attribute of the new character.

Result  The character is placed with the new attribute on the simulated screen.

Restrictions    The simulated screen must be allocated for this to work.

See also        Get_From_Storage, Allocate_Storage

Example { See unit chapter for example. }

 Q

----------------------------------------------------------------------------------------

Queue_Empty function

From the Structures unit
 
Function        This function returns the status of the queue

Declaration     Queue_Empty( Queue ) 

Parameters      Queue -  A variable of Queue_Type that holds the particular queue with 
which to perform the operation.

Result  Returns a Boolean value; true if the queue is empty, false if it isn't.

Restrictions    Make sure the queue was initialized prior to this.

See also        Examine_Queue

Example { Please refer to unit chapter. }

 R

----------------------------------------------------------------------------------------

Read_Absolute_Address function

From the Structures unit
 
Function        This function returns the data from the absolute address pointer as 
provided by Read_Absolute_Address.

Declaration     Read_Absolute_Address( Tree, Address, Data )

Parameters      Tree - A variable of Tree_Type used to manage the binary tree structure.
                Address - A variable pointer through which the pointer is to be supplied.
                Data - An untyped variable through which the data of the address is 
returned.

Result  Returns true if the data can be obtained, otherwise it returns false.  The 
data is returned in Data.

Restrictions    Make sure that Data is large enough to hold the data returned.

See also        Get_Absolute_Address

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Read_Data procedure

From the Core unit
 
Function        This procedure reads a string of characters and attributes from the screen 
and returns them in the given variable.

Declaration     Read_Data( Row, Column, Data, Amount )

Parameters      Row -  The row from which the data is to be read.
                Column -  The column from which the data is to be read.
                Data -  An untyped variable to which the character/attributes are to be 
written.
                Amount -  Word value which specifies the amount of data to read.

Result  Screen information is returned in the Data variable 

Restrictions    The Get_The_Mode routine must be called before this one.

See also        Get_The_Mode, Write_Data

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Read_In_Matrix procedure

From the Matrices unit
 
Function        This procedure is designed to help with the input of the matrix by handling 
the chore of reading it in from a file.

Declaration     Read_In_Matrix( Input_File, Matrix )

Parameters      Input_File - An opened text file from which the matrix data is to be read.
                Matrix -  A preallocated matrix variable pointer into which the data of the 
opened text file is to be placed.  Note that text in the file is expected to be 
a series of numbers making up all the data needed.

Result  If the operation was successful, the matrix is completely filled.  The file is 
neither opened nor closed by the procedure.

Restrictions    The program will be halted if the matrix variable is not initialized.  The 
procedure may halt the program if the data in the file is not of the 
expected type or there is too little data.

See also        Write_Out_Matrix

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Read_Joystick procedure

From the JoyStick unit
 
Function        This function returns the current status of the system's joysticks.

Declaration     Read_JoyStick( Stick1, Stick2 )

Parameters      Stick1 -  A variable record of type Stick_Type through which the status of 
joystick number one is returned.
                Stick2 -  A variable record of type Stick_Type through which the status of 
joystick number two is returned.

Result  Stick1 and Stick2 are altered to contain the values from the system 
joystick routine.  Note that if there isn't a second joystick, Stick2 isn't going 
to be of much value.

Restrictions    The JoyStick unit uses the systems built in joystick interface which is 
sometimes lacking on a few of the very early PC compatible machines.

See also        Set_JoyStick

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Read_Pointer procedure

From the Pointer unit
 
Function        This procedure reads the status of the pointer device and returns the 
results in the data structure.  

Declaration     Read_Pointer( Data )

Parameters      Data - A variable record of Pointer_Data_Type through which the results 
of the read are returned.

Result  The X and Y fields of Data will contain the location of the pointer in screen 
pixels, while Row and Column contain the location in terms of character 
column and row.

Restrictions    Make sure the pointer exists before using this procedure.

See also        Read_Position_And_Buttons, Check_For_Pointer

Example Here's an example program that demonstrates the use of some of the 
pointer routines.

                Program Look_At_The_Pointer( Input, Output );
                  Uses
                    Pointer;
                  Var
                    Data: Pointer_Data_Type;
                  Begin
                    If Check_For_Pointer
                      then
                        Begin
                          Read_Pointer( Data );
                          Write( Data.Row, Data.Column );
                        End;
                  End.
                    
----------------------------------------------------------------------------------------

Read_Position_And_Buttons procedure

From the Pointer unit
 
Function        This procedure reads the position and buttons from the pointer device 
using the Microsoft (R) pointer device calls

Declaration     Read_Pointer_And_Buttons( X, Y, Button1, Button2 )

Parameters      X - A word variable through which the pointer's X coordinate is to be 
returned.
                Y - A word variable through which the pointer's Y coordinate is to be 
returned.
                Button1 - A Boolean variable through which the pointer's left button is to 
be returned.
                Button2 - A Boolean variable through which the pointer's right button is to 
be returned.

Result  All the parameters are altered to reflect the current value of the system's 
pointer device. 

Restrictions    Make sure the system has a pointer before using this procedure.

See also         Check_For_Pointer, Read_Pointer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Read_Table procedure

From the Table unit
 
Function        This procedure is designed to read a table from a standard text file.

Declaration     Read_Table( InFile, Table )

Parameters      InFile - An opened text file through which the table is to be read.
                Table - A variable of Table_Type where the table is to be stored.

Result  The table in InFile is read and stored in the Table variable.

Restrictions    Make sure that InFile is opened and has the data in the specified table 
format.  (A line with the table size, followed by the table's data consisting 
of an M x M collection of integers.)

See also        Print_Table, Write_Table.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Read_Text_File function

From the TextEdit unit
 
Function        This function reads a text file from the file and copies it into the text data 
structure for your program's use.

Declaration     Read_Text_File( InFile, All )

Parameters      InFile - An opened text file through which the text is read.
                All - A variable of All_Type which will hold the text data structure.

Result  Returns true if a copy of the text from the text file is created in All and 
ready for the user to examine and alter it. Otherwise it returns false for 
any error.

Restrictions    Be sure that All was preinitialized before calling this function. Make sure 
that the file is valid and ready. 

See also        Write_Text_File

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reduce_Window_Down function

From the Multiple unit

Function        This function attempts to reduce the given virtual window by one row at 
the  top.

Declaration     Reduce_Window_Down( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be reduced 
downward.  Otherwise it returns false.  If it can reduce the window, the 
window is reduced by one row and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Reduce_Window_Up, Reduce_Window_Left, Reduce_Window_Right, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reduce_Window_Down function

From the Windows unit
 
Function        This function attempts to reduce the size of the current window downward 
on the screen if possible.

Declaration     Reduce_Window_Down

Parameters      None.

Result  Returns true if the window was reduced, otherwise returns false with no 
harm done.

Restrictions    May destroy information in the window.

See also        Reduce_Window_Up, Reduce_Window_Left, Reduce_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reduce_Window_Left function

From the Multiple unit

Function        This function attempts to reduce the given virtual window by one column 
at the right

Declaration     Reduce_Window_Left( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be reduced 
leftward.  Otherwise it returns false.  If it can reduce the window, the 
window is reduced by one column and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Reduce_Window_Up, Reduce_Window_Down, Reduce_Window_Right, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reduce_Window_Left function

From the Windows unit
 
Function        This function attempts to reduce the size of the current window leftward 
on the screen if possible.

Declaration     Reduce_Window_Left

Parameters      None.

Result  Returns true if the window was reduced, otherwise returns false with no 
harm done.

Restrictions    May destroy information in the window.

See also        Reduce_Window_Up, Reduce_Window_Down, Reduce_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reduce_Window_Right function

From the Multiple unit

Function        This function attempts to reduce the given virtual window by one column 
at the left.

Declaration     Reduce_Window_Right( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be reduced 
rightward.  Otherwise it returns false.  If it can reduce the window, the 
window is reduced by one column and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Reduce_Window_Up, Reduce_Window_Down, Reduce_Window_Left, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reduce_Window_Right function

From the Windows unit
 
Function        This function attempts to reduce the size of the current window rightward 
on the screen if possible.

Declaration     Reduce_Window_Right

Parameters      None.

Result  Returns true if the window was reduced, otherwise returns false with no 
harm done.

Restrictions    May destroy data in the current window

See also        Reduce_Window_Up, Reduce_Window_Down, Reduce_Window_Left.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reduce_Window_Up function

From the Multiple unit

Function        This function attempts to reduce the given virtual window by one row at 
the  bottom.

Declaration     Reduce_Window_Up( Window_Handle )

Parameters      Window_Handle - A byte value indicating which virtual window to perform 
the operation on.

Result  This function returns true if the given window was allowed to be reduced 
upward.  Otherwise it returns false.  If it can reduce the window, the 
window is reduced by one row and the screen is updated.

Restrictions    Make sure the window handle is valid..

See also        Reduce_Window_Down, Reduce_Window_Left, Reduce_Window_Right, 
Reposition_Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reduce_Window_Up function

From the Windows unit
 
Function        This function attempts to reduce the size of the current window upward on 
the screen if possible.

Declaration     Reduce_Window_Up

Parameters      None.

Result  Returns true if the window was reduced, otherwise returns false with no 
harm done.

Restrictions    May destroy some of the information in the current window

See also        Reduce_Window_Down, Reduce_Window_Left, Reduce_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Remove_All_Blanks procedure

From the String_Utilities unit
 
Function        This procedure takes any string and removes all the space characters 
from it.

Declaration     Remove_All_Blanks( Data )

Parameters      Data - A variable string which contains the string to operate on.

Result  All the space characters are removed from Data 

Restrictions    None

See also        Remove_Double_Blanks

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Remove_Bottom_Box_Menu procedure

From the Menu unit
 
Function        This procedure removes the menu item at the very bottom of the box 
menu structure if it exists.

Declaration     Remove_Bottom_Box_Menu( Menu )

Parameters      Menu - A variable of Box_Menu_Type that contains the menu structure 
from which the choice is to be removed.

Result  The bottom choice of the menu structure is removed. 

Restrictions    Make sure to supply an initialized menu structure.

See also        Insert_Bottom_Box_Menu, Remove_Top_Box_Menu

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Remove_Double_Blanks procedure

From the String_Utilities unit
 
Function        This procedure takes any string and removes all the double space 
character combinations from it, leaving only single spaces.

Declaration     Remove_Double_Blanks( Data )

Parameters      Data - A variable string from which all the multiple spaces are to be 
replaced with single spaces.

Result  All the double spaces are removed from the string and replaced with 
single space characters  

Restrictions    None

See also        Remove_All_Blanks

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Remove_Top_Box_Menu procedure

From the Menu unit
 
Function        This procedure removes the menu item at the very top of the box menu 
structure if it exists.  All succeeding menu items go up.

Declaration     Remove_Top_Box_Menu( Menu )

Parameters      Menu - A variable of Box_Menu_Type that contains the menu structure 
from which the choice is to be removed.

Result  The top choice of the menu structure is removed. 

Restrictions    Make sure to supply an initialized menu structure.

See also        Insert_Top_Box_Menu, Remove_Bottom_Box_Menu

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reposition_Window procedure

From the Multiple unit
 
Function        This procedure allows for the given window to be moved to a new location 
on the screen.  The size may also be altered.

Declaration     Reposition_Window( Window_Handle, Left, Top, Right, Bottom )

Parameters      Window_Handle -  A byte value holding the handle of the window to be 
repositioned.
                Left -  A byte value indicating the column to be the left side of the window.
                Top -  A byte value indicating the row to be the top of the window.
                Right -  A byte value indicating the column to be the right side of the 
window.
                Bottom -  A byte value indicating the row to be the bottom of the window.

Result  The given virtual window is moved to the new location on the screen.

Restrictions    Make sure to supply a valid window handle.  Also make sure your rows 
and columns are valid for the current mode.

See also        Move_Window_Up, Move_Window_Down, Move_Window_Left, 
Move_Window_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reset_Pointer function

From the Pointer unit
 
Function        This function performs a pointer reset through the driver.

Declaration     Reset_Pointer

Parameters      None

Result  Returns a Boolean value reporting the success of the reset.  If it returns 
true, the reset was successful, otherwise it failed.

Restrictions    A driver pointer reset may take several seconds to complete.

See also        Check_For_Pointer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Reverse function

From the Core unit
 
Function        This function switches the high part of the byte with the low part and 
returns that value.  It's useful for reversing a text attribute.

Declaration     Reverse( Value )

Parameters      Value - The original byte to alter.

Result  Returns a byte that contains the altered original value. 

Restrictions    None

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Roll_Point procedure

From the Draw unit
 
Function        This procedure rolls a point about the origin by the given amount of 
degrees.

Declaration     Roll_Point( X, Y, Amount )

Parameters      X - A real variable holding the X coordinate value to alter.
                Y - A real variable holding the Y coordinate value to alter.
                Amount -  A real variable holding the amount of degrees to rotate the point.

Result  The values of X and Y are altered to reflect the point's new position.

Restrictions    None noted yet.

See also        ?

Example This example program uses the roll point procedure to rotate a point about 
the origin.

                Program Show_Example( Input, Output );
                  Uses
                    Draw;
                  Var
                    X,
                    Y: Real;
                  Begin
                    X := 7.3;
                    Y := -6.2;
                    Roll_Point( X, Y, 30 );
                    WriteLn( 'X is now ', X );
                    WriteLn( 'Y is now ', Y );
                  End.


 S

----------------------------------------------------------------------------------------

Scroll_Region_Down procedure

From the Core unit
 
Function        This procedure causes all the data in the screen region to be moved 
downward.

Declaration     Scroll_Region_Down( Left, Top, Right, Bottom )

Parameters      Left - Defines the left column of the screen region in which to perform the 
operation.
                Top - Defines the top row of the screen region in which to perform the 
operation.
                Right - Defines the right column of the screen region in which to perform 
the operation.
                Bottom -  Defines the bottom row of the screen region in which to perform 
the operation.

Result  The screen is altered.

Restrictions    Get_The_Mode must be called before this operation.

See also        Get_The_Mode, Scroll_Region_Up, Scroll_Region_Left, 
Scroll_Region_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Region_Left procedure

From the Core unit
 
Function        This procedure causes all the data in the screen region to be moved 
leftward.

Declaration     Scroll_Region_Left( Left, Top, Right, Bottom )

Parameters      Left - Defines the left column of the screen region in which to perform the 
operation.
                Top - Defines the top row of the screen region in which to perform the 
operation.
                Right - Defines the right column of the screen region in which to perform 
the operation.
                Bottom -  Defines the bottom row of the screen region in which to perform 
the operation.

Result  The screen is altered.

Restrictions    Get_The_Mode must be called before this operation.

See also        Get_The_Mode, Scroll_Region_Right, Scroll_Region_Up, 
Scroll_Region_Down

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Region_Right procedure

From the Core unit
 
Function        This procedure causes all the data in the screen region to be moved 
rightward.

Declaration     Scroll_Region_Right( Left, Top, Right, Bottom )

Parameters      Left - Defines the left column of the screen region in which to perform the 
operation.
                Top - Defines the top row of the screen region in which to perform the 
operation.
                Right - Defines the right column of the screen region in which to perform 
the operation.
                Bottom -  Defines the bottom row of the screen region in which to perform 
the operation.

Result  The screen is altered.

Restrictions    Get_The_Mode must be called before this operation.

See also        Get_The_Mode, Scroll_Region_Left, Scroll_Region_Up, 
Scroll_Region_Down

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Region_Up procedure

From the Core unit
 
Function        This procedure causes all the data in the screen region to be moved 
upward.

Declaration     Scroll_Region_Up( Left, Top, Right, Bottom )

Parameters      Left - Defines the left column of the screen region in which to perform the 
operation.
                Top - Defines the top row of the screen region in which to perform the 
operation.
                Right - Defines the right column of the screen region in which to perform 
the operation.
                Bottom -  Defines the bottom row of the screen region in which to perform 
the operation.

Result  The screen is altered.

Restrictions    Get_The_Mode must be called before this operation.

See also        Get_The_Mode, Scroll_Region_Down, Scroll_Region_Left, 
Scroll_Region_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Storage_Down procedure

From the Core unit
 
Function        This procedure causes all the data in the simulated screen to be moved 
downward.

Declaration     Scroll_Storage_Down( Storage )

Parameters      Storage - Preallocated simulated screen variable of Record_Type

Result  The data in the simulated screen is altered. 

Restrictions    Storage must be preallocated for this operation to succeed.

See also        Allocate_Storage, Scroll_Storage_Up, Scroll_Storage_Left, 
Scroll_Storage_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Storage_Left procedure

From the Core unit
 
Function        This procedure causes all the data in the simulated screen to be moved 
leftward.

Declaration     Scroll_Storage_Left( Storage )

Parameters      Storage - Preallocated simulated screen variable of Record_Type

Result  The data in the simulated screen is altered. 

Restrictions    Storage must be preallocated for this operation to succeed.

See also        Allocate_Storage, Scroll_Storage_Right, Scroll_Storage_Up, 
Scroll_Storage_Down

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Storage_Right procedure

From the Core unit
 
Function        This procedure causes all the data in the simulated screen to be moved 
rightward.

Declaration     Scroll_Storage_Right( Storage )

Parameters      Storage - Preallocated simulated screen variable of Record_Type

Result  The data in the simulated screen is altered. 

Restrictions    Storage must be preallocated for this operation to succeed.

See also        Allocate_Storage, Scroll_Storage_Left, Scroll_Storage_Up, 
Scroll_Storage_Down

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Storage_Up procedure

From the Core unit
 
Function        This procedure causes all the data in the simulated screen to be moved 
upward.

Declaration     Scroll_Storage_Up( Storage )

Parameters      Storage - Preallocated simulated screen variable of Record_Type

Result  The data in the simulated screen is altered. 

Restrictions    Storage must be preallocated for this operation to succeed.

See also        Allocate_Storage, Scroll_Storage_Down, Scroll_Storage_Left, 
Scroll_Storage_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Window_Down procedure

From the Core unit
 
Function        This procedure causes all the data in the screen window to be moved 
downward.

Declaration     Scroll_Window_Down

Parameters      None

Result  The screen is altered in the current window.

Restrictions    Get_The_Mode must be called before this operation.

See also        Get_The_Mode, Scroll_Window_Up, Scroll_Window_Left, 
Scroll_Window_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Window_Down procedure

From the Multiple unit
 
Function        This procedure causes the contents of the given virtual window to be 
scrolled downward.

Declaration     Scroll_Window_Down( Window_Handle )

Parameters      Window_Handle -  A byte value indicating which virtual window to perform 
the operation on.

Result  The data in the virtual window is scrolled downward and a new line is 
added at the top.

Restrictions    Be sure to supply a valid window handle.

See also        Scroll_Window_Up, Scroll_Window_Left, Scroll_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Window_Left procedure

From the Core unit
 
Function        This procedure causes all the data in the screen window to be moved 
leftward.

Declaration     Scroll_Window_Left

Parameters      None

Result  The screen is altered in the current window.

Restrictions    Get_The_Mode must be called before this operation.

See also        Get_The_Mode, Scroll_Window_Right, Scroll_Window_Up, 
Scroll_Window_Down

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Window_Left procedure

From the Multiple unit
 
Function        This procedure causes the contents of the given virtual window to be 
scrolled leftward.

Declaration     Scroll_Window_Left( Window_Handle )

Parameters      Window_Handle -  A byte value indicating which virtual window to perform 
the operation on.

Result  The data in the virtual window is scrolled leftward and a new column is 
added at the right.

Restrictions    Be sure to supply a valid window handle.

See also        Scroll_Window_Up, Scroll_Window_Down, Scroll_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Window_Right procedure

From the Core unit
 
Function        This procedure causes all the data in the screen window to be moved 
rightward.

Declaration     Scroll_Window_Right

Parameters      None

Result  The screen is altered in the current window.

Restrictions    Get_The_Mode must be called before this operation.

See also        Get_The_Mode, Scroll_Window_Left, Scroll_Window_Up, 
Scroll_Window_Down

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Window_Right procedure

From the Multiple unit
 
Function        This procedure causes the contents of the given virtual window to be 
scrolled rightward.

Declaration     Scroll_Window_Right( Window_Handle )

Parameters      Window_Handle -  A byte value indicating which virtual window to perform 
the operation on.

Result  The data in the virtual window is scrolled rightward and a new column is 
added at the left.

Restrictions    Be sure to supply a valid window handle.

See also        Scroll_Window_Up, Scroll_Window_Down, Scroll_Window_Left.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Window_Up procedure

From the Core unit
 
Function        This procedure causes all the data in the screen window to be moved 
upward.

Declaration     Scroll_Window_Up

Parameters      None

Result  The screen is altered in the current window.

Restrictions    Get_The_Mode must be called before this operation.

See also        Get_The_Mode, Scroll_Window_Down, Scroll_Window_Left, 
Scroll_Window_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Scroll_Window_Up procedure

From the Multiple unit
 
Function        This procedure causes the contents of the given virtual window to be 
scrolled upward.

Declaration     Scroll_Window_Up( Window_Handle )

Parameters      Window_Handle -  A byte value indicating which virtual window to perform 
the operation on.

Result  The data in the virtual window is scrolled upward and a new line is added 
at the bottom.

Restrictions    Be sure to supply a valid window handle.

See also        Scroll_Window_Down, Scroll_Window_Left, Scroll_Window_Right.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Separate procedure

From the Fraction unit
 
Function        This procedure separates the given encoded fraction producing the 
numerator and denominator as separate units.

Declaration     Separate( Number, Numerator, Denominator )

Parameters      Number - The encoded fraction in a long integer number type.
                Numerator - A variable through which the upper part of the fraction is 
returned.
                Denominator -  A variable through which the lower part of the fraction is 
returned.

Result  The number is decoded an returned in Numerator and Denominator.

Restrictions    None.

See also        Equals, Convert_To_Real, Convert_To_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Aspect_Ratio procedure

From the Draw unit.
 
Function        This procedure sets the values for the X and Y aspect ratios.

Declaration     Set_Aspect_Ratio( X_Ratio, Y_Ratio )

Parameters      X_Ratio -  A word value holding the new ratio for the X coordinates.
                Y_Ratio -  A word value holding the new ratio for the Y coordinates.

Result  The aspect ratio is reset to the new values. 

Restrictions    Be sure you don't confuse which ones are which or the circles may be 
way out of line.

See also        Get_Aspect_Ratio.

Example This example program uses this procedure to set the aspect ratio of the 
system.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Set_Aspect_Ratio( 100, 40 );
                  End.

----------------------------------------------------------------------------------------

Set_Background_Color procedure

From the Draw unit
 
Function        This procedure changes the background color of the drawing system.

Declaration     Set_Background_Color( Color )

Parameters      Color -  A word value holding the new color to use.

Result  The drawing color for the background is set to the new color. 

Restrictions    None.

See also        Set_Color, Set_Filling_Color

Example This example program uses this procedure to set the background color on 
the screen device.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Set_Background_Color( 13 );
                  End.

----------------------------------------------------------------------------------------

Set_Byte procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a method that involves selected character toggling.  Pressing the 
up arrow increases the value, pressing the down arrow decreases the 
value.  The right arrow moves to the previous character, the left arrow 
moves to the succeeding character.  Digit keys are also supported.  If it 
exceeds the line, it's wrapped to the next.  F1 invokes help.  The routine 
ends when either Enter or Escape are pressed.

Declaration     Set_Byte( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the byte value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Character_Color procedure

From the Character unit
 
Function        This procedure sets up the color used by the Character unit to draw the 
characters.

Declaration     Set_Character_Color( Color )

Parameters      Color -  A byte value that holds the color number to use with the 
procedures.

Result  All succeeding calls of the unit to draw will use the chosen color.

Restrictions    Be sure to supply a valid color for the graphic mode you're using.

See also        ?

Example { Please see unit chapter.}

----------------------------------------------------------------------------------------

Set_Color procedure

From the Draw unit
 
Function        This procedure is the best way to set the color for the drawing system.

Declaration     Set_Color( Color )

Parameters      Color -  A word value containing the new color for the system.

Result  The system's drawing color is altered.

Restrictions    Try not to use the same color as the background.

See also        Set_Background_Color, Set_Filling_Color

Example This example program uses this procedure to change the drawing color 
on the screen device.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Set_Color( 4 );
                    Draw_Circle( 100, 100, 50 );
                  End.

----------------------------------------------------------------------------------------

Set_Current_Drive function

From the Drives unit
 
Function        This procedure allows the code to set the default system drive to the one 
supplied via the given character.

Declaration     Set_Current_Drive( New_Drive )

Parameters      New_Drive - A character value specifying which drive to switch to.

Result  If the value is valid, the system is switched to the new drive.

Restrictions    Be sure to supply a valid drive to this function or the code may crash the 
program.

See also        Get_Current_Drive.

Example This example program sets the current drive to the A drive.

                Program Set_Drive( Output );
                  Uses
                    Drives;
                  Begin
                    Set_Current_Drive( 'A' );
                    WriteLn( 'The current drive is now: A.' );
                  End.

----------------------------------------------------------------------------------------

Set_Filling_Color procedure

From the Draw unit
 
Function        This procedure is used to set the current filling color for the drawing 
system.

Declaration     Set_Filling_Color( Color )

Parameters      Color -  A word value holding the new filling color for the filling subsystem.

Result  The filling color of the filling subsystem is altered.  All new filled or solid 
objects will contain the new color.

Restrictions    None.

See also        Set_Background_Color, Set_Color

Example This example program uses this procedure to set the filling color on the 
screen device then to draw a filled object.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Set_Filling_Color( 9 );
                    Draw_Filled_Ellipse( 100, 100, 50, 100 );
                  End.

----------------------------------------------------------------------------------------

Set_For_Pointer procedure

From the Pointer unit
 
Function        This procedure sets up the pointer for use with a particular video mode.

Declaration     Set_For_Pointer

Parameters      None

Result  Different video modes require different pointer accuracies and the pointer 
driver returns different values depending on the mode.  This procedure 
sets up the system to operate with the correct parameters for the current 
mode.

Restrictions    Be sure to call this procedure after you alter the video mode.

See also        Check_For_Pointer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Integer procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a method that involves selected character toggling.  Pressing the 
up arrow increases the value, pressing the down arrow decreases the 
value.  The right arrow moves to the previous character, the left arrow 
moves to the succeeding character.  Digit keys are also supported.  If it 
exceeds the line, it's wrapped to the next.  F1 invokes help.  The routine 
ends when either Enter or Escape are pressed.

Declaration     Set_Integer( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the integer value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_JoyStick function

From the JoyStick unit
 
Function        This function sets up the adjustment levels for the joystick so the input 
device can be used in your program without too much float.

Declaration     Set_JoyStick

Parameters      None, although the joystick should be in the center position when this 
function is called.

Result  This function returns a Boolean value.  True indicates everything is fine, 
false indicates the joystick wasn't found.  

Restrictions    The JoyStick unit uses the systems built in joystick interface which is 
sometimes lacking on a few of the very early PC compatible machines.

See also        Read_JoyStick

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Long_Integer procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a method that involves selected character toggling.  Pressing the 
up arrow increases the value, pressing the down arrow decreases the 
value.  The right arrow moves to the previous character, the left arrow 
moves to the succeeding character.  Digit keys are also supported.  If it 
exceeds the line, it's wrapped to the next.  F1 invokes help.  The routine 
ends when either Enter or Escape are pressed.

Declaration     Set_Long_Integer( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the long integer type value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Set_Integer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Pixel procedure

From the Draw unit.
 
Function        This variable procedure is used internally by the Draw unit to output the 
individual pixels of a drawing to the screen.

Declaration     Set_Pixel( X, Y, Color )

Parameters      X -  Integer value containing the x coordinate location to plot the point.
                Y -  Integer value containing the y coordinate location to plot the point.
                Color -  Word containing the color to be use at the location for the point.

Result  The screen pixel at the specified location is changed to the new color.

Restrictions    If substituted with another procedure, the result will very.

See also        Get_Pixel, Fill_Line

Example This sample program makes simple use of this procedure to draw a single 
point.

                Program Show_Example( Input, Output );
                  Uses
                    Screen,
                    Draw;
                  Begin
                    Set_Screen_Mode( 4 );
                    Clear_Graphic_Screen;
                    Set_Pixel( 50, 50, Red );
                  End.

----------------------------------------------------------------------------------------

Set_Real procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a method that involves selected character toggling.  Pressing the 
up arrow increases the value, pressing the down arrow decreases the 
value.  The right arrow moves to the previous character, the left arrow 
moves to the succeeding character.  Digit keys are also supported.  If it 
exceeds the line, it's wrapped to the next.  F1 invokes help.  The routine 
ends when either Enter or Escape are pressed.

Declaration     Set_Real( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the real type value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Set_Integer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Screen_Mode procedure

From the Screen unit
 
Function        This procedure allows you to try to set the screen mode to any value you 
like.

Declaration     Set_Screen_Mode( Mode )

Parameters      Mode -  A byte value holding the screen mode you would like to use.

Result  The screen mode change is attempted and verified.  If successful, the 
video system is in the new mode and the settings are adjusted properly.  If 
not, the system will most likely remain in the same mode as before.  The 
result of the operation is returned in Screen_Okay.

Restrictions    None.  Note that you may try any mode possible but that will not 
guarantee it will work.

See also        Get_Screen_Mode

Example This simple program attempts to put the video system into a graphical 
mode.

                Program  Test_Video( Input, Output );
                  Uses
                    Screen;
                  Begin
                    Set_Screen_Mode( 12 );
                    If Screen_Okay
                      then
                        WriteLn( 'Screen operation successful.' );
                  End.

----------------------------------------------------------------------------------------

Set_Short_Integer procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a method that involves selected character toggling.  Pressing the 
up arrow increases the value, pressing the down arrow decreases the 
value.  The right arrow moves to the previous character, the left arrow 
moves to the succeeding character.  Digit keys are also supported.  If it 
exceeds the line, it's wrapped to the next.  F1 invokes help.  The routine 
ends when either Enter or Escape are pressed.

Declaration     Set_Short_Integer( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the short integer value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Set_Integer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Up_Printer procedure

From the PageMaker unit
 
Function        This procedure allows the programmer to set up the PageMaker system 
for any particular printer.

Declaration     Set_Up_Printer( Pica, Elite, Expanded_On, Expanded_Off, 
Compressed_On, Compressed_Off, Doublestrike_On, Doublestrike_Off, 
Italics_On, Italics_Off, Underline_On, Underline_Off, Reverse_On, 
Reverse_Off, Superscript_On, Superscript_Off, Subscript_On, 
Subscript_Off, Heightened_On, Heightened_Off, 
Number_Of_Lines_Per_Page )

Parameters      Pica - A small string with the printer pica control code.
                Elite - A small string with the printer elite control code.
                Expanded_On - A small string with the printer code to turn expanded 
printing on.
                Expanded_Off - A small string with the printer code to turn expanded 
printing off.
                Compressed_On - A small string with the printer code to turn compressed 
printing on.
                Compressed_Off - A small string with the printer code to turn compressed 
printing off.
                Doublestrike_On - A small string with the printer code to turn doublestrike 
printing on.
                Doublestrike_Off - A small string with the printer code to turn doublestrike 
printing off.
                Italics_On - A small string with the printer code to turn italic printing on.
                Italics_Off - A small string with the printer code to turn italic printing off.
                Underline_On - A small string with the printer code to turn underline 
printing on.
                Underline_Off - A small string with the printer code to turn underline 
printing off.
                Reverse_On - A small string with the printer code to turn reverse printing 
on.
                Reverse_Off - A small string with the printer code to turn reverse printing 
off.
                Superscript_On - A small string with the printer code to turn superscript 
printing on.
                Superscript_Off - A small string with the printer code to turn superscript 
printing off.
                Subscript_On - A small string with the printer code to turn subscript 
printing on.
                Subscript_Off - A small string with the printer code to turn subscript 
printing off.
                Heightened_On - A small string with the printer code to turn heightened 
printing on.
                Heightened_Off - A small string with the printer code to turn heightened 
printing off.
                Number_Of_Lines_Per_Page - A byte value indicating to the system the 
number of standard lines per printed page.

Result  All the internal PageMaker codes are altered to reflect the new ones 

Restrictions    Small strings are strings that hold up to 8 characters.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Window_Frame procedure

From the Core unit
 
Function        This procedure sets up the given window frame to one of the predefined 
styles.

Declaration     Set_Window_Frame( Frame, Attribute, Frame_Style )

Parameters      Frame - A variable of Frame_Type that holds the frame data.
                Attribute - A byte defining the frame text attribute.
                Frame_Style - A byte value taking one of the many predefined frame 
styles to define the frame.

Result  Frame is altered to hold the information necessary to create a frame of the 
given style.

Restrictions    None

See also        Define_Frame, Make_Frame, Draw_Window_Frame

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Word procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a method that involves selected character toggling.  Pressing the 
up arrow increases the value, pressing the down arrow decreases the 
value.  The right arrow moves to the previous character, the left arrow 
moves to the succeeding character.  Digit keys are also supported.  If it 
exceeds the line, it's wrapped to the next.  F1 invokes help.  The routine 
ends when either Enter or Escape are pressed.

Declaration     Set_Word( Row, Column, Field )

Parameters      Row - Defines the row the setter line will be on.
                Column - Defines the column the setter starts on.
                Field -  Contains the word value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Set_Integer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Side_Bar_Graph procedure

From the Indicators unit
 
Function        This procedure draws a horizontal bar graph on the screen made up of 
text characters.

Declaration     Side_Bar_Graph( Left, Row, Right, Amount )

Parameters      Left -  Determines the left column of the horizontal bar graph.
                Row - Determines the row the bar graph is drawn on.
                Right -  Determines the right column of the horizontal bar graph.
                Amount - A value from 0 to 100 which describes the graph status.  Easily 
calculated with this formula:  Amount := Int( ( Current_Value / 
Maximum_Value ) * 100 )

Result  Displays a horizontal bar graph on the screen 

Restrictions    Works best in text mode.  Make sure there is enough screen window area  
for the graph to fit.

See also        Tall_Bar_Graph

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Sink function

From the Multiple unit.
 
Function        This function attempts to move the given window to a lower available 
status if it's possible.

Declaration     Sink( Window_Handle )

Parameters      Window_Handle - A variable of type byte that refers to a window of the 
Multiple windowing system.

Result  Returns true if the window can be moved to a lower status, false if it can 
not.  If the window is moved, the new handle number is passed back 
through the Window_Handle variable and the screen is updated.

Restrictions    Make sure you provide a valid window handle to this system routine.

See also        Float

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Solve_Matrix procedure

From the Matrices unit
 
Function        This procedure attempts to solve the given matrix.  Solving the matrix 
means to solve a problem with X amount of variables and unknowns.

Declaration     Solve_Matrix( Matrix )

Parameters      Matrix -  A variable pointer to the matrix with which to solve.

Result  The first row of the matrix is replaced with the solutions.  Make sure to use 
a copy if you wish to save the original matrix. 

Restrictions    Make sure to supply a valid initialized matrix of the program will be halted.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Spread_Out_String procedure

From the String_Utilities unit
 
Function        This procedure spreads out a data string evenly to fit the given size 
requirements.

Declaration     Spread_Out_String( Data, Size )

Parameters      Data - A variable string to which the operation is to be performed.
                Size - A byte value indicating the length the string is supposed to be 
expanded to.

Result  Data is altered with additional internal spaces to fit the specified size. 

Restrictions    Make sure the string has no null characters. (#0)

See also        Expand

Example { See unit chapter for example. }

---------------------------------------------------------------------------------------

Stack_Empty function

From the Structures unit
 
Function        This function returns the status of the Stack

Declaration     Stack_Empty( Stack ) 

Parameters      Stack -  A variable of Stack_Type that holds the particular stack with 
which to perform the operation.

Result  Returns a Boolean value; true if the stack is empty, false if it isn't.

Restrictions    Make sure the stack was initialized prior to this.

See also        Examine_Stack

Example { Please refer to unit chapter. }

----------------------------------------------------------------------------------------

Start_Music procedure

From the Music unit
 
Function        This procedure begins playing the music in the music queue.  The Music 
always begins where it leaves off.

Declaration     Start_Music

Parameters      None

Result  Beautiful music and sounds start coming from the computer's internal 
speaker.

Restrictions    Music queue must have some notes or sounds in it for it to play anything.

See also        Stop_Music,  Clear_Music

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Start_Timer procedure

From the Time unit
 
Function        This function takes the time at the moment it's called and stores it for a 
later comparison.

Declaration     Start_Timer

Parameters      None

Result  A noting of the time is performed

Restrictions    None

See also        End_Timer

Example Heres an example program that times a simple WriteLn procedure.

                Program Test_Time( Input, Output );
                  Uses
                    Time;
                  Var
                    Result: Real;
                  Begin
                    Start_Timer;
                    WriteLn( 'Hello out there?' );
                    Result := End_Timer;
                    WriteLn( 'Procedure took ', Result, ' seconds.' );
                  End.

----------------------------------------------------------------------------------------

Status procedure

From the KeyBoard unit
 
Function        This procedure sets the unit flags to correspond to current status of the 
keyboard toggle keys.  ( Num lock, Caps lock, Scroll lock, Insert)

Declaration     Status

Parameters      None

Result  Special Boolean flags of the KeyBoard unit are altered to reflect the 
current system status; Key_Number_Lock, Key_Scroll_Lock, 
Key_Insert_Lock, Key_Capital_Lock. 

Restrictions    None.

See also        Peek

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Stop_Music procedure

From the Music unit
 
Function        This procedure stops the music in the music queue from playing.

Declaration     Stop_Music

Parameters      None

Result  The music coming from the music system ceases until Start_Music is 
called again by your program. 

Restrictions    Music should be playing when this procedure is called.

See also        Start_Music, Clear_Music

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Subtract function

From the Fraction unit
 
Function        This function subtracts the second given fraction from the first and returns 
the result in lowest terms.

Declaration     Subtract( Number_1, Number_2 )

Parameters      Number_1 is the first fraction from which the second is to be subtracted.
                Number_2 is the second fraction which is to be subtracted from the first.

Result  The function returns a fraction containing the value of the second number 
subtracted from the first.

Restrictions    A small possibility of overflow may occur.

See also        Add, Multiply, Divide.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Subtract_Integer_String function

From the String_Utilities unit.
 
Function        This function takes a second numerical integer string and subtracts it from 
a first numerical integer string.

Declaration     Subtract_Integer_String( Number1, Number2 )

Parameters      Number1 - A numerical string containing a number to have the second 
numerical string subtracted from.
                Number2 -  A numerical string containing a number to be subtracted from 
the first numerical string.

Result  Returns a string containing the difference of the two numerical strings.

Restrictions    Make sure to supply two numerical strings.  Example "12345".  Take care 
that the result does not generate an overflow.

See also        Add_Integer_String, Multiply_Integer_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Subtract_Matrices function

From the Matrices unit
 
Function        This function attempts to subtract the second given matrix from the first 
and return the result.

Declaration     Subtract_Matrices( Operand1, Operand2, Result )

Parameters      Operand1 -  A variable pointer to the first matrix from which the second 
one is to be subtracted from.
                Operand2 -  A variable pointer to the second matrix to be subtracted from 
the first.
                Result -  A variable pointer to the matrix into which the result will be 
placed.

Result  Returns a Boolean value as to the success of the operation.  If the 
operation was successful, the result will be in the Result matrix. 

Restrictions    Note that the operation will halt the program if any of the matrices 
supplied are not initialized.  Also the function returns true if the matrix 
sizes do not match.

See also        Add_Matrices, Multiply_Matrices

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Subtract_Real_String function

From the String_Utilities unit.
 
Function        This function takes two numerical real strings and subtracts the second 
from the first.

Declaration     Subtract_Real_String( Number1, Number2 )

Parameters      Number1 - A numerical string containing the number from which the 
second numerical string is to be subtracted.
                Number2 -  A numerical string containing the number to subtract from the 
first numerical string.

Result  Returns the difference of the two real numerical string in the form of a 
string.

Restrictions    Make sure to supply two numerical real strings.  Example "12345.001"  
Also note that the strings are not to be in scientific notation and that if they 
are too large, they may cause a numeric overflow.

See also        Add_Real_String, Multiply_Real_String

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Super_Find function

From the Search unit
 
Function        This function searches across the entire system for the specified file, 
returning the path name or fully qualified file name.

Declaration     Super_Find( File_Name, Return_Path_Only )

Parameters      File_Name - A string containing the name of the file to search for.
                Return_Path_Only - A Boolean value indication how the result is to be 
returned.  True only returns the path, while False returns the path and the 
name.

Result  Returns a string containing the location of the file if it's found, otherwise it 
returns the nul string.

Restrictions Question marks act as wild cards in the file name.  Disks that aren't 
mounted are skipped.

See also        Find_File, Find_Location, Super_Find_With_Date

Example {Please see unit chapter. }

----------------------------------------------------------------------------------------

Super_Find_With_Date function

From the Search unit
 
Function        This function searches across the entire system for the specified file with 
the given date, returning the path name or fully qualified file name.

Declaration     Super_Find_With_Date( File_Name, Month, Day, Year, 
Return_Path_Only )

Parameters      File_Name - A string containing the name of the file to search for.
                Month - A byte value containing the code for the month of the year. 
(Jan=1, Feb=2,Etc)
                Day - A byte value containing the day of the month.
                Year - A word value containing the year.  Example: 1993.
                Return_Path_Only - A Boolean value indication how the result is to be 
returned.  True only returns the path, while False returns the path and the 
name.

Result  Returns a string containing the location of the file if it's found, otherwise it 
returns the nul string.

Restrictions Question marks act as wild cards in the file string.  Disks that aren't 
mounted are skipped.

See also        Find_File, Find_Location, Super_Find

Example {Please see unit chapter. }

----------------------------------------------------------------------------------------

Swap procedure

From the FillCode unit
 
Function        This procedure merely swaps two integers with each other.

Declaration     Swap( Value1, Value2 )

Parameters      Value1 - A variable integer who's value is to be switched with the other.
                Value2 - A variable integer who's value is to be switched with the other.

Result  Value1 will have the previous value of Value2 and Value2 will have the 
previous value of Value1.

Restrictions    None.

See also        Switch

Example This procedure is so simple an example is unnecessary, but here goes.

                Program Show_Swap( Input, Output );
                  Uses
                    Draw, FillCode;
                  Var
                    Value1,
                    Value2: Integer;
                  Begin
                    Value1 := 1;
                    Value2 := 27;
                    Swap( Value1, Value2 );
                    WriteLn( 'Value1 is now ', Value1, ', and Value2 
is now ', Value2, '.' );
                  End.

----------------------------------------------------------------------------------------

Switch_Active_Window procedure

From the Multiple unit
 
Function        This function simply reassigns the default output file to the given Multiple 
screen window.

Declaration     Switch_Active_Window( New_Window_Handle )

Parameters      New_Window_Handle -  The byte value window handle to which the 
default output file is to be assigned.

Result  All output to the standard output file now goes to the specified virtual 
window.  (Standard output file is accessed by using a Write or WriteLn 
without a file variable as a parameter)

Restrictions    Make sure to supply a valid window handle.

See also        Assign_File_To_Window

Example { See unit chapter for example. }

 T

----------------------------------------------------------------------------------------

Tab function

From the PageMaker unit
 
Function        This function returns a string of spaces with a length equal to the given 
value.

Declaration     Tab( Amount )

Parameters      Amount - A byte value indicating how many spaces to put in the string.

Result  Returns a string of spaces, Amount characters long 

Restrictions    None

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Tall_Bar_Graph procedure

From the Indicators unit
 
Function        This procedure draws a vertical bar graph on the screen made up of text 
characters.

Declaration     Tall_Bar_Graph( Top, Bottom, Column, Amount )

Parameters      Top - Defines the top row of the vertical bar graph.
                Bottom -  Defines the bottom row of the vertical bar graph.
                Column -  Defines the column of the vertical bar graph.
                Amount -  A value from 0 to 100 which describes the graph status.

Result  Draws a vertical block graph on the screen. 

Restrictions Works best in text mode.  Make sure there is enough screen window area 
for the graph to fit.

See also        Side_Bar_Graph

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Toggle_Byte procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a toggling method.  Pressing the up or right arrow increases the 
value, pressing the down or left arrow decreases the value.  Holding down 
the key for longer periods increases the change rate. Values that exceed 
the line are wrapped to the next.  F1 invokes help.  The routine ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Toggle_Byte( Row, Column, Field )

Parameters      Row - Defines the row the toggler line will be on.
                Column - Defines the column the toggler starts on.
                Field -  Contains the byte value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Toggle_Integer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Toggle_Integer procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a toggling method.  Pressing the up or right arrow increases the 
value, pressing the down or left arrow decreases the value.  Holding down 
the key for longer periods increases the change rate. Values that exceed 
the line are wrapped to the next.  F1 invokes help.  The routine ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Toggle_Integer( Row, Column, Field )

Parameters      Row - Defines the row the toggler line will be on.
                Column - Defines the column the toggler starts on.
                Field -  Contains the integer value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Toggle_Byte

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Toggle_Long_Integer procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a toggling method.  Pressing the up or right arrow increases the 
value, pressing the down or left arrow decreases the value.  Holding down 
the key for longer periods increases the change rate. Values that exceed 
the line are wrapped to the next.  F1 invokes help.  The routine ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Toggle_Long_Integer( Row, Column, Field )

Parameters      Row - Defines the row the toggler line will be on.
                Column - Defines the column the toggler starts on.
                Field -  Contains the long integer type value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Toggle_Integer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Toggle_Short_Integer procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a toggling method.  Pressing the up or right arrow increases the 
value, pressing the down or left arrow decreases the value.  Holding down 
the key for longer periods increases the change rate. Values that exceed 
the line are wrapped to the next.  F1 invokes help.  The routine ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Toggle_Short_Integer( Row, Column, Field )

Parameters      Row - Defines the row the toggler line will be on.
                Column - Defines the column the toggler starts on.
                Field -  Contains the short integer value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Toggle_Integer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Toggle_Word procedure

From the Editor unit

Function        This procedure allows your user to alter the given variable passed to it 
through a toggling method.  Pressing the up or right arrow increases the 
value, pressing the down or left arrow decreases the value.  Holding down 
the key for longer periods increases the change rate. Values that exceed 
the line are wrapped to the next.  F1 invokes help.  The routine ends when 
Up, Down, Enter or Escape are pressed.

Declaration     Toggle_Word( Row, Column, Field )

Parameters      Row - Defines the row the toggler line will be on.
                Column - Defines the column the toggler starts on.
                Field -  Contains the word value which is to be altered.

Result  The value passed in Field is altered unless Escape is pressed. 

Restrictions    Works best in text mode.

See also        Toggle_Integer

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Transpose_Matrix function

From the Matrices unit
 
Function        This function attempts to transpose the given matrix.  That is to turn it on 
it's side, so to speak.

Declaration     Transpose_Matrix( Operand, Result )

Parameters      Operand -  A variable pointer to the original matrix.
                Result -  A variable pointer to the matrix in which the result is to be placed.

Result  This function returns true if the operation was successful and the result is 
returned in Result.  Otherwise, it returns the value of false. 

Restrictions    Make sure that both matrix pointers have been initialized or the function 
will halt the program.

See also        Copy_Matrix

Example { See unit chapter for example. }

 U

----------------------------------------------------------------------------------------

Update_In_Tree function

From the BTree unit
 
Function        This function finds the identical given record in the BTree and replaces it 
with the given new replacement record.

Declaration     Update_In_Tree( Tree, Old_Record, New_Record )

Parameters      Tree -  Variable of Tree_Type that holds an open BTree.
                Old_Record - Record that holds exact copy of the record to be replaced.
                New_Record -  Record that holds the new record to replace the old one.

Result  This function returns true if the record was found and correctly replaced.  
If it fails, it returns false.

Restrictions    The Tree structure must be opened, the old record must exist for it to work.

See also        Insert_In_Tree, Delete_From_Tree

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Update_In_Tree function

From the Structures unit
 
Function        This function replaces the old record in the tree structure with the new 
record.

Declaration     Update_In_Tree( Tree, Old_Data, New_Data )

Parameters      Tree - A variable of Tree_Type used to manage the binary tree structure.
                Old_Data - An untyped variable holding a copy of the old record to be 
removed from the tree.
                New_Data - An untyped variable holding a copy of the new record that's to 
replace the record of Old_Data.

Result  If it's successful, the old information is removed and replaced with the new 
information.

Restrictions    This function works almost like Delete_From_Tree and Insert_In_Tree put 
together.

See also        Delete_From_Tree, Insert_In_Tree

Example { See unit chapter for example. }

 V

----------------------------------------------------------------------------------------

Valid_Block_Operation function

From the TextEdit unit
 
Function        This function tests the validity of the block markers in the text.

Declaration     Valid_Block_Operation( Start, Finish, Position )

Parameters      Start - A value of Point_Type that indicates the beginning of the block in 
the text structure.
                Finish - A value of Point_Type that indicates the ending of the block in the 
text structure.
                Position - A value of Point_Type that indicates the cursor location in the 
text structure.

Result  Returns true if the values appear valid for certain block operations.  
Otherwise it returns false. 

Restrictions    None

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Browse procedure

From the Windows unit
 
Function        This procedure allows the user the opportunity to browse around a virtual 
window on the top of the window stack.

Declaration     VW_Browse

Parameters      None

Result  If the virtual window exists, the user is given the opportunity to browse 
around it using the standard movement keys.

Restrictions    None noted

See also        The Browse counterpart from the Multiple unit.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_ClrEOL procedure

From the Windows unit
 
Function        This procedure clears all the text from the cursor's current column in the 
virtual window to the end of the current row.  The cursor remains in the 
same place and spaces replace the rest of the rest of the characters.

Declaration     VW_ClrEOL

Parameters      None.

Result  The virtual window is altered and the screen updated.

Restrictions    Be sure the window is virtual.

See also        Turbo Pascal's (R) ClrEOL procedure

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_ClrScr procedure

From the Windows unit
 
Function        This procedure clears all the text from the virtual window and moves the 
cursor to the top left hand corner.  All characters are replaced with blanks.

Declaration     VW_ClrScr

Parameters      None.

Result  The virtual window is altered and the screen updated. 

Restrictions    Be sure the virtual window exists.

See also        Turbo Pascal's (R) ClrScr procedure

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Create function  (Create virtual window)

From the Windows unit
 
Function        This function creates a virtual window on the screen.  All data written to 
that window his handled through special routines and a text file.

Declaration     VW_Create( Row_Length, Column_Length )

Parameters      Row_Length - A byte value indicating the amount of rows to give the 
virtual window.
                Column _Length - A byte value describing the amount of text columns to 
give the virtual window.

Result  Returns true if a virtual window was created inside the current window, 
otherwise it returns false. 

Restrictions    Again, this works best in text mode.  The virtual window is defined only for 
the topmost window.

See also        Close_Window, VW_Destroy

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Destroy procedure (Destroy virtual window)

From the Windows unit

Function        This procedure destroys the current virtual window on the stack, leaving 
only the simple window.

Declaration     VW_Destroy

Parameters      None

Result  The virtual window associated with the topmost window is destroyed.

Restrictions    None

See also        VW_Create

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_GotoXY procedure

From the Windows unit
 
Function        This procedure allows you to move the cursor within the virtual window to 
a new location.  

Declaration     VW_GotoXY( Column, Row )

Parameters      Column -  A byte value taking the column to which the cursor is to be 
moved to.
                Row -  A byte value holding the row to which the cursor is to be moved.

Result  The cursor in the virtual window is moved to the new location if possible.

Restrictions    Be sure the virtual window exists.

See also        Turbo Pascal's (R) GotoXY procedure

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Move_View_Down procedure

From the Windows unit
 
Function        This procedure allows the virtual window view to be moved one line 
downward.

Declaration     VW_Move_View_Down

Parameters      None

Result  The data in the virtual window is scrolled one line down and another line 
of text appears at the top.

Restrictions    Be sure the virtual window exists.

See also        VW_Move_View_Up, VW_Move_View_Left, VW_Move_View_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Move_View_Left procedure

From the Windows unit
 
Function        This procedure allows the view of the virtual window to be scrolled one 
column leftward.

Declaration     VW_Move_View_Left

Parameters      None

Result  The data in the virtual window is scrolled one column to the left and 
another column of text appears at the right

Restrictions    Be sure the virtual window exists.

See also        VW_Move_View_Up, VW_Move_View_Down, VW_Move_View_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Move_View_Right procedure

From the Windows unit
 
Function        This procedure allows the view of the virtual window to be scrolled one 
column rightward.

Declaration     VW_Move_View_Right

Parameters      None

Result  The data in the virtual window is scrolled one column to the right and 
another column of text appears at the left

Restrictions    Be sure the virtual window exists.

See also        VW_Move_View_Up, VW_Move_View_Down, VW_Move_View_Left

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Move_View_Up procedure

From the Windows unit
 
Function        This procedure allows the view of the virtual window to be scrolled one 
line upward.

Declaration     VW_Move_View_Up

Parameters      None

Result  The data in the virtual window is scrolled one line up and another line of 
text appears at the bottom.

Restrictions    Be sure the virtual window exists.

See also        VW_Move_View_Down, VW_Move_View_Left, VW_Move_View_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Scroll_Down procedure

From the Windows unit
 
Function        This procedure allows the virtual window to be scrolled one line downward.

Declaration     VW_Scroll_Down

Parameters      None

Result  The data in the virtual window is scrolled one line down and a new line 
appears at the top.

Restrictions    Be sure the virtual window exists.

See also        VW_Scroll_Up, VW_Scroll_Left, VW_Scroll_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Scroll_Left procedure

From the Windows unit
 
Function        This procedure allows the virtual window to be scrolled one column 
leftward.

Declaration     VW_Scroll_Left

Parameters      None

Result  The data in the virtual window is scrolled one column to the left and a new 
column appears at the right

Restrictions    Be sure the virtual window exists.

See also        VW_Scroll_Up, VW_Scroll_Down, VW_Scroll_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Scroll_Right procedure

From the Windows unit
 
Function        This procedure allows the virtual window to be scrolled one column 
rightward.

Declaration     VW_Scroll_Right

Parameters      None

Result  The data in the virtual window is scrolled one column to the right and a 
new column appears at the left

Restrictions    Be sure the virtual window exists.

See also        VW_Scroll_Up, VW_Scroll_Down, VW_Scroll_Left

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_Scroll_Up procedure

From the Windows unit
 
Function        This procedure allows the virtual window to be scrolled one line upward.

Declaration     VW_Scroll_Up

Parameters      None

Result  The data in the virtual window is scrolled one line up and a new line 
appears at the bottom.

Restrictions    Be sure the virtual window exists.

See also        VW_Scroll_Down, VW_Scroll_Left, VW_Scroll_Right

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_WhereX function

From the Windows unit
 
Function        This function returns the column that the cursor is on in the virtual window.

Declaration     VW_WhereX

Parameters      None

Result  Returns a byte value for the column within the virtual window where the 
cursor sits. 

Restrictions    Be sure the virtual window exists.

See also        Turbo Pascal's (R) WhereX function

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

VW_WhereY function

From the Windows unit
 
Function        This function returns the current cursor row in the virtual window.

Declaration     VW_WhereY

Parameters      None

Result  Returns a byte value indicating the current cursor row of the virtual 
window.

Restrictions    Be sure the virtual window exists.

See also        Turbo Pascal's (R) WhereY function

Example { See unit chapter for example. }

 W

----------------------------------------------------------------------------------------

WhereX function

From the Multiple unit
 
Function        This function returns the column that the cursor is on in the specified 
virtual window.

Declaration     WhereX( Window_Handle )

Parameters      Window_Handle -  A byte value indicating the virtual window with which to 
perform the check.

Result  Returns a byte value for the column within the virtual window where the 
cursor sits. 

Restrictions    Be sure to supply only a valid window handle.

See also        GotoXY, WhereY

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

WhereY function

From the Multiple unit
 
Function        This function returns the current cursor row in the specified virtual window.

Declaration     WhereY( Window_Handle )

Parameters      Window_Handle -  A byte value referring to the virtual window with which 
to return the current cursor row.

Result  Returns a byte value indicating the current cursor row of the specified 
virtual window.

Restrictions    Take care that you supply a valid window handle.

See also        WhereX, GotoXY

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Window_Width function

From the Core unit
 
Function        This function returns the width of the current screen window in CRT.

Declaration     Window_Width

Parameters      None.

Result  Returns a byte value holding the width of the current CRT window.

Restrictions    None.

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Word_Parser_PrintOut procedure

From the Words unit
 
Function        This procedure takes a string of data characters and breaks it down into 
several lines of word wrapped output depending on the width.

Declaration     Word_Parser_PrintOut( Data, Width )

Parameters      Data - A string value containing the words to output to through the system.
                Width  - A byte value containing the width of the output lines.

Result  Several lines of text may be output by this procedure depending on the 
given width and the contents of the given strings.

Restrictions    Be sure that your words are properly separated.  Be sure your width can 
support the size of your words.

See also        The PrintOut variable procedure from the Words unit.

Example Here is an example program that uses the word parser system

                Program Test( Input, Output );
                  Uses
                    Words;
                  Begin
                    Word_Parser_PrintOut( 'This is a example of '+
                    'test output that the system will print out in '+
                    'a nice format.', 10 );
                  End.

----------------------------------------------------------------------------------------

Write_Complete_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit

Declaration     Write_Complete_Default

Parameters      None

Result  An operation complete message is displayed 

Restrictions    None

See also        The Write_Complete variable procedure in TextEdit

----------------------------------------------------------------------------------------

Write_Data procedure

From the Core unit
 
Function        This procedure writes characters and attributes directly to the screen.

Declaration     Write_Data( Row, Column, Data, Amount )

Parameters      Row - The row location where the data is to be put.
                Column -  The column location where the data is to be put.
                Data - An untyped variable which holds the data in character/attribute 
formation.
                Amount - A word value holding the amount of character/attribute values to 
be written.

Result  The screen is altered 

Restrictions    Get_The_Mode must precede this routine.

See also        Get_The_Mode, Read_Data

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Write_Error procedure

From the Core unit
 
Function        This procedure is a simple procedure which I often use to handle errors.  
If the value passed to it is not zero, it writes an error message using the 
included sentence and halts the program.  Otherwise it does nothing.

Declaration     Write_Error( Error_Code, Sentence );

Parameters      Error_Code - A word value defining the error code.
                Sentence - A string value displayed before the program halts if an error 
occurred. 

Result  May cause the program to halt depending on Error_Code.

Restrictions    None

See also        Halt?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Write_Error_Default procedure

From the TextEditor unit
 
Function        This is a default procedure called by TextEdit

Declaration     Write_Error_Default( Code )

Parameters      Code - A word value indicating the error generated to call the procedure.

Result  A type of error message is displayed and perhaps some action is taken.

Restrictions    None.

See also        The Write_Error variable procedure in TextEdit

----------------------------------------------------------------------------------------

Write_Out_Matrix procedure

From the Matrices unit
 
Function        This procedure is designed to write out the data from the given matrix to 
the given text file for storage.

Declaration     Write_Out_Matrix( Output_File, Matrix )

Parameters      Output_File - An opened file to which the values in the matrix is to be 
written.
                Matrix -  A variable pointer to the matrix for output.  Note that the output to 
the text file is a series of numbers in text formation from the given matrix.

Result  The procedure writes out the given matrix to the output file as a series of 
numbers, each row on a different line.  The file is neither opened nor 
closed by the procedure.

Restrictions    A initialized matrix is sure to cause the program to be halted, the same 
with supplying an unopened file

See also        Read_In_Matrix

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Write_Out_Number function

From the String_Utilities unit
 
Function        This function takes a number, any integer number, and returns a readable 
string.

Declaration     Write_Out_Number( Number )

Parameters      Number - An integer value containing a number to write out.  Note it's best 
if the number is positive.

Result  The function returns a string that contains a readable evaluation of the 
given integer.

Restrictions    Certain large numbers may possibly exceed the length of the string.

See also        Get_Time, Get_Date

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Write_Search_Failure_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit

Declaration     Write_Search_Failure_Default

Parameters      None

Result  A search failure message is displayed.

Restrictions    None

See also        The Write_Search_Failure variable procedure in TextEdit

----------------------------------------------------------------------------------------

Write_Table procedure

From the Table unit
 
Function        This procedure is designed to write a table to a standard text file.

Declaration     Write_Table( OutFile, Table )

Parameters      OutFile - An opened text file through which the table is to be written.
                Table - A variable of Table_Type where the table is stored.

Result  The data in the Table variable is written in OutFile in standard notation.

Restrictions    Make sure that OutFile is opened and that Table is valid.

See also        Read_Table, Print_Table.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Write_Text_File function

From the TextEdit unit
 
Function        This function attempts to save the given text into a text file on the system.

Declaration     Write_Text_File( Filename, All )

Parameters      Filename - A string containing the name of the file to write the text to.
                All - A variable of All_Type holding the text data structure to be copied to 
the file system.

Result  Returns true if the text was completely written to the file system.  
Otherwise, it will return false.

Restrictions    Be sure to supply a valid filename and remember if it already exists, it will 
be overwritten.  Be sure that All has been previously initialized.

See also        Read_Text_File

Example {   See unit chapter for example. }

----------------------------------------------------------------------------------------

Write_Wait_Default procedure

From the TextEdit unit
 
Function        This is a default procedure called by TextEdit

Declaration     Write_Wait_Default

Parameters      None

Result  A type of wait message is displayed.

Restrictions    None

See also        The Write_Wait variable procedure in TextEdit


Part II
Beta Routine Reference Guide 


----------------------------------------------------------------------------------------

Add_ Interface procedure

From the TextExtra unit
 
Function        This procedure is called after a window is opened on the screen so that 
certain pointer command intercept routines are set to operate and the 
screen is updated with command buttons around the frame of the current 
window.

Declaration     Add_Interface

Parameters      None

Result  The screen is altered with new buttons and scroll bars around the current 
window frame.  Clicking the pointer on one of these buttons generates an 
appropriate keystroke alternative.

Restrictions    Be sure that you know what you're doing with this function.  Also make 
sure that you call this procedure any time after a window is altered.

See also        The WindExtra unit

----------------------------------------------------------------------------------------

Assign_ANSI procedure

From the ANSI_CRT unit
 
Function        This procedure assigns a text file to the ANSI directed CRT.  This 
procedure works identically to Turbo Pascal's (R) AssignCRT procedure.

Declaration     Assign_ANSI( The_File );

Parameters      The_File is a variable text file that is assigned to output it's results to the 
ANSI monitor screen.

Result  Assigns the given file to write it's output to the ANSI directed monitor 
screen.

Restrictions    None

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

ClrEOL procedure (Clear to end of line)

From the ANSI_CRT unit
 
Function        This procedure clears all the text from the cursor's current column to the 
end of the current row.  The cursor remains in place and the characters 
are replaced by space characters with the current text attributes.

Declaration     ClrEOL

Parameters      None.

Result  The monitor screen is altered. 

Restrictions    Works only in text mode.

See also        ClrScr, Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

ClrScr procedure (Clear screen) 

From the ANSI_CRT unit
 
Function        This procedure clears all the text from the entire active window and moves 
the cursor to the top left hand corner.  All characters are replaced with 
space characters of the current text attribute.

Declaration     ClrScr

Parameters      None.

Result  The monitor screen is altered. 

Restrictions    Works only in text mode.

See also        ClrEOL, Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

DelLine procedure (Delete line)

From the ANSI_CRT unit
 
Function        This procedure deletes the current cursor text line from the screen, 
moving all the succeeding lines upwards.  A new blank line is added at the 
bottom of the window.

Declaration     DelLine

Parameters      None.

Result  The monitor screen is altered 

Restrictions    Works only in text mode.

See also        InsLine, Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Draw_Frame1 procedure

From the Frames unit
 
Function        This procedure draws a single curly frame on the screen with the ends 
extending outwards.

Declaration     Draw_Frame1( Left, Top, Right, Bottom, X_Size, Y_Size )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Size -  Byte value defining the width of the frame on the sides.
                Y_Size -  Byte value defining the height of the frame on the top and 
bottom.

Result  A curly frame is drawn on the screen at the given coordinates 

Restrictions    Be sure that the frame is big enough to look right.

See also        Draw_Frame2, Draw_Frame3, Draw_Frame4

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame1( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame2 procedure

From the Frames unit
 
Function        This procedure draws a single curly frame on the screen with the ends 
extending inwards.

Declaration     Draw_Frame2( Left, Top, Right, Bottom, X_Size, Y_Size )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Size -  Byte value defining the width of the frame on the sides.
                Y_Size -  Byte value defining the height of the frame on the top and 
bottom.

Result  A curly frame is drawn on the screen at the given coordinates 

Restrictions    Be sure that the frame is big enough to look right.

See also        Draw_Frame1, Draw_Frame3, Draw_Frame4

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame2( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame3 procedure

From the Frames unit
 
Function        This procedure draws a double curly frame on the screen with the ends 
extending outwards.

Declaration     Draw_Frame3( Left, Top, Right, Bottom, X_Size, Y_Size )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Size -  Byte value defining the width of the frame on the sides.
                Y_Size -  Byte value defining the height of the frame on the top and 
bottom.

Result  A curly frame is drawn on the screen at the given coordinates 

Restrictions    Be sure that the frame is big enough to look right.

See also        Draw_Frame1, Draw_Frame2, Draw_Frame4

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame3( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame4 procedure

From the Frames unit
 
Function        This procedure draws a double curly frame on the screen with the ends 
extending inwards.

Declaration     Draw_Frame4( Left, Top, Right, Bottom, X_Size, Y_Size )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Size -  Byte value defining the width of the frame on the sides.
                Y_Size -  Byte value defining the height of the frame on the top and 
bottom.

Result  A curly frame is drawn on the screen at the given coordinates 

Restrictions    Be sure that the frame is big enough to look right.

See also        Draw_Frame1, Draw_Frame2, Draw_Frame3

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame4( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame5 procedure

From the Frames unit
 
Function        Draws a frame of loops curling inwards on the graphic screen .

Declaration     Draw_Frame5( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing of the loops along the height 
of the frame.
                Y_Space -  Byte value defining the spacing of the loops along the width of 
the frame.

Result  Draws a frame on the graphic screen with loops looping inwards. 

Restrictions    Be sure the frame is large enough to look good.  Also note that some less 
than right frames may have disconnected loops.

See also        Draw_Frame6

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame5( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame6 procedure

From the Frames unit
 
Function        Draws a frame of loops curling outwards on the graphic screen .

Declaration     Draw_Frame6( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing of the loops along the height 
of the frame.
                Y_Space -  Byte value defining the spacing of the loops along the width of 
the frame.

Result  Draws a frame on the graphic screen with loops looping outwards. 

Restrictions    Be sure the frame is large enough to look good.  Also note that some less 
than right frames may have disconnected loops.

See also        Draw_Frame5

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame6( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame7 procedure

From the Frames unit
 
Function        This procedure draws a simple line frame and rounds the corners with a 
cornering line grid.

Declaration     Draw_Frame7( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen with rounded corners made up of 
a cornering line grid.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame8, Draw_Frame9

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame7( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame8 procedure

From the Frames unit
 
Function        This procedure draws a simple line frame with a line grid point tipping the 
corners.

Declaration     Draw_Frame8( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen with pointed corners made up of a 
line grid.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame7, Draw_Frame9

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame8( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame9 procedure

From the Frames unit
 
Function        This procedure draws a simple line frame and inserts a point of lines on 
the left and right sides.

Declaration     Draw_Frame9( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen with two points along the vertical 
sides.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame7, Draw_Frame8, Draw_Frame10

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame9( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

---------------------------------------------------------------------------------------

Draw_Frame10 procedure

From the Frames unit
 
Function        This procedure draws a frame with a point of lines along the top and 
bottom of the frame.

Declaration     Draw_Frame10( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen with a single grid point along the 
top and bottom sides of the frame.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame7, Draw_Frame8, Draw_Frame9, Draw_Frame11

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame10( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame11 procedure

From the Frames unit
 
Function        This procedure draws a frame with two grid points along the top and 
bototm sides..

Declaration     Draw_Frame11( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen with two equally spaced grid 
points along the top and bottom edges..

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame9, Draw_Frame10

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame11( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame12 procedure

From the Frames unit
 
Function        This procedure draws a double frame with boxed corners.

Declaration     Draw_Frame12( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen with boxes. 

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame13, Draw_Frame14

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame12( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame13 procedure

From the Frames unit
 
Function        This procedure draws a double frame with crisscrossed lines between the 
inner and outer sides.

Declaration     Draw_Frame13( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A double frame is drawn on the graphic screen with lines between the 
sides.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame12, Draw_Frame14

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame13( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame14 procedure

From the Frames unit
 
Function        This procedure draws a double frame with crisscrossing curves between 
the inner and outer sides. 

Declaration     Draw_Frame14( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A double frame is drawn on the graphic screen with overlapping curves 
along the sides.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame12, Draw_Frame13

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame14( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame15 procedure

From the Frames unit
 
Function        This procedure draws a frame of overlapping arcs.

Declaration     Draw_Frame15( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen using overlapping arcs.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame16

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame15( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame16 procedure

From the Frames unit
 
Function        This procedure draws a frame on the screen with inward arcs.

Declaration     Draw_Frame16( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen with inward arcs.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame15

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame16( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame17 procedure

From the Frames unit
 
Function        This procedure draws a rounded box frame.

Declaration     Draw_Frame17( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen as a rounded box.  A box with 
rounded corners, that is.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame18

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame17( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame18 procedure

From the Frames unit
 
Function        This procedure draws a inward rounded box frame.

Declaration     Draw_Frame18( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen which is a box with corners that 
curve inward.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame17

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame18( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame19 procedure

From the Frames unit
 
Function        This procedure draws a frame that looks like a scroll.  The edges point 
downwards.

Declaration     Draw_Frame19( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen with edges that look like a scroll of 
parchment.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame20

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame19( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

Draw_Frame20 procedure

From the Frames unit
 
Function        This procedure draws a frame that looks like a scroll of parchment.  With 
the edges pointed upwards.

Declaration     Draw_Frame20( Left, Top, Right, Bottom, X_Space, Y_Space )

Parameters      Left -  Integer value defining the left side of the frame on the screen.
                Top -  Integer value defining the top of the frame on the screen.
                Right -  Integer value defining the right side of the frame on the screen.
                Bottom -  Integer value defining the bottom of the frame on the screen.
                X_Space -  Byte value defining the spacing along the width of the frame.
                Y_Space -  Byte value defining the spacing along the height of the frame.

Result  A frame is drawn on the graphic screen with upward edges.

Restrictions    Be sure the frame is large enough to look good on the screen.

See also        Draw_Frame19

Example 

                Program Frame( Input, Output );
                  Uses
                    Screen,
                    Frames;
                  Var
                    Old_Mode: Byte;
                  Begin
                    Get_Screen_Mode( Old_Mode );   { Preserve current screen mode }
                    Set_Screen_Mode( 6 );          { Switch to graphic mode }
                    Set_Frame_Color( 1 );          { Set the drawing color }
                    Draw_Frame20( 0, 0, GetMaxX, GetMaxY, 20, 10 ); { Draw the frame. }
                    ReadLn;                        { Wait for user input }
                    Set_Screen_Mode( Old_Mode );   { Restore to origional mode }
                  End.

----------------------------------------------------------------------------------------

GotoXY procedure

From the ANSI_CRT unit
 
Function        This procedure positions the cursor relative to the current window.

Declaration     GotoXY( Column, Row )

Parameters      Column - Or X defines the column to move the cursor to.
                Row - Or Y defines the row to move the cursor to.

Result  Moves the cursor to a new location on the monitor screen. 

Restrictions    Ignores call when parameters are invalid or outside current window.

See also        WhereX, WhereY, Window.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

HighVideo procedure

From the ANSI_CRT unit
 
Function        This procedure changes the current text attribute to high intensity 
characters on a black background.

Declaration     HighVideo

Parameters      None.

Result  Not observable until characters are written to the screen.

Restrictions    None.

See also        LowVideo, NormVideo, TextColor, TextBackground.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

InsLine procedure (Insert line) 

From the ANSI_CRT unit.
 
Function        This procedure inserts a new line in the current row and moves all the 
succeeding lines downwards. The bottom line is deleted.

Declaration     InsLine

Parameters      None.

Result  Alters the monitor screen. 

Restrictions    Works only in text mode.

See also        DelLine, Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

LowVideo procedure

From the ANSI_CRT unit
 
Function        This procedure changes the current text attribute to low intensity 
characters on a black background.

Declaration     LowVideo

Parameters      None

Result  Nothing is visible until characters are written to the monitor screen. 

Restrictions    None

See also        HighVideo, NormVideo, TextBackground, TextColor

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

NormVideo procedure

From the ANSI_CRT unit
 
Function        This procedure changes the current text attribute to produce high intensity 
characters on a black background.

Declaration     NormVideo

Parameters      None

Result  Nothing is visible until characters are written to the monitor screen.

Restrictions    None

See also        HighVideo, LowVideo, TextBackground, TextColor

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Read_Dictionary procedure

From the TextCorrect unit
 
Function        This procedure reads in a list of words from the given text file and puts 
them directly into the main dictionary without prompts or worries.

Declaration     Read_Dictionary( Filename )

Parameters      Filename - A string value initialized to the name of the text file where the 
dictionary is to be found.

Result  The file in Filename is opened and it's contents read for new words.

Restrictions    Be sure that the file is a valid text file and that it's words are correctly 
spelled.

See also        Write_Dictionary

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Set_Frame_Color procedure

From the Frames unit
 
Function        Sets the drawing color used by all the other procedures in the unit.

Declaration     Set_Frame_Color( Color )

Parameters      Color -  A byte value holding the color to use.

Result  Nothing visible, the color used to draw frames becomes the given color.

Restrictions    Be sure to supply a color valid for the current video mode.

See also        Draw_Frame?

Example {Please see unit chapter. }

----------------------------------------------------------------------------------------

Test_Processor function

From the Look unit
 
Function        Determines the type of processor running the code.

Declaration     Text_Processor

Parameters      None

Result  Returns a word value that reflects the processor type.  Possible values 
are...

                86 for the 8088, the 8086 and the 80186 and compatible.
                286 for the 80286 and compatible.
                386 for the 80386, the 80386dx and the 80386sx and compatible.
                486 for the 80486, the 80486sx, the 80486dx/2, the 80486dx/4 and compatible.
                586 for the Pentium (R) and the compatible.

Restrictions    None

See also        Test_Video_System

Example 
                Program Processor_Test( Input, Output );
                  Uses
                    Look;
                  Begin
                    Write( 'This processor is an 80', Test_Processor );
                  End.

----------------------------------------------------------------------------------------

Test_Video_System function

From the Look unit
 
Function        This function tests the video system of the system on which it is running.

Declaration     Test_Video_System

Parameters      None

Result  Returns a character value that reflects the highest video mode.  Possible 
values returned are...

                H - Hercules compatible at best.
                M - IBM - Monochrome display adaptor.
                C - IBM - Color graphics adaptor.
                E - IBM - Enhanced graphics adaptor.
                G - IBM - Multi-color graphics array.
                V - IBM - Video graphics array.
                X - IBM - Extended graphics array?
                P - IBM - Professional graphics controller.
                S - Super video graphics array.
                0 - no video adaptor on the system.
                ? - Unknown.

Restrictions    None

See also        Test_Processor

Example 
                Program Video_Tester( Input, output );
                  Uses
                    Look;
                  Begin
                    Write( 'The current display is a ' );
                    Case Test_Video_System of
                      'H': WriteLn( 'Hercules video adaptor.' );
                      'M': WriteLn( 'monochrome display adaptor.' );
                      'C': WriteLn( 'color graphics adaptor.' );
                      'E': WriteLn( 'enhanced graphics adaptor.' );
                      'G': WriteLn( 'multi-color graphics array.' );
                      'V': WriteLn( 'video graphics array.' );
                      'X': WriteLn( 'extended graphics array.' );
                      'S': WriteLn( 'super video graphics array.' );
                    End; { Case }
                  End.

----------------------------------------------------------------------------------------

TextBackground procedure

From the ANSI_CRT unit
 
Function        This procedure alters the current text attribute to display text using the 
given text background color.

Declaration     TextBackground( Color )

Parameters      Color - A byte that defines the color of the background.  Defined colors 
are Black, Blue, Green, Cyan, Red, Magenta, Yellow and White.

Result  Nothing is visible until text is written to the monitor screen.

Restrictions    None

See also        HighVideo, LowVideo, NormVideo, TextColor

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

TextColor procedure

From the ANSI_CRT unit
 
Function        This procedure alters the current text attribute to display text using the 
given text color.

Declaration     TextColor( Color )

Parameters      Color - A byte value that determines the new text color.  Predefined 
values are Black, Blue, Green, Cyan, Red, Magenta, Yellow and White.

Result  Nothing occurs until text is written to the monitor screen.

Restrictions    None

See also        HighVideo, LowVideo, NormVideo, TextBackground.

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

TextMode procedure

From the ANSI_CRT unit
 
Function        This procedure selects a specific system text mode.

Declaration     TextMode( Mode )

Parameters      Mode - A word value defining the text mode to set the system to.  It's 
currently defined to two predefined modes, BW80 and CO80.

Result  Switches the current mode of the monitor screen.

Restrictions    None

See also        ?

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

WhereX function

From the ANSI_CRT unit
 
Function        This function returns the current cursor's column position in the current 
window.

Declaration     WhereX

Parameters      None

Result  Returns a byte value defining the column of the cursor. 

Restrictions    None

See also        GotoXY, WhereY, Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

WhereY function

From the ANSI_CRT unit
 
Function        This function returns the current cursor's row position in the current 
window.

Declaration     WhereY

Parameters      None

Result  Returns a byte value defining the row of the cursor.

Restrictions    None

See also        GotoXY, WhereY, Window

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Write_Dictionary procedure

From the TextCorrect unit
 
Function        This procedure writes out a dumping of the main dictionaries to a text file 
of the given name.

Declaration     Write_Dictionary( Filename )

Parameters      FileName - A string containing the name of the file to which the output is 
to be written.

Result  A file is opened and the main dictionary is written out to that file.

Restrictions    Depending on the size of the dictionaries, this may take a long time.  Also 
note that any existing file with the given name is to be overwritten.

See also        Read_Dictionary

Example { See unit chapter for example. }

----------------------------------------------------------------------------------------

Window procedure

From the ANSI_CRT unit
 
Function        This procedure defines a text window on the screen at the given screen 
coordinates.

Declaration     Window( X1, Y1, X2, Y2 )

Parameters      X1 - Defines the left column of the window defined from the absolute left 
column of the screen.
                Y1 - Defines the top row of the window defined from the absolute top row 
of the screen.
                X2  - Defines the right column of the window absolute from the screen left.
                Y2 - Defines the bottom row of the window absolute from the screen top.

Result  A window is defined on the screen at the given coordinates. 

Restrictions    None.

See also        ClrEOL, ClrScr, DelLine, GotoXY, WhereX, WhereY

Example { See unit chapter for example. }


