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 =====BASIC CONTENTS: -----VIDEO: screen & video routines for Basic (also see WIN_MENU & GRAPHICS) -----GRAPHICS: drawing and plotting routines for Basic -----MULTIBAS: multi-function libraries and routines -----DOS_ACCS: DOS access routines for Basic -----KYB_MOUS: keyboard, mouse and joystick routines for Basic -----SORTSRCH: sorting and searching routines for Basic -----DAT_TIME: date & time routines for Basic -----SOUNDS: music and sound generating in Basic. -----NUMERIC: math and numeric routines for Basic -----ENCRYPT: file encryption & CRC routines for Basic -----MULTLANG: routines for translating/interfacing BASIC & other languages. -----APPS: source code for actual application programs -----COMMUNI: communications routines for Basic -----OTHER: various Basic routines -----VBDOS: stuff for VB-DOS ======================================================= -----VIDEO: screen & video routines for Basic (also see WIN_MENU & GRAPHICS) [HERCDMP] HercDump contains QuickBASIC 4 routines for printing of Hercules graphics screens to Epson or HP Laserjet compatible printers. [PSLJII] PSLJII2.BAS (Cochran, Steve; $0) is a callable routine to print a graphics screen (VGA, etc.) from a QB program to a HP LJII printer. [SCRNCODE] ScreenCode is a screen designer with BASIC source code generator. [SCRNDUMP] ScrnDump shows how to dump a graphics screen to printer. [BOXMAKR] BoxMaker lets you choose a screen border style, for which it will then generate the source code to add to your program. [BIGPRT] BigPrint 3.0 (Himowitz, Michael J.; $0) demonstrates techniques for displaying and printing messages containing large, bold characters. It is for QuickBasic 4.0+, and also includes some other screen routines. [HIRESCOL] HireScol (Johnsen, James L.; $?) shows how to have color in the 640x200 graphics mode in CGA. [PLOT3D] Plot3D is BASIC code to plot a circular wave in three dimensions. [QBFONT] QBFont is an article that describes how to display a user-defined character set of up to 256 characters in Hercules graphics mode using QuickBASIC or BASCOM 6. [QBICONS] QBIcons is a set of 13 icons for use in your QB/PDS graphics applications. Sample code includes a SUB for loading the icon files from disk. [QBQuick] QBQuick 3.0 (Roepenack, Scott; $0-$5) creates graphic displays for programs. Screens contain full borders, filler colors, text and palette backgrounds. A separate file is generated with all the source code for that screen mode. [SCROLL] Scroll is code for scrolling the screen up, down, left, right. [SetColor] SetColor.BAS (Zuck, Jonathan; $0) are routines that let you write to the screen in whatever colors are already at the cursor location. [VIDSTAT] VideoStatus (Kelly, Sidney J.; $0) is a set of QBASIC/MASM video detection routines. MASM source and OBJ files included, along with sample BAS source and an EXE file to show how it works. [SPLTSCRN] SpltScrn splits the screen into two windows. [BKSCREN] BKScreen (Hewitt, Bill; $10) produces QuickBASIC code to produce a screen display from a text file. The screen display file can then be merged or included in your QuickBASIC program. [DRFont] DRFont 1.0 (Roepenack, Dawn; $10) contains 10 fonts, a QLB and source that shows you how to use them. [Grad] Grad 1.1 (Long, Nick; $8) is a library for using gradient screen colors on VGA. [BOXDRAW] BoxDraw (De Palma, John; $0) is QB Sub for drawing boxes of a specified size, location, line type, and color. [ASC4QB] ASC4QB (Gaylord, Charles S.; $0) allows printing ASCII text anywhere on a graphics screen, rather than on just the default text lines. The program has a menu driven, ASCII Graphic Image file generator. It supports CGA, EGA, VGA, and Hercules hardware. It also supplies code for making use of multicolor .AGI files. [PCInput] PCInput lets you design input screens for Basic. [SD_AID] Screen Design Aid lets you design screens for Basic. [Helper] Helper helps create screens for BASIC programs. -----GRAPHICS: drawing and plotting routines for Basic [IMGBLD] Image Builder 1.1 (Eggers, Paul; $10) is a graphic utility for creating different graphic images, icons, fonts, or just shapes for use in your QuickBASIC programs. All images created and saved may be reloaded and modified. Requires EGA or better. Mouse is Optional. [BSPRITE] BSprite (Lee, David; $0) makes it easy to create "sprites" (graphics images) from which BASIC code is generated for merging with your own to use the graphics. [BENTTEXT] BentText lets you have different size text in the graphics mode. [SHOOTER] Shape Shooter 1.0 (Way Out West-ware; $10) lets you easily design and animate high quality VGA graphics for games and other applications. It permits editing of up to 64 shapes at a time. Drawing functions include line, circle, fill, shift, and flip. QuickBasic source code is included. [ANIMAT] Animat shows how to do animation in QuickBasic. [GRAFXMAS] Graphics Master 256 (Sexton, Fred Jr.; $30) is a library of graphic routines. It features mirror images, exploding, imploding, partial puts, virtual screens, and more. A demonstration is included. [BIZ_GRAF] Business Graphics (Ford, Nelson, ASP; $30) is the source code for the programs from the book Business Graphics for the IBM PC (Sybex, 1983) Although there are a few simple examples, such as pictorial graphs, window zooming, a drawing program and code for your own character set, two of the programs are complete, major programs: one for plotting on screen and the other for a plotter. [Designer] Designer (Young, Jan B.; $20) is a programming tool for BASIC users working with animated graphics. The BASICA source code is included for those who wish to study and/or modify it. Included with The Designer is a demonstration program which illustrates one way to program animation. -----MULTIBAS: multi-function libraries and routines [AABAS] AABAS 1.0 (Hanlin, Thomas G. III; $8) is a library of BIOS and DOS calls. Routines included are for display and keyboard, mouse, joystick, disk, printer, equipment info, XMS memory, and more. [ASMS4QB] Asms4QB (Kilday, Jack; $10) is a collection of assembler source listings for various subroutines for QuickBASIC. [BASDLX] Basic Deluxe (Verdun, Gustavo; $?) is a set of assembly language routines to be called by compiled BASIC programs. [MASTER] Master (Wesson, David A.; $0) is a set of subroutines for QuickBASIC. [MAXBASC] MaxBASIC (Marquis Computing; $5-$15) is a set of routines, sub-programs and files for QuickBASIC/PDS. The routines will read, write, create, and manage dBASE III, III+ & IV database files. Commented source code and a demo program are included. [SHORTSUB] Shortsub (Patterson, D. G.; $?) offers the following short subroutines: Yes or no at X1,Y1 location, Functions, Continue routine, Upperfy a string (in X$), Printer error routines (80 COLS), Printer error routines (40 COLS), Load disk A and disk B, Sets output for screen, or printer, and Reset function keys. [Q4T16B] Q4Tool Library 1.6 (Crouch, R. J. ASP; $24) is a small collection of programming tools for QB4+. Includes routines on Mouse Services, Windowing, Screen save/restore, Screen print, Screen string centering, and Program delays. [PBCLONE] PBClone Library 2.1 (Hanlin, Thomas G. III; $39) is a powerful set of routines written in assembly language for QB programmers. No QB programmer should be without a library of routines like this one. [QBWare] QBWare (AJM Software; $39) is a comprehensive set of callable routines for QuickBasic. DOS routines provide access to the DOS spooler and memory management routines. The BIOS subroutines let you interface to BIOS fro greater control of the computer system and increased speed. Windowing routines are also included. [QLib] QLib (Herr, Douglas; $25) is a library of assembly language subroutines for QuickBASIC's 2, 3 and 4. 4.5 and BC7. Routines include fast video, screen save/restore, windowing, horizontal and vertical scrolling, keyboard input, data entry and manipulation and more. Most video routines support the EGA 43-line mode, the Paradise EGA 132-column mode, support for Everex Micro Enhancer EGA card text modes, as well as Hercules graphics. Additional support is provided for LineEdit cursor and CursorON subroutines for monochrome EGA systems in 43-row modes, Super13a higher-resolution graphics for standard VGA, and BitBlock screen manipulation for 256-color graphics modes. The math coprocessor is also supported. [BP_TOOL] Basic Programmer's Toolbox 1.0 (Bill Smith; $25) is a collection of over 70 routines and functions for QB and PDS. Major categories of routines include date/time, video, disk drive (eg: file copy, tree), keyboard, mouse, user interface (eg: password, pulldown menus), and system (eg: reboot, videopage). LIB, QLB and INC files are included. [BASWIZ] BASIC Wizard's Library 2.0 (Hanlin, Thomas G. III; $39) is a set of routines written in BASIC and assembly language for use with the QuickBASIC and BASCOM compilers. It provides a powerful virtual windowing system, an expression evaluator, display detection, far strings, COM3 and COM4, pointers, memory management, math support and more. Requires a hard disk or high density floppy and [LibWiz] (included). [BOYETT] Boyett Utils for Basic 1.0 (Boyett, Will; $27) is a collection of utilities for use with QuickBasic, QBasic, PDS, and GW-Basic. It allows you to use patterns for coloring, convert PCX files to BSAVE format, list all modules, SUBs and FUNCTIONs of a QB program, compile and link only those OBJ's that have been modified since the last compilation and more. -----DOS_ACCS: DOS access routines for Basic [BasToDOS] BasToDOS (Morga n, James; $0) will allow you to get type of disk drive, look for first/next matching file name, get system time (to 100th seconds), get DOS version #, get free disk space, get/set current default drive, get current directory and change file attributes. [CSSTEST] CSSTEST is a linkable assembler routine for getting the amount of free space on a disk. An example of how to call the routine from BASIC is included. [DIR6] DIR6 (Link, Thomas; $0) will read a directory and return the directory information. It is in LINKable format. [DIRINFO] DirInfo (Editing Services Co.; $0) is an assembler routine to quickly capture directory information in QB programs. It will fetch file names, attributes, dates, and times into an array of user-defined type, with full control over file selection by attribute, etc. [DIRSUB] DirSub (Darter, Jeff; $0) is a QB INCLUDE file and sample code to access file names, dates, times, sizes, and attributes. [DMOSHEL] DmoShell demonstrates how to shell to DOS, including the SVSCR routines for saving the screen first and restoring it upon return. [ERRLVL] ErrLevel (Janke, Mike; $0) contains a QB routine and linkable C object module that allow you to set errorlevel on exit from a QB program. [EXISTS] Exists (Rouse, Christopher P.; $0) is an assembler routine for QB which determines if a specified file exists. [FILEXST] FilExst (Sharpe, Randy; $0) shows how to use CALL INTERRUPT in your programs to take advantage of DOS Interrupt services. This example searches for a specified file name. Written for QB 4.5. Source included with good internal comments. [GCOPY] GCopy will copy a file while in BASIC. [Mr_OBJ] Mr_OBJ 0.05 (Russell, Scott M.; $20) is a set of routines written in assembler that allows the QuickBASIC programmer to access DOS functions. [QBForm] QBFormat (Huth, Cornel; $0) is a QuickBASIC routine for formatting floppies. [READDIR] ReadDir (Editing Services Co.; $0) is an assembler routine for BASIC to read a DOS directory into a string array. [STree] STree 2.0 (Smith, G.; $0) is source code for graphically displaying directory structures, files, file sizes, etc. [QB4_SUBS] QB4-Subs (Sparks, Kyle; $0) contains several subprograms for QB4: DISKTYPE, QDIR, QB4DIR, WINDOW and SETFTD, the latter being a file date and time editor. SYSCHECK is code to check on system equipment. [QBSAMP] QBSamp contains QB4 routines for doing an equipment check, a monographics screen dump for Epson and HPLJ printers, and a pop-up directory program. BAS and ASM code is included. DIR_BAS Fairchild Computing $5 is a set of routines for reading directories which return a lot more information than the Files command. It also shows how to use QB's Interrupt and Interruptx routines. An extensive sample program is included which is very useful in its own right. [QBWiz] QBWiz 1.3 (Hanlin, Thomas G. III; $0) provides access to QB 4.5 internals and lets you set the DOS errorlevel on exiting a program. Source code is included. [EXENAM] ExeNam returns the path of the currently running program. [VOL_INF] Vol_Inf (Kelly, Sidney J.; $0) is a routine for reading and setting disk volume labels. [AHNuts] AHNuts 1.0 (Balentine, Lewis E.; $0) is an ASM library for reading directories, including subdirectories, date, time, attributes. [BasUpd] BasUpd 1.0 (Hanlin, Thomas G. III; $0) is a library of routines that adds PDS and Visual Basic commands to QuickBASIC. It includes disk routines, time/date functions and full source code. [AABAS] AAL for BASIC 1.1 (Hanlin, Tom; $8) Affordable Alternative Library for QuickBasic 4.x is a collection has over 75 BIOS and DOS-related routines and functions written entirely in assembler. [QCOPY] Quick Copy 1.0 (Roepenack, S.; $0) allows you to copy files from within your QB programs. [DOSBASIC] DOSBASIC (Kelly, Sidney J.; $0) is a set of QBASIC/MASM routines that provide information concerning the hardware and software environment. Source and examples are included. -----KYB_MOUS: keyboard, mouse and joystick routines for Basic [CAPLOCK] Caplock how to check and set CapsLock and NumLock. [KB_FLAG] KB_Flag shows keyboard scan codes. [STUFBUF] StuffBuf is an assembler subroutine that is callable from QuickBASIC that will insert keystrokes into the type ahead keyboard buffer. [QBMouse] QBMouse (Sparks, Kyle; $0) is a routine demonstrating control of the mouse with QB4. [EZMouse] EZMouse is a set of assembler mouse routines. [MOUSED] Mouse Designer (Whales Tale Software; $10) is a graphical mouse design utility. It outputs QB code and hex codes for producing the pointer you designed. [KeyBASIC] KeyBASIC (Kelly, Sidney J.; $0) is a set of QBASIC/MASM Mouse and keyboard routines that offer a fast mouse interface and easy access to the keyboard. The MASM source and OBJ files are included, along with sample BAS and EXE files. -----SORTSRCH: sorting and searching routines for Basic [BINSEEK] Binseek (Hanlin, Thomas III; $?) is a discussion of and a routine for doing binary searches of sorted data. [HEAPSORT] Heapsort is a sort routine based on the Heapsort alogrithm. [MATCHVB] Match (McMahon, Brian J.; $?) contains two functions which aid in the validation of text and in searching files for text matching a specific pattern. Wild cards are supported . [QSORT] QSort (Ford, Nelson, ASP; $0) demonstrates the QuickSort algorithm with graphic illustration. [SHELSORT] Shelsort is a "Shell" sort routine. [SHSORT] SHSort (Bathurst, Steve; $0) is a generic shell sort routine written in QB and to be used with a single key array. [SORT_BL] Sort (Buck, Lee; $0) shows a "Shell-Metzner" sort. The demonstration program SORTEST.BAS shows how to use the subroutine and also includes an interpreter BASIC version of a Shell-Metzner sort. This routine will only sort strings but it can be used to sort numbers if they are properly converted to a string. [SORTDEM] SortDemo is a demonstration program in QuickBASIC of six common sorting methods: bubble, exchange, heap, shell, insertion, and quick. [SOUNDEX] Soundex (Zuck, Jonathan; $0) is a set of three QuickBASIC functions for determining the Soundex code for a string: the original method, the "Hanlin" method, and a combination of each. Each of them have their advantages and disadvantages. ("Soundex" is a method of text searching that lets you search for "sounds like" matches.) -----DAT_TIME: date & time routines for Basic [Days] Days (Long, Lynn; $?) calculate number of days between dates. [Julian] converts dates to/from Julian, Georgian, etc. [CLOCKS] Clocks (Satterfield, Dave; $0) is QB source code for a set of time-keeping programs: a hex clock, binary clock, color clock, bar clock, and a regular analog clock. -----SOUNDS: music and sound generating in Basic. [Synth] is Basic source code for a simple app which draws a piano keyboard on the screen and lets the user play notes through the PC's speaker. [QBMIDI] is Basic source for accessing and controlling MIDI devices. [RPLAY] RPlay (Dersheimer, Rich; $0) is code for playing CMF files on Sound Blaster cards. -----NUMERIC: math and numeric routines for Basic [HPCL_JD] Hpcalc (HPCL-JD) (Dorsey, Jim; $0) is source code for an RPN type of calculator. [BCD_BAS] BCD_BAS 1.1 (Rouse, Christopher P.; $20) is a linkable subroutine for doing Binary Coded Decimal math. It is now compatible with Crescent Software's P.D.Q replacement library for QB. [CFIXQB] CFixQB (Mack, Jim; $0) is an assembler routine to round Currency variables at a given number of decimal places. ASM and OBJ files and sample code included. [HIMATH] HiMath (Jorgensen, Kevin T.; $10-$50) is a collection of higher math functions for QB that may be helpful in electrical circuit and vector analysis. Included are routines to solve double precision matrices, double precision complex number matrices, complex number arithmetic, inverse trig functions, and triangle solutions. [NUM2WORD] Num2Word converts a number to the written form. eg: "120" to "One Hundred Twenty". Useful for a checkbook program. [NUVAL] NuVal (Mack, Jim; $0) is an assembly language subroutine (source, OBJ and QLB) that gives an integer-only version of QB's VAL function. Unlike QB's VAL, NuVal works only with long integers, does not crash in case of an overflow, stops evaluating at embedded spaces, and 20 times faster. [ROMAN] Roman is a BASICA code to convert from Arabic to Roman numerals. [QBMATH] QBMath (Katelansky, David; $10) is a math library for QuickBASIC. [VeriCard] VeriCard.BAS (Ford, Nelson, ASP; $0) is a QB routine to verify credit card numbers via a checksum. This would be a good routine to add to order-entry or point-of-sale programs to catch typos when credit card numbers are entered. -----NETWORK: networking routines for Basic [NETWARE] NetWare 2 (San Miguel, Carlos and ProSoft; $0) is a library of subroutines for Netware that are intended to be linked with PDS 7.1. -----DATABASE: dBase, Btrieve and other database routines for Basic [SAYGET] @SAYGET is a set of routines for most BASICs to emulate the dBASE @..SAY..GET..READ statement. [BOPS] BOPS 1.1 (InfoNapse Systems; $0) calculates the most efficient page size to use for Btrieve files. [MHBTRV] MHBTRV 1.03 (MicroHelp, Inc.; $0) is a Btrieve interface module for use with MS BASIC PDS 7.0. It can be used with near or far strings and supports data records using variable-length and fixed-length strings. [AscDump] AscDump (Davies, Christopher; $25) can import/export ASCII files to/from Btrieve files, browse Btrieve files and generate XQL table definitions for Btrieve files. Other features include support for CURRENCY data type, and files using MBF floating point numbers. -----ENCRYPT: file encryption & CRC routines for Basic [BASCRYPT] BasCrypt (Ford, Nelson, ASP; $0) is a simple encryption routine that uses look-up/substitution. [CIPHER] Cipher is an encryption program. [Kryptic] Kryptic 1.0 (Customware Inc.; $5) is a data encryption/decryption library for QB 4.5. [CRCTEST] CRCtest (Jensen, Lyle; $0) is the source code for a CRC algorithm written in QuickBASIC. -----MULTLANG: routines for translating/interfacing BASIC & other languages. [DD_DEP] Directory Directory (DD-DEP) (Potter, David E.; $) is a routine that passes a string value by near reference from a QuickBASIC program to a Quick C routine. The purpose is to demonstrate the process of linking multi-language programs. [INTLAN] IntLan contains routines demonstrating procedures for use in QB4 and BASCOM 6 to call routines written in MASM, Fortran, Pascal and C. [BASCONV] BASCONV (Glass, Jim; $?) is for converting IBM Basic programs into Microsoft or IBM Fortran. It will not perform every detail of the conversion for you, but will perform the bulk of the drudgery. Careful inspection and editing of the resulting output file are vital if you wish to obtain a working Fortran program. [BASUPRT] BASUport allows you to unprotect an interpretive BASIC program saved with the P Parameter. [BDEX] BDEX (Beck, Randolph; $0) will facilitate conversion from BasicA to C, Pascal, or structured Basic. Commands are separated and unreferenced line numbers are removed. Any remaining line numbers are converted into labels and variables are listed separately. [BAS2QB] Basic2QB 1.1 (Slivkoff, Michael; $10) helps convert interpretive BASIC code into QB code. It removes unreferenced line numbers and produces a referenced line number list. [RB58] RB58 (Buerg, Vernon D. & Ford, Nelson; $0) will convert old interpretive Basic tokenized source files to ASCII. [123_WRIT] 123-Write (Vought, Thomas J.; $25) is a collection of assembly language routines to write Lotus 1-2-3 compatible spreadsheets directly from QB and PDS. Files written can be read from any Lotus 1-2-3 1a (or later) compatible program. [RS2IBM] Convert will translate programs from Radio Shack BASIC to IBM BASIC. -----APPS: source code for actual application programs [CLOCKDM] Clock (DM Research Co; $0) is source code for an analog clock using VGA graphics, including a second hand. [PLUS5] Plus5 (Jindra, Reverend Frank; $0) is another appointment reminder program, of which there are many, but the QuickBASIC 4.0 source code that comes with it is a very fine example of structured programming in QB4 and could be easily customized by the QB4 programmer. -----COMMUNI: communications routines for Basic [QUIKCOM] QuickComm 1.0 (Cleary, David; $0-$50) is an interrupt driven communications library for QB4. Quickcom supports Com1 and Com2 at baud rates up to 112k. -----PWR_BAS: stuff for PowerBasic compiler [PBTool_@] PBTool (Kellett, Andy; $20) is a collection of subroutines and example programs for the PowerBasic compiler. Over 65 files consisting of BASIC source code, many small utilities, and many executable files are provided. [PBWIZ] PowerBASIC Wizard's Library 1.8 [PBWIZ] (Hanlin, Thomas G. III; $29) is a library of nearly 325+ routines for PowerBASIC 3.0. It features archive viewing, disk directory viewing, 256-color VGA/SVGA/VESA graphic modes, BMP file support, keyboard control, EMS and XMS memory access, equipment detection, extended math and string routines, an equation solver, ANSI emulation, joystick support, SoundBlaster support, telecomm handling, and much more. -----OTHER: various Basic routines [BITSTUF] Bitstuff (Mack, Jim; $0) contains the MASM source and .OBJ for a set of bit-level manipulation routines to use with QB/BC. These routines will let you maintain 16 separate flags in a single integer, with quick access to any flag. [X10CMD] X10CMD (Drury, Matt; $0) contains code that turns on, off, or dims an X10 module. -----VBDOS: stuff for VB-DOS [BAS_BUG] Bas_Bug is a list of 2000 bugs reports and technical tips for VB-DOS, PDS, QB and MSBasic. The Knowledgebase document number is given for those with access to CompuServe. [FUELGA] Fuelga (Coyne, Aidan; $0) contains source code for fuel gauge-type form for use in VBDOS programs. A demo test file is also included. [INI_IO] INI_IO (Six, Raymond W.; $0) is a set functions that emulate the Windows Get/WritePrivateProfile. [KPHONE] Kphone (KAMware; $0) let's you create input boxes for entering formatted data, such as dates or telephone numbers. [PASSWORD] PassWord (Six, Raymond W.; $0) shows how to set up a password style text box. [CTRLPNL] PMCtrlPanl (Blaney, Robert A.; $0) allows updates to ControlPanel properties. Source included. [VBHELP] VBHelp (Microsoft Corporation; $0) makes it easy to create and edit help files and add help to your applications. [VBMAKE] VBMake (Dennigan, Billy; $0) uses an existing MAK file to create a makefile containing a list of dependencies including $include files. [VWEZ] Windows R-E-Z VBDOS 6.1 (CONNECT Software; $38) is a window management system for VBDOS. Users can make, save, restore, and delete up to 20 windows. Memory used to save windowed areas is outside of BASIC's normal data storage area leaving more room for the BASIC programs data. Features include input windows, multi-field input screens, choice windows, choice bars, get answer windows, pulldown windows, scroll windows, directory routines, keyboard and mouse routines, and information line routines for printing messages, directions, or prompts.