CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

8087存在チェック

8087を実装しました。
前頁のものよりもう少しきれいなC8087(無印)があったのでそれを使ってます。

基板もほぼ埋まり、残すは8089だけになってます
 
イメージ 1
まず、8087が認識されているか、ですがこれは80286、80386ボードと同じように搭載したモニタのスタートアップルーチンに含まれる8087存在チェック処理の結果をみれば判ります。
 
スタートアップルーチンはLSIC-86の製品に含まれているのでソースコードは示せませんが10数行のアセンブラコードで8087のステータスレジスタ、コントロールワードを読み出してみて有意な値が入っているかで判定しています。
8087があると判断されると0x0100番地に1のフラグをセットしてリタンします。

0x0100番地をダンプしてみると・・・
 
イメージ 2

ちゃんと入ってますね。OKのようです。
 
この後ユーザプログラムで浮動小数点演算ライブラリが使用されるとこのフラグを見てネイティブのx87命令で処理するかソフトウェアエミュレーションをするか分岐します。