pcscrnio.h

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 490 行 · 第 1/2 页

H
490
字号
/****************************************************************************
*
*                            Open Watcom Project
*
*    Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
*
*  ========================================================================
*
*    This file contains Original Code and/or Modifications of Original
*    Code as defined in and that are subject to the Sybase Open Watcom
*    Public License version 1.0 (the 'License'). You may not use this file
*    except in compliance with the License. BY USING THIS FILE YOU AGREE TO
*    ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
*    provided with the Original Code and Modifications, and is also
*    available at www.sybase.com/developer/opensource.
*
*    The Original Code and all software distributed under the License are
*    distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
*    EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
*    ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
*    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
*    NON-INFRINGEMENT. Please see the License for the specific language
*    governing rights and limitations under the License.
*
*  ========================================================================
*
* Description:  WHEN YOU FIGURE OUT WHAT THIS FILE DOES, PLEASE
*               DESCRIBE IT HERE!
*
****************************************************************************/


#pragma aux BIOSSetPage =                                       \
0X55            /* push   bp                            */      \
0XB4 0X05       /* mov    ah,5                          */      \
0XCD 0X10       /* int    10                            */      \
0X5D            /* pop    bp                            */      \
        parm caller [ ax ];


#pragma aux BIOSGetPage =                                       \
0X55            /* push   bp                            */      \
0XB4 0X0F       /* mov    ah,f                          */      \
0XCD 0X10       /* int    10                            */      \
0X8A 0XC7       /* mov    al,bh                         */      \
0XB4 0X00       /* mov    ah,0                          */      \
0X5D            /* pop    bp                            */      \
        parm caller [ ax ]                                      \
        modify [ bx ];


#pragma aux BIOSGetMode =                                       \
0X55            /* push   bp                            */      \
0XB4 0X0F       /* mov    ah,f                          */      \
0XCD 0X10       /* int    10                            */      \
0X5D            /* pop    bp                            */      \
        parm caller [ ax ]                                      \
        modify [ bx ];


#pragma aux BIOSSetMode =                                       \
0X55            /* push   bp                            */      \
0XB4 0X00       /* mov    ah,0                          */      \
0XCD 0X10       /* int    10                            */      \
0X5D            /* pop    bp                            */      \
        parm caller [ ax ];


#pragma aux BIOSGetCurPos =                                     \
0X55            /* push   bp                            */      \
0XB4 0X03       /* mov    ah,3                          */      \
0XCD 0X10       /* int    10                            */      \
0X5D            /* pop    bp                            */      \
        parm caller [ bx ]                                      \
        value [ dx ]                                            \
        modify [ bx cx dx ];


#pragma aux BIOSSetCurPos =                                     \
0X55            /* push   bp                            */      \
0XB4 0X02       /* mov    ah,2                          */      \
0XCD 0X10       /* int    10                            */      \
0X5D            /* pop    bp                            */      \
        parm caller [ dx ] [ bx ]                               \
        modify [ bx cx dx ];


#pragma aux BIOSGetCurTyp =                                     \
0X55            /* push   bp                            */      \
0XB4 0X03       /* mov    ah,3                          */      \
0XCD 0X10       /* int    10                            */      \
0X5D            /* pop    bp                            */      \
        parm caller [ bx ]                                      \
        value [ cx ]                                            \
        modify [ bx cx dx ];


#pragma aux BIOSSetCurTyp =                                     \
0X55            /* push   bp                            */      \
0XB4 0X01       /* mov    ah,1                          */      \
0XCD 0X10       /* int    10                            */      \
0X5D            /* pop    bp                            */      \
        parm caller [ cx ]                                      \
        modify [ cx ];


#pragma aux BIOSGetAttr =                                       \
0X55            /* push   bp                            */      \
0XB4 0X08       /* mov    ah,8                          */      \
0XCD 0X10       /* int    10                            */      \
0X5D            /* pop    bp                            */      \
        parm  [ bh ]                                            \
        value [ ah ];


#pragma aux BIOSSetAttr =                                       \
0X55            /* push   bp                            */      \
0X29 0XC9       /* sub    cx,cx                         */      \
0xBA 0X50 0X32  /* mov    dx,$3250                      */      \
0XB8 0X00 0X06  /* mov    ax,$600                       */      \
0XCD 0X10       /* int    10                            */      \
0X5D            /* pop    bp                            */      \
        parm caller [ bh ];


#pragma aux VIDGetRow =                                         \
0XB0 0X0F       /* mov    al,f                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0XEC            /* in     al,dx                         */      \
        parm caller [ dx ];


#pragma aux VIDSetRow =                                         \
0X88 0XC4       /* mov    ah,al                         */      \
0XB0 0X0F       /* mov    al,f                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0X8A 0XC4       /* mov    al,ah                         */      \
0XEE            /* out    dx,al                         */      \
        parm caller [ dx ] [ ax ];


#pragma aux VIDSetPos =                                         \
0XB0 0X0F       /* mov    al,f                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0X88 0XD8       /* mov    al,bl                         */      \
0XEE            /* out    dx,al                         */      \
0X4A            /* dec    dx                            */      \
0XB0 0X0E       /* mov    al,e                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0X8A 0XC7       /* mov    al,bh                         */      \
0XEE            /* out    dx,al                         */      \
        parm caller [ dx ] [ bx ];


#pragma aux VIDGetPos =                                         \
0XB0 0X0F       /* mov    al,f                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0XEC            /* in     al,dx                         */      \
0X88 0XC4       /* mov    ah,al                         */      \
0X4A            /* dec    dx                            */      \
0XB0 0X0E       /* mov    al,e                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0XEC            /* in     al,dx                         */      \
0X86 0XE0       /* xchg   ah,al                         */      \
        parm caller [ dx ] value [ ax ];


#pragma aux VIDGetCol =                                         \
0XB0 0X0E       /* mov    al,e                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0XEC            /* in     al,dx                         */      \
        parm caller [ dx ];


#pragma aux VIDWait =                                           \
0XEB 0X00       /* jmp    ip                            */      \
        parm caller;


#pragma aux VIDSetCurTyp =                                      \
0X50            /* push   ax                            */      \
0XB0 0X0A       /* mov    al,a                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0X8A 0XC4       /* mov    al,ah                         */      \
0XEE            /* out    dx,al                         */      \
0X4A            /* dec dx                               */      \
0XB0 0X0B       /* mov    al,b                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0X58            /* pop    ax                            */      \
0XEE            /* out    dx,al                         */      \
        parm caller [ dx ] [ ax ];


#pragma aux VIDGetCurTyp =                                      \
0XB0 0X0B       /* mov    al,b                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0XEC            /* in     al,dx                         */      \
0X88 0XC4       /* mov    ah,al                         */      \
0X4A            /* dec    dx                            */      \
0XB0 0X0A       /* mov    al,a                          */      \
0XEE            /* out    dx,al                         */      \
0X42            /* inc    dx                            */      \
0XEC            /* in     al,dx                         */      \
0X86 0XE0       /* xchg   ah,al                         */      \
        parm caller [ dx ] value [ ax ];


#pragma aux BIOSEGAInfo =                                       \
0X55            /* push   bp                            */      \
0XB4 0X12       /* mov    ah,12                         */      \
0XB3 0X10       /* mov    bl,10                         */      \
0XB7 0XFF       /* mov    bh,ff                         */      \
0XCD 0X10       /* int    10                            */      \
0X89 0XD8       /* mov    ax,bx                         */      \
0X89 0XCA       /* mov    dx,cx                         */      \
0X5D            /* pop    bp                            */      \
        parm modify [ bx cx ];


#pragma aux BIOSGetRows =                                       \
0X06            /* push   es                            */      \
0X55            /* push   bp                            */      \
0XB8 0X30 0X11  /* mov    ax,1130                       */      \
0XB7 0X00       /* mov    bh,0                          */      \
0XCD 0X10       /* int    10                            */      \
0XFE 0XC2       /* inc    dl                            */      \
0X5D            /* pop    bp                            */      \
0X07            /* pop    es                            */      \
        parm value [ dl ] modify [ ax bx cx ];


#pragma aux BIOSGetPoints =                                     \
0X06            /* push   es                            */      \
0X55            /* push   bp                            */      \
0XB8 0X30 0X11  /* mov    ax,1130                       */      \

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?