% -*- Mode:Text -*-

Here we list a number of general conventions followed throughout this
manual.

\subsection{Number representation}

Numerals in typewriter font are in base sixteen;
thus \ttt{40}=64 and \ttt{FF}=255.

\subsection{Data and variable ordering}

In listings, tables, and figures, we had to fight a hard struggle to
reconcile conflicting conventions concerning the ordering of items and
the orientation of axes.

There are two basic sources of conflict. One conflict is between the
``most significant first'' approach, typified by the way we write a
number such as `1992' starting with the thousands and ending with the
units, and the ``first causes first'' approach, typified by the way
the electronic engineer draws the stages of digital counter, starting
with the units stage on the left and making the carry propagate
left-to-right. The other conflict is between the way a mathematician
would write an $i,j$ array, with $j$ increasing left-to-rigth and $i$
top-to-bottom, in agreement with western-style writing, and the
way a physicist would draw an $x,y$ or an $x,t$ diagram on the page, with $x$
pointing rightwards but $y$ or $t$ pointing \emph{upwards}.
Note that the ``mathematician's'' approach is also the one used in
scanning an ordinary {\sc crt} monitor---left-to-right and then
top-to-bottom.

After much soul-searching, we took the responsibility to enforce a
consistent, universal convention: in any enumeration, the natural
ordering of the items (i.e., increasing values of the enumeration
index) will be reflected by the typographical ordering (left-to-right,
and, for a second index, top-to-bottom).

\medskip

Thus, an array indexed by $x$ and $y$ will be displayed with $x$
increasing from left to right and $y$ from top to bottom,
as in the following diagram
 $$
 \begin{picture}(232,96)(-24,-16)
	% (0,0) is at the front bottom corner
	\thicklines
	\multiput(0,0)(0,8){5}{\line(6,1){192}} % front 5 horizontal lines
	\multiput(0,0)(0,8){5}{\line(-1,1){16}} % side 5 horizontal lines
	\multiput(0,0)(48,8){5}{\line(0,1){32}} % front 5 vertical lines
	\multiput(0,0)(-4,4){5}{\line(0,1){32}} % side 5 vertical lines
	\multiput(0,32)(-4,4){5}{\line(6,1){192}} % top 5 lengthwise lines
	\multiput(0,32)(48,8){5}{\line(-1,1){16}} % top 5 across lines
	\thinlines
	\put(192,64){\line(6,1){16}}\put(208,66.67){\vector(4,1){0}}
		% unfortunately there are no vectors of slope 6:1
		\put(204,60){\makebox(0,0){$x$}}
	\put(0,32){\vector(0,-1){48}}\put(8,-12){\makebox(0,0){$y$}}
	\put(0,32){\vector(-1,1){24}}\put(-20,44){\makebox(0,0){$z$}}
 \end{picture}
 $$

\noindent Here, the diagram's third axis, $z$, is represented as
pointing \emph{into} the page).

Note that, with these conventions, the ``handedness'' of the ($x,y,z$)
frame is the same as that that results from the more conventional
ordering of axes, illustrated by the following diagram

 $$
 \begin{picture}(232,80)(-24,0)
	% (0,0) is on the same corner as in the above diagram
	\thicklines
	\multiput(0,0)(0,8){5}{\line(6,1){192}} % front 5 horizontal lines
	\multiput(0,0)(0,8){5}{\line(-1,1){16}} % side 5 horizontal lines
	\multiput(0,0)(48,8){5}{\line(0,1){32}} % front 5 vertical lines
	\multiput(0,0)(-4,4){5}{\line(0,1){32}} % side 5 vertical lines
	\multiput(0,32)(-4,4){5}{\line(6,1){192}} % top 5 lengthwise lines
	\multiput(0,32)(48,8){5}{\line(-1,1){16}} % top 5 across lines
	\thinlines
	\put(192,32){\line(6,1){16}}\put(208,34.67){\vector(4,1){0}}
		% unfortunately there are no vectors of slope 6:1
		\put(204,28){\makebox(0,0){$x$}}
	\put(0,0){\vector(0,1){64}}\put(8,60){\makebox(0,0){$z$}}
	\put(0,0){\vector(-1,1){24}}\put(-20,12){\makebox(0,0){$y$}}
 \end{picture}
 $$

\medskip

Similarly, a 16-bit computer register will invariably be represented as
follows
 $$
 \def\qq{$\phantom{\scriptstyle15}$}
 \setlength{\tabcolsep}{0.2em}
 \begin{tabular}{|c|*{16}{c|}}\hline
	\qq&\qq&\qq&\qq&\qq&\qq&\qq&\qq&
	\qq&\qq&\qq&\qq&\qq&\qq&\qq&\qq \\\hline
	\multicolumn{1}{c}{$\scriptstyle0$}&
	\multicolumn{1}{c}{$\scriptstyle1$}&
	\multicolumn{1}{c}{$\scriptstyle2$}&
	\multicolumn{1}{c}{$\scriptstyle3$}&
	\multicolumn{1}{c}{$\scriptstyle4$}&
	\multicolumn{1}{c}{$\scriptstyle5$}&
	\multicolumn{1}{c}{$\scriptstyle6$}&
	\multicolumn{1}{c}{$\scriptstyle7$}&
	\multicolumn{1}{c}{$\scriptstyle8$}&
	\multicolumn{1}{c}{$\scriptstyle9$}&
	\multicolumn{1}{c}{$\scriptstyle10$}&
	\multicolumn{1}{c}{$\scriptstyle11$}&
	\multicolumn{1}{c}{$\scriptstyle12$}&
	\multicolumn{1}{c}{$\scriptstyle13$}&
	\multicolumn{1}{c}{$\scriptstyle14$}&
	\multicolumn{1}{c}{$\scriptstyle15$}
\end{tabular}\quad
 $$

\noindent and a text description of this register will list individual
bits or fields in same order, as in the following example:
 $$
 \begin{tabular}{rl}
	0--6	& ASCII character\\
	7	& Parity bit\\
	8--15	& Not used
 \end{tabular}
 $$

\noindent When the contents of the register is interpreted as a
binary-encoded integer by the computer's arithmetic-logic unit or its
address-arithmetic unit, bit 0 will represent the least significant
binary digit (units), and in general bit $n$ will represent the
coefficient of $2^n$.

\medskip

The above ordering convention will be broken in \emph{only one circumstance}. In
deference to universally ingrained practice, ordinary numerals in the
text will be written as usual with the most significant digit first.
Thus, the number represented by the following register contents
 $$
 \setlength{\tabcolsep}{0.348em}
 \begin{tabular}{|c|*{16}{c|}}\hline
	1&0&0&0&1&1&1&1&0&0&0&0&0&0&0&0\\\hline
	\multicolumn{1}{c}{$\scriptstyle0$}&
	\multicolumn{14}{c}{}&
	\multicolumn{1}{c}{$\scriptstyle15$}
 \end{tabular}
 $$
	\noindent will be written, in text form, as hexadecimal \ttt{00F1}
or decimal 237.

\subsection{Signal polarity}

Signal names, typeset in sans-serif face, are chosen so as to have
appropriate mnemonic value. For instance, the \bus{} \tsy{Reset}
signal has a value of 1 (logical {\sc true}) when the \step{} machine
is being reset, and 0 (logical {\sc false} otherwise. 

Physically, on the the \bus\ wires, this signal travels in
complemented form, indicated by \tsy{Reset*}.  However, we shall
usually mention the signal in its native form, saying, for instance,
that ``in certain conditions \tsy{Reset} is asserted''; this implies
that, in those conditions, the physical signal \tsy{Reset*} is
negated.

The complemented form, \tsy{Reset*}, would be used only when
tabulating the pinout of a chip or connector, to make it clear that
the physical signal present on that pin is the complement of \tsy{Reset}.
