! Enable (ah = 0xDF) or disable (ah = 0xDD) the A20 address line.
gate_A20:
        call    kb_wait
        movb    al, #0xD1       ! Tell keyboard that a command is coming
        outb    0x64
        call    kb_wait
        movb    al, ah          ! Enable or disable code
        outb    0x60
        call    kb_wait
        mov     ax, #25         ! 25 microsec delay for slow keyboard chip
0:      out     0xED            ! Write to an unused port (1us)
        dec     ax
        jne     0b
        ret
kb_wait:
        inb     0x64
        testb   al, #0x02       ! Keyboard input buffer full?
        jnz     kb_wait         ! If so, wait
        ret
/Pedro
On 14 Mar 2002 at 16:03, Richard B. Johnson wrote:
> 
> 
> Well I can see why he's an EX-Phoenix BIOS developer. A port at 0xed
> does not exist on any standard or known non-standard Intel/PC/AT
> compatible.
> 
> Remember DOS debug?
> 
> C:\>debug
> 
> -i ed
> FF
> -o ed aa
> -i ed
> FF
> -o ed 55
> -i ed
> FF
> -q
> 
> 
> This is not a DOS emulation. This is a real-mode boot where any ports
> will be visible. If you used it with success, it means that you didn't
> need the I/O delay of writing to a real port. Instead you got the few
> hundred nanoseconds of delay you get by writing to nowhere.
> 
> Cheers,
> Dick Johnson
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/