Public (software) Library Programming Library Descriptions and Compilation Copyright 1993 Nelson Ford Duplication, reprinting and distribution of these descriptions is restricted. See LICENSE.DOC in the PSL_NEWS directory for complete information =====Pascal, part 2 CONTENTS: -----MISC -----DATA_INP -----KYB_MOUS: keyboard, mouse, joystick routines. -----LIBRARY: various collections of routines/libraries. -----SYSTEM ========================================================= -----MISC [CDPLAY] CD-Play (Armstrong, Michael W.; $0) allows you to access MSCDEX extension for the CD-ROM drivers. [COLORDH] Colors 1.3 (Hood, Doug; $0) is a TP unit that lets you control the color of your dialog's buttons. [DATASJ] DataStrucJones (Jones, Jeremy; $35) drills you on data structures and algorithms. [GETOPT] GetOPT (Anez, Juancarlo; $0) lets you define command line switches (program options) and parse any command line accordingly. [JDBTREE] JDBtree 1.20 (Darling, Jeff; $0) demonstrates how to use Binary trees. Executable files are also included. Requires TP 5.5. (The author can no longer be reached at the address provided in the documentation.) [NULVAR] Nulvar is a routine to null all variables. [Overinit] Overinit 6.0 expands the heap dynamically during program execution, taking memory away from the overlay buffer. [MAP2USE] Map2Uses (Welsh, Jim; $0) reads a .MAP file and extracts a program's USES list from it. Source code is included. [PAS1] PAS1 (Shoval, Ben; $0) is heavily documented code for an ANSI screen drawing program. [TCHLP3] Tchlp3 (Van Den Berghe, Vincent; $0) converts Borland's THELP files into Microsoft's QuickHelp format. [THERM] Therm (Hood, Doug; $0) is a progress gauge in the form of a thermometer. [TURBCAS] TurboCAS 1.0 (Corll, Brian; $0) is a unit for accessing FAX cards such as Intel's Connection CoProcessor. [XDIALOG] X_Dialog (Aiken, Donn; $0) shows how to create a scrolling list box with user-specified checkmark. It also has a drop-down menu bar. [CHCKRS] CHCKRS is TP6 source code for a Checkers game. [ESPOOL] ESPooler 1.1 (Webb, Douglas; $10-$30) allows easy addition of a spooler to your Turbo Pascal programs. It can use the heap, EMS, or XMS. [FlxKey] FlxKey 1.1 (McLoughlin, Guy; $15) is a unit that lets you create encrypted user registration keys for programs. [GR_COL] GR_COL (Rivers, Jerry; $0) contains routines for using standard text output in graphics modes. [HYPERL] HyperLINK 1.0 (BGASoft, ASP; $20) is a complete system for adding Hypertext help to your programs. No special editors or linkers are required. [LZRTPU] LzrTPU (Smedley, Bob; $0) is a unit for printing reports with an HP LaserJet. Most of the commonly used formatting commands have been provided as functions. Also included is SHADETXT, which shows how to write shaded text to an HPLJ. [OBJTool] OBJTool 2.3 (Hanlin, Thomas G. III; $14) is a tool for manipulating OBJ files. It allows you to search OBJ files, view file stats, delete default libraries and languages, check for validity, repair checksum errors, and rename publics, externals, and default libraries. [OVERXMS] Overlays in XMS 1.2 (Leijen, Wilber van; $0) allows you to add XMS support to overlaying in TP. [PRTYPAS] PrettyPascal 1.0 (Invariant Software; $30) makes Pascal program files more readable. This is done by spacing operators, procedure calls, and control guards, and by reformatting the code to a specified form and indentation. [SBVoice] SBVoice 1.0 (Mathur, Amit K.; $0) is a TP6 unit containing source code for using the voice playback capability of the Sound Blaster card. [STATBOX] Statbox (Mitchel, Patrick; $0) is a unit for displaying progress of a procedure. Demos and source included. [TVCOPY] TVCopy (Midwinter, Stewart; $0) is TP6 source code to demonstrate how to pop out of a dialog box, open a list box containing data from a file, and copy the desired data into several input lines in the input dialog box. [BROWSE] Browse is a TP routine that allows the user to browse through a text file. [Desq] Desq 4.2 (LeMay, James H. ASP; $0) contains routines to interface DESQview with TP 4.0. Some of these routines are useful for direct screen writing utilities like QWIK42.ARC [DOLRWRD] DollarWord (Loew, Rob; $0) is a TP5.5 Unit for converting a number from the form "###,###.##" to the spelled-out format for check writing. The program works on number strings from 0.00 to 999,999.99. The source code is included. [EVENTQ] Eventq (Schafer, Steve; $0) contains a unit which implements an event queue for Turbo Vision applications. This unit would enable you to easily make a script-driven TV app. Source code is included. [FSTWAIT] FastWait 1.0 (Southern Software; $0) is a routine for inserting timing delays in your code that are accurate even on fast (20mhz+) machines. [TIMERH] High Precision Timer 5.5 (Eagle Performance Software; $0) is the Pascal source code for a high precision timer to 1-microsecond resolution and up to 24-hour duration. [INTCASE] IntCase is a unit which performs international case conversion functions. JoyStck JonSoft Technologies Inc. $0 is a Joystick interface for TP 5.X and above. [KEYMAKR] KeyMaker 2.0 (Franz, Carl A.; $10) is a set of routines for making hash-keys for names and address. The keys support Soundex searches. [MICROT] MicroT contains Pascal source code for high resolution delay timing to 0.838 microsecond accuracy using the speaker timer chip. It does not disturb running TSR clocks, and no self calibration is required. It allows other work to occur while waiting for time delay, such as write/draw to screen. [MOVE32] Move32 (Toth, Thomas A. Jr.; $0) is a set of auto-detecting routines to use the 32-bit data bus of the 80386/80486 microprocessors, when present. If one of these processors is not in use, these routines use 16 XFers, still making them faster than the Turbo Move() proc when moving large blocks of information. [MortPay] MortPay 4.1 (Brown, R. E. & Gilbert, Raymond A.; $0) is TP5 code for a loan amortization program. [OBJSTR] Objstr (Fralix, Jim; $0) uses less space than a standard string, yet it can be accessed as a standard string. [PASMAIL] Pascal Mail Label (Harrell, Tim; $0) is Pascal source code for a mail list program. [PICKLST] PickList (Watson, Blake; $?) contains examples of multi-selection picklists for Turbo Vision. [Strg] Strg 5.7 (Eagle Performance Software; $39) is a set of 109 high speed routines for processing strings, characters, and all types of numbers including case, classification, comparison, conversions, copy, count, delete, format, justification, membership, parse, position, replace, search, sort, tabbing, ASCIIZ, many with match/ignore case and many more. [TPhrt] TPhrt 3.00 (Ryle Design; $8) is a software "toolbox" of routines to manipulate one hundred different timers each with one microsecond resolution. TPhrt makes it easy to very accurately time nearly any synchronous or asynchronous event your PC can encounter. [TPJR] TP Joystick Routines 3.0b (Howarth, David B.; $0) is a set of TP routines for joysticks. [TVPAL] TVPal (Schafer, Steve; $?) is a tutorial on Turbo Vision palettes. [VDRV] VDrv is an external TP function to test whether a drive exists in a system without attempting to read from the drive. Source included. [ZTFDD] ZTFDD is a routine that can be used to format and combine different data types in a Write statement. -----DATA_INP [ASG] ASG 5.2, RASG 5.0 & BlueBag 5.2 (Roncalio, John; $45) AtSayGet is TP5 routine for a line editor with WordStar compatibility. ReadASG allows full screen editing of data entry. Up to 64 of the twelve AtSayGet procedures can be joined on one "page" to be "read" together, and up to 10 pages of ASG procedures can be active at a time. BlueBag 5.2 includes routines for modifying the cursor, CRT tricks, dates, string processing, testing printer status, and multiple overlapping windows. [CWDKIT] Centiwrite 1.10 (Saucci, Andrew M. Jr. ASP; $20-$250) is a full-screen editor which Turbo Pascal 5.0 programmers can add to their own programs when small editing tasks are required. [CoUn] CoUn 2.0 (Franz, Carl A.; $0) is a unit that Compresses/Uncompresses string data in order to save disk space in your data files that allow variable length records. [FIELDDH] Fields (Hood, Doug; $0) is an expanded fields unit. It includes color inputlines, auto-uppercase input, path and drive validating, noecho/password input, and date input. [FInput] FInput 1.2 (Bauer, Allen; $0) is an input routine that supports several data types, including formatted input for all the numerical types, keystroke filtering and uppercase conversion, field justification, and range checking. [FMTLINE] FMTLine (Sprenger, J. John; $0) is a descendant of tInputLine which allows validation of names, telephone numbers, postal codes, money, and more. [INSERT] Insert.pas (Midwinter, Stewart; $0) demonstrates how to read an input line in a dialog box and place output in another input line in the same box while the box stays open. [KEYINP] KeyInp (Griffin, Richard F.; $0) allows you to set up data entry routines quickly and simply. It also gives the programmer the capability to override the entry routine and use another procedure to handle function keys. [MAKECAS] MakeCase 1.00 (Ackermann, John R. Jr.; $0) generates a CASE statement of menu choices from a source code file created by Turbo Professional's MakeMenu utility. [MGN] MGN (Keefe, Ed; $0) is TP5 code and the executable for a Menu Engine. It contains most of the logic to put a simple, light-bar menu on the screen. [OVERWRT] OverWrt (Miser, Dan; $0) contains an object to allow toggling between then insert and overwrite modes in a TEdit Control. Source code is included. [PICKS] Picks (Haluska, John; $0) is a menu bar unit with source code. [REAL_R] Real-Range (Schafer, Steve; $0) is a unit that validates the range of input for real numbers. [tvDMX] tvDMX 1.5 (Beck, Randolph; $18) is a Turbo Vision unit for multi-record data entry in a row/column format. [TurbIO] TurboIO (Meacham, Bill; $?) is a set of Turbo Pascal tools for controlling console data entry and display. The routines give the programmer control over cursor movement through data entry forms displayed on the screen not only from field to field but from screen to screen as well. -----KYB_MOUS: keyboard, mouse, joystick routines. [FastKey] FastKey 1.1 (Holley, Steve; $20) is a TP6 unit that provides low-level monitoring of the keyboard, keeping track of which keys are pressed and which are not. Sample files included. [GRABKEY] GrabKey is sample code that illustrates how to get the scan code of each key pressed without removing the keypress from the key buffer so that it can be further processed by the system. [PasMac] PasMac 2.0 (Newman, Norman; $15) is a keyboard macro program especially designed for Pascal programmers. [SCAN_PA@] Scancode (Anderson, Pat; $0) demonstrates how to add low-level keyboard handling to your Turbo Pascal programs. [TRANS] Translat and Keyword (Yoder, Gil ASP; $?) TRANSLAT will allow you to remap from one to five keys on your keyboard. Source code is included. [MOUSETP] MouseTP5 (Gilroy, T. Russell; $0) is mouse menu support for TP5 using a Mouse Systems 3-button mouse or compatible such as Genius or Logitech. The Mouse Systems .MSC source and compiled versions are included. [MSDEMO] MSDemo (Landry, Bob; $0) is a simple program which exhibits some of the capabilities of using an interrupt driven interface to the mouse. It works on TP 4.0, 5.0 and 5.5. Source code is included. [Mouse] Mouse 3.1 (Day, Michael; $0) is an extensive set of mouse functions for TP5. [OGLE] Ogle Eyes (Day, Michael; $0) is TP5 code for a routine that watches the mouse wherever it goes, or any point on the screen. It can show three possible eye styles on the screen. [THEMOUS] TheMouse (Kwast, Kevin A.; $10) is a set of routines for accessing a Microsoft, Logitech, or compatible mouse from Turbo Pascal. [TMOUSE] TP PD Mouse (Henderson, Ken; $0) is a Mouse to key translation unit (requires TPRO). [TPrat5] TPrat5 1.0 (Smart, J. A.; $0) is a Microsoft-compatible mouse driver to provide mouse support for Borland's Turbo Pascal 5.0. [MOUSLI] MouseLib 8.0 (Loewy Ron; $15) is a Turbo Pascal event driven mouse library. It supports the standard mouse API, plus extensions for event driven programming, support for DPMI mode, text, graphic and true VGA cursor. It also includes DESQview support unit and video hardware support functions. [MOUSE_TL] Mousetools (Anderson, Nels ASP; $10) is a set of TP5 programming utilities providing most of the necessary procedures to use a mouse in your own programs. -----LIBRARY: various collections of routines/libraries. [FLXLIST] FlexList (Power SoftWare; $14) provides TP5.5 applications with a generic hybrid stack-queue-list-array object. There are 31 methods that allow you to push, pop, insert, delete, sort, store, recall, etc. lists of any type data. [FUTILS] FUtils (Kerr, Rex; $20) is a set of TP5.5 units, mostly written in assembler. Routines included do very fast swapping of variables; fast conversion between Pascal and C strings and faster Move and FillChar; array-based stack handling; fast BIOS calls (22 routines); fast screen writing and reading; windowing; and more. Each unit has many routines in it. [MISCUNI] MiscUnit (Moehrke, Geoffrey; $0) is a set of several units written for TP 5.0. Most of these units require Turbo Professional 5.05 or higher to compile. Functions include display of an on-screen clock in any program; a simple method of displaying pop-up message windows; an improved Printer unit; data entry routines; an easy way to implement stacks or queues of any type; mapping of I/O error codes to strings; and more. Pascal source code included. [SWEEPET] Sweep 1.10 (Tauck, Eric; $10) is a library of routines for managing memory and maintaining a heap. The advantage of the Sweep Library over the heap routines built into Turbo Pascal or Turbo C is that the Sweep Library never suffers from memory fragmentation. [UTILITY] Utility (Gemini Systems; $0) is a TP unit including many useful programming utilities: save screen, screen input, encryption, DIR, print-screen, date routines, and more. [VGAFNT] VGAFont (Tamburino, Joseph J.; $10) is a set of routines that allow graphics to be displayed with ordinary EGA or VGA text modes. [Zroutin] Zroutine 1.1 (Zimmerman, Bob; $0) is a set of TP5 routines you can add to your programs to sound a beep a specified number of times, get command line parameters from users, set text color, modify cursor attributes, trim leading spaces in a string or pad a string, create a window, shell to dos, "press any key to continue", and much more. Also included are a formatted input routine and I/O error routines. [Boosters] Boosters (George F. Smith & Company; $19-$35) is a set of routines for Turbo Pascal programmers. Included is sixty-three assembler-coded routines, screen generator, example programs, and complete documentation. Boosters supports string, video, heap, DOS, and special-effects routines in TEXT mode, for any IBM PC/PS or true compatible. [T_WHEELS] Turbo Wheels is a utility function library disk. -----SYSTEM [CPUIDJL] CPUID (Leonard, John D. II; $0) is a TP6 procedure that will identify a computer's CPU and FPU coprocessor. [ENVCALC] EnvCalc demonstrates storing variables using a DOS-like environment table, and using them in SET, CALC, LET, and ECHO commands. [ERROR87] Error87 (Murdoch, D.J.; $10) is a set of tools to help debug floating point code. Unit ERROR87 tries to determine the cause of run-time error 207, "Invalid floating point operation", and fix the reported error address. DV87 fixes bugs in Desqview 2.26 8087 error handling, and NMI fixes problems with 8087 error reporting in some XT machines. [ERRPAT] ErrPat (Larsen, Per B.; $0) is an INLINE MACRO which allows a procedure or function to generate a runtime-error with the address of the CALLING statement. [EXECDEMO] ExecDemo (Rubenking, Neil J.; $0) demonstrates the use of new TP 5.0 routines to enhance the EXEC procedure. [EXIT] Exit (Dubois, David Neal; $0) is a TP5 procedure that makes it easier to set up exit routines in Turbo Pascal. Besides saving the bother of dealing with the ExitProc variable, RegisterExitProcedure has the added benefit of forcing the compiler to check that the procedure is suitable. [EXARRAY] ExtendedArray (Wentz, Eric C.; $0) is a generic ram/diskfile "hybrid" array-like object. The ExtendedArray object resides in both ram and on disk, swapping portions in and out as needed. It is reasonably efficient for up to two meg or so (more for larger array elements). Requires units included in Genericity. [FEFIX] FEFix (Faubion, Jay; $0) will repair the headers in Borland Stroked Font files that are damaged as a result of a save action by the Borland Font Editor, FE.EXE, found in the BGI Toolkit. [HEAP55] Heap 5.5 (TurboPower Software; $0) is a set of TP 5.5 units and utilities for managing and extending the heap. [HEAP3] Heap3 is a TP5 unit that implements a heap manager similar to Turbo Pascal 3.0. [HOTMOD] HotMod (Schuster, Ron; $0) lets you reassign the hot keys in the IDE. [INST] Inst (Aaron, Ron; $0) is code that shows how to prevent multiple instances of a program in different VMs. [MAKETXT] MakeTxt converts a Borland help file, such as TURBO.HLP, into a text file that is suitable for input to the Turbo Power Software MAKEHELP program. [MEMSTR] MemStr is a demonstration of a technique in TP for storing a file of strings in a memory array at runtime. [ObjectA] ObjectA 1.01 (Rosenberger, Rob ASP; $0) is a TP 5.5 unit that builds on the OBJECTS.PAS file on disk three of the TP package. [ONLINE] Online (Bibb, Don; $0) checks the status of the printer using INT 17H, Service 2. [OVRHAN] Overlay Handler (Furman, Roy; $0) allows an application to explicitly load and unload overlays onto the heap without interfering with TP 5.5's management of the overlay buffer. Source and demo included. [OVERLOK] Overlock (Schuster, Ron; $0) is a TP5.x unit containing the functions OvrLock and OvrUnlock. OvrLock places a "lock" on the overlay buffer and OvrUnlock removes it. [TFDD] TFDD (Ranger, Philippe; $5) contains the source for four object-oriented units that illustrate and apply TFDD's - text file device drivers. [TP_TSR] TP_Tsr (Prescott, Richard W.; $0) illustrates a method for writing TP4/5 TSRs. The interrupt hook and return procedures are written in assembly language, however the remainder of the application can be written entirely in Pascal, can use up to 64K stack, and can Chain or Return from Interrupt from any point in the Pascal Code. [TPFort] TPFort 1.0 (Murdoch, D. J.; $0) is a collection of several procedures that will allow Microsoft Fortran routines to be called from Turbo Pascal. [TAP] Turbo Apprentice 1.0 (Cypress Systems, Inc.; $15) is a TSR utility which enables you to extend Turbo Pascal's context-sensitive help system to include reference information for your own units, procedures and functions. Requires a hard disk and TP4+. [HEAP7] Heap7 (Donais, Roger; $0) implements a protected mode heap supporting Mark, GetMem, and Release. A program can simultaneously use the heap provided by this unit and the SYSTEM heap. [MRKRLS] MrkRls (Cariotoglou, Mike; $0) simulates the operation of Mark/Release to port a real-mode program to protected mode. [RUN123] Run123 (Prescott, Richard W.; $8) illustrates a method for writing TP4/5 interrupt routines to modify the behavior of an existing program which is executed as a subprocess. TP5 source and assembly code is provided. [Sys60] Sys60 6.0a (Eagle Performance Software; $19) replaces the SYSTEM.TPU in your TURBO.TPL library and provides 32 functions such as Pos and Div that are as much as eight times faster. Turbo Pascal 6.0 is required. [TPTSR] TPTSR (Small, John; $20) is a TP unit that turns your Turbo Pascal 5.5 program into a TSR. Includes a demo TSR (popup calendar). [VIRTMEM] VirtuMem (Techsonix Marketing; $18) is a virtual memory system that extends dynamic memory into expanded memory and then onto disk. It works with any structures that would normally be dynamically stored as part of the heap, including, but not limited to arrays, records, and objects. Virtual memory size can be up to 4 gigs.