INT 11h, INT 12h, INT 15h etc.
INT 11h
; INT 11h INT 11h ; 機器リストを表示 CALL puthex MOV SI, crlf CALL puts
AXレジスタに機器リストが返る。
でも、機器リストの内容が、ちょっと古い感じ...
INT 12h
; INT 12h INT 12h ; メモリサイズを表示 CALL puthex MOV SI, crlf CALL puts
AXレジスタにメモリサイズが返る。
これは、リアルモード下での、MAX1M以内での空き容量。
すなわち、640KBが最大。
BIOSの使用する領域が増えれば、この数字が減る。
Qemuでは、639が返ってきた。(ROM BIOS イメージによって、違うのかも)
INT 13h は、ディスク関連、INT 14h は、COMポート関連。
よって、今は、スキップ。
INT 15h は、拡張サービスという事になっている。
色々な機能がまとめられているが、そのうちのいくつかを試す。
INT 15h (AH=88)
; INT 15H AH=88h MOV AX, 8800h INT 15h ; 拡張メモリサイズを表示 CALL puthex MOV SI, crlf CALL puts
AXレジスタに拡張メモリサイズが返る。
単位はKBなので、最大、65535KB、すなわち、64MB。
これも、現状、実用的かと言うと、ちょっと微妙な気がする...
INT 15h (AH=C1)
; INT 15H AH=C1h MOV AX, 0C100h INT 15h ; レジスタの値を表示してみる CALL putregs
ESレジスタに拡張BIOSのデータセグメントが返る。
拡張BIOS自体、まだ、ちょっと、理解不足。
とりあえず、使ってみた。