The video output module originally developed for the VAXstation 2000 was a small binding to Win32 GDI supporting only monochrome bitmaps. Since then I've expanded it to also support SDL for the drawing code and to support 8 bit colour. I may also add an X11 binding eventually but this will be a little more complex than the other output mechanisms as colour conversion needs to be carried out for every possible bit depth of X server that the simulator may be displayed on. However, even with the addition of SDL the portability has been dramatically increased. So far I've had successful runs on i686/Linux and SPARC/Solaris.
There are various DEC graphics devices currently in development:
This is the device built into the standard cell on the VAXstation 2000 and 3100 workstations. It consists of a framebuffer in VAX memory space and a DC503 cursor sprite chip to generate the cursor image as an overlay. The documentation for this device is in EK-VTTAA-TM-001 (VAXstation 2000 and MicroVAX 2000 Technical Manual) which describes the operation of the DC503 chip but does not give any details on the format of the framebuffer. After some experimentation I determined that the format is 1bpp with the least significant bit corresponding to the leftmost pixel on the screen. The framebuffer functionality is complete but the DC503 cursor sprite chip still needs to be fully implemented. In the interim a Windows like cursor is generated internally by the video output module.
Here are some screenshots of the device in action on the VAXstation 2000. In order of appearance these show the VXT Express software, the VXT software, EWS (ELN Windowing System) and VAXcluster console running via an EWS session. The device is also capable of running DECwindows and VWS on VMS and should be capable of running windowing systems under supported Unix operating systems although I haven't tested it yet.
The VCB01 was a single Q-Bus board that was supplied with the VAXstation I and VAXstation II systems. These was essentially the same as their MicroVAX counterparts apart from the addition of this module. It consists of a framebuffer and scanline map in VAX memory space and a 2681 DUART for communication with the keyboard and mouse. The documentation for this device is in appendix C of AZ-GLFAB-MN (VAXstation II Technical Manual - BA23 Enclosure). The framebuffer is the same format as for the VAXstation Monochrome device although it is unordered. The order that each line of the framebuffer is put to the screen is determined by the scanline map.
The VCB02 consists of 2 or 3 interconnected Q-Bus boards, which were supplied with the VAXstation II/GPX (and maybe others?). It is documented in EK-104AA-TM-001 (VCB02 Video Subsystem - Technical Manual). This device does not have a framebuffer in VAX memory space. Instead video data is transfered to the framebuffer and then manipulated by a series of raster operations. This makes the device significantly more complicated than it's Monochrome counterpart although some progress has been made with implementing the basic rasterops as this screenshot shows:
This device was supplied as an option board for the VAXstation 3100 series of workstations. There does not seem to be any documentation available from DEC but working back from various driver sources it appeared to be quite simple on the surface. There is direct access to the framebuffer from the CPU and it uses a BT459 RAMDAC for the colour map and cursor generation, which is well documented in it's datasheet. As it turned out, only the console actually uses direct access to the framebuffer - VMS (and ELN) use a series of FIFOs to stream data into the registers of the Scanproc and TBC chip and execute raster operations. The FIFOs can also be used to stream bitmap data to/from the framebuffer. DECwindows goes one step further and streams microcode to the Scanproc chip to supplement the raster operations built into the ROM effectively reprogramming it at runtime!
Below you can see some screenshots of the progress so far:
The VAXstation Monochrome device is featured in the VAXstation 2000 simulator.