flat assembler
Message board for the users of flat assembler.

Index > DOS > Display Check

Author
Thread Post new topic Reply to topic
bmmueller



Joined: 06 Mar 2025
Posts: 5
bmmueller 10 Mar 2025, 07:53
Hallo
Ich suche eine Möglichkeit mit Assembler oder C++ zu überprüfen ob das LCD Display am Laptop oder der angesteckte externe Monitor aktiv bzw. in Betrieb sind.
Hintergrund ist: Mein eigenes Programm verwendet für die Grafischen Elemente wie Fenster und Dialogboxen eigene Grafikzeichen im 80x25 Textmodus. Auf dem LCD Bildschirm des Laptops werden diese aber falsch dargestellt, da der LCD Display Contoler irgend wie statt 8x16, 8x19 Pixel verwendet. Dadurch werden die Zeichen falsch darrgestellt. Um dies zu verhindern will ich vorher abfragen welches Display verwendet wird um zu entscheiden ob die Standard Zeichen aus dem ROM oder meine eigenen geladen werden. Ich habe schon mit allen möglichen Funktionen des INT 10h herumprobiert, aber keine konnte mit eine Unterscheidung der Display Benutzung ausgeben. Beim Start des Laptops wird entweder LCD (eingebaut) oder bei angestecktem Monitor dieser ausschließlich verwendet.
Umgebung: alter Laptop Escom Graymate, 486 DX 33, Novell Dos 7, VGA Bildschirm extern.
Post 10 Mar 2025, 07:53
View user's profile Send private message Reply with quote
macomics



Joined: 26 Jan 2021
Posts: 1066
Location: Russia
macomics 10 Mar 2025, 08:31
Post 10 Mar 2025, 08:31
View user's profile Send private message Reply with quote
bmmueller



Joined: 06 Mar 2025
Posts: 5
bmmueller 11 Mar 2025, 05:06
macomics wrote:
Try AX=0x4F00/INT10h
https://www.phatcode.net/res/221/files/vbe20.pdf


Wird leider von meiner Hardware nicht unterstützt.
Also es wird zurückgegeben, in AL dass diese Funktion nicht funktioniert
Post 11 Mar 2025, 05:06
View user's profile Send private message Reply with quote
Core i7



Joined: 14 Nov 2024
Posts: 41
Location: Socket on motherboard
Core i7 11 Mar 2025, 07:33
There are different ways to determine the display characteristics in real mode:

1. Read data from "PCI Configuration Space"
• Here you need to search by class (3) with the function int-1Ah, AX=B103h
https://pcisig.com/sites/default/files/files/PCI_Code-ID_r_1_12__v9_Jan_2020.pdf

2. Read data from "PnP Bios"
• Starting from address C000:0000 to FFFF:FFFF, you need to search for the boot signature 55AAh
• If successful, you will get the contents of the ROM-BIOS of the graphics adapter
• The data includes all the characteristics, and even the font glyphs of the current display
• See section 2.3 and further of the specification: http://www.osdever.net/documents/PNPBIOSSpecification-v1.0a.pdf

3. Some information is also in the ACPI table (section GSCI)
• The method involves manual search in memory for the signature "RSDT" (Root System Description Table).
• The specification is needed: https://uefi.org/sites/default/files/resources/ACPI_Spec_6_5_Aug29.pdf


Description:
Filesize: 33.42 KB
Viewed: 206 Time(s)

ACPI-table.png


Post 11 Mar 2025, 07:33
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.