Ken Silverman's Utility Page

Compression Utilities:

File Size/Date Description Requirements
PNGOUTWin (link)
2006-
The professional version of PNGOUT, featuring an easy-to-use GUI. Supports all features of the command line version (described below), plus more. PNGOUTWin makes it easier to do batch processing and takes full advantage of multi-core CPUs. Please visit ardfry.com for more information. WIN32 GUI
PNGOUT.EXE 38,912 bytes
07/02/2011
PNGOUT optimizes the size of .PNG files losslessly. It uses the same deflate compressor I wrote for KZIP.EXE (see below). With the right options, it can often beat other programs by 5-10%. That includes pngcrush -brute, optipng -o7, advpng -z4, etc.. PNGOUT is a great tool for optimizing the size of web pages or squeezing game content onto mobile devices. Almost all .PNG files on my website were optimized with PNGOUT. For a detailed description of the options, please check out the PNGOUT tutorial written by Kerry Watson. Click here for license. For a changelog, see: here or here.WIN32 command line
KZIP.EXE 14,848 bytes
04/14/2007
My own PKZIP-compatible compressor focusing on space over speed. KZIP creates smaller .ZIP files than PKZIP with maximum compression enabled and even beats 7-Zip most of the time. I use a few tricks beyond what your typical compressor will do. The main one is an exhaustive search of all patterns. The other one is my advanced block splitter. ZIP files created with KZIP are compatible with all of the latest .ZIP software - just that if you use KZIP, your file will probably be smaller. Decompression is still very fast, making KZIP the perfect tool for shaving off seconds from download times. What will you do for a byte? :) Click here for license. WIN32 command line
ZIPMIX.EXE 8,704 bytes
02/21/2007
Sometimes, when you run 2 different .ZIP programs on the same data (PKZIP & KZIP for example), some files get compressed better in one program, while other files get compressed better in the other. ZIPMIX will take the best files from each one and create a new output file, which is guaranteed to be equal to or smaller in size to both of the input files. ZIPMIX can also be used to perform boolean operations on ZIP files, such as merging 2 ZIP files together, or updating a new file (with some tricks). You can download the source code here: ZIPMIX_SRC.ZIP (5,202 bytes, 02/11/2012) This code may be used freely. WIN32 command line
REKZIP.ZIP 379 bytes
07/06/2006
Here's a little batch file I wrote for KZIP to directly re-compress an existing ZIP file. I have tried to make the batch file as safe as possible - meaning you shouldn't lose the original file if there's an error during one of the steps. I think the worst that can happen is you end up with a harmless temporary sub-directory - and that's only if your computer freezes! If you really want to feel cool, you can re-compress a whole directory of ZIP files using this command: "for %i in (*.zip) do rekzip %i" : ) Someday, I might actually get around to integrating this functionality into KZIP.EXE.. WIN32 command line
Linux & MacOSX ports of PNGOUT, KZIP, and ZIPMIX (link) Due to popular demand, here are ports of PNGOUT, KZIP, and ZIPMIX to Linux and MacOSX. Thanks to Jonathon Fowler for all of his assistance in porting, letting me use his machines remotely, packaging the files, and of course hosting. I asked JonoF to host these files because he has more experience with non-Windows platforms than I do. Go grab a copy of the ports at JonoF's site! Click here for license. Linux or MacOSX

PNGOUT / KZIP license:

I have gotten a lot of requests recently about bundling the command line executables, or releasing the source code to KZIP and PNGOUT. Obviously, this is very flattering. : ) In general, I am open to this kind of stuff, however for these I must be a little protective, as the algorithms are incorporated into a commercial product. KZIP and PNGOUT share a lot of code in common, and I am currently selling GUI versions of PNGOUT at ardfry.com. So here is the license: For business requests (such as bundling), please write directly to my business partner, David Blake. He will be able to answer your question much better than I can.

Compression links:


PNGGauntlet: A .NET-based Windows wrapper for PNGOUT by Ben Hollis.
PNGOUT tutorial written by Kerry Watson.
PNGOUT review by Gregory Wild-Smith. WARNING: his site seems to crash my browser!
Ultimate Command Line Compressors: Comparison of many compression utilities, including PNGOUT and KZIP.
Maximum Compression: Comparison of many compression utilities, including KZIP.
RFC1951: A great technical document for programmers who are interested in learning about the deflate standard (PNG and ZIP are both based on deflate).
PNG Home Site: The mother of all PNG sites.

Other good PNG/ZIP compressors:
7-ZIP: A good compromise of compression ratio and speed that falls between PKZIP and KZIP.
OPTIPNG: Compresses PNG files using libpng, takes the best of many trials; inspired by PNGCRUSH, with a few more features.
ADVPNG (and ADVDEF): PNG compressor based on the 7-zip deflate engine.
DEFLOPT (and BJWFLATE): ZIP recompression utilities by Ben Jos Walbeehm with similar goals to KZIP (space over speed).

Other Windows Utilities:

KWINCHEAT.ZIP 17,600 bytes Automatic player AI for Minesweeper, Solitaire, and Internet Checkers. Have you ever wanted to throw some advanced computer AI against an unsuspecting Internet Checkers player? :) Did you know that Solitaire has a scoring bug if you win in less than 30 seconds? Have you ever been so lazy that Minesweeper seemed like manual labor? Well, now you're in luck because I've decided to share my cheats with you! Please read the included text file for more hints and instructions. WIN32
KWINCHEAT_SRC.ZIP 18,399 bytes The source code to Mineplay, Solplay, and Checkplay. The code is best viewed with tab stops set to 3. VC6 or above
CHECKERS.EXE 22,528 bytes
01/23/2005
A stand-alone test checkers game I wrote just before I started writing Checkplay. Now you can see for yourself how easy it is to lose to my computer AI :) WIN32
CHECKERS_SRC.ZIP 41,530 bytes
06/26/2005
The source code to my stand-alone checkers game. The code is best viewed with tab stops set to 3. To compile Winmain.cpp with VC6, you'll need to install the Processor Pack which is available somewhere at microsoft.com. VC6 or above
KPIC.EXE 79,360 bytes, 01/21/2009 Ken's PICture viewer. Supports: JPG,PNG,GIF,TGA,PCX,BMP. View all files in a directory or files inside a .ZIP. (no need to extract first!) Example: kpic /zduke3d_hrp.zip *.png *.jpg. Select any DirectX mode on the command line. Example: kpic /1024x768 *.* KPIC allows you to scroll and zoom quickly (hold mouse button). It supports a fancy 4x4 filter (uses MMX code) to interpolate samples cleanly when you use the zoom feature. This is a high quality filter - most 3D accelerators use bilinear interpolation which is only a 2x2 filter :) There are 3 interpolation modes; use TAB to select between them. (Mode 0:4x4 when stopped/nearest when moving, Mode 1:4x4 always, Mode 2:nearest always). (See PNGOUT.HTM for a more complete description of supported image formats) WIN32
SUCKTHUMBS.ZIP 71,552 bytes
09/20/2009
Simple Thumbs.db viewer. With SuckThumbs, you can save individual tiles, or spawn a default viewer (if the original file exists). Press F1 inside the program for further help. Source code included. WIN32, VC6 or above
KC.EXE 53,760 bytes
05/15/2010
My own text editor for windows, featuring smooth panning, support for large text files and keys similar to DOS EDIT. I use this editor all the time! If you do Visual C or Java programming at the command prompt, you can press F5 while the source is loaded to compile, display errors (if applicable) and run. Press F5 and study the dialog to see how to set this up. Or look at (05/15/2010, 5,015 bytes) KC_GUIDE.TXT for a more complete list of KC commands. Source code here: kc_src.zip (05/15/2010, 117,530 bytes). WIN32, VC6 or above
KPROF.EXE 79,360 bytes
01/25/2011
A command line sampler/profiler for Windows. Visual C includes a function-based sampler/profiler. This is much better! Spawn an executable of your choice (2nd command line option) or latch onto an existing program using its PID (you can look up the PID in Task Manager). When you exit the program, KPROF will dump a listing of all the hotspots to the console, along with the disassembled code. Example syntax: "kprof pngout.exe image.png". To save the results to a file, add "> results.txt" to the end of the command. This program is meant to be run inside a command prompt. WIN32
STOPCHOP.EXE 52,736 bytes
12/29/2010
Record without having to worry about pressing the start button on time. StopChop records at CD quality (by default), allocating a large circular buffer. As soon as you press ENTER, it switches to play mode, where you can view the last so many minutes recorded. In the play mode, you can crop the sound, fade the end, remove silence, and save the sound. To crop, move the mouse or arrow keys, then press ',' and '.' to set the respective marker. Play the sound using SPACE BAR, Home or End keys. Once finished, I like to convert the WAV to FLAC, MP3, or OGG using a separate utility. WIN32
KS2.ZIP 120,386 bytes
01/19/2011
A simple MIDI sequencer for Windows. KS2 does not support effects of any kind. I have written a bunch of .KS2 songs, but they all use .WAV files that are probably copyright, so I'm reluctant to release them. WIN32

Old Utilities:

BLANK.ZIP 232 bytes This screen saver uses the VESA DPMS functions. You can select between 3 options: STAND-BY, SUSPEND, and OFF. DOS16
CCOPY.EXE 50,442 bytes Copies files at 115,200 baud using the serial port. Uses compression. Automatically skips files AND parts of files that haven't changed. For example, if you appended some bytes at the end of a huge text file, CCOPY will update the file very quickly. DOS32
DCOPY.EXE 55,488 bytes Copies files over a local network using the IPX protocol. Useful when you have problems sharing hard drives. I used this all the time when testing games over a network. DOS32
KSWEEP.EXE 6,369 bytes Use this utility to run a given program on all specified files located in the current directory and any subdirectory of the current one. For example you could play all .WAV files in all subdirectories of C:\WINDOWS with just a single command. DOS16
FINDWORD.ZIP 276,562 bytes
11/30/2006
A multi-purpose word search utility for solving anagrams, word jumbles, crossword puzzles, hangman, Wheel of Fortune, 4x4 Boggle games, etc.. Includes word list (SOWPODS), highly compressed using my own algorithms (alphabetic tree, suffix reuse, Huffman). Supports search based on wildcards, phone numbers to words, and other weird features. Want to know my favorite use? In the middle of a Boggle game, claim you have to go to the bathroom, but instead run this program and print out the results. Guaranteed to annoy everyone at the table! Source code included. WIN32
GETCPU.EXE 4,608 bytes
09/01/2007
Returns information about your CPU by dumping the results of the CPUID instruction. It also auto-detects the CPU's currently running frequency (in MHz). WIN32
GRAFTEXT.EXE 33,290 bytes Bored of 80*25, 80*43, and 80*50 text modes? This program can set your DOS text dimensions to crazy resolutions like: 128*96 or 40*12. (Warning: Doesn't work on all video cards because it sets the video mode using VESA, and then writes some VGA registers to make the video card think it's in text mode again.) DOS32
KCD.EXE 52,571 bytes This used to be called KC.EXE, but since I now use my windows version, I decided to optimize my keystrokes and rename this to KCD.EXE. This is a 32-bit text editor for DOS featuring smooth panning, support for large text files, and keys similar to DOS EDIT. DOS32
KCALC.EXE 27,354 bytes Use this program to expand mathematical expressions into sums and products that don't require parenthesis. For example: kcalc (a+b)(a-b) gives: +a*a, -b*b. DOS16
KEYTRY.EXE 18,442 bytes Press a key and this program spits out the scan code. Extended codes such as arrow keys are returned as a single byte in range: 128-255 DOS32
KGIF.EXE 37,988 bytes View an entire directory of GIF files quickly. Can select any 8-bit VESA resolution on the command line. Will use Wide DAC VGA palette if available (8 bits per color instead of the usual 6). This feature is great for 256-color grayscale. Can display larger GIF files than most other programs (including Internet Explorer) because KGIF uses memory to cache only the compressed GIF data. (Doesn't support animated GIFs yet.) DOS32
KPEG.EXE 47,350 bytes View an entire directory of JPEG files quickly. Can select any available VESA resolution and color depth (8,15,16,24,32 bits) on the command line. For old VGA cards, KPEG will display more than 256 colors by TIME DITHERING (320*200*8 mode only) By time dithering, I mean that KPEG averages the colors across 32 display pages and quickly flipping between them. (Doesn't support "progressive" JPEG yet.) DOS32
KPNG.EXE 57,601 bytes View an entire directory of PNG files quickly. This program requires support for 32-bit VESA modes. Can display larger PNG files than most other programs because KPNG uses memory to cache only the compressed PNG data. (Doesn't support 16-bit color depths.) DOS32 (32-bit color only)
MOUSRAT2.EXE 36,610 bytes Detects the rate at which your mouse reports x & y movements. Slow mouse rates can destroy the "apparent" frame rate of any application which doesn't interpolate the mouse data. If you find this number is less than the frame rate of your screen, you could try installing a mouse driver specific to your mouse and playing with the options. Also somebody out there made a neat program that runs in Windows 95/98 that can change the rate without requiring a reboot! In an internet searcher, try the keyword "PS2RATE.ZIP" DOS32
VIDSPEED.EXE 54,416 bytes Tests 8,16,32, and 64-bit memory writes to system memory, VGA memory, and linear frame buffer memory (if available). DOS32
REASPEED.EXE 54,416 bytes Tests 8,16,32, and 64-bit memory reads from system memory, VGA memory, and linear frame buffer memory (if available). DOS32
MOVSPEED.EXE 64,526 bytes Tests 8,16,32, and 64-bit memory moves from system memory to: system memory, VGA memory, and linear frame buffer memory (if available). DOS32
PKHIDE.EXE 4,921 bytes After you run "pklite -e" on an exe, run this to hide the PKLite signature. Hackers won't even know that the EXE was compressed with PKLite. DOS16
RULER.EXE 25,600 bytes Run this to help you calculate the dimensions of something on the windows screen. (One of my few Windows programs to use GDI) WIN32
HEARTEST.EXE
HEARTEST.CPP
7,680 bytes
11,219 bytes
11/30/2002
Test your hearing range using this simple utility. I made sure to eliminate as many 'clicks' as possible, so you can't falsely claim you hear a frequency when you actually don't. This program plays at CD quality. For high frequencies, it will work best with headphones... of course if you have bad headphones then this programs tests your headphones more than your hearing. :) If you can hear over 17500hz, then you've got better hearing (or better headphones) than me. Older people often can't hear above 13000hz. WIN32
TEXTREND.ZIP 9,881 bytes
02/11/2012
"Renders" a DOS font text file to a PNG file. I used to use this program when I needed to print out a DOS text file which had line-drawing characters. Source code now included. WIN32
TYPETEST.EXE 33,986 bytes Want to see how fast you can type? Using this program, you can type in any text and it will report the number of words you typed, how many seconds it took you, and how fast you typed it in words per minute. On 02/11/2000, I typed "The quick brown fox jumps over the lazy dog." in 2.683 seconds - that's 201.233 words per minute! On 06/28/1999, I typed the names of all 50 U.S. states in alphabetical order (60 words, no capitalization) in 45.094 seconds. I challenge you to beat me! Don't be discouraged though - I'm really, REALLY FAST! You should be proud of yourself if you can get half my score. DOS32
VES2.ZIP 33,856 bytes
01/20/2007
Tests the features of 8-bit VESA graphic modes. Source code included. Compile with Watcom C. DOS32
VBEAF.EXE 65,270 bytes Tests the speed of VBE/AF graphic modes. Too bad that the VBE/AF specification seems to not have caught on. To obtain a VBE/AF driver, you can try installing Scitech Display Doctor (www.scitechsoft.com), which puts a file called VBEAF.DRV in the root of your hard drive. DOS32
KPC.ZIP 35,357 bytes
09/16/2007
Plays WAV or VOC files through the PC speaker. Works in Windows 95/98, but not quite at the same quality as DOS because Windows has no GOOD way of disabling interrupts. Includes source; compile with Watcom C. DOS32
MP3.EXE 73,483 bytes Just another MP3 player. Code is based on MPG12304.ZIP, but I optimized the player quite a bit and has a couple of silly features like an alarm. Features low CPU usage. Requires an SB-compatible card. DOS32
MP3PC.EXE 70,021 bytes Got no sound card? MP3PC plays MP3 files through your PC speaker! For some reason I like to make programs work through the PC speaker. Some people still don't know that it's possible to play real sounds through it. Unfortunately, you must run this in pure DOS mode for it to work. DOS32
NCD.EXE 5,592 bytes KeN's Change Directory. If you like jumping to different directories quickly, you should try my version of the program, based on one of my favorite Norton Utilities. My NCD program is extremely small and fast. One cool feature is that it stores the entire directory tree (skips hidden directories) in the "NCD.EXE" program file itself. This keeps your HD from getting cluttered and makes the program load even faster. DOS16
TEXTCAPT.EXE 5,397 bytes Use to capture a DOS text screen of any dimensions to a file (called TEXTCAPT.TXT) Handy when a program refuses to redirect output to a file with the '>' DOS operator. DOS16
NV.ZIP 126 bytes Set to 80*25 text mode, clear the screen, and fix the IRQ0 timer rate, all in 16 bytes. Use this instead of typing "MODE CO80,25" and "CLS" when your screen gets messed up when DOS programs crash. DOS16
FLOPPY.ZIP 134 bytes This utility is for the serious QuickBasic programmer who is stuck using WinXP. In WinXP, some old DOS programs (such as Microsoft QuickBasic) stupidly access the floppy drive when you do File..Open. This is really annoying because it wastes 2 seconds while it does this. FLOPPY.COM fixes this behavior by disabling the floppy drive. As a side effect, you can't access the floppy drive until you re-enable it. At the command prompt, type "floppy off" to disable the floppy drive and "floppy on" or "floppy" to enable the floppy drive. DOS16 (intended to run on WinXP)
DOS4GW.EXE 265,396 bytes Ok, obviously this isn't mine. It's the default DOS extender that Watcom C uses. I put it here just in case you need it to run one of my programs. DOS32
Back to Ken Silverman's Official Home Page
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.