#include "serlibbase.h"
#include "serlib.h"

struct SerLibBase	*SerLibBase;
struct SerStatus ss;
struct SerLibData	*sld;
void *OpenLibrary();

char buf[2048];
ULONG len;
main()
{
	SerLibBase=(void *)OpenLibrary((UBYTE *)"serlib.library",3L);
	sld=(struct SerLibData *)OpenSerial((UBYTE *)"serial.device",0L,2400L,8L,1L,(ULONG)(SERF_RAD_BOOGIE|SERF_7WIRE|SERF_SHARED));
	if (!sld) printf("Couldn't open...");
	else {
		ChangeData(sld,2400L,8L,1L,(ULONG)(SERF_RAD_BOOGIE|SERF_7WIRE|SERF_SHARED));
		printf("`.' to exit...\n> ");
		scanf("%s",buf);
		while (buf[0]!='.') {
			strcat(buf,"\r\n");
			if (CheckCD(sld))
				printf("Got a carrier!\n");
			printf("Current unread: %ld\n",SerBuffer(sld));
			SendSer(sld,buf,(ULONG)strlen(buf));
			WaitSer(sld,0L);
			Delay(20L);
loop:
			len=SerBuffer(sld);
			if (len>1040) len=1040;
			RecvSer(sld,buf,(ULONG)len);
			WaitSer(sld,0L);
			buf[len]='\0';
			printf("%s",buf);
			GetStatus(sld,&ss);
			if (ss.ss_unread>0) goto loop;
			printf("> ");
			scanf("%s",buf);
		}
		CloseSerial(sld);
	}
	CloseLibrary(SerLibBase);
}
