Intel 386 User Manual

Page 428

Advertising
background image

13-29

SYNCHRONOUS SERIAL I/O UNIT

/* Disable Receiver */

_SetEXRegByte(SSIOCON1, SSControl);

}

else

{

// Slave Receiver, Receiver MUST already be Enabled

/* Wait until Receive Holding Buffer is Full */

while(!(_GetEXRegByte(SSIOCON1) & SSIO_RHBF) );

}

return (WORD)_GetEXRegWord(SSIORBUF);

}/* SSerialReadWord */

/*****************************************************************************

SSerialWriteWord:

Description:

Is a Polled serial port write function that will wait forever

or until a character has been written to the serial port.

Parameters:

Ch

Word to be written out to serial port

MasterSlave

Defines whether transmitter is Master or Slave

Returns:

None

Assumptions:

If transmitter is in Slave mode, it must already be enabled.

Syntax:

#define SSIO_TX_MASTR

0x2

#define SSIO_TX_SLAVE

0x0

char Ch = ‘a’;

SSerialWriteWord( (WORD)Ch, SSIO_TX_MASTR );

Real/Protected Mode:

No changes required.

******************************************************************************/

void SSerialWriteWord(WORD Ch,BYTE MasterSlave)

{

register BYTE SSControl;

unsigned int i;

if(MasterSlave == SSIO_TX_MASTR)

{

/* Save Control Register */

SSControl = _GetEXRegByte(SSIOCON1);

Advertising