* DEMUプロジェクトの仕様と詳細 [#h8c5ec85]
このページは、DOSエミュレータ 「DEMU」の仕様や進行状況を更新するページです。~
最初から書き直す必要に迫られたので、改名とともにページ名を変更しました。~
とりあえずDOS互換だけ実装し、その後コツコツと仕上げていくつもり。~

''(編集中)''

////////////////////////////////////////////////////////////////
* スクリーンショットとか [#ka4b52df]
** ファイル選択 [#y6bd0b91]
#ref(demu20061013a.png)
** 最新 [#n26a4c3c]
|#ref(demu20061013a.png)|
|ファイルを開く|
|#ref(demu20061014a.png)|
|12ドットフォントチェック用(フォントC)|
~

** フォント適応補間縮小 [#i0a0f664]
16x16のOSASK標準フォントを12x12へ縮小した例です。~
それなりに使えると思います。

|#ref(demu20061012e.png)|#ref(demu20061012f.png)|
|フォントA (斜め規制ONとの比較用)|フォントA 4x拡大|
|#ref(demu20061012g.png)|#ref(demu20061012h.png)|
|フォントB (斜め規制OFFとの比較用)|フォントB 2x拡大|

** フォント適応補間拡大 [#ma715652]
16x16のOSASK標準フォントを32x32へ適応補間拡大した例です。~
作ってみたけど使い道が(まだ)無い…(笑

|#ref(demu20061012a.png)|#ref(demu20061012b.png)|
|フォントA,斜め規制OFF|フォントA,斜め規制ON|
|#ref(demu20061012c.png)|#ref(demu20061012d.png)|
|フォントB,斜め規制OFF|フォントB,斜め規制ON|
~

* 仕様とか [#oac31450]
** メモリアドレスマップ [#t92cde3c]
---大体のメモリマップ
|物理アドレス|サイズ|用途|備考|
|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アドレスマップ
|アドレス|サイズ|備考|
|0x0000| 64KB|配置なし|
~
** 管理用メモ [#xd7a3807]
ここは、管理人が試行錯誤しながら変更していく内部用のメモがわりです。
#hr
-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
-サウンド
-メモリ配置
-その他

''(編集中)''

* 進行状況欄 [#oe0c7cf5]
ここは管理人が書く場所です。
----
-ソースを書き直す段階になって、基礎ライブラリ再構築中。これのテスト中にテストゲームなどを作成するかもしれない。 -- [[nika]] SIZE(10){2006/09/28 (木) 06:23:43}
-とりあえず、当初の計画に戻って、DOS APIレベル(int 21hレベル)のエミュレーションでDLL(デバイスドライバ)を使用しない形式で作成しようと思います。 -- ''nika'' SIZE(10){2006/10/11 (水) 04:02:59}
-6x12ドットの内蔵ASCIIフォントを使用する。日本語はOSASKシステムフォントを縮小して使用するつもり。16x16を12x12に縮小するにはHighColorなら中間色補間ができるが、16色だとそれもできない。16x16→12x12(単純補間(間引き)または適応補間)しかできない。 -- ''nika'' SIZE(10){2006/10/12 (木) 04:05:44}
-ファイルアクセス関係実装中。 -- ''nika'' SIZE(10){2006/10/13 (金) 13:21:26}
-実行ファイルのリロケーションとかPSPの用意とか準備関係実装中。 -- ''nika'' SIZE(10){2006/10/14 (土) 18:14:13}

#comment



* なにか書いていってください [#ne60eb42]
なんでもいいですよ。
----

#comment


[リロード]   [トップ] [一覧] [単語検索] [最終更新]   [最終更新のRSS]