]> git.lizzy.rs Git - plan9front.git/blob - sys/src/boot/pc/a20.s
remove debugging
[plan9front.git] / sys / src / boot / pc / a20.s
1 #include "x16.h"
2
3 #undef ORB
4
5 TEXT a20(SB), $0
6         CALL rmode16(SB)
7         STI
8         LWI(0x2401, rAX)
9         BIOSCALL(0x15)
10         JC _biosfail
11         CLI
12         CALL16(pmode32(SB))
13         RET
14
15 _biosfail:
16         CLI
17         CALL16(pmode32(SB))
18
19         CALL a20wait(SB)
20         MOVL $0x64, DX
21         MOVB $0xAD, AL
22         OUTB
23
24         CALL a20wait(SB)
25         MOVL $0x64, DX
26         MOVB $0xD0, AL
27         OUTB
28
29         CALL a20wait2(SB)
30         MOVL $0x60, DX
31         INB
32         PUSHL AX
33
34         CALL a20wait(SB)
35         MOVL $0x64, DX
36         MOVB $0xD1, AL
37         OUTB
38
39         CALL a20wait(SB)
40         MOVL $0x60, DX
41         POPL AX
42         ORB $2, AL
43         OUTB
44
45         CALL a20wait(SB)
46         MOVL $0x64, DX
47         MOVB $0xAE, AL
48         OUTB
49
50 TEXT a20wait(SB), $0
51 _a20wait:
52         MOVL $0x64, DX
53         INB
54         TESTB $1, AL
55         JZ _a20wait2
56         RET
57
58 TEXT a20wait2(SB), $0
59 _a20wait2:
60         MOVL $0x64, DX
61         INB
62         TESTB $2, AL
63         JNZ _a20wait
64         RET