📄 msd.h
字号:
WORD wSectorsPerTrack; /* Sectors per track */
WORD wCmosDriveType; /* The CMOS drive type (ie, 02, 48, etc). */
WORD wCmosCylinders; /* CMOS reported number of cylinders */
WORD wCmosHeads; /* CMOS reported number of heads */
WORD wCmosSectorsPerTrack; /* CMOS reported sectors per track */
BOOL fBiosSupported; /* TRUE if this is a BIOS supported drive */
} SINGLE_DRIVE_INFO;
typedef struct _ASSIGN_TABLE
{
CHAR chAssignTo; /* ASSIGN table ie, C=D, X=F, etc */
CHAR chAssignFrom; /* C is to, D is from */
} ASSIGN_TABLE;
typedef struct _DISK_STRUCT
{
WORD wNmbrDrives; /* Total number of drives in the system */
CHAR chLastDrive; /* Highest available drive letter */
CHAR chCurrentDrive; /* Current drive letter */
BOOL fJoinInstalled; /* TRUE if JOIN.EXE is installed */
BOOL fSubstInstalled; /* TRUE if SUBST.EXE is installed */
BOOL fShareInstalled; /* TRUE if SHARE.EXE is installed */
BOOL fAssignInstalled; /* TRUE if ASSIGN.EXE is installed */
ASSIGN_TABLE atAssignTable[MAX_ASSIGN_TABLE]; /* ASSIGNed drives */
BOOL fAppendInstalled; /* TRUE if APPEND.EXE is installed */
CHAR szAppendPath[MAX_APPEND_PATH]; /* APPEND path */
WORD wMscdexMajor; /* Major version of MSCDEX.EXE */
WORD wMscdexMinor; /* Minor version of MSCDEX.EXE */
SINGLE_DRIVE_INFO asdi[MAX_DRIVE_LETTERS]; /* Drive information */
} DISK_STRUCT;
typedef struct _CMOS_DRIVE_TYPE
{
WORD wNmbrCylinders; /* 00h */
BYTE bNmbrHeads; /* 02h */
WORD wReducedWriteCyl; /* 03h */
WORD wWritePrecomp; /* 05h */
BYTE bMaxEccBurstLength; /* 07h */
BYTE bControlByte; /* 08h */
BYTE bStandardTimeout; /* 09h */
BYTE bFormattingTimeout; /* 0Ah */
BYTE bDriveCheckTimeout; /* 0Bh */
WORD wLandingZone; /* 0Ch */
BYTE bSectorsPerTrack; /* 0Eh */
BYTE bReserved; /* 0Fh */
} CMOS_DRIVE_TYPE;
/* LPT Information Structure */
#define MAX_LPT_PORTS 3
typedef struct _LPT_X_STRUCT
{
BOOL fLptPortDetected; /* TRUE if parallel port detected */
WORD wPortAddress; /* Port address for LPT port */
BOOL fOnLine; /* TRUE if printer on-line */
BOOL fPaperOut; /* TRUE if paper out sensor is on */
BOOL fIoError; /* TRUE if I/O error occured */
BOOL fTimeOut; /* TRUE if a timeout error occured */
BOOL fBusy; /* TRUE if port is busy */
BOOL fAck; /* TRUE if ACK line on */
} LPT_X_STRUCT;
typedef struct _LPT_STRUCT
{
WORD wNmbrLptPorts; /* Total count of LPT ports */
LPT_X_STRUCT LptxInfo[MAX_LPT_PORTS]; /* Individual LPT port data */
} LPT_STRUCT;
/* COM Information Structure */
/* The serial port information I received is primarily from the MS-DOS */
/* Encyclopedia, Article 6, starting on page 167. The information */
/* about the 8250 UART chip begins on page 172. */
#define MAX_UART_CHIP 8
#define MAX_PARITY 6
typedef struct _COM_X_STRUCT
{
BOOL fComPortDetected; /* TRUE if serial port detected */
WORD wPortAddress; /* Port address for the serial port */
DWORD dwBaudRate; /* Actual Baud Rate */
WORD wParity; /* Parity 0=N 1=O 2=E 3=Mark 4=Space */
CHAR szParity[MAX_PARITY]; /* Parity (string) */
WORD wDataBits; /* Data bits */
WORD wStopBits; /* Stop bits 1=1 2=2 3=1.5 */
BOOL fCarrierDetect; /* Carrier Detect */
BOOL fRingIndicator; /* Ring Indicator active */
BOOL fDataSetReady; /* DSR line indicator */
BOOL fClearToSend; /* CTS line indicator */
WORD wUartChip; /* UART chip type (numeric) */
CHAR szUartChip[MAX_UART_CHIP]; /* UART chip type (string) */
} COM_X_STRUCT;
typedef struct _COM_STRUCT
{
WORD wNmbrComPorts; /* Total count of COM ports */
COM_X_STRUCT ComxInfo[MAX_COM_PORTS]; /* Individual COM port data */
} COM_STRUCT;
/* IRQ Structure */
#define MAX_IRQ_DESCRIPTION 20
#define MAX_IRQ_DETECTED_STRINGS 4
#define MAX_IRQ_DETECTED_LEN 21
#define MAX_IRQ_HANDLED_BY 20
typedef struct _IRQ_X_STRUCT
{
BOOL fDetected; /* TRUE if something detected */
DWORD dwIrqAddress; /* IRQ interrupt vector */
/* Items detected (COM, Mouse) */
CHAR szDetected[MAX_IRQ_DETECTED_STRINGS][MAX_IRQ_DETECTED_LEN];
CHAR szHandledBy[MAX_IRQ_HANDLED_BY]; /* What is located at the IRQ's */
/* address (BIOS, TSR, etc). */
} IRQ_X_STRUCT;
#define MAX_IRQ_X_STRUCTS 16
typedef struct _IRQ_STRUCT
{
WORD wNmbrIrqs; /* Number of IRQ's in system */
IRQ_X_STRUCT IrqxInfo[MAX_IRQ_X_STRUCTS]; /* One item for each IRQ */
} IRQ_STRUCT;
/* TSR Program List Structure */
#define MAX_TSR_NAME 19
#define MAX_TSR_CMD_LINE 32
typedef struct _TSR_PROGRAMS_STRUCT
{
WORD wAddress; /* Address of the MCB */
DWORD dwBlockSize; /* Size of the MCB */
CHAR szTsrName[MAX_TSR_NAME]; /* MCB owner name */
CHAR szParameters[MAX_TSR_CMD_LINE]; /* Command line paramters */
} TSR_PROGRAMS_STRUCT;
/* Device Driver Structure */
typedef struct _DEVICE_DRIVER_STRUCT
{
DWORD dwHeader; /* Address of the device driver's header. */
WORD wAttributes; /* 16 bits of attributes for the driver. */
/* Bit 15 is set for character devices. */
CHAR szDeviceName[15]; /* Device name for character devices. */
CHAR szDriverFilename[9]; /* DEVICE=Filename for device. */
WORD wUnits; /* Number of units for block devices. */
} DEVICE_DRIVER_STRUCT;
/* File Finder structure */
typedef struct _FILE_INFO
{
BYTE bAttrib; /* File attributes */
WORD wTime; /* Time of last write to file */
WORD wDate; /* Date of last write to file */
DWORD dwSize; /* Size of the file */
DWORD dwFileVersionMS; /* File version (Most Significant DWORD) */
DWORD dwFileVersionLS; /* File version (Least Significant DWORD) */
CHAR FAR *fpszPathToFile; /* Fully qualified path to the file */
VOID FAR *fpNextFileInfo; /* Next FILE_INFO structure in the chain */
} FILE_INFO;
extern FILE_INFO FAR *pfiDlg; /* File Info for dialog processing */
typedef struct _DATE_INFO
{
BITS Day : 5;
BITS Month : 4;
BITS Year : 7;
} DATE_INFO;
#define SIZE_COLUMN 47
#define DATE_COLUMN 63
#define FIND_FILE_LINE_LENGTH 71
/* Test Printer structure */
typedef struct _TEST_PRINTER
{
BOOL fPostscript; /* TRUE if the Postscript test is requested */
BOOL f8BitTest; /* TRUE if the 8-bit ASCII test is requested */
BOOL fSerialTest; /* TRUE if serial port, FALSE for parallel port */
WORD wPort; /* Printer port number for the test */
} TEST_PRINTER;
extern TEST_PRINTER tpValue;
/* Browsing structure */
typedef struct _MEM_STRING_DATA
{
char far *cfpString;
int iStringLen;
} MEM_STRING_DATA;
#define MAX_MSD_STRINGS 24
#define MAX_BROWSE_LINES 4
extern QSZ * pqszBrowseStrings;
extern PSZ pszBrowseTitle;
/* Status line help structure */
typedef struct _STATUS_LINE_STRINGS
{
WORD wStringNmbr;
PSZ pszString;
} STATUS_LINE_STRINGS;
/***************/
/* Prototyping */
/***************/
/**************************** MSD.C *********************************/
BOOL ProcessCmdLine (INT argc, PSZ argv[]);
/**************************** SUMMARY.C *****************************/
#ifdef CW_INCLUDED
VOID BeginCwInterface (VOID);
BOOL GetCwSumInfo (VOID);
#ifdef BASED
BOOL FAR PASCAL WndSegInit (VOID);
_segment pWndSeg;
#endif /* BASED */
VOID SetIsaColors (BOOL fBlackWhiteFlag);
VOID FAR InitMainWindows(void);
STATIC LONG FAR PASCAL MainWndProc (PWND, WORD, WORD, DWORD);
STATIC LONG FAR PASCAL StatusLineProc (PWND, WORD, WORD, DWORD);
VOID InitMsgBoxPlateBtns (VOID);
PWND FAR CreateMsgBtn ( szWindowName,
wStyle, wExStyle,
X, Y,
nWidth, nHeight,
hwndDlg,
id );
LONG FAR
MyMsgBoxProc (REGISTER PWND_DLG pwnd,
WORD message,
WORD wParam,
DWORD lParam);
VOID InitMyEditItem (VOID);
LONG FAR
MyEditItemProc (REGISTER PWND_EDIT pwnd,
WORD message,
WORD wParam,
DWORD lParam);
VOID WarnWindowsUser (VOID);
STATIC BOOL PASCAL CreateChildWindows (PVOID);
STATIC BOOL PASCAL WriteSummaryText (PVOID);
STATIC BOOL FARPUBLIC FrameFilter (PMSG, WORD *);
/* AUXCOW.C */
VOID FAR PASCAL Exit (INT);
BOOL FHelpMsg (PMSG pmsg, WORD cnx);
VOID FARPUBLIC Help (WORD hem, WORD hid, VOID *pv, WORD kk);
VOID ExamineDisplay (VOID);
#endif /* CW_INCLUDED */
/**************************** GETINFO.C *****************************/
INT GetInfoSize (WORD wRecordType, BOOL fHeaderRecord);
BOOL GetInfo (WORD wRecordType,
VOID *pStructForInfo,
BOOL fMinimumInfo,
BOOL fHeaderRecord,
BOOL fReportFlag);
/**************************** SPRNINFO.C ****************************/
QSZ * SprintInfo (WORD wRecordType,
VOID *pStructWithInfo,
CHAR szSumStrings[][MAX_SUMM_INFO + 5],
BOOL fReportFlag);
/**************************** RPTINFO.C *****************************/
BOOL ReportOnly (PSZ pszRptFilename);
BOOL ReportFromCW (VOID);
BOOL WriteInfo (FILE *fileOutput,
PSZ pszTitle,
QSZ *pqszStrings);
BOOL WriteSepLine (FILE *fileOutput, PSZ pszTitle);
BOOL WritePageBreak (FILE *fileOutput);
BOOL ReportFile (PSZ pszTitle,
PSZ pszFilename,
FILE *fileOutput);
BOOL TestPrinter (BOOL fPostscript,
BOOL f8BitTest,
BOOL fSerialTest,
WORD wPort);
BOOL PrintTest (PSZ pszPort, BOOL f8BitTest, BOOL fPostscript);
/**************************** SHOWINFO.C ****************************/
#ifdef CW_INCLUDED
PWND ShowInfo (WORD wRecordType);
STATIC PWND CreateInfoWnd (PSZ pszWindowTitle,
QSZ *pqszStrings,
BOOL fKeepFocus);
STATIC LONG FAR PASCAL InfoWndProc (PWND, WORD, WORD, DWORD);
STATIC VOID InfoTxtWndScroll (PWND pwnd, WORD wParam, DWORD lParam);
STATIC LONG FAR PASCAL InfoTxtWndProc (PWND, WORD, WORD, DWORD);
STATIC BOOL PASCAL CreateInfoChildWindows (PWND pwndParent);
STATIC BOOL PASCAL CreateInfoTxtChildren (PWND pwndParent);
VOID DrawPlateButton1 (PWND pwnd,
WORD message,
WORD wParam,
DWORD lParam);
#endif /* CW_INCLUDED */
/**************************** DIALOGS.C *****************************/
#ifdef CW_INCLUDED
LONG FAR PASCAL ReportDlg (PWND pwnd,
WORD message,
WORD wParam,
DWORD lParam);
LONG FAR PASCAL FindFileDlg1 (PWND pwnd,
WORD message,
WOR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -