Program and Verilog Code Downloads


V0.96 (80.3 kB)

ParSer is a utility to construct a non-standard resistance or capacitance value from a set of standard resistors or capacitors. ParSer supports different topologies of up to three individual components.

ParSer can also calculate voltage dividers and find a set of suitable resistors. The minimum and maximum shunt current can be specified as well as the nominal load current.

The name ParSer is misleading. It stands for parallel/serial connection of resistors or capacitors. I'm not very happy myself with this name, but now it's out and I'm not going to change it.


V1.10 (30.5 kB)

Bin2C converts binary files into C source files. Its purpose is to make binary data (e.g. audio or graphics) available to a program on an embedded system, which often lacks the file access services of an operating system. The binary contents can then be compiled along with the source code and other data. Multiple binary files can be specified and then a pointer structure to the individual files may be generated.


V0.20 (27.3 kB)

ExecuteAt executes some other program at a specified time. It may be used for a regular automatic backup for instance. The weekdays may be selected at which the program shall be executed.


V0.10 (27.3 kB)

MakeGRX generates a GRX download list for the GetRight download manager. Sometimes you may want to download a number of files with identical base names but increasing suffix numbers. Simply enter the webadress and the destination filename and use one of the variables &a, &b or &c for the numbers. Define start and end value for each of these variables, press start and the GRX file will be generated. It can then be imported into GetRight.


In the good old days you could get up in the morning, switch on your computer, go brush your teeth and when you were finished, the computer had booted up. These days are gone. When starting up Windows XP, it stops at the login screen, even if it is a single user PC at home. That can be changed by modifying some magic settings in the registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon=1

But for some reasons, which are unknown to me, this setting is only good for a few startups and then it is somehow magically changed back to 0. The same is true for the infamous CD or removable disk autostart. You can switch it off, but it is turned on again when you turn your back to the PC.

FixRegistry does nothing else but set these values to your preferred settings. I have put this tiny program into the Autostart folder, so that is executed every time when I start my PC. Still at times, the PC hangs at the login screen, but when I hit enter to continue, AutoAdminLogon is automatically changed back to 1. A better place would be an Autostop folder, but such a thing does not exist in Windows.

254.8 kB

Here are the sources for all the utilities above. I use the OpenWatcom development tools, as they can be downloaded from their website for free.

Collecting the first experience in Windows programming can sometimes be challenging, at least for those of us, who are more familiar with embedded systems programming in C and assembler than with Windows or Linux and C++. This package contains WinSample, which  is a sample project for the OpenWatcom development tools. It serves as a skeleton for simple Windows programs like the ones above, which often just consist of a dialog box. This skeleton is pure ANSI C-code.

The Lib directory contains the file WinLib.C, which provides the commonly used Windows functionalities for the above utilities. This library must be generated before any of the utilities can be recompiled.

Also included is WaveLib, which supports reading and writing .wav audio files. It is needed for the Bin2C utility above.


The utilities above do not need to be installed. Just copy the .exe file to your preferred path and remove the file for uninstalling it.
The utilities store the size and location of the dialog window as well as some parameters in the registry. The entries won't hurt, but you may remove them with regedit. The used keys are at

HKEY_CURRENT_USER/Software/Michael Krämer Freeware

Also some command line parameters are supported. They are described, when you press the info button of the respective utility. The following parameters are supported by all of them:

-rc: clear all registry keys of this utility

-rd: disable use of the registry for this utility

-pp=m: set the process priority for the dialog (0:idle, 1:normal, 2:high, 3:realtime)

-pt=n: set the priority for the processing thread (0:idle, 1:lowest, 2:below normal,

3:normal, 4:above normal, 5:highest, 6:time critical)

If  any one of the utilities shall run in the background, without much impact on the agility of the system, it is a good idea to set its thread priority to idle (-pt=0). It will then only get the CPU, if no other task needs it.


AC97 is the Verilog source code of an AC97 controller.  This AC97 controller is not yet published. It needs some review. Drop me an email if you want to have it anyway.