BYTE CSuperSerialCard::GenerateControl() { const UINT CLK=1; // Internal UINT bmByteSize = (8 - m_uByteSize); // [8,7,6,5] -> [0,1,2,3] _ASSERT(bmByteSize <= 3); UINT StopBit; if ( ((m_uByteSize == 8) && (m_uParity != NOPARITY)) || ( m_uStopBits != ONESTOPBIT ) ) StopBit = 1; else StopBit = 0; return (StopBit<<7) | (bmByteSize<<5) | (CLK<<4) | BaudRateToIndex(m_uBaudRate); }
UINT CSuperSerialCard::BaudRateToIndex(UINT uBaudRate) { switch (uBaudRate) { // changed: CBR_# to B# (for *nix?) --bb case B110: return 0x05; case B300: return 0x06; case B600: return 0x07; case B1200: return 0x08; case B2400: return 0x0A; case B4800: return 0x0C; case B9600: return 0x0E; case B19200: return 0x0F; } _ASSERT(0); return BaudRateToIndex(B9600); }
UINT CSuperSerialCard::BaudRateToIndex(UINT uBaudRate) { switch (uBaudRate) { case CBR_110: return 0x05; case CBR_300: return 0x06; case CBR_600: return 0x07; case CBR_1200: return 0x08; case CBR_2400: return 0x0A; case CBR_4800: return 0x0C; case CBR_9600: return 0x0E; case CBR_19200: return 0x0F; case CBR_115200: return 0x00; } _ASSERT(0); return BaudRateToIndex(CBR_9600); }