Public (software) Library Programming Library Descriptions and Compilation Copyright 1994 Nelson Ford ALL RIGHTS RESERVED. Duplication, reprinting and distribution of these descriptions is restricted. See LICENSE.DOC in the PSL_NEWS directory for complete information. Also see TOOLS and GEN_VID for tools and routines for multiple languages, including Pascal. =====Pascal, part 1 CONTENTS: -----AI_PAS: Artificial Intelligence for Pascal -----ARCHIV: file compression and archiving routines for Pascal -----CD-ROM -----COMMUNICA: communications, fax & network routines for Pascal -----COMPILR: compilers, program generators -----DATA_INP: data entry routines; menus; dialog boxes -----DATAFILE: file coding, accessing, databasing, formatting, etc. -----DATETIME: date & time routines for Pascal -----DOS_ACCS: DOS access routines. The following are in PASCAL2.TXT: -----ENCRYPT: registration program encryption key -----FONTS: screen fonts -----GAMES: routines, source code for games -----GAUGES: display procedure progress -----GENERAL: various routines for Pascal -----GRAPHICS: graphics routines & tools -----HYPER: hypertext -----KYB_MOUS: keyboard, mouse, joystick routines. -----LIBRARY: various collections of routines/libraries. -----NUMERIC: math & stats related routines for Pascal The following are in PASCAL3.TXT: -----OOP: OOP routines. -----PRINTING: printing routines for Pascal -----SORTING: file and array sorting -----SOUNDS: speech, sound -----STRINGS: string manipulation; command line parsing -----SOURCE: source code for programs -----SYSTEM: overlays, memory, DesqView & other system routines The following are in PASCAL4.TXT: -----TOOLS: programming utilities -----TUTORS: tutorials & info -----TV_PAS: stuff for TurboVision -----VIDEO: text screen control, windowing, video utilities, etc. ================================================ -----AI_PAS: Artificial Intelligence for Pascal [CHCKRS] CHCKRS is TP6 source code for a Checkers game. [ELIZA] Eliza (Anonymous; $0) the PC psychiatrist, originally written in BASIC, has been rewritten in TP5. The old BASIC code is also included along with the TP5 code. [TICTAC] TicTac (Snow, Robert H.; $0) is TP5 code to illustrate simple AI techniques. The program starts without knowing any winning routines and learns by experience. -----ARCHIV: file compression and archiving routines for Pascal [ARCPAK] Arcpak 2.0 (Peter Singer, reg. fee: $25) is a unit for BP 7.0 that allows you to write programs that use archive utilities. Arcpak recognizes Arc, Pak, Zip, LZH, Arj, and EXE files. It supports DOS and OS/2. [DEZIP] DeZip 2.0 (Byrne, R. P.; $0) extracts files from ZIP archive files, including "imploded" files from PKZIP 1.01. This is not as fast as PKUNZIP, but complete TP5 source is included. [LZSFX] LZsfx 1.5 is the Pascal and assembler source code for creating a self-extracting archive file. [LZH_PAS] LZH_PAS (Webb , Douglas; $0) is the LZHUF algorithm in TP source code format. This unit can compress and DECOMPRESS ANY KIND OF FILE. A SAMPLE PROGRAM IS INCLUDED. [LZW4P13] LZW Data Compression Library For Pascal 1.3 (MarshallSoft Computing, Inc.; $38) is a Lempel-Ziv-Welch data compression library for Turbo Pascal. [PKPAS1] PKWareU 1.0a (Terry Sansom, reg. fee: $0) is a PKWare ZIP viewer unit. It allows access to key fields inside PKWare's zipped archives. Pascal source is included. [RLE] RLE.PAS (Murphy, Ken; $0) is a run length encoding algorithm. -----CD-ROM [CDPLAY] CD-Play (Armstrong, Michael W.; $0) allows you to access MSCDEX extension for the CD-ROM drivers. -----COMMUNICA: communications, fax & network routines for Pascal [ASYNC11] Async11 (Rising Edge Data Services; $20) is a TP unit that provides interrupt-driven serial communication. Async11 supports full input and output buffering for up to four ports operating concurrently, with optional full hardware and/or software handshaking. [BOI] BBS Onliner Interface 1.20 (Andrew J. Mead, Andrew J.; $35) is a fully functional interface which will allow the programmer to write BBS on-line doors for almost any BBS system. Turbo Pascal source code is included. [DIALER] Dialer is TP5 code to add to your programs to dial the phone through a modem. [LANOS] LANOS 1.0 (Rehmann, Oliver; $0) is a pair of units for handling NETBIOS, including all the standard MS-DOS compatible network-functions such as redirect a device, get redirected device, etc. [PCL4P40] Personal Communications Library for Pascal 4.0 (MarshallSoft; $48) is an asynchronous communications library designed for Turbo Pascal 4+ programmers. Features include 28 communications support functions, support for 300 baud to 115,200 baud, and support for COM1 through COM4. [PROTENG] Protocol Engine is a set of Pascal routines for writing communication software. It has support for Xmodem, Xmodem with 1k Blocks, Ymodem Batch, YmodemG Batch, Zmodem (both Crc16 and Crc32), Sealink and Yapp (a packet radio protocol). It also has built-in detection and support of multitaskers such as DesqView and OS/2. (Omen Computer Services, reg. fee: $20) [TMODEM] Tmodem is Pascal source code for a communications program. [TP2C] Turbo Pascal to C Translator (Smith, Samuel H.; $20) will read a Turbo Pascal source file and convert it into the corresponding C source code. It does much of the work required in a full translation. Source code included. [TPAPI] TP API's for Novell Netware (Antonio Covelli; $35) is an object oriented library for accessing Netware API's. It allows you to write Netware aware/specific applications by calling Netware API's directly. The source code consists of over 19,000 lines of pascal and assembler. [TURBCAS] TurboCAS 1.0 (Corll, Brian; $0) is a unit for accessing FAX cards such as Intel's Connection CoProcessor. -----COMPILR: compilers, program generators [DESIGN6] Design6 (Adkins, Jerry; $20) is a TP database program generator. It supports numeric, alpha, calculated and other types of fields. Typical record access is 1/2 second. Up to 50 fields are allowed per record. Field input has word processor type editing features, with insert, delete, etc. A windows unit is provided, which can be incorporated into other programs. The program takes advantage of the unit structure of Turbo Pascal 6.0, and does not require toolbox support modules. All programs generated are designed to be compiled with TP 6.0. [SURPAS] Surpas (Tixaku Pty Ltd; $20) is a Pascal compiler. It includes all facilities required to create, edit, compile, run and debug programs written in Pascal. The system consists of a run-time package, an on-screen editor, and a Pascal compiler that closely follows Standard Pascal. Graphics drivers are also included. -----DATA_INP: data entry routines; menus; dialog boxes [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. [COLORDH] Colors 1.3 (Hood, Doug; $0) is a TP unit that lets you control the color of your dialog's buttons. [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. [LBDEMO] LBDemo 1.0 (Steve Leonard, reg. fee: $0) is the Pascal source code for demonstrating how to create an ownerdraw listbox. It displays all the available disk drive letters, with a disk icon next to each one. [LOOKUP] Lookup List Box Object Unit 1.0 is a ListBox that can search for a string and capture it via WM_Char for the closest match. It can then move the caret to the closest match and allow quick scanning of a listbox contents. (Timothy J. Wollin, reg. fee: $0) [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. [MAXXDATA] Maxx Data TurboMenu (Maxx Data Systems, Inc.; $25) is a set of menu routines. It allows you to define and manipulate pull-down menus. It supports an auto-tracking feature, mouse-tracking, and the data structure uses stack and heap memory. The menus can be defined in a text or graphics mode in one or two dimensions. [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. [MINIGEN] MiniGen (Snyder, Eric H.; $?) is a Turbo Pascal screen code generator that allows you to create data entry screens, open and close windows with borders and cursor memory, perform controlled data entry and create pull down menus. Then it generates the necessary TP code to reproduce all this. [OMENU] OMenu 1.01 (Jay Faubion, reg. fee: $0) is a GUI dropdown menu system for BP7. [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. [PULL70B] Pull 7.0b (Eagle Performance Software ASP; $19-29) is a set high performance pull-down menu utilities for Turbo Pascal 5.0 for novice and professional programmers. Features include a pull-down file directory, pull-down menus with three menu modes and seven-line modes, highlighted command letters, unlimited levels of submenus, unlimited data entry windows for nine types of data, context-sensitive help windows and more. PULL has been designed with a fill-in-the-blank concept. To get your application up and running, you only need to fill in the appropriate records or variables. [REAL_R] Real-Range (Schafer, Steve; $0) is a unit that validates the range of input for real numbers. [TDMENU] TP PD Menu (Henderson, Ken; $0) is TP code to let you generate pulldown menus. Included are a menu compiler mouse support and full source code. [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. [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. -----DATAFILE: file coding, accessing, databasing, formatting, etc. [ARITH2] Arith 2 (Westerback, Ken; $0) is a set of algorithms and examples of file encoding and decoding in TP5. The algorithms presented are designed for clarity and not quickness. [BROWSE] Browse is a TP routine that allows the user to browse through a text file. [BTP] BTP 2.0 (Leon, John C.; $25) is a TP6 unit that makes it easy to use Btrieve. Full TP 6.0 source, documentation and examples are included. This also works with TP7. [BTREE4] BTree 4 (Passey, W. Lee; $25) may be linked to a user's source programs, and will perform all of the same B-tree indexing functions as Borland's Database Toolbox plus a whole new set of procedures and functions using a compatible calling interface, but a wholly different memory storage technique. [BTV] BTV.PAS 2.0 (Hansen, Richard; $55) is an OOP interface for Btrieve with file and error handling and error display objects. It has 40 full-featured BTRIEVE functions and a file recover utility. Requires TP6. [COMPMRK] CompMark (Floyd, Edwin; $0) is a TP5.5 unit that implements block oriented "Splay" tree compression, based on Kim Kokkenen's SPLAY.PAS, but re-implemented in TASM. [CRCASM] CRCasm (Floyd, Edwin T.; $0) is a CRC unit to compute three types of Cyclic Redundency Check. These routines are coded in TASM optimized for highest speed. They compute or continue computation of CRCs on an entire buffer. [CRCFAST] CRCFast (Boler, Mark R.; $0) is assembler and TP code to get the CRC of a block of data. [CSDUDES] CSDudes is a set of files for a Paradox database engine. [DATAGEN] DataGen Kit 6.0 (Tika Software; $15) allows the TP programmer to generate single screen, single datafile database applications quickly, efficiently, and with a minimum of programming expertise. From a simple ASCII screen definition file, DataGen creates a full-function database, storing the items of the data entry screen as fields in the database. This is for Turbo Pascal 6.0. [DB3_PAS] dB3_Pas is a unit including procedures for accessing DBase III files from TP programs. [DIFEDL] DifEdl 1.0 (Phillips, Carley; $0) is TP code for a program which compares two text files, an old file and a new file, and produces a list of the differences in a format that can be used as redirected input to Edlin. [GSDBLOO] GS_DBase (Griffin, Richard F.; $25) is a set of TP 5.5 routines that handle processing for dBase III files, including memo, index, and data files. Dates are now handled as longint values using their Julian Date. A windows interface has been added to facilitate use of other window handling packages to replace GS_Wind. Additional string handling functions have been added. A new StatusUpdate routine allows the programmer to capture the progress of long-running routines such as Pack and IndexTo. [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. [KEYTREE] Keytree Toolbox (Rewse Consultants Ltd. ASP; 30 UK Pounds) is a library of routines to create, maintain and access randomly stored files of variable length records. Records can be displayed as soon as the first character of the record is typed. Files can also be read and written serially. Any number of files can be open. Each file can hold 10 indexes of multiple field keys. Associated records can be linked together. Source code is included. [LO_PAS] Lo_Pas (Glanz, Dan; $0) is a TP5 unit designed to allow reading and writing of Lotus 1-2-3, Symphony, VP-Planner and other such files using the Lotus 1-2-3 file format. [MAKEBIN] MakeBIN 1.0 (Day, Michael; $10) will convert some EXE files to BIN format that EXE2BIN will not handle. Pascal and assembler source code is included. [MCMD] MCMD (Davenport, Mike; $0) is assembler and TP5 source code for a file compression and decompression program that uses a 13-bit LZW algorithm. [MULKEY] MulKey (Boler, Mark R.; $25) is a set of Btrieve routines for TP5. (The author is no longer at the address given in the documentation.) [ODBC] ODBC (Yasser Asmi, reg. fee: $0) is the Pascal source code and a sample application which allows access to almost any database program. [OO123] OO123 is source code for creating Lotus 1-2-3 models. [PATRICIA] Patricia (R. Sedgwick; $?) is a practical algorithm to retrieve information coded in alphanumeric. It is intended for people interested in file compression. [TEXTF] TextF (Zatarain, Arthur; $0) is a text file processing package that allows for position seeks and faster string input from files. [TP_DBASE] TP Tools for dBASE (Corll, Brian; $20-$40) is a database toolbox of TP6 units which allow you to access, index, search, read and write database files that were created with dBIII or III Plus. [TPDB33] TPDB 3.30 (Brian Corll; $20) is a toolbox of TP 6.0 units which allow you to access, index, search, read and write database files that were created with dBASE III or III Plus. It has 75+ procedures and functions and object-oriented techniques. This toolbox supports multiple data files and associated indexes (not dBase indexes). Index keys can be up to 254 characters and can be composed of multiple fields or expressions. [VIARAY] ViAray (Haluska, John; $0) is a high performance virtual array manager which uses eight buffers to access a data array in a disk file. The array size is limited only by disk space. Maximum total buffer size is 524k. [ZIPPER] Zipper (Guinther, Tom; $0) contains simple TP5 routines for manipulating central directory entries within ZIP files. -----DATETIME: date & time routines for Pascal [CHGSYSD] ChgSysdt (Passmore, Dennis; $5) is a Turbo Pascal 5.0 unit designed to allow programmers to add full month calendar routines into their programs. [DATEBOX] Datebox (Regez, Rudolf; $0) is a European date routine with commented source code included. [DATES] Dates (Roncalio, John; $0) is a TP5 date handling routine. [DATES3] Dates3 (Murphy, Jim; $0) is a TPU for date manipulation that allows a wider span of years than the original Dates routine by Scott Bussinger, but it takes three bytes to store instead of two. [DAT_TIM] Dat_Tim (Fischer, Dennis R.; $0) is a unit for TP5 that will convert and manipulate date and time data. Functions include get date and time; convert AM/PM time to 24-hour time and back; check for leap year; number of days between dates; and elapsed time. [DOW] Day of Week includes two functions that return the day of the week as a number (0-6) and a string (Sun - Sat). [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. [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. [TIMEDAT] TimeDate (Once in a Blue Moon Software; $0) is a collection of time and date procedures written in Turbo Pascal. Included are serial dates, Julian dates, day-of-week and a few others. Source code is included. [TIMERSP] Timersp (Mullen, Rich; $0) intercepts the IBM PC timer interrupt and allows you to write Pascal routines which will be executed every 55 ms. [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. [XDATE] XDate (Peters, Michael L.; $0) is an object for displaying the current date on DeskTop. -----DOS_ACCS: DOS access routines. [BUFFER] Buffer (Ernst, Rolf; $0) is a unit for buffered file I/O. It allows for free definition of a number of buffers, size of each buffer and whether the buffer should be allocated in expanded memory. [CLP] CLParser 3.2 (Truesdell, Greg; $0) is a Command Line Parser. It provides the programmer with several pre-defined objects for dealing with command line options and switches. The unit also provides parsing for wildcard filenames, all environment variables and simple text parameter files. [CMDLIN] CmdLin (Walsh, Jim; $0) is a TP5 unit which will process command line parameters given by the user. [CPU_TP] CPU_TP (Boler, Mark R.; $0) is a set of assembler and TP routines to determine which CPU and math coprocessor (if any) are installed. [DDS] DDS (Glynn, Earl F.; $0) is code for a utility which shows a disk drive summary of all active drives, including bytes/sector, sectors/cluster, number of clusters, bytes capacity, bytes available, and working directory. [DIRTREE] DirTree (Roohi, Bill; $0) is Pascal source for a directory tree display. [DISK13] Disk13IO (AMST ASP; $5) is a Turbo Pascal 5.0 unit designed to allow programmers to add disk sector I/O (interrupt 13) routines into their programs. The routines in DISK13IO will only operate on floppy disks. The entire unit is self-contained, including advanced error checking and error recovery. [DK] DK (Grinsfelder, James A.; $0) is source code for a recursive descent algorithm for removing complex directory trees. For TP 4-5.5. [DRIVEXX] DriveXX 4.0 (NativSoft Computing; $10) is a collection of tools written in TP 6 for dealing with block devices. Demo code is included. [ENV] Env 2.5 (Babulic, Mike; $0) is a couple TP routines to simplify using the environment string. [EXECSWP] ExecSwap (Kokkonen, Kim; $0) is assembler code and a TP5 unit that will let you write programs that swap themselves out to EMS to allow room for other large programs to run. The heart of the code is in the assembler, which could be modified to work with other languages. [EXECWIN] ExecWin 1.01 (Kokkonen, Kim; $0) is source code to interface one procedure, ExecWindow, which uses the ExecDos routine from Turbo Professional's TPDOS unit to run a child process. In addition to what the ExecDos routine does, ExecWindow attempts to keep the video output of the child process within a specified window on the screen. This is useful for some programs, as exemplified by the INSTALL.EXE program used for installation of Turbo Professional files. [EXTEND] Extend 6 (Bussinger, Scott; $0) allows up to 96 files to be open simultaneously under DOS 2+ or 252 files under DOS 3+. The normal DOS limit is 20 files open at once. [FIMODE] FI-Mode 1.0 (Sadowsky, Richard S.; $0) alters the File Mode byte associated with the opening of Overlay files and text files opened for reading (with Reset). Turbo Pascal 5 ignores the global FileMode variable when opening overlay and text files for reading, which means such files cannot be safely shared on a network. [FNDPTH] FindPath (Nelson, Chris; $0) is a set of routines to access and manipulate the DOS environment variable PATH and to use the PATH to find a user specified file. [GERA] GERA 1.0 is Pascal source code to search for and delete files starting at the root directory and searching every directory below it. (C.V. Rutherford, reg. fee: $0) [MATCH] MatchStr (Guinther, Tom; $0) is a TP routine for doing wildcard searches for file names. [PARSCL] Parscl is a TP routine to parse a command line. [PICKFIL] PickFile (Luckas, Jim; $0) is a TP unit that returns a filename selected by the user using the point and shoot method. [PRGINFO] ProgInfo (Housh, Rick; $0) is a TP5 unit that provides a method for a program to know its own name. [REDIR] ReDir (Casey, Richard; $0) is a TP5 unit used to redirect I/O for a specific file handle to a user specified file. [TPENV] TPenv 1.0 (Kokkonen, Kim; $0) is a Turbo Pascal unit that allows application programs to manipulate the DOS environment by reading and setting environment strings in either the current program's environment or in the system master environment. [TPLDIR] TPLDIR (Hen derson, Ken; $0) is an example program showing a TpDir-style file pick list with multiple file selection capability. [TPXMS] TPXMS 1.01 (Davis, Vernon E.; $0) is TP code to add to your programs to allow access to HIMEM.SYS, the Extended Memory Manager from Microsoft for 286's. [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. [VOL] VOL 1.01 (Davis, Vernon E.; $0) are routines for the manipulation of Disk Volume Labels in TP5 programs.