|
|
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.