Lowlevel

Lowlevel => Softwareentwicklung => Thema gestartet von: FlorianN am 24. October 2012, 15:46

Titel: Einzelnes Pixel ansteuern
Beitrag von: FlorianN am 24. October 2012, 15:46
Hallo,
ich habe eine frage: ist es in C Möglich, ein einzelnes Pixel anzusteuern und auch eine Farbe festzulegen:
(posX, posY, int R, int B, int G) oder so? Mein OS läuft momental im RealMode. Wenn dazu der Protected Mode  "erzwungen" ist, müsste ich noch wissen wie ich einen Tastatur Interrupt abfangen (und verarbeiten) kann.


Danke, Florian
Titel: Re: Einzelnes Pixel ansteuern
Beitrag von: Svenska am 24. October 2012, 22:54
Hallo,

guck mal hier (http://www.lowlevel.eu/wiki/VGA). Da ist das für VGA beschrieben, d.h. 320x200 bei 256 Farben. Für 640x480 bei 16 Farben funktioniert das ähnlich; für höhere Auflösungen willst du die VESA-Extensions (siehe hier (http://www.lowlevel.eu/wiki/VESA_BIOS_Extensions)) benutzen. Beides geht im Real Mode, obwohl du dann bei höheren Auflösungen und Farbtiefen in Speicherprobleme kommen könntest.

Gruß,
Svenska
Titel: Re: Einzelnes Pixel ansteuern
Beitrag von: FlorianN am 25. October 2012, 14:15
Das kann man in C ja auch mit asm(); machen.
Im ProtectedMode mach das OS ja die Arbeit. (d.h. man kann z.B. auch eine Schriftart felstlegen)
Dort steht auch mehr Speicher zur Verfügung?

Danke, Florian
Titel: Re: Einzelnes Pixel ansteuern
Beitrag von: Svenska am 26. October 2012, 00:47
Hallo,

du kannst Pixel auch in Fortran oder Basic setzen, wenn du willst. Wichtig ist, dass du der Hardware verrätst, was du tun willst. Wie du das tust, steht ungefähr in den verlinkten Artikeln.

Im ProtectedMode mach das OS ja die Arbeit. (d.h. man kann z.B. auch eine Schriftart felstlegen)
Was wollte uns der Autor damit sagen?

Schriftarten haben nichts mit dem CPU-Modus zu tun. Windows 3.0 unterstützt Schriftarten im Real und Protected Mode.

Dort steht auch mehr Speicher zur Verfügung?
Wenn mehr als 640 KB verbaut sind, dann kannst du sie nur im Protected oder Long Mode nutzen.

Gruß,
Svenska