Annotation of coherent/d/etc/ATrebootas.s, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.