8x300 design guide - Al Kossow's Bitsavers - Trailing-Edge
8x300 design guide - Al Kossow's Bitsavers - Trailing-Edge
8x300 design guide - Al Kossow's Bitsavers - Trailing-Edge
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
OUTPUT OF ALU<br />
o<br />
I I I I I I<br />
v<br />
_L-BITS_<br />
SHIFT LEFT UNTIL BIT 7 IS<br />
IN BIT POSITION 5<br />
L = 4. AS IN PREVIOUS EXAMPLE<br />
MERGED FIELD<br />
'--y-------<br />
'----y-----'<br />
+L-______ ORIGINAL IV BUS DATA<br />
Figure 2-8. Shift and Merge Functions<br />
Because the process is not an end-around-shift, data shifted from<br />
position 0, the MSB, is lost. The number of positions to be shifted is<br />
determined by instruction bits 13-15: the data is left shifted until<br />
the LSB has reached the bit position specified by instruction bits<br />
13-15.<br />
The merge function allows the user to update part of the existing<br />
I/O bus data without affecting the remaining parts of the data byte.<br />
The length of the bit string to be merged with the existing data is<br />
specified by the L operand field, the LSB of the bit string (after<br />
shifting) being specified by instruction bits 13-15.<br />
It must be kept in mind that the I/O bus is "read from" and "written<br />
to" only in 8-bit bytes. The eight bits of information is read from<br />
the I/O bus and latched into the internal I/o latches of the 8X300.<br />
Some number of bits may then be rotated, masked and shifted as<br />
desired. Prior to output to the I/O bus, the desired bits are then<br />
merged with the original information still being retained in the<br />
internal I/O latches. For this reason, a single bit cannot be read<br />
from one device and written to replace just one bit of another<br />
device in one instruction cycle.<br />
2-12