home *** CD-ROM | disk | FTP | other *** search
- #include <osbind.h>
- #include <bios.h>
- #include <aesbind.h>
- #include <gemdefs.h>
- #include <special2.h>
-
- char buffer[25],keybuffer[100],text[1000],name[16],filename[128];
- char buffer2[25],ret[]="\n",*cp,*kb,*tx;
-
- int rsinput,key,button,ii,checkinput,result;
- int drv,count,backcount,gchk;
-
- FILE *fp;
-
- long keyinp,textlen;
-
- main()
- {
- appl_init(); /* open application */
- graf_mouse(M_OFF,0); /* turn mouse off */
- cls;
- title();
- checkinput=0;
- kb=keybuffer;
- tx=text;
- backcount=0;
- gchk=0;
-
- get_input(); /* accept input */
- }
-
- get_input()
- {
- for(;;)
- {
- while(Bconstat(1)==-1) /* loop while char is ready */
- {
- if(checkinput==1)
- {
- save_data(); /* save buffer, reset flag */
- checkinput=0;
- backcount=0;
- }
-
- rsinput=Bconin(1); /* get char from seriel */
-
- if (rsinput=='>')
- gchk=1;
-
- if (buffer[3]==13 || buffer[3]==10)
- {
- gchk=0;
- for(ii=0;ii<=24;ii++)
- {
- buffer[ii]=0;
- buffer2[ii]=0;
- }
- }
-
- if((rsinput>=32 && rsinput<=126 && gchk==0)|| rsinput==13)
- {
- for(ii=24;ii>0;ii--) /* build buffer */
- buffer[ii]=buffer[ii-1];
- buffer[0]=rsinput;
- }
-
- Cconout(rsinput); /* print character */
- }
-
- if (Bconstat(2)==-1)
- {
- keyinp=Bconin(2);
- key=keyinp & 0xff;
- if (keyinp==3866624) /* check for F1 */
- save_file(); /* save capture */
- if(keyinp==6356992) /* check for UNDO */
- quit(); /* quit program */
- gchk=0;
- if (key==8 && backcount>0)
- {
- backcount--; /* count # of char inputted */
- *kb--=0; /* erase character */
- Bconout(1,(int)key); /* output to seriel */
- for (ii=0;ii<3;ii++)
- Cconout((int)Bconin(1)); /* print echo char */
- }
-
- if (key>=1 && key<=126 && key!=8)
- {
- backcount++; /* count # of char inputted */
- if (backcount==100)
- {
- kb==keybuffer; /* check for overflow */
- backcount=0;
- for (ii=0;ii<100;ii++)
- keybuffer[ii]=0;
- }
- Bconout(1,(int)key);
- key=(key==13) ? '|' : key; /* handle carr ret */
- *kb++=key; /* save input */
- checkinput=1;
- }
- if ((key>=32 && key<=126) || key==13)
- Cconout((int)Bconin(1)); /* print echo char */
- }
- }
- }
-
- save_data()
- {
- count=0;
- for(ii=24;ii>=0;ii--)
- {
- if (buffer[ii]>31)
- {
- buffer2[count]=buffer[ii];
- count++;
- }
- }
-
- strcat(text,">WA "); /* the WAIT command */
- strcat(text,buffer2); /* string to wait for */
- strcat(text,"|"); /* RETURN character */
- strcat(text,ret); /* REAL carr return */
- strcat(text,keybuffer); /* copy response */
- strcat(text,ret);
-
- kb=keybuffer; /* reset pointer */
- for(ii=0;ii<100;ii++) /* clear buffer */
- keybuffer[ii]=0;
- }
-
- save_file()
- {
- get_file(filename,"*.DO");
-
- if (filename[0]!=0)
- {
- fp=fopen(filename,"w"); /* create file */
- fwrite(text,1,strlen(text),fp);
- fclose(fp);
- quit();
- }
- }
-
- quit()
- {
- appl_exit(); /* close application */
- printf("\33f\n"); /* turn cursor off */
- exit(0);
- }
-
- title()
- {
- printf("\33j \33p Bob Areddy's Autolog (c) 1989 \33q\33k\n");
- }
-