mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
658 lines
20 KiB
658 lines
20 KiB
/*
|
|
* Structure and equates of PIF files
|
|
*/
|
|
|
|
#define PIFEDITMAXPIF 1024 /* maximum PIF file size we support */
|
|
#define PIFEDITMAXPIFL 1024L
|
|
|
|
#define PIFNAMESIZE 30
|
|
#define PIFSTARTLOCSIZE 63
|
|
#define PIFDEFPATHSIZE 64
|
|
#define PIFPARAMSSIZE 64
|
|
#define PIFSHPROGSIZE 64
|
|
#define PIFSHDATASIZE 64
|
|
|
|
#define PIFEXTSIGSIZE 16
|
|
|
|
#define PIFSIZE 367 /* two bytes less, this is used for checksum */
|
|
|
|
#ifndef RC_INVOKED
|
|
#pragma pack(1)
|
|
#endif
|
|
typedef struct {
|
|
char unknown;
|
|
char id;
|
|
char name[PIFNAMESIZE];
|
|
short maxmem;
|
|
short minmem;
|
|
char startfile[PIFSTARTLOCSIZE];
|
|
char MSflags;
|
|
char reserved;
|
|
char defpath[PIFDEFPATHSIZE];
|
|
char params[PIFPARAMSSIZE];
|
|
char screen;
|
|
char cPages;
|
|
unsigned char lowVector;
|
|
unsigned char highVector;
|
|
char rows;
|
|
char cols;
|
|
char rowoff;
|
|
char coloff;
|
|
unsigned short sysmem;
|
|
char shprog[PIFSHPROGSIZE];
|
|
char shdata[PIFSHDATASIZE];
|
|
unsigned char behavior;
|
|
unsigned char sysflags;
|
|
} PIFOLD286STR;
|
|
#ifndef RC_INVOKED
|
|
#pragma pack()
|
|
#endif
|
|
|
|
#ifndef RC_INVOKED
|
|
#pragma pack(1)
|
|
#endif
|
|
typedef struct {
|
|
char extsig[PIFEXTSIGSIZE];
|
|
unsigned short extnxthdrfloff;
|
|
unsigned short extfileoffset;
|
|
unsigned short extsizebytes;
|
|
} PIFEXTHEADER;
|
|
#ifndef RC_INVOKED
|
|
#pragma pack()
|
|
#endif
|
|
|
|
#define LASTHEADERPTR 0xFFFF
|
|
#define STDHDRSIG "MICROSOFT PIFEX"
|
|
|
|
#define W386HDRSIG "WINDOWS 386 3.0"
|
|
#define W286HDRSIG30 "WINDOWS 286 3.0"
|
|
#define WNTHDRSIG31 "WINDOWS NT 3.1"
|
|
/*
|
|
*#define W286HDRSIG31 "WINDOWS 286 3.1"
|
|
*/
|
|
|
|
#ifndef RC_INVOKED
|
|
#pragma pack(1)
|
|
#endif
|
|
typedef struct {
|
|
char unknown;
|
|
char id;
|
|
char name[PIFNAMESIZE];
|
|
short maxmem;
|
|
short minmem;
|
|
char startfile[PIFSTARTLOCSIZE];
|
|
char MSflags;
|
|
char reserved;
|
|
char defpath[PIFDEFPATHSIZE];
|
|
char params[PIFPARAMSSIZE];
|
|
char screen;
|
|
char cPages;
|
|
unsigned char lowVector;
|
|
unsigned char highVector;
|
|
char rows;
|
|
char cols;
|
|
char rowoff;
|
|
char coloff;
|
|
unsigned short sysmem;
|
|
char shprog[PIFSHPROGSIZE];
|
|
char shdata[PIFSHDATASIZE];
|
|
unsigned char behavior;
|
|
unsigned char sysflags;
|
|
PIFEXTHEADER stdpifext;
|
|
} PIFNEWSTRUCT;
|
|
#ifndef RC_INVOKED
|
|
#pragma pack()
|
|
#endif
|
|
|
|
/*
|
|
* Windows/386 PIF file extension
|
|
*
|
|
*/
|
|
#ifndef RC_INVOKED
|
|
#pragma pack(1)
|
|
#endif
|
|
typedef struct {
|
|
short maxmem;
|
|
short minmem;
|
|
unsigned short PfFPriority;
|
|
unsigned short PfBPriority;
|
|
short PfMaxEMMK;
|
|
unsigned short PfMinEMMK;
|
|
short PfMaxXmsK;
|
|
unsigned short PfMinXmsK;
|
|
unsigned long PfW386Flags;
|
|
unsigned long PfW386Flags2;
|
|
unsigned short PfHotKeyScan;
|
|
unsigned short PfHotKeyShVal;
|
|
unsigned short PfHotKeyShMsk;
|
|
unsigned char PfHotKeyVal;
|
|
unsigned char PfHotKeyPad[9];
|
|
char params[PIFPARAMSSIZE];
|
|
} PIF386EXT;
|
|
#ifndef RC_INVOKED
|
|
#pragma pack()
|
|
#endif
|
|
|
|
/* Bits of PfW386Flags */
|
|
#define fEnableClose 0x00000001L
|
|
#define fBackground 0x00000002L
|
|
#define fExclusive 0x00000004L
|
|
#define fFullScreen 0x00000008L
|
|
#define fALTTABdis 0x00000020L
|
|
#define fALTESCdis 0x00000040L
|
|
#define fALTSPACEdis 0x00000080L
|
|
#define fALTENTERdis 0x00000100L
|
|
#define fALTPRTSCdis 0x00000200L
|
|
#define fPRTSCdis 0x00000400L
|
|
#define fCTRLESCdis 0x00000800L
|
|
#define fPollingDetect 0x00001000L
|
|
#define fNoHMA 0x00002000L
|
|
#define fHasHotKey 0x00004000L
|
|
#define fEMSLocked 0x00008000L
|
|
#define fXMSLocked 0x00010000L
|
|
#define fINT16Paste 0x00020000L
|
|
#define fVMLocked 0x00040000L
|
|
|
|
/* Bits of PfW386Flags2 */
|
|
/*
|
|
* NOTE THAT THE LOW 16 BITS OF THIS DWORD ARE VDD RELATED!!!!!!!!
|
|
*
|
|
* You cannot monkey with these bits locations without breaking
|
|
* all VDDs as well as all old PIF files. SO DON'T MESS WITH THEM.
|
|
*
|
|
*/
|
|
#define fVidTxtEmulate 0x00000001L
|
|
#define fVidNoTrpTxt 0x00000002L
|
|
#define fVidNoTrpLRGrfx 0x00000004L
|
|
#define fVidNoTrpHRGrfx 0x00000008L
|
|
#define fVidTextMd 0x00000010L
|
|
#define fVidLowRsGrfxMd 0x00000020L
|
|
#define fVidHghRsGrfxMd 0x00000040L
|
|
#define fVidRetainAllo 0x00000080L
|
|
/* NOTE THAT ALL OF THE LOW 16 BITS ARE RESERVED FOR VIDEO BITS */
|
|
|
|
|
|
/*
|
|
* Windows/286 PIF file extension
|
|
*
|
|
*
|
|
* Windows 3.00 extension format
|
|
*
|
|
*/
|
|
#ifndef RC_INVOKED
|
|
#pragma pack(1)
|
|
#endif
|
|
typedef struct {
|
|
short PfMaxXmsK;
|
|
unsigned short PfMinXmsK;
|
|
unsigned short PfW286Flags;
|
|
} PIF286EXT30;
|
|
#ifndef RC_INVOKED
|
|
#pragma pack()
|
|
#endif
|
|
|
|
/* Bits of PfW286Flags */
|
|
#define fALTTABdis286 0x0001
|
|
#define fALTESCdis286 0x0002
|
|
#define fALTPRTSCdis286 0x0004
|
|
#define fPRTSCdis286 0x0008
|
|
#define fCTRLESCdis286 0x0010
|
|
/*
|
|
* Following bit is version >= 3.10 specific
|
|
*/
|
|
#define fNoSaveVid286 0x0020
|
|
|
|
#define fCOM3_286 0x4000
|
|
#define fCOM4_286 0x8000
|
|
|
|
/*
|
|
*
|
|
* NEW Windows 3.10 extension format
|
|
*
|
|
*#ifndef RC_INVOKED
|
|
*#pragma pack(1)
|
|
*#endif
|
|
*typedef struct {
|
|
* short PfMaxEmsK;
|
|
* unsigned short PfMinEmsK;
|
|
* } PIF286EXT31;
|
|
*#ifndef RC_INVOKED
|
|
*#pragma pack()
|
|
*#endif
|
|
*/
|
|
|
|
/* Windows NT extension format */
|
|
#ifndef RC_INVOKED
|
|
#pragma pack (1)
|
|
#endif
|
|
typedef struct
|
|
{
|
|
DWORD dwWNTFlags;
|
|
DWORD dwRes1;
|
|
DWORD dwRes2;
|
|
char achConfigFile[PIFDEFPATHSIZE];
|
|
char achAutoexecFile[PIFDEFPATHSIZE];
|
|
} PIFWNTEXT;
|
|
#ifndef RC_INVOKED
|
|
#pragma pack()
|
|
#endif
|
|
#define PIFWNTEXTSIZE sizeof(PIFWNTEXT)
|
|
|
|
|
|
// equates for dwWNTFlags
|
|
#define NTPIF_SUBSYSMASK 0x0000000F // sub system type mask
|
|
#define SUBSYS_DEFAULT 0
|
|
#define SUBSYS_DOS 1
|
|
#define SUBSYS_WOW 2
|
|
#define SUBSYS_OS2 3
|
|
#define COMPAT_TIMERTIC 0x10
|
|
|
|
|
|
|
|
|
|
/* behavior and sysflags */
|
|
#define SWAPS 0x20
|
|
#define SWAPMASK 0x20
|
|
#define NOTSWAPMASK 0xdf
|
|
|
|
#define PARMS 0x40
|
|
#define PARMMASK 0x40
|
|
#define NOTPARMMASK 0xbf
|
|
|
|
#define SCR 0xC0
|
|
#define SCRMASK 0xC0
|
|
#define NOTSCRMASK 0x3f
|
|
|
|
#define MASK8087 0x20
|
|
#define NOTMASK8087 0xdf
|
|
#define KEYMASK 0x10
|
|
#define NOTKEYMASK 0xef
|
|
|
|
/* Microsoft PIF flags */
|
|
#define MEMMASK 0x01
|
|
#define NOTMEMMASK 0xfe
|
|
|
|
#define GRAPHMASK 0x02
|
|
#define TEXTMASK 0xfd
|
|
|
|
#define PSMASK 0x04
|
|
#define NOTPSMASK 0xfb
|
|
|
|
#define SGMASK 0x08
|
|
#define NOTSGMASK 0xf7
|
|
|
|
#define EXITMASK 0x10
|
|
#define NOTEXITMASK 0xef
|
|
|
|
#define DONTUSE 0x20
|
|
|
|
#define COM2MASK 0x40
|
|
#define NOTCOM2MASK 0xbf
|
|
|
|
#define COM1MASK 0x80
|
|
#define NOTCOM1MASK 0x7f
|
|
|
|
|
|
|
|
|
|
/*
|
|
* The pif file formats have been substantially updated since NT4.
|
|
* The current pif properties is defined in nt\shell\published\inc,
|
|
* and should be used instead of mvdm\inc\pif.h. Its too late to switch
|
|
* for XP, do this for next product. For now copy the needed data
|
|
* structures.
|
|
*
|
|
* 01-Jun-2001 Jonle
|
|
*
|
|
*/
|
|
#define WENHHDRSIG40 "WINDOWS VMM 4.0"
|
|
#define PIFDEFFILESIZE 80
|
|
|
|
#ifndef LF_FACESIZE
|
|
#define LF_FACESIZE 32
|
|
#endif
|
|
|
|
typedef struct tagPIFRECT {
|
|
WORD left;
|
|
WORD top;
|
|
WORD right;
|
|
WORD bottom;
|
|
} PIFRECT;
|
|
typedef PIFRECT *PPIFRECT;
|
|
typedef PIFRECT FAR *LPPIFRECT;
|
|
|
|
|
|
typedef struct PROPTSK { /* tsk */
|
|
WORD flTsk; // see TSK_ flags
|
|
WORD flTskInit; // see TSKINIT_ flags
|
|
WORD wReserved1; // (reserved, must be zero)
|
|
WORD wReserved2; // (reserved, must be zero)
|
|
WORD wReserved3; // (reserved, must be zero)
|
|
WORD wReserved4; // (reserved, must be zero)
|
|
WORD wIdleSensitivity; // %, also affects PfW386Flags & fPollingDetect
|
|
} PROPTSK;
|
|
typedef UNALIGNED PROPTSK *PPROPTSK;
|
|
typedef UNALIGNED PROPTSK FAR *LPPROPTSK;
|
|
|
|
typedef struct PROPVID { /* vid */
|
|
WORD flVid; // see VID_ flags
|
|
WORD flVidInit; // see VIDINIT_ flags
|
|
WORD wReserved1; // (reserved, must be zero)
|
|
WORD wReserved2; // (reserved, must be zero)
|
|
WORD wReserved3; // (reserved, must be zero)
|
|
WORD cScreenLines; // ([NonWindowsApp]:ScreenLines)
|
|
} PROPVID;
|
|
typedef UNALIGNED PROPVID *PPROPVID;
|
|
typedef UNALIGNED PROPVID FAR *LPPROPVID;
|
|
|
|
typedef struct PROPKBD { /* kbd */
|
|
WORD flKbd; // see KBD_ flags
|
|
WORD flKbdInit; // see KBDINIT_ flags
|
|
WORD msAltDelay; // ([386Enh]:AltKeyDelay)
|
|
WORD msAltPasteDelay; // ([386Enh]:AltPasteDelay)
|
|
WORD msPasteDelay; // ([386Enh]:KeyPasteDelay)
|
|
WORD msPasteFullDelay; // ([386Enh]:KeyBufferDelay)
|
|
WORD msPasteTimeout; // ([386Enh]:KeyPasteTimeOut)
|
|
WORD cPasteSkip; // ([386Enh]:KeyPasteSkipCount)
|
|
WORD cPasteCRSkip; // ([386Enh]:KeyPasteCRSkipCount)
|
|
} PROPKBD;
|
|
typedef UNALIGNED PROPKBD *PPROPKBD;
|
|
typedef UNALIGNED PROPKBD FAR *LPPROPKBD;
|
|
|
|
typedef struct PROPMSE { /* mse */
|
|
WORD flMse; // see MSE_ flags
|
|
WORD flMseInit; // see MSEINIT_ flags
|
|
} PROPMSE;
|
|
typedef UNALIGNED PROPMSE *PPROPMSE;
|
|
typedef UNALIGNED PROPMSE FAR *LPPROPMSE;
|
|
|
|
typedef struct PROPSND { /* snd */ /* ;Internal */
|
|
WORD flSnd; // see SND_ flags /* ;Internal */
|
|
WORD flSndInit; // see SNDINIT_ flags /* ;Internal */
|
|
} PROPSND; /* ;Internal */
|
|
typedef UNALIGNED PROPSND *PPROPSND; /* ;Internal */
|
|
typedef UNALIGNED PROPSND FAR *LPPROPSND; /* ;Internal */
|
|
|
|
typedef struct PROPFNT { /* fnt */
|
|
WORD flFnt; // see FNT_ flags
|
|
WORD flFntInit; // see FNTINIT_ flags
|
|
WORD cxFont; // width of desired font
|
|
WORD cyFont; // height of desired font
|
|
WORD cxFontActual; // actual width of desired font
|
|
WORD cyFontActual; // actual height of desired font
|
|
CHAR achRasterFaceName[LF_FACESIZE]; // name to use for raster font
|
|
CHAR achTTFaceName[LF_FACESIZE]; // name to use for tt font
|
|
WORD wCurrentCP; // Current Codepage
|
|
} PROPFNT;
|
|
typedef UNALIGNED PROPFNT *PPROPFNT;
|
|
typedef UNALIGNED PROPFNT FAR *LPPROPFNT;
|
|
|
|
typedef struct PROPWIN { /* win */
|
|
WORD flWin; // see WIN_ flags
|
|
WORD flWinInit; // see WININIT flags
|
|
WORD cxCells; // width in cells
|
|
WORD cyCells; // height in cells
|
|
WORD cxClient; // width of client window
|
|
WORD cyClient; // height of client window
|
|
WORD cxWindow; // width of entire window
|
|
WORD cyWindow; // height of entire window
|
|
WORD wLength;
|
|
WORD wShowFlags;
|
|
WORD wShowCmd;
|
|
WORD xMinimize;
|
|
WORD yMinimize;
|
|
WORD xMaximize;
|
|
WORD yMaximize;
|
|
PIFRECT rcNormal;
|
|
} PROPWIN;
|
|
typedef UNALIGNED PROPWIN *PPROPWIN;
|
|
typedef UNALIGNED PROPWIN FAR *LPPROPWIN;
|
|
|
|
|
|
typedef struct PROPENV { /* env */
|
|
WORD flEnv; // see ENV_ flags
|
|
WORD flEnvInit; // see ENVINIT_ flags
|
|
CHAR achBatchFile[PIFDEFFILESIZE]; //
|
|
WORD cbEnvironment; // ([386Enh]:CommandEnvSize)
|
|
WORD wMaxDPMI; // (NEW)
|
|
} PROPENV;
|
|
typedef UNALIGNED PROPENV *PPROPENV;
|
|
typedef UNALIGNED PROPENV FAR *LPPROPENV;
|
|
|
|
|
|
typedef struct WENHPIF40 { /* enh */ /* ;Internal */
|
|
DWORD dwEnhModeFlagsProp; // PROPPRG data (subset) /* ;Internal */
|
|
DWORD dwRealModeFlagsProp; // PROPPRG data (subset) /* ;Internal */
|
|
CHAR achOtherFileProp[PIFDEFFILESIZE];//PROPPRG data (subset) /* ;Internal */
|
|
CHAR achIconFileProp[PIFDEFFILESIZE];// PROPPRG data (subset) /* ;Internal */
|
|
WORD wIconIndexProp; // PROPPRG data (subset) /* ;Internal */
|
|
PROPTSK tskProp; // PROPTSK data /* ;Internal */
|
|
PROPVID vidProp; // PROPVID data /* ;Internal */
|
|
PROPKBD kbdProp; // PROPKBD data /* ;Internal */
|
|
PROPMSE mseProp; // PROPMSE data /* ;Internal */
|
|
PROPSND sndProp; // PROPSND data /* ;Internal */
|
|
PROPFNT fntProp; // PROPFNT data /* ;Internal */
|
|
PROPWIN winProp; // PROPWIN data /* ;Internal */
|
|
PROPENV envProp; // PROPENV data /* ;Internal */
|
|
WORD wInternalRevision; // Internal WENHPIF40 version /* ;Internal */
|
|
} WENHPIF40; /* ;Internal */
|
|
typedef UNALIGNED WENHPIF40 *PWENHPIF40; /* ;Internal */
|
|
typedef UNALIGNED WENHPIF40 FAR *LPWENHPIF40; /* ;Internal */
|
|
|
|
|
|
|
|
|
|
#if defined(NEC_98)
|
|
#ifndef _PIFNT_NEC98_
|
|
#define _PIFNT_NEC98_
|
|
/*****************************************************************************/
|
|
/* Windows 3.1 PIF file extension for NEC PC-9800 */
|
|
/*****************************************************************************/
|
|
/* For Header signature. */
|
|
|
|
#define W30NECHDRSIG "WINDOWS NEC 3.0"
|
|
|
|
/* Real Extended Structire for NEC PC-9800 */
|
|
|
|
#ifndef RC_INVOKED
|
|
#pragma pack (1)
|
|
#endif
|
|
typedef struct {
|
|
BYTE cPlaneFlags;
|
|
BYTE cNecFlags; // +1
|
|
BYTE cVCDFlags; // +2
|
|
BYTE EnhExtBit; // +3
|
|
BYTE Extcont; // +4 byte
|
|
BYTE cReserved[27]; // reserved
|
|
} PIFNECEXT; // all = 32bytes
|
|
#ifndef RC_INVOKED
|
|
#pragma pack()
|
|
#endif
|
|
#define PIFNECEXTSIZE sizeof(PIFNECEXT)
|
|
/*-----------------------------------------------------------------------------
|
|
cPlaneFlags (8 bit)
|
|
|
|
0 0 0 0 X X X X
|
|
| | | | | | | +-- Plane 0{On/Off}
|
|
| | | | | | +---- Plane 1{On/Off}
|
|
| | | | | +------ Plane 2{On/Off}
|
|
| | | | +-------- Plane 3{On/Off}
|
|
+-+-+-+---------- Reserved for 256 color
|
|
|
|
-----------------------------------------------------------------------------*/
|
|
|
|
#define P0MASK 0x01 /* plane 1 <ON> */
|
|
#define NOTP0MASK 0xfe /* plane 1 <OFF> */
|
|
|
|
#define P1MASK 0x02 /* plane 2 <ON> */
|
|
#define NOTP1MASK 0xfd /* plane 2 <OFF> */
|
|
|
|
#define P2MASK 0x04 /* plane 3 <ON> */
|
|
#define NOTP2MASK 0xfb /* plane 3 <OFF> */
|
|
|
|
#define P3MASK 0x08 /* plane 4 <ON> */
|
|
#define NOTP3MASK 0xf7 /* plane 4 <OFF> */
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
cNECFLAGS (8 bit)
|
|
|
|
X 0 0 X X X X X
|
|
| | | | | | | +-- CRTC tracer
|
|
| | | | | | +---- screen info trans.�o0:text /1:graph or text�p
|
|
| | | | | +------ N/H Dynamic1 (N?H:0 H/N:1)
|
|
| | | | +-------- N/H Dynamic2 (H:0 N:1)
|
|
| | | +---------- graph on window
|
|
| +-+------------ Reserved
|
|
+---------------- EMM large page frame
|
|
-----------------------------------------------------------------------------*/
|
|
|
|
#define CRTCMASK 0x01 /* CRTC <ON> */
|
|
#define NOTCRTCMASK 0xfe /* CRTC <OFF> */
|
|
|
|
#define EXCHGMASK 0x02 /* Screen Exchange <GRPH ON> */
|
|
#define NOTEXCHGMASK 0xfd /* Screen Exchange <GRPH OFF> */
|
|
|
|
#define EMMLGPGMASK 0x80 /* EMM Large Page Frame <ON> */
|
|
#define NOTEMMLGPGMASK 0x7f /* EMM Large Page Frame <OFF> */
|
|
|
|
#define NH1MASK 0x04 /* N/H Dynamic1 <N/H> (UpdateNECScreen)*/
|
|
#define NOTNH1MASK 0xfb /* N/H Dynamic1 <N?H> (UpdateNECScreen)*/
|
|
|
|
#define NH2MASK 0x08 /* N/H Dynamic2 < N > (UpdateNECScreen)*/
|
|
#define NOTNH2MASK 0xf7 /* N/H Dynamic2 < H > (UpdateNECScreen)*/
|
|
|
|
#define WINGRPMASK 0x10 /* door mado 1992 9 14 */
|
|
#define NOTWINGRPMASK 0xef /* */
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
cVCDFlags (8 bit)
|
|
|
|
0 0 0 0 X X X X
|
|
| | | | | | | +-- 0/1 RS / CS
|
|
| | | | | | +---- 0/1 Xon / Xoff
|
|
| | | | | +------ 0/1 ER/DR
|
|
| | | | +-------- Port(Reserved)
|
|
| | | +---------- Port(Reserved)
|
|
+-+-+-+---------- Reserved
|
|
|
|
------------------------------------------------------------------------------*/
|
|
#define VCDRSCSMASK 0x001 /* 0/1 RS/CS handshake */
|
|
#define NOTVCDRSCSMASK 0xfe
|
|
|
|
#define VCDXONOFFMASK 0x02 /* 0/1 Xon/off handshake */
|
|
#define NOTVCDXONOFFMASK 0xfd
|
|
|
|
#define VCDERDRMASK 0x04 /* 0/1 ER/DR handshake */
|
|
#define NOTVCDERDRMASK 0xfb
|
|
|
|
/* Now Only Reserved */
|
|
/* port assign */
|
|
#define VCDPORTASMASK 0x18 /* 00:none */
|
|
#define NOTVCDPORTASMASK 0xe7 /* 01:port1�¨port2 */
|
|
/* 10:port1�¨port3 */
|
|
/* 11:unused */
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
EnhExtBit (8 bit)
|
|
|
|
X 0 0 X X X X X
|
|
| | | | | | | +-- Mode F/F (Yes:0 No:1)
|
|
| | | | | | +---- Display/Draw (Yes:0 No:1)
|
|
| | | | | +------ ColorPallett (Yes:0 No:1)
|
|
| | | | +-------- GDC (Yes:0 No:1)
|
|
| | | +---------- Font (Yes:0 No:1)
|
|
| +-+-+---------- Reserved
|
|
+---------------- All is set/not(Set:1 No:0)
|
|
|
|
------------------------------------------------------------------------------*/
|
|
#define MODEFFMASK 0x01
|
|
#define NOTMODEFFMASK 0xfe
|
|
|
|
#define DISPLAYDRAWMASK 0x02 /* 0/1 Xon/off handhshake */
|
|
#define NOTDISPLAYDRAWMASK 0xfd
|
|
|
|
#define COLORPALLETTMASK 0x04 /* 0/1 ER/DR handshake */
|
|
#define NOTCOLORPALLETTMASK 0xfb
|
|
|
|
#define GDCMASK 0x08
|
|
#define NOTGDCMASK 0xf7
|
|
|
|
#define FONTMASK 0x10
|
|
#define NOTFONTMASK 0xef
|
|
|
|
#define VDDMASK 0x80
|
|
#define NOTVDDMASK 0x7f
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
Extcont (8 bit)
|
|
|
|
0 0 0 0 X X X X
|
|
| | | | | | | +-- Mode F/F (8Color:0 16Color:1)
|
|
| | | | | | +---- Reserved
|
|
| | | | | +------ GDC TEXT (ON:1 OFF:0)
|
|
| | | | +-------- GDC GRPH (ON:1 OFF:0)
|
|
+-+-+-+---------- Reserved
|
|
|
|
------------------------------------------------------------------------------*/
|
|
#define MODEFF16 0x01
|
|
#define MODEFF8 0xfe
|
|
|
|
#define GDCTEXTMASK 0x04
|
|
#define NOTGDCTEXTMASK 0xfb
|
|
|
|
#define GDCGRPHMASK 0x08
|
|
#define NOTGDCGRPHMASK 0xf7
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
Reserved(8 bit)
|
|
|
|
0 0 0 0 0 0 0 0
|
|
| | | | | | | |
|
|
+-+-+-+-+-+-+-+-- Reserved
|
|
|
|
-----------------------------------------------------------------------------*/
|
|
/* unused */
|
|
|
|
/*****************************************************************************/
|
|
/* Windows NT 3.1 PIF file extension for NEC PC-9800 */
|
|
/*****************************************************************************/
|
|
/* For Header signature. */
|
|
|
|
#define WNTNECHDRSIG "WINDOWS NT31NEC"
|
|
|
|
/* Real Extended Structire for NEC PC-9800 */
|
|
|
|
#ifndef RC_INVOKED
|
|
#pragma pack (1)
|
|
#endif
|
|
typedef struct {
|
|
BYTE cFontFlags;
|
|
BYTE cReserved[31]; // reserved
|
|
} PIFNTNECEXT; // all = 32bytes
|
|
#ifndef RC_INVOKED
|
|
#pragma pack()
|
|
#endif
|
|
#define PIFNTNECEXTSIZE sizeof(PIFNTNECEXT)
|
|
/*-----------------------------------------------------------------------------
|
|
cFontFlags (8 bit)
|
|
|
|
0 0 0 0 0 0 0 X
|
|
| | | | | | | +-- N mode compatible font(default:FALSE)
|
|
+-+-+-+-+-+-+---- Reserved
|
|
-----------------------------------------------------------------------------*/
|
|
|
|
#define NECFONTMASK 0x01 /* NEC Font <ON> */
|
|
#define NONECFONTMASK 0xfe /* NEC Font <OFF> */
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
Reserved(8 bit)[31]
|
|
|
|
0 0 0 0 0 0 0 0
|
|
| | | | | | | |
|
|
+-+-+-+-+-+-+-+-- Reserved
|
|
|
|
-----------------------------------------------------------------------------*/
|
|
/* unused */
|
|
|
|
#endif // !_PIFNT_NEC98_
|
|
#endif // NEC_98
|