Easily manage TI-99 floppy and hard disk images
Overview
The objective of TIImageTool is to simplify working with disk images for TI-99 systems. Disk images are, simply speaking, floppy disks or hard disks that have been saved as a file. These images are used in some emulators like MAME instead of using a real floppy drive or hard drive, mainly because the PC hardware does not directly support the device operations coming from the emulated TI. Instead, the emulator only works with a disk image, and the emulator "believes" to see a real disk.
Disk images can be created with most emulators, also with MAME, but apart from creating them, only little support for changing the image contents is available. Certainly, images change while we work with the emulator, because the emulated system performs write operations, and so we can copy files on the image, delete them, and also read them. But multi-system emulators like MAME simply cannot implement all the handling for every single system.
TIImageTool is a program which allows you to create and modify TI disk images in an intuitive way, including common file management features that we know from PC systems. Disk images can be created with different sizes, files can be copied from one disk to another, files can be imported and exported, and file systems can be checked for errors.
In the following sections I will go through each feature of the program and explain its usage.
Prerequisites
For using TIImageTool you only need a Java Runtime Environment version 8 and higher.
One specific feature of TIImageTool is the Serial bridge. This allows you to transfer files to and from another computer system via XModem file exchange. The other computer system may be a real TI or Geneve, so you can easily exchange your files between the PC and the TI. In order to use the serial bridge you need the serial interface support for Java. TIImageTool uses the RXTX serial library, so you have to install this library if you want to use the bridge. If you do not install it, you can use all features of TIImageTool without limitations except for the serial connection.
If you want to work with Compact Flash cards that are used with the CF7 expansion system (or the nanoPEB), you also need a program to read directly from a storage device. This program is called dd, and it is already part of every Linux distribution or MacOS, but not of a normal Windows installation. You have to download the DD for Windows program; it is simply one EXE file that you should store at a location that you easily remember.
Starting
TIImageTool is started by double-clicking the JAR file (if the JAR file type is associated to the Java Runtime Environment). Alternatively, you can start the program on the command linejava -jar tiimagetool.jar [imageFile]
If you provide the optional imageFile argument, TIImageTool will directly open the image on startup. In case you simply want to use the serial bridge feature without all the other things, you can pass the BRIDGE argument in the command line like this:java -jar tiimagetool.jar BRIDGE serialDevice socketPort
Please see below (serial bridge) for more details.
Supported formats
Image files that can be used with TIImageTool may have one of the following formats:
Floppy disk image formats
- Sector dump format (also known as "v9t9" format)
- Track dump format (aka "PC99" format)
- HFE format (aka "Lotharek" format)
Hard disk image formats
- Raw hard disk format (same as sector dump format but for hard disks)
- MAME CHD format (Compressed Hunks of Data, a MAME-specific format for mass storage media)
Compact flash format
- CF7 image format (whole card)
- CF7 volume format (single volume on the CF7 image)
All these formats can be used directly, including reading and writing operations. Files and directories may be moved or copied between images of different formats. The different formats are only visible to some lower layer of TIImageTool and are not visible to the user. There are no constraints beyond those that are specific for the device (e.g. you cannot create more than three directories on a floppy disk).
Licensing
Usage of TIImageTool is subject to the GPLv3 license. The terms of the license can be found inside the distribution package file that contained this JAR file. The package also contains the source code as required by the GPL license. The GPL license text can also be downloaded from www.gnu.org. In essence, you can redistribute or change the software to your needs, but only if you put your modifications under the same GPLv3 license. In doubt, contact the above E-Mail address, also for dual licensing considerations.
Bugs and errors
Although everyone does his or her best, to err remains human. Every new release of TIImageTool has added a set of new features, everything certainly tested several times in different ways. But it is just impossible to ensure that everything works as expected. So if you find something weird going on with TIImageTool, here are some suggestions:
Probably the program works correctly, and you just understood one of its functions in a different way. Read the appropriate section of this manual, or contact me by mail (see below)
If you encounter trouble while writing on your images, make sure your images are not write-protected.
If the program seems to hang (mouse pointer shows a "wait state"), check if some dialog window waits for your input. If not, you should restart the program in a command line. Watch if there is some output in the command line which reads like an error message and report it to me. You can also activate the console output logging to a file, and open the console window in the Utility menu.
In any case, if you need help please contact me at
Suggestions are always welcome. Also tell me if some program behavior is obviously correct as described but feels surprising, awkward, or not useful for you. I cannot promise to consider all of your inputs but if your point convinces me there is a good chance you'll get in the next version.
Disclaimer
TIImageTool has been created by myself without rigorous testing and without verification against any formal tests or test suites. The program may contain errors which may prevent it from functioning in a promised or expected way. Even worse, as the core features of the program comprise file management, any malfunction may render image files useless after using this tool. As I am using this tool by myself, you can feel reassured that I do not plan to purposefully break the images, as my own ones would also be lost.
Although care has been taken to ensure a safe working with images, you should always keep backup copies of your media. As long as you only read files with this tool your images remain unchanged.
Comments from the author
My motivation for writing TIImageTool emerged when I managed to copy all of my old TI floppy disks to PC image files in order to use them in MESS (today MAME). At that point I was in need of a tool which allowed me to quickly check whether all images have been correctly copied. MAME offers a tool named imgtool, but it is a text-only command line tool, and its main use case seems the creation of new images. After I added the track dump format to the TI-99 emulation in MAME, I should have added that support to imgtool as well. imgtool is a good tool if you are working with many different emulations in MAME, but it cannot cover all features that one would like to have for one specific platform.
I started with TIImageTool in 2010, first as a pure command line tool. Later I added a graphical user interface. During the following years I added more and more features, like multi-disk support and cut-copy-paste capabilities, hard disk operations, and archive support.
TIImageTool is a single-person project, done in my free time. I wrote it completely in Java using the jEdit editor as my favorite programming environment (small, fast, useful).