Gordon Peterson's Software Products

Available Shareware Products

Duplicate Image File Eliminator. This program helps find and eliminate duplicate image (or selected other-format) files downloaded from Usenet newsgroups by the Agent and Free Agent newsreaders (and perhaps others). Many files get reposted to multiple newsgroups (or periodically to the same newsgroup). If you have collected a large number of downloaded images and other such files, you no doubt have downloaded many files which are the same. Finding and getting rid of the duplicates is normally a difficult and time-consuming process, especially when the duplicate files might be in different subdirectories of different disk drives (and possibly even on different computers within a local area network). The duplicates might or might not have the same name (usually they have a name which differs by a numeric suffix added by the newsreader software at the end). If they are in different subdirectories or on different disk volumes, they might have exactly the same name; on the other hand, just because files have the same name doesn't mean they are duplicates. Anyhow, DUPEX makes it easy to prune those duplicates and recover a lot of your disk space. (The program also even works on network volumes which are not assigned to a drive letter.) Click to download a copy.

Speaker Device Driver. This MS-DOS device driver provides a buffered, interrupt-driven mechanism allowing programs written in essentially any programming language (even batch files!) to send simple sequences of sounds to the PC's loudspeaker. This is ideal for audible prompts, especially in data entry situations where the operator shouldn't have to take their eyes off the source document. It also allows you to change your PC's default "beep" to something more pleasant, even a short tune if you like. The driver (which can be loaded high) is supplied with about four hours of simple music files as one example of something you can do with it. Click to download a distribution copy of my Speaker Device Driver (about 135K bytes).

GEPKAT Diskette Cataloguing System. This MS-DOS program allows you to very efficiently catalog your collection of diskettes, CD-ROMs, removable disk cartridges, even the contents of your hard drive(s) if you like. It can handle disks of essentially any size, is very robust, and easy to use. I have used it to catalog my personal collection of over 3000 diskettes (it can handle up to 10,000 disks). It will find files in all subdirectories, and even files stored in ZIP, ARC, LHA, and ARJ archives. (Note that this version needs updating; I don't think it presently will handle long filenames.) Click to download a distribution copy of my GEPKAT Diskette Cataloguing System (about 240K bytes).

GEPBACK Hard Disk Backup System. This revolutionary system, not yet released, works with GEPKAT to constitute the first CORRECTLY DESIGNED hard disk backup product ever written for MS-DOS. It will probably involve franchised service providers in local areas.

Available Professional Products

SIMULA Benchmarking Support System. This system makes it much easier to benchmark multiuser client/server or other transaction-oriented applications. It can support up to hundreds of PC workstations running MS-DOS text-mode applications. Operator keystrokes at each station are provided based on editable/compilable scripts for each station. The system makes it possible to generate a repeatable, calibrated load for determining server, LAN, and application performance under known conditions and various scenarios. An independent and low-cost LAN connection is used between the PCs under test to avoid loading the principal LAN whose performance is to be measured. It is possible to control the machines under test from a central control PC if desired. This system is presently in use saving money at the French Social Security administration, the largest public administration in France. You can access an online version of the SIMULA User's Guide if you'd like further, detailed information about the system.

ARCnet Traffic Monitor and Diagnostic. This software provides a way for ARCnet LAN users to monitor traffic levels and detect presence/absence of nodes on their ARCnet systems. It works for essentially all LAN software products.

Diverse Past Products

This section covers various and sundry other products I've been involved with developing. Many of these are one-off products, or belong to the companies for which they were done. Hopefully their incredible diversity will demonstrate the range of exposure I've had.

Datapoint Corporation

All of the following software projects were done in Datapoint assembler language unless otherwise noted. They are listed in alphabetic order. I was at Datapoint from 1974 through 1983.

ARC System local area network I was the person who proposed and created what became the world's first commercially successful local area network, Datapoint's ARC System. Announced in December 1977, this system went on to sell well over a billion dollars' worth of equipment for Datapoint Corporation, and set standard concepts for remote resources which many of the most popular LAN systems still employ to this day. In some aspects, this original system was still more sophisticated than most of today's best LAN software products.

BACKUP This was a disk-to-disk backup system to which I added very sophisticated real-time speed-optimizing disk driver routines. These included monitoring in real-time the rotational position of the rotating spindles, calculating based on recent past performance the number of milliseconds that anticipated seeks would take, optimizing the sequence of operations to reduce rotational latency, and the like.

DOS. Operating Systems I was the person who during several years was charged with enhancing, documenting, and developing five separate versions of Datapoint's Disk Operating System. These included DOS.A, DOS.B, DOS.C, DOS.D, and DOS.E. This included adding many interesting new features, including the "DOS Functions" capability which allowed extending the function of the operating system, despite memory limitations imposed by a very tight memory constraint (the main part of the operating system had to run in a footprint of only 4k bytes!)

COPY This was a utility (surprise) which allowed simply copying files without caring what their data format was. Before I wrote this one, Datapoint curiously only had utilities that allowed one to copy specifically text files, or specifically executable files, or whatever. On the large-capacity-disk operating systems, this command included the same high-speed sophisticated real-time performance optimizations as were used in the BACKUP utility already described.

DOSGEN This was a utility which allowed one to place a working DOS. file structure onto new hard drives. I also wrote the related utilities to perform low-level formatting on those hard disks where that was necessary.

DUMP This was a generalized utility that allowed interactively dumping and inspecting Datapoint disk files in binary form, in a device-independent way.

REFORMAT A program to reformat, compress, and generally mulch over text files in a wide array of formats and styles.

UNSPOOL This was a multitasking program which unspooled print files to up to three printers simultaneously. It supported independent queues for each printer within a single file, supported job priorities, forms types, multiple copies, and many other advanced features designed to appeal to shops used to large mainframe environments and their sophisticated printer spooling. A first level prototype was actually developed in Datashare (Datapoint's multiterminal business programming language) but the final released product was in assembler language.

Comp-Data Service

Intelligent Device Interface. Firmware for an intelligent Z-80 based interface for a hot lead typesetter. These were used (maybe still are) by a nationwide company that used them for personalizing bank checks. Written in assembly language.

Discotheque Lighting Controllers. A very sophisticated discotheque lighting system, run by a Datapoint computer with keyboard and CRT console, supporting 64 channels and 100 independent brightness levels each. Each of the 64 channels could support about 2500 watts of lighting. The operator could easily define numerous independent "lighting sequences" (such as chases, flashes, etc.) which could be saved, loaded, and run (using a multitasking technique) in parallel. Unlike normal theatrical lighting, this system had to be designed for maximum spontaneity and the ability to create a lot of activity on the dance floor with a minimum of effort. I also worked on several other simpler lighting controllers that were used in other discotheques. This system was written in Datapoint assembly language.

Discotheque Sound Systems. I designed and installed sound systems for two separate discotheques, at least one of which was really an ambitious effort and an extremely nice setup. I also did a truly good sound system for a fine top-floor "observation"-type restaurant in a San Antonio office tower.

Credit Card Telephone. Firmware for two or three prototypes of a Z-80 based credit card pay telephone. This design incorporated a lot of novel and unusual ideas, including the ability to easily redefine rentable speed-numbers (the whole front face of the phone was a membrane keypad) and to provide all kinds of market research information.

Long Distance Telephone Call Routing. I developed firmware and software for two different long distance telephone call routing and billing systems. Portions written in assembly language, other portions written in Databus/Datashare.

Hotel Guest Telephone Call Accounting. I worked on and installed a system in a large hotel for collecting, rating, and accounting for guest long distance telephone calls. Portions of this system was written in assembly language, and other portions written in Databus/Datashare.

Museum Diorama Controller. I developed a Z-80 based control system which ran a museum diorama, "Sounds of South Texas". This controller had to operate four stereo cassette decks, two different language narrations (switch-selectable), various ambient sounds, four channels of ambient lighting (fading from day to night and back through a suitably ruddy sunset/sunrise), and almost 30 channels of pinspots to point out the various specimens. The diorama used a satellite/subwoofer main sound system, plus almost 30 switched loudspeakers so each animal's sound would appear to come from the appropriate specimen. We also animated a rock squirrel using pneumatics so he could rise from his hole, and then dart back in. This was ROM-based firmware, written in Z-80 assembler language. It certainly brings a whole new dimension to the term "multimedia" (grin!).

Airport Parking Lot Control. I worked on a project proposal to automate the control system for the parking lots at San Antonio International Airport.

Consulting in France

Robotized Shipping Line. I worked in a team developing the LAN control system for a robotized automated pick/pack/ship system installed as a demonstration project in IBM's personal computer distribution center, south of Paris. This system was a multitasked, LAN-based system and the portions I worked on were entirely written in assembler language.

Software Patching System. I was involved for a time with a company whose product required generating patches to released commercial software products so they could use DOS memory partitions as large as over 900K. I wrote a series of utilities (including a mini-disassembler) to locate and identify areas of the programs which needed to be patched, along with the necessary software to help generate and maintain the needed patch files. Much of this work was done in SNOBOL4+.

LAN Installations and Support. I helped numerous clients install and maintain Novell and other LAN systems. Clients included diverse organizations: a major international artist, France Telecom (the French ATT), a large furniture dealer/distributor, a printing company, a real estate management company, a stable where they raise and train race horses, several nonprofit educational organizations, and more. These installations often included subsequent hardware and software support, plus periodic maintenance, software and hardware upgrades, and the like.

Commercial Game Platform Conversion. For this project, I converted a commercial video game from a Motorola 68000-platform (Atari ST) to Intel platform for the PC. The project involved the conversion of almost 15,000 lines of Motorola 68000 assembler language to Intel assembler language, a task for which I wrote a Motorola-to-Intel assembler language cross-compiler, along with a variety of other useful utilities. I wrote the cross-compiler and most of the utilities in SNOBOL4+, some in SPITBOL instead for greater speed, and with final cleanup and testing of course (as well as the very hardware-dependent graphics drivers) in assembler language. I was able to retain the all the sprites and graphics files in their exact, original Atari ST format... only the executable itself for the game had to change.

Data Conversion and Recovery. I helped the OECD (an economic research and analysis branch of the United Nations) recover and convert hundreds of word processing documents and spreadsheets (which they had on Apple II diskettes) so they could use them under Microsoft Word and Quattro Pro on their PCs. A lot of the data massaging (once the data had been moved to the PC format) was done in SNOBOL4+.

Product Development. I helped a French company develop a concept and prepare an easy-to-install prepackaged Novell-based LAN product. This involved (among other things) selecting the products and software to be used, qualifying vendors, and helping arrange direct import of the needed hardware from Taiwan and other foreign suppliers.

Payment/Invoice Matching Program. I developed a program for a customer to help figure out which invoices a customer was paying with a single check. The company often would receive a check from a customer who had several outstanding invoices (and sometimes, credits) without an indication of which invoices (and credits) it was to cover. The program I wrote would try to find some combination of due and credit amounts outstanding for that client which, combined, would total the amount of the payment received. Turns out to be an interesting problem, especially in trying to optimize execution time of what is essentially a combinatorial problem... without the optimization attempts taking longer than the amount of time they would be likely to save! This program was written in ICON.

Multimedia Video Wall. I developed and installed a three-processor LAN-based control system for a 32-screen dual-section video wall artwork which was installed aboard a large cruise ship. This involved travel to Israel for coordinating work at the two Israeli hardware suppliers, as well as time spent installing the system onboard the ship at the shipyard in Italy while she was being fitted out. I assisted the artist and his staff in adapting their artwork to run with the computer system, at the artist's studio in Paris. I later (during the maiden voyage in fact) added audio capabilities to the system at the request of the artist. This system runs under software created using Tempra Media Author, and the processors are linked together using ARCnet and Little Big LAN networking software. Some of the utilities used to support the software are written in SNOBOL4+.

Virus Analysis and Decontamination. I helped several clients to remove virus infestations and recover their data to the degree possible. I also disassembled and analyzed the behavior of a single virus (FRODO, 4096, or the "Hundred Year Virus") in detail, to help develop strategies for defending an innocent businessman and his young employee who had inadvertently passed along a virus that they were unaware they had.

Telephone Call Accounting. I developed a system to rate and bill telephone calls as reported by a company's PBX, including reports breaking them down by originating extension, destination country, and the like.

Mailing List Systems. I developed database systems for maintaining a fairly complex mailing list application, including various programs able to massage that list into forms suitable for database publishing using Ventura Publisher. Some of this programming was done in xBASE, some in SNOBOL4+.

File Conversion Projects. I helped numerous clients with various kinds of conversions of files from one format to another and other file processing chores. These involved recovering images that had been stored in "orphaned" file formats, processing HP printer control language soft fonts and print files to massage the information therein, locating and structuring the desired information from highly UNstructured data files, and the like. Most of this programming was done in SNOBOL4+, some in SALT, some in C, some in ICON.

SIMULA Benchmarking Support System. This is a sophisticated system for benchmarking multiuser transaction and client/server applications. This software includes keystroke capture and replay utilities, script generators, a script compiler, a multitasked data collection server, and a variety of other software tools. Currently at use in the largest public administration in France. This project was written in SNOBOL4+, assembly language, and C. The multitasking package used was Thomas Wagner's excellent CTASK package. The system uses a secondary, ARCnet LAN connection for its control and data collection, to avoid loading the primary LAN system under test.

Consulting in Dallas

Hard Disk Data Recovery. I've helped client companies recover their data from hard drives whose data structures have been damaged by viruses and/or software/hardware failures.

Strategic Planning. I've helped clients analyze their options for evolving their hardware and software systems.

Device Interfacing. I helped a company interface a sophisticated electronic measuring device to their data entry program (written in PCBUS), to reduce time spent manually keying in the same data, and to reduce the likelihood of errors.

Database Design. I helped various companies to explore converting existing computer-based and manual methods to Windows-based database systems using Access and/or FoxPro, including the development of prototype applications using each product.

System Maintenance. I've helped numerous clients update their software with improved features, Novell version upgrades, bring applications systems back up where critical databases have been damaged by power failures and the like.

LAN Consulting and Installation. I install and maintain both Novell and Windows 9X and NT-based local area networks and help ensure that the resulting system meets the goals of the organization, and at the best cost/benefit ratio.

Internet Consulting. I've also helped numerous businesses get their business on the Internet, including strategies and implementation for Web sites.

File Conversions. I've done a lot of file conversion work. This takes many forms but one common form is converting print files back into importable, comma-delimited files suitable for import into other database systems.

Scripted Communications. This project involves scripting which converts, processes and transfers files every evening on an unattended basis to a nationwide network of showroom locations.

Database Integration and Conversion. This project involved converting and integrating multiple dissimilar databases (different field names, different incoming database formats, different data value coding, field subsets, etc) into a combined, unified database. The resulting programs allow merging numerous similar-but-not-identical xBASE, FoxPro, comma-delimited and Word-merge data files into a consistent, coherent database. A full set of rules and functions permit specifying conversions on a field-by-field, database-by-database basis.

Y2K Conversions and Testing. I've done a lot of work fixing systems that needed work to be Y2K compliant.

Impact-to-Laser-Printer Migration. I'm helping one client migrate away from a technically obsolete impact line printer and move to more modern, high-speed laser printing. This also includes both convenient online access to previously printed files as well as automated formatting and forms overlay capabilities.

Corporate Process Re-engineering. This has helped companies run their businesses more efficiently and effectively, in part by providing management with information tools to help them quantitatively measure their performance and improvement.

Database Case Conversion. This was a client who wanted to convert their large address database from all-upper-case to mixed case. Sounds simple enough, but the entries included numerous countries (with different capitalization standards), unusual/irregular name formats, acronyms, certifications, codes, and many other special cases which made the project interesting and fairly challenging.

Expert Witness. This was advising and assisting a client with a (software) patent dispute case.

Technical Document Translation. This project involved the translation of about 900 pages of heavily formatted technical documentation from French to English.

Odd Hardware Location. This client was looking for an old, obscure piece of hardware that they needed in order to demonstrate "prior art" in a another (hardware, this time) patent dispute case. I managed to find them not just one, but several examples of the very unusual disk drive they needed.

Disk Data Damage Analysis. This interesting project involved a client with a very large collection of data files, the results of many years of experimental research, stored on a (supposedly failsafe) RAID array, which had been corrupted. My job was to try to determine the nature of the damage to the data and file structures, what had probably caused it, whether it was likely to be recoverable (i.e. could some or all of the damaged structures be reconstructed, or some of the experimental data salvaged) and general related recommendations and suggestions.

Improving Invoicing Operations. This project involved improving a backend accounting application's invoicing strategy. They now keep online searchable (in many unusual and creative ways) archives of all their invoices, eliminated their costly preprinted tractor-feed forms, eliminated their need for forms decollating and most forms bursting, and now allow their invoices to be sent (automatically) by either E-mail or fax, or postal mail as appropriate on a customer-by-customer basis. I managed to reduce their outgoing postal mail load each month by nearly two-thirds, saving on labor, postage, envelopes and forms.

Automated Incoming E-mail Processing. For this client I wrote an incoming E-mail processing "bot". This "bot" automatically retrieves and processes hundreds of pieces of incoming E-mail per day, including the monitoring of automatically generated outgoing E-mails and faxes, re-sending them when necessary, generating and archiving/e-mailing exception reports, cleaning up backup copies when sending was successful, forwarding unusual incoming mail for manual handling, and generally facilitating E-mail operations.

Improving Price Quotations. This client was sending between a hundred and two hundred faxes per day (all of those different) to their customers with price quotations for their (market-priced) products. This meant not just printing all these faxes and standing over a fax machine each day, but long delays in getting the faxes to the customers, sometimes arriving after they'd already placed orders with other suppliers. I managed to help them to automate the sending of these faxes, eliminate embarassing errors that sometimes got price quotes sent to the wrong customers, and get them all to their customers far faster.

Virus and Spyware Decontamination. For many clients I've helped them to remove viruses and spyware from their computer systems, and given them advice on how to prevent recontamination by these and other threats.

OCR Error Cleanup. Optical Character Recognition can be great when it works, but can be very frustrating when it doesn't work as well as it needs to. For a variety of different clients, I've written programs to find and automatically correct common OCR recognition errors, which has greatly reduced the amount of data which must be corrected manually.

Web Site Creation. I've created numerous Web sites for diverse customers... several simple E-commerce sites for small mail-order companies, and a site for a non-profit organization to help them establish their presence, seem bigger than they really are, and find both volunteers and contributors.

Internet Domain Establishment and Maintenance. I've helped numerous companies select, establish and maintain their domain name and Internet presence.

Improving E-mail operations. I've helped clients to improve their E-mail operations by speeding the queueing of outgoing E-mail, reducing or eliminating mailbox overflows (and, subsequently, bounces and loss), processing incoming E-mails to eliminate annoyances and hazards, and advanced spam/virus/worm detection technologies.

Political Campaign Support. I've provided numerous capabilities to political campaigns, including more advanced and higher performance ways for them to search and manipulate databases (notably including large voter registration databases) in new and particularly useful ways. This has made their volunteers and staffers very much more productive.


Use the BACK control on your Web browser, or click here to return to my main home page.

This page and all linked contents originating with me are Copyright (C) 1995-2007 by Gordon E. Peterson II, all rights reserved worldwide. Last revised March 8, 2007.