本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[MSC]_bios_serialcom() のサンプルプログラム(DOS/V版)

文書番号: 401884

最終更新日: 1999/08/19


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP401884

概要

この資料は、DOS/V 機用の _bios_serialcom 関数のサンプルプログラムです。

サンプルをご覧になる前に

このサンプルプログラムは、関数の使用方法の一例として提示するもので、十分に
テストされた信頼されるものではありません。個人の学習のために使用、修正、
分割については、自由に行っていただけますが、このサンプルに関しての、サポ
ート、説明等は一切お受けしかねますのであらかじめご了承ください。また、こ
のプログラムを実行し発生した、いかなる障害も、弊社では責任を負いません。

サンプルプログラム

  /*
  *   BIOS 関数(_bios_serialcom )を使用したサンプルプログラム
  *   このプログラムは、DOS/V 機の標準ポートからデータ (1byte) の送信、受信を
  *   行っています。
  *   このサンプルは、DOS/V 機の標準ポートをループバックで接続して送受信動作を
  *   確認しました。クロスで接続された相手側機器がある場合、このプログラムの
  *   ままでは動作しません。このプログラムはあくまで_bios_serialcom 関数の
  *   パラメータの設定、プログラミングの概要を示すサンプルプログラムです。
  */
  #include <bios.h>
  #include <stdio.h>
  #define COM1   0x0000
  void  main( void )
  {
      unsigned int c1_stat, mask=0x6100;
      struct com_t serialcom;
  /* com_t 構造体パラメータの設定 */
      serialcom.baud    = _COM_1200;
      serialcom.parity  = _COM_NOPARITY;
      serialcom.stopbit = _COM_STOP1;
      serialcom.lengths = _COM_CHR8;
  /* 標準 シリアルポート を初期化 */
      c1_stat = _bios_serialcom(_COM_INIT, COM1, &serialcom);
      printf("Init status : 0x%4.4X\n", c1_stat);
  /* 1byte('*') 送信 */
      c1_stat = _bios_serialcom(_COM_SEND, COM1, &serialcom);
      printf("Send status : 0x%4.4X\n", c1_stat);
  /* 標準 シリアルポート の ステータス を読み出します.*/
      c1_stat = _bios_serialcom(_COM_STATUS, COM1, &serialcom);
      printf("COM1 status : 0x%4.4X\n", c1_stat);
  /* 準備待ち */
      do{
          c1_stat = _bios_serialcom(_COM_STATUS, COM1, &serialcom);
          c1_stat = c1_stat & 0xFF00;   /* 下位バイト (モデム状況) マスク */
      }while( (mask & c1_stat)==0 );
  /* 1byte 受信 */
      c1_stat = _bios_serialcom(_COM_RECEIVE, COM1, &serialcom);
      printf("Read status : 0x%4.4X\n", c1_stat);
  /* 受信データの表示 */
      c1_stat = c1_stat & 0x00FF;   /* 上位バイト (回線制御状況) マスク */
      printf("Character   : 0x%2.2X = %c\n", c1_stat, (char)c1_stat);
  }

付記

DOS/V 機の RS-232C は受信が割り込み駆動でないため、高速なボーレートでは受信
データを取りこぼしてしまう可能性があります。そのため、ほとんどのアプリケー
ションはハードウェアを直接制御して割り込み駆動の通信を実現しています。

Keywords: C7 KBHOWTO KB401884
Technology: kbAudDeveloper kbVCsearch kbZNotKeyword3 kbZNotKeyword8

inserted by FC2 system