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自体、まだ、ちょっと、理解不足。
とりあえず、使ってみた。