int TSerialConnection :: SendData ( char * buffer, int buffer_size ) { COMSTAT ComStat ; register int size = buffer_size ; if ( DeviceId < 0 ) return ( 0 ) ; while ( size ) { SetCommEventMask ( DeviceId, EV_TXEMPTY ) ; while ( GetCommEventMask ( DeviceId, EV_TXEMPTY ) ) { SetCommEventMask ( DeviceId, EV_TXEMPTY ) ; } GetCommError ( DeviceId, & ComStat ) ; if ( ComStat. cbOutQue ) continue ; WriteComm ( DeviceId, buffer, 1 ) ; buffer ++, size -- ; } return ( buffer_size ) ; }
UINT far* far pascal zSetCommEventMask( int pp1, UINT pp2 ) { UINT far* r; SaveRegs(); /* ** Log IN Parameters (No Create/Destroy Checking Yet!) */ LogIn( (LPSTR)"APICALL:SetCommEventMask int+UINT+", pp1, pp2 ); /* ** Call the API! */ RestoreRegs(); GrovelDS(); r = SetCommEventMask(pp1,pp2); UnGrovelDS(); SaveRegs(); /* ** Log Return Code & OUT Parameters (No Create/Destroy Checking Yet!) */ LogOut( (LPSTR)"APIRET:SetCommEventMask UINT far*+++", r, (short)0, (short)0 ); RestoreRegs(); return( r ); }