17.05.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!