8-28
ReceiveIn indexes the location where the next received character will be placed in the Receive
Buffer by the interrupt routine. ReceiveOut indexes the location where the next character should be
removed from the Receive Buffer by the parsing routine. TransmitIn indexes the location where the
next character to be transmitted should be placed by the communication generation routine.
TransmitOut indexes the location of the next character to be transmitted by the interrupt
routine.
The Receive Buffer is empty if RecIn = (RecOut+1) Mod 512. The Receive Buffer is full if RecIn =
RecOut. The Transmit Buffer is empty if TrmIn = TrmOut. The Transmit Buffer is full if TrmOut =
TrmIn+1) Mod 512.
When a port is locked, its pointers may be modified by the locking port.
When a TransmitIn Register is written, that causes the interrupt routines to transmit characters in the
Transmit Buffer from TransmitIn to TransmitOut.
Receive and Transmit Buffers (41985-44544): These Registers, when read, return the contents of
the appropriate Receive and Transmit Buffers. Each buffer is 256 Registers (512 bytes) long. The
order of the buffers is:
Port ReceiveIn ReceiveOut TransmitIn TransmitOut
Port 4 (I/O) 41733 41734 41735 41736
Port 3 41737 41738 41739 41740
Port 2 41741 41742 41743 41744
Port 1 (232/485) 41745 41746 41747 41748
Diagnostic Port 41749 41750 41751 41752
Port Control Pointers
Port TransmitReceive
Port 4 (I/O) 41985-42240 43265-43520
Port 3 42241-42496 43521-43776
Port 2 42497-42752 43777-44032
Port 1 (232/485) 42753-43008 44033-44288
Diagnostic Port 43009-43264 44289-44544
Receive and Transmit Buffers