[18737]  「^@ 」を調べているのですが
投稿者:ごんぞぅ さん   2001-10-12 21:09:18
http://www.cham-reo.com/logsearch/archive/stage_3/pc-98nx/sled04614.html

こんばんは。ごんぞぅと申します。
いきなり、引用から始まって恐縮ですが、上記の投稿にある「^@ 」のことで
悩んでいます。
私の起動ディスクは、AL13(HDD:20G メモリ:96MB)とWindows98無印で
クリーンインストール用に作ったもので、インストールには不都合はなかった
のですが、このFDDで起動すると「A:>^@」になるのが気になります。
普通のプロンプトになるように直したいのですが、そもそも、
この記号?用語?の意味が分からず、WEB上のあちこちで検索したのですが、
キーワードが悪いのか情報を見つけられませんでした。
MS-DOSの入門書には載っていませんでした。
自力での検索に限界を感じ、ヒントをいただけないかと伺った次第です。
よろしくお願いいたします。

Autoexec.batは
 
 @ECHO OFF
 MSCDEX.EXE /D:SCCD0001 /L:Q

と書いていますが、空っぽにしても変化がありませんでした。
  1. hisa さん   2001-10-12 21:38:04
    "ECHO OFF"とは、バッチ処理においてDOSの画面にそのコマンドを表示しないようにする命令だったと記憶しています。"@"を前に付けることで"ECHO OFF"自体も非表示になります。
    DOSコマンドについては下記のURLを参照されたく思います。
    www.nnet.ne.jp/~adenosin/neostation/DOS_V/command.html
  2. hisa さん   2001-10-12 21:50:39
    ちょっと的外れなレスでしたね(汗;)。
    "A:>"というのはプロンプトと呼ばれ、OSがコマンド待ちの状態である事を示しています。"prompt"というのがその表示の仕方を制御する命令です。ほとんどの方が使用しているのは"A:>"となっていると思われますが、この表示にしたい場合"prompt $p$g"とすればOKかと思います。
    autoexec.batにはこの件に関する記述がないので、config.sysにprompt=****の文字列があればそれが原因でしょう。これ以外の原因についてはわかりかねます。
  3. ごんぞぅ さん   2001-10-12 22:37:25
    hisa様
    ありがとうございます。
    リンク先のページは保存させていただきました。

    それと、Config.sysは以下のようになっています。

    FILES=30
    BUFFERS=10
    LASTDRIVE=Z
    DOS=HIGH,UMB
    DEVICEHIGH=A:BILING.SYS
    DEVICEHIGH=A:JFONT.SYS /MSG=OFF
    DEVICEHIGH=A:JDISP.SYS /HC=LC
    DEVICEHIGH=A:JKEYB.SYS /106 JKEYBRD.SYS
    DEVICE=A:HIMEM.SYS
    DEVICE=A:SC2EDRV.SYS /POINTENABLE=D000
    DEVICE=A:SC2EASPI.SYS
    DEVICE=A:SCCD.SYS /D:SCCD0001

    Autoexec.batに、prompt $p$gだけを入れてみたのですが、
    最後にでるプロンプトがやっぱり「A:>^@」となってしまいました。

    因みに、Windows98が作る2枚組の起動ディスクでは普通に
    「A:>」となるので「^@ 」の意味がわかれば何とかなるのでは、
    と思ったのですが。
  4. 草薙丸 さん   2001-10-12 23:32:18
     MS-DOS6.2以降はデフォルトで$P$Gですね。見たところCONFIG/AUTOEXECともに問題ないようですが...。

     いっそAUTOEXEC.BAT消したらどうなります?駄目ならCONFIG.SYSも。本当に消さずにリネームの方がいいと思いますが。

     何となくAUTOEXEC.BATの最後尾にゴミがついているだけな気がします。因みにエディタのたぐいは何をお使いで?
  5. ごんぞぅ さん   2001-10-13 00:13:44
    草薙丸 様
    ありがとうございます。

    すごいことに、Autoexec.batもConfig.sysも読み込まないようにしたところ
    A:\> このような感じになり、「^@ 」が付きませんでした。

    Config.sysだけを読み込んだところ、「^@ 」が付きました。
    日本語にするところの記述があやしいのでしょうか・・?

    編集に使っているのは、主にメモ帳ですが、DOSのEdit.exeを使ったりもします。

    引用させていただいた投稿の中にも、AUTOEXEC.BATの最後尾のゴミのことが
    書かれていますが、メモ帳で記述を全部消して真っ白にしてもうまくいきませんでした。
    それはどのようにして確認するのか教えて頂けないでしょうか。
  6. DEN_EI@管理人 さん   2001-10-13 02:10:49
    >すごいことに、Autoexec.batもConfig.sysも読み込まないようにしたところ
    >A:\> このような感じになり、「^@ 」が付きませんでした。
    これはお察しの通り、画面がディフォルトのまま(日本語モードになっていない)からですね…。

    見た感じ、CONFIG.SYSにかかれている内容自体には問題ないように感じられます…。
    ただ、日本語の導入がらみによる画面辺りの問題のようですので、その辺りを
    念のためいろいろやってみるとどうでしょうか。
    #例えば、ANSI.SYSを入れてみるとか、J****.SYSのスイッチをいじってみるとか…。
  7. YU さん   2001-10-13 05:18:14
    今回の症状とは関係ないと思いますが、HIMEM.SYSを組み込む位置がちょっと気になりますね。

    DEVICE=HIMEM.SYS

    の行は先頭に書かないと意味がないですよ。
  8. YU さん   2001-10-13 05:22:21
    うちで使っているCONFIG.SYSを紹介しておきます。
    これを使うとどうなりますか?

    DEVICE=HIMEM.SYS
    DEVICE=EMM386.EXE RAM
    DEVICEHIGH=BILING.SYS
    DEVICEHIGH=JFONT.SYS /P=A: /U=0 /24=OFF
    DEVICEHIGH=JDISP.SYS /HS=ON
    DEVICEHIGH=JKEYB.SYS /106 A:JKEYBRD.SYS
    DEVICEHIGH=ANSI.SYS
    DOS=HIGH,UMB

    まずは、CD-ROMのドライバを入れない状態で確認してみてください。
  9. 毎黒仮節渡万 さん   2001-10-13 08:20:29
    確かconfig.sys/autoexec.batをスキップしようと[F5]キーを長く押していると、"^@"がコマンドラインに表示された気がします。
  10. ZAD さん   2001-10-13 13:36:56
    面倒ですけど、F8キー押しで起動メニューから、各処理の確認を選択して実行し。
    怪しいと思われる行を読み込まない様にして、チェックすると良いかもですね。
  11. ごんぞぅ さん   2001-10-13 20:03:51
    書き込みが遅くなり、申し訳ございません。長文ですが、お許し下さい。

    DEN_EI@管理人 様
    YU 様
     
    ありがとうございます。
    YU 様のConfig.sysで試してみたところ、残念ながら現象に変化はありませんでした。
    JFONT.SYSのスイッチの[/F=ZN][/F=HN]以外を全部つけてみても同じでした。
    ANSI.SYSの方も同様です。
    HIMEM.SYSの位置は修正いたしました。ご指摘ありがとうございました。

    毎黒仮節渡万 様

    ありがとうございます。
    確かに、FDDの起動の際、F5キーを押し続けていると、
    A:\>@ と言うプロンプトになりました。ENTERを押すと A:\> だけになり、
    この辺りの動作は、今回アドバイス頂いていることと似ていると思いました。
    ただ 「>」の後ろは、アットマークだけのようです。

    ZAD 様

    ありがとうございます。
    起動メニューでは、Config.sysは一括処理されるような感じで、1行ずつと言うのは
    できませんでした。
    それで、
    BILING.SYS JFONT.SYS JDISP.SYS JKEYB.SYS  の各行を1行ずつREMしたところ
    BILING.SYS JFONT.SYS JDISP.SYSの3つでは、 A:\>^@ と言うプロンプトになり、
    JKEYB.SYS の行では、 A:> と言う見慣れたプロンプトになりました。
    思わず、「おぅ!」と叫んでしまいました。
    JDISP.SYSは問答無用で A:\>^@ が出てDOSが起動しました。
    BILING.SYS(JDISP:BILING.SYS not installed.)とJFONT.SYS(JDISP.SYS was not installed.JDISP:FONT subsystem not found.)はJDISPがらみのエラーだったので
    あやしいのは、JDISP.SYS JKEYB.SYS の2つかなぁと思いました。
     
    だいぶ、前進した感じがします。ありがとうございます。
    今は、これらをどうしたらいいか考え中です。
  12. さん   2001-10-13 22:02:03
    >起動メニューでは、Config.sysは一括処理されるような感じで、1行ずつと言うのは
    できませんでした
    出来ないですか?起動メニュー4番目のStep-by-step..を選んで、Process Your Startup Device Drivers(config.sys)の表示でYesを選べば、Config.sysの記述について個別に読み込むかどうかを選択できるはずですが。
  13. DEN_EI@管理人 さん   2001-10-13 23:01:11
    >あやしいのは、JDISP.SYS JKEYB.SYS の2つかなぁと思いました。
    ごんぞぅさんの今回のレポートと、毎黒仮節渡万さんのお話しを総合すると
    JKEYB.SYSの方がぁゃιぃ感じがしますねぇ(^^;。
    JKEYB.SYSの行を取ったり、
    DEVICEHIGH=A:JKEYB.SYS /106
    にしてみたりと、色々試してみてはいかがでしょう。
    #でも、解決までもうわずかみたいですね(^^)。
  14. ごんぞぅ さん   2001-10-14 15:32:26
    一応、結果が出せました。(と思います。)またまた長文ですみません。

    豆 様
    ありがとうございます。おっしゃるとおりでした。
    思いこみと勘違いで変な書き込みをしてしまい、申し訳ございません。

    DEN_EI@管理人 様
    ありがとうございます。
    JKEYB.SYSの行の記述はどうやってもうまくいきませんでした。

    そこで2枚組のディスクではうまくいくところに注目してみました。
    2枚組のディスクをちびちびと削りながら、何をどうしたら「^@ 」が現れるのか
    調べたのですが、
    「EBD.CABを1枚目に移動したとき」「Autoexec.bat を処理しないとき」
    と言うことがわかりました。
    Autoexec.batを以下のように書き換えたところ、プロンプトは「A:>」のままでした。

    @ECHO OFF

    :ERROR
    pause
    GOTO QUIT

    :QUIT

    :QUIT と記述しただけでは「^@ 」が付いてしまいます。
    処理を中断しなかったら?と思って pause をはずしてみると「^@ 」が来ます。
    でも、自作のディスクでもAutoexec.batをこう書いてあげると普通のプロンプトに
    なることを確認しました。
    なぜこの内容が必要なのかは、今のところよくわかりません・・・。

    この内容で・・「何かキーを押す」と言う動作がちょっと余分ですが・・1枚で起動でき、
    かつ、普通のプロンプトになる起動ディスクを作ることができました。

    アドバイス頂きました皆様に深く感謝いたします。
    これからもお世話になりますが、よろしくお願いいたします。
    お付き合いいただき、ありがとうございました。
  15. さくま さん   2001-10-16 01:47:56
    ^@ ですか?@のアスキーコードが40h、^つまりCTRLを付けると
    −40hとなるので、つまり00hのnul文字を現しています。

    大昔、たしかWordtarとかいうワープロで校正のマークとして使っていた
    という記憶があります。これを印刷してもnulなので無視されるから校正の
    マークとしては便利だったとか。
  16. ごんぞぅ さん   2001-10-17 18:32:41
    さくま 様
    コメント頂きありがとうございました。
    通信用語の基礎知識と言うサイトで「0でもなく、空白のように
    文字として扱われもしない、空白を埋めるためのみの無としての記号」
    と言う説明がありましたが、こういう理解でよろしいのでしょうか。
    実のところ、理解できている訳ではないのですが。

    ASCIIコードについて検索中ですが、非常に難しいです。
    「^@ 」の意味がわかれば何とかなるかも・・・なんてとんでもない
    甘い考えでした。
    JKEYB.SYSとAutoexec.batと「^@ 」の関係は全く想像もつきませんが
    地道に頑張りたいと思います。
  17. さくま さん   2001-10-20 11:20:27
    >「0でもなく、空白のように文字として扱われもしない、空白を埋めるためのみの無
    >としての記号」
    >と言う説明がありましたが、こういう理解でよろしいのでしょうか。
    それ以外に、C言語ではNUL文字を文字列の終わりの意味で使います。
    これは推測ですが、なんらかの理由で画面(標準出力)にnul文字が出されて
    それを表現するのに「^@」となったということでしょう。
    (nul文字に限らず、アスキーコードでのコントロール文字は皆、字体を持って
    いないのでこういう表現をするしかないのです。ちなみに「^@」はこれで1文字で「^」と「@」の組ではありません)
  18. さくま さん   2001-10-20 11:26:22
    そうそう、他のコントロール文字で代表的なのは「^G」のBEL「^H」のBSです。
    往年のパソコンユーザーの方は、昔CTRLキー+Gキーで内蔵のブザーがなるという
    経験をしていると思います。(Windowsではキーバインドが異なるので使えません)
  19. ごんぞぅ さん   2001-10-22 07:34:54
    さくま 様
    コメントありがとうございました。
    夢に見るほど検索して、niftyで「行の終わりにある余分な空白文字を取り除く」
    と言うソフトを見つけたので試してみたのですが、うまくいきませんでした。
    用途が違うのかもしれないです。

    今は、MSバッチ98を組み込み、一気にインストールするという、起動ディスクに
    してしまいました。
    何というか、「^@ 」が出ないように逃げる手しか思いつきません。(^^;