64 lines
1.4 KiB
C
64 lines
1.4 KiB
C
|
|
#define BCFILE 0
|
|
#define LINFILE 1
|
|
|
|
|
|
//////////////////// RFILE Class ///////////////////////
|
|
typedef struct
|
|
{
|
|
WORD wAtt;
|
|
WORD wPage;
|
|
hSecureFile hsecfile;
|
|
}
|
|
RFILE, FAR* LPRFILE;
|
|
|
|
// Need to remember encodings of files, but don't want to increase the NVRAM
|
|
// storage requirements for an array of struct RFILE
|
|
typedef struct
|
|
{
|
|
LPRFILE lpRFile;
|
|
DWORD Encoding;
|
|
DWORD dwFlush;
|
|
DWORD dwEndMetaData;
|
|
}
|
|
RXSFILE, FAR* LPRXSFILE;
|
|
|
|
typedef struct
|
|
{
|
|
WORD wSigRF;
|
|
WORD wNumEntries;
|
|
LPRFILE lpRFileTail; // last valid item
|
|
LPRFILE lpRFileHead; // first free item
|
|
// empty if Head==Tail. Full if ((Head+1) mod N)==Tail
|
|
|
|
WORD wFlags; // see below
|
|
WORD dummy; // sizeof(RFILEHDR)==sizeof(RFILE) must be true
|
|
}
|
|
RFILEHDR, FAR* LPRFILEHDR;
|
|
|
|
#define NVBUFSIZE 2048
|
|
#define NUMSPECIAL 2
|
|
#define NUMGENERAL 120
|
|
#define SIG_RF 0x4d41
|
|
|
|
// wFlags
|
|
#define RFILE_NO_NVRAM 1 // if this flag set then RFILE list is in regular RAM!
|
|
|
|
|
|
#define lprfLim (lprfStart + NUMGENERAL)
|
|
#define lprfTail (lprfHdr->lpRFileTail)
|
|
#define lprfHead (lprfHdr->lpRFileHead)
|
|
|
|
|
|
#define RFileGetCount() \
|
|
( (lprfHead >= lprfTail) ? ((WORD)(lprfHead-lprfTail)) : ((WORD)(NUMGENERAL-(lprfTail-lprfHead))) )
|
|
|
|
|
|
#define MyRegisterSecFile(lprfHdr, lphsec) \
|
|
((lprfHdr->wFlags & RFILE_NO_NVRAM) ? TRUE : RegisterSecFile(lphsec))
|
|
|
|
#define MyUnRegisterSecFile(lprfHdr, lphsec) \
|
|
((lprfHdr->wFlags & RFILE_NO_NVRAM) ? TRUE : UnRegisterSecFile(lphsec))
|
|
|
|
|