linux-0.01 読み (4)

ええと、boot.s に以下な記述あり。

; that was painless, now we enable A20

	call	empty_8042
	mov	al,#0xD1		; command write
	out	#0x64,al
	call	empty_8042
	mov	al,#0xDF		; A20 on
	out	#0x60,al
	call	empty_8042

これ、うにまが 2002/9 号の Linux のブートプロセス#5 な A20 を有効に、という件のソレに合致してます。setup.S との事ですが、若干記法が違いますね。

a20_kbc:
    call    empty_8042

    call    a20_test
    jnz     a20_done

    movb    $0xD1, %al
    outb    %al, $0x64
    call    empty_8042

    movb    $0xDF, %al
    outb    %al, $0x60
    call    empty_8042

このキーボードコントローラから A20 のマスク回路に信号を送信するのは遅いとの事。ただ、ブートローダ側でマスク解除してるので startup_32 なソレで無限ループの形で enabled かどうかな確認をしているんですね。
やっぱ先頭から読まないと駄目らしい。なんつーかソース読むってゆーよりもコメントな英語を読む世界になってるあたりが微妙なんですがorz
とりあえず 2002.8 なうにまがを持っていく方向で。