von Gast » Mi 26. Mai 2010, 18:17
freecrac hat geschrieben:
Antworten die Karten nicht schnell genug auf Anfragen vom BIOS, oder wie kann ich mir das Problem genau vorstellen?
Wahrscheinlich das Übliche - eine Warteschleife läuft aus, bevor das erwartete Ereignis eintritt.
Vor DDC gab es zwei verschiedene Methoden, einen Monochrom-Monitor zu erkennen. Die Eine mit den Pins 11 und 12, die Andere erkennt, ob an Pin3 (Blau) eine Verbindung besteht. Die zweite Methode ist programmtechnisch aufwendig, da man blaue Zeilen ausgeben und den richtigen Zeitpunkt für die Messung abwarten muss.
Ich habe ein kleines Programm geschrieben, das die Farbe einschaltet. Ist auch nützlich, wenn man mal' wieder vergessen hat, den Monitor einzustecken. Ich glaube, das kommt in meine autoexec.bat :)
Code: Alles auswählen
// This program switches a VGA card back to color display when
// it initialized in monochrome mode. Useful for buggy VGA BIOSes,
// incompatible monitor plugs or when you forgot to plug in the
// monitor once again.
// For Open Watcom 1.8.
#include <i86.h>
#include <string.h>
static char far* const control = (char far*) 0x487;
static char far* const options = (char far*) 0x489;
int main(int argc, const char** val) {
union REGPACK regs;
int cursor_pos;
memset( ®s, 0, sizeof(union REGPACK) );
// set color monitor dcc
regs.w.ax=0x1a01;
regs.h.bl=8;
intr(0x10, ®s);
// disable gray-scale summing
regs.w.ax=0x1201;
regs.h.bl=0x33;
intr(0x10, ®s);
// set color monitor in BDA
*control &= ~2;
*options &= ~4;
// save cursor position
regs.w.ax=0x300;
regs.h.bh=0;
intr(0x10, ®s);
cursor_pos = regs.w.dx;
// set video mode
regs.w.ax=0x83;
intr(0x10, ®s);
// restore cursor position
regs.w.ax=0x200;
regs.h.bh=0;
regs.w.dx = cursor_pos;
intr(0x10, ®s);
return 0;
}
So, jetzt aber genug mit dem Falschposten.
[quote="freecrac"]
Antworten die Karten nicht schnell genug auf Anfragen vom BIOS, oder wie kann ich mir das Problem genau vorstellen?
[/quote]
Wahrscheinlich das Übliche - eine Warteschleife läuft aus, bevor das erwartete Ereignis eintritt.
Vor DDC gab es zwei verschiedene Methoden, einen Monochrom-Monitor zu erkennen. Die Eine mit den Pins 11 und 12, die Andere erkennt, ob an Pin3 (Blau) eine Verbindung besteht. Die zweite Methode ist programmtechnisch aufwendig, da man blaue Zeilen ausgeben und den richtigen Zeitpunkt für die Messung abwarten muss.
Ich habe ein kleines Programm geschrieben, das die Farbe einschaltet. Ist auch nützlich, wenn man mal' wieder vergessen hat, den Monitor einzustecken. Ich glaube, das kommt in meine autoexec.bat :)
[code]
// This program switches a VGA card back to color display when
// it initialized in monochrome mode. Useful for buggy VGA BIOSes,
// incompatible monitor plugs or when you forgot to plug in the
// monitor once again.
// For Open Watcom 1.8.
#include <i86.h>
#include <string.h>
static char far* const control = (char far*) 0x487;
static char far* const options = (char far*) 0x489;
int main(int argc, const char** val) {
union REGPACK regs;
int cursor_pos;
memset( ®s, 0, sizeof(union REGPACK) );
// set color monitor dcc
regs.w.ax=0x1a01;
regs.h.bl=8;
intr(0x10, ®s);
// disable gray-scale summing
regs.w.ax=0x1201;
regs.h.bl=0x33;
intr(0x10, ®s);
// set color monitor in BDA
*control &= ~2;
*options &= ~4;
// save cursor position
regs.w.ax=0x300;
regs.h.bh=0;
intr(0x10, ®s);
cursor_pos = regs.w.dx;
// set video mode
regs.w.ax=0x83;
intr(0x10, ®s);
// restore cursor position
regs.w.ax=0x200;
regs.h.bh=0;
regs.w.dx = cursor_pos;
intr(0x10, ®s);
return 0;
}
[/code]
So, jetzt aber genug mit dem Falschposten.