Listing 2

/*
 * Listing 2: main() routine and test code for get_str().
 * Includes the OS-dependent routines sys_getchar()
 * and sys putchar().
 */
#include <stdio.h>
#include <stdlib.h>
#include <bios.h>
#include <string.h>

#define INBUFSIZ 70
char inbuf[INBUFSIZ + 1];

void get_str( char *str, int len );

void main( void )
      {

      while (1)
             {
             printf("\ntype 'quit' to quit.\nprompt> ");
             get_str(inbuf, INBUFSIZ);

             if (stricmp(inbuf, "quit") == 0)
                    break;

             printf(" Got: \"%s\"\n", inbuf);
             }
      }


/*********************************************************
 * The following two routines will need to be changed,
 * in order to use get_str() in a different environment.
 ********************************************************/

/*
 * Put a character to the output device.
 * Expand \n to \r\n.
 */
void sys_putchar( char ch )
      {

      putchar(ch);
      if (ch == "\n")
             putchar("\r");
      }


/*
 * Get a character from the input device.
 * Use the BIOS call so we can detect arrow keys.
 */
int sys_getchar( void )
      {
      int ch;

      ch=bioskey(0);           /* wait and get a key */

      if ((ch & 0xff) != 0)    /* if not an extended key, */
             ch &= 0xff;                      /* use only the
ASCII part */
      return (ch);
      }
/* End of File */