/intel80tools

Reconstruction of intel 8080 tool chain inc. PLM80, ASM80, LINK80, LOC80, LIB80 and ISIS 4.1

Primary LanguageAssembly

Intel80Tools

This repository contains my attempts at reverse engineering a number of Intel and CP/M tools and applications back into PL/M and assembler source code. My goal was to make sure that the reverse engineered source can be rebuilt to create a byte level match to the original binary images. With a few exceptions I have managed to achieve this, or in some cases create equivalent code, i.e. image loaded into memory will be the same. There are a very small number of cases, where it appears that internal / pre-release development tools were used, in these cases I have done my best to match the original or at least understand the issue.

In addition to my reverse engineering efforts, the repository contains the prebuilt 32bit windows versions of the development tools I use, except for Visual Studio and perl, both of which can be freely downloaded.

One of the key tools is an enhanced version of John Elliott's thames emulator for ISIS. I have added several features to make it more user friendly, especially for use in development.

The source for most of the bespoke tools can be found in the c-ports and tool-src repositories in addition to the binary files.

News

A new tool has been added fixobj that provides features to allow binaries to be tweaked to match binaries generated by tools that are not available. This has allowed me to rework of the toolbox files and several others to support direct application build without resorting to previous libraries. The only individual differences now for files where the tool / linker has saved OMF records in a different order or split records differently, this prevents an exact binary image match, but the files are fully equivalent and can be used in builds without problem. One other minor difference is for a couple of library files the historic lib application saved a file offset using a non-normalised value. Again this does not cause problems.

The c-ports and tool-src now have their own repositories. The prebuilt 32bit windows binaries are still in this repository. This was done to keep the repository cleaner as more tools were added.

The core documentation for the work is now located in the doc directory, where you will find an overview document along with more targeted documentation for various parts of the repository.

A recent addition to the repository is ISIS v1.1 (16k ISIS). I am not aware of this being elsewhere on the internet. It was uncovered in early September 2020 by Jon Hales a volunteer at the Cambridge Centre for Computing History, who found it in the centre's archives. In addition to the binary images for this rare version of ISIS, I have also reversed engineered all of the OS and applications, except for the assembler as80 which remains a work in progress.

Troubleshooting

For the most part the repository contains the tools you need to rebuild any of the reverse engineered code I have provided. The things to watch out for are

  • The old Intel MSDOS based tools have restrictions on pathnames. As such it is useful to make sure that every directory on the path to your installation of the repository, including the repository top level name itself, meets MSDOS 8.3 naming limits and that only alphanumeric characters are used. Unfortunately the Windows autogenerated 8.3 names for long paths cannot be used as they contain the tilde character.
  • Many of the makefiles use perl scripts, so if you are planning to rebuild the code you will need an installation of perl, I don't really use any advanced features, so most recent perl versions should work. If you are only interested in browsing the source, then the unpack tool can be used without perl installed to extract the source from my packed format.
  • Thames should build with the provided Visual Studio solution files or autotools or cmake. Note if you get a warning message on opening the solution files, it may be because you are using an older or possibly newer version than I have set the project to. Visual Studio provides simple options to retarget to any version you have.
  • The tools have undergone more testing under Windows. If you wish to use Unix/Linux, please look at the now separate repositories c-ports and tool-src, for the source of several of the tools. The perl scripts should work as these should extract in unix text format from git. There are however some tools without source, if you need them please contact me via github.

Updated by Mark Ogden 26-Nov-2020