DEMUプロジェクトの仕様と詳細
このページは、DOSエミュレータ 「DEMU」の仕様や進行状況を更新するページです。
最初から書き直す必要に迫られたので、改名とともにページ名を変更しました。
とりあえずDOS互換だけ実装し、その後コツコツと仕上げていくつもり。
(編集中)
スクリーンショットとか
グラフィックボックスと乱数のテスト
フォント適応補間縮小
16x16のOSASK標準フォントを12x12へ縮小した例です。
それなりに使えると思います。
|
|
フォントA (斜め規制ONとの比較用) | フォントA 4x拡大 |
|
|
フォントB (斜め規制OFFとの比較用) | フォントB 2x拡大 |
フォント適応補間拡大
16x16のOSASK標準フォントを32x32へ適応補間拡大した例です。
作ってみたけど使い道が(まだ)無い…(笑
|
|
フォントA,斜め規制OFF | フォントA,斜め規制ON |
|
|
フォントB,斜め規制OFF | フォントB,斜め規制ON |
仕様とか
メモリアドレスマップ
- 大体のメモリマップ
物理アドレス | サイズ | 用途 | 備考 |
0x00000000 | 64KB | SYSTEM | 未使用 |
0x00010000 | 576KB | 空き | 使用可能メモリ |
0x000A0000 | 32KB | TVRAM | テキストメモリ※ |
0x000A8000 | 32KB | TVRAM | テキストメモリ※ |
0x000B0000 | 32KB | TVRAM | テキストメモリ※ |
0x000B8000 | 32KB | TVRAM | テキストメモリ※ |
0x000C0000 | 32KB | TVRAM | テキストメモリ※ |
0x000C8000 | 32KB | TVRAM | テキストメモリ※ |
0x000D0000 | 96KB | 空き | 未使用 |
0x000E8000 | 32KB | TVRAM | テキストメモリ※ |
0x000F0000 | 64KB | 空き | 未使用 |
0x00100000 | 64KB | HMA | 使用可能メモリ |
0x00110000 | 960KB | XMS | 使用不可 |
0x00200000 | --- | | 配置なし |
※実際のテキストメモリは8KBくらいで大体同じ場所を再配置しているだけである。
※ただし配置場所によってビット単位で意味が異なる場合がある。
- I/Oアドレスマップ
管理用メモ
ここは、管理人が試行錯誤しながら変更していく内部用のメモがわりです。
- DEMU起動時に実行ファイルをオープン(関連付け起動対応)。
- メモリブロックの構造や環境変数などを内部(外部優先)ファイルを元に初期化
- DOS実行ファイルを(必要ならばリロケーションして)メモリに配置。
- ファイルの読み込みや書き出しは必要な場合のみ、ディスクイメージをアクセスする。
- 実行ファイルの位置はそのイメージ内にあるものとする。
- 実際にディスクイメージ内に無い場合でも内部的には微妙。
- ハードディスクやCD-ROM等はアクセスできない。
- BIOSをエミュレーションしているわけではないのでBIOSレベルの操作は正常に動作しない。
- 音はまったく出ない。BEEPすら対応しない。
- 常駐するアプリは対応していない。というかコマンドラインが無いので正常終了と同じ扱い。
- タイマ割り込みをエミュレーションするかどうかは使っているアプリがどのくらいあるかによる。
- ゲストOS内の時間設定はとりあえず起動時に2006/11/13 17:30:00.00にセットしてみる。
- DOS Versionは5.0としようかな。
- 画面はテキストのみ。以下の解像度で表示。いわゆるANSI対応。
モード | 解像度 | フォント | 表示解像度 | 言語 |
3 | 80x25 | 6x12 | 480x 300 | jp |
- | 80x30 | 6x12 | 480x 360 | jp |
3 | 80x25 | 6x12 | 480x 300 | us |
- | 80x30 | 6x12 | 480x 360 | us |
- | 80x25 | 8x16 | 640x 400 | - |
- | 80x30 | 8x16 | 640x 480 | - |
- キーボード
- マウスドライバ
- プリンタ
- ファイル
- CPU/FPU
- サウンド
- メモリ配置
- その他
(編集中)
進行状況欄
ここは管理人が書く場所です。
- ソースを書き直す段階になって、基礎ライブラリ再構築中。これのテスト中にテストゲームなどを作成するかもしれない。 -- nika 2006/09/28 (木) 06:23:43
- とりあえず、当初の計画に戻って、DOS APIレベル(int 21hレベル)のエミュレーションでDLL(デバイスドライバ)を使用しない形式で作成しようと思います。 -- nika 2006/10/11 (水) 04:02:59
- 6x12ドットの内蔵ASCIIフォントを使用する。日本語はOSASKシステムフォントを縮小して使用するつもり。16x16を12x12に縮小するにはHighColorなら中間色補間ができるが、16色だとそれもできない。16x16→12x12(単純補間(間引き)または適応補間)しかできない。 -- nika 2006/10/12 (木) 04:05:44
なにか書いていってください
なんでもいいですよ。