#include "x16.h"
#undef ORB
TEXT a20(SB), $0
CALL rmode16(SB)
CALL16(spllo(SB))
LWI(0x2401, rAX)
BIOSCALL(0x15)
JC _biosfail
CALL16(pmode32(SB))
RET
_biosfail:
CALL a20wait(SB)
MOVL $0x64, DX
MOVB $0xAD, AL
OUTB
MOVB $0xD0, AL
CALL a20wait2(SB)
MOVL $0x60, DX
INB
PUSHL AX
MOVB $0xD1, AL
POPL AX
ORB $2, AL
MOVB $0xAE, AL
TEXT a20wait(SB), $0
_a20wait:
TESTB $1, AL
JZ _a20wait2
TEXT a20wait2(SB), $0
_a20wait2:
TESTB $2, AL
JNZ _a20wait