ページへ戻る

− Links

 印刷 

HOSINO​/16bitの.comアプリをefg01で のバックアップソース(No.1) :: OSASK計画

osaskwiki:HOSINO/16bitの.comアプリをefg01で のバックアップソース(No.1)

  Next »[4]
*不完全MS-DOSエミュレータ製作計画 [#b3d34080]
この計画は星野個人的なものであり、osask計画のサブプロジェクトなどではありませんが、何かご存知でしたら是非お教えください。~

**現状目標 [#kffffa0c]
16bitで.com形式が動くだけの、エミュレータと言えるかかなり怪しいアプリを作るかもしれません。~

**現状成果物 [#qe6e226e]
特にありません。~

**開発記 [#sfdaa7bf]
開発の様子やらなんやらをたまに書き込みます。(もしかしたら規約違反?)~
読んでもどうしようもない個人的な感想なども多いです。~

***MS-DOSエミュレータについて [#v1bfe10d]
16bitなら簡単そうで、そこらじゅうにソースが転がってもよさそうですが、なぜかこの類の私が手を出せそうなフリーソフトは見当たりませんでした。~
でもよく考えたら、windowsがコンソール上でMS-DOSをエミュレートしてくれるので、わざわざ作る必要も確かになさそうですが…~
私は初めてのパソコンがwindowsの世代なので、ms-dosの事は正直よくわかりません。~
とりあえずCPU固有の命令(mov ax,10とか)以外はint 0x21でのシステムコール系統を何とかすればいいかなぁ、と楽観視しています。~
でも、そもそもシステムコールは文字の出入力とファイル操作以外に何をするのかわからない、とかいうレベルです。~
開発方針としては、naskを使ってmov ax,bxとかがどんなコードに変換されているのか地道に調べるところから始めようかと…。~
手元にwindowsのコンソールというmicrosoft公認(?)のms-dosエミュレータが有るので、これを積極的に活用していくつもりです。~
ちなみに、最終的にはこの計画で調べた機械語を基にして、16bitのみ対応の超小型アセンブラを作るつもりです。~
とはいっても、今のところ絵に描いた餅ですが…。~
(サイズはnaskの1/2、機能はnaskの1/10みたいな感じで…。)~

***エミュレータの基本構造 [#q8c1a1cd]
私自身がこれまでにエミュレータを作ったことは有りませんし、ソースを眺めたこともないので、一般的なエミュレータとはかけ離れたものになると思います。~
一応の方針としては、当たり前かもしれませんが「ファイル読み込み--->エミュレート--->終了」という感じでしょうか?~

***リアルモードでのレジスタの挙動 [#o09679fc]
よく考えたら機械語うんぬんかんぬん以前に、レジスタについて理解していないことが多すぎたので、そこの辺の詳しい挙動を調べてみます。~
これにはwindowsコンソールのdebug機能が便利そうなので使ってみました。~
(microsoftが作ってるので結果の信憑性も高そうですし。)~
''実験その一/alやahに0x100以上を入れて見る''~
当たり前ですが無理でした。~
mov al,0x100ぐらいは値がahに繰り上がってah=0x01、al=0x00になるかも…と思ってやってみただけなので。~
''実験その二/alに0xffを入れた後inc alしてみる''
結果はax=0x0000でした。~
これも同じくahへの繰り上がりシステムを恐れてやってみましたが、以外とalとahは疎遠のようです。~

  Next »[4]