|
|
1.1 root 1: /
2: / The information contained herein is a trade secret of INETCO
3: / Systems, and is confidential information. It is provided under
4: / a license agreement, and may be copied or disclosed only under
5: / the terms of that agreement. Any reproduction or disclosure of
6: / this material without the express written authorization of
7: / INETCO Systems or persuant to the license agreement is unlawful.
8: /
9: / Copyright (c) 1987
10: / An unpublished work by INETCO Systems, Ltd.
11: / All rights reserved.
12: /
13:
14: ////////
15: /
16: / iAPX-286 Processor Reboot function
17: /
18: ////////
19:
20: KBDATA = 0x60 / 8042 keyboard mpu data I/O port.
21: KBCTRL = 0x64 / 8042 keyboard mpu ctrl I/O port.
22:
23: .globl reboot_
24: reboot_:
25: cli / Disable interrupts.
26: /
27: 0: sub cx, cx /
28: inb al, KBCTRL / Wait for 8042 input buffer to empty.
29: testb al, $2 /
30: loopne 0b /
31: jmp .+2 / DELAY /
32: /
33: movb al, $0xD1 / Request next output byte to be
34: outb KBCTRL, al / sent to the 8042 output port.
35: /
36: sub cx, cx /
37: 0: inb al, KBCTRL / Wait for 8042 input buffer to empty.
38: testb al, $2 /
39: loopne 0b /
40: jmp .+2 / DELAY /
41: /
42: movb al, $0xDF / Enable A20 address line.
43: outb KBDATA, al / See Page 1-44, IBM-AT Tech Ref.
44: /
45: sub cx, cx /
46: 0: inb al, KBCTRL / Wait for 8042 input buffer to empty.
47: testb al, $2 /
48: loopne 0b /
49: jmp .+2 / DELAY /
50: jmp .+2 / DELAY /
51: /
52: movb al, $0xFE / Issue a shutdown command
53: outb KBCTRL, al / to the 8042 control port.
54: /
55: 0: hlt / Halt until processor reset occurs.
56: jmp 0b
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.