⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpclib.h

📁 模拟协处理器功能的 C 语言源码  
💻 H
📖 第 1 页 / 共 2 页
字号:
/*--------------------------------------------------------------------
-
--------------------------------------------------------------------*/

#ifndef FPCLIB
#define FPCLIB

/*--------------------------------------------------------------------
-
--------------------------------------------------------------------*/

#ifdef __cplusplus
extern "C" {
#endif

/*--------------------------------------------------------------------
-
--------------------------------------------------------------------*/

   #define FAR                 far
   #define PTR                 far *
   #define FPENTRY             pascal far

   typedef          char       CHAR;        /* signed     8 bits  */
   typedef unsigned char       BYTE;        /* unsigned   8 bits  */

   typedef          int        INT;         /* signed    16 bits  */
   typedef unsigned int        UINT;        /* unsigned  16 bits  */

   typedef signed   short int  INT2;        /* signed    16 bits  */
   typedef unsigned short int  UINT2;       /* unsigned  16 bits  */
   typedef unsigned int        WORD;        /* unsigned  16 bits  */
   typedef long                INT4;        /* signed    32 bits  */
   typedef unsigned long       UINT4;       /* unsigned  32 bits  */
   typedef float               REAL4;       /* signed    32 bits  */
   typedef double              REAL8;       /* unsigned  64 bits  */
   typedef void                VOID;


   typedef CHAR PTR            PCHAR;        /* signed     8 bits  */
   typedef BYTE PTR            PBYTE;        /* unsigned   8 bits  */

   typedef INT  PTR            PINT;         /* signed    16 bits  */
   typedef UINT PTR            PUINT;        /* unsigned  16 bits  */

   typedef INT2  PTR           PINT2;        /* signed    16 bits  */
   typedef UINT2 PTR           PUINT2;       /* unsigned  16 bits  */
   typedef WORD  PTR           PWORD;        /* unsigned  16 bits  */
   typedef INT4  PTR           PINT4;        /* signed    32 bits  */
   typedef UINT4 PTR           PUINT4;       /* unsigned  32 bits  */
   typedef REAL4 PTR           PREAL4;       /* signed    32 bits  */
   typedef REAL8 PTR           PREAL8;       /* unsigned  64 bits  */
   typedef VOID  PTR           PVOID;

/*---------------------------------------------------------------------
- Data structure for FindFirst, FindNext
---------------------------------------------------------------------*/

typedef struct TFindRec
   {
   BYTE    Attr;
   UINT2   Time;
   UINT2   Date;
   UINT4   Size;
   BYTE    Name[13];
   } TFindRec;

/*---------------------------------------------------------------------
- Global Variables
---------------------------------------------------------------------*/

extern BYTE pascal CErrDevice[10];
extern BYTE pascal CheckSnow;
extern BYTE pascal TextAttr;

extern INT2 pascal VioMode;
extern INT2 pascal VioPage;
extern INT2 pascal VioCols;
extern INT2 pascal VioCursor;
extern INT2 pascal VioBaseSeg;
extern INT2 pascal VioMouse;

extern INT2 pascal WindMin;
extern INT2 pascal WindMax;

extern INT2 pascal InsMode;

extern INT2 pascal DosErrNo;
extern INT2 pascal CErrCode;
extern INT2 pascal CErrType;
extern INT2 pascal CErrDrive;

extern INT2 pascal NEvents;
extern INT2 pascal MTextMode;

extern INT2 pascal MouButtons;

/*---------------------------------------------------------------------
- DOS1 routines
---------------------------------------------------------------------*/

VOID FPENTRY Beep( UINT2 Freq, UINT2 Dur );
VOID FPENTRY GetTime( PINT2 Hour, PINT2 Minute,
                      PINT2 Second, PINT2 Sec100 );

/*---------------------------------------------------------------------
- For FPGetKey.c module
---------------------------------------------------------------------*/

#ifndef IN_GETKEY
   extern INT2 FPENTRY GetKey( VOID );
#endif

/*---------------------------------------------------------------------
- Bios and DOS keyboard routines
---------------------------------------------------------------------*/

VOID  FPENTRY BiosKbdClr( VOID );
INT2  FPENTRY BiosKbdGetElmt( VOID );
INT2  FPENTRY BiosKbdHit( VOID );
VOID  FPENTRY BiosKbdRead( PCHAR Ch );
INT2  FPENTRY BiosKbdStat( VOID );
VOID  FPENTRY DosKbdClr( VOID );
INT2  FPENTRY DosKbdGetElmt( VOID );
INT2  FPENTRY DosKbdHit( VOID );
VOID  FPENTRY DosKbdRead( PCHAR Ch );


UINT2 FPENTRY bkReadCh( VOID );
UINT2 FPENTRY bkGetKbdStatus( VOID );
UINT2 FPENTRY bkGetKbdFlags( VOID );
VOID  FPENTRY bkSetRepeatRate( INT2 Delay, INT2 Repeat );
UINT2 FPENTRY bkPushKeyCodes( INT2 scancode, INT2 ascii );

UINT2 FPENTRY bkeReadCh( VOID );
UINT2 FPENTRY bkeGetKbdStatus( VOID );
UINT2 FPENTRY bkeGetKbdFlags( VOID );

/*---------------------------------------------------------------------
- Bios printer routines
---------------------------------------------------------------------*/

VOID FPENTRY BiosPrtChar( CHAR Ch, INT2 PrtNo );
INT2 FPENTRY BiosPrtInit( INT2 PrtNo );
INT2 FPENTRY BiosPrtStat( INT2 PrtNo );
VOID FPENTRY DosPrtChar( CHAR Ch );

/*---------------------------------------------------------------------
- Video routines
---------------------------------------------------------------------*/

VOID FPENTRY BorderColor( INT Color );
VOID FPENTRY ClrWin( INT x1, INT y1, INT x2, INT y2, INT Attr );
VOID FPENTRY ColorMsg( INT x, INT y, INT Attr, PCHAR Message );
VOID FPENTRY DspMsg( INT x, INT y, PCHAR Message );

VOID FPENTRY EditSt( INT      Row,
                     INT      StCol,
                     INT      SpCol,
                     INT      Len,
                     INT      CharCase,
                     INT      FillCh,
                     INT      AutoSkip,
                     UINT     ErrTone,
                     UINT     ErrDur,
                     PCHAR    VCSet,
                     PCHAR    TCSet,
                     PINT     ChOfs,
                     PINT     TE,
                     PCHAR    St    );

VOID FPENTRY FillColAttr( INT x, INT y, INT NRows, INT Attr );
VOID FPENTRY FillColCell( INT x, INT y, INT NRows, INT Cell );
VOID FPENTRY FillColChar( INT x, INT y, INT NRows, CHAR Ch );

VOID FPENTRY FillFrameAttr( INT x1, INT y1,
                            INT x2, INT y2, INT Attr );

VOID FPENTRY FillFrameCell( INT x1, INT y1,
                            INT x2, INT y2, INT2 Cell );

VOID FPENTRY FillFrameChar( INT x1, INT y1,
                            INT x2, INT y2, CHAR Ch );

VOID FPENTRY FillRowAttr( INT x, INT y, INT NBytes, INT Attr );
VOID FPENTRY FillRowCell( INT x, INT y, INT NWords, INT2 Cell );
VOID FPENTRY FillRowChar( INT x, INT y, INT NBytes, CHAR Ch );

VOID FPENTRY FrameWin( CHAR UL,  CHAR UR,
                       CHAR LL,  CHAR LR,
                       CHAR Hor, CHAR Ver, INT Attr );

INT2 FPENTRY GetCursorSize( VOID );

VOID FPENTRY GetFrameAttr( INT x1, INT y1,
                           INT x2, INT y2, PCHAR Buffer );

VOID FPENTRY GetFrameCell( INT x1, INT y1,
                           INT x2, INT y2, PCHAR Buffer );

VOID FPENTRY GetFrameChar( INT x1, INT y1,
                           INT x2, INT y2, PCHAR Buffer );

VOID FPENTRY GetScrn( INT x, INT y, INT NWords, PVOID Buffer );
INT  FPENTRY GetVideoCols( VOID );

VOID FPENTRY GetVideoInfo( PINT BaseSeg, PINT Cols,
                           PINT Pg,      PINT Mode );

INT  FPENTRY GetVideoMode( VOID );
INT  FPENTRY GetVideoPage( VOID );
VOID FPENTRY GotoxyAbs( INT x, INT y );
VOID FPENTRY HideCursor( VOID );
VOID FPENTRY InitVideo( INT Mode );

VOID FPENTRY PutFrameAttr( INT x1, INT y1,
                           INT x2, INT y2, PCHAR Buffer );

VOID FPENTRY PutFrameCell( INT x1, INT y1,
                           INT x2, INT y2, PCHAR Buffer );

VOID FPENTRY PutFrameChar( INT x1, INT y1,
                           INT x2, INT y2, PCHAR Buffer );

VOID FPENTRY PutScrn( INT x, INT y, INT NWords, PVOID Buffer );
INT  FPENTRY RvsAttr( INT Attr );

VOID FPENTRY ScrollDown( INT x1,   INT y1,
                         INT x2,   INT y2,
                         INT Attr, INT NRows );

VOID FPENTRY ScrollLeft( INT x1,   INT y1,
                         INT x2,   INT y2,
                         INT Attr, INT NCols );

VOID FPENTRY ScrollRight( INT x1,   INT y1,
                          INT x2,   INT y2,
                          INT Attr, INT NCols );

VOID FPENTRY ScrollUp( INT x1,   INT y1,
                       INT x2,   INT y2,
                       INT Attr, INT NRows );

VOID FPENTRY SetCursorSize( INT StScan, INT SpScan );
VOID FPENTRY SetVideoPage( INT PageNo );
VOID FPENTRY ShowCursor( VOID );
VOID FPENTRY VioInit( VOID );
INT  FPENTRY WhereXAbs( VOID );
INT  FPENTRY WhereYAbs( VOID );
VOID FPENTRY WindowFP( INT x1, INT y1, INT x2, INT y2 );
VOID FPENTRY WriteSt( PCHAR String );
VOID FPENTRY WriteStln( PCHAR String );

/*---------------------------------------------------------------------
- Intel chip routines
---------------------------------------------------------------------*/

UINT  FPENTRY GetFP_OFF( PVOID address );
UINT  FPENTRY GetFP_SEG( PVOID address );

⌨️ 快捷键说明

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