Processor subsystems

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".

  1. 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.
      1. 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!
      2. 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!
      3. 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.

  2. 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 ...