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

📄 bsedev.mh

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 MH
📖 第 1 页 / 共 2 页
字号:

#define KBD_READ_WAIT   0x0000
#define KBD_READ_NOWAIT 0x8000

#define SHIFT_REPORT_MODE 1

#ifndef INCL_MOU
  #define MOUSE_MOTION               0x0001
  #define MOUSE_MOTION_WITH_BN1_DOWN 0x0002
  #define MOUSE_BN1_DOWN             0x0004
  #define MOUSE_MOTION_WITH_BN2_DOWN 0x0008
  #define MOUSE_BN2_DOWN             0x0010
  #define MOUSE_MOTION_WITH_BN3_DOWN 0x0020
  #define MOUSE_BN3_DOWN             0x0040

  #define MHK_BUTTON1 1
  #define MHK_BUTTON2 2
  #define MHK_BUTTON3 4

  #define MOU_NOWAIT 0
  #define MOU_WAIT   1
#endif

#define MHK_NO_HOTKEY 0

#define MOUSE_QUEUEBUSY        0x0001
#define MOUSE_BLOCKREAD        0x0002
#define MOUSE_FLUSH            0x0004
#define MOUSE_UNSUPPORTED_MODE 0x0008
#define MOUSE_DISABLED         0x0100
#define MOUSE_MICKEYS          0x0200

#define PRINTER_TIMEOUT      0x0001
#define PRINTER_IO_ERROR     0x0008
#define PRINTER_SELECTED     0x0010
#define PRINTER_OUT_OF_PAPER 0x0020
#define PRINTER_ACKNOWLEDGED 0x0040
#define PRINTER_NOT_BUSY     0x0080

#define READ_BANK    0
#define WRITE_BANK   1
#define MODE_TEXT    0
#define MODE_PLANAR  1
#define MODE_LINEAR  2

#define RIGHTSHIFT    0x0001
#define LEFTSHIFT     0x0002
#define CONTROL       0x0004
#define ALT           0x0008
#define SCROLLLOCK_ON 0x0010
#define NUMLOCK_ON    0x0020
#define CAPSLOCK_ON   0x0040
#define INSERT_ON     0x0080
#define LEFTCONTROL   0x0100
#define LEFTALT       0x0200
#define RIGHTCONTROL  0x0400
#define RIGHTALT      0x0800
#define SCROLLLOCK    0x1000
#define NUMLOCK       0x2000
#define CAPSLOCK      0x4000
#define SYSREQ        0x8000

#define DEVTYPE_48TPI   0
#define DEVTYPE_96TPI   1
#define DEVTYPE_35      2
#define DEVTYPE_8SD     3
#define DEVTYPE_8DD     4
#define DEVTYPE_FIXED   5
#define DEVTYPE_TAPE    6
#define DEVTYPE_UNKNOWN 7

#define SCREENDD_GETCURRENTBANK        0x00
#define SCREENDD_SETCURRENTBANK        0x01
#define SCREENDD_SVGA_ID               0x08
#define SCREENDD_SVGA_OEM              0x09
#define SCREENDD_UPDATEMEMORY          0x0A
#define SCREENDD_GETLINEARACCESS       0x0B
#define SCREENDD_GETGLOBALACCESS       0x0C
#define SCREENDD_FREEGLOBALACCESS      0x0D
#define SCREENDD_REGISTER_RING0_CALLER 0x0E
#define SCREENDD_WAIT_ON_RING0_CALLER  0x0F
#define SCREENDD_SVGA_APM              0x10
#define SCREENDD_GET_CS_ALIAS          0x11

#define APM_RESUME   1
#define APM_SUSPEND  2
#define APM_DISABLED 4

#define SCREENDD_CATEGORY 0x80
#define SCREENDD_NAME     "SCREEN$"

#define GETLINEAR_FLAG_MAPPHYSICAL 0x00000010
#define GETLINEAR_FLAG_MAPPROCESS  0x00000020
#define GETLINEAR_FLAG_MAPSHARED   0x00000400
#define GETLINEAR_FLAG_MAPVERIFY   0x40000000
#define GETLINEAR_FLAG_MAPATTACH   0x80000000

#define EGA_BIT    4
#define VGA_BIT    8
#define EGAVGA_BIT (EGA_BIT+VGA_BIT)

typedef struct _DCBINFO {
    USHORT usWriteTimeout;
    USHORT usReadTimeout;
    BYTE   fbCtlHndShake;
    BYTE   fbFlowReplace;
    BYTE   fbTimeout;
    BYTE   bErrorReplacementChar;
    BYTE   bBreakReplacementChar;
    BYTE   bXONChar;
    BYTE   bXOFFChar;
} DCBINFO, *PDCBINFO;

typedef _Packed struct _TRACKLAYOUT {
    BYTE   bCommand;
    USHORT usHead;
    USHORT usCylinder;
    USHORT usFirstSector;
    USHORT cSectors;
    struct {
        USHORT usSectorNumber;
        USHORT usSectorSize;
    } TrackTable[1];
} TRACKLAYOUT, *PTRACKLAYOUT;

typedef _Packed struct _BIOSPARAMETERBLOCK {
    USHORT usBytesPerSector;
    BYTE   bSectorsPerCluster;
    USHORT usReservedSectors;
    BYTE   cFATs;
    USHORT cRootEntries;
    USHORT cSectors;
    BYTE   bMedia;
    USHORT usSectorsPerFAT;
    USHORT usSectorsPerTrack;
    USHORT cHeads;
    ULONG  cHiddenSectors;
    ULONG  cLargeSectors;
    BYTE   abReserved[6];
    USHORT cCylinders;
    BYTE   bDeviceType;
    USHORT fsDeviceAttr;
} BIOSPARAMETERBLOCK, *PBIOSPARAMETERBLOCK;

typedef struct _SCREENGROUP {
    USHORT idScreenGrp;
    USHORT fTerminate;
} SCREENGROUP, *PSCREENGROUP;

typedef struct _FRAME {
    BYTE bCharsPerLine;
    BYTE bLinesPerInch;
} FRAME, *PFRAME;

typedef struct _KBDTYPE {
    USHORT usType;
    USHORT reserved1;
    USHORT reserved2;
} KBDTYPE, *PKBDTYPE;

typedef struct _LINECONTROL {
    BYTE bDataBits;
    BYTE bParity;
    BYTE bStopBits;
    BYTE fTransBreak;
} LINECONTROL, *PLINECONTROL;

typedef struct _MODEMSTATUS {
    BYTE fbModemOn;
    BYTE fbModemOff;
} MODEMSTATUS, *PMODEMSTATUS;

/* NOINC */
#pragma pack(1)
/* INC */

typedef _Packed struct _TRACKFORMAT {
    BYTE bCommand;
    USHORT usHead;
    USHORT usCylinder;
    USHORT usReserved;
    USHORT cSectors;
    struct {
        BYTE bCylinder;
        BYTE bHead;
        BYTE idSector;
        BYTE bBytesSector;
    } FormatTable[1];
} TRACKFORMAT, *PTRACKFORMAT;

typedef struct _RXQUEUE {
    USHORT cch;
    USHORT cb;
} RXQUEUE, *PRXQUEUE;

typedef struct _DEVICEPARAMETERBLOCK {
    USHORT reserved1;
    USHORT cCylinders;
    USHORT cHeads;
    USHORT cSectorsPerTrack;
    USHORT reserved2;
    USHORT reserved3;
    USHORT reserved4;
    USHORT reserved5;
} DEVICEPARAMETERBLOCK, *PDEVICEPARAMETERBLOCK;

typedef _Packed struct _PTRDRAWFUNCTION {
    USHORT usReturnCode;
    PFN    pfnDraw;
    PCH    pchDataSeg;
} PTRDRAWFUNCTION, *PPTRDRAWFUNCTION;

typedef struct _PTRDRAWADDRESS {
    USHORT reserved;
    PTRDRAWFUNCTION ptrdfnc;
} PTRDRAWADDRESS, *PPTRDRAWADDRESS;

typedef struct _SHIFTSTATE {
    USHORT fsState;
    BYTE   fNLS;
} SHIFTSTATE, *PSHIFTSTATE;

typedef struct _HOTKEY {
    USHORT fsHotKey;
    UCHAR  uchScancodeMake;
    UCHAR  uchScancodeBreak;
    USHORT idHotKey;
} HOTKEY, *PHOTKEY;

typedef struct _MONITORPOSITION {
    USHORT fPosition;
    USHORT index;
    ULONG  pbInBuf;
    USHORT offOutBuf;
} MONITORPOSITION, *PMONITORPOSITION;

typedef struct _RATEDELAY {
    USHORT usDelay;
    USHORT usRate;
} RATEDELAY, *PRATEDELAY;

typedef struct _CODEPAGEINFO {
    PBYTE  pbTransTable;
    USHORT idCodePage;
    USHORT idTable;
} CODEPAGEINFO, *PCODEPAGEINFO;

typedef struct _CPID {
    USHORT idCodePage;
    USHORT Reserved;
} CPID, *PCPID;

typedef struct _LDTADDRINFO {
    PULONG pulPhysAddr;
    USHORT cb;
} LDTADDRINFO, *PLDTADDRINFO;

typedef struct _PTRDRAWDATA {
    USHORT cb;
    USHORT usConfig;
    USHORT usFlag;
} PTRDRAWDATA, *PPTRDRAWDATA;

typedef struct _GETLINIOCTLDATA {
    ULONG PacketLength;
    ULONG PhysicalAddress;
    ULONG ApertureSize;
    PBYTE LinearAddress;
    ULONG LinearFlags;
} GETLINIOCTLDATA, *PGETLINIOCTLDATA;

typedef struct _BANKINFO {
    ULONG  ulBankLength;
    USHORT usBank;
    USHORT usVideoModeType;
    USHORT usReadWriteMode;
} BANKINFO;

typedef struct _GLOBALIOCTLDATA {
    ULONG ProcessAddress;
    ULONG AddressLength;
    ULONG GlobalAddress;
} GLOBALIOCTLDATA;

typedef struct _OEMSVGAINFO {
    USHORT AdapterType;
    USHORT ChipType;
    ULONG  Memory;
    ULONG  aulPCIRangeSize [6];
    BYTE   abPCIConfiguration [256];
} OEMSVGAINFO;

typedef struct _OEMINFO {
    ULONG  OEMLength;
    USHORT Manufacturer;
    ULONG  ManufacturerData;
    USHORT ManufacturerModel;
} OEMINFO;

typedef struct _GETGLOBALPACKET {
    ULONG   GlobalPktLength;
    GLOBALIOCTLDATA GlobalPktData[1];
} GETGLOBALPACKET;

typedef _Packed struct _OEMHLPDISKINFO {
    USHORT ODI_Reserved;
    USHORT ODI_Flags;
    ULONG  ODI_Cylinders;
    ULONG  ODI_Heads;
    ULONG  ODI_SectorsPerTrack;
    ULONG  ODI_PhysSectors_low;
    ULONG  ODI_PhysSectors_high;
    USHORT ODI_SectorSize;
    ULONG  ODI_Reserved2;
    USHORT ODI_IOPort;
    USHORT ODI_ControlPort;
    UCHAR  ODI_HeadRegisterUN;
    UCHAR  ODI_Reserved3;
    UCHAR  ODI_IRQ;
    UCHAR  ODI_RWMult_BlkCnt;
    UCHAR  ODI_DMAInfo;
    UCHAR  ODI_PIOInfo;
    USHORT ODI_HWFlags;
    USHORT ODI_Reserved4;
    UCHAR  ODI_Revision;
    UCHAR  ODI_Reserved5;
} OEMHLPDISKINFO;

:include cplusepi.sp

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -