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 1 CONTENTS: -----AI_PAS: Artificial Intelligence for Pascal -----COMMUNICA: communications & network routines for Pascal -----COMPILR: complers, program generators -----DATETIME: Date & Time routines for Pascal -----GAMES: routines, source code for games -----GENERAL: various routines for Pascal -----DATAFILE: file coding, accessing, databasing, formatting, etc. -----ARCHIV: file compression and archiving routines for Pascal -----NUMERIC: math & stats related routines for Pascal -----PRINTING: printing routines for Pascal -----SORTING -----SOUNDS: Speech, Sound -----STRINGS: String Manipulation -----DATABASE (The next section is in PASCAL2.TXT) -----MISC -----DATA_INP -----KYB_MOUS: keyboard, mouse, joystick routines. -----LIBRARY: various collections of routines/libraries. -----SYSTEM (The next section is in PASCAL3.TXT) -----VIDEO -----OOP: OOP routines. -----DOS_ACCS: DOS access routines. -----TOOLS: programming utilities -----TUTORS: tutorials & info -----TV_PAS: TurboVision ================================================ -----AI_PAS: Artificial Intelligence for Pascal [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. -----COMMUNICA: communications & 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. [PCL4P] Personal Communications Library for Pascal 3.3 (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. [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. -----COMPILR: complers, 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. -----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). [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. [XDATE] XDate (Peters, Michael L.; $0) is an object for displaying the current date on DeskTop. -----GAMES: routines, source code for games [P_Robo31] P_Robots 3.1 (Softworks ASP; $25) is a game based on computer programming in PASCAL. The object is to design and program a robot that can triumph over similar robots designed and programmed by others in a real-time battle of wits and flying missiles. You control your robot by writing a procedure in PASCAL to specify your robot's behavior and strategy in its efforts to vanquish up to three other robots in a battle to the death. [SPX] SPX 1.0 (Ramsay, Scott D.; $30) allows TP programmers to write games in 320x200x256 VGA mode. This library covers animation, sound, text, and various input devices. It also includes parallax scrolling, tile-map scrolling, displaying sprites in layers, 3D perspective, automatic implementation of 386 specific code, eight real-time clocks, tilemap maker, font-editor, three complete games, and seven examples with TP source. (On 1.44MB MegaDisk or CD only.) -----GENERAL: various routines for Pascal [ARRAYRW] Arrays (Warren, Robert; $0) is TP unit that provides support for regular arrays and huge arrays. [DLGDRW] Dlgdrw (Borland International; $0) shows how to change text and text color, and send messages in a dialog box. [FPU] FPU (Olbrys, Erik; $0) contains four TP functions using BASM to directly access the 80387/80486. Functions include FARCTAN, FSIN, FCOS, and FTAN. [UMBHEAP] UMB_Heap 1.3 (Webb, Brian D.; $10) lets you extend the dynamic heap into UMBs, giving your programs up to 200K more RAM to work with. TP6 required. -----DATAFILE: file coding, accessing, databasing, 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. [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. [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. [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. [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. [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. [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. [BTV150] BTV.PAS 1.50 (Hansen, Richard; $20-$50) 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. [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. [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. [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.) [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. [OO123] OO123 is source code for creating Lotus 1-2-3 models. [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. [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. [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. -----ARCHIV: file compression and archiving routines for Pascal [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. [LZW4P] LZW For Pascal 1.0 (MarshallSoft Computing, Inc.; $38) is a Lempel-Ziv-Welch data compression library for Turbo Pascal. [RLE] RLE.PAS (Murphy, Ken; $0) is a run length encoding algorithm. -----NUMERIC: math & stats related routines for Pascal [BigNum] BigNum 2.01 (Theberge, Stephen A.; $40) is an extensive library of string mathematics functions for TP4 and TP5. Functions include addition, subtraction, multiplication, division, square, root, and factorial. [BFloat] BFloat 1.0 (Ritchey, J. P; $0) will convert a MicroSoft Binary Floating point number to IEEE extended format. The result can be returned to TP single and double variables and TP will handle the conversion. Pascal source included. [CALCTP] CalcTP (Coleman, Timothy B.; $20-$60) is a unit for TP5 that allows a programmer to add a pop-up calculator to any application. Included are illustrative code and several ASCII representations of calculators for on-screen use. [COMPLXO] ComplxOps (Glynn, Earl F.; $0) is a ComplexOps UNIT providing complex arithmetic and transcendental functions. [FIN_TP] Finance (Anderson, Pat; $0) is source code for loan payment and amortization routines. [INVTRIG] InvTrig (RAM Software Development; $0) is a unit that gives the inverse of the sine, cosine, and tangent functions. [MATHLIB] Math Libraries 1.0 (Waldman Sidelines; $25) is a set of math units with math chip support. The libraries consist of the five transcendental functions plus nine additional ones. [MATHPAS] MathPas (Van Fossan, Richard D.; $0) is a set of transcendental functions for Turbo Pascal. It handles all trig, exponential, and hyperbolic functions. [MPI_KSU] MPI KSU (Research Foundation; $50) is a multiple precision positive integer arithmetic package. The two versions included in this package handle integers up to 149 or up to 3029 decimal digits. It is written in Eric Isaacson's A86 assembler for the 8086 series of processors and contains a Turbo Pascal interface. [P_Mat] P_Mat 1.2 (Von Tress, Mark; $5) is recursive matrix algebra routine. It includes binary operations, inversion, unary operations, and several patterned matrices. [PARS7] PARS7 (Schaaf, Renate; $0) is a set of units to implement real functions of up to three variables. [REALSTR] RealStr (Mullen, Rich; $0) is a TP routine that formats a floating point double, real, or single number into a string, according to the requested number of significant digits. [TPSTAT] Stat (Norton Associates; $35) contains 30 elementary statistical and 19 mathematical subprograms developed to aid in the further enhancement of scientific Pascal software development. [NUM_RECI] Numerical Recipes Library (Numerical Recipies Software; $0) contains more than 200 source-code Pascal routines for scientific and engineering calculations. Routines cover integration, linear algebra, differential equations, Fourier methods, data analysis, statistics, lots of special functions, random numbers, sorting, root finding, optimization, and more. [PASWIZ] Pascal Wizard's Library 1.4 (Hanlin, Thomas G.; $25) is a library for TurboPascal and QuickPascal that provides high-powered math routines, new string support, mouse management, music and BCD math. Source code is included. -----PRINTING: printing routines for Pascal [DJSquash] DJSquash 1.0 (Straayer, D. H.; $0) is the Pascal source code for intercepting data going to the printer and modifying it before passing it along. This could be used for making a printer compatibility filter, for example. [HPCOPY] HPCopy is designed to dump graphics images produced by TP5's Graph Unit to a Hewlett-Packard LaserJet printer. It will print either Normal or LandScape on the HP. [HPLJTPU] HPLJTPU (Gibbons, Jim; $15) is a Unit that makes it easy to use the special features, fonts and functions of the HP LaserJet and several font cartridges. [LPTINIT] LPTInit (Sanbar, J. Scott; $0) contains a demonstration program and a command line utility for determining the disposition of a printer. [PPC] Parallel Port Control (Upleger, Robert; $0) prints a disk file using direct control of the parallel port hardware. It will not use any interrupts. [PRINTER2] Printer2 is a TP6 printer unit to change the printer port that the LST file is writ- ing to on the fly. This is helpful to those having a problem with DOS when stripping Ctrl-Z's or other characters from the output stream. [PRINTPA] PrintPas (DiBart, Dennis; $16) is a Turbo Pascal source code printing utility. It tabulates and highlights procedures and functions, denotes global and local variables, modifies comments and skipped code, and more. [PRT] Prt (Camp, Rick; $0) is a printer unit for IBM Proprinters. [PRTERR] PrtErr (Stephenson, Brad; $?) is a routine that intercepts printer errors before DOS reports a critical error. Source and sample code included. [SPOOLDB] Spool (Bradley, David; $0) gives your programs the ability to spool print jobs by giving you access to DOS's PRINT utility. It also has various functions to control and monitor the spooler. [SPOOLER] Spooler (Ebarb, Brian; $0) is a TP5 source for a print spooler. [SPOOLAQ] SpoolAQ (Quint, August; $0) shows how to output data to a printer in the background of the application. Pascal source code and a demo are included. [TPRNT] TP Printer Units (TPRNT) (OptiCom, Inc.; $0-$25) contains objects designed to provide an interface between a printer and an application running under Windows. [TPSPOOL] TPSpool (Webb, Douglas; $10) implements a device driver which allows TP4-5.5 programs to print in the background in your programs. -----SORTING [ASORTS] ASorts (Rider, J.W.; $0) is a set of general-purpose routines for sorting, searching and moving arrays of arbitrary elements. [QKSORT] QKSort (Showalter, Bob; $0) is a small unit for TP 5.0 that uses qsort and bsearch. Up to 32k elements can be sorted or searched. [SORTS] Sorts contains a general purpose engine to sort in-memory static, dynamic, or indexed arrays using the QuickSort algorithm. Includes source code, examples, and a test program. [SORTING] Sorting (Allison, James L.; $0) is TP5 code illustrating five different sorting algorithms. -----SOUNDS: Speech, Sound [MODOBJ] MODOBJ 0.03 (Cox, Mark J.; $30) is a set of routines for playing MOD files. [TALK] Talk (Dubois, David Neal and Day, Michael; $0) is assembler and TP5 code for a speech program which uses phonemes to speak numbers through the PC's speaker port. [TP6VOC] TP6VOC (Mathur, Amit K.; $0) is a set routines for making and playing .VOC files. [TXT2SP] Txt2Sp (Schuster, Ron; $0) is TP code for converting English text to phoneme codes that can be used to drive a phonetically-programmed speech synthesizer, such as the Covox Speech Thing. [SNDTOOLS] SoundTools (Anderson, Nels, ASP; $0) is a set of functions for adding music and sound effects to programs using either interrupts or real time code. SoundTools demonstrates two ways to generate sounds using Turbo Pascal. The simpler method uses tables to generate sound effects in real time. The other method replaces the clock tick interrupt to handle sounds in the background. This is also a good demonstration of Turbo Pascal interrupts in general. [TPBLASTR] TP SoundBlaster Toolkit 1.0 (Robinson, Trevor; $20) is a set of TP6 routines for accessing Sound Blaster compatible cards. -----STRINGS: String Manipulation [KGSTR] KGSTR.PAS (Greer, Keith; $0) is a set of routines for manipulating strings in Real or Protected mode. [PRFTEST] ProfTest (Potvin, Wm II; $0) is a TP6 unit containing a DOS implementation of the Windows Write/Get PrivateProfileString functions, plus a ParseProfileString function and a test program. [SRCH_RS] Search (Sumner, Reuben; $0) is a TP unit for searching text files for specified data. ASM source code is included. [STRASM] StrAsm (Greer, Keith; $0) is a pair of string manipulation routines. One routine removes leading spaces; the other pads or truncates a string to a specified length. [STRGTP6] Strg for TP6 6.1b (Eagle Performance Software; $30) is a set of 111 high-performance string processing routines. Operations include case, comparison, conversions, copy, count, delete, format, justification, parse, search, sort, and many more. [STRNGRW] Strings 1.2 (Winkel, Richard; $13) is a unit containing 29 string related functions written in assembler. The routines are highly optimized and make extensive use of the 80x86 string oriented opcodes. [STR_OBJ] Str_OBJ (Paxton, Mark C.; $0) is a unit for creating and manipulating a String Object. A sample program demos each method of manipulating the object. [SYST] System Unit 5.5c (Eagle Performance Software; $19) is a high speed replacement system unit for Turbo Pascal 5.5. It speeds up more than 30 routines in the system unit including longint math up to 800%; string handling such as Pos, Insert, Delete up to 400%; string/ integer conversions, up to 120%; and more. [TPSTR] TPSTR String Utilities 1.0 (Raviart, Philippe; $20) provides 88 powerful functions and procedures for managing strings. [TS_STR] Turbo Stuff 02.01.00 (Shenandoah Valley Software; $40) is a set of 40 string-related routines routines written in assembler for use with Turbo Pascal 4.0 - 5.5.