⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msd.h

📁 Dos6.0
💻 H
📖 第 1 页 / 共 5 页
字号:
  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 + -