- 締切済み
FD起動で動く簡易プログラム
お世話になります。 現在、FD起動で動くプログラムを作りたいと考えています。 環境は、PC-AT互換機の5x86マシンで、 FDからブート プログラムが起動 プログラムの内容は、 起動すると、 バンゴウ ヲ ニュウリョク? 任意の数字が正しい順に、 テンキーより4桁入力されたら、 ビープが鳴りガセイカイと表示され、 300ミリ秒位で、画面がクリアされ、 バンゴウヲニュウリョクに戻る。 正しくない四桁が入力されると、 ビープが鳴り、マチガイと表示され、 300ミリ秒位でガ画面がクリアされ、 ループしてバンゴウ ヲ ニュウリョクに戻る。 といった、 プログラムを作ろうと考えています。 FD起動で、かつ電源を入れると、自動的に上記の画面まで持ってこれるようなプログラムで、 無料で開発できるようなものはあるでしょうか。。。 どうぞ、よろしくお知恵をお貸しください。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- mpro-gram
- ベストアンサー率74% (170/228)
>sysでFDブート可能な状態 dos起動用フォーマットしたFDが有ると言うことですね。config.sys も作成済み? ここまで出来ていれば、あとはバッチプログラムを作って autoexec.bat の最後に実行したいバッチプログラム名を記述すれば自動実行となります。 さて、実際の実行プログラムの作成は、windows 上で作って、フロッピーにコピーすれば、デバッグというか実行もwindows コマンドプロンプトで一定確認は可能。 -- 以下を 拡張子 .bat で保存 @echo off rem counter set n =0 :loop rem make numbers set ss=%TIME:~6,5% set ss=%ss:.=% set USR_INPUT_STR= rem input set /P USR_INPUT_STR="input a four-digit number : " rem check if %USR_INPUT_STR%. == %ss%. goto right echo there is mismatch. goto next :right set /A n= %n%+1 echo that's right! get %n% points :next set USR_INPUT_STR= set /P USR_INPUT_STR="1.go next, enter [y]. 2.ended, enter else key: " if %USR_INPUT_STR%. == y. goto loop echo see you again! -- ここまで -- 「画面クリア」とか「ビープ」とかのコマンドも有った気がするがコマンド表記法を忘れたので、未実装。 「x秒で表示切り替え」は自動ではなく、ユーザーに何かキーを押させるのをトリガーとして次の動作を行っている。 数当ての元数値は、バッチコマンドだけでは、ランダムとか出来ないので、現在秒数から作成。 vistaのコマンドプロンプトでは動いたけど、DOS6のsetコマンドってどのくらい対応しているのだろう?でも、bu.comつかえば、もっと細かい指定ができるだろう。 dos起動だけで、半角カナも表示できるか不明なので、とりあえずascii 文字のみとした。
- kngj1740
- ベストアンサー率18% (197/1052)
現在のDOS(たとえばDOS-V6.2)はHDDにインストールしないと動作しません。FDD一枚には収まりません。やはり何かコンパクトなプログラムをDOSの力を借りないで動作させるようにする必要があります。或は、DOSに精通していればうまくDOSのファイル群から必要なものを集めて一枚に収められるかもしれないですが。日本語表示にかなりの容量を食います。(漢字フォントなど)。
補足
回答ありがとうございます。 日本語フォントに関してですが、 コンベンショナルメモリが少なくなるので、 英字のみか、半角カナANKのみにしようと考えています。 試しにBATファイルで ifとelseを組み合わせて、 ============================================== color f0 @echo off :START cls set TB_ANS_COD= set /a TB_CNT_MAS=TB_CNT_MAS+1 echo: echo: ++アナタハ %TB_CNT_MAS% カイ チョウセン シマシタ++ echo: echo:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ echo:@ echo:@ ナカマ ヲ タスケル タメニ echo:@ echo:@ カイジョコード 4ケタ ヲ ニュウリョク echo:@ echo:@ ハヤクシナイト バクハツ シマス!!! echo:@ echo:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ echo: set /P TB_ANS_COD="カイジョコード 4ケタ ヲ ニュウリョク シテクダサイ:" set a=a+1 IF "%TB_ANS_COD%" == "5963" (goto TB_YES_PRT) ELSE (IF "%TB_ANS_COD%" == "493731" (goto TB_CLS_CNT) ELSE goto TB_NOT_PRT) echo: echo: pause goto START :TB_CLS_CNT echo: echo: RAM-C echo: set TB_CNT_MAS= pause goto START :TB_YES_PRT echo:oooooooooooooooooooooooooo echo:o o echo:o セイカイ デス o echo:o o echo:o タスカリマシタ o echo:o o echo:oooooooooooooooooooooooooo echo: echo: pause goto START :TB_NOT_PRT echo:xxxxxxxxxxxxxxxxxxxxxxxxxx echo:x x echo:x カイジョコード ガ チガイマス x echo:x x echo:xxxxxxxxxxxxxxxxxxxxxxxxxx echo: echo: pause goto START ==================================== Win8.1のcmdのDOSプロンプト上で確認した所、 思った通りの動きをしたのですが、 手持ちのi386のサブマシン(5x86でなく、i386SXでした) では、setを認識しないのか、うまく実行できず、 そのまま終了してしまいました。。。 また、振出しに戻ってしまいました。 ありがとうございます。
- kngj1740
- ベストアンサー率18% (197/1052)
FD起動の意味ですが、何にもOSがインストールされていないPCでFDから起動してプログラムを実行するとなると、ブートセクターなどの知識が必要です。OSがないのですべの処理を自分で作成しなければなりません。難易度はかなり高いです。アセンブラの知識は最低限必要です。キーボード入力、表示ともBIOSのルーチンを利用します。情報源としてDDKなどか必要でしょう。デバッガーが全く使用出来ないので、デバッグに苦労する事になります。デバッグ機能を持つエミュレーター上でデバッグとか考えた方が良いかも。
補足
回答ありがとうございます。 OSには手元にあるMS-DOSないしPC-DOSを使用する予定です。 以前使っていたFlexOSは互換性の問題から今回は見送らせていただいています。 よろしくお願いします。
- yambejp
- ベストアンサー率51% (3827/7415)
ポイントは3点 (1)きょうびFDの付いたマシンなんかまず存在しませんが大丈夫ですか? お手持ちのマシンがその構成であればとくに問題ありません。 (2)MS-DOSはお持ちですが?またそのDOSは該当マシンで動作しますか? 上記2点を満たしたうえでbatで処理することになります (3)プログラムとしてはbu.comなどバッチ系のユーティリティソフトを 利用するとすこし楽になると思います。
お礼
ありがとうございます。 とりあえず、sysでFDブート可能な状態まで持ってきている状態です。 帰社後、該当プログラムを探してみます。 ありがとうございました。
- tsunji
- ベストアンサー率20% (196/958)
開発環境はLSI C-86 v3.30c 試食版というC言語が使えると思います。 http://www.vector.co.jp/soft/maker/lsi/se001169.html あとFD起動ですが、OSは持っていますか? MS-DOSからWindows98までならFD起動可能かつ上記コンパイラで作ったソフトが動作可能です。 OSがなければFreeDOSとかを探してください。
お礼
ありがとうございます。 私が使っているワープロ専用マシンが、 PC-AT互換機のMS-DOS6ベースのWindows3.1なので、これを使おうと思っています。 早速探してみようと思います。 ありがとうございました。
補足
回答ありがとうございます。 setコマンドが中々に認識してくれない状況でしたので、 外部プログラムであるbu.comを使って何とかならないか… もう一度考えていこうと思います。 プログラミングはやりたいやりたいと思いながら、 PC-98を使っていた頃のN88-BASICで挫折し、 ポケコンのBASICで簡単なゲームをトレスして満足して…。 といった経緯もあり、改めてCUIで動作可能なCも覚えていこうかと考えています。 もう少し、試行錯誤してみます。 ありがとうございました。