diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2002-12-20 02:29:00 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2002-12-20 02:29:00 +0000 |
commit | d693ad844979b8f5596dde99a0cbec070af73683 (patch) | |
tree | 1b60e394a1807abc3c92bf9b0cbb88b3fdb157c4 /newlib/libc/sys/go32/screen.S | |
parent | 3ace1da676318a591ee314b784f37661e52cfb75 (diff) | |
download | cygnal-d693ad844979b8f5596dde99a0cbec070af73683.tar.gz cygnal-d693ad844979b8f5596dde99a0cbec070af73683.tar.bz2 cygnal-d693ad844979b8f5596dde99a0cbec070af73683.zip |
2002-12-19 Jeff Johnston <jjohnstn@redhat.com>
* configure.host: Remove references to go32.
* libc/sys/go32/*: Removed.
Diffstat (limited to 'newlib/libc/sys/go32/screen.S')
-rw-r--r-- | newlib/libc/sys/go32/screen.S | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/newlib/libc/sys/go32/screen.S b/newlib/libc/sys/go32/screen.S deleted file mode 100644 index 0d4b1732d..000000000 --- a/newlib/libc/sys/go32/screen.S +++ /dev/null @@ -1,256 +0,0 @@ -/* This is file SCREEN.S */ -/* -** Copyright (C) 1993 DJ Delorie -** -** This file is distributed under the terms listed in the document -** "copying.dj". -** A copy of "copying.dj" should accompany this file; if not, a copy -** should be available from where this file was obtained. This file -** may not be distributed without a verbatim copy of "copying.dj". -** -** This file is distributed WITHOUT ANY WARRANTY; without even the implied -** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -** -** Modified by J. Alan Eldridge, Liberty Brokerage, 77 Water St, NYC 10005 -** -** added global char ScreenAttrib -- this is the attribute -** used by ScreenClear(): it defaults to 0x07 so as not to -** break existing code. -** -** Modified by C. Sandmann (sandmann@clio.rice.edu) for DPMI support -** Combined SCREEN2.S and SCREEN.C into SCREEN.S -*/ - - .data - - .globl _ScreenAttrib -_ScreenAttrib: - .byte 0x07 - - .text - - .align 2 - .globl _ScreenSetCursor - /* row, col */ -_ScreenSetCursor: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - pushl %edi - movb $0x02,%ah - movb $0,%bh - movb 8(%ebp),%dh - movb 12(%ebp),%dl - int $0x10 - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - - .align 2 - .globl _ScreenGetCursor - /* &row, &col */ -_ScreenGetCursor: - pushl %ebp - movl %esp,%ebp - pushl %ebx - pushl %esi - pushl %edi - movb $0x03,%ah - movb $0,%bh - pushl %ebp - int $0x10 - popl %ebp - movl 8(%ebp),%esi - movzbl %dh,%eax - movl %eax,(%esi) - movl 12(%ebp),%esi - movzbl %dl,%eax - movl %eax,(%esi) - popl %edi - popl %esi - popl %ebx - popl %ebp - ret - - .align 2 - .globl _ScreenClear -_ScreenClear: - pushl %edi - call _ScreenCols - movl %eax,%ecx - call _ScreenRows - /* ECX is total words to store */ - imull %eax,%ecx - movl _ScreenPrimary,%eax - call dosmemsetup - movl %eax,%edi - push %es - push %gs - pop %es - movb $0x20,%al - movb _ScreenAttrib,%ah - rep - stosw - pop %es - popl %edi - ret - - .align 2 - .globl _ScreenRows -_ScreenRows: - movl $0x484,%eax - call dosmemsetup - movzbl %gs:(%eax),%eax - incl %eax - ret - - .align 2 - .globl _ScreenCols -_ScreenCols: - movl $0x44a,%eax - call dosmemsetup - movzwl %gs:(%eax),%eax - ret - - .align 2 - .globl _ScreenMode -_ScreenMode: - movl $0x449,%eax - call dosmemsetup - movzbl %gs:(%eax),%eax - ret - - .align 2 - .globl _ScreenPutChar -_ScreenPutChar: - /* int ch, int attr, unsigned x, unsigned y */ -/* - if ( (x >= ScreenCols()) || (y >= ScreenRows())) return; - ch &= 0xff; - attr = (attr & 0xff) << 8; - *(unsigned short *)(ScreenPrimary+x+y*ScreenCols()) = ch | attr; -*/ - call _ScreenRows - cmpl %eax,16(%esp) - jae L1 - call _ScreenCols - cmpl %eax,12(%esp) - jae L1 - /* Out of range */ - movl %eax,%edx - imull 16(%esp),%edx - addl 12(%esp),%edx - /* EDX = x + y*ScreenCols */ - - movb 4(%esp),%cl - movb 8(%esp),%ch - - movl _ScreenPrimary,%eax - call dosmemsetup - movw %cx,%gs:(%eax,%edx,2) -L1: - ret - -/* A quick way to update the screen from a logical video buffer, used - primarily for DPMI full screen management */ - .align 2 - .globl _ScreenUpdate - /* (void *)screenbuf */ -_ScreenUpdate: - call _ScreenRows - movl %eax,%ecx - call _ScreenCols - imull %eax,%ecx - sarl $1,%ecx - /* Number of long words in screen */ - - movl _ScreenPrimary,%eax - call dosmemsetup - movl 4(%esp),%edx - /* screenbuf */ - - pushl %esi - pushl %edi - movl %eax,%edi - movl %edx,%esi - push %es - push %gs - pop %es - rep - movsl - /* move ECX bytes to Real area */ - pop %es - popl %edi - popl %esi - ret - -/* A quick way to update a screen line from a logical video buffer, used - primarily for DPMI full screen management */ - .align 2 - .globl _ScreenUpdateLine - /* (void *)screenline, int row */ -_ScreenUpdateLine: - call _ScreenCols - movl %eax,%ecx - sarl $1,%ecx - /* Number of long words in screen line */ - shll $1,%eax - imull 8(%esp),%eax - addl _ScreenPrimary,%eax - call dosmemsetup - movl 4(%esp),%edx - /* screenbuf */ - - pushl %esi - pushl %edi - movl %eax,%edi - movl %edx,%esi - push %es - push %gs - pop %es - rep - movsl - /* move ECX bytes to Real area */ - pop %es - popl %edi - popl %esi - ret - - -/* A quick way to update the screen from a logical video buffer, used - primarily for DPMI full screen management */ - .align 2 - .globl _ScreenRetrieve - /* (void *)screenbuf */ -_ScreenRetrieve: - call _ScreenRows - movl %eax,%ecx - call _ScreenCols - imull %eax,%ecx - sarl $1,%ecx - /* Number of long words in screen */ - - movl _ScreenPrimary,%eax - call dosmemsetup - movl 4(%esp),%edx - /* screenbuf */ - - pushl %esi - pushl %edi - movl %eax,%esi - movl %edx,%edi - push %ds - push %gs - pop %ds - rep - movsl - /* move ECX bytes to Real area */ - pop %ds - popl %edi - popl %esi - ret - - |