Annotation of Gnu-Mach/i386/pc/i16/i16_raw_test_a20.S, revision 1.1

1.1     ! root        1: 
        !             2: #include <mach/machine/asm.h>
        !             3: 
        !             4:        .text
        !             5:        .code16
        !             6: 
        !             7: /*
        !             8:  * Test the A20 address line; return true if it is enabled.
        !             9:  */
        !            10: ENTRY(i16_raw_test_a20)
        !            11:        xorw    %ax,%ax
        !            12:        movw    %ax,%fs
        !            13:        notw    %ax
        !            14:        movw    %ax,%gs
        !            15: 
        !            16:        /* See if the values in already in the corresponding locations
        !            17:           are the same.  */
        !            18:        movw    %fs:0,%ax
        !            19:        cmpw    %gs:16,%ax
        !            20:        jnz     1f
        !            21: 
        !            22:        /* Yes; try changing one and see if they're still the same.  */
        !            23:        movw    %ax,%dx
        !            24:        notw    %ax
        !            25:        movw    %ax,%fs:0
        !            26:        cmpw    %gs:16,%ax
        !            27:        movw    %dx,%fs:0
        !            28:        jnz     1f
        !            29: 
        !            30:        xorl    %eax,%eax
        !            31:        ret
        !            32: 1:
        !            33:        movl    $1,%eax
        !            34:        ret
        !            35: 

unix.superglobalmegacorp.com

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