Annotation of coherent/b/lib/libc/gen/i8086/inout.m, revision 1.1

1.1     ! root        1: ////////
        !             2: / MSDOS MWC86 runtime.
        !             3: / Read and write from port.
        !             4: ////////
        !             5: 
        !             6: #include <larges.h>
        !             7: 
        !             8: ////////
        !             9: / int
        !            10: / in(port);
        !            11: / int port;
        !            12: /
        !            13: / Read a word from the specified port.
        !            14: ////////
        !            15: 
        !            16: port   =       RASIZE
        !            17: 
        !            18:        .globl  in_
        !            19: 
        !            20: in_:
        !            21:        mov     bx, sp
        !            22:        mov     dx, Pss port(bx)        / dx = port address
        !            23:        in      ax, dx                  / Read the port.
        !            24:        Gret
        !            25: 
        !            26: ////////
        !            27: / int
        !            28: / inb(port);
        !            29: / int port;
        !            30: /
        !            31: / Read a byte from the specified port.
        !            32: ////////
        !            33: 
        !            34: port   =       RASIZE
        !            35: 
        !            36:        .globl  inb_
        !            37: 
        !            38: inb_:
        !            39:        mov     bx, sp
        !            40:        mov     dx, Pss port(bx)        / dx = port address
        !            41:        inb     al, dx                  / Read from the port and
        !            42:        subb    ah, ah                  / convert to integer.
        !            43:        Gret
        !            44: 
        !            45: ////////
        !            46: / int
        !            47: / out(port, data);
        !            48: / int port;
        !            49: / int data;
        !            50: /
        !            51: / Write the word "data" to port "port".
        !            52: / Return "data".
        !            53: ////////
        !            54: 
        !            55: port   =       RASIZE
        !            56: data   =       port+2
        !            57: 
        !            58:        .globl  out_
        !            59: out_:
        !            60:        mov     bx, sp
        !            61:        mov     dx, Pss port(bx)        / dx = port address
        !            62:        mov     ax, Pss data(bx)        / ax = data
        !            63:        out     dx, ax                  / Send data to the port.
        !            64:        Gret
        !            65: 
        !            66: ////////
        !            67: / int
        !            68: / outb(port, data);
        !            69: / int port;
        !            70: / int data;
        !            71: /
        !            72: / Write the low byte of "data" to port "port".
        !            73: / Return "data".
        !            74: ////////
        !            75: 
        !            76: port   =       RASIZE
        !            77: data   =       port+2
        !            78: 
        !            79:        .globl  outb_
        !            80: 
        !            81: outb_:
        !            82:        mov     bx, sp
        !            83:        mov     dx, Pss port(bx)        / dx = port address
        !            84:        movb    al, Pss data(bx)        / al = data
        !            85:        subb    ah, ah                  / Convert to integer.
        !            86:        outb    dx, al                  / Send data to the port.
        !            87:        Gret
        !            88: 
        !            89: / end of inout.m

unix.superglobalmegacorp.com

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