The Transterpreter Project

Concurrency, everywhere.

A DOSterpreter?


Although it sounds odd, Damian built a DOS version of the Transterpreter last week.

Oh, the humanity!

This may sound wacky, but the reasoning is sound. We have a large suite of tests that we run the Transterpreter through on a regular basis. Actually, we use buildbot to run all of the tests anytime someone checks code into the trunk. However, this only runs the tests on "big" platforms---it runs them on a Linux box or two, and a Solaris/SPARC machine. We cannot, at this time, automatically run all of our tests on an embedded 16-bit target; while we do have a development board or two we could dedicate to this task, I'm not interested (right now) in doing the scripting to upload code over a JTAG port, run the tests, and check (on the device) to see if we are doing the right thing. It's a lot of scripting.

The H8/300, the processor at the heart of the LEGO RCX

So, when Jon was having a hard time with the LEGO RCX recently, it became clear that we really needed to run our tests on 16-bit platforms. This would help shake out whether or not the compiler, linker, or run-time were having a hard time when there were fewer ones and zeros running around. As a result, Damian setup the Open Watcom 16-bit DOS compiler, built the VM, booted up a FreeDOS image in QEMU, and ran a bunch of the tests through the VM. We passed all the tests we could easily run, and are working to get the rest compiling. It turns out we need to build some libraries that we've never needed before...

So, yes, the Transterpreter can run in 16-bit mode in DOS. There's a number of features that are untested at this time, but hopefully we'll find a way to automate the testing of the VM under the FreeDOS image.


  • Posted: February 24, 2007
  • Author: Matthew Jadud
  • Comments: None
  • Tags: None