もくじ。
DOSエミュレータ(仮) の詳細ページ
ゲストOS(DOS)に提供されるスペック(予定)
機能 | スペック | 備考 |
CPU | Intel i486 1MHz(PM/PG対応)相当 | 周波数は実行環境による |
FPU | × | 専用ドライバを適用できるようにするつもり |
Chipset | AT互換機 PIIX4互換(?) | I/Oのみ。PCI CONFIGは保存されない。 |
CMOS RAM | 242バイトRAM | |
RAM | 640KB+1024KB RAM | |
ROM | 64KB+32KB(1MB空間に最大384KB,4GB空間はメモリの許す限り) | |
Sound | BEEP音源1音+FM1312互換9音(BEEPでエミュレート) | PCM/MIDIなし |
Graphic | On board VGA(bochs vbe extension対応)または8514/A互換 1画面 | |
VideoRAM | 1024KB (最大解像度:1024x768 256色,800x600 32768色,640x400 16777216色) | |
ROM BIOS | ブートBIOS+VGABIOS+独自ハードウェアサポート用拡張BIOS | |
SYSTEM BIOS | Bochs BIOS(64KB)またはDOS組み込みBIOS(64KB) | |
VGABIOS | Bochs VBE extension用VGA BIOS(32KB)または自作VGABIOS(64KB) | |
AGP | - | |
PCI | - | |
PCMCIA | - | |
FDD | 1.44MB 2モード 2基(どちらかがROMエミュレーションの可能性) | |
HDD | - | |
CD-ROM | - | |
シリアルポート | - | |
パラレルポート | - | |
| | |
| | |
(編集中)
DOS Emulator(仮) の仕様について
最低動作環境
OS | OSASK v9.9以降(v4.8以降推奨) | |
MEM | 空きメモリ6MB以上(18MB以上推奨) | |
Graphic | 640x480 16色以上(800x600 65536色以上推奨) | |
Sound | BEEPに対応しているboard | |
drive | 何でも(HDDかCFでの運用を推奨) | |
font | 基本は不要、msgbox等一部で日本語フォント使用(第一水準もあれば問題無い) | |
(編集中)
スクリーンショット
- bochsのBIOS/VGA BIOSを使用して起動してみたところ
- タイトルバーを某エミュレータ名にして、行間と字間をあけてそれっぽくした場合(ネタです。)
- ちなみに本物のエミュレータの画面
- 開発段階で使用中のデータのダウンロード
公開日 | 名前 | バージョン | ダウンロード | 備考 |
2006年07月31日 | DOS Emulator QEMU用ディスクイメージ版 | Ver 0.1.9(α版) | lzh書庫版/SAR版 | ブート失敗が確認できるだけ |
BIOSだけ配布することに意味がなくなったので、廃止しました。そのうち、DOSEmulatorβとBIOSセットを一纏めにしたディスクイメージを配布する予定です
- DOS Emulator(仮)のディスクイメージ版を公開しました。まだアプリを実行できるレベルではありません。
ゲストOS(DOS)に認識させるフロッピーディスクについて
ゲストOS側には1.44MBドライブと認識させるつもりですが、現在のOSASKはFDベース(CFやATAもFDのディスクイメージを利用する形式)のOSなので、1.44MBのベタファイルなんて到底FD内に置けません。
そこで、どういう風に1.44MBドライブを実装するのか、意見を募集したいと思います。
とりあえず自分で考えてみたサンプルを3個提示してみたいと思います。
この中のこれがいい!とかもこのコメント欄にお書き下さい。詳細は別のページとかを作ってそこにリンクさせてもいいと思います。
- 不良セクタ形式:特殊なディスクイメージを使用し、後ろのセクタを不良セクタなどと認識させて、実質720KBな1.44MBフロッピーディスクとする。ディスクイメージは1.44MBベタのいらないセクタの部分を削るか特殊な形式を作る(既にあったりする?) -- nika 2006/07/31 (月) 10:46:27
- 2DDブート:最初から2DD形式(片面のみ、720KB)として認識させ、ディスクイメージは720KBで済むようにする。これで問題があるのは、2DDからbootできるのか、DOS等のOSが2DDブートに対応しているのか。 -- nika 2006/07/31 (月) 10:47:48
- 随時作成形式:OSASKのファイルを直接FDのセクタに配置する形式。OSASK側でファイルリストを作成し、FDドライバ(エミュ本体)がリストを読み込み、内部にディスクイメージを作成する。ブートセクタのファイルもOSASK側に用意してファイルリストで定義する。FATやディレクトリエントリなどはその都度マッピングする。 -- nika 2006/07/31 (月) 10:53:02
- もしくはこれらの形式をmenu等を使用して選択する…そんなことができるのかはさておき。 -- nika 2006/07/31 (月) 15:33:55
進行状況
- とりあえずDOS互換ファンクションをホスト上のハードウェア相当のレベルで実装して、biosからそのハードウェアに指令を出す形式にする予定を立てました。 -- 2006/07/09 (日) 09:57:10
- 現在DOS APIの実装中です。それに伴って簡易的にスロットを扱えるサブルーチンを構築中。 -- 2006/07/10 (月) 06:47:28
- アプリ動作するまであと少し!?、とりあえずOSASK側のファイルを読み込めるようになりました。 -- 2006/07/11 (火) 13:31:57
- 日本語はとりあえずおいといて、メモリ管理(MCB関係)を実装中。 -- 2006/07/13 (木) 13:09:33
- ah=48h,ah=49h,ah=4ahの実装完了。続いてPSP関係のファンクションを実装しないと!(ah=48hの時に作成させるバッファには特定のアドレス(内部変数)の値を書き込むようにした為) -- 2006/07/17 (月) 04:30:38
- 内部的に使用しているライブラリの整理中。もうしばらく進展できないようです…。 -- nika 2006/07/24 (月) 04:36:18
- もしかしたら今後はbochsの様な独自ハードウェア(I/O)でBIOSレベル(DOSが動作するレベル)での互換を採用したAT互換機のエミュレータに発展させるかもしれません(期待はしないで下さい)。 -- nika 2006/07/24 (月) 04:40:24
- IDEデバイスを無視したら動作しそうだったので、1個ずつ表にあるアドレスも無視するようにしてみました。とりあえずint 18hが失敗してますが、bios実行は(irqやdma等を除き)成功してる模様です。 -- nika 2006/07/28 (金) 05:40:33
- 次はFDDをつないでBochsBIOSからFDブートしなければなりません。ってことはFDの実装と本格的なIRQ/DMAの実装が必要になる…。実装間違いを起こさないように注意しなきゃw -- nika 2006/07/31 (月) 01:40:41
- ディスクイメージ版を公開しました。QEMU用のosask4.8が入っているので、QEMU上で実行させてください。また、一連のファイルを実際のFD等にコピーできれば実機で動作させることも可能です。ただし、-v48aが効いているはずなのでv4.8以降専用です。 -- nika 2006/07/31 (月) 03:16:54
- とりあえずFDドライバを実装中。しかし、ATAが実装されていないとFDCも同時に存在が検出されないようです。ATAハードウェアを実装して、かつ、ATAドライブが繋がっていない状況を作らないといけないようだ。つまり、CDROMドライブ/HDD/FDDはATA(IDEボード?)で提供されているんだろう。ATAが全く存在しなければ、どこからもブートできない環境になるってことか。 -- nika 2006/08/02 (水) 11:43:59
- なので、rombios.cのソースをダウンロードして、Cのソースを見ながら(パッチせずに)動作できるようにFDD/ATAドライバを実装しなければならないだろう。C言語が得意じゃない私がソースを読んで仕様が分かるだろうか…(汗)。 -- nika 2006/08/02 (水) 11:47:19
- どこかに「IDE(ATA)ポートの存在チェック方法」とか「FDコントローラ」のエミュレータ側の実装方法とかころがっていないものか…(こんなの利用する人なんてほとんどいないというか全くいないですよねぇOTL) -- nika 2006/08/02 (水) 11:49:29
- rombios.cを解読中。 -- nika 2006/08/02 (水) 22:57:30
- rombios.cでcmosアクセスしているのを見て、そういえば起動時のcmos-ramはall 0で返していたような気がする。これでFDドライブが無いと認識されている可能性も無くは無いかも。 -- nika 2006/08/04 (金) 11:38:17
- やっぱりCMOS設定がよくなかったようだ。Bochs上のCMOSデータを返すようにしたら(64バイト)、FDDも試すようになりました(多分表示上だけではないはず)。 -- nika 2006/08/04 (金) 13:38:39
- qemuとBochsなどは保存していないみたいだけど、本来はCMOS-RAMは保存されないと意味がないので、256バイトのcmos.datなどとして読み込み、保存をするようにしよう。とりあえずBochsBIOSから自作BIOSになるときに必要になるかもしれないし(汗)。 -- nika 2006/08/04 (金) 19:01:26
- とりあえずMt.orzのOS版が動作するように実装中。当面(FDDがちゃんと実装されるまで)の目標になります。 -- nika 2006/08/07 (月) 07:01:34
コメントらん