WabaTM for DOS!

Introduction

Go find your old 386 machines! I've ported Waba to DOS!

Waba is a runtime environment based on a virtual machine similar to the Java Virtual Machine.  It uses the a subset of the Java opcode set, omitting all opcodes pertaining to the long and double datatypes as well as threads and exceptions. It also has its own class library. The resultant virtual machine implementations are often very small.

For full details, consult the WabaSoft home page at http://www.wabasoft.com.

Currently, implementations exist for a variety of handheld devices (PalmOS, Windows CE, Newton) and operating systems (Win32, Linux). And now, DOS! Waba for DOS runs happily on a 386 with 4MB of RAM (maybe even less).

WabaTM for DOS is covered by the GNU General Public License.

For a free DOS implementation, try FreeDOS (http://www.freedos.org). (Haven't tested with this, unfortunately.)

Features of This Port

  • Runs in DOS protected mode. Requires a 386 or greater (no coprocessor required), 4MB RAM (maybe less), a pointing device (mouse) and a VGA card (minimum 640x480, 16 colors).
  • Can run in color or monochrome mode.
  • Can run both Windows CE .wrp files as well as Palm OS .pdb files!
  • The Catalog API reads and writes Palm .pdb files! (Thanks to code from SuperWaba - see below.)

Technical Details

  • Based on the original Waba implementation, not the latest sources at SourceForge or SuperWaba. (I did modify the Waba class library as mentioned below.)
  • Does not implement the socket or serial port APIs. (For sockets, I was going to try DOS PPPD, but ran out of time.)
  • Uses GRX, so you might be able to port this to Linux / GRX relatively easily.
27 February 2006
Jean-Pierre Le Rouzic emailed me saying he's implemented the TCP/IP functionality using WATTCP. I haven't tested this. Here is the link: https://sourceforge.net/projects/waba-for-dos

Credits

Thanks are due to:

  • the Waba SourceForge team for the file native methods (I "stole" these from their Linux port)
  • the SuperWaba team for the Java Catalog implementation which can read and write .pdb files. (I "stole" Catalog.java and whatever other classes I needed to make this work. I originally set out to do a C implementation which could read and write .pdb files, but abandoned this effort due to lack of time.)
  • Rick Wild, the creator of Waba, whose concept and code were a joy to read. Here is my original email to him.

  • everyone who is promoting and extending this platform.

End-User Distribution: Quick Start

  • Download doswaba.zip.
  • Unzip to C:\ on your DOS machine. Ignore the directory creation warnings.
  • Change to c:\waba and type wabaenv to set up the environment. (You might want to incorporate the contents of wabaenv.bat into autoexec.bat.)
  • Ensure that a mouse driver is installed.
  • Type waba with no parameters at the command line to see the possible options. In particular, the /b switch forces monochrome mode.
  • Look in c:\waba\tests and play with the samples. (See ReadMe.txt in this directory.)
  • To exit a program, use [Alt+F4]. (There is no mouse equivalent.)

Building the Distribution

First, a disclaimer: I am terminating this effort and shipping it due to lack of time and other personal commitments. The code seems to run well, but I haven't had time to add comments to the sources.

This being said, the distribution was built using the following tools on Windows 2000. This is my configuration, not the minimum required one.

The developer zipfile is doswabad.zip.

Tool Install Location Download URL
DJGPP v2.03
c:\djgpp
http://www.delorie.com/djgpp
GRX v2.3.1
c:\djgpp\contrib\grx231    
http://www.gnu.de/software/GRX/
JDK 1.3
c:\jdk1.3
http://java.sun.com
Ant
c:\Program Files\jakarta-ant-1.3
http://ant.apache.org/index.html

I use an Ant build script which has a number of targets for compiling, creating warp.wrp, creating .zip files, etc. Consult build.xml in the devl directory for full details. No makefile is needed for the waba.exe build because I stuck to Rick Wild's convention of including .c files in waba.c.

If You Enjoy This...

Would you consider visiting the following websites?:

Please Take This From Me!

Due to personal commitments, I will be unable to maintain this port. Please take this and improve it, possibly merging this with SourceForge or SuperWaba. Unfortunately, in the near future, it is highly unlikely that I will be able to field questions about this, although you can always try to contact me.

Enjoy!

-- Mohan