The StarShip has two embedded micro-computer systems, besides the big VME-based 68020 outside the StarShip.
They are called "Main screen control" and "Engineering display control".
- Main screen control
The main screen control micro-computer system is a small Euro-card (10x16 cm) sized crate. When this subsystem powers up, it
displays the following information on the main screen until the VME system "main screen" task send its first command.
The main screen control micro-computer connects the following boards via a backplane in the crate.
- 6809 micro-processor board
this board also has the EPROM with the software, a little RAM for the firmware variables, and a VIA (6522) for the
interface to the main (VME) system. The firmware can be divided into 3 major sections.
- accept graphics primitives (commands) from the main VME system
The commands are received by an interrupt-driven routine, and these commands are stored in a big (48k) circular buffer. The 6809
graphics subsystem for the main screen can draw the requested actions (plot star, draw line, draw formatted characters, etc.)
continuously, without the need to (periodically polling) the VME host. The drawing software driver just reads the circular buffer
and retrieves a command when it is available. The command storage must be interrupt driven. Image the load (delay) when all
starts must be plotted, and thus are sent from the VME system to the 6809 graphics subsystem! Per star that means information about
the X and Y position on the screen, the colour, the intensity. And possibly that star is larger than one pixel, so a star can
consist of more pixels!
- maintain the administration of the circular buffer
this is a part of the interrupt routine to store the incoming data in the buffer. Another part of the software retrieves the data
message-based from the buffer and updates the administration. Of course measures are taken that this retrieval buffer update does
not interfere with the interrupt routine that adds information in the buffer!
- graphic primitives routines
many routines are provided to ease the burden on the VME system to draw graphics on the main screen. The VME system simply sends
a message, and can go on. The requested graphics output will be done by the 6809 graphics subsystem. The message consists always
of a copmmand byte that describes the type of command (plot point, draw line, set drawing colour, print character, set character
colour, and so on). The bytes following the command byte depends on the type of command. Many commands require an X and Y coordinate.
Higher level commands are also available, like draw rectangle, draw (straight) line, draw arc, draw circle and draw ellipse.
There a only a few conditions that will cause the graphics subsystem to send information to the VME system. Most graphics primitives
just do what is requested, and the VME system assumes all went OK. If the graphics subsystem fails, it will send a message to the
VME system. The failure can have two causes. One is bad data in an earlier send command message, the other is a failure in the
drawing software. Both are in fact software bugs ...
There is one command that specifically requests a response, "inquire trackball
position". When the graphics subsystem receives this message it send the X and Y coordinate current set in its firmware to the
VME system. This is often an interaction between the trackball position and plotting a cross-hair cursor on the main screen, when
the main screen is allocated to "Sciences" for example. You (in the role of Sciences Officer) put the cross-hair cursor on a star
on the screen and request detailed information, which is subsequently shown next to the star. (note: this is an idea which is not
yet implemented!).
- 64k RAM board
This board stores all the (graphics) commands send by the VME system. The RAM forms effectively a single large circular buffer.
- a simple TTL-based graphics display
This graphics board actually is built of two boards, piggy back connected. The first board has the video logic, the interface to
the bus, and the RAM for a screen of 512 x 256 pixels, one bit plane (thus black & white only). The piggy back board holds RAM for 3
extra bits, totalling 4 bits per pixel, allowing 8 colours at low / high intensity.
The graphics susbsystem does not connnect to the VME system via a serial link. Imagine that all the messages had to be sent bit by bit
over a serial link! That would make the graphics system slow when all stars must be plotted. The interface between the graphics
subsystem and the VME system is a dedicated 16-bit data bi-directional channel with some additional wires to support a handshake
protocol. This handshake also generates the interrupt to the 6809 to tell that a new data word is available.
- Engineering display control
The engineering display control is also a Euro-card sized crate with just 2 boards.
- 6802 micro-processor board
this board also has the EPROM with the software, a little RAM for processing the messages and commands received, and an ACIA (6850)
for the serial interface to the main (VME) system.
- interface for a 640 x 240 LCD display (? must check the pixel size!)
This board has the logic to interface to an LCD display panel. It is actually a design that was published in Elektor, so I just
had to order the printed circuit board and solder the components on the board. There was one tricky part, the big HDxxxxx control
chip, which was an SMD part which its pins very close to each other ...