Video Adapters and
Terminals
This true color display for MMIX
works on X11 with True Color visuals. The video system is
interfaced to the processor via a memory mapped frame buffer. The
video device base address is fixed at
VBase=#5000000000000000 . Presently the frame buffer
is 640 by 480 pixels, but this size could be easily changed at
compile time. Each tetra maps to a single pixel with bytes 2, 1
and 0 controlling red, green and blue intensities respectively.
To simplify the mythical video board layout, only write cycles tetra
and octa wide are supported by the video subsystem. All reads
from the VRAM area return zero, and wyde and byte writes are
ignored silently. Following the age old tradition, the X
coordinate increases from left to right, and Y increases from top
to bottom. A pixel at (x,y) is controlled by the tetra at
VBase+4*(x+640*y) , so that anyone familiar with the VGA or X11
should be comfortable with the arrangement. Postscript writers
have to flip their vertical axis, though. To decouple the video
output from the simulator, X events are handled by a separate
pthread, so that the display window is updated even when the simulation
is stopped.
The graphics system has been tested with Linux and Solaris. It should be
straightforward to infest other X11 hosts.
The MMIXX distribution contains
following files:
mmixx/Makefile.x11 |
makefile for mmixx |
mmixx/mmix-sim.ch |
The change file for mmix-sim.w |
mmixx/pattern.mms |
Demo program source |
mmixx/pattern.mmo |
Demo program binary |
mmixx/lorentz.mms |
Lorentz attractor source |
mmixx/lorentz.mmo |
Lorentz attractor binary |
To build your own binaries (which is highly recommended, since
bugs in both MMIX and MMIXX are constantly being fixed), you will
also need the MMIXware
sources as well as X11 headers and libraries in addition to a
C compiler and the cweave/ctange bundle to convert CWEB
sources to C.
This is the first public release of MMIXX. Bug reports,
comments, suggestions and fan e-mail are appreciated if sent to the author at avp@mit.edu.
|