INT 16h (AH=10h, AH=11h)
基本的には、INT 16h (AH=00, AH01)と同じように使えるはず。
但し、拡張とあるだけに、何か違うんだろうなぁ...
とりあえず、置き換えてみると...
readloop: ; キーボードステータス読み込み MOV AX, 1100h INT 16h JNZ readkey ; 入力文字があれば、読み込む HLT ; ちょっと休憩 JMP readloop ; 繰り返し readkey: ; キーボード一文字読み込み MOV AX, 1000h INT 16h CALL putscancode ; 戻り値を出力 CALL putchar ; 文字出力 CMP AL, 1Bh ; ESCコード JNZ readloop fin: MOV SI, shutdownmsg CALL puts finloop: HLT ; 何かあるまでCPUを停止させる JMP finloop ; 無限ループ
とりあえず、変わらないように動いている感じ...