Bob Penoyer
Downloads Page

Each of these utilities was written to fulfill a need that I had at the time. You may download them at your own risk and copy them freely as long as you do not attempt to modify or reverse engineer them. Though I made every effort to make the programs useful and problem free, they are available "as is" with no guarantee that they will suit your needs, no guarantee that they will not cause problems on any system on which they are used, and no guarantee against consequential damages.

All applications are written in C/C++ and all are intended for use on 32-bit and 64-bit Windows® systems: Windows 7/8/10.

Some 64-bit versions began to become available beginning January 1, 2013. These may or may not offer an advantage on a 64-bit Windows system. Both 32- and 64-bit programs will run on a 64-bit system. Any attempt to run a 64-bit program on a 32-bit system will simply evoke an error message.

All files are in ZIP format. WinZip® can be used to unzip them. Simply remove the EXE file from the ZIP file and it's ready to run. No installation is needed.

These programs are not supported and are infrequently maintained. Translation: You're on your own.

A COMMENT: Windows 10 might open a warning window when downloading and running these programs for the first time: "Windows Defender SmartScreen prevented an unrecognized app from starting. Running this app might put your PC at risk." My apps are unrecognized because I don't register or pay for them to be registered with Microsoft/Windows. As an individual developer, such an expense is not justified in my opinion. These apps are of the same quality as they were before Windows 10 began to provide this warning.

Name Description

Ver. 6.01

RootLocus is a serious program for the analysis of linear, closed-loop control systems. It’s designed for the experienced engineer or engineering student. Because the download also includes a thorough, clearly written 77-page User’s Guide, RootLocus is a useful tool for anyone who wants to learn, understand, and conveniently use the root locus method. Learning is facilitated by several built-in examples that can be computed and plotted automatically.

RootLocus quickly and easily plots a root locus using an open-loop transfer function that you provide. Simply enter the numerator and denominator coefficients, select the gain range, and choose a plotting density. Click the Calculate button and the root locus is instantly plotted.

Drag the scrollbar to vary the loop gain and watch the poles move along the locus. Observe the current gain value and pole coordinates in the adjacent tabular window. Click a button to plot either the step or frequency response for the selected gain and pole positions. Automatically estimate the damping factor of second-order systems. Zoom in on the root locus plot to examine areas of interest.

Quickly, easily, and confidently find the conditions for stability and instability. Easily evaluate the conditions needed for the system performance you want.

RootLocus can also plot Bode plots. It's informative to compare the stability results obtained using Bode methods with the results obtained using root locus methods.
(, Ver. 6.01, 2.3MB)

Ver 3.42

If you've begun playing the popular new game Sudoku, you will enjoy using this program. Called Sudoku Playing Palette, the program takes the unnecessary work out of playing Sudoku. It doesn't play the game for you but it reduces the need for the player to figure out what numbers may be played at each location. It eliminates the scribbling of notes inside the game. By relieving this tedious aspect of Sudoku, it allows you to concentrate on the correct logical choices. In short, it lets you simply play! (, Ver. 3.42, 2.0MB)

Ver 4.21

Grepsub searches ASCII files through subfolders and looks for multiple strings.

Grepsub is an excellent tool for programmers because it can be used to find sets of commands and parameters in source code listings, something typically not possible when using standard code editors. This was the reason for Grepsub's creation.
(, Ver. 4.21, 1.4 MB)

Byte Counter
Ver 1.2

Counts all file space in the selected folder and all of its subfolders. This is useful if you make backups and need to know that the folder you are about to back up will not exceed the available space on your backup medium. (, Ver. 1.2, 549 KB)

Big Files
Ver 5.11

January 12, 2018

New version with bug fixes. Searches the selected drive for the largest files on that drive. This is useful if you are running out of space on a disk or partition. By identifying the largest files (e.g., redundant image or video files) you can decide if you need to keep that file or if the file can be deleted to yield additional disk space. You can search for all files or files of particular names or extensions. Wild cards can be used. (, Ver. 5.11, 1.47 MB)

This tool can be used to determine if a selected set of feedback taps implements a linear, maximal, pseudorandom shift register configuration for a shift register of a given length. Thus, it can be used to determine if a proposed hardware design will be maximal.

The 64-bit version uses 36 stages. The 32-bit version still uses 32 stages.

(, Ver. 2.02, 1,357 KB)
(, Ver. 2.04 - 64 Bit, 2,068 KB)

Appends leading line numbers to an ASCII file. This is useful for documenting software source code. (, 226 KB)

If you use a stock broker that uses commissions of fixed amounts, not a percentage of the purchase/sell price, this utility can be helpful for establishing prices for limit orders. Given the purchase price, the number of shares, the purchase commission, and the sell commission, you can simply enter the desired profit (or loss) as a percentage and automatically calculate the per-share sell price required to achieve the desired profit (or loss). (, 205 KB)

Ver. 2.20

Finds the best possible resistor pairs such that either: (1) their ratio is as close as possible to a desired ratio; or, (2) an unloaded voltage divider delivers a voltage as close as possible to a desired voltage. This may seem trivial, especially for the old engineers who used to use a slide rule for this task. But your method might not find the best pair. (Naturally, any resistors you use will have inherent errors. However, by using the best pair, you can avoid an avoidable "designed-in" error.)

Resistors makes choosing the best pair simple. You can select among resistor sets having tolerances of 0.1%, 0.25%, 0.5%, 1%, 2%, and 5%.

You might be interested to know that the original version of this program was published in the now-defunct Kilobaud Microcomputing, April 1980, pp. 142-144. Though its modern version is written in C++ for 32-bit Windows, it was originally written in Basic for use on a Commodore PET. (, Ver. 2.20, 1.40 MB)

WAVRead strips out the audio data from a WAV file and puts it into its own file. It puts the header information into a second file. Both files can be read by Excel and Mathcad, enabling analysis of the WAV file contents. WAVRead works with most, but not all, WAV files. (, 36 KB)

Copyright © 2001-2018 Robert Penoyer