03.01.2015 Views

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

PERIPHERAL CONTROL BLOCK<br />

4.4.3 F-Bus Operation<br />

The F-Bus functions differently than the external data bus for byte and word accesses. All write<br />

transfers on the F-Bus occur as words, regardless of how they are encoded. For example, the instruction<br />

OUT DX, AL (DX is even) will write the entire AX register to the Peripheral Control<br />

Block register at location [DX]. If DX were an odd location, AL would be placed in [DX] and<br />

AH would be placed at [DX–1]. A word operation to an odd address would write [DX] and [DX–<br />

1] with AL and AH, respectively. This differs from normal external bus operation where unaligned<br />

word writes modify [DX] and [DX+1]. In summary, do not use odd-aligned byte or word<br />

writes to the PCB.<br />

Aligned word reads work normally. Unaligned word reads work differently. For example, IN AX,<br />

DX (DX is odd) will transfer [DX] into AL and [DX–1] into AH. Byte reads from even or odd<br />

addresses work normally, but only a byte will be read. For example, IN AL, DX will not transfer<br />

[DX] into AX (only AL is modified).<br />

No problems will arise if the following recommendations are adhered to.<br />

Word reads<br />

Aligned word reads of the PCB work normally. Access only evenaligned<br />

words with IN AX, DX or MOV word register, even PCB<br />

address.<br />

Byte reads<br />

Byte reads of the PCB work normally. Beware of reading word-wide<br />

PCB registers that may change value between successive reads (e.g.,<br />

timer count value).<br />

Word writes<br />

Always write even-aligned words to the PCB. Writing an oddaligned<br />

word will give unexpected results.<br />

For the 80C186 Modular Core, use either<br />

– OUT DX, AX or<br />

– OUT DX, AL or<br />

– MOV even PCB address, word register.<br />

For the 80C188 Modular Core, using OUT DX, AX will perform an<br />

unnecessary bus cycle and is not recommended. Use either<br />

– OUT DX, AL or<br />

– MOV even-aligned byte PCB address, byte register low byte.<br />

Byte writes<br />

Always use even-aligned byte writes to the PCB. Even-aligned byte<br />

writes will modify the entire word PCB location. Do not perform<br />

unaligned byte writes to the PCB.<br />

4-5

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

Saved successfully!

Ooh no, something went wrong!