Image: Proxlat.png - 2689 bytes

Welcome to the home page of the Proxlat project. Currently the only member of the Proxlat project is Erik Siers, but I'm hoping to add more developers soon. If you want to help in some way, drop me a note at eriksiers AT users DOT sourceforge DOT net. (There are a few programmers and code monkeys I've got my eye on. You should know who you are. Others would be appreciated.)

The goal of the Proxlat project is to be able to statically translate (recompile, relink, whatever) any binary (compiled) program from any format to any other format, to run under any operating system (within the limitations of the target hardware and OS). I am currently researching the feasibility of generic static binary translation. This is not emulation, just-in-time compilation, wrappers, or a runtime environment like Java or .Net, all of which fall under the heading of dynamic translation. Static translation should produce executables that run faster than dynamic translation.

My personal reasons for doing this are simple: I want to be able to use my old DOS utilities and play my old DOS games on Linux without emulation. (Windows stuff under Linux without emulation would be nice, too.)

A note for those of you that download any sources I've put up so far: this isn't translating anything right now. The source is just... let's call it the framework for the program. It might compile, but it certainly isn't going to be useful.


Okay... so, it's been a while. Proxlat isn't dead, exactly, but I'm not working on it right now, either. What work has been done involves taking a DOS COM file and throwing an ELF header on it. Pretty simple, really, although it's even easier using GNU binutils, which should be able to treat it as a plain .o file. (Maybe.) Also, I've been working on file type detection (mostly for systems without the 'file' command). That's mostly done, but not packaged for release in any way.
I don't have any new code to upload at the moment. Sorry. I know it's been 2 years, but nobody's really paying attention, anyway.

Using code found on the WWW, written by a fellow who calls himself "BlackLight", Proxlat can now do a single type of translation! This special case is DOS COM to DOS EXE, and, while it's not very useful, it's a start, and it's helping me understand EXE headers quite a bit. Download today's work to get the code. (Note that the included readme.txt mentions that com2exe.exe is included in the archive. It's not - I forgot - so you'll have to use one of the other steps to run the program.)
On a related note, I don't think I'll have the DOS COM -> ELF stuff done by tomorrow like I originally thought I would. [shrug] Oh well.

I have now posted my intended timeline of sorts. It shows the order I intend to get things working. Look at it here:
Also, I've uploaded more code. This is entirely BASIC (sorry C guys) and it actually compiles. Woohoo. It doesn't work, exactly, but the fact that it compiles is a step in the right direction. Get the new code here:

2006-04-06 #2:
Here's today's work:

I've uploaded some archives. These are, again, incomplete and non-working, so don't expect to get something that works. Think of these as daily builds, or something. If you extract these under an OS that supports users and/or groups, these will be owned by "eriksiers:proxlat". Sorry if that inconveniences you, but I did that to make things a bit easier for me on Sourceforge. The files and some relevant info:
Proxlat-no-version.tar.bz2 - 2620 bytes - 30 March 2006 - C written by me, broken
Proxlat-C-old.tar.bz2 - 3107 bytes - 04 April 2006 - C written by me, incomplete
Proxlat-bas-tar.bz2 - 3929 bytes - 05 April 2006 - BCX (with a bit of C) written by me, work in progress

Well, screw this. It was worth the attempt, but I'm just not a C programmer. I've translated what I've got back over to BASIC so I can get some work done - I was spending too much time saying to myself, "How do I do this? It's easy under BASIC." As I get stuff written I'll filter it through BCX and then de-mangle the generated C files - I can do that much, at least.

I've uploaded the very beginnings of the program's source to this web site. I used STI's Understand for C++ to generate the html. The whole thing is right here! (Frames required, sorry.) To look at the sources themselves, click the "File Contents Report" link, then click on the filename to view the source. At the moment, there are only 3 files: Proxlat.c, analyze.h, and output.h (which is mostly a wrapper for stdio). I'll be the first to admit that it's crappy code, but hey, I'm a BASIC programmer trying to write C - what do you expect? I'd be surprised if what little I've got here compiles successfully on *nix systems - it barely does under Windows. (If you do compile it, DON'T try to run it - it crashes hard on my Windows machine, hard enough that I have to kill the process.)

Proxlat is hosted on
Click the Sourceforge logo to visit the Sourceforge main page, or click here to visit the Proxlat project page.

This file last modified 07/23/08