// DTR.C

#include <conio.h>
#include "uart_reg.h"

/**
*.Name         dtr_on
*
*.Title        Устанавливает сигнал DTR и RTS.
*
*.Descr        Эта функция устанавливает сигналы DTR и RTS
*              для заданного COM-порта.
*
*.Proto        void dtr_on( unsigned base_address );
*
*.Params       unsigned base_address - базовый адрес асинхронного адаптера
*
*.Return       не используется
*
*.Sample       dtr.c
**/

void dtr_on( unsigned base_address ) {

	MCR mc_reg;

	// считываем значение регистра управления модемом

	mc_reg.byte = inp( base_address + MCR_N );

	// устанавливаем сигналы DTR и RTS в активное состояние

	mc_reg.bit_reg.dtr = mc_reg.bit_reg.rts = 1;

	// записываем новое значение в регистр управления модемом

	outp( base_address + MCR_N, mc_reg.byte );
}




/**
*.Name         dtr_off
*
*.Title        Сбрасывает сигналы DTR и RTS.
*
*.Descr        Эта функция сбрасывает сигналы DTR и RTS
*              для заданного COM-порта.
*
*.Proto        void dtr_on( unsigned base_address );
*
*.Params       unsigned base_address - базовый адрес асинхронного адаптера
*
*.Return       не используется
*
*.Sample       dtr.c
**/

void dtr_off( unsigned base_address ) {

	MCR mc_reg;


	// считываем значение регистра управления модемом

	mc_reg.byte = inp( base_address + MCR_N );

	// сбрасываем сигналы DTR и RTS

	mc_reg.bit_reg.dtr = mc_reg.bit_reg.rts = 0;

	// записываем новое значение в регистр управления модемом

	outp( base_address + MCR_N, mc_reg.byte );
}

