Mach 2 (Turbo Pascal Version) Performance Toolkit for the Programmer (Demonstration disk available) Published by MicroHelp, Inc. 2220 Carlyle Dr. Marietta GA 30062-5841 (404) 973-9272 (800) 922-3383 There are more than 90 "include" files in the package, most of are written in assembly language. No knowledge of assembly language is needed, nor is an assembler program required in order to use Mach 2. This version of Mach 2 is compatible with Turbo Pascal 3.x. Versions are also available for Turbo Basic and Microsoft/IBM Compiled BASIC. All of the video related routines allow you to select the monitor to use (including Multilink video segments) and you can specify if snow checking is necessary on a color monitor. All file/device and directory related routines return true DOS error codes without your having to use Turbo's error handling. In addition to eliminating the dreaded "A)bort, R)etry or I)gnore", this can save substantial amounts of program code. All source code is included - both assembly and Turbo Pascal. The indexed manual provides all the necessary instructions and there is a small, sample program for each subroutine. The window management system in this product must be seen to be appreciated. We won't list the individual routines that are used for windows - suffice it to say that there is very little you cannot do. Included are routines to: Make a window (with or without a box - 4 different box types) Display a non-displayed window Draw a window with an "exploding" box Kill a window Redisplay a "hidden" window, making it the current window Move a window Remove a window from the screen Change a window's size Write a string within a window The routines (other than the windowing routines) included in Mach 2 are: Video Display Routines ---------------------- Mh_ClrWindow Clear part of screen Mh_DrawBox Draw a box on screen Mh_MoveFromVideo Save a portion of the screen Mh_MoveToVideo Restore a portion of the screen Mh_MoveVideo Move a portion of the screen Mh_PutAttr Change color attributes without redisplaying text Mh_PutCh Display a character instantly Mh_PutCStr Display string constant instantly Mh_PutStr Display a string variable instantly Mh_PutVCh Display characters vertically Mh_ReadScr Read string from the screen instantly Mh_ScreenIn Restore entire screen Mh_ScreenOut Save entire screen Mh_Scroll Scroll portion of the screen in any direction Mh_VideoMove Move data to/from screen Mh_WBigCh Large character set (5 lines by 4 columns) Mh_WPutStr Write string in window File and Device Routines ------------------------ Mh_Append Set an opened file for append status Mh_Attr Get or set a file's attributes Mh_Checkerror Low level and/or critical DOS errors Mh_Close Close a file/device Mh_Dir Mkdir, Rmdir, Chdir Mh_Erase Erase a file Mh_Execute Execute a program, command or batch file Mh_Exist Test for file existence without opening file Mh_FileSize Get a file's size Mh_Find Find first/next matching file Mh_Flush Update directory information Mh_GetDir Get current directory Mh_GetDrive Get default drive Mh_Getfdate Get a file's date and time Mh_Ioresult Return/clear critical errors Mh_Open Open/create file/device Mh_ParsePath Parse user path Mh_Read Read from file/device Mh_ReaddFileDir Read the file directory (any drive/path) Mh_Rename Rename a file Mh_SearchPath Search DOS path for file Mh_Seek Move file read/write pointer Mh_Setfdate Set a file's date and time Mh_Write Write to file/device String Handling Routines ------------------------ Mh_CmpStr Compare two strings. Returns <, > and = Mh_Lcase Convert a string to lower case Mh_Left Pad or truncate a string to n leftmost characters Mh_LeftJust Left justify a string Mh_RepStr Make a string of repeated characters Mh_Right Insert spaces/truncate a string Mh_RightJust Right justify a string Mh_Rlb Remove leading spaces Mh_Rtb Remove trailing spaces Mh_Sndx Convert string to SOUNDEX code Mh_Strip Replace characters in a string Mh_StrSearch Find string in memory Mh_Trim Remove leading and trailing spaces Mh_UCase Convert a string to upper case Numeric Routines ---------------- Mh_Pu Formatted output - real (like BASIC's PRINT USING) Mh_Pu2 Formatted output - string (like BASIC's PRINT USING) Mh_Round Round a number User Interface -------------- Mh_Affirmative Wait for and return a 'Y' or 'N' response Mh_Beep Sound the speaker Mh_CBreakInit Install ^C/^Break routine (Int $1B) Mh_CBreakReset Restore original ^C/^Break routine Mh_CCInit Install ^C Handler (Int $23) Mh_CCReset Restore original ^C Handler Mh_Choose Choose from valid list of characters Mh_Cursor Set the cursor size Mh_GetKey Get next keystroke Mh_GetKs Get next keystroke and shift status Mh_GetShift Get shift status Mh_HorizMenu Display horizontal menu (like Lotus 1-2-3) Mh_InputStr Controlled input - uses standard edit keys and optionally ignores ^C/Break Mh_KClr Clear keyboard buffer/return key Mh_KClr2 Clear keyboard buffer/return key and shift status Mh_PikDir Full screen file selection Mh_VertMenu Choose from a vertical bar menu Array Handling -------------- Mh_BinSearch Binary search routine for sorted arrays Mh_QSort Sort an array (Quick Sort method) Miscellaneous ------------- Mh_24Init Installs critical error handler Mh_24Reset Restores original critical error handler Mh_DosVersion Get the DOS version Mh_GetEnvironStr Return a string from the environment Mh_GetInt Get interrupt vector address Mh_LongJump Jump to a far address Mh_Scan Scan memory for a character Mh_SetInt Set interrupt address Mh_SetJump Set long jump address