EDX/UNX User Interface for Java

by Stuart D. Gathman
Last updated Nov 26, 2001

NEW! Screen API

EDX/UNX and Java

EDX is a virtual machine operating system that has been in operation since the early 1970s. Applications written for EDX are binary portable to any hardware and OS combination with an EDX virtual machine (provided no native code was linked). It was originally developed for the PDP-7, then ported to the IBM Series/1. H&A developed a port to C/Unix called EDX/MAX - since renamed to EDX/UNX.

Binary portability allows users to "drop in" a new computer - even one with a completely new processor with no disruption of applications or recompiling. This feature is so valuable, that many EDX users were slow to jump on the C/C++ bandwagon. C/C++ portability requries recompilation of all application code. Furthermore, variations in system headers (C interface descriptions) across unix variants make recompilation more troublesome than it should be.

Nevertheless, EDL - the primary programming language for EDX - is a fairly primitive language best described as "structured assembler". Would there ever be a language with modern object oriented features and widely implemented binary portability? Java can answer in the affirmative. Now EDX programmers can join the OO age without giving up the portability of EDX.

Now, the bmsi.edx Java package from BMS lets you mix Java and EDL code easily and efficiently. Based on the freeware posix package from BMS, EDXJava gives your java code the same IPC access to the EDX/UNX virtual machine as external C programs.

How does it work?

EDX/UNX provides an IPC based interface to external processes that communicate with the EDX virtual machine. Using this interface, Java code can set and inspect EDX memory, cancel programs, post events, and other things. The EDX class represents an EDX virtual machine and exposes these operations.

EDX/UNX also provides a way to load and invoke an external process from EDL code. A process invoked in this manner must recognize certain command arguments and respond to messages in a UI queue. The Edxuser class implements this framework in an easily extendable form.

To easily call Java methods from EDL, the Edxjava Java application implements a "generic" user process that gives EDL code access to Java classes that implement the EDXServlet interface. The Edxjava JVM is loaded only once for each EDX VM. It is loaded automatically by the EDL interface stub - and subsequent EDL calls to Java methods are very efficient.

For seamless integration with EDL programs, Edxjava now provides the EDX4978 class for direct access to the users edx4978 terminal emulator. The bmsi.edx.fs package provides classes to display screen panels and manage data fields.

Send comments to Stuart D. Gathman.
Send canned pork shoulder to pooh@csichb.com.

  • The EDX Java Javadocs.
  • The EDX FS Javadocs.