と思った矢先に!!

rombios.c でも、LED の処理をちゃんとやってた!!
ところが、その処理は、INT 16h の中だった。
ずっと、INT 09h で処理している物だと思い込んでいたから、そりゃ、見付かるわけもない。


しかし、何故、INT 16h の中なんだろう?と、当初、素朴に疑問に思った。
これじゃ、INT 16h を利用しない限り、いくらキーを叩いても、LED は変化なしだ。
でも、落ち着いて考えみたら、INT 09h は、あくまで、キーボード割り込みであって、
BIOS の仕組みを考えたら、INT 16h を呼び出さない限り、キー入力を取り出す事は出来ない。
つまり、LED の状態に意味があるのは、キーボードからの入力がある場合で、
キーボードからの入力を得るには、必ず、INT 16h を呼び出す必要があると...
なるほど、そう考えれば、INT 16h で処理するのもありかもしれない。
いやいや、良く良く考えれば、INT 09h は、ハードウェア割り込みであって、
INT 16h の方は、BIOS サービスルーチンだ。
INT 09h では、キーボードから送られてきた入力データを受け取るのが主であって、
キーボードを制御・管理すべき場所ではない。
何らかの OS であれば、キーボードサービスのような物があって、
そこで、LED を含めキーボードの制御や管理を行うべきなんだろうけど、
BIOS では、そこまで大掛かりな仕組みが無いので、INT 16h でやっておこうか、
みたいな感じかな?と。


しかし、他の BIOS では、どうなんだろう?
気になるところだ。