Skip Navigation.
Section 0

Interface Manual: Appendix D - Polaris Objects and Streams

The Polaris supports a set of Chroma Interface commands that allows objects inside the Polaris to be created, deleted, opened, read, written, and added to the system as software extensions. It also allows messages in the Polaris' internal message format (which bears no resemblance to the Chroma Interface language) to be inserted into the various internal data streams. Certain of these functions requires knowledge of proprietary details of the inner workings of the Polaris; if misused, the Polaris' computer will almost definitely crash, and in doing so will probably clobber a few bytes in the middle or your favorite program or sequence. In other words, experiment at your own risk. Other functions, though, are documented here, as they are fairly simple and presumed to be generally useful.

The Chroma Interface allows an external computer to gain access to one internal data object at a time. At any given time, one object (possibly non-existent) is "open" to the interface, and this object (if it exists) is either write-enabled or write-protected. Objects that are write-protected can be read with Peek and Peek Two Bytes. Objects that are write-enabled can also be written with Poke and Poke Two Bytes. Each object, then, is like a separate address space of a particular size, and accesses beyond the end of an object are prevented.

All objects are numbered using a 16-bit number, and the particular association between object numbers and particular physical objects is instrument- dependent. That is, future instruments that use this interface will probably have different object numbers. It is, however, possible to find out if an object exists and how big it is through the interface.

Polaris Object Numbers

The following objects can be safely created, deleted: open, read and written:

The following objects can be safely open and read.

Internally, the Polaris encodes events as messages, and these messages flow in streams between the different parts of the internal software. These messages look completely different from the commands in the Chroma Interface language; most notably, they are all two bytes long (not including an instrument number, if any). Some messages allow things to be done that could not otherwise be done through the Chroma Interface language. The Chroma Interface language therefore provides a mechanism for inserting messages into the internal streams.

In general, if you send a message to a stream that goes someplace, and the message is not understood, the message vill be ignored. If, however, you send a message to a stream that doesn't go someplace, the computer will crash. The following stream numbers (in hex) can be safely used: