mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 10:49:31 +02:00

+ darwin/ppc64 support + val/str/read(ln)/write(ln) support for enums + simple cse at the node tree level + if-node simplify support + simple ssa support for memory locations + support for optional overflow/rangecheck boolean parameters for operators * a lot of unification of the ppc32/ppc64 code generators ........ r6380 | jonas | 2007-02-08 21:25:36 +0100 (Thu, 08 Feb 2007) | 4 lines Changed paths: M /branches/fpc_2_3/compiler/ncgld.pas M /branches/fpc_2_3/compiler/tgobj.pas A /branches/fpc_2_3/tests/webtbs/tw8283.pp + support for replacing the memory location of a temp (including local variables) with that of another temp to avoid unnecessary copies (mantis #8283) ........ r6381 | jonas | 2007-02-08 22:53:36 +0100 (Thu, 08 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/nflw.pas A /branches/fpc_2_3/tests/webtbs/tw8282.pp + simplify support for ifn (based on patch by Florian) ........ r6386 | peter | 2007-02-09 13:48:53 +0100 (Fri, 09 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/htypechk.pas M /branches/fpc_2_3/compiler/ncal.pas M /branches/fpc_2_3/compiler/symconst.pas * overflow,rangecheck optional parameters for operators, patch from 8281 ........ r6391 | jonas | 2007-02-09 23:52:13 +0100 (Fri, 09 Feb 2007) | 4 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc/agppcgas.pas M /branches/fpc_2_3/compiler/powerpc64/cpunode.pas D /branches/fpc_2_3/compiler/powerpc64/nppcinl.pas M /branches/fpc_2_3/compiler/ppcgen/ngppcinl.pas * merged fsqrt(s) support to common powerpc unit, activate for ppc32 if -Op970 is used (still default for ppc64, since default cpu there is already ppc970) ........ r6394 | jonas | 2007-02-10 18:58:47 +0100 (Sat, 10 Feb 2007) | 4 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas * adapted a_jmp_name for darwin/ppc64 * merged g_intf_wrapper for ppc32 and ppc64, and added darwin/ppc64 support to it ........ r6396 | jonas | 2007-02-10 20:16:06 +0100 (Sat, 10 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/cgobj.pas + darwin/ppc64 support for g_indirect_sym_load ........ r6397 | jonas | 2007-02-10 20:22:49 +0100 (Sat, 10 Feb 2007) | 4 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas + darwin/ppc64 support to ppc64's fixref * moved ppc32 a_load_store to cgppc and use it for darwin/ppc64 as well (its relocatable symbols are only 32 bits large) ........ r6399 | jonas | 2007-02-10 22:02:37 +0100 (Sat, 10 Feb 2007) | 4 lines Changed paths: M /branches/fpc_2_3/compiler/systems.pas + system_x86_64_darwin identifier + set default source system for system_x86_64_darwin and system_powerpc64_darwin ........ r6404 | jonas | 2007-02-10 23:01:23 +0100 (Sat, 10 Feb 2007) | 5 lines Changed paths: M /branches/fpc_2_3/compiler/aasmdata.pas M /branches/fpc_2_3/compiler/aggas.pas M /branches/fpc_2_3/compiler/cgobj.pas M /branches/fpc_2_3/compiler/cgutils.pas M /branches/fpc_2_3/compiler/cresstr.pas M /branches/fpc_2_3/compiler/dbgdwarf.pas M /branches/fpc_2_3/compiler/dbgstabs.pas M /branches/fpc_2_3/compiler/ncgutil.pas M /branches/fpc_2_3/compiler/ogelf.pas M /branches/fpc_2_3/compiler/pdecvar.pas M /branches/fpc_2_3/compiler/pmodules.pas M /branches/fpc_2_3/compiler/symdef.pas M /branches/fpc_2_3/compiler/systems.pas + system_x86_64_darwin identifier + systems_darwin set which collects all darwin variants + added support for darwin/ppc64 and darwin/x86_64 where needed in the generic code ........ r6406 | jonas | 2007-02-10 23:24:32 +0100 (Sat, 10 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/cgobj.pas * ifdef cpu64 -> ifdef cpu64bit ........ r6409 | jonas | 2007-02-11 00:34:04 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/pdecvar.pas * fixed ppc64 compilation ........ r6413 | jonas | 2007-02-11 12:41:27 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/rtl/bsd/system.pp M /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc M /branches/fpc_2_3/rtl/darwin/signal.inc + darwin/ppc64 support for signal routines ........ r6415 | jonas | 2007-02-11 13:54:53 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/systems/i_linux.pas * set abi of linux/ppc64 to abi_powerpc_sysv ........ r6416 | jonas | 2007-02-11 13:55:51 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc64/cputarg.pas M /branches/fpc_2_3/compiler/systems/i_bsd.pas M /branches/fpc_2_3/compiler/systems/t_bsd.pas + darwin/ppc64 source and target information ........ r6418 | jonas | 2007-02-11 14:19:55 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/rtl/powerpc64/math.inc * darwin/ppc64 compilation fixes ........ r6419 | jonas | 2007-02-11 14:22:22 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas * darwin/ppc64 needs the 32 bit version of a_loadaddr_ref_reg ........ r6420 | jonas | 2007-02-11 14:22:55 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/utils/fpcm/fpcmmain.pp + darwin/ppc64 support ........ r6426 | jonas | 2007-02-11 16:13:19 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc64/rappcgas.pas * fixed refaddr parsing for darwin/ppc64 ........ r6427 | jonas | 2007-02-11 16:14:21 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc/agppcgas.pas M /branches/fpc_2_3/compiler/powerpc64/agppcgas.pas A /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas * moved ppc32/ppc64 assembler writer helpers to a common unit ........ r6430 | jonas | 2007-02-11 17:53:23 +0100 (Sun, 11 Feb 2007) | 4 lines Changed paths: D /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc D /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc A /branches/fpc_2_3/rtl/darwin/powerpc64 A /branches/fpc_2_3/rtl/darwin/powerpc64/sig_cpu.inc A /branches/fpc_2_3/rtl/darwin/powerpc64/sighnd.inc A /branches/fpc_2_3/rtl/darwin/ppcgen A /branches/fpc_2_3/rtl/darwin/ppcgen/ppchnd.inc (from /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc:6422) A /branches/fpc_2_3/rtl/darwin/ppcgen/sig_ppc.inc (from /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc:6422) M /branches/fpc_2_3/rtl/darwin/signal.inc * fixed ppc/ppc64 signal include handling (both real files are in ppcgen, dummies in powerpc and powerpc64 which include those files) (1st step because pre-commit filter can't handle replaced files) ........ r6431 | jonas | 2007-02-11 17:53:47 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: A /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc A /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc * second step of signal include patch ........ r6432 | jonas | 2007-02-11 19:00:12 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/systems/t_bsd.pas * changed darwin checks to use systems_darwin constant ........ r6433 | jonas | 2007-02-11 19:05:38 +0100 (Sun, 11 Feb 2007) | 3 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas * handle non-multiple-of-4 offsets with 64 bit loads/stores for darwin/ppc64 ........ r6434 | jonas | 2007-02-11 19:05:56 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: D /branches/fpc_2_3/compiler/powerpc/agppcgas.pas D /branches/fpc_2_3/compiler/powerpc64/agppcgas.pas A /branches/fpc_2_3/compiler/ppcgen/agppcgas.pas (from /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas:6427) D /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas * completely merged ppc assembler writers ........ r6435 | jonas | 2007-02-11 19:06:40 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/rtl/darwin/console.pp M /branches/fpc_2_3/rtl/darwin/termiosproc.inc * fixed 64 bit compilation ........ r6436 | jonas | 2007-02-11 19:09:28 +0100 (Sun, 11 Feb 2007) | 3 lines Changed paths: M /branches/fpc_2_3/packages/extra/Makefile.fpc * universal interfaces aren't 64 bit ready yet -> only compile for darwin/ppc and darwin/i386 ........ r6438 | jonas | 2007-02-11 19:22:34 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64 A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/ctest.o A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext3.o A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext4.o A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext5.o + compiled for darwin/ppc64 ........ r6439 | jonas | 2007-02-11 20:24:42 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas * patch from Thomas to fix linux/ppc64 ........ r6440 | jonas | 2007-02-11 20:25:15 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/systems.pas * fixed setting source OS for darwin/ppc64 ........ r6444 | florian | 2007-02-11 22:24:20 +0100 (Sun, 11 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/globtype.pas M /branches/fpc_2_3/compiler/nopt.pas M /branches/fpc_2_3/compiler/nutils.pas M /branches/fpc_2_3/compiler/optcse.pas M /branches/fpc_2_3/compiler/psub.pas + first node cse implementation ........ r6445 | jonas | 2007-02-11 22:30:07 +0100 (Sun, 11 Feb 2007) | 6 lines Changed paths: M /branches/fpc_2_3/compiler/cresstr.pas * hack to work around strange darwin/ppc64 linker bug: it seems to have problems if you put a global symbol at the end of a section without any data following (at least in case of the resource strings section) -> add dummy byte at the end for darwin/ppc64 (otherwise it messes up the address of the first symbol stub entry) ........ r6449 | jonas | 2007-02-11 23:23:44 +0100 (Sun, 11 Feb 2007) | 4 lines Changed paths: M /branches/fpc_2_3/compiler/systems/i_bsd.pas * cpupowerpc is defined for both ppc32 and ppc64 -> changed to cpupowerpc32 to avoid defining source wrongly on ppc64 ........ r6450 | jonas | 2007-02-11 23:26:34 +0100 (Sun, 11 Feb 2007) | 3 lines Changed paths: M /branches/fpc_2_3/compiler/ppcgen/ngppcset.pas * disable jump tables for darwin/ppc64 for now, don't work yet for some reason ........ r6451 | florian | 2007-02-11 23:54:37 +0100 (Sun, 11 Feb 2007) | 3 lines Changed paths: M /branches/fpc_2_3/compiler/ncal.pas M /branches/fpc_2_3/compiler/nutils.pas M /branches/fpc_2_3/compiler/optcse.pas * improved cse * better complexity calculation for subscript nodes with classes or interfaces ........ r6456 | jonas | 2007-02-12 19:33:22 +0100 (Mon, 12 Feb 2007) | 4 lines Changed paths: M /branches/fpc_2_3/compiler/nutils.pas + support for notn,shln,shrn,equaln,unequaln,gtn,gten,ltn,lten in node_cplexity() * mark muln,divn,modn as more complex ........ r6469 | jonas | 2007-02-13 15:56:01 +0100 (Tue, 13 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/optcse.pas * fixed when cross-compiling a 64 bit compiler from a 32 bit platform ........ r6471 | jonas | 2007-02-13 16:17:16 +0100 (Tue, 13 Feb 2007) | 3 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc64/cputarg.pas * include stabs support (can work on darwin/ppc64, but doesn't work yet) ........ r6473 | jonas | 2007-02-13 16:45:48 +0100 (Tue, 13 Feb 2007) | 3 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas M /branches/fpc_2_3/compiler/powerpc64/cpupara.pas * R2 is a volatile and usable register under darwin/ppc64 * R13 is a reserved non-volatile register under darwin/ppc64 (tls) ........ r6479 | jonas | 2007-02-13 20:40:50 +0100 (Tue, 13 Feb 2007) | 3 lines Changed paths: M /branches/fpc_2_3/compiler/systems/i_bsd.pas * maxCrecordalign seems to have to be 8 rather 4, in spite of what the ABI docs say (although they are contradictory to some extent) ........ r6487 | jonas | 2007-02-14 15:57:40 +0100 (Wed, 14 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/tests/webtbs/tw8153a.pp * fixed for darwin/ppc64 ........ r6488 | jonas | 2007-02-14 15:58:56 +0100 (Wed, 14 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/tests/webtbs/tw7851a.pp * fixed for darwin/ppc64 ........ r6494 | jonas | 2007-02-15 19:36:55 +0100 (Thu, 15 Feb 2007) | 3 lines Changed paths: M /branches/fpc_2_3/compiler/systems/i_bsd.pas * set default debug info for darwin/ppc64 to dwarf2 since it works better than stabs currently ........ r6500 | jonas | 2007-02-15 21:38:16 +0100 (Thu, 15 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/version.pas * updated version to 2.3.0 ........ r6505 | jonas | 2007-02-15 22:39:28 +0100 (Thu, 15 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/version.pas * changed version to 2.3.1 ........ r6511 | jonas | 2007-02-16 15:17:24 +0100 (Fri, 16 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/powerpc64/itcpugas.pas * system_powerpc_darwin -> system_powerpc64_darwin ........ r6546 | daniel | 2007-02-18 15:48:54 +0100 (Sun, 18 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/ncginl.pas M /branches/fpc_2_3/compiler/ncgld.pas M /branches/fpc_2_3/compiler/ncgrtti.pas M /branches/fpc_2_3/compiler/ncnv.pas M /branches/fpc_2_3/compiler/ninl.pas M /branches/fpc_2_3/compiler/nld.pas M /branches/fpc_2_3/compiler/nutils.pas M /branches/fpc_2_3/compiler/pinline.pas M /branches/fpc_2_3/rtl/inc/astrings.inc M /branches/fpc_2_3/rtl/inc/compproc.inc M /branches/fpc_2_3/rtl/inc/sstrings.inc M /branches/fpc_2_3/rtl/inc/text.inc M /branches/fpc_2_3/rtl/inc/wstrings.inc + Val/str/read/write support for enumeration types. ........ r6547 | daniel | 2007-02-18 17:01:20 +0100 (Sun, 18 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/rtl/inc/sstrings.inc * Fix val code that I broke. ........ r6571 | daniel | 2007-02-20 09:27:44 +0100 (Tue, 20 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/rtl/inc/astrings.inc M /branches/fpc_2_3/rtl/inc/sstrings.inc M /branches/fpc_2_3/rtl/inc/text.inc M /branches/fpc_2_3/rtl/inc/wstrings.inc * o2s -> ord2str, s2o -> str2ord ........ r6572 | daniel | 2007-02-20 09:33:30 +0100 (Tue, 20 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/ncgld.pas M /branches/fpc_2_3/compiler/ncgrtti.pas M /branches/fpc_2_3/compiler/ninl.pas M /branches/fpc_2_3/compiler/nld.pas * o2s -> ord2str, s2o -> str2ord ........ r6574 | daniel | 2007-02-20 12:07:58 +0100 (Tue, 20 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/rtl/inc/compproc.inc * o2s -> ord2str, s2o -> str2ord ........ r6578 | daniel | 2007-02-20 22:18:49 +0100 (Tue, 20 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/rtl/inc/text.inc * Change longint to valsint. ........ r6579 | daniel | 2007-02-20 22:29:09 +0100 (Tue, 20 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/ninl.pas * Handle ordinal currency types. ........ r6580 | jonas | 2007-02-20 22:29:11 +0100 (Tue, 20 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/ncgrtti.pas * fixed compilation for cpurequiresproperalignment ........ r6581 | jonas | 2007-02-20 22:30:21 +0100 (Tue, 20 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/ninl.pas * fixed typo ........ r6582 | daniel | 2007-02-20 22:36:19 +0100 (Tue, 20 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/ninl.pas * Set is_real to true. ........ r6590 | jonas | 2007-02-21 20:23:54 +0100 (Wed, 21 Feb 2007) | 2 lines Changed paths: M /branches/fpc_2_3/compiler/systems/i_bsd.pas * set tf_dwarf_only_local_labels for darwin/ppc64 git-svn-id: trunk@6720 -
3476 lines
104 KiB
ObjectPascal
3476 lines
104 KiB
ObjectPascal
{
|
||
This file is part of the Free Pascal run time library.
|
||
(c) 2000 by Marco van de Voort
|
||
member of the Free Pascal development team.
|
||
|
||
See the file COPYING.FPC, included in this distribution,
|
||
for details about the copyright.
|
||
|
||
Header conversions (with FpIoctl macro expansion) for FreeBSD 4.2's
|
||
sys/fbio.h sys/consio.h sys/kbdio.h (together these three form
|
||
machine/console.h) and
|
||
machine/mouse.h
|
||
|
||
Converted to use in a future FreeBSD API to get the IDE running on
|
||
the physical console with mousesupport.
|
||
|
||
As soon as cross unit inlining is ready, all functions should be made
|
||
inline. (so the FpIoctl and the other very small macro's)
|
||
|
||
This program is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY;without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||
}
|
||
|
||
unit console;
|
||
|
||
{$packrecords C}
|
||
|
||
interface
|
||
|
||
{I tried to keep original types as much as possible, only "int" is converted
|
||
to longint because INT is a standard function in TP/FPC}
|
||
|
||
TYPE
|
||
uchar = char;
|
||
uint = dword;
|
||
u_int = uint;
|
||
ushort= word;
|
||
short = integer;
|
||
long = dword; {?}
|
||
size_t= longint; {Dunno sure, but it is 32-bit}
|
||
caddr_t= longint; {idem}
|
||
vm_offset_t=dword; {idem}
|
||
|
||
{----------------------------- sys/fbio.h ----------------------------------}
|
||
|
||
{
|
||
* Copyright (c) 1992, 1993
|
||
* The Regents of the University of California. All rights reserved.
|
||
*
|
||
* This code is derived from software developed by the Computer Systems
|
||
* Engineering group at Lawrence Berkeley Laboratory under DARPA
|
||
* contract BG 91-66 and contributed to Berkeley.
|
||
*
|
||
* Redistribution and use in source and binary forms, with or without
|
||
* modification, are permitted provided that the following conditions
|
||
* are met:
|
||
* 1. Redistributions of source code must retain the above copyright
|
||
* notice, this list of conditions and the following disclaimer.
|
||
* 2. Redistributions in binary form must reproduce the above copyright
|
||
* notice, this list of conditions and the following disclaimer in the
|
||
* documentation and/or other materials provided with the distribution.
|
||
* 3. All advertising materials mentioning features or use of this software
|
||
* must display the following acknowledgement:
|
||
* This product includes software developed by the University of
|
||
* California, Berkeley and its contributors.
|
||
* 4. Neither the name of the University nor the names of its contributors
|
||
* may be used to endorse or promote products derived from this software
|
||
* without specific prior written permission.
|
||
*
|
||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
* SUCH DAMAGE.
|
||
*
|
||
* @(#)fbio.h 8.2 (Berkeley) 10/30/93
|
||
*
|
||
* $FreeBSD: src/sys/sys/fbio.h,v 1.9.2.1 2000/05/05 09:16:16 nyan Exp $
|
||
}
|
||
|
||
{
|
||
* Frame buffer FpIoctls (from Sprite, trimmed to essentials for X11).
|
||
}
|
||
|
||
{
|
||
* Frame buffer type codes.
|
||
}
|
||
|
||
CONST
|
||
|
||
FBTYPE_SUN1BW =0; { multibus mono }
|
||
FBTYPE_SUN1COLOR =1; { multibus color }
|
||
FBTYPE_SUN2BW =2; { memory mono }
|
||
FBTYPE_SUN2COLOR =3; { color w/rasterop chips }
|
||
FBTYPE_SUN2GP =4; { GP1/GP2 }
|
||
FBTYPE_SUN5COLOR =5; { RoadRunner accelerator }
|
||
FBTYPE_SUN3COLOR =6; { memory color }
|
||
FBTYPE_MEMCOLOR =7; { memory 24-bit }
|
||
FBTYPE_SUN4COLOR =8; { memory color w/overlay }
|
||
|
||
FBTYPE_NOTSUN1 =9; { reserved for customer }
|
||
FBTYPE_NOTSUN2 =10; { reserved for customer }
|
||
FBTYPE_NOTSUN3 =11; { reserved for customer }
|
||
|
||
FBTYPE_SUNFAST_COLOR =12; { accelerated 8bit }
|
||
FBTYPE_SUNROP_COLOR =13; { MEMCOLOR with rop h/w }
|
||
FBTYPE_SUNFB_VIDEO =14; { Simple video mixing }
|
||
FBTYPE_RESERVED5 =15; { reserved, do not use }
|
||
FBTYPE_RESERVED4 =16; { reserved, do not use }
|
||
FBTYPE_RESERVED3 =17; { reserved, do not use }
|
||
FBTYPE_RESERVED2 =18; { reserved, do not use }
|
||
FBTYPE_RESERVED1 =19; { reserved, do not use }
|
||
|
||
FBTYPE_MDA =20;
|
||
FBTYPE_HERCULES =21;
|
||
FBTYPE_CGA =22;
|
||
FBTYPE_EGA =23;
|
||
FBTYPE_VGA =24;
|
||
FBTYPE_PC98 =25;
|
||
FBTYPE_TGA =26;
|
||
|
||
FBTYPE_LASTPLUSONE =27; { max number of fbs (change as add) }
|
||
|
||
{
|
||
* Frame buffer descriptor as returned by FBIOGTYPE.
|
||
}
|
||
|
||
type fbtype = record
|
||
fb_type : longint; { as defined above }
|
||
fb_height : longint; { in pixels }
|
||
fb_width : longint; { in pixels }
|
||
fb_depth : longint; { bits per pixel }
|
||
fb_cmsize : longint; { size of color map (entries) }
|
||
fb_size : longint; { total size in bytes }
|
||
end;
|
||
|
||
Function FBIOGTYPE(fd:longint;var param1 : fbtype):boolean;
|
||
|
||
{
|
||
* General purpose structure for passing info in and out of frame buffers
|
||
* (used for gp1) -- unsupported.
|
||
}
|
||
type fbinfo = record
|
||
fb_physaddr : longint; { physical frame buffer address }
|
||
fb_hwwidth : longint; { fb board width }
|
||
fb_hwheight : longint; { fb board height }
|
||
fb_addrdelta : longint; { phys addr diff between boards }
|
||
fb_ropaddr : ^uchar; { fb virtual addr }
|
||
fb_unit : longint; { minor devnum of fb }
|
||
end;
|
||
|
||
Function FBIOGINFO(fd:longint;var param1 : fbinfo):boolean;
|
||
|
||
type
|
||
{
|
||
* Color map I/O.
|
||
}
|
||
fbcmap = record
|
||
index : longint; { first element (0 origin) }
|
||
count : longint; { number of elements }
|
||
red : ^uchar; { red color map elements }
|
||
green : ^uchar; { green color map elements }
|
||
blue : ^uchar; { blue color map elements }
|
||
end;
|
||
|
||
Function FBIOPUTCMAP(fd:longint;var param1 : fbcmap):boolean;
|
||
Function FBIOGETCMAP(fd:longint;var param1 : fbcmap):boolean;
|
||
|
||
{
|
||
* Set/get attributes.
|
||
}
|
||
const
|
||
FB_ATTR_NDEVSPECIFIC =8; { no. of device specific values }
|
||
FB_ATTR_NEMUTYPES =4; { no. of emulation types }
|
||
|
||
type fbsattr = record
|
||
flags:longint; { flags; see below }
|
||
emu_type : longint; { emulation type (-1 if unused) }
|
||
dev_specific : array[0..FB_ATTR_NDEVSPECIFIC-1] of longint; { catchall }
|
||
end;
|
||
const
|
||
FB_ATTR_AUTOINIT =1; { emulation auto init flag }
|
||
FB_ATTR_DEVSPECIFIC =2; { dev. specific stuff valid flag }
|
||
|
||
type fbgattr = record
|
||
real_type : longint; { real device type }
|
||
owner : longint; { PID of owner, 0 if myself }
|
||
_fbtype : fbtype; { fbtype info for real device }
|
||
sattr : fbsattr; { see above }
|
||
emu_types : array [0..FB_ATTR_NEMUTYPES-1] OF Longint; { possible emulations }
|
||
{ (-1 if unused) }
|
||
end;
|
||
|
||
{ FBIOSATTR _IOW('F', 5, struct fbsattr) -- unsupported }
|
||
|
||
Function FBIOGATTR(fd:longint;var param1 : fbgattr):boolean;
|
||
|
||
{
|
||
* Video control.
|
||
}
|
||
|
||
const
|
||
FBVIDEO_OFF =0;
|
||
FBVIDEO_ON =1;
|
||
|
||
Function FBIOSVIDEO(fd:longint;var param1 : longint):boolean;
|
||
Function FBIOGVIDEO(fd:longint;var param1 : longint):boolean;
|
||
|
||
{
|
||
* Hardware cursor control (for, e.g., CG6). A rather complex and icky
|
||
* interface that smells like VMS, but there it is....
|
||
}
|
||
type fbcurpos = record
|
||
x : short;
|
||
y : short;
|
||
end;
|
||
|
||
|
||
|
||
fbcursor = record
|
||
_set : short; { flags; see below }
|
||
enable : short; { nonzero => cursor on, 0 => cursor off }
|
||
_pos : fbcurpos; { position on display }
|
||
hot : fbcurpos; { hot-spot within cursor }
|
||
cmap : fbcmap; { cursor color map }
|
||
_size : fbcurpos; { number of valid bits in image & mask }
|
||
image : caddr_t; { cursor image bits }
|
||
mask : caddr_t; { cursor mask bits }
|
||
end;
|
||
|
||
const
|
||
FB_CUR_SETCUR =$01; { set on/off (i.e., obey fbcursor.enable) }
|
||
FB_CUR_SETPOS =$02; { set position }
|
||
FB_CUR_SETHOT =$04; { set hot-spot }
|
||
FB_CUR_SETCMAP =$08; { set cursor color map }
|
||
FB_CUR_SETSHAPE =$10; { set size & bits }
|
||
FB_CUR_SETALL =(FB_CUR_SETCUR OR FB_CUR_SETPOS OR FB_CUR_SETHOT OR
|
||
FB_CUR_SETCMAP OR FB_CUR_SETSHAPE);
|
||
|
||
{ controls for cursor attributes & shape (including position) }
|
||
Function FBIOSCURSOR(fd:longint;var param1 : fbcursor):boolean;
|
||
Function FBIOGCURSOR(fd:longint;var param1 : fbcursor):boolean;
|
||
|
||
{ controls for cursor position only }
|
||
Function FBIOSCURPOS(fd:longint;var param1 : fbcurpos):boolean;
|
||
Function FBIOGCURPOS(fd:longint;var param1 : fbcurpos):boolean;
|
||
|
||
{ get maximum cursor size }
|
||
Function FBIOGCURMAX(fd:longint;var param1 : fbcurpos):boolean;
|
||
|
||
{ The new style frame buffer FpIoctls. }
|
||
|
||
CONST
|
||
V_INFO_COLOR =(1 SHL 0);
|
||
V_INFO_GRAPHICS =(1 SHL 1);
|
||
V_INFO_LINEAR =(1 SHL 2);
|
||
V_INFO_VESA =(1 SHL 3);
|
||
V_INFO_MM_OTHER =(-1);
|
||
V_INFO_MM_TEXT =0;
|
||
V_INFO_MM_PLANAR =1;
|
||
V_INFO_MM_PACKED =2;
|
||
V_INFO_MM_DIRECT =3;
|
||
V_INFO_MM_CGA =100;
|
||
V_INFO_MM_HGC =101;
|
||
V_INFO_MM_VGAX =102;
|
||
|
||
TYPE
|
||
{ video mode information block }
|
||
video_info = record
|
||
vi_mode : longint; { mode number, see below }
|
||
vi_flags : longint;
|
||
vi_width : longint;
|
||
vi_height : longint;
|
||
vi_cwidth : longint;
|
||
vi_cheight : longint;
|
||
vi_depth : longint;
|
||
vi_planes : longint;
|
||
vi_window : uint; { physical address }
|
||
vi_window_size : size_t;
|
||
vi_window_gran : size_t;
|
||
vi_buffer : uint; { physical address }
|
||
vi_buffer_size : size_t;
|
||
vi_mem_model : longint;
|
||
{ for MM_PACKED and MM_DIRECT only }
|
||
vi_pixel_size : longint; { in bytes }
|
||
{ for MM_DIRECT only }
|
||
vi_pixel_fields : array[0..3] of longint; { RGB and reserved fields }
|
||
vi_pixel_fsizes : array[0..3] of longint;
|
||
{ reserved }
|
||
vi_reserved : array[0..63] of uchar;
|
||
end;
|
||
|
||
video_info_t = video_info;
|
||
const
|
||
KD_OTHER =0; { unknown }
|
||
KD_MONO =1; { monochrome adapter }
|
||
KD_HERCULES =2; { hercules adapter }
|
||
KD_CGA =3; { color graphics adapter }
|
||
KD_EGA =4; { enhanced graphics adapter }
|
||
KD_VGA =5; { video graphics adapter }
|
||
KD_PC98 =6; { PC-98 display }
|
||
KD_TGA =7; { TGA }
|
||
V_ADP_COLOR =(1 SHL 0);
|
||
V_ADP_MODECHANGE=(1 SHL 1);
|
||
V_ADP_STATESAVE =(1 SHL 2);
|
||
V_ADP_STATELOAD =(1 SHL 3);
|
||
V_ADP_FONT =(1 SHL 4);
|
||
V_ADP_PALETTE =(1 SHL 5);
|
||
V_ADP_BORDER =(1 SHL 6);
|
||
V_ADP_VESA =(1 SHL 7);
|
||
V_ADP_PROBED =(1 SHL 16);
|
||
V_ADP_INITIALIZED=(1 SHL 17);
|
||
V_ADP_REGISTERED =(1 SHL 18);
|
||
|
||
{ adapter infromation block }
|
||
type video_adapter = record
|
||
va_index : longint;
|
||
va_type : longint;
|
||
va_name : pchar;
|
||
va_unit : longint;
|
||
va_minor : longint;
|
||
va_flags : longint;
|
||
va_io_base : longint;
|
||
va_io_size : longint;
|
||
va_crtc_addr : longint;
|
||
va_mem_base : longint;
|
||
va_mem_size : longint;
|
||
va_window : vm_offset_t; { virtual address }
|
||
va_window_size : size_t;
|
||
va_window_gran : size_t;
|
||
va_window_orig : uint;
|
||
va_buffer : vm_offset_t; { virtual address }
|
||
va_buffer_size : size_t;
|
||
va_initial_mode : longint;
|
||
va_initial_bios_mode : longint;
|
||
va_mode : longint;
|
||
va_info : video_info;
|
||
va_line_width : longint;
|
||
va_disp_start : record
|
||
x : longint;
|
||
y : longint;
|
||
end;
|
||
va_token : pointer;
|
||
end;
|
||
|
||
video_adapter_t = video_adapter;
|
||
|
||
video_adapter_info = record
|
||
va_index : longint;
|
||
va_type : longint;
|
||
va_name : array[0..15] of char;
|
||
va_unit : longint;
|
||
va_flags : longint;
|
||
va_io_base : longint;
|
||
va_io_size : longint;
|
||
va_crtc_addr : longint;
|
||
va_mem_base : longint;
|
||
va_mem_size : longint;
|
||
va_window : uint; { virtual address }
|
||
va_window_size : size_t;
|
||
va_window_gran : size_t;
|
||
va_unused0 : uint;
|
||
va_buffer_size : size_t;
|
||
va_initial_mode : longint;
|
||
va_initial_bios_mode : longint;
|
||
va_mode : longint;
|
||
va_line_width : longint;
|
||
va_disp_start : record
|
||
x : longint;
|
||
y : longint;
|
||
end;
|
||
va_window_orig : uint;
|
||
{ reserved }
|
||
va_reserved : array[0..63] OF uchar;
|
||
end;
|
||
video_adapter_info_t = video_adapter_info;
|
||
|
||
CONST
|
||
{ some useful video adapter index }
|
||
V_ADP_PRIMARY =0;
|
||
V_ADP_SECONDARY =1;
|
||
|
||
{ video mode numbers }
|
||
|
||
M_B40x25 =0; { black & white 40 columns }
|
||
M_C40x25 =1; { color 40 columns }
|
||
M_B80x25 =2; { black & white 80 columns }
|
||
M_C80x25 =3; { color 80 columns }
|
||
M_BG320 =4; { black & white graphics 320x200 }
|
||
M_CG320 =5; { color graphics 320x200 }
|
||
M_BG640 =6; { black & white graphics 640x200 hi-res }
|
||
M_EGAMONO80x25 =7; { ega-mono 80x25 }
|
||
M_CG320_D =13; { ega mode D }
|
||
M_CG640_E =14; { ega mode E }
|
||
M_EGAMONOAPA =15; { ega mode F }
|
||
M_CG640x350 =16; { ega mode 10 }
|
||
M_ENHMONOAPA2 =17; { ega mode F with extended memory }
|
||
M_ENH_CG640 =18; { ega mode 10* }
|
||
M_ENH_B40x25 =19; { ega enhanced black & white 40 columns }
|
||
M_ENH_C40x25 =20; { ega enhanced color 40 columns }
|
||
M_ENH_B80x25 =21; { ega enhanced black & white 80 columns }
|
||
M_ENH_C80x25 =22; { ega enhanced color 80 columns }
|
||
M_VGA_C40x25 =23; { vga 8x16 font on color }
|
||
M_VGA_C80x25 =24; { vga 8x16 font on color }
|
||
M_VGA_M80x25 =25; { vga 8x16 font on mono }
|
||
|
||
M_VGA11 =26; { vga 640x480 2 colors }
|
||
M_BG640x480 =26;
|
||
M_VGA12 =27; { vga 640x480 16 colors }
|
||
M_CG640x480 =27;
|
||
M_VGA13 =28; { vga 320x200 256 colors }
|
||
M_VGA_CG320 =28;
|
||
|
||
M_VGA_C80x50 =30; { vga 8x8 font on color }
|
||
M_VGA_M80x50 =31; { vga 8x8 font on color }
|
||
M_VGA_C80x30 =32; { vga 8x16 font on color }
|
||
M_VGA_M80x30 =33; { vga 8x16 font on color }
|
||
M_VGA_C80x60 =34; { vga 8x8 font on color }
|
||
M_VGA_M80x60 =35; { vga 8x8 font on color }
|
||
M_VGA_CG640 =36; { vga 640x400 256 color }
|
||
M_VGA_MODEX =37; { vga 320x240 256 color }
|
||
|
||
M_VGA_C90x25 =40; { vga 8x16 font on color }
|
||
M_VGA_M90x25 =41; { vga 8x16 font on mono }
|
||
M_VGA_C90x30 =42; { vga 8x16 font on color }
|
||
M_VGA_M90x30 =43; { vga 8x16 font on mono }
|
||
M_VGA_C90x43 =44; { vga 8x8 font on color }
|
||
M_VGA_M90x43 =45; { vga 8x8 font on mono }
|
||
M_VGA_C90x50 =46; { vga 8x8 font on color }
|
||
M_VGA_M90x50 =47; { vga 8x8 font on mono }
|
||
M_VGA_C90x60 =48; { vga 8x8 font on color }
|
||
M_VGA_M90x60 =49; { vga 8x8 font on mono }
|
||
|
||
M_ENH_B80x43 =$70; { ega black & white 80x43 }
|
||
M_ENH_C80x43 =$71; { ega color 80x43 }
|
||
|
||
M_PC98_80x25 =98; { PC98 text 80x25 }
|
||
M_PC98_80x30 =99; { PC98 text 80x30 }
|
||
M_PC98_EGC640x400 =100; { PC98 graphic 640x400 16 colors }
|
||
M_PC98_PEGC640x400 =101; { PC98 graphic 640x400 256 colors }
|
||
M_PC98_PEGC640x480 =102; { PC98 graphic 640x480 256 colors }
|
||
|
||
M_HGC_P0 =$e0; { hercules graphics - page 0 @ B0000 }
|
||
M_HGC_P1 =$e1; { hercules graphics - page 1 @ B8000 }
|
||
M_MCA_MODE =$ff; { monochrome adapter mode }
|
||
|
||
M_TEXT_80x25 =200; { generic text modes }
|
||
M_TEXT_80x30 =201;
|
||
M_TEXT_80x43 =202;
|
||
M_TEXT_80x50 =203;
|
||
M_TEXT_80x60 =204;
|
||
M_TEXT_132x25 =205;
|
||
M_TEXT_132x30 =206;
|
||
M_TEXT_132x43 =207;
|
||
M_TEXT_132x50 =208;
|
||
M_TEXT_132x60 =209;
|
||
|
||
M_VESA_BASE =$100; { VESA mode number base }
|
||
M_VESA_CG640x400 =$100; { 640x400, 256 color }
|
||
M_VESA_CG640x480 =$101; { 640x480, 256 color }
|
||
M_VESA_800x600 =$102; { 800x600, 16 color }
|
||
M_VESA_CG800x600 =$103; { 800x600, 256 color }
|
||
M_VESA_1024x768 =$104; { 1024x768, 16 color }
|
||
M_VESA_CG1024x768 =$105; { 1024x768, 256 color }
|
||
M_VESA_1280x1024 =$106; { 1280x1024, 16 color }
|
||
M_VESA_CG1280x1024 =$107; { 1280x1024, 256 color }
|
||
M_VESA_C80x60 =$108; { 8x8 font }
|
||
M_VESA_C132x25 =$109; { 8x16 font }
|
||
M_VESA_C132x43 =$10a; { 8x14 font }
|
||
M_VESA_C132x50 =$10b; { 8x8 font }
|
||
M_VESA_C132x60 =$10c; { 8x8 font }
|
||
M_VESA_32K_320 =$10d; { 320x200, 5:5:5 }
|
||
M_VESA_64K_320 =$10e; { 320x200, 5:6:5 }
|
||
M_VESA_FULL_320 =$10f; { 320x200, 8:8:8 }
|
||
M_VESA_32K_640 =$110; { 640x480, 5:5:5 }
|
||
M_VESA_64K_640 =$111; { 640x480, 5:6:5 }
|
||
M_VESA_FULL_640 =$112; { 640x480, 8:8:8 }
|
||
M_VESA_32K_800 =$113; { 800x600, 5:5:5 }
|
||
M_VESA_64K_800 =$114; { 800x600, 5:6:5 }
|
||
M_VESA_FULL_800 =$115; { 800x600, 8:8:8 }
|
||
M_VESA_32K_1024 =$116; { 1024x768, 5:5:5 }
|
||
M_VESA_64K_1024 =$117; { 1024x768, 5:6:5 }
|
||
M_VESA_FULL_1024 =$118; { 1024x768, 8:8:8 }
|
||
M_VESA_32K_1280 =$119; { 1280x1024, 5:5:5 }
|
||
M_VESA_64K_1280 =$11a; { 1280x1024, 5:6:5 }
|
||
M_VESA_FULL_1280 =$11b; { 1280x1024, 8:8:8 }
|
||
M_VESA_MODE_MAX =$1ff;
|
||
|
||
type
|
||
video_display_start = record
|
||
x :longint;
|
||
y : longint;
|
||
end;
|
||
|
||
video_display_start_t= video_display_start;
|
||
|
||
video_color_palette = record
|
||
index : longint; { first element (zero-based) }
|
||
count : longint; { number of elements }
|
||
red : ^uchar; { red }
|
||
green : ^uchar; { green }
|
||
blue : ^uchar; { blue }
|
||
transparent : ^uchar; { may be NULL }
|
||
end;
|
||
|
||
video_color_palette_t = video_color_palette;
|
||
|
||
{ adapter info. }
|
||
Function FBIO_ADAPTER(fd:longint;var param1 : longint):boolean;
|
||
Function FBIO_ADPTYPE(fd:longint;var param1 : longint):boolean;
|
||
Function FBIO_ADPINFO(fd:longint;var param1 : video_adapter_info):boolean;
|
||
|
||
{ video mode control }
|
||
Function FBIO_MODEINFO(fd:longint;var param1 : video_info):boolean;
|
||
Function FBIO_FINDMODE(fd:longint;var param1 : video_info):boolean;
|
||
Function FBIO_GETMODE(fd:longint;var param1 : longint):boolean;
|
||
Function FBIO_SETMODE(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ get/set frame buffer window origin }
|
||
Function FBIO_GETWINORG(fd:longint;var param1 : u_int):boolean;
|
||
Function FBIO_SETWINORG(fd:longint;var param1 : u_int):boolean;
|
||
|
||
{ get/set display start address }
|
||
Function FBIO_GETDISPSTART(fd:longint;var param1 : video_display_start_t):boolean;
|
||
Function FBIO_SETDISPSTART(fd:longint;var param1 : video_display_start_t):boolean;
|
||
|
||
{ get/set scan line width }
|
||
Function FBIO_GETLINEWIDTH(fd:longint;var param1 : u_int):boolean;
|
||
Function FBIO_SETLINEWIDTH(fd:longint;var param1 : u_int):boolean;
|
||
|
||
{ color palette control }
|
||
Function FBIO_GETPALETTE(fd:longint;var param1 : video_color_palette_t):boolean;
|
||
Function FBIO_SETPALETTE(fd:longint;var param1 : video_color_palette_t):boolean;
|
||
|
||
{----------------------------- sys/consio.h ----------------------------------}
|
||
|
||
{ version packaged with FreeBSD 4.2-RELEASE
|
||
Translation to FreePascal by Marco van de Voort. (2000-2001), original
|
||
copyright follows:
|
||
|
||
* Copyright (c) 1991-1996 S<>ren Schmidt
|
||
* All rights reserved.
|
||
*
|
||
* Redistribution and use in source and binary forms, with or without
|
||
* modification, are permitted provided that the following conditions
|
||
* are met:
|
||
* 1. Redistributions of source code must retain the above copyright
|
||
* notice, this list of conditions and the following disclaimer
|
||
* in this position and unchanged.
|
||
* 2. Redistributions in binary form must reproduce the above copyright
|
||
* notice, this list of conditions and the following disclaimer in the
|
||
* documentation and/or other materials provided with the distribution.
|
||
* 3. The name of the author may not be used to endorse or promote products
|
||
* derived from this software without specific prior written permission
|
||
*
|
||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
*
|
||
* $FreeBSD: src/sys/sys/consio.h,v 1.5.2.1 2000/05/05 09:16:15 nyan Exp $
|
||
|
||
}
|
||
|
||
{$define definconsole}
|
||
|
||
{
|
||
* Console FpIoctl commands. Some commands are named as KDXXXX, GIO_XXX, and
|
||
* PIO_XXX, rather than CONS_XXX, for historical and compatibility reasons.
|
||
* Some other CONS_XXX commands are works as wrapper around frame buffer
|
||
* FpIoctl commands FBIO_XXX. Do not try to change all these commands,
|
||
* otherwise we shall have compatibility problems.
|
||
}
|
||
|
||
const
|
||
|
||
{ get/set video mode }
|
||
KD_TEXT =0; { set text mode restore fonts }
|
||
KD_TEXT0 =0; { ditto }
|
||
KD_GRAPHICS =1; { set graphics mode }
|
||
KD_TEXT1 =2; { set text mode !restore fonts }
|
||
KD_PIXEL =3; { set pixel mode }
|
||
|
||
Function KDGETMODE(fd:longint;var param1 : longint):boolean;
|
||
Function KDSETMODE(fd:longint;param1 : longint):boolean;
|
||
|
||
{ set border color }
|
||
Function KDSBORDER(fd:longint;param1 : longint):boolean;
|
||
|
||
{ set up raster(pixel) text mode }
|
||
type
|
||
scr_size = record
|
||
_scrsize : array[0..2] of longint;
|
||
end;
|
||
scr_size_t = scr_size;
|
||
|
||
Function KDRASTER(fd:longint;var param1 : scr_size_t):boolean;
|
||
|
||
type
|
||
|
||
{ get/set screen char map }
|
||
|
||
scrmap = record
|
||
_scrmap : array[0..255] of char;
|
||
end;
|
||
scrmap_t = scrmap;
|
||
|
||
Function GIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
|
||
Function PIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
|
||
|
||
{ get the current text attribute }
|
||
Function GIO_ATTR(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ get the current text color }
|
||
Function GIO_COLOR(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ get the adapter type (equivalent to FBIO_ADPTYPE) }
|
||
Function CONS_CURRENT(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ get the current video mode (equivalent to FBIO_GETMODE) }
|
||
Function CONS_GET(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ not supported? }
|
||
Function CONS_IO(fd:longint):boolean;
|
||
|
||
{ set blank time interval }
|
||
Function CONS_BLANKTIME(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ set/get the screen saver (these FpIoctls are current noop) }
|
||
CONST maxsaver=16;
|
||
|
||
type ssaver =record
|
||
name : array[0..maxsaver-1] of char;
|
||
num : Longint;
|
||
time : Long;
|
||
end;
|
||
ssaver_t = ssaver;
|
||
|
||
Function CONS_SSAVER(fd:longint;var param1 : ssaver_t):boolean;
|
||
Function CONS_GSAVER(fd:longint;var param1 : ssaver_t):boolean;
|
||
|
||
{ set the text cursor shape }
|
||
|
||
CONST
|
||
CONS_BLINK_CURSOR = (1 shl 0);
|
||
CONS_CHAR_CURSOR = (1 shl 1);
|
||
|
||
Function CONS_CURSORTYPE(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ set the bell type to audible or visual }
|
||
CONST
|
||
CONS_VISUAL_BELL =(1 shl 0);
|
||
CONS_QUIET_BELL =(1 shl 1);
|
||
|
||
Function CONS_BELLTYPE(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ set the history (scroll back) buffer size (in lines) }
|
||
Function CONS_HISTORY(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ mouse cursor FpIoctl }
|
||
type
|
||
mouse_data = record
|
||
x : longint;
|
||
y : Longint;
|
||
z : longint;
|
||
buttons : longint;
|
||
end;
|
||
|
||
mouse_data_t = mouse_data;
|
||
|
||
mouse_mode = record
|
||
mode : longint;
|
||
signal : longint;
|
||
end;
|
||
|
||
mouse_mode_t = mouse_mode;
|
||
|
||
mouse_event = record
|
||
id : Longint; { one based }
|
||
value : longint;
|
||
end;
|
||
|
||
mouse_event_t = mouse_event;
|
||
|
||
CONST
|
||
MOUSE_SHOW =$01;
|
||
MOUSE_HIDE =$02;
|
||
MOUSE_MOVEABS =$03;
|
||
MOUSE_MOVEREL =$04;
|
||
MOUSE_GETINFO =$05;
|
||
_MOUSE_MODE =$06;
|
||
MOUSE_ACTION =$07;
|
||
MOUSE_MOTION_EVENT =$08;
|
||
MOUSE_BUTTON_EVENT =$09;
|
||
MOUSE_MOUSECHAR =$0a;
|
||
|
||
TYPE
|
||
mouse_info = record
|
||
operation : longint;
|
||
u : record
|
||
case integer of
|
||
0: (data : mouse_data_t);
|
||
1: (mode : mouse_mode_t);
|
||
2: (event: mouse_event_t);
|
||
3: (mouse_char : longint);
|
||
end;
|
||
end;
|
||
mouse_info_t = mouse_info;
|
||
|
||
Function CONS_MOUSECTL(fd:longint;var param1 : mouse_info_t):boolean;
|
||
|
||
{ see if the vty has been idle }
|
||
Function CONS_IDLE(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ set the screen saver mode }
|
||
CONST
|
||
CONS_LKM_SAVER = 0;
|
||
CONS_USR_SAVER = 1;
|
||
|
||
Function CONS_SAVERMODE(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ start the screen saver }
|
||
Function CONS_SAVERSTART(fd:longint;var param1 : longint):boolean;
|
||
|
||
TYPE
|
||
{ set/get font data }
|
||
fnt8 = record
|
||
fnt8x8 : array[0..8*256-1] of char;
|
||
end;
|
||
|
||
fnt8_t = fnt8;
|
||
|
||
fnt14 = record
|
||
fnt8x14: array[0..14*256-1] of char;
|
||
end;
|
||
|
||
fnt14_t = fnt14;
|
||
|
||
fnt16 = record
|
||
fnt8x16: array[0..16*256-1] of char;
|
||
end;
|
||
fnt16_t = fnt16;
|
||
|
||
Function PIO_FONT8x8(fd:longint;var param1 : fnt8_t):boolean;
|
||
Function GIO_FONT8x8(fd:longint;var param1 : fnt8_t):boolean;
|
||
Function PIO_FONT8x14(fd:longint;var param1 : fnt14_t):boolean;
|
||
Function GIO_FONT8x14(fd:longint;var param1 : fnt14_t):boolean;
|
||
Function PIO_FONT8x16(fd:longint;var param1 : fnt16_t):boolean;
|
||
Function GIO_FONT8x16(fd:longint;var param1 : fnt16_t):boolean;
|
||
|
||
|
||
{ get video mode information }
|
||
type colors = record
|
||
fore : char;
|
||
back : char;
|
||
end;
|
||
|
||
vid_info = record
|
||
_size : short;
|
||
m_num : short;
|
||
mv_row,
|
||
mv_col : ushort;
|
||
mv_rsz,
|
||
mv_csz : ushort;
|
||
mv_norm,
|
||
mv_rev,
|
||
mv_grfc : colors;
|
||
mv_ovscan : uchar;
|
||
mk_keylock : uchar;
|
||
end;
|
||
vid_info_t = vid_info;
|
||
|
||
Function CONS_GETINFO(fd:longint;var param1 : vid_info_t):boolean;
|
||
|
||
{ get version }
|
||
|
||
Function CONS_GETVERS(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ get the video adapter index (equivalent to FBIO_ADAPTER) }
|
||
Function CONS_CURRENTADP(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ get the video adapter information (equivalent to FBIO_ADPINFO) }
|
||
Function CONS_ADPINFO(fd:longint;var param1 : video_adapter_info_t):boolean;
|
||
|
||
{ get the video mode information (equivalent to FBIO_MODEINFO) }
|
||
Function CONS_MODEINFO(fd:longint;var param1 : video_info_t):boolean;
|
||
|
||
{ find a video mode (equivalent to FBIO_FINDMODE) }
|
||
Function CONS_FINDMODE(fd:longint;var param1 : video_info_t):boolean;
|
||
|
||
{ set the frame buffer window origin (equivalent to FBIO_SETWINORG) }
|
||
Function CONS_SETWINORG(fd:longint;param1 : longint):boolean;
|
||
|
||
{ use the specified keyboard }
|
||
Function CONS_SETKBD(fd:longint;param1 : longint):boolean;
|
||
|
||
{ release the current keyboard }
|
||
Function CONS_RELKBD(fd:longint):boolean;
|
||
|
||
{ get/set the current terminal emulator info. }
|
||
CONST
|
||
TI_NAME_LEN = 32;
|
||
TI_DESC_LEN = 64;
|
||
|
||
TYPE
|
||
term_info = record
|
||
ti_index : Longint;
|
||
ti_flags : longint;
|
||
ti_name : array[0..TI_NAME_LEN-1] of uchar;
|
||
ti_desc : array[0..TI_DESC_LEN-1] of uchar;
|
||
end;
|
||
term_info_t = term_info;
|
||
|
||
Function CONS_GETTERM(fd:longint;var param1 : term_info_t):boolean;
|
||
Function CONS_SETTERM(fd:longint;var param1 : term_info_t):boolean;
|
||
|
||
{$ifdef PC98}
|
||
Function ADJUST_CLOCK(fd:longint):boolean;
|
||
{$endif}
|
||
|
||
{
|
||
* Vty switching FpIoctl commands.
|
||
}
|
||
|
||
{ get the next available vty }
|
||
Function VT_OPENQRY(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ set/get vty switching mode }
|
||
const
|
||
VT_AUTO =0; { switching is automatic }
|
||
VT_PROCESS =1; { switching controlled by prog }
|
||
VT_KERNEL =255; { switching controlled in kernel }
|
||
|
||
TYPE
|
||
vt_mode = record
|
||
mode : Char;
|
||
waitv : char; { not implemented yet SOS }
|
||
relsig : short;
|
||
acqsig : short;
|
||
frsig : short; { not implemented yet SOS }
|
||
end;
|
||
|
||
vtmode_t = vt_mode;
|
||
|
||
|
||
Function VT_SETMODE(fd:longint;var param1 : vtmode_t):boolean;
|
||
Function VT_GETMODE(fd:longint;var param1 : vtmode_t):boolean;
|
||
|
||
|
||
{ acknowledge release or acquisition of a vty }
|
||
const
|
||
VT_FALSE = 0;
|
||
VT_TRUE = 1;
|
||
VT_ACKACQ = 2;
|
||
|
||
Function VT_RELDISP(fd:longint;param1 : longint):boolean;
|
||
|
||
{ activate the specified vty }
|
||
Function VT_ACTIVATE(fd:longint;param1 : longint):boolean;
|
||
|
||
{ wait until the specified vty is activate }
|
||
Function VT_WAITACTIVE(fd:longint;param1 : longint):boolean;
|
||
|
||
{ get the currently active vty }
|
||
Function VT_GETACTIVE(fd:longint;var param1 : longint):boolean;
|
||
|
||
{ get the index of the vty }
|
||
Function VT_GETINDEX(fd:longint;var param1 : longint):boolean;
|
||
|
||
{
|
||
* Video mode switching FpIoctl. See sys/fbio.h for mode numbers.
|
||
}
|
||
|
||
Function SW_B40x25(fd:longint):boolean;
|
||
Function SW_C40x25(fd:longint):boolean;
|
||
Function SW_B80x25(fd:longint):boolean;
|
||
Function SW_C80x25(fd:longint):boolean;
|
||
Function SW_BG320(fd:longint):boolean;
|
||
Function SW_CG320(fd:longint):boolean;
|
||
Function SW_BG640(fd:longint):boolean;
|
||
Function SW_EGAMONO80x25(fd:longint):boolean;
|
||
Function SW_CG320_D(fd:longint):boolean;
|
||
Function SW_CG640_E(fd:longint):boolean;
|
||
Function SW_EGAMONOAPA(fd:longint):boolean;
|
||
Function SW_CG640x350(fd:longint):boolean;
|
||
Function SW_ENH_MONOAPA2(fd:longint):boolean;
|
||
Function SW_ENH_CG640(fd:longint):boolean;
|
||
Function SW_ENH_B40x25(fd:longint):boolean;
|
||
Function SW_ENH_C40x25(fd:longint):boolean;
|
||
Function SW_ENH_B80x25(fd:longint):boolean;
|
||
Function SW_ENH_C80x25(fd:longint):boolean;
|
||
Function SW_ENH_B80x43(fd:longint):boolean;
|
||
Function SW_ENH_C80x43(fd:longint):boolean;
|
||
Function SW_MCAMODE(fd:longint):boolean;
|
||
Function SW_VGA_C40x25(fd:longint):boolean;
|
||
Function SW_VGA_C80x25(fd:longint):boolean;
|
||
Function SW_VGA_C80x30(fd:longint):boolean;
|
||
Function SW_VGA_C80x50(fd:longint):boolean;
|
||
Function SW_VGA_C80x60(fd:longint):boolean;
|
||
Function SW_VGA_M80x25(fd:longint):boolean;
|
||
Function SW_VGA_M80x30(fd:longint):boolean;
|
||
Function SW_VGA_M80x50(fd:longint):boolean;
|
||
Function SW_VGA_M80x60(fd:longint):boolean;
|
||
Function SW_VGA11(fd:longint):boolean;
|
||
Function SW_BG640x480(fd:longint):boolean;
|
||
Function SW_VGA12(fd:longint):boolean;
|
||
Function SW_CG640x480(fd:longint):boolean;
|
||
Function SW_VGA13(fd:longint):boolean;
|
||
Function SW_VGA_CG320(fd:longint):boolean;
|
||
Function SW_VGA_CG640(fd:longint):boolean;
|
||
Function SW_VGA_MODEX(fd:longint):boolean;
|
||
Function SW_PC98_80x25(fd:longint):boolean;
|
||
Function SW_PC98_80x30(fd:longint):boolean;
|
||
Function SW_PC98_EGC640x400(fd:longint):boolean;
|
||
Function SW_PC98_PEGC640x400(fd:longint):boolean;
|
||
Function SW_PC98_PEGC640x480(fd:longint):boolean;
|
||
Function SW_VGA_C90x25(fd:longint):boolean;
|
||
Function SW_VGA_M90x25(fd:longint):boolean;
|
||
Function SW_VGA_C90x30(fd:longint):boolean;
|
||
Function SW_VGA_M90x30(fd:longint):boolean;
|
||
Function SW_VGA_C90x43(fd:longint):boolean;
|
||
Function SW_VGA_M90x43(fd:longint):boolean;
|
||
Function SW_VGA_C90x50(fd:longint):boolean;
|
||
Function SW_VGA_M90x50(fd:longint):boolean;
|
||
Function SW_VGA_C90x60(fd:longint):boolean;
|
||
Function SW_VGA_M90x60(fd:longint):boolean;
|
||
Function SW_TEXT_80x25(fd:longint):boolean;
|
||
Function SW_TEXT_80x30(fd:longint):boolean;
|
||
Function SW_TEXT_80x43(fd:longint):boolean;
|
||
Function SW_TEXT_80x50(fd:longint):boolean;
|
||
Function SW_TEXT_80x60(fd:longint):boolean;
|
||
Function SW_TEXT_132x25(fd:longint):boolean;
|
||
Function SW_TEXT_132x30(fd:longint):boolean;
|
||
Function SW_TEXT_132x43(fd:longint):boolean;
|
||
Function SW_TEXT_132x50(fd:longint):boolean;
|
||
Function SW_TEXT_132x60(fd:longint):boolean;
|
||
Function SW_VESA_CG640x400(fd:longint):boolean;
|
||
Function SW_VESA_CG640x480(fd:longint):boolean;
|
||
Function SW_VESA_800x600(fd:longint):boolean;
|
||
Function SW_VESA_CG800x600(fd:longint):boolean;
|
||
Function SW_VESA_1024x768(fd:longint):boolean;
|
||
Function SW_VESA_CG1024x768(fd:longint):boolean;
|
||
Function SW_VESA_1280x1024(fd:longint):boolean;
|
||
Function SW_VESA_CG1280x1024(fd:longint):boolean;
|
||
Function SW_VESA_C80x60(fd:longint):boolean;
|
||
Function SW_VESA_C132x25(fd:longint):boolean;
|
||
Function SW_VESA_C132x43(fd:longint):boolean;
|
||
Function SW_VESA_C132x50(fd:longint):boolean;
|
||
Function SW_VESA_C132x60(fd:longint):boolean;
|
||
Function SW_VESA_32K_320(fd:longint):boolean;
|
||
Function SW_VESA_64K_320(fd:longint):boolean;
|
||
Function SW_VESA_FULL_320(fd:longint):boolean;
|
||
Function SW_VESA_32K_640(fd:longint):boolean;
|
||
Function SW_VESA_64K_640(fd:longint):boolean;
|
||
Function SW_VESA_FULL_640(fd:longint):boolean;
|
||
Function SW_VESA_32K_800(fd:longint):boolean;
|
||
Function SW_VESA_64K_800(fd:longint):boolean;
|
||
Function SW_VESA_FULL_800(fd:longint):boolean;
|
||
Function SW_VESA_32K_1024(fd:longint):boolean;
|
||
Function SW_VESA_64K_1024(fd:longint):boolean;
|
||
Function SW_VESA_FULL_1024(fd:longint):boolean;
|
||
Function SW_VESA_32K_1280(fd:longint):boolean;
|
||
Function SW_VESA_64K_1280(fd:longint):boolean;
|
||
Function SW_VESA_FULL_1280(fd:longint):boolean;
|
||
|
||
{----------------------------- sys/kbio.h ----------------------------------}
|
||
|
||
{ version packaged with FreeBSD 4.2-RELEASE
|
||
Translation to FreePascal by Marco van de Voort. (2000-2001), original
|
||
copyright follows: ( I assume BSD licensed)
|
||
|
||
Based on
|
||
* $FreeBSD: src/sys/sys/kbio.h,v 1.5.2.1 2000/10/29 16:59:32 dwmalone Exp $
|
||
}
|
||
|
||
{ get/set keyboard I/O mode}
|
||
const K_RAW =0; { keyboard returns scancodes}
|
||
K_XLATE =1; { keyboard returns ascii}
|
||
K_CODE =2; { keyboard returns keycodes}
|
||
|
||
{After each FpIoctl value, I've put the type of the parameters to be passed:
|
||
@int -> pass a pointer to an int.
|
||
int -> pass pointer(int)
|
||
- -> nothing
|
||
@keymap_t -> pass a pointer to a keymap_t
|
||
etc.
|
||
}
|
||
|
||
Function KDGKBMODE(fd:longint;var param1 : longint):boolean;
|
||
Function KDSKBMODE(fd:longint;param1 : longint):boolean;
|
||
|
||
|
||
{ make tone}
|
||
Function KDMKTONE(fd:longint;param1 : longint):boolean;
|
||
|
||
{ see console.h for the definitions of the following FpIoctls}
|
||
{$ifndef definconsole}
|
||
Function KDGETMODE(fd:longint;var param1 : longint):boolean;
|
||
Function KDSETMODE(fd:longint;param1 : longint):boolean;
|
||
Function KDSBORDER(fd:longint;param1 : longint):boolean;
|
||
|
||
{$endif}
|
||
const
|
||
{ get/set keyboard lock state}
|
||
CLKED =1; { Caps locked}
|
||
NLKED =2; { Num locked}
|
||
SLKED =4; { Scroll locked}
|
||
ALKED =8; { AltGr locked}
|
||
LOCK_MASK =CLKED or NLKED or SLKED or ALKED;
|
||
|
||
Function KDGKBSTATE(fd:longint;var param1 : longint):boolean;
|
||
Function KDSKBSTATE(fd:longint;param1 : longint):boolean;
|
||
|
||
{ enable/disable I/O access}
|
||
Function KDENABIO(fd:longint):boolean;
|
||
Function KDDISABIO(fd:longint):boolean;
|
||
|
||
{ make sound}
|
||
Function KIOCSOUND(fd:longint;param1 : longint):boolean;
|
||
|
||
Const
|
||
{ get keyboard model}
|
||
KB_OTHER =0; { keyboard not known}
|
||
KB_84 =1; { 'old' 84 key AT-keyboard}
|
||
KB_101 =2; { MF-101 or MF-102 keyboard}
|
||
Function KDGKBTYPE(fd:longint;var param1 : longint):boolean;
|
||
|
||
const
|
||
{ get/set keyboard LED state}
|
||
LED_CAP =1; { Caps lock LED}
|
||
LED_NUM =2; { Num lock LED}
|
||
LED_SCR =4; { Scroll lock LED}
|
||
LED_MASK =LED_CAP or LED_NUM or LED_SCR;
|
||
Function KDGETLED(fd:longint;var param1 : longint):boolean;
|
||
Function KDSETLED(fd:longint;param1 : longint):boolean;
|
||
|
||
{ set keyboard repeat rate (obsolete, use KDSETREPEAT below)}
|
||
Function KDSETRAD(fd:longint;param1 : longint):boolean;
|
||
|
||
{ see console.h for the definition of the following FpIoctl}
|
||
{$ifndef definconsole}
|
||
Function KDRASTER(fd:longint;var param1 : scr_size_t):boolean;
|
||
|
||
{$endif}
|
||
|
||
TYPE
|
||
{ get keyboard information}
|
||
keyboard_info = Record
|
||
kb_index : longint; { kbdio index#}
|
||
kb_name : array[0..15] of char; { driver name}
|
||
kb_unit : longint; { unit#}
|
||
kb_type : longint; { KB_84, KB_101, KB_OTHER,...}
|
||
kb_config: longint; { device configuration flags}
|
||
kb_flags : longint; { internal flags}
|
||
end;
|
||
keyboard_info_t=keyboard_info;
|
||
|
||
Function KDGKBINFO(fd:longint;var param1 : keyboard_info_t):boolean;
|
||
|
||
Type
|
||
{ set/get keyboard repeat rate (new interface)}
|
||
keyboard_repeat = record
|
||
kb_repeat: array[0..1] of longint;
|
||
end;
|
||
|
||
keyboard_repeat_t = keyboard_repeat;
|
||
|
||
Function KDSETREPEAT(fd:longint;var param1 : keyboard_repeat_t):boolean;
|
||
Function KDGETREPEAT(fd:longint;var param1 : keyboard_repeat_t):boolean;
|
||
|
||
{ get/set key map/accent map/function key strings}
|
||
|
||
const
|
||
NUM_KEYS =256; { number of keys in table}
|
||
NUM_STATES =8; { states per key}
|
||
ALTGR_OFFSET =128; { offset for altlock keys}
|
||
|
||
NUM_DEADKEYS =15; { number of accent keys}
|
||
NUM_ACCENTCHARS =52; { max number of accent chars}
|
||
|
||
NUM_FKEYS =96; { max number of function keys}
|
||
MAXFK =16; { max length of a function key str}
|
||
|
||
type
|
||
keyent_t = record
|
||
map : array[0..NUM_STATES-1] of uchar;
|
||
spcl : uchar;
|
||
flgs : uchar;
|
||
end;
|
||
|
||
const
|
||
FLAG_LOCK_O =0;
|
||
FLAG_LOCK_C =1;
|
||
FLAG_LOCK_N =2;
|
||
|
||
type keymap = record
|
||
n_keys : ushort;
|
||
key : array[0..NUM_KEYS-1] OF keyent_t;
|
||
end;
|
||
|
||
keymap_t= keymap;
|
||
|
||
CONST
|
||
{ defines for "special" keys (spcl bit set in keymap)}
|
||
NOP =$00; { nothing (dead key)}
|
||
LSH =$02; { left shift key}
|
||
RSH =$03; { right shift key}
|
||
CLK =$04; { caps lock key}
|
||
NLK =$05; { num lock key}
|
||
SLK =$06; { scroll lock key}
|
||
LALT =$07; { left alt key}
|
||
BTAB =$08; { backwards tab}
|
||
LCTR =$09; { left control key}
|
||
NEXT =$0a; { switch to next screen}
|
||
F_SCR =$0b; { switch to first screen}
|
||
L_SCR =$1a; { switch to last screen}
|
||
F_FN =$1b; { first function key}
|
||
L_FN =$7a; { last function key}
|
||
{ $7b-$7f reserved do not use !}
|
||
RCTR =$80; { right control key}
|
||
RALT =$81; { right alt (altgr) key}
|
||
ALK =$82; { alt lock key}
|
||
ASH =$83; { alt shift key}
|
||
META =$84; { meta key}
|
||
RBT =$85; { boot machine}
|
||
DBG =$86; { call debugger}
|
||
SUSP =$87; { suspend power (APM)}
|
||
SPSC =$88; { toggle splash/text screen}
|
||
|
||
DGRA =$89; { grave}
|
||
F_ACC =DGRA; { first accent key}
|
||
|
||
DACU =$8a; { acute}
|
||
DCIR =$8b; { circumflex}
|
||
DTIL =$8c; { tilde}
|
||
DMAC =$8d; { macron}
|
||
DBRE =$8e; { breve}
|
||
DDOT =$8f; { dot}
|
||
DUML =$90; { umlaut/diaresis}
|
||
DDIA =$90; { diaresis}
|
||
DSLA =$91; { slash}
|
||
DRIN =$92; { ring}
|
||
DCED =$93; { cedilla}
|
||
DAPO =$94; { apostrophe}
|
||
DDAC =$95; { double acute}
|
||
DOGO =$96; { ogonek}
|
||
DCAR =$97; { caron}
|
||
L_ACC =DCAR; { last accent key}
|
||
|
||
STBY =$98; { Go into standby mode (apm)}
|
||
PREV =$99; { switch to previous screen}
|
||
PNC =$9a; { force system panic}
|
||
LSHA =$9b; { left shift key / alt lock}
|
||
RSHA =$9c; { right shift key / alt lock}
|
||
LCTRA =$9d; { left ctrl key / alt lock}
|
||
RCTRA =$9e; { right ctrl key / alt lock}
|
||
LALTA =$9f; { left alt key / alt lock}
|
||
RALTA =$a0; { right alt key / alt lock}
|
||
HALT =$a1; { halt machine}
|
||
PDWN =$a2; { halt machine and power down}
|
||
|
||
function kbio_F(x:longint):longint;
|
||
function kbio_S(x:longint):longint;
|
||
function kbio_ACC(x:longint):longint;
|
||
|
||
type acc_t = record
|
||
accchar : uchar;
|
||
map : array[0..NUM_ACCENTCHARS-1,0..1] of uchar;
|
||
end;
|
||
|
||
accentmap = record
|
||
n_accs : ushort;
|
||
acc : array[0..NUM_DEADKEYS-1] of acc_t
|
||
end;
|
||
|
||
accentmap_t = accentmap ;
|
||
|
||
keyarg = record
|
||
keynum : ushort;
|
||
key : keyent_t;
|
||
end;
|
||
|
||
keyarg_t = keyarg;
|
||
|
||
fkeytab = record
|
||
str : array [0..MAXFK-1] of uchar;
|
||
len : uchar;
|
||
end;
|
||
fkeytab_t = fkeytab;
|
||
|
||
fkeyarg =record
|
||
keynum : ushort;
|
||
keydef : array[0..MAXFK-1] of char;
|
||
flen :char;
|
||
end;
|
||
|
||
fkeyarg_t = fkeyarg;
|
||
|
||
Function GETFKEY(fd:longint;var param1 : fkeyarg_t):boolean;
|
||
Function SETFKEY(fd:longint;var param1 : fkeyarg_t):boolean;
|
||
|
||
{$ifndef definconsole}
|
||
Function GIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
|
||
Function PIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
|
||
{$endif}
|
||
Function GIO_KEYMAP(fd:longint;var param1 : keymap_t):boolean;
|
||
Function PIO_KEYMAP(fd:longint;var param1 : keymap_t):boolean;
|
||
Function GIO_DEADKEYMAP(fd:longint;var param1 : accentmap_t):boolean;
|
||
Function PIO_DEADKEYMAP(fd:longint;var param1 : accentmap_t):boolean;
|
||
Function GIO_KEYMAPENT(fd:longint;var param1 : keyarg_t):boolean;
|
||
Function PIO_KEYMAPENT(fd:longint;var param1 : keyarg_t):boolean;
|
||
|
||
{ flags set to the return value in the KD_XLATE mode}
|
||
Const
|
||
NOKEY =$100; { no key pressed marker}
|
||
FKEY =$200; { function key marker}
|
||
MKEY =$400; { meta key marker (prepend ESC)}
|
||
BKEY =$800; { backtab (ESC [ Z)}
|
||
|
||
SPCLKEY =$8000; { special key}
|
||
RELKEY =$4000; { key released}
|
||
ERRKEY =$2000; { error}
|
||
|
||
|
||
function KEYCHAR(c:longint):longint;
|
||
|
||
function KEYFLAGS(c:longint):longint;
|
||
|
||
{----------------------------- machine/mouse.h -------------------------------}
|
||
|
||
{ Based on machine/mouse.h from FreeBSD release 4.2
|
||
|
||
* Copyright (c) 1992, 1993 Erik Forsberg.
|
||
* Copyright (c) 1996, 1997 Kazutaka YOKOTA
|
||
* All rights reserved.
|
||
*
|
||
* Redistribution and use in source and binary forms, with or without
|
||
* modification, are permitted provided that the following conditions
|
||
* are met:
|
||
* 1. Redistributions of source code must retain the above copyright
|
||
* notice, this list of conditions and the following disclaimer.
|
||
*
|
||
* THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
||
* NO EVENT SHALL I BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
*
|
||
* $FreeBSD: src/sys/i386/include/mouse.h,v 1.15.2.1 2000/03/21 14:44:10 yokota Exp $
|
||
}
|
||
|
||
|
||
{ FpIoctls }
|
||
|
||
|
||
{ mouse status block }
|
||
|
||
type
|
||
mousestatus = record
|
||
flags : longint; { state change flags }
|
||
button : longint; { button status }
|
||
obutton : longint; { previous button status }
|
||
dx : longint; { x movement }
|
||
dy : longint; { y movement }
|
||
dz : longint; { z movement }
|
||
end;
|
||
|
||
mousestatus_t = mousestatus;
|
||
|
||
CONST
|
||
|
||
{ button }
|
||
MOUSE_BUTTON1DOWN =$0001; { left }
|
||
MOUSE_BUTTON2DOWN =$0002; { middle }
|
||
MOUSE_BUTTON3DOWN =$0004; { right }
|
||
MOUSE_BUTTON4DOWN =$0008;
|
||
MOUSE_BUTTON5DOWN =$0010;
|
||
MOUSE_BUTTON6DOWN =$0020;
|
||
MOUSE_BUTTON7DOWN =$0040;
|
||
MOUSE_BUTTON8DOWN =$0080;
|
||
MOUSE_MAXBUTTON =31;
|
||
MOUSE_STDBUTTONS =$0007; { buttons 1-3 }
|
||
MOUSE_EXTBUTTONS =$7ffffff8; { the others (28 of them!) }
|
||
MOUSE_BUTTONS =(MOUSE_STDBUTTONS or MOUSE_EXTBUTTONS);
|
||
|
||
{ flags }
|
||
MOUSE_STDBUTTONSCHANGED =MOUSE_STDBUTTONS;
|
||
MOUSE_EXTBUTTONSCHANGED =MOUSE_EXTBUTTONS;
|
||
MOUSE_BUTTONSCHANGED =MOUSE_BUTTONS;
|
||
MOUSE_POSCHANGED =$80000000;
|
||
|
||
type
|
||
mousehw =record
|
||
buttons : longint; { -1 if unknown }
|
||
iftype : longint; { MOUSE_IF_XXX }
|
||
_type : longint; { mouse/track ball/pad... }
|
||
model : longint; { I/F dependent model ID: MOUSE_MODEL_XXX }
|
||
hwid : longint; { I/F dependent hardware ID}
|
||
{ for the PS/2 mouse, it will be PSM_XXX_ID }
|
||
end;
|
||
|
||
mousehw_t = mousehw;
|
||
|
||
const
|
||
|
||
{ iftype }
|
||
MOUSE_IF_UNKNOWN =(-1);
|
||
MOUSE_IF_SERIAL =0;
|
||
MOUSE_IF_BUS =1;
|
||
MOUSE_IF_INPORT =2;
|
||
MOUSE_IF_PS2 =3;
|
||
MOUSE_IF_SYSMOUSE =4;
|
||
MOUSE_IF_USB =5;
|
||
|
||
{ type }
|
||
MOUSE_UNKNOWN =(-1); { should be treated as a mouse }
|
||
MOUSE_MOUSE =0;
|
||
MOUSE_TRACKBALL =1;
|
||
MOUSE_STICK =2;
|
||
MOUSE_PAD =3;
|
||
|
||
{ model }
|
||
MOUSE_MODEL_UNKNOWN =(-1);
|
||
MOUSE_MODEL_GENERIC =0;
|
||
MOUSE_MODEL_GLIDEPOINT =1;
|
||
MOUSE_MODEL_NETSCROLL =2;
|
||
MOUSE_MODEL_NET =3;
|
||
MOUSE_MODEL_INTELLI =4;
|
||
MOUSE_MODEL_THINK =5;
|
||
MOUSE_MODEL_EASYSCROLL =6;
|
||
MOUSE_MODEL_MOUSEMANPLUS =7;
|
||
MOUSE_MODEL_KIDSPAD =8;
|
||
MOUSE_MODEL_VERSAPAD =9;
|
||
MOUSE_MODEL_EXPLORER =10;
|
||
MOUSE_MODEL_4D =11;
|
||
MOUSE_MODEL_4DPLUS =12;
|
||
|
||
type mousemode = record
|
||
protocol : longint; { MOUSE_PROTO_XXX }
|
||
rate : longint; { report rate (per sec), -1 if unknown }
|
||
resolution : longint; { MOUSE_RES_XXX, -1 if unknown }
|
||
accelfactor : longint; { accelation factor (must be 1 or greater) }
|
||
level : longint; { driver operation level }
|
||
packetsize : longint; { the length of the data packet }
|
||
syncmask : array[0..1] of uchar; { sync. data bits in the header byte }
|
||
end;
|
||
|
||
type mousemode_t = mousemode;
|
||
|
||
{ protocol }
|
||
{
|
||
* Serial protocols:
|
||
* Microsoft, MouseSystems, Logitech, MM series, MouseMan, Hitachi Tablet,
|
||
* GlidePoint, IntelliMouse, Thinking Mouse, MouseRemote, Kidspad,
|
||
* VersaPad
|
||
* Bus mouse protocols:
|
||
* bus, InPort
|
||
* PS/2 mouse protocol:
|
||
* PS/2
|
||
}
|
||
const
|
||
|
||
MOUSE_PROTO_UNKNOWN =(-1);
|
||
MOUSE_PROTO_MS =0; { Microsoft Serial, 3 bytes }
|
||
MOUSE_PROTO_MSC =1; { Mouse Systems, 5 bytes }
|
||
MOUSE_PROTO_LOGI =2; { Logitech, 3 bytes }
|
||
MOUSE_PROTO_MM =3; { MM series, 3 bytes }
|
||
MOUSE_PROTO_LOGIMOUSEMAN =4; { Logitech MouseMan 3/4 bytes }
|
||
MOUSE_PROTO_BUS =5; { MS/Logitech bus mouse }
|
||
MOUSE_PROTO_INPORT =6; { MS/ATI InPort mouse }
|
||
MOUSE_PROTO_PS2 =7; { PS/2 mouse, 3 bytes }
|
||
MOUSE_PROTO_HITTAB =8; { Hitachi Tablet 3 bytes }
|
||
MOUSE_PROTO_GLIDEPOINT =9; { ALPS GlidePoint, 3/4 bytes }
|
||
MOUSE_PROTO_INTELLI =10; { MS IntelliMouse, 4 bytes }
|
||
MOUSE_PROTO_THINK =11; { Kensignton Thinking Mouse, 3/4 bytes }
|
||
MOUSE_PROTO_SYSMOUSE =12; { /dev/sysmouse }
|
||
MOUSE_PROTO_X10MOUSEREM =13; { X10 MouseRemote, 3 bytes }
|
||
MOUSE_PROTO_KIDSPAD =14; { Genius Kidspad }
|
||
MOUSE_PROTO_VERSAPAD =15; { Interlink VersaPad, 6 bytes }
|
||
|
||
MOUSE_RES_UNKNOWN =(-1);
|
||
MOUSE_RES_DEFAULT =0;
|
||
MOUSE_RES_LOW =(-2);
|
||
MOUSE_RES_MEDIUMLOW =(-3);
|
||
MOUSE_RES_MEDIUMHIGH =(-4);
|
||
MOUSE_RES_HIGH =(-5);
|
||
|
||
type mousedata = record
|
||
len : longint; { # of data in the buffer }
|
||
buf : array [0..15] of longint; { data buffer }
|
||
end;
|
||
|
||
mousedata_t=mousedata;
|
||
|
||
mousevar = record
|
||
_var : array[0..15] of longint;
|
||
end;
|
||
|
||
type mousevar_t = mousevar;
|
||
|
||
Function MOUSE_GETSTATUS(fd:longint;var param1 : mousestatus_t):boolean;
|
||
Function MOUSE_GETHWINFO(fd:longint;var param1 : mousehw_t):boolean;
|
||
Function MOUSE_GETMODE(fd:longint;var param1 : mousemode_t):boolean;
|
||
Function MOUSE_SETMODE(fd:longint;var param1 : mousemode_t):boolean;
|
||
Function MOUSE_GETLEVEL(fd:longint;var param1 : longint):boolean;
|
||
Function MOUSE_SETLEVEL(fd:longint;var param1 : longint):boolean;
|
||
Function MOUSE_GETVARS(fd:longint;var param1 : mousevar_t):boolean;
|
||
Function MOUSE_SETVARS(fd:longint;var param1 : mousevar_t):boolean;
|
||
Function MOUSE_READSTATE(fd:longint;var param1 : mousedata_t):boolean;
|
||
Function MOUSE_READDATA(fd:longint;var param1 : mousedata_t):boolean;
|
||
|
||
Function MOUSE_SETRESOLUTION(fd:longint;var param1 : longint):boolean;
|
||
Function MOUSE_SETSCALING(fd:longint;var param1 : longint):boolean;
|
||
Function MOUSE_SETRATE(fd:longint;var param1 : longint):boolean;
|
||
Function MOUSE_GETHWID(fd:longint;var param1 : longint):boolean;
|
||
|
||
|
||
|
||
const
|
||
|
||
{ magic numbers in var[0] }
|
||
MOUSE_VARS_PS2_SIG = $00325350; { 'PS2' }
|
||
MOUSE_VARS_BUS_SIG = $00535542; { 'BUS' }
|
||
MOUSE_VARS_INPORT_SIG = $00504e49; { 'INP' }
|
||
|
||
{ Microsoft Serial mouse data packet }
|
||
MOUSE_MSS_PACKETSIZE = 3;
|
||
MOUSE_MSS_SYNCMASK = $40;
|
||
MOUSE_MSS_SYNC = $40;
|
||
MOUSE_MSS_BUTTONS = $30;
|
||
MOUSE_MSS_BUTTON1DOWN = $20; { left }
|
||
MOUSE_MSS_BUTTON2DOWN = $00; { no middle button }
|
||
MOUSE_MSS_BUTTON3DOWN = $10; { right }
|
||
|
||
{ Logitech MouseMan data packet (M+ protocol) }
|
||
MOUSE_LMAN_BUTTON2DOWN = $20; { middle button, the 4th byte }
|
||
|
||
{ ALPS GlidePoint extention (variant of M+ protocol) }
|
||
MOUSE_ALPS_BUTTON2DOWN = $20; { middle button, the 4th byte }
|
||
MOUSE_ALPS_TAP = $10; { `tapping' action, the 4th byte }
|
||
|
||
{ Kinsington Thinking Mouse extention (variant of M+ protocol) }
|
||
MOUSE_THINK_BUTTON2DOWN = $20; { lower-left button, the 4th byte }
|
||
MOUSE_THINK_BUTTON4DOWN = $10; { lower-right button, the 4th byte }
|
||
|
||
{ MS IntelliMouse (variant of MS Serial) }
|
||
MOUSE_INTELLI_PACKETSIZE = 4;
|
||
MOUSE_INTELLI_BUTTON2DOWN = $10; { middle button in the 4th byte }
|
||
|
||
{ Mouse Systems Corp. mouse data packet }
|
||
MOUSE_MSC_PACKETSIZE = 5;
|
||
MOUSE_MSC_SYNCMASK = $f8;
|
||
MOUSE_MSC_SYNC = $80;
|
||
MOUSE_MSC_BUTTONS = $07;
|
||
MOUSE_MSC_BUTTON1UP = $04; { left }
|
||
MOUSE_MSC_BUTTON2UP = $02; { middle }
|
||
MOUSE_MSC_BUTTON3UP = $01; { right }
|
||
MOUSE_MSC_MAXBUTTON = 3;
|
||
|
||
{ MM series mouse data packet }
|
||
MOUSE_MM_PACKETSIZE = 3;
|
||
MOUSE_MM_SYNCMASK = $e0;
|
||
MOUSE_MM_SYNC = $80;
|
||
MOUSE_MM_BUTTONS = $07;
|
||
MOUSE_MM_BUTTON1DOWN = $04; { left }
|
||
MOUSE_MM_BUTTON2DOWN = $02; { middle }
|
||
MOUSE_MM_BUTTON3DOWN = $01; { right }
|
||
MOUSE_MM_XPOSITIVE = $10;
|
||
MOUSE_MM_YPOSITIVE = $08;
|
||
|
||
{ PS/2 mouse data packet }
|
||
MOUSE_PS2_PACKETSIZE = 3;
|
||
MOUSE_PS2_SYNCMASK = $c8;
|
||
MOUSE_PS2_SYNC = $08;
|
||
MOUSE_PS2_BUTTONS = $07; { = $03 for 2 button mouse }
|
||
MOUSE_PS2_BUTTON1DOWN = $01; { left }
|
||
MOUSE_PS2_BUTTON2DOWN = $04; { middle }
|
||
MOUSE_PS2_BUTTON3DOWN = $02; { right }
|
||
MOUSE_PS2_TAP = MOUSE_PS2_SYNC; { GlidePoint (PS/2) `tapping'
|
||
* Yes! this is the same bit
|
||
* as SYNC!
|
||
}
|
||
|
||
MOUSE_PS2_XNEG = $10;
|
||
MOUSE_PS2_YNEG = $20;
|
||
MOUSE_PS2_XOVERFLOW = $40;
|
||
MOUSE_PS2_YOVERFLOW = $80;
|
||
|
||
{ Logitech MouseMan+ (PS/2) data packet (PS/2++ protocol) }
|
||
MOUSE_PS2PLUS_SYNCMASK = $48;
|
||
MOUSE_PS2PLUS_SYNC = $48;
|
||
MOUSE_PS2PLUS_ZNEG = $08; { sign bit }
|
||
MOUSE_PS2PLUS_BUTTON4DOWN = $10; { 4th button on MouseMan+ }
|
||
MOUSE_PS2PLUS_BUTTON5DOWN = $20;
|
||
|
||
{ IBM ScrollPoint (PS/2) also uses PS/2++ protocol }
|
||
MOUSE_SPOINT_ZNEG = $80; { sign bits }
|
||
MOUSE_SPOINT_WNEG = $08;
|
||
|
||
{ MS IntelliMouse (PS/2) data packet }
|
||
MOUSE_PS2INTELLI_PACKETSIZE = 4;
|
||
{ some compatible mice have additional buttons }
|
||
MOUSE_PS2INTELLI_BUTTON4DOWN = $40;
|
||
MOUSE_PS2INTELLI_BUTTON5DOWN = $80;
|
||
|
||
{ MS IntelliMouse Explorer (PS/2) data packet (variation of IntelliMouse) }
|
||
MOUSE_EXPLORER_ZNEG = $08; { sign bit }
|
||
{ IntelliMouse Explorer has additional button data in the fourth byte }
|
||
MOUSE_EXPLORER_BUTTON4DOWN = $10;
|
||
MOUSE_EXPLORER_BUTTON5DOWN = $20;
|
||
|
||
{ Interlink VersaPad (serial I/F) data packet }
|
||
MOUSE_VERSA_PACKETSIZE = 6;
|
||
MOUSE_VERSA_IN_USE = $04;
|
||
MOUSE_VERSA_SYNCMASK = $c3;
|
||
MOUSE_VERSA_SYNC = $c0;
|
||
MOUSE_VERSA_BUTTONS = $30;
|
||
MOUSE_VERSA_BUTTON1DOWN = $20; { left }
|
||
MOUSE_VERSA_BUTTON2DOWN = $00; { middle }
|
||
MOUSE_VERSA_BUTTON3DOWN = $10; { right }
|
||
MOUSE_VERSA_TAP = $08;
|
||
|
||
{ Interlink VersaPad (PS/2 I/F) data packet }
|
||
MOUSE_PS2VERSA_PACKETSIZE = 6;
|
||
MOUSE_PS2VERSA_IN_USE = $10;
|
||
MOUSE_PS2VERSA_SYNCMASK = $e8;
|
||
MOUSE_PS2VERSA_SYNC = $c8;
|
||
MOUSE_PS2VERSA_BUTTONS = $05;
|
||
MOUSE_PS2VERSA_BUTTON1DOWN = $04; { left }
|
||
MOUSE_PS2VERSA_BUTTON2DOWN = $00; { middle }
|
||
MOUSE_PS2VERSA_BUTTON3DOWN = $01; { right }
|
||
MOUSE_PS2VERSA_TAP = $02;
|
||
|
||
{ A4 Tech 4D Mouse (PS/2) data packet }
|
||
MOUSE_4D_PACKETSIZE = 3;
|
||
MOUSE_4D_WHEELBITS = $f0;
|
||
|
||
{ A4 Tech 4D+ Mouse (PS/2) data packet }
|
||
MOUSE_4DPLUS_PACKETSIZE = 3;
|
||
MOUSE_4DPLUS_ZNEG = $04; { sign bit }
|
||
MOUSE_4DPLUS_BUTTON4DOWN = $08;
|
||
|
||
{ sysmouse extended data packet }
|
||
{
|
||
* /dev/sysmouse sends data in two formats, depending on the protocol
|
||
* level. At the level 0, format is exactly the same as MousSystems'
|
||
* five byte packet. At the level 1, the first five bytes are the same
|
||
* as at the level 0. There are additional three bytes which shows
|
||
* `dz' and the states of additional buttons. `dz' is expressed as the
|
||
* sum of the byte 5 and 6 which contain signed seven bit values.
|
||
* The states of the button 4 though 10 are in the bit 0 though 6 in
|
||
* the byte 7 respectively: 1 indicates the button is up.
|
||
}
|
||
MOUSE_SYS_PACKETSIZE = 8;
|
||
MOUSE_SYS_SYNCMASK = $f8;
|
||
MOUSE_SYS_SYNC = $80;
|
||
MOUSE_SYS_BUTTON1UP = $04; { left, 1st byte }
|
||
MOUSE_SYS_BUTTON2UP = $02; { middle, 1st byte }
|
||
MOUSE_SYS_BUTTON3UP = $01; { right, 1st byte }
|
||
MOUSE_SYS_BUTTON4UP = $0001; { 7th byte }
|
||
MOUSE_SYS_BUTTON5UP = $0002;
|
||
MOUSE_SYS_BUTTON6UP = $0004;
|
||
MOUSE_SYS_BUTTON7UP = $0008;
|
||
MOUSE_SYS_BUTTON8UP = $0010;
|
||
MOUSE_SYS_BUTTON9UP = $0020;
|
||
MOUSE_SYS_BUTTON10UP = $0040;
|
||
MOUSE_SYS_MAXBUTTON = 10;
|
||
MOUSE_SYS_STDBUTTONS = $07;
|
||
MOUSE_SYS_EXTBUTTONS = $7f; { the others }
|
||
|
||
{ Mouse remote socket }
|
||
_PATH_MOUSEREMOTE ='/var/run/MouseRemote';
|
||
|
||
|
||
{fbio FpIoctl numbers}
|
||
nr_FBIOGTYPE =$40184600;
|
||
nr_FBIOGINFO =$40184602;
|
||
nr_FBIOPUTCMAP =$80144603;
|
||
nr_FBIOGETCMAP =$80144604;
|
||
nr_FBIOGATTR =$40584606;
|
||
nr_FBIOSVIDEO =$80044607;
|
||
nr_FBIOGVIDEO =$40044608;
|
||
nr_FBIOSCURSOR =$802c4618;
|
||
nr_FBIOGCURSOR =$c02c4619;
|
||
nr_FBIOSCURPOS =$8004461a;
|
||
nr_FBIOGCURPOS =$8004461b;
|
||
nr_FBIOGCURMAX =$4004461c;
|
||
nr_FBIO_ADAPTER =$40044664;
|
||
nr_FBIO_ADPTYPE =$40044665;
|
||
nr_FBIO_ADPINFO =$40a44666;
|
||
nr_FBIO_MODEINFO =$c09c4667;
|
||
nr_FBIO_FINDMODE =$c09c4668;
|
||
nr_FBIO_GETMODE =$40044669;
|
||
nr_FBIO_SETMODE =$8004466a;
|
||
nr_FBIO_GETWINORG =$4004466b;
|
||
nr_FBIO_SETWINORG =$8004466c;
|
||
nr_FBIO_GETDISPSTART =$4008466d;
|
||
nr_FBIO_SETDISPSTART =$8008466e;
|
||
nr_FBIO_GETLINEWIDTH =$4004466f;
|
||
nr_FBIO_SETLINEWIDTH =$80044670;
|
||
nr_FBIO_GETPALETTE =$80184671;
|
||
nr_FBIO_SETPALETTE =$80184672;
|
||
|
||
{consio FpIoctl numbers}
|
||
|
||
nr_KDGETMODE =$40044b09;
|
||
nr_KDSETMODE =$20004b0a;
|
||
nr_KDSBORDER =$20004b0d;
|
||
nr_KDRASTER =$800c4b64;
|
||
nr_GIO_SCRNMAP =$41006b02;
|
||
nr_PIO_SCRNMAP =$81006b03;
|
||
nr_GIO_ATTR =$40046100;
|
||
nr_GIO_COLOR =$40046300;
|
||
nr_CONS_CURRENT =$40046301;
|
||
nr_CONS_GET =$40046302;
|
||
nr_CONS_IO =$20006303;
|
||
nr_CONS_BLANKTIME =$80046304;
|
||
nr_CONS_SSAVER =$80186305;
|
||
nr_CONS_GSAVER =$c0186306;
|
||
nr_CONS_CURSORTYPE =$80046307;
|
||
nr_CONS_BELLTYPE =$80046308;
|
||
nr_CONS_HISTORY =$80046309;
|
||
nr_CONS_MOUSECTL =$c014630a;
|
||
nr_CONS_IDLE =$4004630b;
|
||
nr_CONS_SAVERMODE =$8004630c;
|
||
nr_CONS_SAVERSTART =$8004630d;
|
||
nr_PIO_FONT8x8 =$88006340;
|
||
nr_GIO_FONT8x8 =$48006341;
|
||
nr_PIO_FONT8x14 =$8e006342;
|
||
nr_GIO_FONT8x14 =$4e006343;
|
||
nr_PIO_FONT8x16 =$90006344;
|
||
nr_GIO_FONT8x16 =$50006345;
|
||
nr_CONS_GETINFO =$c0146349;
|
||
nr_CONS_GETVERS =$4004634a;
|
||
nr_CONS_CURRENTADP =$40046364;
|
||
nr_CONS_ADPINFO =$c0a46365;
|
||
nr_CONS_MODEINFO =$c09c6366;
|
||
nr_CONS_FINDMODE =$c09c6367;
|
||
nr_CONS_SETWINORG =$20006368;
|
||
nr_CONS_SETKBD =$2000636e;
|
||
nr_CONS_RELKBD =$2000636f;
|
||
nr_CONS_GETTERM =$c0686370;
|
||
nr_CONS_SETTERM =$80686371;
|
||
nr_ADJUST_CLOCK =$20007464;
|
||
nr_VT_OPENQRY =$40047601;
|
||
nr_VT_SETMODE =$80087602;
|
||
nr_VT_GETMODE =$40087603;
|
||
nr_VT_RELDISP =$20007604;
|
||
nr_VT_ACTIVATE =$20007605;
|
||
nr_VT_WAITACTIVE =$20007606;
|
||
nr_VT_GETACTIVE =$40047607;
|
||
nr_VT_GETINDEX =$40047608;
|
||
nr_SW_B40x25 =$20005300;
|
||
nr_SW_C40x25 =$20005301;
|
||
nr_SW_B80x25 =$20005302;
|
||
nr_SW_C80x25 =$20005303;
|
||
nr_SW_BG320 =$20005304;
|
||
nr_SW_CG320 =$20005305;
|
||
nr_SW_BG640 =$20005306;
|
||
nr_SW_EGAMONO80x25 =$20005307;
|
||
nr_SW_CG320_D =$2000530d;
|
||
nr_SW_CG640_E =$2000530e;
|
||
nr_SW_EGAMONOAPA =$2000530f;
|
||
nr_SW_CG640x350 =$20005310;
|
||
nr_SW_ENH_MONOAPA2 =$20005311;
|
||
nr_SW_ENH_CG640 =$20005312;
|
||
nr_SW_ENH_B40x25 =$20005313;
|
||
nr_SW_ENH_C40x25 =$20005314;
|
||
nr_SW_ENH_B80x25 =$20005315;
|
||
nr_SW_ENH_C80x25 =$20005316;
|
||
nr_SW_ENH_B80x43 =$20005370;
|
||
nr_SW_ENH_C80x43 =$20005371;
|
||
nr_SW_MCAMODE =$200053ff;
|
||
nr_SW_VGA_C40x25 =$20005317;
|
||
nr_SW_VGA_C80x25 =$20005318;
|
||
nr_SW_VGA_C80x30 =$20005320;
|
||
nr_SW_VGA_C80x50 =$2000531e;
|
||
nr_SW_VGA_C80x60 =$20005322;
|
||
nr_SW_VGA_M80x25 =$20005319;
|
||
nr_SW_VGA_M80x30 =$20005321;
|
||
nr_SW_VGA_M80x50 =$2000531f;
|
||
nr_SW_VGA_M80x60 =$20005323;
|
||
nr_SW_VGA11 =$2000531a;
|
||
nr_SW_BG640x480 =$2000531a;
|
||
nr_SW_VGA12 =$2000531b;
|
||
nr_SW_CG640x480 =$2000531b;
|
||
nr_SW_VGA13 =$2000531c;
|
||
nr_SW_VGA_CG320 =$2000531c;
|
||
nr_SW_VGA_CG640 =$20005324;
|
||
nr_SW_VGA_MODEX =$20005325;
|
||
nr_SW_PC98_80x25 =$20005362;
|
||
nr_SW_PC98_80x30 =$20005363;
|
||
nr_SW_PC98_EGC640x400 =$20005364;
|
||
nr_SW_PC98_PEGC640x400 =$20005365;
|
||
nr_SW_PC98_PEGC640x480 =$20005366;
|
||
nr_SW_VGA_C90x25 =$20005328;
|
||
nr_SW_VGA_M90x25 =$20005329;
|
||
nr_SW_VGA_C90x30 =$2000532a;
|
||
nr_SW_VGA_M90x30 =$2000532b;
|
||
nr_SW_VGA_C90x43 =$2000532c;
|
||
nr_SW_VGA_M90x43 =$2000532d;
|
||
nr_SW_VGA_C90x50 =$2000532e;
|
||
nr_SW_VGA_M90x50 =$2000532f;
|
||
nr_SW_VGA_C90x60 =$20005330;
|
||
nr_SW_VGA_M90x60 =$20005331;
|
||
nr_SW_TEXT_80x25 =$200053c8;
|
||
nr_SW_TEXT_80x30 =$200053c9;
|
||
nr_SW_TEXT_80x43 =$200053ca;
|
||
nr_SW_TEXT_80x50 =$200053cb;
|
||
nr_SW_TEXT_80x60 =$200053cc;
|
||
nr_SW_TEXT_132x25 =$200053cd;
|
||
nr_SW_TEXT_132x30 =$200053ce;
|
||
nr_SW_TEXT_132x43 =$200053cf;
|
||
nr_SW_TEXT_132x50 =$200053d0;
|
||
nr_SW_TEXT_132x60 =$200053d1;
|
||
nr_SW_VESA_CG640x400 =$20005600;
|
||
nr_SW_VESA_CG640x480 =$20005601;
|
||
nr_SW_VESA_800x600 =$20005602;
|
||
nr_SW_VESA_CG800x600 =$20005603;
|
||
nr_SW_VESA_1024x768 =$20005604;
|
||
nr_SW_VESA_CG1024x768 =$20005605;
|
||
nr_SW_VESA_1280x1024 =$20005606;
|
||
nr_SW_VESA_CG1280x1024 =$20005607;
|
||
nr_SW_VESA_C80x60 =$20005608;
|
||
nr_SW_VESA_C132x25 =$20005609;
|
||
nr_SW_VESA_C132x43 =$2000560a;
|
||
nr_SW_VESA_C132x50 =$2000560b;
|
||
nr_SW_VESA_C132x60 =$2000560c;
|
||
nr_SW_VESA_32K_320 =$2000560d;
|
||
nr_SW_VESA_64K_320 =$2000560e;
|
||
nr_SW_VESA_FULL_320 =$2000560f;
|
||
nr_SW_VESA_32K_640 =$20005610;
|
||
nr_SW_VESA_64K_640 =$20005611;
|
||
nr_SW_VESA_FULL_640 =$20005612;
|
||
nr_SW_VESA_32K_800 =$20005613;
|
||
nr_SW_VESA_64K_800 =$20005614;
|
||
nr_SW_VESA_FULL_800 =$20005615;
|
||
nr_SW_VESA_32K_1024 =$20005616;
|
||
nr_SW_VESA_64K_1024 =$20005617;
|
||
nr_SW_VESA_FULL_1024 =$20005618;
|
||
nr_SW_VESA_32K_1280 =$20005619;
|
||
nr_SW_VESA_64K_1280 =$2000561a;
|
||
nr_SW_VESA_FULL_1280 =$2000561b;
|
||
|
||
{kbdsio FpIoctl numbers}
|
||
|
||
nr_KDGKBMODE =$40044b06;
|
||
nr_KDSKBMODE =$20004b07;
|
||
nr_KDMKTONE =$20004b08;
|
||
{$ifndef definconsole}
|
||
nr_KDGETMODE =$40044b09;
|
||
nr_KDSETMODE =$20004b0a;
|
||
nr_KDSBORDER =$20004b0d;
|
||
{$endif}
|
||
nr_KDGKBSTATE =$40044b13;
|
||
nr_KDSKBSTATE =$20004b14;
|
||
nr_KDENABIO =$20004b3c;
|
||
nr_KDDISABIO =$20004b3d;
|
||
nr_KIOCSOUND =$20004b3f;
|
||
nr_KDGKBTYPE =$40044b40;
|
||
nr_KDGETLED =$40044b41;
|
||
nr_KDSETLED =$20004b42;
|
||
nr_KDSETRAD =$20004b43;
|
||
{$ifndef definconsole}
|
||
nr_KDRASTER =$800c4b64;
|
||
{$endif}
|
||
nr_KDGKBINFO =$40244b65;
|
||
nr_KDSETREPEAT =$80084b66;
|
||
nr_KDGETREPEAT =$40084b67;
|
||
nr_GETFKEY =$c0146b00;
|
||
nr_SETFKEY =$c0146b01;
|
||
{$ifndef definconsole}
|
||
nr_GIO_SCRNMAP =$41006b02;
|
||
nr_PIO_SCRNMAP =$81006b03;
|
||
{$endif}
|
||
nr_GIO_KEYMAP =$4a026b06;
|
||
nr_PIO_KEYMAP =$8a026b07;
|
||
nr_GIO_DEADKEYMAP =$462a6b08;
|
||
nr_PIO_DEADKEYMAP =$862a6b09;
|
||
nr_GIO_KEYMAPENT =$c00c6b0a;
|
||
nr_PIO_KEYMAPENT =$800c6b0b;
|
||
|
||
|
||
|
||
{mouse FpIoctl numbers}
|
||
nr_MOUSE_GETSTATUS =$40184d00;
|
||
nr_MOUSE_GETHWINFO =$40144d01;
|
||
nr_MOUSE_GETMODE =$401c4d02;
|
||
nr_MOUSE_SETMODE =$801c4d03;
|
||
nr_MOUSE_GETLEVEL =$40044d04;
|
||
nr_MOUSE_SETLEVEL =$80044d05;
|
||
nr_MOUSE_GETVARS =$40404d06;
|
||
nr_MOUSE_SETVARS =$80404d07;
|
||
nr_MOUSE_READSTATE =$c0444d08;
|
||
nr_MOUSE_READDATA =$c0444d09;
|
||
nr_MOUSE_SETRESOLUTION =$80044d0a;
|
||
nr_MOUSE_SETSCALING =$80044d0b;
|
||
nr_MOUSE_SETRATE =$80044d0c;
|
||
nr_MOUSE_GETHWID =$40044d0d;
|
||
|
||
{------------- Added procedures ---------------}
|
||
|
||
function physicalconsole(fd:longint) : boolean;
|
||
|
||
IMPLEMENTATION
|
||
|
||
Uses BaseUnix,termio;
|
||
|
||
function physicalconsole(fd:longint) : boolean;
|
||
|
||
var name:string;
|
||
|
||
begin
|
||
if (isatty(fd)<>-1) then
|
||
begin
|
||
name:=ttyname(fd);
|
||
if Copy(name,1,8)<>'/dev/tty' then
|
||
physicalconsole:=false {isatty is true, but not /dev/tty.
|
||
Could be /dev/pts support, but
|
||
I reserve the case}
|
||
else
|
||
begin
|
||
if name[9]='v' then {ttyv is phys console. see /etc/ttys}
|
||
physicalconsole:=true
|
||
else
|
||
physicalconsole:=false;
|
||
end;
|
||
end
|
||
else
|
||
physicalconsole:=false; {Not a tty, then I don't know what it is}
|
||
end;
|
||
|
||
{other macros (not FpIoctl)}
|
||
|
||
function KEYCHAR(c:longint):longint;
|
||
|
||
begin
|
||
keychar:=c and $FF;
|
||
end;
|
||
|
||
function KEYFLAGS(c:longint):longint;
|
||
|
||
begin
|
||
keyflags:=c and NOT $FF;
|
||
end;
|
||
|
||
function kbio_F(x:longint):longint;
|
||
begin
|
||
kbio_f:=x+F_FN-1;
|
||
end;
|
||
|
||
function kbio_S(x:longint):longint;
|
||
begin
|
||
kbio_S:=x+F_SCR-1;
|
||
end;
|
||
|
||
function kbio_ACC(x:longint):longint;
|
||
begin
|
||
kbio_ACC:=x+F_ACC;
|
||
end;
|
||
|
||
{fbio.h FpIoctl's}
|
||
|
||
Function FBIOGTYPE(fd:longint;var param1 : fbtype):boolean;
|
||
{IOR('F',0,sizeof(struct fbtype) }
|
||
|
||
Begin
|
||
FBIOGTYPE:=FpIoctl(fd,nr_FBIOGTYPE,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOGINFO(fd:longint;var param1 : fbinfo):boolean;
|
||
{IOR('F',2,sizeof(struct fbinfo) }
|
||
|
||
Begin
|
||
FBIOGINFO:=FpIoctl(fd,nr_FBIOGINFO,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOPUTCMAP(fd:longint;var param1 : fbcmap):boolean;
|
||
{IOW('F',3,sizeof(struct fbcmap) }
|
||
|
||
Begin
|
||
FBIOPUTCMAP:=FpIoctl(fd,nr_FBIOPUTCMAP,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOGETCMAP(fd:longint;var param1 : fbcmap):boolean;
|
||
{IOW('F',4,sizeof(struct fbcmap) }
|
||
|
||
Begin
|
||
FBIOGETCMAP:=FpIoctl(fd,nr_FBIOGETCMAP,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOGATTR(fd:longint;var param1 : fbgattr):boolean;
|
||
{IOR('F',6,sizeof(struct fbgattr) }
|
||
|
||
Begin
|
||
FBIOGATTR:=FpIoctl(fd,nr_FBIOGATTR,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOSVIDEO(fd:longint;var param1 : longint):boolean;
|
||
{IOW('F',7,sizeof(int) }
|
||
|
||
Begin
|
||
FBIOSVIDEO:=FpIoctl(fd,nr_FBIOSVIDEO,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOGVIDEO(fd:longint;var param1 : longint):boolean;
|
||
{IOR('F',8,sizeof(int) }
|
||
|
||
Begin
|
||
FBIOGVIDEO:=FpIoctl(fd,nr_FBIOGVIDEO,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOSCURSOR(fd:longint;var param1 : fbcursor):boolean;
|
||
{IOW('F',24,sizeof(struct fbcursor) }
|
||
|
||
Begin
|
||
FBIOSCURSOR:=FpIoctl(fd,nr_FBIOSCURSOR,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOGCURSOR(fd:longint;var param1 : fbcursor):boolean;
|
||
{IOWR('F',25,sizeof(struct fbcursor) }
|
||
|
||
Begin
|
||
FBIOGCURSOR:=FpIoctl(fd,nr_FBIOGCURSOR,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOSCURPOS(fd:longint;var param1 : fbcurpos):boolean;
|
||
{IOW('F',26,sizeof(struct fbcurpos) }
|
||
|
||
Begin
|
||
FBIOSCURPOS:=FpIoctl(fd,nr_FBIOSCURPOS,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOGCURPOS(fd:longint;var param1 : fbcurpos):boolean;
|
||
{IOW('F',27,sizeof(struct fbcurpos) }
|
||
|
||
Begin
|
||
FBIOGCURPOS:=FpIoctl(fd,nr_FBIOGCURPOS,@param1)=0;
|
||
end;
|
||
|
||
Function FBIOGCURMAX(fd:longint;var param1 : fbcurpos):boolean;
|
||
{IOR('F',28,sizeof(struct fbcurpos) }
|
||
|
||
Begin
|
||
FBIOGCURMAX:=FpIoctl(fd,nr_FBIOGCURMAX,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_ADAPTER(fd:longint;var param1 : longint):boolean;
|
||
{IOR('F',100,sizeof(int) }
|
||
|
||
Begin
|
||
FBIO_ADAPTER:=FpIoctl(fd,nr_FBIO_ADAPTER,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_ADPTYPE(fd:longint;var param1 : longint):boolean;
|
||
{IOR('F',101,sizeof(int) }
|
||
|
||
Begin
|
||
FBIO_ADPTYPE:=FpIoctl(fd,nr_FBIO_ADPTYPE,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_ADPINFO(fd:longint;var param1 : video_adapter_info):boolean;
|
||
{IOR('F',102,sizeof(struct video_adapter_info) }
|
||
|
||
Begin
|
||
FBIO_ADPINFO:=FpIoctl(fd,nr_FBIO_ADPINFO,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_MODEINFO(fd:longint;var param1 : video_info):boolean;
|
||
{IOWR('F',103,sizeof(struct video_info) }
|
||
|
||
Begin
|
||
FBIO_MODEINFO:=FpIoctl(fd,nr_FBIO_MODEINFO,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_FINDMODE(fd:longint;var param1 : video_info):boolean;
|
||
{IOWR('F',104,sizeof(struct video_info) }
|
||
|
||
Begin
|
||
FBIO_FINDMODE:=FpIoctl(fd,nr_FBIO_FINDMODE,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_GETMODE(fd:longint;var param1 : longint):boolean;
|
||
{IOR('F',105,sizeof(int) }
|
||
|
||
Begin
|
||
FBIO_GETMODE:=FpIoctl(fd,nr_FBIO_GETMODE,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_SETMODE(fd:longint;var param1 : longint):boolean;
|
||
{IOW('F',106,sizeof(int) }
|
||
|
||
Begin
|
||
FBIO_SETMODE:=FpIoctl(fd,nr_FBIO_SETMODE,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_GETWINORG(fd:longint;var param1 : u_int):boolean;
|
||
{IOR('F',107,sizeof(u_int) }
|
||
|
||
Begin
|
||
FBIO_GETWINORG:=FpIoctl(fd,nr_FBIO_GETWINORG,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_SETWINORG(fd:longint;var param1 : u_int):boolean;
|
||
{IOW('F',108,sizeof(u_int) }
|
||
|
||
Begin
|
||
FBIO_SETWINORG:=FpIoctl(fd,nr_FBIO_SETWINORG,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_GETDISPSTART(fd:longint;var param1 : video_display_start_t):boolean;
|
||
{IOR('F',109,sizeof(video_display_start_t) }
|
||
|
||
Begin
|
||
FBIO_GETDISPSTART:=FpIoctl(fd,nr_FBIO_GETDISPSTART,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_SETDISPSTART(fd:longint;var param1 : video_display_start_t):boolean;
|
||
{IOW('F',110,sizeof(video_display_start_t) }
|
||
|
||
Begin
|
||
FBIO_SETDISPSTART:=FpIoctl(fd,nr_FBIO_SETDISPSTART,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_GETLINEWIDTH(fd:longint;var param1 : u_int):boolean;
|
||
{IOR('F',111,sizeof(u_int) }
|
||
|
||
Begin
|
||
FBIO_GETLINEWIDTH:=FpIoctl(fd,nr_FBIO_GETLINEWIDTH,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_SETLINEWIDTH(fd:longint;var param1 : u_int):boolean;
|
||
{IOW('F',112,sizeof(u_int) }
|
||
|
||
Begin
|
||
FBIO_SETLINEWIDTH:=FpIoctl(fd,nr_FBIO_SETLINEWIDTH,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_GETPALETTE(fd:longint;var param1 : video_color_palette_t):boolean;
|
||
{IOW('F',113,sizeof(video_color_palette_t) }
|
||
|
||
Begin
|
||
FBIO_GETPALETTE:=FpIoctl(fd,nr_FBIO_GETPALETTE,@param1)=0;
|
||
end;
|
||
|
||
Function FBIO_SETPALETTE(fd:longint;var param1 : video_color_palette_t):boolean;
|
||
{IOW('F',114,sizeof(video_color_palette_t) }
|
||
|
||
Begin
|
||
FBIO_SETPALETTE:=FpIoctl(fd,nr_FBIO_SETPALETTE,@param1)=0;
|
||
end;
|
||
|
||
|
||
{consio.h FpIoctl's}
|
||
|
||
Function KDGETMODE(fd:longint;var param1 : longint):boolean;
|
||
{IOR('K',9,sizeof(int) }
|
||
|
||
Begin
|
||
KDGETMODE:=FpIoctl(fd,nr_KDGETMODE,@param1)=0;
|
||
end;
|
||
|
||
Function KDSETMODE(fd:longint;param1 : longint):boolean;
|
||
{IO('K',10 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KDSETMODE:=FpIoctl(fd,nr_KDSETMODE,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function KDSBORDER(fd:longint;param1 : longint):boolean;
|
||
{IO('K',13 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KDSBORDER:=FpIoctl(fd,nr_KDSBORDER,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function KDRASTER(fd:longint;var param1 : scr_size_t):boolean;
|
||
{IOW('K',100,sizeof(scr_size_t) }
|
||
|
||
Begin
|
||
KDRASTER:=FpIoctl(fd,nr_KDRASTER,@param1)=0;
|
||
end;
|
||
|
||
Function GIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
|
||
{IOR('k',2,sizeof(scrmap_t) }
|
||
|
||
Begin
|
||
GIO_SCRNMAP:=FpIoctl(fd,nr_GIO_SCRNMAP,@param1)=0;
|
||
end;
|
||
|
||
Function PIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
|
||
{IOW('k',3,sizeof(scrmap_t) }
|
||
|
||
Begin
|
||
PIO_SCRNMAP:=FpIoctl(fd,nr_PIO_SCRNMAP,@param1)=0;
|
||
end;
|
||
|
||
Function GIO_ATTR(fd:longint;var param1 : longint):boolean;
|
||
{IOR('a',0,sizeof(int) }
|
||
|
||
Begin
|
||
GIO_ATTR:=FpIoctl(fd,nr_GIO_ATTR,@param1)=0;
|
||
end;
|
||
|
||
Function GIO_COLOR(fd:longint;var param1 : longint):boolean;
|
||
{IOR('c',0,sizeof(int) }
|
||
|
||
Begin
|
||
GIO_COLOR:=FpIoctl(fd,nr_GIO_COLOR,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_CURRENT(fd:longint;var param1 : longint):boolean;
|
||
{IOR('c',1,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_CURRENT:=FpIoctl(fd,nr_CONS_CURRENT,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_GET(fd:longint;var param1 : longint):boolean;
|
||
{IOR('c',2,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_GET:=FpIoctl(fd,nr_CONS_GET,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_IO(fd:longint):boolean;
|
||
{IO('c',3));
|
||
}
|
||
|
||
Begin
|
||
CONS_IO:=FpIoctl(fd,nr_CONS_IO,nil)=0;
|
||
end;
|
||
|
||
Function CONS_BLANKTIME(fd:longint;var param1 : longint):boolean;
|
||
{IOW('c',4,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_BLANKTIME:=FpIoctl(fd,nr_CONS_BLANKTIME,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_SSAVER(fd:longint;var param1 : ssaver_t):boolean;
|
||
{IOW('c',5,sizeof(ssaver_t) }
|
||
|
||
Begin
|
||
CONS_SSAVER:=FpIoctl(fd,nr_CONS_SSAVER,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_GSAVER(fd:longint;var param1 : ssaver_t):boolean;
|
||
{IOWR('c',6,sizeof(ssaver_t) }
|
||
|
||
Begin
|
||
CONS_GSAVER:=FpIoctl(fd,nr_CONS_GSAVER,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_CURSORTYPE(fd:longint;var param1 : longint):boolean;
|
||
{IOW('c',7,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_CURSORTYPE:=FpIoctl(fd,nr_CONS_CURSORTYPE,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_BELLTYPE(fd:longint;var param1 : longint):boolean;
|
||
{IOW('c',8,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_BELLTYPE:=FpIoctl(fd,nr_CONS_BELLTYPE,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_HISTORY(fd:longint;var param1 : longint):boolean;
|
||
{IOW('c',9,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_HISTORY:=FpIoctl(fd,nr_CONS_HISTORY,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_MOUSECTL(fd:longint;var param1 : mouse_info_t):boolean;
|
||
{IOWR('c',10,sizeof(mouse_info_t) }
|
||
|
||
Begin
|
||
CONS_MOUSECTL:=FpIoctl(fd,nr_CONS_MOUSECTL,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_IDLE(fd:longint;var param1 : longint):boolean;
|
||
{IOR('c',11,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_IDLE:=FpIoctl(fd,nr_CONS_IDLE,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_SAVERMODE(fd:longint;var param1 : longint):boolean;
|
||
{IOW('c',12,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_SAVERMODE:=FpIoctl(fd,nr_CONS_SAVERMODE,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_SAVERSTART(fd:longint;var param1 : longint):boolean;
|
||
{IOW('c',13,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_SAVERSTART:=FpIoctl(fd,nr_CONS_SAVERSTART,@param1)=0;
|
||
end;
|
||
|
||
Function PIO_FONT8x8(fd:longint;var param1 : fnt8_t):boolean;
|
||
{IOW('c',64,sizeof(fnt8_t) }
|
||
|
||
Begin
|
||
PIO_FONT8x8:=FpIoctl(fd,nr_PIO_FONT8x8,@param1)=0;
|
||
end;
|
||
|
||
Function GIO_FONT8x8(fd:longint;var param1 : fnt8_t):boolean;
|
||
{IOR('c',65,sizeof(fnt8_t) }
|
||
|
||
Begin
|
||
GIO_FONT8x8:=FpIoctl(fd,nr_GIO_FONT8x8,@param1)=0;
|
||
end;
|
||
|
||
Function PIO_FONT8x14(fd:longint;var param1 : fnt14_t):boolean;
|
||
{IOW('c',66,sizeof(fnt14_t) }
|
||
|
||
Begin
|
||
PIO_FONT8x14:=FpIoctl(fd,nr_PIO_FONT8x14,@param1)=0;
|
||
end;
|
||
|
||
Function GIO_FONT8x14(fd:longint;var param1 : fnt14_t):boolean;
|
||
{IOR('c',67,sizeof(fnt14_t) }
|
||
|
||
Begin
|
||
GIO_FONT8x14:=FpIoctl(fd,nr_GIO_FONT8x14,@param1)=0;
|
||
end;
|
||
|
||
Function PIO_FONT8x16(fd:longint;var param1 : fnt16_t):boolean;
|
||
{IOW('c',68,sizeof(fnt16_t) }
|
||
|
||
Begin
|
||
PIO_FONT8x16:=FpIoctl(fd,nr_PIO_FONT8x16,@param1)=0;
|
||
end;
|
||
|
||
Function GIO_FONT8x16(fd:longint;var param1 : fnt16_t):boolean;
|
||
{IOR('c',69,sizeof(fnt16_t) }
|
||
|
||
Begin
|
||
GIO_FONT8x16:=FpIoctl(fd,nr_GIO_FONT8x16,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_GETINFO(fd:longint;var param1 : vid_info_t):boolean;
|
||
{IOWR('c',73,sizeof(vid_info_t) }
|
||
|
||
Begin
|
||
CONS_GETINFO:=FpIoctl(fd,nr_CONS_GETINFO,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_GETVERS(fd:longint;var param1 : longint):boolean;
|
||
{IOR('c',74,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_GETVERS:=FpIoctl(fd,nr_CONS_GETVERS,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_CURRENTADP(fd:longint;var param1 : longint):boolean;
|
||
{IOR('c',100,sizeof(int) }
|
||
|
||
Begin
|
||
CONS_CURRENTADP:=FpIoctl(fd,nr_CONS_CURRENTADP,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_ADPINFO(fd:longint;var param1 : video_adapter_info_t):boolean;
|
||
{IOWR('c',101,sizeof(video_adapter_info_t) }
|
||
|
||
Begin
|
||
CONS_ADPINFO:=FpIoctl(fd,nr_CONS_ADPINFO,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_MODEINFO(fd:longint;var param1 : video_info_t):boolean;
|
||
{IOWR('c',102,sizeof(video_info_t) }
|
||
|
||
Begin
|
||
CONS_MODEINFO:=FpIoctl(fd,nr_CONS_MODEINFO,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_FINDMODE(fd:longint;var param1 : video_info_t):boolean;
|
||
{IOWR('c',103,sizeof(video_info_t) }
|
||
|
||
Begin
|
||
CONS_FINDMODE:=FpIoctl(fd,nr_CONS_FINDMODE,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_SETWINORG(fd:longint;param1 : longint):boolean;
|
||
{IO('c',104 /* int */));
|
||
}
|
||
|
||
Begin
|
||
CONS_SETWINORG:=FpIoctl(fd,nr_CONS_SETWINORG,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function CONS_SETKBD(fd:longint;param1 : longint):boolean;
|
||
{IO('c',110 /* int */));
|
||
}
|
||
|
||
Begin
|
||
CONS_SETKBD:=FpIoctl(fd,nr_CONS_SETKBD,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function CONS_RELKBD(fd:longint):boolean;
|
||
{IO('c',111));
|
||
}
|
||
|
||
Begin
|
||
CONS_RELKBD:=FpIoctl(fd,nr_CONS_RELKBD,nil)=0;
|
||
end;
|
||
|
||
Function CONS_GETTERM(fd:longint;var param1 : term_info_t):boolean;
|
||
{IOWR('c',112,sizeof(term_info_t) }
|
||
|
||
Begin
|
||
CONS_GETTERM:=FpIoctl(fd,nr_CONS_GETTERM,@param1)=0;
|
||
end;
|
||
|
||
Function CONS_SETTERM(fd:longint;var param1 : term_info_t):boolean;
|
||
{IOW('c',113,sizeof(term_info_t) }
|
||
|
||
Begin
|
||
CONS_SETTERM:=FpIoctl(fd,nr_CONS_SETTERM,@param1)=0;
|
||
end;
|
||
|
||
Function ADJUST_CLOCK(fd:longint):boolean;
|
||
{IO('t',100));
|
||
}
|
||
|
||
Begin
|
||
ADJUST_CLOCK:=FpIoctl(fd,nr_ADJUST_CLOCK,nil)=0;
|
||
end;
|
||
|
||
Function VT_OPENQRY(fd:longint;var param1 : longint):boolean;
|
||
{IOR('v',1,sizeof(int) }
|
||
|
||
Begin
|
||
VT_OPENQRY:=FpIoctl(fd,nr_VT_OPENQRY,@param1)=0;
|
||
end;
|
||
|
||
Function VT_SETMODE(fd:longint;var param1 : vtmode_t):boolean;
|
||
{IOW('v',2,sizeof(vtmode_t) }
|
||
|
||
Begin
|
||
VT_SETMODE:=FpIoctl(fd,nr_VT_SETMODE,@param1)=0;
|
||
end;
|
||
|
||
Function VT_GETMODE(fd:longint;var param1 : vtmode_t):boolean;
|
||
{IOR('v',3,sizeof(vtmode_t) }
|
||
|
||
Begin
|
||
VT_GETMODE:=FpIoctl(fd,nr_VT_GETMODE,@param1)=0;
|
||
end;
|
||
|
||
Function VT_RELDISP(fd:longint;param1 : longint):boolean;
|
||
{IO('v',4 /* int */));
|
||
}
|
||
|
||
Begin
|
||
VT_RELDISP:=FpIoctl(fd,nr_VT_RELDISP,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function VT_ACTIVATE(fd:longint;param1 : longint):boolean;
|
||
{IO('v',5 /* int */));
|
||
}
|
||
|
||
Begin
|
||
VT_ACTIVATE:=FpIoctl(fd,nr_VT_ACTIVATE,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function VT_WAITACTIVE(fd:longint;param1 : longint):boolean;
|
||
{IO('v',6 /* int */));
|
||
}
|
||
|
||
Begin
|
||
VT_WAITACTIVE:=FpIoctl(fd,nr_VT_WAITACTIVE,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function VT_GETACTIVE(fd:longint;var param1 : longint):boolean;
|
||
{IOR('v',7,sizeof(int) }
|
||
|
||
Begin
|
||
VT_GETACTIVE:=FpIoctl(fd,nr_VT_GETACTIVE,@param1)=0;
|
||
end;
|
||
|
||
Function VT_GETINDEX(fd:longint;var param1 : longint):boolean;
|
||
{IOR('v',8,sizeof(int) }
|
||
|
||
Begin
|
||
VT_GETINDEX:=FpIoctl(fd,nr_VT_GETINDEX,@param1)=0;
|
||
end;
|
||
|
||
Function SW_B40x25(fd:longint):boolean;
|
||
{IO('S',M_B40x25));
|
||
}
|
||
|
||
Begin
|
||
SW_B40x25:=FpIoctl(fd,nr_SW_B40x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_C40x25(fd:longint):boolean;
|
||
{IO('S',M_C40x25));
|
||
}
|
||
|
||
Begin
|
||
SW_C40x25:=FpIoctl(fd,nr_SW_C40x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_B80x25(fd:longint):boolean;
|
||
{IO('S',M_B80x25));
|
||
}
|
||
|
||
Begin
|
||
SW_B80x25:=FpIoctl(fd,nr_SW_B80x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_C80x25(fd:longint):boolean;
|
||
{IO('S',M_C80x25));
|
||
}
|
||
|
||
Begin
|
||
SW_C80x25:=FpIoctl(fd,nr_SW_C80x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_BG320(fd:longint):boolean;
|
||
{IO('S',M_BG320));
|
||
}
|
||
|
||
Begin
|
||
SW_BG320:=FpIoctl(fd,nr_SW_BG320,nil)=0;
|
||
end;
|
||
|
||
Function SW_CG320(fd:longint):boolean;
|
||
{IO('S',M_CG320));
|
||
}
|
||
|
||
Begin
|
||
SW_CG320:=FpIoctl(fd,nr_SW_CG320,nil)=0;
|
||
end;
|
||
|
||
Function SW_BG640(fd:longint):boolean;
|
||
{IO('S',M_BG640));
|
||
}
|
||
|
||
Begin
|
||
SW_BG640:=FpIoctl(fd,nr_SW_BG640,nil)=0;
|
||
end;
|
||
|
||
Function SW_EGAMONO80x25(fd:longint):boolean;
|
||
{IO('S',M_EGAMONO80x25));
|
||
}
|
||
|
||
Begin
|
||
SW_EGAMONO80x25:=FpIoctl(fd,nr_SW_EGAMONO80x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_CG320_D(fd:longint):boolean;
|
||
{IO('S',M_CG320_D));
|
||
}
|
||
|
||
Begin
|
||
SW_CG320_D:=FpIoctl(fd,nr_SW_CG320_D,nil)=0;
|
||
end;
|
||
|
||
Function SW_CG640_E(fd:longint):boolean;
|
||
{IO('S',M_CG640_E));
|
||
}
|
||
|
||
Begin
|
||
SW_CG640_E:=FpIoctl(fd,nr_SW_CG640_E,nil)=0;
|
||
end;
|
||
|
||
Function SW_EGAMONOAPA(fd:longint):boolean;
|
||
{IO('S',M_EGAMONOAPA));
|
||
}
|
||
|
||
Begin
|
||
SW_EGAMONOAPA:=FpIoctl(fd,nr_SW_EGAMONOAPA,nil)=0;
|
||
end;
|
||
|
||
Function SW_CG640x350(fd:longint):boolean;
|
||
{IO('S',M_CG640x350));
|
||
}
|
||
|
||
Begin
|
||
SW_CG640x350:=FpIoctl(fd,nr_SW_CG640x350,nil)=0;
|
||
end;
|
||
|
||
Function SW_ENH_MONOAPA2(fd:longint):boolean;
|
||
{IO('S',M_ENHMONOAPA2));
|
||
}
|
||
|
||
Begin
|
||
SW_ENH_MONOAPA2:=FpIoctl(fd,nr_SW_ENH_MONOAPA2,nil)=0;
|
||
end;
|
||
|
||
Function SW_ENH_CG640(fd:longint):boolean;
|
||
{IO('S',M_ENH_CG640));
|
||
}
|
||
|
||
Begin
|
||
SW_ENH_CG640:=FpIoctl(fd,nr_SW_ENH_CG640,nil)=0;
|
||
end;
|
||
|
||
Function SW_ENH_B40x25(fd:longint):boolean;
|
||
{IO('S',M_ENH_B40x25));
|
||
}
|
||
|
||
Begin
|
||
SW_ENH_B40x25:=FpIoctl(fd,nr_SW_ENH_B40x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_ENH_C40x25(fd:longint):boolean;
|
||
{IO('S',M_ENH_C40x25));
|
||
}
|
||
|
||
Begin
|
||
SW_ENH_C40x25:=FpIoctl(fd,nr_SW_ENH_C40x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_ENH_B80x25(fd:longint):boolean;
|
||
{IO('S',M_ENH_B80x25));
|
||
}
|
||
|
||
Begin
|
||
SW_ENH_B80x25:=FpIoctl(fd,nr_SW_ENH_B80x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_ENH_C80x25(fd:longint):boolean;
|
||
{IO('S',M_ENH_C80x25));
|
||
}
|
||
|
||
Begin
|
||
SW_ENH_C80x25:=FpIoctl(fd,nr_SW_ENH_C80x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_ENH_B80x43(fd:longint):boolean;
|
||
{IO('S',M_ENH_B80x43));
|
||
}
|
||
|
||
Begin
|
||
SW_ENH_B80x43:=FpIoctl(fd,nr_SW_ENH_B80x43,nil)=0;
|
||
end;
|
||
|
||
Function SW_ENH_C80x43(fd:longint):boolean;
|
||
{IO('S',M_ENH_C80x43));
|
||
}
|
||
|
||
Begin
|
||
SW_ENH_C80x43:=FpIoctl(fd,nr_SW_ENH_C80x43,nil)=0;
|
||
end;
|
||
|
||
Function SW_MCAMODE(fd:longint):boolean;
|
||
{IO('S',M_MCA_MODE));
|
||
}
|
||
|
||
Begin
|
||
SW_MCAMODE:=FpIoctl(fd,nr_SW_MCAMODE,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C40x25(fd:longint):boolean;
|
||
{IO('S',M_VGA_C40x25));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C40x25:=FpIoctl(fd,nr_SW_VGA_C40x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C80x25(fd:longint):boolean;
|
||
{IO('S',M_VGA_C80x25));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C80x25:=FpIoctl(fd,nr_SW_VGA_C80x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C80x30(fd:longint):boolean;
|
||
{IO('S',M_VGA_C80x30));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C80x30:=FpIoctl(fd,nr_SW_VGA_C80x30,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C80x50(fd:longint):boolean;
|
||
{IO('S',M_VGA_C80x50));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C80x50:=FpIoctl(fd,nr_SW_VGA_C80x50,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C80x60(fd:longint):boolean;
|
||
{IO('S',M_VGA_C80x60));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C80x60:=FpIoctl(fd,nr_SW_VGA_C80x60,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_M80x25(fd:longint):boolean;
|
||
{IO('S',M_VGA_M80x25));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_M80x25:=FpIoctl(fd,nr_SW_VGA_M80x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_M80x30(fd:longint):boolean;
|
||
{IO('S',M_VGA_M80x30));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_M80x30:=FpIoctl(fd,nr_SW_VGA_M80x30,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_M80x50(fd:longint):boolean;
|
||
{IO('S',M_VGA_M80x50));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_M80x50:=FpIoctl(fd,nr_SW_VGA_M80x50,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_M80x60(fd:longint):boolean;
|
||
{IO('S',M_VGA_M80x60));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_M80x60:=FpIoctl(fd,nr_SW_VGA_M80x60,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA11(fd:longint):boolean;
|
||
{IO('S',M_VGA11));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA11:=FpIoctl(fd,nr_SW_VGA11,nil)=0;
|
||
end;
|
||
|
||
Function SW_BG640x480(fd:longint):boolean;
|
||
{IO('S',M_VGA11));
|
||
}
|
||
|
||
Begin
|
||
SW_BG640x480:=FpIoctl(fd,nr_SW_BG640x480,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA12(fd:longint):boolean;
|
||
{IO('S',M_VGA12));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA12:=FpIoctl(fd,nr_SW_VGA12,nil)=0;
|
||
end;
|
||
|
||
Function SW_CG640x480(fd:longint):boolean;
|
||
{IO('S',M_VGA12));
|
||
}
|
||
|
||
Begin
|
||
SW_CG640x480:=FpIoctl(fd,nr_SW_CG640x480,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA13(fd:longint):boolean;
|
||
{IO('S',M_VGA13));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA13:=FpIoctl(fd,nr_SW_VGA13,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_CG320(fd:longint):boolean;
|
||
{IO('S',M_VGA13));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_CG320:=FpIoctl(fd,nr_SW_VGA_CG320,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_CG640(fd:longint):boolean;
|
||
{IO('S',M_VGA_CG640));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_CG640:=FpIoctl(fd,nr_SW_VGA_CG640,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_MODEX(fd:longint):boolean;
|
||
{IO('S',M_VGA_MODEX));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_MODEX:=FpIoctl(fd,nr_SW_VGA_MODEX,nil)=0;
|
||
end;
|
||
|
||
Function SW_PC98_80x25(fd:longint):boolean;
|
||
{IO('S',M_PC98_80x25));
|
||
}
|
||
|
||
Begin
|
||
SW_PC98_80x25:=FpIoctl(fd,nr_SW_PC98_80x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_PC98_80x30(fd:longint):boolean;
|
||
{IO('S',M_PC98_80x30));
|
||
}
|
||
|
||
Begin
|
||
SW_PC98_80x30:=FpIoctl(fd,nr_SW_PC98_80x30,nil)=0;
|
||
end;
|
||
|
||
Function SW_PC98_EGC640x400(fd:longint):boolean;
|
||
{IO('S',M_PC98_EGC640x400));
|
||
}
|
||
|
||
Begin
|
||
SW_PC98_EGC640x400:=FpIoctl(fd,nr_SW_PC98_EGC640x400,nil)=0;
|
||
end;
|
||
|
||
Function SW_PC98_PEGC640x400(fd:longint):boolean;
|
||
{IO('S',M_PC98_PEGC640x400));
|
||
}
|
||
|
||
Begin
|
||
SW_PC98_PEGC640x400:=FpIoctl(fd,nr_SW_PC98_PEGC640x400,nil)=0;
|
||
end;
|
||
|
||
Function SW_PC98_PEGC640x480(fd:longint):boolean;
|
||
{IO('S',M_PC98_PEGC640x480));
|
||
}
|
||
|
||
Begin
|
||
SW_PC98_PEGC640x480:=FpIoctl(fd,nr_SW_PC98_PEGC640x480,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C90x25(fd:longint):boolean;
|
||
{IO('S',M_VGA_C90x25));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C90x25:=FpIoctl(fd,nr_SW_VGA_C90x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_M90x25(fd:longint):boolean;
|
||
{IO('S',M_VGA_M90x25));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_M90x25:=FpIoctl(fd,nr_SW_VGA_M90x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C90x30(fd:longint):boolean;
|
||
{IO('S',M_VGA_C90x30));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C90x30:=FpIoctl(fd,nr_SW_VGA_C90x30,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_M90x30(fd:longint):boolean;
|
||
{IO('S',M_VGA_M90x30));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_M90x30:=FpIoctl(fd,nr_SW_VGA_M90x30,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C90x43(fd:longint):boolean;
|
||
{IO('S',M_VGA_C90x43));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C90x43:=FpIoctl(fd,nr_SW_VGA_C90x43,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_M90x43(fd:longint):boolean;
|
||
{IO('S',M_VGA_M90x43));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_M90x43:=FpIoctl(fd,nr_SW_VGA_M90x43,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C90x50(fd:longint):boolean;
|
||
{IO('S',M_VGA_C90x50));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C90x50:=FpIoctl(fd,nr_SW_VGA_C90x50,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_M90x50(fd:longint):boolean;
|
||
{IO('S',M_VGA_M90x50));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_M90x50:=FpIoctl(fd,nr_SW_VGA_M90x50,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_C90x60(fd:longint):boolean;
|
||
{IO('S',M_VGA_C90x60));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_C90x60:=FpIoctl(fd,nr_SW_VGA_C90x60,nil)=0;
|
||
end;
|
||
|
||
Function SW_VGA_M90x60(fd:longint):boolean;
|
||
{IO('S',M_VGA_M90x60));
|
||
}
|
||
|
||
Begin
|
||
SW_VGA_M90x60:=FpIoctl(fd,nr_SW_VGA_M90x60,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_80x25(fd:longint):boolean;
|
||
{IO('S',M_TEXT_80x25));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_80x25:=FpIoctl(fd,nr_SW_TEXT_80x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_80x30(fd:longint):boolean;
|
||
{IO('S',M_TEXT_80x30));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_80x30:=FpIoctl(fd,nr_SW_TEXT_80x30,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_80x43(fd:longint):boolean;
|
||
{IO('S',M_TEXT_80x43));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_80x43:=FpIoctl(fd,nr_SW_TEXT_80x43,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_80x50(fd:longint):boolean;
|
||
{IO('S',M_TEXT_80x50));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_80x50:=FpIoctl(fd,nr_SW_TEXT_80x50,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_80x60(fd:longint):boolean;
|
||
{IO('S',M_TEXT_80x60));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_80x60:=FpIoctl(fd,nr_SW_TEXT_80x60,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_132x25(fd:longint):boolean;
|
||
{IO('S',M_TEXT_132x25));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_132x25:=FpIoctl(fd,nr_SW_TEXT_132x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_132x30(fd:longint):boolean;
|
||
{IO('S',M_TEXT_132x30));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_132x30:=FpIoctl(fd,nr_SW_TEXT_132x30,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_132x43(fd:longint):boolean;
|
||
{IO('S',M_TEXT_132x43));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_132x43:=FpIoctl(fd,nr_SW_TEXT_132x43,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_132x50(fd:longint):boolean;
|
||
{IO('S',M_TEXT_132x50));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_132x50:=FpIoctl(fd,nr_SW_TEXT_132x50,nil)=0;
|
||
end;
|
||
|
||
Function SW_TEXT_132x60(fd:longint):boolean;
|
||
{IO('S',M_TEXT_132x60));
|
||
}
|
||
|
||
Begin
|
||
SW_TEXT_132x60:=FpIoctl(fd,nr_SW_TEXT_132x60,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_CG640x400(fd:longint):boolean;
|
||
{IO('V',M_VESA_CG640x400 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_CG640x400:=FpIoctl(fd,nr_SW_VESA_CG640x400,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_CG640x480(fd:longint):boolean;
|
||
{IO('V',M_VESA_CG640x480 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_CG640x480:=FpIoctl(fd,nr_SW_VESA_CG640x480,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_800x600(fd:longint):boolean;
|
||
{IO('V',M_VESA_800x600 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_800x600:=FpIoctl(fd,nr_SW_VESA_800x600,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_CG800x600(fd:longint):boolean;
|
||
{IO('V',M_VESA_CG800x600 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_CG800x600:=FpIoctl(fd,nr_SW_VESA_CG800x600,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_1024x768(fd:longint):boolean;
|
||
{IO('V',M_VESA_1024x768 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_1024x768:=FpIoctl(fd,nr_SW_VESA_1024x768,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_CG1024x768(fd:longint):boolean;
|
||
{IO('V',M_VESA_CG1024x768 - M_VESA_BAS));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_CG1024x768:=FpIoctl(fd,nr_SW_VESA_CG1024x768,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_1280x1024(fd:longint):boolean;
|
||
{IO('V',M_VESA_1280x1024 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_1280x1024:=FpIoctl(fd,nr_SW_VESA_1280x1024,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_CG1280x1024(fd:longint):boolean;
|
||
{IO('V',M_VESA_CG1280x1024 - M_VESA_BA));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_CG1280x1024:=FpIoctl(fd,nr_SW_VESA_CG1280x1024,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_C80x60(fd:longint):boolean;
|
||
{IO('V',M_VESA_C80x60 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_C80x60:=FpIoctl(fd,nr_SW_VESA_C80x60,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_C132x25(fd:longint):boolean;
|
||
{IO('V',M_VESA_C132x25 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_C132x25:=FpIoctl(fd,nr_SW_VESA_C132x25,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_C132x43(fd:longint):boolean;
|
||
{IO('V',M_VESA_C132x43 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_C132x43:=FpIoctl(fd,nr_SW_VESA_C132x43,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_C132x50(fd:longint):boolean;
|
||
{IO('V',M_VESA_C132x50 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_C132x50:=FpIoctl(fd,nr_SW_VESA_C132x50,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_C132x60(fd:longint):boolean;
|
||
{IO('V',M_VESA_C132x60 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_C132x60:=FpIoctl(fd,nr_SW_VESA_C132x60,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_32K_320(fd:longint):boolean;
|
||
{IO('V',M_VESA_32K_320 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_32K_320:=FpIoctl(fd,nr_SW_VESA_32K_320,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_64K_320(fd:longint):boolean;
|
||
{IO('V',M_VESA_64K_320 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_64K_320:=FpIoctl(fd,nr_SW_VESA_64K_320,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_FULL_320(fd:longint):boolean;
|
||
{IO('V',M_VESA_FULL_320 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_FULL_320:=FpIoctl(fd,nr_SW_VESA_FULL_320,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_32K_640(fd:longint):boolean;
|
||
{IO('V',M_VESA_32K_640 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_32K_640:=FpIoctl(fd,nr_SW_VESA_32K_640,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_64K_640(fd:longint):boolean;
|
||
{IO('V',M_VESA_64K_640 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_64K_640:=FpIoctl(fd,nr_SW_VESA_64K_640,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_FULL_640(fd:longint):boolean;
|
||
{IO('V',M_VESA_FULL_640 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_FULL_640:=FpIoctl(fd,nr_SW_VESA_FULL_640,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_32K_800(fd:longint):boolean;
|
||
{IO('V',M_VESA_32K_800 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_32K_800:=FpIoctl(fd,nr_SW_VESA_32K_800,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_64K_800(fd:longint):boolean;
|
||
{IO('V',M_VESA_64K_800 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_64K_800:=FpIoctl(fd,nr_SW_VESA_64K_800,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_FULL_800(fd:longint):boolean;
|
||
{IO('V',M_VESA_FULL_800 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_FULL_800:=FpIoctl(fd,nr_SW_VESA_FULL_800,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_32K_1024(fd:longint):boolean;
|
||
{IO('V',M_VESA_32K_1024 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_32K_1024:=FpIoctl(fd,nr_SW_VESA_32K_1024,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_64K_1024(fd:longint):boolean;
|
||
{IO('V',M_VESA_64K_1024 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_64K_1024:=FpIoctl(fd,nr_SW_VESA_64K_1024,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_FULL_1024(fd:longint):boolean;
|
||
{IO('V',M_VESA_FULL_1024 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_FULL_1024:=FpIoctl(fd,nr_SW_VESA_FULL_1024,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_32K_1280(fd:longint):boolean;
|
||
{IO('V',M_VESA_32K_1280 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_32K_1280:=FpIoctl(fd,nr_SW_VESA_32K_1280,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_64K_1280(fd:longint):boolean;
|
||
{IO('V',M_VESA_64K_1280 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_64K_1280:=FpIoctl(fd,nr_SW_VESA_64K_1280,nil)=0;
|
||
end;
|
||
|
||
Function SW_VESA_FULL_1280(fd:longint):boolean;
|
||
{IO('V',M_VESA_FULL_1280 - M_VESA_BASE));
|
||
}
|
||
|
||
Begin
|
||
SW_VESA_FULL_1280:=FpIoctl(fd,nr_SW_VESA_FULL_1280,nil)=0;
|
||
end;
|
||
|
||
{----------------------------- kbio.h FpIoctl's ---------------------------}
|
||
|
||
Function KDGKBMODE(fd:longint;var param1 : longint):boolean;
|
||
{IOR('K',6,sizeof(int) }
|
||
|
||
Begin
|
||
KDGKBMODE:=FpIoctl(fd,nr_KDGKBMODE,@param1)=0;
|
||
end;
|
||
|
||
Function KDSKBMODE(fd:longint;param1 : longint):boolean;
|
||
{IO('K',7 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KDSKBMODE:=FpIoctl(fd,nr_KDSKBMODE,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function KDMKTONE(fd:longint;param1 : longint):boolean;
|
||
{IO('K',8 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KDMKTONE:=FpIoctl(fd,nr_KDMKTONE,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
{$ifndef definconsole}
|
||
Function KDGETMODE(fd:longint;var param1 : longint):boolean;
|
||
{IOR('K',9,sizeof(int) }
|
||
|
||
Begin
|
||
KDGETMODE:=FpIoctl(fd,nr_KDGETMODE,@param1)=0;
|
||
end;
|
||
|
||
Function KDSETMODE(fd:longint;param1 : longint):boolean;
|
||
{IO('K',10 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KDSETMODE:=FpIoctl(fd,nr_KDSETMODE,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function KDSBORDER(fd:longint;param1 : longint):boolean;
|
||
{IO('K',13 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KDSBORDER:=FpIoctl(fd,nr_KDSBORDER,pointer(ptrint(param1)))=0;
|
||
end;
|
||
{$endif}
|
||
Function KDGKBSTATE(fd:longint;var param1 : longint):boolean;
|
||
{IOR('K',19,sizeof(int) }
|
||
|
||
Begin
|
||
KDGKBSTATE:=FpIoctl(fd,nr_KDGKBSTATE,@param1)=0;
|
||
end;
|
||
|
||
Function KDSKBSTATE(fd:longint;param1 : longint):boolean;
|
||
{IO('K',20 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KDSKBSTATE:=FpIoctl(fd,nr_KDSKBSTATE,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function KDENABIO(fd:longint):boolean;
|
||
{IO('K',60));
|
||
}
|
||
|
||
Begin
|
||
KDENABIO:=FpIoctl(fd,nr_KDENABIO,nil)=0;
|
||
end;
|
||
|
||
Function KDDISABIO(fd:longint):boolean;
|
||
{IO('K',61));
|
||
}
|
||
|
||
Begin
|
||
KDDISABIO:=FpIoctl(fd,nr_KDDISABIO,nil)=0;
|
||
end;
|
||
|
||
Function KIOCSOUND(fd:longint;param1 : longint):boolean;
|
||
{IO('K',63 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KIOCSOUND:=FpIoctl(fd,nr_KIOCSOUND,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function KDGKBTYPE(fd:longint;var param1 : longint):boolean;
|
||
{IOR('K',64,sizeof(int) }
|
||
|
||
Begin
|
||
KDGKBTYPE:=FpIoctl(fd,nr_KDGKBTYPE,@param1)=0;
|
||
end;
|
||
|
||
Function KDGETLED(fd:longint;var param1 : longint):boolean;
|
||
{IOR('K',65,sizeof(int) }
|
||
|
||
Begin
|
||
KDGETLED:=FpIoctl(fd,nr_KDGETLED,@param1)=0;
|
||
end;
|
||
|
||
Function KDSETLED(fd:longint;param1 : longint):boolean;
|
||
{IO('K',66 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KDSETLED:=FpIoctl(fd,nr_KDSETLED,pointer(ptrint(param1)))=0;
|
||
end;
|
||
|
||
Function KDSETRAD(fd:longint;param1 : longint):boolean;
|
||
{IO('K',67 /* int */));
|
||
}
|
||
|
||
Begin
|
||
KDSETRAD:=FpIoctl(fd,nr_KDSETRAD,pointer(ptrint(param1)))=0;
|
||
end;
|
||
{$ifndef definconsole}
|
||
|
||
Function KDRASTER(fd:longint;var param1 : scr_size_t):boolean;
|
||
{IOW('K',100,sizeof(scr_size_t) }
|
||
|
||
Begin
|
||
KDRASTER:=FpIoctl(fd,nr_KDRASTER,@param1)=0;
|
||
end;
|
||
{$endif}
|
||
Function KDGKBINFO(fd:longint;var param1 : keyboard_info_t):boolean;
|
||
{IOR('K',101,sizeof(keyboard_info_t) }
|
||
|
||
Begin
|
||
KDGKBINFO:=FpIoctl(fd,nr_KDGKBINFO,@param1)=0;
|
||
end;
|
||
|
||
Function KDSETREPEAT(fd:longint;var param1 : keyboard_repeat_t):boolean;
|
||
{IOW('K',102,sizeof(keyboard_repeat_t) }
|
||
|
||
Begin
|
||
KDSETREPEAT:=FpIoctl(fd,nr_KDSETREPEAT,@param1)=0;
|
||
end;
|
||
|
||
Function KDGETREPEAT(fd:longint;var param1 : keyboard_repeat_t):boolean;
|
||
{IOR('K',103,sizeof(keyboard_repeat_t) }
|
||
|
||
Begin
|
||
KDGETREPEAT:=FpIoctl(fd,nr_KDGETREPEAT,@param1)=0;
|
||
end;
|
||
|
||
Function GETFKEY(fd:longint;var param1 : fkeyarg_t):boolean;
|
||
{IOWR('k',0,sizeof(fkeyarg_t) }
|
||
|
||
Begin
|
||
GETFKEY:=FpIoctl(fd,nr_GETFKEY,@param1)=0;
|
||
end;
|
||
|
||
Function SETFKEY(fd:longint;var param1 : fkeyarg_t):boolean;
|
||
{IOWR('k',1,sizeof(fkeyarg_t) }
|
||
|
||
Begin
|
||
SETFKEY:=FpIoctl(fd,nr_SETFKEY,@param1)=0;
|
||
end;
|
||
{$ifndef definconsole}
|
||
Function GIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
|
||
{IOR('k',2,sizeof(scrmap_t) }
|
||
|
||
Begin
|
||
GIO_SCRNMAP:=FpIoctl(fd,nr_GIO_SCRNMAP,@param1)=0;
|
||
end;
|
||
|
||
Function PIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
|
||
{IOW('k',3,sizeof(scrmap_t) }
|
||
|
||
Begin
|
||
PIO_SCRNMAP:=FpIoctl(fd,nr_PIO_SCRNMAP,@param1)=0;
|
||
end;
|
||
{$endif}
|
||
Function GIO_KEYMAP(fd:longint;var param1 : keymap_t):boolean;
|
||
{IOR('k',6,sizeof(keymap_t) }
|
||
|
||
Begin
|
||
GIO_KEYMAP:=FpIoctl(fd,nr_GIO_KEYMAP,@param1)=0;
|
||
end;
|
||
|
||
Function PIO_KEYMAP(fd:longint;var param1 : keymap_t):boolean;
|
||
{IOW('k',7,sizeof(keymap_t) }
|
||
|
||
Begin
|
||
PIO_KEYMAP:=FpIoctl(fd,nr_PIO_KEYMAP,@param1)=0;
|
||
end;
|
||
|
||
Function GIO_DEADKEYMAP(fd:longint;var param1 : accentmap_t):boolean;
|
||
{IOR('k',8,sizeof(accentmap_t) }
|
||
|
||
Begin
|
||
GIO_DEADKEYMAP:=FpIoctl(fd,nr_GIO_DEADKEYMAP,@param1)=0;
|
||
end;
|
||
|
||
Function PIO_DEADKEYMAP(fd:longint;var param1 : accentmap_t):boolean;
|
||
{IOW('k',9,sizeof(accentmap_t) }
|
||
|
||
Begin
|
||
PIO_DEADKEYMAP:=FpIoctl(fd,nr_PIO_DEADKEYMAP,@param1)=0;
|
||
end;
|
||
|
||
Function GIO_KEYMAPENT(fd:longint;var param1 : keyarg_t):boolean;
|
||
{IOWR('k',10,sizeof(keyarg_t) }
|
||
|
||
Begin
|
||
GIO_KEYMAPENT:=FpIoctl(fd,nr_GIO_KEYMAPENT,@param1)=0;
|
||
end;
|
||
|
||
Function PIO_KEYMAPENT(fd:longint;var param1 : keyarg_t):boolean;
|
||
{IOW('k',11,sizeof(keyarg_t) }
|
||
|
||
Begin
|
||
PIO_KEYMAPENT:=FpIoctl(fd,nr_PIO_KEYMAPENT,@param1)=0;
|
||
end;
|
||
|
||
|
||
|
||
{----------------------------- mouse.h FpIoctl's ---------------------------}
|
||
|
||
Function MOUSE_GETSTATUS(fd:longint;var param1 : mousestatus_t):boolean;
|
||
{IOR('M',0,sizeof(mousestatus_t)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_GETSTATUS:=FpIoctl(fd,nr_MOUSE_GETSTATUS,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_GETHWINFO(fd:longint;var param1 : mousehw_t):boolean;
|
||
{IOR('M',1,sizeof(mousehw_t)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_GETHWINFO:=FpIoctl(fd,nr_MOUSE_GETHWINFO,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_GETMODE(fd:longint;var param1 : mousemode_t):boolean;
|
||
{IOR('M',2,sizeof(mousemode_t)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_GETMODE:=FpIoctl(fd,nr_MOUSE_GETMODE,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_SETMODE(fd:longint;var param1 : mousemode_t):boolean;
|
||
{IOW('M',3,sizeof(mousemode_t)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_SETMODE:=FpIoctl(fd,nr_MOUSE_SETMODE,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_GETLEVEL(fd:longint;var param1 : longint):boolean;
|
||
{IOR('M',4,sizeof(int)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_GETLEVEL:=FpIoctl(fd,nr_MOUSE_GETLEVEL,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_SETLEVEL(fd:longint;var param1 : longint):boolean;
|
||
{IOW('M',5,sizeof(int)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_SETLEVEL:=FpIoctl(fd,nr_MOUSE_SETLEVEL,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_GETVARS(fd:longint;var param1 : mousevar_t):boolean;
|
||
{IOR('M',6,sizeof(mousevar_t)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_GETVARS:=FpIoctl(fd,nr_MOUSE_GETVARS,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_SETVARS(fd:longint;var param1 : mousevar_t):boolean;
|
||
{IOW('M',7,sizeof(mousevar_t)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_SETVARS:=FpIoctl(fd,nr_MOUSE_SETVARS,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_READSTATE(fd:longint;var param1 : mousedata_t):boolean;
|
||
{IOWR('M',8,sizeof(mousedata_t)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_READSTATE:=FpIoctl(fd,nr_MOUSE_READSTATE,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_READDATA(fd:longint;var param1 : mousedata_t):boolean;
|
||
{IOWR('M',9,sizeof(mousedata_t)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_READDATA:=FpIoctl(fd,nr_MOUSE_READDATA,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_SETRESOLUTION(fd:longint;var param1 : longint):boolean;
|
||
{IOW('M',10,sizeof(int)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_SETRESOLUTION:=FpIoctl(fd,nr_MOUSE_SETRESOLUTION,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_SETSCALING(fd:longint;var param1 : longint):boolean;
|
||
{IOW('M',11,sizeof(int)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_SETSCALING:=FpIoctl(fd,nr_MOUSE_SETSCALING,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_SETRATE(fd:longint;var param1 : longint):boolean;
|
||
{IOW('M',12,sizeof(int)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_SETRATE:=FpIoctl(fd,nr_MOUSE_SETRATE,@param1)=0;
|
||
end;
|
||
|
||
Function MOUSE_GETHWID(fd:longint;var param1 : longint):boolean;
|
||
{IOR('M',13,sizeof(int)));
|
||
}
|
||
|
||
Begin
|
||
MOUSE_GETHWID:=FpIoctl(fd,nr_MOUSE_GETHWID,@param1)=0;
|
||
end;
|
||
|
||
|
||
end.
|