|
|
1.1 root 1: / $Header: /kernel/kersrc/ldrv/RCS/ffmem.s,v 1.1 92/07/17 15:27:51 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: ffmem.s,v $
15: / Revision 1.1 92/07/17 15:27:51 bin
16: / Initial revision
17: /
18: / Revision 1.1 88/03/24 16:30:31 src
19: / Initial revision
20: /
21: /
22: ////////
23:
24: ////////
25: /
26: / void
27: / ffmem( fp, m, n ) -- fetch far memory
28: / faddr_t fp;
29: / char * m;
30: / int n;
31: /
32: / Input: fp = far pointer [32 bit selector:offset] to source
33: / m = destination
34: / n = number of bytes to transfer.
35: /
36: / Action: Transfer 'n' bytes from far address 'fp' to offset 'm'
37: / in the current data space.
38: /
39: / Return: None.
40: /
41: ////////
42:
43: .globl ffmem_
44:
45: ffmem_: push si / void
46: push di / ffmem( fp, m, n )
47: push bp /
48: mov bp, sp / register faddr_t fp; /* DS:SI */
49: push ds / register char * m; /* DI */
50: lds si, 8(bp) / register int n; /* CX */
51: mov di, 12(bp) /
52: mov cx, 14(bp) / {
53: /
54: cld /
55: clc / for ( ; n != 0; --n )
56: rcr cx, $1 /
57: rep / *m++ = *fp++;
58: movsw /
59: rcl cx, $1 /
60: rep /
61: movsb /
62: /
63: pop ds / }
64: pop bp
65: pop di
66: pop si
67: ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.