Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DOS窓の標準入力にESCを読み 込む方法は?

12 views
Skip to first unread message

DOS初心者

unread,
Apr 13, 2004, 1:58:52 AM4/13/04
to
UNIXで作ったソフトをDOS窓に移植したのですが,UNIXでできていた標準入力で
ESCを読み込むことがDOS窓ではできません.どうすればよいのでしょうか?

dos窓を使いたい者より


IDE Kazumi

unread,
Apr 13, 2004, 10:20:28 AM4/13/04
to
井出と申します。

"DOS初心者" <todo...@todokanai.com> wrote in message news:c5fvgi$cl4$1...@bgsv5648.tk.mesh.ad.jp...
> UNIXで作ったソフトをDOS窓に移植したのですが,UNIXでできていた標準入力で
> ESCを読み込むことがDOS窓ではできません.どうすればよいのでしょうか?

UNIXのttyドライバでもありましたように,MS-DOSのconドライバにはrawモードと
cookedモードがあります。どっちがデフォルトかはご想像通り。

conドライバにおけるESCコードは,ttyドライバのCTRL-Uみたいに,
cookedモードにおける行編集のためにデバイスドライバに取られてしまいます。

後は,DOSプログラミング関係の仕様書を探してください。
DOSにはtermcap/terminfo/ncursesみたいな都合の良いライブラリは
デフォルトではありませんから,
ioctl()の類を使ってrawモードにセットすることになります。

--
なんとかなるよ。絶対、大丈夫だよ。
(1999.12.22 millennium version) [IDE Kazumi]


DOS初心者

unread,
Apr 14, 2004, 11:42:02 PM4/14/04
to

井出様,

> UNIXのttyドライバでもありましたように,MS-DOSのconドライバにはrawモードと
> cookedモードがあります。どっちがデフォルトかはご想像通り。
>
> conドライバにおけるESCコードは,ttyドライバのCTRL-Uみたいに,
> cookedモードにおける行編集のためにデバイスドライバに取られてしまいます。
>
> 後は,DOSプログラミング関係の仕様書を探してください。
> DOSにはtermcap/terminfo/ncursesみたいな都合の良いライブラリは
> デフォルトではありませんから,
> ioctl()の類を使ってrawモードにセットすることになります。
>
> --
> なんとかなるよ。絶対、大丈夫だよ。
> (1999.12.22 millennium version) [IDE Kazumi]
>

ありがとうございました。
理解できました.
DeviceIoControlを使えば何とかなるようですが小生には敷居が高いようです。

DOS初心者


やねのすずめ

unread,
Apr 16, 2004, 8:23:34 AM4/16/04
to
> UNIXで作ったソフトをDOS窓に移植したのですが,UNIXでできていた標準入力で
> ESCを読み込むことがDOS窓ではできません.

よくわかりませんが、
LSI C-86 Ver.3.30 試食版 では、
getch() とか int86x( int21h の ah=07 ) で
ESC が取得できました。(Windows 98)


--
 (^v^; (.. )(o^< >^o) 参考にならないと思いますが、
 (( ))//^ ))(( ))(( )) なんとかがんばって下さい。
= //林 //林 //林 //林 ================================^
  http://www5a.biglobe.ne.jp/~espoir/ やねのすずめ // \

Sampo

unread,
Apr 16, 2004, 10:47:13 AM4/16/04
to
やねのすずめさんの<c5oj6b$cqv$1...@bgsv5648.tk.mesh.ad.jp>から

>>LSI C-86 Ver.3.30 試食版 では、
>>getch() とか int86x( int21h の ah=07 ) で
>>ESC が取得できました。(Windows 98)

 TurboCでもgetch()で取り込めていました。
 標準入力ではないもののDOSコールを経由しているようで
 getch()はDOS汎用で動きましたね。
--

::===========================================================
:: ■■さんぽ■■ <mueller@inter7.jp> (実際に打つときは半角で)
:: PGP fingerprint: 42FC 4F53 2FB6 5810 1B1B 97A3 F166 2DE7
::===========================================================

0 new messages