Annotation of coherent/b/kernel/ldrv/sfmem.s, revision 1.1

1.1     ! root        1: / $Header: /kernel/kersrc/ldrv/RCS/sfmem.s,v 1.1 92/07/17 15:28:07 bin Exp Locker: bin $
        !             2: /
        !             3: /      The  information  contained herein  is a trade secret  of INETCO
        !             4: /      Systems, and is confidential information.   It is provided under
        !             5: /      a license agreement,  and may be copied or disclosed  only under
        !             6: /      the terms of that agreement.   Any reproduction or disclosure of
        !             7: /      this  material  without  the express  written  authorization  of
        !             8: /      INETCO Systems or persuant to the license agreement is unlawful.
        !             9: /
        !            10: /      Copyright (c) 1986
        !            11: /      An unpublished work by INETCO Systems, Ltd.
        !            12: /      All rights reserved.
        !            13: /
        !            14: / $Log:        sfmem.s,v $
        !            15: / Revision 1.1  92/07/17  15:28:07  bin
        !            16: / Initial revision
        !            17: /
        !            18: / Revision 1.1 88/03/24  16:31:08      src
        !            19: / Initial revision
        !            20: / 
        !            21: /
        !            22: ////////
        !            23: 
        !            24: ////////
        !            25: /
        !            26: / void
        !            27: / sfmem( fp, m, n )    -- set far memory
        !            28: / char far * fp;
        !            29: / char * m;
        !            30: / int n;
        !            31: /
        !            32: /      Input:  fp = far pointer [32 bit selector:offset] to destination
        !            33: /              m  = source
        !            34: /              n  = number of bytes to transfer.
        !            35: /
        !            36: /      Action: Transfer 'n' bytes from offset 'm' in the current data space
        !            37: /              to far address 'fp'.
        !            38: /
        !            39: /      Return: None.
        !            40: /
        !            41: ////////
        !            42: 
        !            43:        .globl  sfmem_
        !            44: 
        !            45: sfmem_:        push    si              / void
        !            46:        push    di              / sfmem( fp, m, n )
        !            47:        push    bp              /
        !            48:        mov     bp, sp          / register char * fp;           /* ES:DI */
        !            49:        push    es              / register char * m;            /* SI */
        !            50:        les     di, 8(bp)       / register int n;               /* CX */
        !            51:        mov     si, 12(bp)      /
        !            52:        mov     cx, 14(bp)      / {
        !            53:                                /
        !            54:        cld                     /
        !            55:        clc                     /       for ( ; n != 0; --n )
        !            56:        rcr     cx, $1          /
        !            57:        rep                     /               *fp++ = *m++;
        !            58:        movsw                   /
        !            59:        rcl     cx, $1          /
        !            60:        rep                     /
        !            61:        movsb                   /
        !            62:                                /
        !            63:        pop     es              / }
        !            64:        pop     bp
        !            65:        pop     di
        !            66:        pop     si
        !            67:        ret

unix.superglobalmegacorp.com

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