09. februar 2005 - 07:20
#2
Ja det ved jeg godt men der ligger meget mere end bare det.
Eks
#include <bios.h>
#include <conio.h>
#include <stdio.h>
#include <time.h>
void prompt(void) // Venter p† at S melder tilbage med -->
{
do
{
status1 = bioscom(3, 0, COM1);
if (status1 & DATA_READY) // Svar fra S
{
if ((out1 = bioscom(2, 0, COM1) & 0x7F) != 0)
{
textcolor(RED);
putch(out1);
bioscom(1, out1, COM2);
}
}
} while (out1 != '>');
}
void send(void)
{
int a;
bioscom(1, 0x5c, COM1); // '\'
bioscom(1, 0x20, COM1); // ' '
bioscom(1, 0x30, COM1); // '0'
bioscom(1, 0x0d, COM1); // CR
bioscom(1, 0x0a, COM1); // LF
prompt();
bioscom(1, 0x4d, COM1); // 'M'
bioscom(1, 0x4f, COM1); // 'O'
bioscom(1, 0x56, COM1); // 'V'
bioscom(1, 0x45, COM1); // 'E'
for (a=1; a<6; a++)
{
bioscom(1, buf[a], COM1);
}
prompt();
bioscom(1, 0x5c, COM1); // '\'
bioscom(1, 0x20, COM1); // ' '
bioscom(1, 0x32, COM1); // '1'
bioscom(1, 0x0d, COM1); // CR
bioscom(1, 0x0a, COM1); // LF
prompt();
bioscom(1, 0x4d, COM1); // 'M'
bioscom(1, 0x4f, COM1); // 'O'
bioscom(1, 0x56, COM1); // 'V'
bioscom(1, 0x45, COM1); // 'E'
for(a=1; a<6; a++)
{
bioscom(1, buf[a], COM1);
}
prompt();
}
void main(void)
{
clrscr();
bioscom(0, SETTINGS1, COM1);
bioscom(0, SETTINGS2, COM2);
printf("\n... COM1 - COM2 Fylde ...\n");
while (!DONE)
{
status1 = bioscom(3, 0, COM1);
if (status1 & DATA_READY) // Svar fra S
{
if ((out1 = bioscom(2, 0, COM1) & 0x7F) != 0)
{
textcolor(RED);
putch(out1);
bioscom(1, out1, COM2);
}
}
if (kbhit())
{
if ((in1 = getch()) == '\x1B')
DONE = TRUE;
else
bioscom(1, in1, COM1); // sender p† COM1
}
status2 = bioscom(3, 0, COM2);
if (status2 & DATA_READY) // Svar fra X
if ((out2 = bioscom(2, 0, COM2) & 0x7F) != 0) // hvis der er data
{
textcolor(GREEN);
buf[i] = out2; // saml data op i buffer
if (out2 == 0x0A) // Slut p† streng
{
if (buf[1] <= '9' && buf[1] >= '0')
{
send(); // SEND MOVE COMMAND til begge
}
else
{
for (t=0; t<=i; t++) // Send hele bufferens indhold
{
putch(buf[t]);
bioscom(1, buf[t], COM1);
}
}
i = -1;
}
i++;
}
}
}