Annotation of coherent/b/kernel/ldrv/sfmem.s, revision 1.1.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.