#include <fcntl.h>
#include <machine/cpufunc.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>

#define LINE "/dev/cuaa1"
#define PORT 0x2f8
#define REDEYE 0x81 /* 115.2K */
#define SERIAL 0x01 /* 115.2K */
#define S9600  0x0c /* 9.6K */
#define MODEMST PORT+4
/* SPEED : 115k,57.6k,38.4k,19.2k,9.6k */
#define SPEED 0

extern int errno;
void err()
{
printf("write error %d\n",errno);
exit(1);
}

void sendb(char c)
{
 outb(PORT,c);
}

main() {
int io,seri, attr;
unsigned char i;
unsigned char sp0[]={0x81,0x83,0x85,0x8b,0x87,0x00};
char crlf[]={0x0d,0x0a,0x00};

seri=open(LINE,O_RDWR);
if(seri < 0) 
 {
	printf("Can not open serial\n");
	exit(1);
 }
io=open("/dev/io",O_RDWR);
if(io < 0) 
 {
	printf("Can not open io\n");
	exit(1);
 }
outb(MODEMST,3);
outb(PORT+3,0x83);
usleep(50);
outb(PORT,S9600);
usleep(50);
outb(PORT+1,0);
usleep(50);
outb(PORT+3,3);
usleep(50);
outb(MODEMST,0);
usleep(5000);
outb(MODEMST,3);
usleep(5000);
outb(MODEMST,1);
usleep(5000);
sendb(REDEYE);
usleep(5000);
outb(MODEMST,3);
outb(PORT+3,0x83);
usleep(50);
outb(PORT,SERIAL);
usleep(50);
outb(PORT+1,0);
usleep(50);
outb(PORT+3,3);
usleep(50);

for(i=0x41;i<0x50;i++)
{
  sendb(i);
  usleep(5000);
}
write(seri, crlf,2);
  usleep(5000);
for(i=0x41;i<0x50;i++)
{
  sendb(i);
  usleep(5000);
}
write(seri, crlf,2);
  usleep(5000);
for(i=0x41;i<0x50;i++)
{
  sendb(i);
  usleep(5000);
}
write(seri, crlf,2);
  usleep(5000);
for(i=0x41;i<0x50;i++)
{
  sendb(i);
  usleep(5000);
}
write(seri, crlf,2);
close(io);
close(seri);
exit(0);
}


