TERM.C
上传用户:sunrenlu
上传日期:2022-06-13
资源大小:1419k
文件大小:1k
源码类别:

操作系统开发

开发平台:

DOS

  1. /*
  2.  * basic TTY terminal example demonstrating SIO serial i/o library
  3.  *
  4.  * Gets defaults from TERM.INI, or creates one if none there
  5.  */
  6. #include <dos.h>
  7. #include <stdio.h>
  8. #include <rtos.h>
  9. #include <sio.h>
  10. #include <inifile.h>
  11. main()
  12. {
  13.     int comport = 1;        /* com port */
  14.     WORD port = 0x3f8;      /* its i/o port base */
  15.     int baud;
  16.     int irq = 4;            /* default for com1 */
  17.     int temp;
  18.     DWORD dummy;
  19.     rt_init( 100 );
  20.     kdebug = 3;
  21.     if (( comport = GetIniDWORD( "term.ini", "com", "port", 0 )) == 0 ){
  22.         comport = 1;
  23.         SetIniDWORD("term.ini","com","port", comport );
  24.     }
  25.     if ( comport == 2 ) {
  26.         port = 0x2f8;
  27.         irq = 3;
  28.     }
  29.     if (( baud = GetIniDWORD( "term.ini", "com", "baud", 0 )) == 0 ){
  30.         baud = 9600;
  31.         SetIniDWORD("term.ini","com","baud", baud );
  32.     }
  33.     sio_init( comport, port, irq, 4096, 4096, NULL, 0 );
  34.     sio_setup( comport, baud, 8, 0, 1, 1 );
  35.     cprintf("Press ~ to exitrn");
  36.     while ( 1 ) {
  37.         /* poll keyboard for new data */
  38.         if ( kbhit() ) {
  39.             char ch;
  40.             ch = getch();
  41.             /* is it the exit char? */
  42.             if ( ch == '~' ) break;
  43.             sio_writebyte( comport, ch );
  44.         }
  45.         /* poll serial port for new data */
  46.         if ( sio_recv_waiting( comport ) )
  47.             putch( sio_readbyte( comport ));
  48.     }
  49.     sio_close( comport );
  50. }