vytvoril som program v C a chcel by som ho prepisat do C#. Co by som mal zmenit v tychto suboroch ?
Program je jednoducha komunikacia dvoch pocitacov cez RS232.
subor prijimac.c
Kód: Vybrať všetko
#include<conio.h>
#include<stdio.h>
#include<dos.h>
#include<ctype.h>
#define PRISLO ( inportb(baza+5)& 1 ) /*makro pre prijem zo ser. linky*/
int baza = 0x3f8; /*bazova adresa portu COM2*/
/*-----------------------Funkcia pre inicializaciu ser. portu------------*/
void inic_sport(void)
{
char dd;
dd=0x80; /* DLAB=1 */
outportb(baza+3,dd);
dd=12; /* prenos rychlost 19200=6,9600=12,4800=24,2400=48,1200=96 */
outportb(baza,dd);
dd=0;
outportb(baza+1,dd);
dd=0x1a; /* 7bit 1 stop parna DLAB */
outportb(baza+3,dd);
}
/************************HLAVNY PROGRAM******************************/
void main()
{
unsigned char prijmi;
clrscr();
inic_sport(); /* zinicializujeme seriovy port */
do
{
if ( PRISLO ) /* kym nepride znak - cakame */
{
prijmi = inportb(baza); /*vyber znaku z BUFFERA */
printf("%c",prijmi); /* a jeho vytlacenie na obrazovku */
}
}while(prijmi != 0x1b); /* Ukoncenie programu ak vysielac vysle ESC*/
}
Kód: Vybrať všetko
#include<conio.h>
#include<dos.h>
#include<stdio.h>
#include<ctype.h>
#define PRAZDNE ( inportb(baza+5) & 32 ) /* makro pre cakanie na uvolnenie seriovej linky */
int baza = 0x3f8; /* bazova adresa portu COM2 */
/*-----------------Funkcia pre vyslanie znaku----------------------------*/
void vysli(char w)
{
while ( !PRAZDNE ); /* dokial nie je prazdne,cakaj */
outportb((int)baza, (unsigned char) w); /* ak je volne,vysli! */
}
/*----------------funkcia pre inicializaciu ser. linky-------------------*/
void inic_sport(void)
{
unsigned char dd;
dd=0x80; /* DLAB=1 */
outportb(baza+3,dd); /* povolenie pre nastavenie prenos rychlosti*/
dd=12; /* prenos rychlost: 19200=6,9600=12,4800=24
2400=48,1200=96 */
outportb(baza,dd);/* dolne bity */
dd=0;
outportb(baza+1,dd);/* horne bity */
dd=0x1a; /* 7bit 1stop parna DLAB */
outportb(baza+3,dd);
}
/************************HLAVNY PROGRAM******************************/
void main()
{
char ch;
inic_sport(); /* zinicializujeme seriovy port */
clrscr();
do
{
ch=getche(); /* nacitanie znaku z klavesnice */
vysli(ch); /* jeho vyslanie do prijimaca */
if(ch==13) { vysli(10); /* posle novy riadok do prijmaca ak bol ENTER*/
putch(10);} /* to iste aj pre vysielac */
} while(ch != 0x1b); /* Ukoncenie vysielania vyslanim <ESC> a ukoncenie programu ak stlacime ESC */
}