My programming work
See the the project CVS pages to get newest program versions of serveral tools.
Sourceforge project managed by myself:
Other projects I have been involved (more or less):
Patches and modifications to open source projects:
This program converts data (for example program code) into the hexadecimal
data system. This data could be edited with your favorite ASCII text
editor. After that you can convert the data back to their old style. So you
do not need a special hex editor and you will also be able to delete parts
of the file, insert parts and so on. Most hex editors allow only to change
Be sure that you know what you are doing! To insert some data into program
most time crashes the program, because the internal addresses are now
illegal. But the ability to delete data is useful for removing start code
from modules, pictures or text.
This program gives you the possibility to edit data in text/binary files.
It scans through a file like the search/replace functions in some editors.
What is it able to do:
- search and/or replace any given string
- scans through text and binary files
- has different modes(BSTR replace, C-String replace)
- allows patterns
- possibility to enter the string as hexadecimal numbers
- overwrite original file
- replace path-names in the files: useful for older programs without requester selection
- case sensitiv/insensitiv search
- replace only at given position
- OVERWRITE allows you to replace strings like greetings in programs,
because it doesn't change the filesize.
This program uses xfdmaster.library and
packer and virus scanning. The xadmaster.library
is used to dearchive file and disk archives.
CheckX unpacks archives and packed files as deep as possible:
Using xadmaster.library as decruncher also BBS texts for disk-archives are
checked for crunchers, linkers and viruses. It is possible to turn off some
of the dection features by selecting NOUNARCHIVE, NOUNTRACK, NOUNDECRUNCH and
- you can unarchive a crunched archive as well
- multiple crunched files can be decrunched
- multiple archives can be extracted
- multiple disk archives can be extracted
- linked and crunched and archived files are no problem
CheckX produces a log file, which can tell you all you need and the program
in generally is designed to be non-interactive. To remove viruses, decrunch
or unlink files, you need other tools (even if the SAVE option allows to save
uncrunched and unlinked files).
This is an example library written completely in C code. It is much like the
CLib made by Andreas Kleinert, but I think it has some improvements compared to
the code from Andreas. It has been tested with MaxonC 3, MaxonCPP 4, SAS-C 6.5x,
StormC 3, vbcc 0.7 and gcc 2.7. Test it, if you are programmer of shared libraries.
It is a lot easier than handling the startup code in assembler or using the
linker interfaces of different compilers.
This program can convert numbers between decimal, hexadecimal, octal,
binary and roman number format. Additionally also ASCII chars are printed,
so ASCII to dec/hex and reverse is also possible. It supports negative
numbers for input as well. It displays ten number conversions together.
ConvertNum uses Topaz 8 font always for its GUI.
Copy is a replacement of standard C: Copy command which supports all
standard Copy options and some additional ones. Of course this Copy is
reentrant (pure bit) like the original one.
Advantages of this Copy:
- can be called like original Copy - complete replacement
- replaces programs Copy, MakeLink, Delete, Rename, MakeDir (and Move)
- has option to delete source-file (MOVE)
- can rename the files instead of moving (when on same device)
- can produce hardlinks and softlinks
- has 3 different grades of beeing quiet
- able to copy protection bits, comments, dates
- processes directories recursive
- may turn off overwrite mode
- may force overwriting (unprotect destination)
- may force deletion (unprotect source)
- produces destination directories recursiv! (Not only the last one)
This is a utility to create:
The current version is pure ANSI-C code and completely portable. Thus it allows
to do cross development.
- following pragma statements for certain C compilers: amicall, libcall,
tagcall and syscall
- proto files for C compilers
- offset (LVO) files for assembler programs
- stubfunctions for either tag-functions or all library functions
- stub functions as assembler text
- stub functions as useable link library file
- FD files out of pragma files
- stubs for C++ compilers (SPECIAL 11, 12, 13 and CLIB)
- the files with your own headers inserted
- files for using local pointers for shared library bases in compilers
which do not support this normally
- stub functions for Pascal compilers
- inline files for GCC
- inline, pragma and stub libraries using FPU registers
- files needed to develop for Phase5's PowerUP boards
- unit texts for FPC Pascal compiler
- BMAP files for AmigaBASIC and MaxonBASIC
- VBCC assembler inline files
- VBCC WOS stub texts and link library
- VBCC PowerUP stub texts and link library
- VBCC MorphOS stub texts and link library
- Modules for AmigaE
- FD files
- CLIB files
- SFD files
- auto library open files for VBCC
- MorphOS files
This program has 2 aims. First it allows to calculate different types
of checksums including CRC and much other types and thus allows to
identify a given checksum. Second its source code shows how to create
these checksums, so they can be used in own projects.
It is plain and portable ANSI-C code. The program is called like
GetCRC 'filename' and prints the resulting checksums of this file.
Text modes aren't supported, but it always uses binary mode. The file
must fit completely in memory. These are no restrictions to the
algorithms, but are restrictions of using all of them in one program.
This program copies the content of an kickstart ROM into a disk file.
There are many legitimate reasons for wishing to make a file copy of a ROM
image. I don't condone using this program for any illegal uses however. You
should be aware of the laws in your region with regard to fair use of
software, including software contained in ROMS.
Why use GrabKick and no other ROM grabber?
- it is short, only 508/548 bytes (assembler)
- it works on all OS versions from V33 (1.2) on
- it only produces complete files (deletion of partial file at to less
- startable from Shell and Workbench
- uses asl.library requesters for file selection (only OS2.0 and up)
- calculates size of ROM (works with 256K, 512K, ...)
- it is Public Domain (including sources)
- it is better than all (most ?) other equal utils
This program allows you to display information about the structure of an
Amiga executable file (or a link object).
The first version of this program is made with help of HunkFunk utility
made by Olaf Barthel. But as Olaf's utility misses a lot of hunks and
other information, I made my own tool. This version knows a lot more
possible configurations and is shorter, as it uses Amiga functions instead
Known hunk types are: HUNK_UNIT, HUNK_NAME, HUNK_CODE, HUNK_DATA, HUNK_BSS,
HUNK_RELOC32, HUNK_RELOC16, HUNK_RELOC8, HUNK_EXT, HUNK_SYMBOL,
HUNK_DEBUG, HUNK_END, HUNK_HEADER, HUNK_OVERLAY, HUNK_BREAK,
HUNK_DREL32, HUNK_DREL16, HUNK_DREL8, HUNK_LIB, HUNK_INDEX,
HUNK_RELOC32SHORT, HUNK_RELRELOC32, HUNK_ABSRELOC16, HUNK_PPC_CODE,
Join is a replacement of standard C: Join command which supports all
standard Join options and some additional ones:
Advantages of this Join:
- it can be called like original Join - complete replacement
- it can take the filenames from a filelist
- it can built the filenames out of a file-splitter name description
- it supports patterns
- it can add the files to an existing source (useful when low diskspace)
- it is able to delete source-files when needed
- it has a lot of text join options (AMIGAGUIDE, HEADER, NAMEHEADER)
- it is in the Public Domain (including sources)
- it is really fast
- it also works with low memory, but is slower then
- it can be started from Workbench as well as from CLI
MakeMountList creates a MountList from an already mounted device. This
may be useful when you disabled e.g. DF0: in boot menue, you can mount
it later with this entry. It may be used also to get information about
a mounted device. This one uses much better type dections than all the
other stuff I found in Aminet.
This is an example code written completely in C code. It shows how to design
plugins on Amiga systems using the LoadSeg() functions and normal AmigaDOS
ProcessIcon is a program to change a lot of icon attributes: tooltypes,
icon type, default tool, drawer data, image depth, position and icon images.
You can either copy, set or remove these attributes. The program is also
able to add default icons, when no icon is attached to the given name.
A view mode allows to give detailed information about the icon and an
optimize mode allows to delete useless entries to save space.
I made it to replace drawer and text file icons with my favourite images
without changing the icon position or the drawer data.
This datatype allows to display cardsets of Klondike solitaire program.
It supports all know types:
|13*4 + back + empty + special
|13*4 + back + empty + special + 4*stack
|13*4 + back + empty + special + 4*stack + 9*prefs
|13*4 + back + 4*stack
|13*4 + back + 4*stack
The RKP cards need picture.datatype V43 or they cannot be displayed.
The datatype has been designed to support Soliton cardgame. This allows to
use REKO cardsets directly from Soliton. You only need to set an environment
variable for that.
Visit also the RekoNet at http://go.to/rekonet/,
where you can get lot of cardsets and related links.
StripHunks strips useless hunk information from executable files. It
supports wildcards and can scan sub directory trees. The ONLYSHOW options
allows to get strip information without really doing the strip.
An additional option SORTRELOC allows to sort relocation information. This may
save space for older files and allows better byte-for-byte comparision of
By default all stripping methods are turned on. A lot of NOxxx keywords turn
of special options and thus you can select directly what you want to strip and
what should stay.
TABS is a program to convert spaces into tab stops, tab stops into spaces.
It supports currently normal texts, C source code and AmigaGuide texts. It
is also able to change the tab stop width (for example: from 4 to 8) and to
delete spaces or tab stops at the end of a line (because they are useless).
This program gives you the ability to edit the size of rows and columns of
the tables used in WordWorth.
It comes together with an ARexx script, which calls WWTabManager for the
current edited text in WordWorth. This script is not very nice, but it is the
best I can do at the moment with the current ARexx port of WW5-7. If somebody
is able to make a better script, please send it to my mail address and I
will include it in the next release.
The script asks for the save-filename, saves the file under this name,
starts WWTabManager and after that reloads the text.
(A lot of requesters have to be dealed with, but I found no better way!)
As Georg Hörmann has not longer time to develop both xfdmaster.library and
VirusZ antivirus program (together with xvs.library), I do further updates.
This software package allows you to decrunch almost every packed file
known on the Amiga. It consists of the xfdmaster.library as the brain
and a couple of programs that offer certain functions to the user.
The xfdmaster.library is a standard Amiga shared, runtime library. It
works with Kickstart V33+ and offers applications the possibility to
directly support any crunched files.
The xfdmaster.library has a very flexible interface, offers the possibility
to decrunch already loaded program segments, supports external decrunchers,
is able to unlink 4EB9/4EF9- and text-linked files and can scan for
crunched data in any memory area.
New crunchers, linkers, crunched files, linked files, comments and any
other new stuff is welcome.
Very easy to use list of cheats, solutions and other hints to as many games
as I got. I tried to use very less space for a good design, but I think it
looks not bad. Should work on all machines, which are able to start an
AmigaGuide viewer! This list is available in German (more than 1000 cheats)
and English (more than 1200 cheats) language.
A little comment:
After the upload of the last version of CheatCollection I got only few
e-mails. As there was nearly no user response, this list is no more developed.
English part ReadMe,
German part ReadMe
If you are interested in some of these programs, please
contact me and I will
release the stuff. Comments are welcome too. If you need some options added,
tell me and I will add them.
Unreleased means these programs are fully developed, but I never found the
time to write a documentation. This is only the stuff which maybe useful to
some of you.
- ApplyPatches was original designed for AmigaPatchList,
but was never released. It allows easily to apply patches to files
giving the easy byte-position-description used in that list. It allows
to check CRC and WRAP checksum automatically before and after patches.
Maybe useful for other usages as well. Also supports OS1.2 with reduced
command set. It is not useful for larger patches used to update software.
- CallCLI allows you to call CLI programs from a
WorkBench icon. All commands are written down in tooltypes. Output
and input redirection can be used to get output and input window(s).
If no tooltypes are given, the command with icon name is called.
This is like IconX, but needs no additionally text file, is a lot
shorter and can be copied freely, but it cannot bring different
outputs into one window.
- CutFile allows to cut a certain part from a file.
It needs source name, destination name, the start offset of data and
the wanted size. I made it to cut crunched data out of larger files.
- CutHusky is a shell tool to treat data in Zeiss M5
data format used by new EltaS series or their new GPS receivers. The
program allows to strip unwanted data or divides the input and produces
files containing different data (station points, measured koordinates,
other stuff). It also creates input data files for GeoGraf system.
This one is made in ANSI-C code and can be ported to different platforms.
- Eprommer is a program to control hardware for reading
and writing Eproms. This program is modular and is able to support
more than one hardware. You have only to add a new software modul to
use your hardware. At the moment only one modul for the hardware given
in the Markt und Technik book Amiga-Hardware-Tuning
- FileComp compares two or more binary files. It allows
to display differences in 6 different formats and compare can be as
byte, word or long. The compare routines are really fast.
- FindPC is a programmer tool. It scans the stack of
running programs, prints their register values and shows any jump
pointers which are detected. SegTracker is used to get object file
and hunk information.
- FormatASM formats assembler texts a bit more readable.
For example commands start always after two tab stops and are written
upper case, arguments start one tab stop later, long label names get
a seperate line, ...
- GetDiskImage gets disk images from nearly all device
types (e.g. floppy images, CD-ROM images, harddisk images). It allows
to read defective disks and has some other neat features also.
- GetLibVersion is a little utility to get the correct
version of libraries by loading them and getting the data out of
the library header. After loading most of the libraries are flushed
out of the memory.
- GetRunTime is a very short tool, which can be used
to find the running time of a shell program. It is used like normal
"Run" program, but does not start a seperate shell process, but prints
runtime after program termination.
- JoyMouse switches mouse port and allows to use a
joystick as mouse replacement.
- K6405Interface is an interface driver to use GDR
graphical tablett "robotron K6405" on Amiga computers. Cable
description is included.
- KillAT deletes all @ commands in AmigaGuide files
and thus allows printing the file. The node names can be preserved.
- KillInputs deletes input events from input stream.
Currently processed events are: mouse clicks, mouse movements and key
qualifiers like [CTRL], [ALT] and [AMIGA]. This program is useful for
demonstration computers, because it allows disabling of command
sequences. So unknown users cannot switch screens or kill the
running programs. KillInputs can be enabled/disabled by a hidden
- MakeFontList is an ARexx script for WordWorth 5 or
later versions. It produces sheets containing the currently installed
fonts (50 entries each page). You are able to select the current page
by selecting the start number of fonts using comfortable requests.
It has been designed for up to 1000 fonts, but may be expanded easily.
This selection works around an bug in WordWorth, which cannot handle
really lots of open fonts even if there is much free memory.
- MakeNetList creates a command list for ParNet and
ProNet, which can be called from remote machine to activate all
devices. Together with some little scripts this saves a lot time
and work. I moved all stuff to one disk used to boot one machine
and on the second machine a little script is executed to activate
- ModifyREKO allows to modify REKO and RKP cardsets.
This includes display of card data, stripping of prefs and stack
cards, exchanging of black cards or exchanging of red cards, correct
size information and switching cards 0 and 2.
- PlotChange scans and interprets HP plotter code and
allows to scale, shift, mirror and modify it. It was mainly written
to scale the command down to the resolution of my plotter, but has
a lot functions useful for all other plotters. It has a reduced set
of recogniced instructions till now, but I will implement any other
instructions when I get a description for them.
- SetWindowPos gives you the ability to set all
workbench drawer windows opening a bit shift to the parent window
and thus all windows are reachable. No parent window is completely
covered. This utility is no run-time tool, but writes the new
coordinates into the #?.info file.
- SplitFile does the opposite to Join. It splits files
into parts with defined length or divides a file before a given
- U88x-Ass is an assembler for the Z81 (U8810) and
Z82 (U8820). The programming language is the one used in the old GDR.
The program is fully localized with locale.library.
- WatchDog is a program checking program or system
stability by detecting a file. There are 3 work modes. First one
checks for a file after a definable intervall time and causes reset
when file is missing, some error happen or the system is down. The
file gets deleted when all is ok. Mode two does equal stuff, but does
not check for the file itself, but for changed size and does not
delete it. Mode three only checks for stronger system hangs. This
tool allows to automatically reboot non-interactive machines, when
an error happend and the programs no longer do their job correctly.