\section{The Display List Command Format}

    This section describes the format of the Display List commands that are used to program the interface board.  All commands consist of 16 bytes  
which are partitioned into four words as follows:\footnote{Note that the
16 byte command format is logical since the board as a master only supports
16 byte burst transfers.}

\footnotesize
\vspace*{0.5cm}
\begin{center}
\begin{tabular}{|p{2.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|}
\hline
Opcode Reg; Flags; Cond
& Start Address of XFER
& Length in Half Words
& Pointer to Next Disp Item
 \\ \hline
\end{tabular}
\end{center}
\vspace*{0.5cm}
\normalsize

     The board operation will be discussed with reference to the four
 fields which define its instruction 
format.

\subsection{Opcode Reg; Flags; Condition Field}

    This field contains the primary information that controls the board 
operation.
The Flag bits specify whether a write to or read from CAM-8 is
to be executed. They also
determine the levels on the control lines to be sent to CAM-8 while data is being written
to or read from the CAM-8 registers.  

    The contents to be written to the CAM-8 Opcode Register is also included in this
field.
The interface board accesses a CAM-8 register by first generating the correct control lines to write the
address of the selected register into the CAM-8 Opcode Register.  Once this register
has been selected and written to, any following data is written to or 
read starting
from that register.  Auto-increment from a register is 
achieved by reading or writing long streams of data after selecting a register.
The flags indicate whether data is immediate or to be read
from the host memory.

     The condition bits specify whether
the interface board should wait on the video HSYNC, VSYNC, End-of-Scan, or
the host before continuing to execute the Display List.

\subsection{Start Address of Transfer}

     The Start Address field specifies the host memory address for the start
of the burst transfer operation.  When reading from memory, this is the
first address accessed by the interface board.  When writing to memory, Start
Address specifies the first address written to by the board.

    In the special case where immediate data is being specified by the 
instruction word, the Start Address field stores this immediate data
representation.


\subsection{Length Field}

    The length field defines the length of the DMA transfer to or from CAM-8
in terms of 16-bit half-words.   During a read or write operation, its value is 
decremented for each half-word transmission over the PBus.  When
Length has been decremented to zero, the I/O transfer is complete.  The 
interface board then fetches the next instruction in
the Display List to begin a new execution.

\subsection{Pointer to Next Display Item}

    This field contains the address of the next Display List item to be read and
executed by the interface board.  For sequential operation of the system,
when a transfer is complete, the board reads the instruction at this 
address and begins the new execution. 

    Upon system initialization, the board is programmed to wait on the
host.  The host accesses the board as a slave and writes the address of
the first instruction of the Display List in a corresponding slave register.
If the host has written the Display List instruction address to the interface
board, then the slave register is used instead of the Next Display Item field
of the instruction word to access the next Display List instruction.
This Next Display Item pointer must be correctly aligned on a 16-byte boundary of 
the host memory for proper operation.     

 
    


