いわゆるANSI対応。今のところテキストVRAMはDOSからアクセスできるメモリ上には無い。現在の動作原理的には空きメモリ960KBも夢では無いけど、DOS汎用のアプリでそこまでメモリを使うものがあるのか?という疑問が。-PCアーキテクチャはAT互換機(=DOS/Vではない)ということにして、グラフィックボードはモード03のみのCGAということにしてしまおうか。VGAでもいいが、VGAはI/O描画周りが回りくどくて面倒そう。それと一部のマシンでOSASKアプリで640x480のウィンドウをオープンできない問題がある。キーボードDOSファンクション経由のみ。33hのエミュレーションをやればできそうだけど対応しているアプリが無さそうなので先送り。ファイルディスクイメージ起動ではないのでファイル検索は未対応。ファイル名を指定して開くことならできる。フロッピィディスクエミュレーションだけどネットワークドライブと考えれば(検索できないけど)イメージがあいそう。CPU/FPU8086シリーズ。PM/PG/VM/FPU/SSE/MMX/SSE2/SSE3/3DNow!非対応。32bitレジスタ対応。FPU命令を全く実装していないのでFPUの存在をチェックするようなプログラム(BASICやC言語などで作成されたものは怪しい)は動かせないと思われる。サウンドBEEPすら出せない。起動するDOSアプリは0x00008000~0x0009FFEFを自由に使える。UMBやEMB、HMAは使えない(予定)。†ここは管理人が書く場所です。ソースを書き直す段階になって、基礎ライブラリ再構築中。これのテスト中にテストゲームなどを作成するかもしれない。21hレベル)のエミュレーションでDLL(デバイスドライバ)を使用しない形式で作成しようと思います。04:02:596x12ドットの内蔵ASCIIフォントを使用する。日本語はOSASKシステムフォントを縮小して使用するつもり。16x16を12x12に縮小するにはHighColorなら中間色補間ができるが、16色だとそれもできない。16x16→12x12(単純補間(間引き)または適応補間)しかできない。04:05:44ファイルアクセス関係実装中。13:21:26実行ファイルのリロケーションとかPSPの用意とか準備関係実装中。18:14:13この方式(DOSAPIレベル)だとディスクイメージってわけにはいかないよなぁ。リストファイル(alias可能な)を参照してそれをDOSディスクにしよう。セクタ単位のアクセスまでサポートしなくても(あるいは、簡単なサポートだけで)動作するだろうし。23:23:59グラフィックボックスを使うのをやめて、独自のテキストVRAMみたいなものを使用する用に実装中。16:59:20独自のテキストボックス形式で疲れた。19:50:59テキストボックス関係の実装は一通り完了。これからCPU部の実装(といっても旧バージョンのコピーに近いが)とかだな。03:24:25CPUの実装の完了とEXEファイル関係、PSPや環境変数も完了(ほとんどの値は0ですが)。あとはDOSファンクションの実装、これだけ(OSASK側のファイルへのアクセスとか、そういう問題はある)。Block)の実装中。21:16:22風邪っぽい症状でなんか実装がはかどらなかった。なんかなんか言葉にしにくい...。14:01:34naskの最適化ルーチンにバグがあるようです。値、のとき、定数が0だと不安定になるようです。カーソル位置を自作ライブラリメモリに確保してコンソール出力描画ルーチンをライブラリ化してマルチウィンドウでもコンソール出力が使えるようにする。その別のグラフィックテキストボックスへゲストDOSアプリのレジスタのダンプとかデバッグメッセージなどを表示するようにする。04:24:55naskのバグをMLに流しました。01:35:16久しぶりにちょっとずつ更新再開。デバッグウィンドウ(デバッグコンソール?)実装に入ります。05:57:24キーボード入力の処理とシグナルハンドラを実装中。15:47:11カーソル点滅のための毎秒18.2回のタイマとキーボード入力を引き続き実装中。デバッグコンソールから1命令のトレースとかできるようにするのはCPUルーチンの改造が必要だなぁ...。15:04:54キー入力に関する仕様を追加。14:39:15or命令実行後の値がおかしくなることがあるのを修正しました。キーボード入力周りを実装しました。ahのとき、第2オペランドがSPの上位バイトになっていたのを修正しました。14:37:55それと、時間取得関係はとりあえず実機のRTCを取得してみて、正常に取得できなかったら自前に用意した日付/時刻をゲストOS側の時間にするつもり。14:39:28QEMU上のOSASKではRTCがパックドBCDモードに設定されているようだ。00:26:43実機上のOSASKでもRTCがパックドBCDモードに設定されているようだ。なると、パックドBCD/バイナリモード自動判別(自動変換処理)ルーチンを実装しないといけないかな。02:13:13qemuと実機でRTCのデータフォーマットを確認したが、どちらもRTCのCMOS-RAMのレジスタBのbit2=0でBCDで取得された。http://bochs.sourceforge.net/techspec/CMOS-reference.txtを見るとbit2=0:BCDとなっているので、とりあえずそのように(表示も実装も)修正しました。4秒と表示されてしまった。16:23:17ゲストOS側の時刻は1秒単位で更新するように実装。手抜きな仕様により日付は更新されない(同じ日付を繰り返す)。01:25:45DIV命令のオーバーフロー検出で、オペランドサイズが8/16bitの場合、誤検出することがあるのを修正。01:27:12RTCのリードで、世紀情報(年の上位2桁BCD)が10~29以外の場合、用意してある日付/時刻を使用するように変更(でもI/OWriteするのでAT互換機以外では誤動作するかも知れない)。2006/11/27版のDEMUを公開しました。01:00:55RTCのCMOS-RAMアドレスマップを(AT)RTCへ移動させました。19:45:32fmeditの動作速度改善のためには、垂直同期割り込み毎に差分だけを画面を更新するようにしないといけないだろうなぁ。あとは、ファイル関係のファンクションを実装すればfmeditも(OSASK上で)実用になるかな。†なんでもいいですよ。16:08:06ぉ、いきなり進みましたねwwいいだけ逃げていたのにwwすげーな。21:28:22応援ありがとうございます。OSCがあるのでそれまでには何とかアプリ実行できるまでにしたいです。08:37:56そういえばMt.orzはDOS汎用ではないから、動作検証には使えないなぁ(ATのBIOSに依存している)。DOS汎用版は無いのかなぁ。22:00:23上を見るとアプリ側でのメモリの確保等は今でもある程度いけるみたいなので、DOS用の既存ラムディスクドライバ(例えばコンベンショナルメモリから確保するような)が組み込めないかなと思いまして。まあFDCとかATAをエミュった方が手っとり早いかもしれませんし、公式対応な例の(じゃなくてもだけど)アーカイブ形式なら検索とかも実装出来るかもしれませんが。21h)自体を再現する仕様ですのでドライバ等は組み込めない仕様です。OSASK上でアプリがファイルをオープンするとすべてが読み込まれキャッシュされてから制御が戻ってくるので、その辺はこれでいいかなと思ってます。アーカイブ形式のファイルの扱いの細かい仕様はどうなのか分かってません。そのうち調べてみたいですねぇ。