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.
125 lines
4.2 KiB
125 lines
4.2 KiB
/************************************************************/
|
|
/* Windows Write, Copyright 1985-1992 Microsoft Corporation */
|
|
/************************************************************/
|
|
|
|
#include "machdefs.h"
|
|
|
|
#define cfcPage ((typeFC)cbSector)
|
|
#define ibpNil 255
|
|
#define lruMax ((unsigned) 65535)
|
|
#define fnMax 5
|
|
#define fnInsert (fnNil - 1)
|
|
#define fnScratch 0
|
|
#define osfnNil (-1)
|
|
#define rfnNil rfnMax /* Stored in 7 bits */
|
|
#define rfnFree (rfnMax + 1)
|
|
#define wMW ('M' + ('W' << 8))
|
|
#define wSY ('S' + ('Y' << 8))
|
|
#define wHP ('H' + ('P' << 8))
|
|
#define cwSector (cbSector / sizeof (int))
|
|
#define cbpMustKeep 6 /* assume no bp will be dislodged for this
|
|
many calls to IbpEnsureValid */
|
|
#define cbOpenFileBuf 128
|
|
|
|
#ifdef SAND
|
|
#define wMagic 0177062
|
|
#define wMagicOld 0137061
|
|
#else /* not SAND */
|
|
#define wMagic 0137061
|
|
#endif /* not SAND */
|
|
|
|
#define wMagicTool ((0253 << 8) + 0)
|
|
|
|
#define fcMax ((typeFC) 2147483647)
|
|
|
|
#define fpeNoSuch (-5)
|
|
#define fpeDiskFull (-7)
|
|
|
|
struct BPS
|
|
{
|
|
typePN pn;
|
|
int fn;
|
|
typeTS ts; /* time stamp - used in LRU algorithm */
|
|
unsigned fDirty : 1;
|
|
unsigned cch : 15;
|
|
CHAR ibpHashNext; /* link for external chained hashing
|
|
collision resolution */
|
|
};
|
|
|
|
|
|
struct FCB
|
|
{
|
|
typeFC fcMac; /* includes FIB, but not FKP's */
|
|
unsigned char fFormatted : 1;
|
|
unsigned char fDelete : 1;
|
|
unsigned char fReferenced : 1;
|
|
unsigned char dty : 4;
|
|
unsigned char fOpened: 1; /* Whether file has been opened before */
|
|
unsigned char rfn : 7;
|
|
unsigned char fSearchPath: 1; /* Search path when first opened */
|
|
int mdExt;
|
|
int mdFile;
|
|
typePN pnChar;
|
|
typePN pnPara;
|
|
typePN pnFntb;
|
|
typePN pnSep;
|
|
typePN pnSetb;
|
|
typePN pnBftb;
|
|
typePN pnFfntb; /* font family name table offset */
|
|
typePN pnMac; /* # of pages actually in existence */
|
|
typeFC (**hgfcChp)[];
|
|
typeFC (**hgfcPap)[];
|
|
CHAR (**hszFile)[];
|
|
CHAR (**hszSsht)[];
|
|
CHAR rgbOpenFileBuf[ cbOpenFileBuf ]; /* OpenFile's work space */
|
|
|
|
#ifdef SAND
|
|
int version; /* version byte */
|
|
int vref; /* volume reference number */
|
|
#endif /* SAND */
|
|
|
|
unsigned int fDisableRead: 1; /* disable reading of file */
|
|
};
|
|
|
|
#define cbFCB (sizeof (struct FCB))
|
|
#define cwFCB (sizeof (struct FCB) / sizeof (int))
|
|
|
|
struct ERFN
|
|
{ /* Real file (opened in os) */
|
|
int osfn;
|
|
int fn;
|
|
typeTS ts; /* time stamp - used in LRU algorithm */
|
|
};
|
|
|
|
|
|
#define cchToolHeader 14
|
|
|
|
struct FIB
|
|
{
|
|
int wIdent; /* Word-specific magic number */
|
|
int dty;
|
|
int wTool;
|
|
int cReceipts; /* Number of external receipts allowed */
|
|
int cbReceipt; /* Length of each receipt */
|
|
int bReceipts; /* One word offset from beginning of file
|
|
to beginning of receipts */
|
|
int isgMac; /* Number of code segments included */
|
|
/* End of Multi-Tool standard header */
|
|
typeFC fcMac;
|
|
typePN pnPara;
|
|
typePN pnFntb;
|
|
typePN pnSep;
|
|
typePN pnSetb;
|
|
typePN pnBftb; /* Also pnPgtb */
|
|
typePN pnFfntb; /* font family name table */
|
|
CHAR szSsht[66]; /* Style sheet name */
|
|
typePN pnMac;
|
|
CHAR rgbJunk[cbSector - (cchToolHeader + sizeof (typeFC)
|
|
+ 7 * sizeof (typePN) + 66)];
|
|
};
|
|
|
|
#define cchFIB (sizeof (struct FIB))
|
|
|
|
#define CONVFROMWORD (TRUE + 2) /* used by FWriteFn to convert Word file
|
|
characters to Write ANSI set */
|
|
|