• 締切済み

FD起動で動く簡易プログラム

お世話になります。 現在、FD起動で動くプログラムを作りたいと考えています。 環境は、PC-AT互換機の5x86マシンで、 FDからブート プログラムが起動 プログラムの内容は、 起動すると、 バンゴウ ヲ ニュウリョク? 任意の数字が正しい順に、 テンキーより4桁入力されたら、 ビープが鳴りガセイカイと表示され、 300ミリ秒位で、画面がクリアされ、 バンゴウヲニュウリョクに戻る。 正しくない四桁が入力されると、 ビープが鳴り、マチガイと表示され、 300ミリ秒位でガ画面がクリアされ、 ループしてバンゴウ ヲ ニュウリョクに戻る。 といった、 プログラムを作ろうと考えています。 FD起動で、かつ電源を入れると、自動的に上記の画面まで持ってこれるようなプログラムで、 無料で開発できるようなものはあるでしょうか。。。 どうぞ、よろしくお知恵をお貸しください。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.5

>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 文字のみとした。

yuhki_m
質問者

補足

回答ありがとうございます。 setコマンドが中々に認識してくれない状況でしたので、 外部プログラムであるbu.comを使って何とかならないか… もう一度考えていこうと思います。 プログラミングはやりたいやりたいと思いながら、 PC-98を使っていた頃のN88-BASICで挫折し、 ポケコンのBASICで簡単なゲームをトレスして満足して…。 といった経緯もあり、改めてCUIで動作可能なCも覚えていこうかと考えています。 もう少し、試行錯誤してみます。 ありがとうございました。

  • kngj1740
  • ベストアンサー率18% (197/1052)
回答No.4

現在のDOS(たとえばDOS-V6.2)はHDDにインストールしないと動作しません。FDD一枚には収まりません。やはり何かコンパクトなプログラムをDOSの力を借りないで動作させるようにする必要があります。或は、DOSに精通していればうまくDOSのファイル群から必要なものを集めて一枚に収められるかもしれないですが。日本語表示にかなりの容量を食います。(漢字フォントなど)。

yuhki_m
質問者

補足

回答ありがとうございます。 日本語フォントに関してですが、 コンベンショナルメモリが少なくなるので、 英字のみか、半角カナ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)
回答No.3

FD起動の意味ですが、何にもOSがインストールされていないPCでFDから起動してプログラムを実行するとなると、ブートセクターなどの知識が必要です。OSがないのですべの処理を自分で作成しなければなりません。難易度はかなり高いです。アセンブラの知識は最低限必要です。キーボード入力、表示ともBIOSのルーチンを利用します。情報源としてDDKなどか必要でしょう。デバッガーが全く使用出来ないので、デバッグに苦労する事になります。デバッグ機能を持つエミュレーター上でデバッグとか考えた方が良いかも。

yuhki_m
質問者

補足

回答ありがとうございます。 OSには手元にあるMS-DOSないしPC-DOSを使用する予定です。 以前使っていたFlexOSは互換性の問題から今回は見送らせていただいています。 よろしくお願いします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ポイントは3点 (1)きょうびFDの付いたマシンなんかまず存在しませんが大丈夫ですか? お手持ちのマシンがその構成であればとくに問題ありません。 (2)MS-DOSはお持ちですが?またそのDOSは該当マシンで動作しますか? 上記2点を満たしたうえでbatで処理することになります (3)プログラムとしてはbu.comなどバッチ系のユーティリティソフトを 利用するとすこし楽になると思います。

yuhki_m
質問者

お礼

ありがとうございます。 とりあえず、sysでFDブート可能な状態まで持ってきている状態です。 帰社後、該当プログラムを探してみます。 ありがとうございました。

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.1

開発環境はLSI C-86 v3.30c 試食版というC言語が使えると思います。 http://www.vector.co.jp/soft/maker/lsi/se001169.html あとFD起動ですが、OSは持っていますか? MS-DOSからWindows98までならFD起動可能かつ上記コンパイラで作ったソフトが動作可能です。 OSがなければFreeDOSとかを探してください。

yuhki_m
質問者

お礼

ありがとうございます。 私が使っているワープロ専用マシンが、 PC-AT互換機のMS-DOS6ベースのWindows3.1なので、これを使おうと思っています。 早速探してみようと思います。 ありがとうございました。

関連するQ&A

  • FDから起動できません、BIOS破損でしょうか?

    NEC Mate50/Windows MEを使用中に青い画面になりCtrl+Alt+Delで再起動しても、また同じ画面になり起動できなくなりました。 FDから起動してOSを上書きで再インストールしましたが、その後の最初の起動が完了してマウスを動かしたとたんに同じ状態になりました。 BIOSのLoad Defaultを実行した後、ぐちゃぐちゃの画面になって止まりました。 FDから起動しようとしましたが、FDのアクセスランプがつきっぱなしで、アクセス音がせずロゴ画面も表示されず起動できません。このFDで他のPCは起動できます。 FDを入れずに電源を入れると、FDのアクセス音が1秒くらいの間隔で鳴り続けロゴが表示されません。 BIOS自体が壊れてしまったのでしょうか?

  • 桁数を求めるプログラム。

    入力した数字の桁数を表示させるというプログラムを考えています。 例) 135 この数字の桁数は3桁です。 などと表示させたいと思っています。 それで、私は入力した数値を10で割っていって入力した数値aがa<=0になったらループを終了して 何回ループしたかのカウンタで桁数を表示させようかと考えました。 たとえば135→13.5→1.35→0.135で整数部分が0となるのでループを打ち切って 3回繰り返したので3桁と表示させたいと思いました。 それでプログラムを考えてみたのですが、どうにもうまくいきいません。 どのように修正したら桁数が表示できるようになるでしょうか? #include <stdio.h> main() { double a=0; int n=1; scanf("%d",&a); while(1) { a=a/10.0; if(a<=0){ break; } n++; } printf("その数は%d桁です。\n",n); }

  • MBMのFDからの起動方法

    Multiple Boot ManagerのFDからの使用方法がわかりません。FDにrwrite.exeというソフトを使用してMBM(MBM038.144)をFDに書き込み、起動するところまでは行きます。しかしその後のhttp://www.atmarkit.co.jp/flinux/rensai/linuxtips/image/831_01s.gifこの画面までは行きますが、その後が行きません。どうしたらいいのでしょうか?

  • WindowsでもCD起動でもFD起動でも無限再起動

    WindowsでもCD起動でもFD起動でも無限再起動 友人からWindowsが無限再起動するから見てほしい、とpcを預かりました。 BIOSTAR M7VKQ、Duron1GHz 768MBです。 [1]Windows起動中に再起動がかかります。 [2]HDDを取り外し、WindowsXPのCD起動では、ファイルの読み込み中に再起動。 [3]UltimateBootCD5.0.2で起動では、(HDD無し)  「Boot From ATAPI CD-ROM:・・・」の直後に再起動になるときと、  起動完了するとき有り。 [4]Windows98 起動ディスク(FD)では、(HDD無し)   無限再起動と起動完了とが半々。  CMOSクリアしたけど変化無し。 友人には「最悪、Windowsをクリーンインストールが必要」と言ったけれど、 それさえできなさそう。どうすればいいのかお手上げになってしまいました。 どなたか、お助け下さい。よろしくお願いします。

  • プログラムが起動できません

    パソコンでプログラムを起動しようとしたら、tfpjという、アプリケーションの関連つけができていないとメッセージが出で d:の入力画面が出て起動できません どうしたらいいでしょうか?

  • PCの起動時間は、いつからいつまで?

    図り方はケースバイケースかとも思うのですが、 一般的にはどうなんでしょう。 1.スイッチを押す。 2.ビープ音 3.BIOS画面。 4.Windowsのロゴが開始。 5.Windowsの起動音。 6.ようこそ画面。 (パスワード入力・(ここは計測時間に入れないとして)) 7.壁紙表示。 8.安定(くるくるが消える)。 SSDにしたら起動時間が早くなったと実感できましたが、 俗に30秒でOSが立ち上がるというのはいつから、いつまでの時間を指しているんでしょうか。 ちなみに私のPCでは1.から7.まで40秒かかります。

  • FDドライブ無しでの起動

    友人にPCを作ってくれと頼まれ今までの知識で組み上げる所までは問題なく進みました。FDドライブは使わないから要らないと言うことで初めてFDドライブ無しで組みました。普通にBIOS画面間まで進むのですが、FDドライブが無い為か「Floppy Disk Drive(略」との表示が出てF1キーを押さなければ起動できない(先に進めない)状態になっています。何方かFDドライブ無しでの起動方法をご存知でしたらご教授ください。よろしくお願いします。

  • プログラム起動時の動きがおかしい

    デスクトップやスタートのボタンなどからプログラムを起動しようとすると、2秒ほどの時間がかかってから起動します。 スタートから起動すると、スタートの画面(使用頻度の高いソフトが表示されるもの)が2秒ほど固まってから起動します。 ノートパソコンなので、ハードディスクにアクセスがあると音がするのですが、クリックしてから2秒ほどは音がしません。 ためしにタスクマネージャを起動してCPUの動きを見ましたが、2秒ほどは動きがなく、その後起動のために動くようです。 最近インストールしたとか更新したとかなどはなく、理由がわかりません。 どうすれば直るでしょうか?

  • win95が起動しない>MS-DOSもたちあがらない

    友人のマシンなのですが、BIOSの設定画面とSC-UCPIの設定の画面は出せるのですが、ウィンドウズスタートアップ?の表示がされるまでに、黒い画面?に文字化けしたメッセージが表示され、キーボードでの入力もできません>唯一CTRL+ALT+DELで再起動はできますが、同じ事の繰り返しで、ちなみに、起動ディスクからも同じ状態になります、BIOSのファーストBOOTはFDにしてあるのですが・・・どう対処すれば良いか教えてください。

  • FDへの書き込み中にフリーズします。

    こんにちわ。以下について誰か教えていただけませんか。 <症状>FDに書き込み中に必ずフリーズする。マウスポインタも固まる。FDDのアクセスランプは点灯しっぱなし。復帰はリセットのみ可能。書き込み中のウィンドウ(紙が左から右に飛んでいく画面)で固まる。 <環境>今までは正常に動いてました。自作機(Pen(3))、Win2k、Meのデュアルブート。最近Win2Kをセットアップしなおそうとして、最初の再起動の時に止めた。つまり、ブート選択画面に「2000セットアップ」がある。「boot.ini」ファイルからその部分を削除しても、少し表示が変わったがブート選択画面にはあいかわらず出てくる。セットアップ用にコピーされたフォルダはフォルダごと削除してある。 <試した事> ・Win2KでもMe起動でも同じ症状 ・別のFDDを取り付けても同じ ・FDメディアを変えても同じ ・FDDクリーニングしても同じ ・BIOSの再読み込みをしても同じ ・FDDのケーブルを挿しなおしても同じ ・Dos起動でCopyコマンドだと書き込める。 やはりセットアップの中止が原因でしょうか? よろしくお願いします。

専門家に質問してみよう