1 // SPDX-License-Identifier: MIT
6 /************************************************************************/
17 /************************************************************************/
19 #define SETTINGSNAMEMAXCHARS 30
20 #define BOARDNAMEMAXCHARS 30
24 UBYTE Name[32]; // Name des Monitortyps, z.B. "NEC P750"
26 ULONG HSyncMin; // Minimal unterstützte Horizontalfrequenz in Hz
27 ULONG HSyncMax; // Maximal unterstützte Horizontalfrequenz in Hz
29 UWORD VSyncMin; // Minimal unterstützte Vertikalfrequenz in Hz
30 UWORD VSyncMax; // Maximal unterstützte Vertikalfrequenz in Hz
32 ULONG Flags; // Siehe unten
35 #define MIB_DPMS_StandBy (0) // Monitor unterstützt DPMS-Level "stand-by".
36 // Dieses Feature ist optional, nicht jeder
37 // DPMS-fähige Monitor muß es unterstützen.
38 // Aktivierung: hsync aus, vsync an
40 #define MIB_DPMS_Suspend (1) // Monitor unterstützt DPMS-Level "suspend".
41 // Dieses Feature ist Pflicht, jeder
42 // DPMS-fähige Monitor muß es unterstützen.
43 // Aktivierung: hsync an, vsync aus
45 #define MIB_DPMS_ActiveOff (2) // Monitor unterstützt DPMS-Level "active off".
46 // Dieses Feature ist Pflicht, jeder
47 // DPMS-fähige Monitor muß es unterstützen.
48 // Aktivierung: hsync aus, vsync aus
50 #define MIF_DPMS_StandBy (1UL << MIB_DPMS_StandBy)
51 #define MIF_DPMS_Suspend (1UL << MIB_DPMS_Suspend)
52 #define MIF_DPMS_ActiveOff (1UL << MIB_DPMS_ActiveOff)
56 struct MinList Resolutions;
58 // a value discribing assignment to nth board local to boardtype
59 // to be used for reassignment when boards are added or removed.
62 char NameField[SETTINGSNAMEMAXCHARS];
64 struct P96MonitorInfo *MonitorInfo;
67 #define MAXRESOLUTIONNAMELENGTH 22
69 /********************************
70 * only used within rtg.library *
71 ********************************/
75 char Name[MAXRESOLUTIONNAMELENGTH];
80 struct ModeInfo *Modes[MAXMODES];
81 struct BoardInfo *BoardInfo;
82 struct LibResolution *HashChain;
85 /*****************************
86 * only used within MoniTool *
87 *****************************/
90 struct MinList ModeInfos;
97 char Name[MAXRESOLUTIONNAMELENGTH];
100 #define P96B_FAMILY 0 // obsolete (Resolution is an entire family)
101 #define P96B_PUBLIC 1 // Resolution should be added to the public
102 #define P96B_MONITOOL 2
104 #define P96B_CHECKME 15 // Resolution has been attached to another board
105 // by AttachSettings without being checked against
108 #define P96F_FAMILY (1<<P96B_FAMILY) // obsolete
109 #define P96F_PUBLIC (1<<P96B_PUBLIC)
110 #define P96F_MONITOOL (1<<P96B_MONITOOL)
111 #define P96F_CHECKME (1<<P96B_CHECKME)
115 DBLLORES_FLAGS, // 0000 320x200
116 DBLHIRES_FLAGS, // 8000 640x200
117 DBLSHIRES_FLAGS, // 8020 1280x200
118 LORES_FLAGS, // 0004 320x400
119 HIRES_FLAGS, // 8004 640x400
120 SHIRES_FLAGS, // 8024 1280x400
121 LORESLACE_FLAGS, // 0005 320x800
122 HIRESLACE_FLAGS, // 8005 640x800
123 SHIRESLACE_FLAGS, // 8025 1280x800
128 /*****************************
129 * this one describes a mode *
130 *****************************/
132 struct Node Node; // used for linking ModeInfos e.g. within MoniTool
140 UWORD HorTotal; // wichtig für aufziehen (beeinflußt Timings)
141 UWORD HorBlankSize; // Rahmengröße
142 UWORD HorSyncStart; // bestimmt Bildlage
143 UWORD HorSyncSize; // muß Spezifikation für Sync-Lücke erfüllen
145 UBYTE HorSyncSkew; // im Moment obsolet
146 UBYTE HorEnableSkew; //
148 UWORD VerTotal; // analog zu horizontalen Werten
154 UBYTE Clock; // Tseng: Nummer der Hardwareclock
155 UBYTE Numerator; // Cirrus: Mumerator für PLL
158 UBYTE ClockDivide; // Tseng: Clockteiler
159 UBYTE Denominator; // Cirrus: Denominator für PLL
161 ULONG PixelClock; // PixelClock in Hz
164 /***********************************
167 #define GMB_DOUBLECLOCK 0
168 #define GMB_INTERLACE 1
169 #define GMB_DOUBLESCAN 2
170 #define GMB_HPOLARITY 3
171 #define GMB_VPOLARITY 4
172 #define GMB_COMPATVIDEO 5
173 #define GMB_DOUBLEVERTICAL 6
174 #define GMB_ALWAYSBORDER 7 // only used by MoniTool-EditScreen
176 #define GMF_DOUBLECLOCK (1L<<GMB_DOUBLECLOCK)
177 #define GMF_INTERLACE (1L<<GMB_INTERLACE)
178 #define GMF_DOUBLESCAN (1L<<GMB_DOUBLESCAN)
179 #define GMF_HPOLARITY (1L<<GMB_HPOLARITY)
180 #define GMF_VPOLARITY (1L<<GMB_VPOLARITY)
181 #define GMF_COMPATVIDEO (1L<<GMB_COMPATVIDEO)
182 #define GMF_DOUBLEVERTICAL (1L<<GMB_DOUBLEVERTICAL)
183 #define GMF_ALWAYSBORDER (1L<<GMB_ALWAYSBORDER)
185 /************************************************************************/