Thomas G. Hanlin III 3544 E. Southern Ave. #104 Mesa, AZ 85204 This is a list of some of the software which I have written. This software, or a similar collection (things get added or removed over time) will be sent to you free if you register any of my shareware products, or you may order a set of disks for $5.00 (foreign orders must be via international money order and include $4.00 shipping). This does not include shareware registration fees, if any. You are still expected to register any shareware that you find useful. The $5.00 Sampler fee may be applied toward any registration. The registered versions of each library come with full source code-- often a megabyte or more, providing an excellent learning opportunity for beginners and old pros alike. Assembly language source code is designed for MASM 6.0 and may require alteration to assemble with A86, OPTASM, TASM, or older versions of MASM. DOS BASIC source code is designed for QuickBasic 4.0-4.5, BASCOM ("PDS") 6.0-7.1, and Visual Basic 1.0, or for PowerBASIC 2.1, depending on the library. Pascal source code is designed for Turbo Pascal 6.0 or Quick Pascal 1.0, but should compile with Turbo Pascal versions dating back to 5.0 (and, of course, newer versions as well). Windows DLLs are currently written in Microsoft C 7.0, but this may change in the future-- I am not at all happy with this compiler or its so-called documentation. 2MON: Utilities for dual-monitor systems. Free. Utilities include a clock TSR which runs on the mono display, a utility to clear the mono display, and a TSR which remaps the PrintScreen key-- instead of going to the printer, it copies the color display to the mono display. AABAS: Affordable Alternative BASIC Library. Shareware ($8). This is a good library for people curious about the workings of their computer, learning how to use libraries, or interested in writing their own assembly language routines for QuickBasic. It is a collection of scores of simple BIOS and DOS-related routines written in assembly language. AABAS is not as fancy as my other BASIC libraries, but it's quite useful in its own right and makes a great learning tool. ASMWIZ: The Assembly Wizard's Library. Shareware ($25). This is a library for assembly language. The library will work with A86, MASM, OPTASM, and TASM. Only .COM files are supported. Routines include text displays (machine-level, BIOS, and DOS), graphics (Hercules, CGA, EGA), number base conversions, long integer math, file matching and command-line parsing, pseudo-random number generation, countdowns and delays, buffered file support with critical error handling, environment scanning, string functions, mouse support, sound generation, control over Break, loading of BSAVE-format files, and more. BASUPD: BASIC Update Library. Free. This library provides routines for QuickBasic 4.x which mimic new functions and commands provided by other Microsoft BASIC compilers, such as PDS 7.x and Visual Basic. These include disk routines and a powerful selection of time and date functions. BasUpd comes with full source code. BASWIZ: The BASIC Wizard's Library. Shareware ($35). This is a library for QuickBasic and BASCOM (including "PDS", the "Professional Development System"). It contains a numeric expression evaluator, so you can convert an equation into a number; far strings, so you'll never see "Out of String Space" again (EMS is supported too!); powerful file handling, with optional buffering and built-in critical error handling; telecommunications support, including DTR control, carrier detection and more for COM1 - COM4; pointers and memory management, giving BASIC the capability for flexible data structures long enjoyed by C, Pascal and Modula-2 programmers; a virtual windowing system that gives you much more than just windows-- change the size, move 'em around, scroll a window around on a huge virtual screen, all smoothly and at lightning speed-- the BASWIZ demo program gives some hint of what you can do. The virtual windowing system is where BASWIZ really shines. To the best of my knowledge, there is no better text display management system for BASIC. Graphics capabilities are also included. Besides replacements for the BASIC graphics support for CGA, EGA, VGA and Hercules modes (no TSR needed), BASWIZ adds many new capabilities. You can print text and graphics screens on an Epson-compatible printer or treat the printer like a graphics screen with a special set of text and graphics routines. A selection of fonts is available and can be displayed in any desired size. A pseudo-graphics mode (80x50) is available for use on any display adapter. There are also two new VGA modes that will work on any register compatible VGA, which allow 320x400 or 360x480 resolution in 256 colors (compare that to the BASIC SCREEN 13 mode, with only 320x200)! Also SuperVGA (Tseng chipset) support-- up to 1024x768 in 256 colors. Detect the current display adapter, draw dots, lines, circles, ellipses, regular polygons... it's all here, with detailed explanations and assorted example programs. Last but not least, the math routines. These provide extensive math support in three areas: new or faster routines for BASIC's existing math, precision math using fractions, and the ultimate in numeric precision: BCD math with up to 254-digit numbers. Extensions to BASIC's existing math include inverse trig and hyperbolic trig functions, the error function, constants and conversions. Fraction math is fairly limited at the moment, supporting little more than the basic four functions. BCD math includes much more than such basics, though-- trig functions, square roots, factorials, constants with hundreds of digits of precision, etc; formatted output may be done to your specs. You can place the decimal point anywhere you want, so this is perfect whether you deal in very large or very small numbers! BPP: A BASIC PreProcessor. Free. This utility provides a powerful meta-language for QuickBasic, BASCOM (including "PDS"), and even the QBASIC provided with DOS 5.0. It processes your code before the compiler gets to it, allowing conditional compilation, underscores within variable names, flexible "include" files (which may even contain SUB and FUNCTION definitions), name substitutions, and more. C programmers have had preprocessors for years-- now there's one for BASIC too! EXECOM: EXE-to-COM converter. Free. Like EXE2BIN, this utility converts .EXE files to .COM files. It's smaller and faster, though, as well as offering a few additional conveniences. Assembly language source code is included. EXETOOL: EXE Tool. Free. This program examines .EXE files for validity and can tell you whether the .EXE was designed for use with Microsoft Windows. If the .EXE file is determined to be too long, as it might be if you got it using an older file transfer protocol, you are given the option of truncating it to the right size. KEYCTL: Keyboard Control. Free. For AT-class machines only (286, 386, 486), this utility allows you to speed up your keyboard (or make it less sensitive for kids, etc). You can also swap the positions of the CapsLock and Left Ctrl keys, useful for civilizing the 101-key "enhanced" keyboard. Assembly language source code included. LIBWIZ: The Library Wizard's *BASIC Library Manager*. Free. This is a management tool for handling and customizing BASIC libraries. It is required for my BASWIZ and PBClone libraries. OBJTOOL: OBJ Tool. Shareware ($10). This must be the ultimate tool for manipulating .OBJ files. You can select files for inclusion or exclusion using wildcards, time, date, and size comparisons, and even the results of a search through the .OBJ file. View the file's stats, rename publics, externals, and default libraries, delete default libraries and languages, check for validity, repair checksum errors, ObjTool has it all. Useful for reducing the size of libraries, resolving conflicting routine names, patching .OBJs and just snooping around! PASWIZ: The Pascal Wizard's Library. Shareware ($25). This is a library for Turbo Pascal and QuickPascal. It provides high-powered math routines, new string support, mouse management, music, BCD math, and other routines. The math routines provide a numeric expression evaluator which allows you to convert equations into numbers at run time. The math capabilities of Pascal have been expanded significantly with new trig, inverse trig, hyperbolic trig, and other functions. For the ultimate in numeric precision, BCD math is also provided, allowing you to manipulate numbers of up to 254 digits-- not just with the basic four functions, but trig, square roots, factorials, constants with hundreds of digits of precision, etc; formatted output can be done to your specs. You can place the decimal point anywhere you want, so this works equally well with very large and very small numbers. String support includes compression, encryption, fuzzy comparisons, and other goodies. The music manager works like the BASIC PLAY language and BBS "ANSI music". PBBACK: The PB Backwards-Compatible Library. Shareware ($25). This library is like my PBClone library, but is compatible with the full range of QuickBasic compilers: QB 1.0 - 4.5. It is much easier to set up than PBClone but does not support all newer compiler features and offers some 300 routines. See the description for PBClone, below. PBCLON: The PBClone Library. Shareware ($35) This is a library for Microsoft BASIC compilers: QuickBasic 4.x, BASCOM and PDS, and Visual BASIC for DOS. It is the successor to my old ADVBAS library. With over 550 routines, this library covers a little bit of everything: mouse support, disk wrangling, string mangling, keyboard input, equipment detection, graphics, a wide variety of display management, directory searching, text compression, viewing archive directories (.ARC/.ARJ/.LZH/.PAK/.ZIP/.ZOO), matrix math, dates, times and countdowns, sorts, binary searches, graphics, and... well, it's hard to describe such a collection other than to say "it's probably in here"! PBClone uses a low-level approach, giving you the greatest flexibility possible. BasWiz uses a higher-level approach, giving you more power for less effort. These libraries can be used separately or together. PBCWIN: The PBClone Windows Library. Shareware (1993: $19.95). This is a DLL for use in programming for Microsoft Windows. It is oriented specifically towards Visual Basic, but can be used with other Windows languages that support DLLs if you know what you're doing. There are 79 routines in the first version, including bit manipulation, array initialization, PEEK, POKE, and SWAP routines, checksums and CRCs, equipment information, string testing, and more. PBWIZ: The PowerBASIC Wizard's Library. Shareware (1993: $25). This is a collection of units for Spectra's PowerBASIC compiler. It includes archive viewing (for ARC, ARJ, LZH, PAK, ZIP, ZOO), disk directory viewing, 256-color graphics modes (320x200 and 360x480 on any VGA, more on SVGA), mouse and keyboard control, EMS and XMS memory access, equipment detection, extended math and string routines, a numeric equation evaluator, ANSI emulation, et al. QBWIZ: The QuickBasic Wizard's Library. Free. A collection of routines which allow you to access internal variables for QuickBasic 4.x, BASCOM 6.x, and PDS 7.x. You can retrieve the screen mode, display adapter type, DEF SEG setting, I/O redirection status, current screen colors, and many other useful values. VCLOCK: Video clock TSR. Free. This tiny TSR provides a running display of the time. You may specify screen position, 12 or 24 hours, whether to display seconds, the colors to use, and other parameters. Two versions are provided-- one for 8088 PCs and one for later machines. Assembly language source code is included.