マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

BIOSエミュレーション?

なんかtwitterで無茶ぶりが飛んできたので、一応書いておく。PC系のエミュレータはCPUだけでなくBIOSもエミュレートが必要だったりするが、その手法について依頼が飛んできたようだ。で、BIOSエミュレーションの方法は大きくわけて2つあると思う。

1つはどっかからBIOSを持ってきて、それを実行する方法で、Bochsが多分この方法だと思われる。Bochsブートローダをステップ実行すると、その様子が見れる。

それでもう一つが俺がとってる手法で、結果だけあってればいいじゃん!という方法。http://www.ctyme.com/intr/int.htmで目的のBIOS Function Call探してきて、結果だけをレジスタやメモリに書き込むというもの。これをエミュレーションと呼ぶのかは知らない。

ざくっと書いてたけど、わりと単純なものであるがなんたって数が多くてめんどいし、わけのわからん機能もあるので、結構苦労する。というか、x86エミュレータを諦めた原因の1つでもあるし。まぁ、これからPC系エミュレータ作りたい人は頑張ってください。