PERIPHERAL CONTROL BLOCK

4.4.3F-Bus Operation

The F-Bus functions differently than the external data bus for byte and word accesses. All write transfers on the F-Bus occur as words, regardless of how they are encoded. For example, the in- struction OUT DX, AL (DX is even) will write the entire AX register to the Peripheral Control Block register at location [DX]. If DX were an odd location, AL would be placed in [DX] and AH would be placed at [DX–1]. A word operation to an odd address would write [DX] and [DX– 1] with AL and AH, respectively. This differs from normal external bus operation where un- aligned word writes modify [DX] and [DX+1]. In summary, do not use odd-aligned byte or word writes to the PCB.

Aligned word reads work normally. Unaligned word reads work differently. For example, IN AX, DX (DX is odd) will transfer [DX] into AL and [DX–1] into AH. Byte reads from even or odd addresses work normally, but only a byte will be read. For example, IN AL, DX will not transfer [DX] into AX (only AL is modified).

No problems will arise if the following recommendations are adhered to.

Word reads

Aligned word reads of the PCB work normally. Access only even-

 

aligned words with IN AX, DX or MOV word register, even PCB

 

address.

Byte reads

Byte reads of the PCB work normally. Beware of reading word-wide

 

PCB registers that may change value between successive reads (e.g.,

 

timer count value).

Word writes

Always write even-aligned words to the PCB. Writing an odd-

 

aligned word will give unexpected results.

 

For the 80C186 Modular Core, use either

 

– OUT DX, AX or

 

– OUT DX, AL or

 

– MOV even PCB address, word register.

 

For the 80C188 Modular Core, using OUT DX, AX will perform an

 

unnecessary bus cycle and is not recommended. Use either

 

– OUT DX, AL or

 

– MOV even-aligned byte PCB address, byte register low byte.

Byte writes

Always use even-aligned byte writes to the PCB. Even-aligned byte

 

writes will modify the entire word PCB location. Do not perform

 

unaligned byte writes to the PCB.

4-5

Page 134
Image 134
Intel 80C188XL, 80C186XL user manual Bus Operation, Word reads