home *** CD-ROM | disk | FTP | other *** search
- #ifndef MACHINE
- #define MACHINE 1
-
- 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 */
-
- #define PTR far *
-
- #define FAR far
- #define NEAR near
- #define VOID void
- #endif
-
- /*---------------------------------------------------------------------
- - Specifies the pascal parameter passing calling convention -
- ---------------------------------------------------------------------*/
-
- #define FPENTRY pascal far
-
- /*---------------------------------------------------------------------
- - 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 CheckSnow;
- extern BYTE pascal TextAttr;
- extern BYTE pascal CErrDevice[10];
-
- extern INT2 pascal VioMode;
- extern INT2 pascal VioPage;
- extern INT2 pascal VioCols;
- extern INT2 pascal VioCursor;
- extern INT2 pascal VioBaseSeg;
-
- 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;
-
- /*---------------------------------------------------------------------
- - DOS1 routines -
- ---------------------------------------------------------------------*/
-
- extern VOID FPENTRY Beep( UINT2 Freq, UINT2 Dur );
- extern VOID FPENTRY GetTime( INT2 PTR Hour, INT2 PTR Minute,
- INT2 PTR Second, INT2 PTR Sec100 );
-
- /*---------------------------------------------------------------------
- - For FPGetKey.c module -
- ---------------------------------------------------------------------*/
-
- #ifndef IN_GETKEY
- extern INT2 FPENTRY GetKey( VOID );
- #endif
-
- /*---------------------------------------------------------------------
- - Bios keyboard routines -
- ---------------------------------------------------------------------*/
-
- extern VOID FPENTRY BiosKbdClr( VOID );
- extern INT2 FPENTRY BiosKbdGetElmt( VOID );
- extern INT2 FPENTRY BiosKbdHit( VOID );
- extern VOID FPENTRY BiosKbdRead( CHAR PTR Ch );
- extern INT2 FPENTRY BiosKbdStat( VOID );
- extern VOID FPENTRY DosKbdClr( VOID );
- extern INT2 FPENTRY DosKbdGetElmt( VOID );
- extern INT2 FPENTRY DosKbdHit( VOID );
- extern VOID FPENTRY DosKbdRead( CHAR PTR Ch );
-
- /*---------------------------------------------------------------------
- - Bios printer routines -
- ---------------------------------------------------------------------*/
-
- extern VOID FPENTRY BiosPrtChar( CHAR Ch, INT2 PrtNo );
- extern INT2 FPENTRY BiosPrtInit( INT2 PrtNo );
- extern INT2 FPENTRY BiosPrtStat( INT2 PrtNo );
- extern VOID FPENTRY DosPrtChar( CHAR Ch );
-
- /*---------------------------------------------------------------------
- - Video routines -
- ---------------------------------------------------------------------*/
-
- extern VOID FPENTRY BorderColor( INT Color );
- extern VOID FPENTRY ClrWin( INT x1, INT y1, INT x2, INT y2, INT Attr );
- extern VOID FPENTRY ColorMsg( INT x, INT y, INT Attr, CHAR PTR Message );
- extern VOID FPENTRY DspMsg( INT x, INT y, CHAR PTR Message );
-
- extern VOID FPENTRY EditSt( INT Row,
- INT StCol,
- INT SpCol,
- INT Len,
- INT CharCase,
- INT FillCh,
- INT AutoSkip,
- UINT ErrTone,
- UINT ErrDur,
- CHAR PTR VCSet,
- CHAR PTR TCSet,
- INT PTR ChOfs,
- INT PTR TE,
- CHAR PTR St );
-
- extern VOID FPENTRY FillColAttr( INT x, INT y, INT NRows, INT Attr );
- extern VOID FPENTRY FillColCell( INT x, INT y, INT NRows, INT Cell );
- extern VOID FPENTRY FillColChar( INT x, INT y, INT NRows, CHAR Ch );
-
- extern VOID FPENTRY FillFrameAttr( INT x1, INT y1,
- INT x2, INT y2, INT Attr );
-
- extern VOID FPENTRY FillFrameCell( INT x1, INT y1,
- INT x2, INT y2, INT2 Cell );
-
- extern VOID FPENTRY FillFrameChar( INT x1, INT y1,
- INT x2, INT y2, CHAR Ch );
-
- extern VOID FPENTRY FillRowAttr( INT x, INT y, INT NBytes, INT Attr );
- extern VOID FPENTRY FillRowCell( INT x, INT y, INT NWords, INT2 Cell );
- extern VOID FPENTRY FillRowChar( INT x, INT y, INT NBytes, CHAR Ch );
-
- extern VOID FPENTRY FrameWin( CHAR UL, CHAR UR,
- CHAR LL, CHAR LR,
- CHAR Hor, CHAR Ver, INT Attr );
-
- extern INT2 FPENTRY GetCursorSize( VOID );
-
- extern VOID FPENTRY GetFrameAttr( INT x1, INT y1,
- INT x2, INT y2, CHAR PTR Buffer );
-
- extern VOID FPENTRY GetFrameCell( INT x1, INT y1,
- INT x2, INT y2, CHAR PTR Buffer );
-
- extern VOID FPENTRY GetFrameChar( INT x1, INT y1,
- INT x2, INT y2, CHAR PTR Buffer );
-
- extern VOID FPENTRY GetScrn( INT x, INT y, INT NWords, CHAR PTR Buffer );
- extern INT FPENTRY GetVideoCols( VOID );
-
- extern VOID FPENTRY GetVideoInfo( INT PTR BaseSeg, INT PTR Cols,
- INT PTR Pg, INT PTR Mode );
-
- extern INT FPENTRY GetVideoMode( VOID );
- extern INT FPENTRY GetVideoPage( VOID );
- extern VOID FPENTRY GotoxyAbs( INT x, INT y );
- extern VOID FPENTRY HideCursor( VOID );
- extern VOID FPENTRY InitVideo( INT Mode );
-
- extern VOID FPENTRY PutFrameAttr( INT x1, INT y1,
- INT x2, INT y2, CHAR PTR Buffer );
-
- extern VOID FPENTRY PutFrameCell( INT x1, INT y1,
- INT x2, INT y2, CHAR PTR Buffer );
-
- extern VOID FPENTRY PutFrameChar( INT x1, INT y1,
- INT x2, INT y2, CHAR PTR Buffer );
-
- extern VOID FPENTRY PutScrn( INT x, INT y, INT NWords, CHAR PTR Buffer );
- extern INT FPENTRY RvsAttr( INT Attr );
-
- extern VOID FPENTRY ScrollDown( INT x1, INT y1,
- INT x2, INT y2,
- INT Attr, INT NRows );
-
- extern VOID FPENTRY ScrollLeft( INT x1, INT y1,
- INT x2, INT y2,
- INT Attr, INT NCols );
-
- extern VOID FPENTRY ScrollRight( INT x1, INT y1,
- INT x2, INT y2,
- INT Attr, INT NCols );
-
- extern VOID FPENTRY ScrollUp( INT x1, INT y1,
- INT x2, INT y2,
- INT Attr, INT NRows );
-
- extern VOID FPENTRY SetCursorSize( INT StScan, INT SpScan );
- extern VOID FPENTRY SetVideoPage( INT PageNo );
- extern VOID FPENTRY ShowCursor( VOID );
- extern VOID FPENTRY VioInit( VOID );
- extern INT FPENTRY WhereXAbs( VOID );
- extern INT FPENTRY WhereYAbs( VOID );
- extern VOID FPENTRY WindowFP( INT x1, INT y1, INT x2, INT y2 );
- extern VOID FPENTRY WriteSt( CHAR PTR String );
- extern VOID FPENTRY WriteStln( CHAR PTR String );
-
- /*---------------------------------------------------------------------
- - DISK routines -
- ---------------------------------------------------------------------*/
-
- extern VOID FPENTRY CloseFile( INT2 Handle );
- extern VOID FPENTRY CreateFile( CHAR *Path, INT2 Attr, INT2 *Handle );
-
- extern VOID FPENTRY DosFindFirst( CHAR *Path,
- INT2 Attr,
- TFindRec FindRec );
-
- extern VOID FPENTRY DosFindNext( TFindRec FindRec );
- extern UINT4 FSeek( INT Handle, INT Orgin, INT4 Offset );
- extern INT2 FPENTRY GetDrive( VOID );
- extern VOID FPENTRY GetDTA( UINT2 Segment, UINT2 Offset );
- extern INT4 FPENTRY GetFileSize( INT Handle );
- extern INT2 FPENTRY GetNDrvs( VOID );
- extern VOID FPENTRY OpenFile( CHAR *Path, INT2 Attr, INT2 *Handle );
-
- extern VOID FPENTRY ReadFile( INT2 Handle,
- INT2 NBytes,
- CHAR *Buffer,
- UINT2 *RBytes );
-
- extern VOID FPENTRY ResetDisk( VOID );
- extern VOID FPENTRY RestInt24( VOID );
- extern VOID FPENTRY SetDTA( UINT2 Segment, UINT2 Offset );
- extern VOID FPENTRY SetInt24( VOID );
-
- extern VOID FPENTRY WriteFile( INT2 Handle,
- INT2 NBytes,
- CHAR *Buffer,
- UINT2 *WBytes );
-
- /*---------------------------------------------------------------------
- - BIOS mouse routines -
- ---------------------------------------------------------------------*/
-
- extern INT2 FPENTRY MButtonPress( INT2 Button,
- INT2 *ButPress,
- INT2 *x,
- INT2 *y );
-
- extern INT2 FPENTRY MButtonRel( INT2 Button,
- INT2 *ButPress,
- INT2 *x,
- INT2 *y );
-
- extern VOID FPENTRY MGetPos( INT2 *Button, INT2 *x, INT2 *y );
- extern VOID FPENTRY MGetSpeed( INT2 *HorCnt, INT2 *VerCnt );
-
- extern VOID FPENTRY MGraphCursor( INT2 XHotSpot, INT2 YHotSpot,
- UINT2 CMaskSeg, UINT2 CMaskOfs );
-
- extern VOID FPENTRY MHideCursor( VOID );
- extern VOID FPENTRY MInitEventHandler( INT2 EventMask );
-
- extern VOID FPENTRY MPollQue( INT2 *Event, INT2 *ButStat,
- INT2 *x, INT2 *y );
-
- extern INT2 FPENTRY MResetMouse( INT2 *NBut );
-
- extern VOID FPENTRY MRetQue( INT2 *Event, INT2 *ButStat,
- INT2 *x, INT2 *y );
-
- extern VOID FPENTRY MSetPos( INT2 x, INT2 y );
- extern VOID FPENTRY MSetSpeed( INT2 HorCnt, INT2 VerCnt );
- extern VOID FPENTRY MSetXRange( INT2 Min, INT2 Max );
- extern VOID FPENTRY MSetYRange( INT2 Min, INT2 Max );
- extern VOID FPENTRY MShowCursor( VOID );
- extern VOID FPENTRY MTextCursor( INT2 CType, INT2 SMask, INT2 CMask );
-
- /*---------------------------------------------------------------------
- - BIOS video routines -
- ---------------------------------------------------------------------*/
-
- extern VOID FPENTRY bvSetMode( INT2 Mode, INT2 Clear );
- extern VOID FPENTRY bvSetCurType( INT2 StScan, INT2 SpScan );
- extern VOID FPENTRY bvSetCurPos( INT2 pg, INT2 row, INT2 col );
- extern VOID FPENTRY bvGetCurPos( INT2 pg, INT2 PTR row, INT2 PTR col );
- extern VOID FPENTRY bvGetCurType( INT2 pg, INT2 PTR stscan, INT2 PTR spscan );
- extern VOID FPENTRY bvSetPage( INT2 pg );
-
- extern VOID FPENTRY bvScrollDn( INT2 top, INT2 left,
- INT2 bottom, INT2 right,
- INT2 lines, INT2 attr );
-
- extern VOID FPENTRY bvScrollUp( INT2 top, INT2 left,
- INT2 bottom, INT2 right,
- INT2 lines, INT2 attr );
-
- extern VOID FPENTRY bvReadCell( INT2 PTR ch, INT2 PTR attr, INT2 pg );
-
- extern VOID FPENTRY bvWrtNCell( INT2 ch, INT2 attr,
- INT2 count, INT2 pg );
-
- extern VOID FPENTRY bvWrtNChar( INT2 ch, INT2 count, INT2 pg );
- extern VOID FPENTRY bvSetState0B( INT2 color );
- extern VOID FPENTRY bvWrtPix( INT2 row, INT2 col, INT2 pixval, INT2 pg );
- extern INT2 FPENTRY bvReadPix( INT2 row, INT2 col, INT2 pg );
- extern VOID FPENTRY bvWrtTTYChar( INT2 ch, INT2 pg, INT2 color );
- extern VOID FPENTRY bvGetMode( INT2 PTR mode, INT2 PTR cols, INT2 PTR pg );
- extern VOID FPENTRY bvSetPalReg( INT2 color, INT2 reg );
- extern VOID FPENTRY bvSetBorder( INT2 color );
- extern VOID FPENTRY bvSetPalBorder( CHAR list[17] );
- extern VOID FPENTRY bvSetBlink( INT2 state );
- extern INT2 FPENTRY bvGetPalReg( INT2 reg );
- extern INT2 FPENTRY bvGetBorder( VOID );
- extern VOID FPENTRY bvGetPalBorder( CHAR buf[17] );
-
- extern VOID FPENTRY bvSetColorReg( UINT2 colorreg, INT2 green,
- INT2 blue, INT2 red );
-
- extern VOID FPENTRY bvSetColorRegBlk( UINT2 startreg,
- INT2 regcount,
- BYTE colortbl[][3] );
-
- extern VOID FPENTRY bvSetColorPgMode( INT2 pgstate );
- extern VOID FPENTRY bvSetColorRegPg( INT2 pg );
-
- extern VOID FPENTRY bvGetColorReg( INT2 colorreg, INT2 PTR green,
- INT2 PTR blue, INT2 PTR red );
-
- extern VOID FPENTRY bvGetColorRegBlk( UINT2 startreg,
- INT2 regcount,
- BYTE colortbl[][3] );
-
- extern VOID FPENTRY bvGetColorPgMode( INT2 PTR colorpg, INT2 PTR pgmode );
- extern VOID FPENTRY bvSetGrayScale( UINT2 startreg, INT2 regcount );
-
- extern VOID FPENTRY bvLoadUsrFont00( INT2 pts, INT2 block,
- UINT2 chcount, UINT2 startch,
- VOID PTR fonttbl );
-
- extern VOID FPENTRY bvLoadUsrFont10( INT2 pts, INT2 block,
- UINT2 chcount, UINT2 startch,
- VOID PTR fonttbl );
-
- extern VOID FPENTRY bvLoad8x14Font01( INT2 block );
- extern VOID FPENTRY bvLoad8x14Font11( INT2 block );
- extern VOID FPENTRY bvLoad8x8Font02( INT2 block );
- extern VOID FPENTRY bvLoad8x8Font12( INT2 block );
- extern VOID FPENTRY bvSetBlkSpec( INT2 block );
- extern VOID FPENTRY bvLoad8x16Font04( INT2 block );
- extern VOID FPENTRY bvLoad8x16Font14( INT2 block );
- extern VOID FPENTRY bvSet1FhFontPtr( VOID PTR fonttbl );
-
- extern VOID FPENTRY bvSet43hUsrFont( INT2 rows, UINT2 points,
- INT2 scnrows, VOID PTR fonttbl );
-
- extern VOID FPENTRY bvSet43h8x14Font( INT2 rows, INT2 scnrows );
- extern VOID FPENTRY bvSet43h8x8Font( INT2 rows, INT2 scnrows );
- extern VOID FPENTRY bvSet43h8x16Font( INT2 rows, INT2 scnrows );
-
- extern VOID FPENTRY bvGetFontInfo( INT2 fontcode, UINT2 PTR points,
- INT2 PTR scnrows, VOID PTR fonttbl );
-
- extern VOID FPENTRY bvGetConfigInfo( INT2 PTR dsptype, INT2 PTR egamem,
- INT2 PTR fbits, INT2 PTR swset );
-
- extern VOID FPENTRY bvSetAltPrtSc( VOID );
- extern INT2 FPENTRY bvSetScanLines( INT2 scancode );
- extern INT2 FPENTRY bvDefPalLoad( INT2 setting );
- extern INT2 FPENTRY bvVioAccess( INT2 setting );
- extern INT2 FPENTRY bvGrayScaleSum( INT2 setting );
- extern INT2 FPENTRY bvCurEmulation( INT2 setting );
- extern VOID FPENTRY bvSwDsp( INT2 setting, CHAR PTR buffer );
- extern INT2 FPENTRY bvScnRefresh( INT2 setting );
-
- extern VOID FPENTRY bvWrtTTYStr( INT2 mode, INT2 row, INT2 col,
- INT2 len, INT2 pg, INT2 attr,
- CHAR PTR st );
-
- /*---------------------------------------------------------------------
- - DOS routines -
- ---------------------------------------------------------------------*/
-
- extern VOID FPENTRY dDiskReset( VOID );
- extern INT2 FPENTRY dSelectDisk( INT2 Drive );
- extern INT2 FPENTRY dGetCurrentDisk();
- extern VOID FPENTRY dSetDta( UINT2 Segment, UINT2 Offset );
-
- extern INT FPENTRY dGetDriveData( INT2 Drive,
- UINT2 *Sectors,
- UINT2 *MediaSeg,
- UINT2 *MediaOfs,
- UINT2 *SectorSize,
- UINT2 *Clusters );
-
- extern VOID FPENTRY dSetInt( UINT2 Int, UINT2 Segment, UINT2 Offset );
- extern VOID FPENTRY dCreateNewPsp( UINT2 Segment );
-
- extern VOID FPENTRY dGetDate( INT2 PTR Month,
- INT2 PTR Day,
- INT2 PTR Year,
- INT2 PTR DayOfWk );
-
- extern INT FPENTRY dSetDate( INT Month, INT Day, INT Year );
-
- extern VOID FPENTRY dGetTime( INT2 PTR Hour,
- INT2 PTR Minute,
- INT2 PTR Seconds,
- INT2 PTR Hundredths );
-
- extern VOID FPENTRY dSetTime( INT2 Hour, INT2 Minute,
- INT2 Seconds, INT2 Hundredths );
-
- extern VOID FPENTRY dSetVerifyFlag( INT2 VerifyOpt );
- extern VOID FPENTRY dGetDta( UINT2 PTR Segment, UINT2 PTR Offset );
- extern VOID FPENTRY dGetVersion( INT2 PTR Major, INT2 PTR Minor );
- extern INT FPENTRY dGetBreakStatus( VOID );
- extern VOID FPENTRY dSetBreakFlag( INT flag );
- extern VOID FPENTRY dGetBusyFlag( UINT2 PTR dSeg, UINT2 PTR dOfs );
- extern VOID FPENTRY dGetIntVec( UINT2 dInt, UINT2 PTR dSeg, UINT2 PTR dOfs );
-
- extern INT FPENTRY dGetDrvAllocInfo( UINT Drive,
- UINT PTR Sectors,
- UINT PTR AvailClusters,
- UINT PTR BytesInSector,
- UINT PTR TotalClusters );
-
- extern INT FPENTRY dMkDir( CHAR PTR Path );
- extern INT FPENTRY dRmDir( CHAR PTR Path );
- extern INT FPENTRY dChDir( CHAR PTR Path );
- extern INT FPENTRY dCreateFile( CHAR PTR Path, INT2 Attr, INT2 PTR Handle );
- extern INT FPENTRY dOpenFile( CHAR PTR Path, INT2 Mode, INT2 PTR Handle );
- extern INT FPENTRY dCloseFile( CHAR PTR Path, INT2 Mode, INT2 PTR Handle );
-
- extern INT FPENTRY dReadFile( INT Handle, UINT2 NBytes,
- VOID PTR Buffer, UINT2 PTR BytesRead );
-
- extern INT FPENTRY dWriteFile( INT Handle, UINT NBytes,
- VOID PTR Buffer, UINT PTR BytesWritten );
-
- extern INT FPENTRY dDelFile( CHAR PTR FileSpec );
- extern INT FPENTRY dSetFilePos( INT2 Handle, INT Method, INT4 PTR Ofs );
- extern INT FPENTRY dGetFileAttr( CHAR PTR FileSpec, INT2 PTR Attr );
- extern INT FPENTRY dSetFileAttr( CHAR PTR FileSpec, INT2 Attr );
-