2014年08月14日

キーボード割り込み-2

自動EOIを強制的にONにすることで割り込み処理ルーチンを正常に実行するように
なりましたが、キーを押しても特に何も変化しません。
np2には互換BIOSのソースがついていますのでint9(IRQ1:キーボード)がどのような
処理を行っているか(vect09.x86)追いかけてみたところ、キーボードからの受信に
フレーミングエラー等のエラーが無いかを確認しエラーがなければエラーカウントを0にして
キーからのコードを読むだけは読み、STOPキーとCOPYキーであればINT5/INT6を
実行し、それ以外であればEOIを割り込みコントローラに送信して終わりです。
STOP/COPY以外の場合はそのキーコードに対して特に何をするわけではありません。
では、np2ではどのようにキーを処理しているかというとこの処理もエミュレータ側で
処理しているようです。(bios09.c)
キーの処理をZet/98で行うにはこのbios09.cと同じ動作をする8086のアセンブラコードを
vect09.x86に追加する等が必要になるのでしょう。
posted by プー at 16:01| Comment(0) | Zet/98 | 更新情報をチェックする

2014年08月11日

キーボード割込み

夏休みで少しだけ時間が取れたので少しだけ、Zet/98の方も
つついてみました。
i8259のサブセットが書けていたのとPS/2キーボードから
98キーボードへの変換部も書けていたので接続してみたところ、
どうもN88起動直後、キーを押すと永久ループに入るようです。
キーボード割り込みはirq2で、int9割り込みが発生する
ところまでは良いのですが、np2の互換biosでは割込みルーチンで
初っ端割り込み許可をしています。
i8259は自動EOIの設定であれば割込みackによって自動で
割込みをクリアしますが、自動EOIには設定していないようで
割込み状態のまま、割り込み許可になり、永久ループに
なってしまうようです。
8259のコマンド解釈がおかしいのか、np2の割込み処理に細工があって
これでも動くのか。。。
割り込み許可を割込み処理の最後に移動すれば進展しそうですが
長い間触らずにいたのでアセンブル方法を忘れてしまった。。。
np2の互換biosはmasmな部分とnasnな部分があり、makeはうまく
通らないので手動でアセンブルした記憶があります。
posted by プー at 12:42| Comment(0) | Zet/98 | 更新情報をチェックする

2014年05月06日

How many files

ITF及びBIOSのnp2依存部を修正し、
n88起動時のHow many files?まで表示
されるようになりました。
ファンクションキーの表示も大体良さそうです。
現時点でキーボードI/Fが繋がっていない
(正確にはキーボードI/Fは完成していますが
割り込みコントローラーが未完成)
のでこれ以上は動作不能。
次に実装するのは割り込みコントローラー
になるでしょう。
posted by プー at 17:40| Comment(3) | Zet/98 | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。