Recent Updates:
February 2011: Minor fixes to ChfdateGUI.exe,
ChangeFDate.exe and the Java GUI version of the Sudoku
solver SudokuGUI.jar.
January 2010:
Added Windows version, ChfdateGUI,
to change file and JPEG Exif dates. 
February 2009:
Added new Win32 command line program ChangeFDate to change
file and JPEG Exif dates.
May 2006: Minor updates to
DOS4UNIX,
MyEncryption and
SudokuGUI, particularly so that under
Windows XP the file selection dialog boxes sould default to the current
working directory at first use. Previously, under windows XP (and maybe
NT?), the directory from the last time the program was run was displayed.
(This persistent memory of the last directory used for file selection
dialogs even over reboots did not occur under Windows 98; or at least not
on either of my setups.)
2005: Sudoku Solver binary excutable, java
executable and java applet versions added; My Encryption updated.
This page describes and provides links to download some small DOS and Windows utility programs that I have written over past years and which someone else might find useful. There are some DOS Utilities, a couple of Win 95/98/NT Console Applications and some Win 95/98/NT Windows Programs.
I can provide no guarantee as to their working correctly on any particular machine, especially the 2000/NT GUI applications which may require the installation of additional shared DLLs to execute. None of these programs have been tested or run (as far as I know) under Windows 2000 or Windows NT but I don't see any reason they shouldn't work OK. There are no virus or nasties in the programs as they are provided here - they simply work as described. The programs are not made available for commercial distribution and are intended for personal use only. I can take no responsibility for loss arising from their misuse or installation either through misunderstanding or mistake, nor give any guarantee about their integrity if they are obtained from other than my home site. In any case, as with any program from an unverified source (I am assuming you do not know me personally) , you should virus check them before using them and use them with caution.
There is scant documentation with most of the programs, as
they are generally very simple utilities with self evident
controls and/or commands. If the Win 9x/NT Windows programs fail
to load with error "A required .DLL file, MFC42.DLL was not
found" see the section below
on required shared DLL files that may need to be
copied to your computer.
The programs are all described below grouped in each type, but
you may get all the files, zipped up, excluding the shared DLL's
which you probably will not need, from here:
.
Source code for most of the programs is available from me on request, with the exception of the Win 32 Simple File Encryption program. Email: Patrick dot Harrison at pcug dot org dot au, but please do not expect a timely response.
If you download any of these programs and use them, even if just for curiosity, I would appreciate your letting me know at my email address shown above. I know they are not too flash and I do not intend updating them, but by all means let me know if they were useless or useful to you.
These DOS utilities were compiled using Borland Turbo C Version 1.5 (circa 1987!). Many of them I wrote to facilitate DOS batch file processing and command output logging in my work when I was a systems administrator on a Novell 4 network with Novell fileservers, a couple of Unix servers, one NT Server and users on DOS/Win 3 workstations. All but one are simple command line utilities which execute, produce output to the screen and terminate. The outputs can be redirected to log files using ">", the standard output redirection operator. The calendar is interactive and remains on the screen (as the only application of course - this is DOS we are talking about) until dismissed with a keystroke. None of them are TSR and only three of them write anything to disk (whereami.exe stores its stack in its own executable file, dos2unix and unix2dos replace specified files with processed output). Note that these DOS programs ONLY UNDERSTAND DOS 8.3 FILE NAMES.
I am sure there are fancier utilities than these for DOS, Win 16 and Win 32 around, but not necessarily at the time they were written and for the exact purposes that they were written (eg: returning meaningful exit codes to DOS for intelligent MS batch (.BAT or .CMD) file processing for a particular task). At home, I keep them all in a single utilities directory which is added to the PATH in AUTOEXEC.BAT.
Most of them provide a help message if invoked without parameters, or if they would normally work without a parameter then try /? /h or ?.
| Small DOS Applications | |
| A smallish 1 month calendar display which displays on the lower right of a standard DOS 25x80 screen. Simple keyboard controls to flip forward or back by month, year or century. A couple of rudimentary date calculators. Highlights today's date and Easter, can also display public service or the off ("DFRDB") paydays. F1 to display help screen. | |
| A DOS directory comparison program which compares the files in two different directories. Provides an output listing which fits on the screen and will fit on a printed page. Can display: all files, matching files only, differing files only or matching names but different files. | |
| Displays scancode of extended keys (F keys etc) of keys as they are pressed - Q to quit. Explanatory text on startup. | |
| Changes DOS standard B&W screen to a more pleasing white text on blue background. No help. | |
UNIX2DOS.EXE |
Convert text files from MSDOS to unix text format
or vice versa. Run the programs without arguments to get a help screen. these Version 2 programs are strictly MSDOS programs which do not work well with long filenames, so if you do not use MSDOS as a standalone OS (you only use DOS Prompt or Command windows within Windows 95 / 98 / 98SE / Millenium / 2000 / NT), I strongly recommend you use the later version of the command line programs for Win 32 OS |
| Utilities mostly useful in Batch file processing & logging | |
| A replacement for the inbuilt DOS echo command which additionally, interprets $ parameters. This allows an echo of characters which cannot normally be included on the command line. In particular: the redirection characters (< & >); pipe symbol (|); parameter marker in batch files (%); Escape; inline CR, LF & CRLF; and suppression of the CRLF at the end of the line. SCRNECHO without parameters displays help text. | |
| A DOS utility which stores the directory environment (ie: the current working directory and current directory of other disks) on a stack, allowing return to them on subsequent calls. Can store up to 5 environments. Useful in batch files before and after calling another batch file or program which may change the working directories (environment is known after return). Returns errorlevel 0 no errors or errorlevel 1 if errors encountered in execution. Not memory resident - the stack is saved in the whereami.exe file itself. WHEREAMI without parameters displays help text. | |
| A simple command which displays the date
and time in the following format: "Sat 13 May 2000, 14:38:56". Appending "/" to the command suppresses the terminating CRLF. Almost same as "SCRNECHO $d, $t$-" |
|
| Waits for a specified number of seconds, or until user presses ^C or ^Break Returns errorlevel 0 for time expired, 1 for user break or 2 for error. Useful for introducing time delays in batch files. Enter WAITFOR for help text. | |
| Waits until a specified time, or until user presses ^C or ^Break Returns errorlevel 0 for time reached, 1 for user break or 2 for error. Useful for introducing a time delay to a specific time in batch files. Enter WAITTIL for help text. | |
| Waits until a key is pressed, returning the ASCII code of the key pressed as a DOS exit code (errorlevel). Does not pass on ^C or ^Break interrupt to the calling environment. Enter WAITKEY ? for a verbose output. | |
| Sets the DOS errorlevel in the current command shell to the level specified as a parameter (default 0 if no parameter or non integer). This allows a called batch file to return a value to the batch file which called it. There is no help text. | |
| Checks the file date of a specified file against a given date (default today). Displays an appropriate message and returns DOS errorlevel to indicate whether the file is older, same or earlier than the date specified. Enter CHKFDATE without parameters for help text. | |
| Compares the actual time (now) to a given time. Displays an appropriate message and returns DOS errorlevel 0 if given time is later than now, 1 if it is now, 2 if earlier than now or 3 for an Incorrect Call. Enter CHKTIME without parameters for help text. | |
Two small uninteresting utilities coded and compiled using MS Visual C++ 5.0 ,Console Application project settings. Can be run only under Windows 9x or Windows NT (ie: MS Win 32 bit OS), and will run in a DOS or Console window.
| A very plain programs which lists your Favorites' URLs (note: American spelling)in a text file. The program file needs to be saved in the favourites directory (\windows\favorites for single user W9x), or setup for use via a shortcut with the working directory set to the favourites directory. Lists each favourite entry and its URL in all favourites folders, saves the output to a text file called LISTFAVORITES.TXT and then invokes NOTEPAD to edit that file. I am sure there are many far superior programs around which include equivalent functionality, but this is all that was required at the time. No parameters and no help text other than some remarks in the LISTFAVORITES.TXT file created by execution of the program. | |
| Similar to above, but lists your Favorite Links in a fairly plain browser viewable file called favoritesHTML.htm which is created in the current working directory. Links in each folder are listed first, followed by indented subfolders and their contents recursively. The program executable file can be placed anywhere on the system and should find the correct favourites directory automatically (it looks up the registry for the location), or a directory may be specified on the command line. A brief program printout tells you from where it is getting the favorites list and to where it is creating the favouritesHTML.htm file. Again, I am sure there are better programs around but it suited my needs. Enter "favouritesHTML /?" to display help text. | |
| A console application which just lists the last access date of files or directories in a specified directory. Can specify recursion. (In Win9x when Explorer is used to display properties, the last access date is reset to that access - console command DIR /V is OK but cluttered with other columns and numeric month-day-year dates). Enter "LastFileAccess /?" to display help text. | |
UNIX2DOS32.EXE |
Convert text files from MSDOS to unix text format
or vice versa. Run the programs without arguments to get a help screen.
See also the Windows GUI version below
|
SDKinput.txt Grid25.txt Java Version Requires JRE 1.5, to run use command: "java -jar Sudoku.jar [inputfile]" |
Solves Sudoku puzzles. This is a command line program
which takes its input from a text file specifying the sudoku puzzle to
solve (default "SDKinput.txt" if not specified on the command line).
Prints out the solution, or if the "-m" command line switch is used all
solutions, as simple text to the standard output which may be piped or
redirected to a file. The text file must specify the length of the
inner grid size ("S"), followed by values: 0 for blank cells and 1 to "S
squared" representing the starting values of the grid. (EG: the normal
sudoku grid is a 9x9 grid with an inner square side length 3, values
1-9. A grid with an inner square side length 5 will have values 1-25.
And of course 0 for the blank cells). Comments may then be appended to
the file. see SDKinput.txt and Grid25.txt for examples. Command "Sudoku
/?" will display help text. This program does NOT generate new puzzles.
See also the Windows GUI version for 9x9 Sudoku grids below |
| A console application which changes file modification dates of and in files. A specific date and/or time may be specified, or a relative time change in minutes and seconds. The change may optionally be applied also to the file creation date, and for JPEG Exif files, to the EXIF dates within the file. Alternatively, the file dates may be set from the Exif creation date (if Exif data is present within a JPEG file). The program was created to align the modification dates of digital photos from two different cameras which did not have their date-times aligned. [So now when ordered by modification date, the picture files from both cameras of the same event or trip are displayed in chronological sequence regardless of which camera each image came from]. Enter the program name without parameters "ChangeFDate" to display help text. |
Seven small MS Windows GUI applications coded using MS
Visual C++ V5.0, using the Microsoft Foundation Class Library
library (MFC). If they do not load with "A required .DLL
file, MFC42.DLL was not found" error see the section below
on required shared DLL
files that may need to be copied to your computer.
| A fairly small window displaying 1 calendar month (default this month). Simple button controls to flip forward or back by month, year or century; or to return to the current month. A couple of dialog based date calculators (date-date and date+days). Highlights today's date and Easter, can also display public service or off ("DFRDB") paydays. Help button. | |
+ MyAlarm.exe + MyDiaryFAQ |
A very simple reminder message system consisting of two complementary programs. MyDiary which allows user to enter and manage reminder messages and MyAlarm which displays reminder messages which have reached or passed their 'activation date'. MyAlarm is NOT a 'memory resident' program, rather a shortcut to MyAlarm is placed in the Start->Programs->Startup so that it pops up on bootup if there are any outstanding reminder messages. See MyDiaryFAQ for further details. |
+ DataFile 1 + DataFile 2 |
A phone dialling program intended for
use when using 'Pay by Phone' services, to reduce error
prone manual telephone button entry of phone numbers,
long account numbers, credit card details and login dial
sequences. Numbers can be selected from dropdown boxes
sourced from two accompanying data files in text format:
"MyDialler.Accounts.txt" and
"MyDialler.CrCards.txt". Data files can be
edited using the button provided (which invokes
Notepad.exe) or using any text editor - there is
documentation on the format of the data files within each
sample file provided here. Note that the phone
must be picked up while dialling with this program
as it dials using the modem and then immediately hangs up
the modem (thus phone must be off hook so line is not
disconnected). UPDATED Version 2.1 Aug 2004 includes the option to encrypt the two data files on the hard disk (they are unscrambled while program is running then reencrypted on program closure), thus allowing some measure of secutity of account information. Help button and status message box. |
| >>>>>>>>>>>>
WARNING
<<<<<<<<<<<<< Before using this program I would strongly advise playing around with it on a couple of dummy files first - encrypting and then decrypting and checking that the result is the original file, comparing it byte by byte with a copy of the original using the "fc" or "comp" program. In any case, until you have confidence that the program works consistently and have established use of one or more keys that you won't forget, you should backup to somewhere safe a copy of the originals of all files prior to their encryption. >>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<
UPDATED VERSION 3.0 November 2001 does multiple files. A simple file encryption program which can be used to encrypt files "in situ". Requires selection of the files and entry of an encryption/decryption key (or password if you prefer that term). Decryption requires the identical key with which files were encrypted. The encryption process renames files by adding the extension '.phe' (for Patrick Harrison Encryption) and extends the length of the file by 4 bytes. The 'cryptext' is written directly over the 'plaintext' in the files, so the original contents of the files are obliterated and cannot be recovered without using the decryption process. Files may be encrypted more than once, with an additional '.phe' and 4 bytes added for each super encryption. The decryption process can only be selected if all selected files have .phe extension and will refuse to decrypt a file which has not been encrypted using this program or which has been encrypted with a different password (within the limits of a relatively simple checksum provided by the additional 4 bytes inserted by the encryption process). If the key for an encrypted file is forgotten, then the file is unrecoverable - I cannot help you so do not bother contacting me! Decryption of super encrypted files must be carried out using the keys in the reverse order to which they were used to encrypt the file. The program has been tested with files from 1byte to 680Mbytes. |
|
| A very basic sound recorder program that has an
inbuilt timer which can be set to start and stop
unattended recording at a preset time of day. May be
useful if, for example, you need to record something
from the radio when you are out and you can leave the
microphone near the radio. Press ? for help. A fairly limited program which I coded while experimenting with using Win 32 API Multimedia Control Interface (MCI) in MS Visual C++. It only records in one sound format (PCM encoded 8 bit, mono, 8Khz,) to a preselected file. |
|
+ DataFile |
A very basic program which enables you to calculates the Great Circle Distance from one position on the globe to another (expressed as Latitude/Longitude). Some airlines (eg: QANTAS) use the great circle distance between airports to calculate earned frequent flier points. Source and destination data entry boxes are drop down selection boxes with locations read from the data file "PLACES.GCD" which can be edited using a normal text editor (there is a button to do this). There is adequate instructions on the dialog box and in the data file. |
| Converts text files from MSDOS to unix text format or vice versa (functionality: dos2unix + unix2dos = dos4unix). GUI program for Windows 95 / 98 / 98SE / Millenium / 2000 / NT / XP with standard file selection window. Check boxes for some simple options. Buttons to preview selected files, convert selected files DOS->Unix or Unix->DOS. Startup options default may be set on program command line. Appropriate help included in program. | |
Java GUI Version Requires JRE 1.5, to run use command: "java -jar SudokuGUI.jar" Applet Version (press to run) |
A GUI program for Windows 95 / 98 / 98SE /
Millenium / 2000 / NT / XP which solves 9x9 Sudoku puzzles which
the user can enter using the dialog provided or which can be loaded
from a file. This program does NOT generate new puzzles. Use mouse
or tab key to edit the sudoku cells entering values 1 - 9. Use
delete or backspace key to remove a value. Where there is more
than one solution to a puzzle (eg: with a blank grid) the solution
returned is chosen at random. Use the save button to save a grid
file which may then be examined / changed using a text
editor. There is appropriate help included in program. The Java
version GUI works with different size grids - achieved by loading a
grid file for a different size (see help in program). See also the
more powerful but less intuitive command line versions which can
solve grids of different sizes and list all solutions when there is
more than one. |
| Windows dialog version of console program ChangeFDate. Changes file modification dates of and in files. A specific date and/or time may be specified, or a relative time change in minutes and seconds. The change may optionally be applied also to the file creation date, and for JPEG Exif files, to the EXIF dates within the file. Alternatively, the file dates may be set from the EXIF creation date (if Exif data is present within a JPEG file). The program was created to align the modification dates of digital photos from two different cameras which did not have their date-times aligned. [So now when ordered by modification date, the picture files from both cameras of the same event or trip are displayed in chronological sequence regardless of which camera each image came from]. Includes help dialogs. |
This page accessed times since 01 June 2000
You may need to load on additional files on your system if you get the "A required .DLL file, MFC42.DLL was not found" error when you attempt to run the above programs. Please note that there are some dangers here - if you are not confident manually installing programs, copying files, doing backups etc STOP NOW AND FORGET ABOUT MY PROGRAMS - delete any programs downloaded from here and go look elsewhere for professionally written progams with proper installation and setup routines.
The Windows 9x/NT console and Windows GUI applications were written using MS Visual C++ Version 5.0 using 'Shared DLLs'. The two files required by these applications are (and note there may be similarly named files, check carefully):
c:\windows\system\mfc42.dll, and
c:\windows\system\msvcrt.dll,
I do not know about Windows 95, Windows XP or Windows NT, but a normal installation of Windows 98 seems to already have all of these files, as Win 98's own MS-Info program (probably among other utilities) appears to use them.
If they are not present in your c:\windows\system directory you may
download this zip file:
. Unzip the files into a temporary directory, then copy
them to \windows\system. The two files inside the zip file are versions
which (as far as I can tell) were upgraded by Windows 98 Second Edition
Update. A warning however:
**** UNDER NO
CIRCUMSTANCES SIMPLY REPLACE EXISTING FILES IN THE \WINDOWS\SYSTEM
DIRECTORY - ADD NEW FILES, BUT DO NOT OVERWRITE ****
Essentially the problem is that if any of the files already exist on
your computer you must not overwrite them if the copy here is
an earlier version than what you already have installed - that's VERSION,
NOT DATE ON THE FILE as listed by Explorer. In any case you
should back up any existing file you propose to replace before replacing
them. I am not going to go on any more here - If you NEED to read this
section other than the names of the files required you probably shouldn't
be playing with it - goto ![]()