|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1991,1990,1989 Carnegie Mellon University ! 4: * All Rights Reserved. ! 5: * ! 6: * Permission to use, copy, modify and distribute this software and its ! 7: * documentation is hereby granted, provided that both the copyright ! 8: * notice and this permission notice appear in all copies of the ! 9: * software, derivative works or modified versions, and any portions ! 10: * thereof, and that both notices appear in supporting documentation. ! 11: * ! 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 15: * ! 16: * Carnegie Mellon requests users of this software to return to ! 17: * ! 18: * Software Distribution Coordinator or [email protected] ! 19: * School of Computer Science ! 20: * Carnegie Mellon University ! 21: * Pittsburgh PA 15213-3890 ! 22: * ! 23: * any improvements or extensions that they make and grant Carnegie Mellon ! 24: * the rights to redistribute these changes. ! 25: */ ! 26: /* ! 27: * Some inline code to speed up major block copies to and from the ! 28: * screen buffer. ! 29: * ! 30: * Copyright Ing. C. Olivetti & C. S.p.A. 1988, 1989. ! 31: * All rights reserved. ! 32: * ! 33: * orc!eugene 28 Oct 1988 ! 34: * ! 35: */ ! 36: /* ! 37: Copyright 1988, 1989 by Olivetti Advanced Technology Center, Inc., ! 38: Cupertino, California. ! 39: ! 40: All Rights Reserved ! 41: ! 42: Permission to use, copy, modify, and distribute this software and ! 43: its documentation for any purpose and without fee is hereby ! 44: granted, provided that the above copyright notice appears in all ! 45: copies and that both the copyright notice and this permission notice ! 46: appear in supporting documentation, and that the name of Olivetti ! 47: not be used in advertising or publicity pertaining to distribution ! 48: of the software without specific, written prior permission. ! 49: ! 50: OLIVETTI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE ! 51: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, ! 52: IN NO EVENT SHALL OLIVETTI BE LIABLE FOR ANY SPECIAL, INDIRECT, OR ! 53: CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ! 54: LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, ! 55: NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUR OF OR IN CONNECTION ! 56: WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ! 57: */ ! 58: ! 59: /* $ Header: $ */ ! 60: ! 61: ! 62: #include <mach/machine/asm.h> ! 63: ! 64: /* ! 65: * Function: kd_slmwd() ! 66: * ! 67: * This function "slams" a word (char/attr) into the screen memory using ! 68: * a block fill operation on the 386. ! 69: * ! 70: */ ! 71: ! 72: #define start 0x08(%ebp) ! 73: #define count 0x0c(%ebp) ! 74: #define value 0x10(%ebp) ! 75: ! 76: ENTRY(kd_slmwd) ! 77: pushl %ebp ! 78: movl %esp, %ebp ! 79: pushl %edi ! 80: ! 81: movl start, %edi ! 82: movl count, %ecx ! 83: movw value, %ax ! 84: cld ! 85: rep ! 86: stosw ! 87: ! 88: popl %edi ! 89: leave ! 90: ret ! 91: #undef start ! 92: #undef count ! 93: #undef value ! 94: ! 95: /* ! 96: * "slam up" ! 97: */ ! 98: ! 99: #define from 0x08(%ebp) ! 100: #define to 0x0c(%ebp) ! 101: #define count 0x10(%ebp) ! 102: ENTRY(kd_slmscu) ! 103: pushl %ebp ! 104: movl %esp, %ebp ! 105: pushl %esi ! 106: pushl %edi ! 107: ! 108: movl from, %esi ! 109: movl to, %edi ! 110: movl count, %ecx ! 111: cmpl %edi, %esi ! 112: cld ! 113: rep ! 114: movsw ! 115: ! 116: popl %edi ! 117: popl %esi ! 118: leave ! 119: ret ! 120: ! 121: /* ! 122: * "slam down" ! 123: */ ! 124: ENTRY(kd_slmscd) ! 125: pushl %ebp ! 126: movl %esp, %ebp ! 127: pushl %esi ! 128: pushl %edi ! 129: ! 130: movl from, %esi ! 131: movl to, %edi ! 132: movl count, %ecx ! 133: cmpl %edi, %esi ! 134: std ! 135: rep ! 136: movsw ! 137: cld ! 138: ! 139: popl %edi ! 140: popl %esi ! 141: leave ! 142: ret ! 143: #undef from ! 144: #undef to ! 145: #undef count
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.