Retrochallenge 2009
      Mark Wickens
      5-Jan-2009 20:11
                               Remote Control Unit Application

      The Remote Control Unit Application is a piece of software designed to interface
      with a Mirrorbow Ethernet IO Interface[1].

      From their website:
               The Mirrorbow Ethernet Display and IO Interface allows custom
               web page control of a 4x20 blue backlit LCD display and 32
               digital logic IOs including 13 that can be configured as
               analogue to digital converter inputs.

      The Java/Swing control application looks like this:

      Java Mirrorbow Application

      You click on a button to toggle the state of power - green means on, red means
      off. The mirrowbow LCD is updated with the new status.

      Communication with the interface is made via standard TCP/IP over ethernet using
      the HTTP GET protocol. The following command sets the value of port 4 (P4) to
      196 (=196):

      http://192.168.1.199/index.htm?P4=196

      The interface has a 4x20 LCD display module that can be written to. I have
      written a Java Swing application that interfaces with the module, and this works
      under Windows and Linux (I haven't tried it on OpenVMS Java implementations, but
      I see no reason why it wouldn't work).

      The remote control unit is mounted above my workstation:

      Mirrorbow Control Unit

      It is connected to a home-built power distribution unit to control power to
      computers and peripherals in the attic:

      Power Distribution Unit

      One of the objectives of my retrochallenge is to rewrite this application as a
      character terminal based application that will run under OpenVMS on a VAX. As
      OpenVMS is pretty much identical between VAX, Alpha and Itanium platforms I will
      be able to use the application on all of these boxes.I also want to provide a
      command line version and if I have enough time a DECwindows based version.

      I want to write the program to use as many of the OpenVMS provided facilities as
      is applicable. Among these utilities are the following:

      Command Definition Utility
      From the manual: the Command Definition Utility (CDU) creates, deletes, or
      changes definitions in a command table. Command tables are data structures
      created by CDU and used by the command language interpreter (CLI) to parse and
      evaluate DIGITAL Command Language (DCL) commands.

      Librarian Utility
      From the manual: the Librarian Utility allows you to create, maintain and access
      libraries on all OpenVMS platforms. In particular, I will be creating:

      Help Libraries - contain modules of help text that provide user information
      about a program.

      Text Libraries - contain sequential record files that you want to retrieve as
      data for a program.

      Message Utility
      From the manual: the Message Utility (MESSAGE) lets you supplement OpenVMS
      system messages with your own messages. Your messages can indicate that an error
      has occurred, or they can indicate other conditions; for example, that a routine
      has run successfully or that a default value has been assigned.

      RTL Screen Management Library (SMG$)
      The Screen Management library allows the creation of character terminal based
      applications.
      
      ENDNOTES

      1. Mirrorbow Ethernet IO Interface