diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /public/oak/inc/vddp.h | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to '')
-rw-r--r-- | public/oak/inc/vddp.h | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/public/oak/inc/vddp.h b/public/oak/inc/vddp.h new file mode 100644 index 000000000..fa01c3b0e --- /dev/null +++ b/public/oak/inc/vddp.h @@ -0,0 +1,111 @@ +// +// This structure is in little endian format i.e. compatible with the +// 386 byte addressing method. +// + +// +// The device data record for the Monitor peripheral. +// + +typedef struct _CM_MONITOR_DESCRIPTION { + + UCHAR VDDPVersion; // Structure version + UCHAR FileRevision; // Structure revision + USHORT Date[3]; // Structure date + // [0]=Year / [1]=month / [2]=day + ULONG Checksum; // Total Number of bytes in the file + // This should be chekced against: + // Checksum = sizeof(CM_MONITOR_DESCRIPTION) + + // NumberOperationalLimits * sizeof(CM_MONITOR_OPERATIONAL_LIMITS) + + // NumberPreadjustedTImings * sizeof(CM_MONITOR_PREADJUSTED_TIMING); + + + UCHAR Manufacturer[12]; // ASCII ID of the manufacturer + UCHAR ModelNumber[12]; // ASCII ID of the model + UCHAR Version[12]; // ASCCI ID of the model version + UCHAR SerialNumber[12]; // ASCII ID + USHORT DateManufactured[3]; // [0]=Year / [1]=month / [2]=day + USHORT RedPhosphoreDecay; // milliseconds + USHORT GreenPhosphoreDecay; // milliseconds + USHORT BluePhosphoreDecay; // milliseconds + UCHAR StartUpCompatibility[3]; // name of device compatible with + UCHAR MonitorType; // monochrome=0 / Color=1 + UCHAR CRTSize; // inches + UCHAR BorderColorRed; // percentage of Red in border color + UCHAR BorderColorGreen; // percentage of Green in border color + UCHAR BorderColorBlue; // percentage of Blue in border color + USHORT WhiteChromaticityX; // + USHORT WhiteChromaticityY; // + USHORT WhiteChromaticityZ; // + USHORT RedChromaticityX; // + USHORT RedChromaticityY; // + USHORT GreenChromaticityX; // + USHORT GreenChromaticityY; // + USHORT BlueChromaticityX; // + USHORT BlueChromaticityY; // + USHORT WhiteGamma; // + USHORT RedGamma; // + USHORT GreenGamma; // + USHORT BlueGamma; // + USHORT NumberOperationalLimits; // number of operational limits + USHORT NumberPreadjustedTimings; // number of timings structures + USHORT Unused; + +} CM_MONITOR_DESCRIPTION, *PCM_MONITOR_DESCRIPTION; + +typedef struct _CM_MONITOR_OPERATIONAL_LIMITS { + + ULONG MinimumHorizontalFrequency; // Hertz + ULONG MaximumHorizontalFrequency; // Hertz + ULONG MinimumVerticalFrequency; // milliHertz + ULONG MaximumVerticalFrequency; // milliHertz + ULONG MaximumPixelClock; // Hertz + USHORT MaximumHorizontalDots; // dots + USHORT MaximumVerticalLines; // lines + USHORT MinimumHorizontalRetrace; // nanoseconds + USHORT MinimumVerticalRetrace; // microseconds + USHORT HorizontalLineDimension; // millimeters + USHORT VerticalHeightDimension; // millimeters + +} CM_MONITOR_OPERATIONAL_LIMITS, *PCM_MONITOR_OPERATIONAL_LIMITS; + +typedef struct _CM_MONITOR_PREADJUSTED_TIMING { + UCHAR Version; // Should match the monitor description + UCHAR Revision; // version and revision values + UCHAR PreadjustedTimingName[12]; // ASCII ID of the Preadjusted timing + USHORT HorizontalResolution; // dots + + USHORT VerticalResolution; // lines + UCHAR PixelWidthRatio; // used with PixelHeight to form ratio + UCHAR PixelHeightRatio; // gives H:V + + ULONG HorizontalFrequency; // Hertz + ULONG VeriticalFrequency; // millihertz + + USHORT VertivalActiveHeight; // millimeters + USHORT HorizontalActiveLineLength; // millimeters + + UCHAR VideoType; // TTL=0 / analog=1 / ECL=2 + UCHAR VideoLevel; // 0.7 Vp-p=0 / 1.0 Vp-p=1 + UCHAR SyncType; // TTL=0 / analog=1 / ECL=2 + UCHAR Unused; + + UCHAR SyncConfiguration; // separate=0 / composite=1 / green=2 + UCHAR ScanType; // noninterlaced=0 / interlaced=1 + UCHAR HorizontalSyncPolarity; // negative=0 / positive=1 + UCHAR VerticalSyncPolarity; // negative=0 / positive=1 + + ULONG HorizontalAcitve; // nanoseconds + ULONG VerticalActive; // microseconds + + USHORT HorizontalRightBorder; // nanoseconds + USHORT HorizontalFrontPorch; // nanoseconds + USHORT HorizontalPulseWidth; // nanoseconds + USHORT HorizontalBackPorch; // nanoseconds + USHORT HorizontalLeftBorder; // nanoseconds + USHORT VerticalBottomBorder; // microseconds + USHORT VerticalFrontPorch; // microseconds + USHORT VerticalPulseWidth; // microseconds + USHORT VerticalBackPorch; // microseconds + USHORT VerticalTopBorder; // microseconds +} CM_MONITOR_PREADJUSTED_TIMING, *PCM_MONITOR_PREADJUSTED_TIMING; |