Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the board
Thread view  Mix view  Order
Damien(R)

22.04.2013, 21:17
 

working in more than 1280*1024 under Dos (Developers)

Hello,

I program under DJGPP/Allegro, I usually work with the resolution 1280*1024, which is available on many video cards.

But I would like to use "bigger" resolution, especially the 1680*1050 one. (Though my question is also for the 1440*900 and 1920*1080 resolution).

I think that the standard VESA modes go up to 1280*1024, but not with 16/10 or 16/9 ratios.
But I suppose that some cards do support these specific mode ?

Has someone already managed to use 1680*1050 resolution under Dos? ( and in PCI-Express format? )
Rayer, you probably have some interesting answer with all your work on vesa test and mtrrlfbe?
Is there somewhere a list of such video cards ? (I would prefer Nvidia because at the present time, mtrrlfbe works only on those cards)

Thanks.

RayeR(R)

Homepage

CZ,
22.04.2013, 23:26

@ Damien

working in more than 1280*1024 under Dos

Hi,
AFAIK VESA VBE 3.0 defines fixed VESA mode numbers up to 1280x1024 or 1600x1200 but it's allowed to use vendor specific video modes with any resolution including widescreen modes. But there's one condition - software must be smart enough to detect such modes because there's no fixed relation beween W x H and mode number. So the software has to obtain VESA modes table and then search through for suitable mode (e.g. my VESATEST do this).

I found widescreen modes on some new VGAs. It seems that VESA mode list in modern VideoBIOS is not even hardcoded but it is built up dynamically according to monitor detection (DCC-EDID). So if you attach wide monitor you may get wide modes. But sometimes there are bugs in VideoBIOS that limits maximum possible modes.

Here are some examples of wide modes that I found on various VGAs:

NVIDIA GT218 Board - 06910003
#30 = 160h - 1280x800/8
#31 = 161h - 1280x800/32
#32 = 162h - 768x480/8
#33 = 17Bh - 1280x720/32
#34 = 17Ch - 1920x1200/8
#35 = 17Dh - 1920x1200/32

NVIDIA G73 Board - p501h6b
#29 = 147h - 1400x1050/8
#30 = 148h - 1400x1050/16

NVIDIA G71 Board - p455h0s
#29 = 147h - 1400x1050/8
#30 = 148h - 1400x1050/16

NVIDIA Crush50 Board - c51g 
#29 = 147h - 1400x1050/8
#30 = 148h - 1400x1050/16

ATI RADEON XPRESS 200 Series
#50 = 140h - 1400x1050/8
#51 = 141h - 1400x1050/15
#52 = 142h - 1400x1050/16
#53 = 143h - 1400x1050/24
#54 = 144h - 1400x1050/32

Intel(R) Sandybridge/Ivybridge Graphics
#36 = 17Dh - 1920x1080/8
#37 = 17Eh - 1920x1080/16
#38 = 17Fh - 1920x1080/32

---
DOS gives me freedom to unlimited HW access.

bretjohn(R)

Homepage E-mail

Rio Rancho, NM,
23.04.2013, 17:47

@ RayeR

working in more than 1280*1024 under Dos

Should anybody care, I have an unfinished program I'm working on called EDID that downloads and displays the monitor information. I can send it to someone if they want it, including the source code.

I've found that some BIOS's aren't compatible with the EDID spec (including at least some virtual machines), a lot of monitors don't provide complete information in the EDID download, some BIOS's won't download information correctly for more than one monitor, etc. So the possibility of matching video card modes with monitor modes isn't always available, at least through the BIOS. In some cases, you'll end up needing to write custom vendor/model specific software.

I actually wrote this program when I was having problems getting Windows to work correctly with a second monitor. None of the Windows software I found could help me figure out the problem, so I started writing a DOS program. In the end, my problem turned out to be a bad cable.

Here's an example of the output for one of my monitors:


EDID 0.01, (C) 2009, Bret E. Johnson.
Program to display EDID (Enhanced Display Identification Data) for monitors.

The Screen may temporarily go black while the data is downloaded ...

                          RAW EDID DATA
컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴
00 FF FF FF FF FF FF 00-05 E3 60 20 00 00 00 00      `     
00 16 01 03 80 2B 18 78-2A 2C C5 A4 56 50 A1 28       ?+ x*,큉VP(
0F 50 54 BF EF 00 A9 C0-81 80 81 C0 01 01 01 01    PT울 ㈏?겴   
01 01 01 01 01 01 30 2A-40 C8 60 84 64 30 18 50         0*@`?d0 P
13 00 B0 F0 10 00 00 1E-00 00 00 FD 00 32 4C 1E     곧        2L
53 0E 00 0A 20 20 20 20-20 20 00 00 00 FC 00 32   S            2
30 36 30 57 0A 20 20 20-20 20 20 20 00 00 00 FF   060W           
00 0A 20 20 20 20 20 20-20 20 20 20 20 20 00 90                 
컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴

Monitor Index    : 0

EDID Version     : 1.3
Extension Blocks : 0

Manufacturer     : AOC  No Matching Record Found               
Model Number     : 2060W
Manufacture Date : Week 0 of 2012
Serial Number    :

Color Type       : RGB Color
Input Type       : Digital
Interlaced       : No
Pwr Mgmt Support : Active-Off / Low-Power

Dimensions  H x V: 432 x 240 mm (19.4 inch diagonal)
Native Rez  H x V: 1600 x 900 pixels
Frequency Range H: 30 - 83 kHz
Frequency Range V: 50 - 76 Hz
Max Pixel Clock  : 830 MHz

Established Rez  :  640x 480 @ 60Hz  VGA
                    640x 480 @ 67Hz  Mac II, Apple
                    640x 480 @ 72Hz  VESA
                    640x 480 @ 75Hz  VESA
                    720x 400 @ 70Hz  VGA
                    720x 400 @ 88Hz  XGA2
                    800x 600 @ 60Hz  VESA
                    800x 600 @ 72Hz  VESA
                    800x 600 @ 75Hz  VESA
                    832x 624 @ 75Hz  Mac II
                   1024x 768 @ 70Hz  VESA
                   1024x 768 @ 75Hz  VESA
                   1024x 768 @ 87Hz  8514A (Interlaced)
                   1280x1024 @ 75Hz  VESA
Reserved Rez     : None
Standard Rez     : 1600x 900 @ 60Hz  16:9
                   1280x1024 @ 60Hz   5:4
                   1280x 720 @ 60Hz  16:9

Sync Type        : Digital Separate, H+ V+
Sync Offset H x V:   24 x    1 pixels
Sync Pulse  H x V:   80 x    3 pixels
Border      H x V:    0 x    0 pixels
Blanking    H x V:  200 x  100 pixels

Pixel Clock      : 108.000 MHz
Preferred Timing : Yes
Default GTF      : No
Second GTF Supt  : No
Start Freq H     : 64 kHz
K-C-J-M Values   : 32-16-16-8224

Std Color Space  : No
Gamma Factor     : 2.20
Chroma Red       : X = 0.641  Y = 0.338
Chroma Green     : X = 0.315  Y = 0.629
Chroma Blue      : X = 0.159  Y = 0.059
White Point      : X = 0.313  Y = 0.329

Stereo           : None

RayeR(R)

Homepage

CZ,
23.04.2013, 22:25

@ bretjohn

working in more than 1280*1024 under Dos

Hi,
nice, I also wanted to try make my own EDID dumper. AFAIK there's VBE function for it. I think that also some DOS diagnostic program can display it but cannot remember which one. I can test your SW.
Yes if videobios rely on correct EDID to build mode list it may cause problem when monitor doesn't provide it correctly. I guess there would be some I2C EEPROM inside that may be reprogrammed (a little bit of HW modding yeah :)

---
DOS gives me freedom to unlimited HW access.

bretjohn(R)

Homepage E-mail

Rio Rancho, NM,
23.04.2013, 23:40

@ RayeR

working in more than 1280*1024 under Dos

I just e-mailed it to you.

Doug(R)

E-mail

24.04.2013, 05:49

@ bretjohn

working in more than 1280*1024 under Dos

There is also Read-EDID: http://polypux.org/projects/read-edid/

Looks like it's based on unix C source code, ported to 32-bit DOS (DJGPP). DOS version is 1.3.5, but source-code download is 1.4.2 and 2.0.0 versions (newer).

Usage is:

  GET-EDID datafile
  PARSE-ED datafile > reportfile

"PARSE-ED" has long filename "PARSE-EDID" in archive. "Datafile" is binary output of GET-EDID; "reportfile" is readable text output.

- Doug B.

Zyzzle(R)

24.04.2013, 06:42

@ bretjohn

working in more than 1280*1024 under Dos

I also am interested in accessing modes beyond 'standard' 4:3 VBE3 modes. As I have SandyBridge graphics chipset, I think I can benefit from your EDID program. Would you please e-mail me a copy? Thanks.

As most (all?) LCD / LED monitors now have unfortunately gone to 16:10 pixel ratio, EDID will be very useful to see a given monitor's limits. I've hung onto some good-quality 21 and 22" CRTs for the very reason that their pixel aspect ratios are not fixed... Monitor quality has gone way, way downhill since those glory days of great CRTs (at least for DOS programs!)

As I understand 'custom' modes, we can define *any* resolution as long as the pixelclock (RAMDAC) and refresh rate are within spec of any given monitor... I think there were programs which could do this, but off the top of my head, the only one I can think of right now is AdvanceMAME 0.106 DOS port. It allows modes such as 288x224 to be defined.

RayeR(R)

Homepage

CZ,
24.04.2013, 10:52

@ Zyzzle

working in more than 1280*1024 under Dos

> As I understand 'custom' modes, we can define *any* resolution as long as
> the pixelclock (RAMDAC) and refresh rate are within spec of any given
> monitor... I think there were programs which could do this, but off the top
> of my head, the only one I can think of right now is AdvanceMAME 0.106 DOS
> port. It allows modes such as 288x224 to be defined.

Do you mean reprogramming CRTC registers? I remember that it was primary used for setting higher refresh rates in CRT age but nvidia dropped this VBE code since GeForce 5xxx and newer. I remember that intel 945 has it. I used it to set 85Hz on my CRT. But never tried to completly modify it for different resolution, maybe it is possible. The 288x224 that MAME does is probably usefull only for CRTs, I suspect that LCD would sync on it.
I'm also afraid of 16:9 noodle displays, I don't know if still available some new better 4:3, my NEC 2190UXp was disappeared from shops...

---
DOS gives me freedom to unlimited HW access.

RayeR(R)

Homepage

CZ,
24.04.2013, 12:43

@ bretjohn

working in more than 1280*1024 under Dos

> I just e-mailed it to you.

Thx, I tested it at work first on 24" Dell 1920x1200 and it seems that EDID is OK, native resolution and phys. dimensions reported correctly. Nvidia VBE offers me also the native res. 1920x1200.
http://rayer.g6.cz/1tmp/edid/DELL24.LOG
Except the "Max Pixel Clock : 830 MHz" seems to me very unreal as VGA ramdac usually end up at about 300-400MHz. Maybe it should be rather 83,0MHz, isn't?

DOUG:
> There is also Read-EDID: http://polypux.org/projects/read-edid/
> Looks like it's based on unix C source code, ported to 32-bit DOS (DJGPP).
> DOS version is 1.3.5, but source-code download is 1.4.2 and 2.0.0 versions

I tested it too but it has some problem with VBE call and it hang the system so I had to make screenshot by cheapo nokia.
http://rayer.g6.cz/1tmp/edid/get-edid1.jpg
http://rayer.g6.cz/1tmp/edid/get-edid2.jpg

---
DOS gives me freedom to unlimited HW access.

bretjohn(R)

Homepage E-mail

Rio Rancho, NM,
24.04.2013, 18:32

@ RayeR

working in more than 1280*1024 under Dos

> Except the "Max Pixel Clock : 830 MHz" seems to me very unreal as VGA
> ramdac usually end up at about 300-400MHz. Maybe it should be rather
> 83,0MHz, isn't?

I don't think so. Your actual pixel clock is 154 MHz, so 83 can't be the max.

bretjohn(R)

Homepage E-mail

Rio Rancho, NM,
24.04.2013, 18:38

@ Zyzzle

working in more than 1280*1024 under Dos

> I also am interested in accessing modes beyond 'standard' 4:3 VBE3 modes.
> As I have SandyBridge graphics chipset, I think I can benefit from your
> EDID program. Would you please e-mail me a copy? Thanks.

I just sent you and e-mail through the forum (didn't see a way to add attachments), so if you can respond to it I'll get your e-mail address and can reply with the program. I already knew RAYER's e-mail, but don't know yours.

RayeR(R)

Homepage

CZ,
24.04.2013, 19:34

@ bretjohn

working in more than 1280*1024 under Dos

> I don't think so. Your actual pixel clock is 154 MHz, so 83 can't be the
> max.

Yes, u'r right, I wrong calced it but still wonder about 830MHz, IMHO impossible even with dual-link DVI.

---
DOS gives me freedom to unlimited HW access.

bretjohn(R)

Homepage E-mail

Rio Rancho, NM,
24.04.2013, 20:05

@ RayeR

working in more than 1280*1024 under Dos

> Yes, u'r right, I wrong calced it but still wonder about 830MHz, IMHO
> impossible even with dual-link DVI.

Just because it's what the monitor says doesn't actually mean it's true. The details for the monitor I uploaded earlier has similar numbers, though, so I would tend to believe it without additional data.

It wouldn't be the first time a manufacturer has lied about something like that (happens more often than you would probably believe in the USB world).

Laaca(R)

Homepage

Czech republic,
25.04.2013, 07:33

@ RayeR

working in more than 1280*1024 under Dos

We use at work very good 4:3 monitors by Dome (but they are very expensive)
http://www.bizrate.com/computer-monitors/dome/

Anyway, VESA really has function for obtaining EDID info. F.e. my VenomGFX library uses it and decides which resolution and refresh frequency can use.
However it is sometimes very wrong implemented, mainly on notebooks.
The direct access via I2C is possible but it is chipset dependend (because it is not communication processor-monitor but videochip-monitor).

Unfortunately VESA implementation od EDID allows only reading info - not writing info for f.e. color calibration.

---
DOS-u-akbar!

RayeR(R)

Homepage

CZ,
25.04.2013, 10:41

@ bretjohn

working in more than 1280*1024 under Dos

I tried both utils at home but without success :(, VGA is NVidia GF9700GT.
http://rayer.g6.cz/1tmp/edid/2190UXP.TXT
http://rayer.g6.cz/1tmp/edid/GET-EDID.TXT

---
DOS gives me freedom to unlimited HW access.

Doug(R)

E-mail

26.04.2013, 05:05

@ RayeR

working in more than 1280*1024 under Dos

> I tried both utils at home but without success :(, VGA is NVidia GF9700GT.
> ...
> http://rayer.g6.cz/1tmp/edid/GET-EDID.TXT

Yeh, the Read-EDID web pages are a bit confusing.

"The *new* homepage of Read-EDID" webpage (pyrophobicman):

http://www.polypux.org/projects/read-edid/

contains *old* DOS binary v1.3.5 (2000) and *newer* source v1.4.2 and v2.0.0 (both 2008) -- but no .exe's of the newer versions. (Says the old DOS binary was compiled with DJGPP, so i'm assuming the newer sources could also be compiled for DOS).

"Old version of Read-EDID" webpage (John Fremlin):

http://john.fremlin.de/programs/linux/read-edid/old.html

says (old) GET-EDID will not work with bigger EDID data structures (> 128 bytes), which i'm assuming newer monitors will likely have. It also says that (old) PARSE-EDID will fail with EDID v1.3 structures (yikes!). I'm assuming this was fixed in newer versions of the source (but i haven't examined them). Again, keep in mind that the DOS binary on the "new" page is actually the "old" version!

I just tested (old) GET-EDID on a VBE 1.2 system, and as expected, it did not work (got the same infinite loop as RayeR did). It did work on my VBE 2.0 and older 3.0 systems, but not on my newer 3.0 system (same infinite looping).

Unfortunately, i don't have DJGPP set up, so i can't compile the newer Read-EDID version sources to see if they work.

- Doug B.

Damien(R)

26.04.2013, 17:06

@ Doug

working in more than 1280*1024 under Dos

Thank you all for your answers,

I 've learned a few things about EDID stuff :).

But I want to come back to my first question : which VGA should I get to have best chances ?

Let's say I want to use 1680*1050 resolution in my DJGPP / Allegro program.
From what I've read, I can sum up the steps as follows:
1) Get a screen with (native) 1680*1050 resolution
2) Test on it an EDID-tool to check that a program can retrieve good information, especially the 1680*1050 resolution
3) Get/buy a VGA card that supports 1680*1050 res in "pseudo vesa" or "dos" mode => which one ? Nvidia ? ATI? (PCI-E is better for me) Is there a list somewhere?
4) Use a "smart enough" tool such as VESATEST to see if we can really manage 1680*1050 display
5) If everything is fine, try to make my application work in this resolution.

Hope it's the right way!

Damien

> > I tried both utils at home but without success :(, VGA is NVidia
> GF9700GT.
> > ...
> > http://rayer.g6.cz/1tmp/edid/GET-EDID.TXT
>
> Yeh, the Read-EDID web pages are a bit confusing.
>
> "The *new* homepage of Read-EDID" webpage (pyrophobicman):
>
> http://www.polypux.org/projects/read-edid/
>
> contains *old* DOS binary v1.3.5 (2000) and *newer* source v1.4.2 and
> v2.0.0 (both 2008) -- but no .exe's of the newer versions. (Says the old
> DOS binary was compiled with DJGPP, so i'm assuming the newer sources could
> also be compiled for DOS).
>
> "Old version of Read-EDID" webpage (John Fremlin):
>
> http://john.fremlin.de/programs/linux/read-edid/old.html
>
> says (old) GET-EDID will not work with bigger EDID data structures (> 128
> bytes), which i'm assuming newer monitors will likely have. It also says
> that (old) PARSE-EDID will fail with EDID v1.3 structures (yikes!). I'm
> assuming this was fixed in newer versions of the source (but i haven't
> examined them). Again, keep in mind that the DOS binary on the "new" page
> is actually the "old" version!
>
> I just tested (old) GET-EDID on a VBE 1.2 system, and as expected, it did
> not work (got the same infinite loop as RayeR did). It did work on my VBE
> 2.0 and older 3.0 systems, but not on my newer 3.0 system (same infinite
> looping).
>
> Unfortunately, i don't have DJGPP set up, so i can't compile the newer
> Read-EDID version sources to see if they work.
>
> - Doug B.

bretjohn(R)

Homepage E-mail

Rio Rancho, NM,
26.04.2013, 18:34

@ Doug

working in more than 1280*1024 under Dos

> says (old) GET-EDID will not work with bigger EDID data structures (> 128
> bytes), which i'm assuming newer monitors will likely have.

Actually, no. EDID version 2.0 (with a 256 byte structure) had a very short lifespan. It was deprecated and replaced by version 1.3 (that's right, the version numbers went backwards for an "upgrade" -- that tells you something very unflattering about the standards process).

Version 1.3 allows for multiple 128-byte "extension blocks" in addition to the main 128-byte block, which allows for the same information provided in version 2.0 and more. My EDID program doesn't decode the extension blocks -- I've never had a monitor that reported extension blocks that I could use for testing (and I've never had a version 2.0 monitor, either). I think all modern monitors use version 1.3, if they're EDID-compatible at all.

There's also been talk for awhile of replacing EDID with something new, but AFAIK it hasn't actually happened yet.

RayeR(R)

Homepage

CZ,
26.04.2013, 23:34

@ Doug

working in more than 1280*1024 under Dos

> DOS binary was compiled with DJGPP, so i'm assuming the newer sources could
> also be compiled for DOS).

I tried quickly but it requires some Linux specific headers from sys/... so I didn't waste more time...

> "Old version of Read-EDID" webpage (John Fremlin):
>
> http://john.fremlin.de/programs/linux/read-edid/old.html

Download link is broken...

Not Found

The requested URL /programs/linux/read-edid/read-edid-$VERSION.tar.gz was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

---
DOS gives me freedom to unlimited HW access.

Doug(R)

E-mail

26.04.2013, 23:59

@ RayeR

working in more than 1280*1024 under Dos

> > DOS binary was compiled with DJGPP, so i'm assuming the newer sources
> could
> > also be compiled for DOS).
>
> I tried quickly but it requires some Linux specific headers from sys/... so
> I didn't waste more time...

Darn. Appreciate the attempt, though.

> > "Old version of Read-EDID" webpage (John Fremlin):
> >
> > http://john.fremlin.de/programs/linux/read-edid/old.html
>
> Download link is broken...

Hmmm, i just tried it a second ago (from the link above) and got the page ok! I could download and email you a MHTML or MAFF or HTML or TXT copy if you're interested.

- Doug B.

DOS386(R)

28.04.2013, 15:26

@ Damien

working in LESS than 1280*1024 under Dos

> But I would like to use "bigger" resolution, especially the 1680*1050 one.
> (Though my question is also for the 1440*900 and 1920*1080 resolution).

Please make sure that your programs will run and be usable with 640 x 480 or at least 800 x 600 too. It sucks to see messages like "you need at least 2048 x 1536 screen resolution" or even "better" broken or black screens without knowing what is actually broken.

> I think that the standard VESA modes go up to 1280*1024, but not with 16/10
> or 16/9 ratios.
> But I suppose that some cards do support these specific mode ?

* VESA 2.0 deleted fixed mode numbers
* VESA 3.0 deleted the obligation to support "legacy" modes like 640 x 480 or 800 x 600 ... but I haven't yet seen a card taking this "exclusive privilege" :-\

Note that some cards may support more modes and have more memory in the hardware (use > 100 MiB Windaube drivers to get full functionality) than they report and offer through VESA.

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Damien(R)

01.05.2013, 17:47

@ RayeR

working in more than 1280*1024 under Dos

Hi All,

I am still looking for some card able to wide mode under DOS.

RayeR, concerning your first post, I didn't answered, sorry :

> Here are some examples of wide modes that I found on various VGAs:
>
> NVIDIA GT218 Board - 06910003
> #30 = 160h - 1280x800/8
> #31 = 161h - 1280x800/32
> #32 = 162h - 768x480/8
> #33 = 17Bh - 1280x720/32
> #34 = 17Ch - 1920x1200/8
> #35 = 17Dh - 1920x1200/32
>
> NVIDIA G73 Board - p501h6b
> #29 = 147h - 1400x1050/8
> #30 = 148h - 1400x1050/16
>
> NVIDIA G71 Board - p455h0s
> #29 = 147h - 1400x1050/8
> #30 = 148h - 1400x1050/16
>
> NVIDIA Crush50 Board - c51g 
> #29 = 147h - 1400x1050/8
> #30 = 148h - 1400x1050/16
>
> ATI RADEON XPRESS 200 Series
> #50 = 140h - 1400x1050/8
> #51 = 141h - 1400x1050/15
> #52 = 142h - 1400x1050/16
> #53 = 143h - 1400x1050/24
> #54 = 144h - 1400x1050/32
>
> Intel(R) Sandybridge/Ivybridge Graphics
> #36 = 17Dh - 1920x1080/8
> #37 = 17Eh - 1920x1080/16
> #38 = 17Fh - 1920x1080/32
>


- Actually 1400*1050 is not a widescreen mode, as it is 4/3.
- I am not really interested in resolutions under 1440*900
- the GT218 board may be interesting with its 1920x1200/32, but is it easy to find screen with this resolution ? 95% of today's screen are 1920*1080 or 1680*1050.
- Concerning integrated graphics, I don't really know : recently I bought a "new" gigabyte motherboard (G41M combo) , but got ugly speed when doing graphic dos programming. And MTRRLFBE did not change anything. But I should have tried VESATEST, just to see available resolutions.

But again, thanks for your answer.

Damien(R)

01.05.2013, 17:53

@ DOS386

working in LESS than 1280*1024 under Dos

Hello DOS386,

> Please make sure that your programs will run and be usable with 640 x 480
> or at least 800 x 600 too. It sucks to see messages like "you need at least
> 2048 x 1536 screen resolution" or even "better" broken or black screens
> without knowing what is actually broken.

I understand your answer,
But the program on which I am working is dedicated to one specific computer, and one user. So I do not pretend to make a "generic 1680*1050 program" that works on every computer, I just want it to work on one.

RayeR(R)

Homepage

CZ,
02.05.2013, 17:17

@ Damien

working in more than 1280*1024 under Dos

> to find screen with this resolution ? 95% of today's screen are 1920*1080
> or 1680*1050.

Yes it may be hard as getting new 4:3. This LCD Dell 2407WFP is quite old... I didn't tested but it may happen if I would connect 1920*1080 LCD to VGA I may get this VESA mode (if there is really some dynamic vesa mode list building process), i can try it later...

---
DOS gives me freedom to unlimited HW access.

tom(R)

Homepage

Germany,
02.05.2013, 18:12
(edited by tom, 02.05.2013, 19:56)

@ Damien

working in more than 1280*1024 under Dos

> - the GT218 board may be interesting with its 1920x1200/32, but is it easy
> to find screen with this resolution ? 95% of today's screen are 1920*1080
> or 1680*1050.

no need to ask us.
ask www.amzon.com

goto www.amazon.com
type '1920 1200' into the search bar
hit enter

http://www.amazon.com/s/ref=nb_sb_ss_i_2_9?url=search-alias%3Daps&field-keywords=1920%201200%20lcd%20monitor&sprefix=1920+1200%2Caps%2C332

and a few 1920*1200 monitors should pop up

Damien(R)

02.05.2013, 22:22

@ tom

working in more than 1280*1024 under Dos

>
> goto www.amazon.com
> type '1920 1200' into the search bar
> hit enter
>

I also did that and indeed I found some 16/10 screen in 1920*1200. So it may be an interesting solution.
But the aim of my post is to know if there exist some vga card with vesa mode adressing the most popular resolution : 1680*1050 and 1920*1080.

Damien(R)

02.05.2013, 22:34

@ RayeR

working in more than 1280*1024 under Dos

> > to find screen with this resolution ? 95% of today's screen are
> 1920*1080
> > or 1680*1050.
>
> Yes it may be hard as getting new 4:3. This LCD Dell 2407WFP is quite
> old... I didn't tested but it may happen if I would connect 1920*1080 LCD
> to VGA I may get this VESA mode (if there is really some dynamic vesa mode
> list building process), i can try it later...

I just realised that my Nvidia Card is also indicated as "GT218 board" (VesaTest tells me), the same as you ... but I get neither 1920*1200 nor 1680*1050 resolution, even when I connect a 22" wide screen. How come ?

Zyzzle(R)

03.05.2013, 02:36

@ tom

working in more than 1280*1024 under Dos

The real test for DOS would be a monitor with 4:3 aspect ratio which supports 1920x1440 resolution. I do not know of any monitor that can do this, as all available ones are 16:10 aspect ratio and so 1920x1200 native.

I tested EDID with good success on my various monitors, all are 4:3 LCD and CRT except my netbook monitor which is 1.70666:1 (native resolution 1024x600, some bastard format?). EDID identifies this absolutely correctly.

I still wish we could get MTRR WC for VESA lfb working correctly with SandyBridge and IvyBridge built-in onboard chipsets with > 4 GB memory. Sometimes it works / sometimes not on my systems with 12 GB and 16 GB RAM. Perhaps on some future date RayeR will figure it out... My hat's off to him.

RayeR(R)

Homepage

CZ,
06.05.2013, 20:00

@ Damien

working in more than 1280*1024 under Dos

> I just realised that my Nvidia Card is also indicated as "GT218 board"
> (VesaTest tells me), the same as you ... but I get neither 1920*1200 nor
> 1680*1050 resolution, even when I connect a 22" wide screen. How come ?

Sorry guys, bad news. I tried the GeForce 210 setup mentioned above with 24" Benq LCD with 1920x1080 native res. EDID data seems to be correct:
http://rayer.g6.cz/1tmp/edid/BENQ24.TXT
http://rayer.g6.cz/1tmp/edid/DELL24.TXT
There are conclusions:

1) VESA mode list is really dynamic, built according to monitor specs.
2) EDID couldn't be readed if LCD is connected via analog VGA cable so VBIOS decided to pass only some generic VESA modes up to 1600x1200
3) EDID could be readed if LCD is connected via digital DVI/HDMI cable and VBIOS add/replace some VESA modes with wide VESA modes but neither 1920x1080 neither 1680x1080 is supported. Don't ask me why, just because nvidiots...

Solution: buy some older 1920x1200, it should work.

Benq 24" 1920x1080, analog VGA cable:
#27 = 145h - 1600x1200/8
#28 = 146h - 1600x1200/16
#29 = 14Ah - 1600x1200/32

Benq 24" 1920x1080, digital DVI/HDMI cable:
#27 = 160h - 1280x800/8
#28 = 161h - 1280x800/32
#29 = 162h - 768x480/8
#30 = 17Bh - 1280x720/32

Dell 24" 1920x1200, digital DVI/HDMI cable:
#27 = 145h - 1600x1200/8
#28 = 146h - 1600x1200/16
#29 = 14Ah - 1600x1200/32
#30 = 160h - 1280x800/8
#31 = 161h - 1280x800/32
#32 = 162h - 768x480/8
#33 = 17Bh - 1280x720/32
#34 = 17Ch - 1920x1200/8
#35 = 17Dh - 1920x1200/32

---
DOS gives me freedom to unlimited HW access.

Damien(R)

07.05.2013, 18:56

@ RayeR

working in more than 1280*1024 under Dos

> 1) VESA mode list is really dynamic, built according to monitor specs.
> 2) EDID couldn't be readed if LCD is connected via analog VGA cable so
> VBIOS decided to pass only some generic VESA modes up to 1600x1200
> 3) EDID could be readed if LCD is connected via digital DVI/HDMI cable and
> VBIOS add/replace some VESA modes with wide VESA modes but neither
> 1920x1080 neither 1680x1080 is supported. Don't ask me why, just because
> nvidiots...

Thank you RayeR, that's good information. Now I understand better why it is so difficult to work with these resolutions...

freecrac(R)

28.08.2013, 06:27

@ Damien

working in more than 1280*1024 under Dos

Hello.

Damien wrote:
> But I would like to use "bigger" resolution, especially the 1680*1050 one. >(Though my question is also for the 1440*900 and 1920*1080 resolution).

> I think that the standard VESA modes go up to 1280*1024, but not with 16/10 > or 16/9 ratios.

RayeR wrote:
> AFAIK VESA VBE 3.0 defines fixed VESA mode numbers up to 1280x1024 or
> 1600x1200

Like "DOS386" wrote "* VESA 2.0 deleted fixed mode numbers"
The standard defined VESA mode numbers are only for VBE 1.xx, because starting with VBE version 2.0, VESA will no longer define new VESA mode numbers and it will no longer be mandatory to support these old mode numbers (vbe3.pdf from vesa.org).

Damien wrote:
> But I suppose that some cards do support these specific mode ?
> Has someone already managed to use 1680*1050 resolution under Dos? ( and in > PCI-Express format? )
> Is there somewhere a list of such video cards ? (I would prefer Nvidia
> because at the present time, mtrrlfbe works only on those cards)

Yes i have used it, but not in 1680*1050, only in 1920x1200 resolution (16:10 for to fit the native resolution of my 28" LCD from HansG) under pure Dos together with two cards with the PCI-Express format!

The cards are a NVIDIA GTX 295 from the manufacturer Colorfull and a ATI/AMD Radeon 7950 from the manufacturer Sapphire.


VBE modelist Colorfull Geforce GTX 295:
0100 X=0280 Y=0190 8Bit    640x480
0101 X=0280 Y=01E0 8Bit    640x480
0102 X=0320 Y=0258 4Bit    800x600
0103 X=0320 Y=0258 8Bit    800x600
0104 X=0400 Y=0300 4Bit   1024x768
0105 X=0400 Y=0300 8Bit   1024x768
0106 X=0500 Y=0400 4Bit   1280x1024
0107 X=0500 Y=0400 8Bit   1280x1024
010E X=0140 Y=00C8 10Bit   320x200
010F X=0140 Y=00C8 20Bit   320x200
0111 X=0280 Y=01E0 10Bit   640x480
0112 X=0280 Y=01E0 20Bit   640x480
0114 X=0320 Y=0258 10Bit   800x600
0115 X=0320 Y=0258 20Bit   800x600
0117 X=0400 Y=0300 10Bit  1024x768
0118 X=0400 Y=0300 20Bit  1024x768
011A X=0500 Y=0400 10Bit  1280x1024
011B X=0500 Y=0400 20Bit  1280x1024
0130 X=0140 Y=00C8 8Bit    320x200
0131 X=0140 Y=0190 8Bit    320x400
0132 X=0140 Y=0190 10Bit   320x400
0133 X=0140 Y=0190 20Bit   320x400
0134 X=0140 Y=00F0 8Bit    320x240
0135 X=0140 Y=00F0 10Bit   320x240
0136 X=0140 Y=00F0 20Bit   320x240   
013D X=0280 Y=0190 10Bit   640x400
013E X=0280 Y=0190 20Bit   640x400
0145 X=0640 Y=04B0 8Bit   1600x1200
0146 X=0640 Y=04B0 10Bit  1600x1200
014A X=0640 Y=04B0 20Bit  1600x1200
0160 X=0500 Y=0320 8Bit   1280x800
0161 X=0500 Y=0320 20Bit  1280x800
0162 X=0300 Y=01E0 8Bit    768x480
017B X=0500 Y=02D0 20Bit  1280x720
017C X=0780 Y=04B0 8Bit   1920x1200
017D X=0780 Y=04B0 20Bit  1920x1200

VBE modelist Sapphire Radeon 7950:
0100 640x400x8 C0000000 (Adress of the LFB)
0101 640x480x8 C0000000
0103 800x600x8 C0000000
0105 1024x768x8 C0000000
0107 1280x1024x8 C0000000
0110 640x480x16 C0000000
0111 640x480x16 C0000000
0113 800x600x16 C0000000
0114 800x600x16 C0000000
0116 1024x768x16 C0000000
0117 1024x768x16 C0000000
0119 1280x1024x16 C0000000
011A 1280x1024x16 C0000000
010D 320x200x16 C0000000
010E 320x200x16 C0000000
0120 320x200x32 C0000000
0193 320x240x8 C0000000
0195 320x240x16 C0000000
0196 320x240x32 C0000000
01B3 512x384x8 C0000000
01B5 512x384x16 C0000000
01B6 512x384x32 C0000000
01C3 640x350x8 C0000000
01C5 640x350x16 C0000000
01C6 640x350x32 C0000000
0133 720x400x8 C0000000
0135 720x400x16 C0000000
0136 720x400x32 C0000000
0153 1152x864x8 C0000000
0155 1152x864x16 C0000000
0156 1152x864x32 C0000000
0163 1280x960x8 C0000000
0165 1280x960x16 C0000000
0166 1280x960x32 C0000000
0121 640x480x32 C0000000
0122 800x600x32 C0000000
0123 1024x768x32 C0000000
0124 1280x1024x32 C0000000
0143 1400x1050x8 C0000000
0145 1400x1050x16 C0000000
0146 1400x1050x32 C0000000
0173 1600x1200x8 C0000000
0175 1600x1200x16 C0000000
0176 1600x1200x32 C0000000
0183 1792x1344x8 C0000000
0185 1792x1344x16 C0000000
0186 1792x1344x32 C0000000
01D3 1856x1392x8 C0000000
01D5 1856x1392x16 C0000000
01D6 1856x1392x32 C0000000
01E3 1920x1440x8 C0000000
01E5 1920x1440x16 C0000000
01E6 1920x1440x32 C0000000
01D1 1920x1200x8 C0000000
01D2 1920x1200x16 C0000000
01D4 1920x1200x32 C0000000


RayeR wrote:
> Do you mean reprogramming CRTC registers? I remember that it was primary
> used for setting higher refresh rates in CRT age but nvidia dropped this
> VBE code since GeForce 5xxx and newer. I remember that intel 945 has it. I > used it to set 85Hz on my CRT. But never tried to completly modify it for
> different resolution, maybe it is possible.

I use it with a MSI Geforce 4 Ti4200(VBE3;AGPx4;64MB) together with a 19" CRT from Samsung and a 19" CRT from Samtron both with 96 khz, 160 hz capacity, both with a prefered resolution of 1280x1024 with 85hz.

I use it With a resolution of:
640x480 and a resfreshrate of 160 hz
800x600 and a resfreshrate of 140/144 hz
1024x768 and a resfreshrate of 100 hz
1280x1024 and a resfreshrate of 85 hz.

And here are the CRTC timing values(of the CRTCInfoBlock; only for VBE 3):

;--------------------------------------
;  640x480  160 Hz
;--------------------------------------
CRTC    DW 816                         ; horizontal Total       in Pixel
HORIANF DW 648                         ; horizontal  Sync-Start in Pixel
HORIEND DW 672                         ; horizontal  Sync-End   in Pixel
VERTOTA DW 512                         ; vertical   Total       in Lines
VERTANF DW 481                         ; vertical    Sync-Start in Lines
VERTEND DW 484                         ; vertical    Sync-End   in Lines
DOIFLAG DB 00h                         ; Flag (interlaced,doubleScan,polarity)
PIXCLOC DD 66846720                    ; Pixel clock in hz
REFRATE DW 16000                       ; Refresh-Rate in 0.01 hz
;---------------------
        DB 40 dup (0)
;--------------------------------------

;--------------------------------------
;  800x600x32  140 Hz
;--------------------------------------
CRTC    DW 1088                        ; horizontal Total       in Pixel
HORIANF DW 860                         ; horizontal  Sync-Start in Pixel
HORIEND DW 18                          ; horizontal  Sync-End   in Pixel
VERTOTA DW 651                         ; vertical   Total       in Lines
VERTANF DW 600                         ; vertical    Sync-Start in Lines
VERTEND DW 47                          ; vertical    Sync-End   in Lines
DOIFLAG DB 04h                         ; Flag (interlaced,doubleScan,polarity)
PIXCLOC DD 99160000                    ; Pixel clock in hz
REFRATE DW 14000                       ; Refresh-Rate in 0.01 hz
;---------------------
        DB 40 dup (0)
;--------------------------------------

;--------------------------------------
;  800x600x32  144 Hz
;--------------------------------------
CRTC    DW 1088                        ; horizontal Total       in Pixel
HORIANF DW 860                         ; horizontal  Sync-Start in Pixel
HORIEND DW 18                          ; horizontal  Sync-End   in Pixel
VERTOTA DW 653                         ; vertical   Total       in Lines
VERTANF DW 600                         ; vertical    Sync-Start in Lines
VERTEND DW 47                          ; vertical    Sync-End   in Lines
DOIFLAG DB 04h                         ; Flag (interlaced,doubleScan,polarity)
PIXCLOC DD 102271000                   ; Pixel clock in hz
REFRATE DW 14394                       ; Refresh-Rate in 0.01 hz
;---------------------
        DB 40 dup (0)
;--------------------------------------


;--------------------------------------
;  1024x768x32  100 Hz
;--------------------------------------
CRTC    DW 1456                        ; horizontal Total       in Pixel
HORIANF DW 1122                        ; horizontal  Sync-Start in Pixel
HORIEND DW 216                         ; horizontal  Sync-End   in Pixel
VERTOTA DW 814                         ; vertical   Total       in Lines
VERTANF DW 768                         ; vertical    Sync-Start in Lines
VERTEND DW 42                          ; vertical    Sync-End   in Lines
DOIFLAG DB 04h                         ; Flag (interlaced,doubleScan,polarity)
PIXCLOC DD 118309000                   ; Pixel clock in hz
REFRATE DW 10000                       ; Refresh-Rate in 0.01 hz
;---------------------
        DB 40 dup (0)
;--------------------------------------


;--------------------------------------
;  1280x1024x8  85 Hz
;-------------------------------------
CRTC    DW 1728                       ; horizontal Total       in Pixel
HORIANF DW 1336                       ; horizontal  Sync-Start in Pixel
HORIEND DW 208                        ; horizontal  Sync-End   in Pixel
VERTOTA DW 1072                       ; vertical   Total       in Lines
VERTANF DW 1024                       ; vertical    Sync-Start in Lines
VERTEND DW 44                         ; vertical    Sync-End   in Lines
DOIFLAG DB 0                          ; Flag (interlaced,doubleScan,polarity)
PIXCLOC DD 157498000                  ; Pixel clock in hz
REFRATE DW 8502                       ; Refresh-Rate in 0.01 hz
;---------------------
        DB 40 dup (0)
;--------------------------------------

Those CRT-values can be get from VBEHZ:
http://home.arcor.de/g.s/vbehz.htm
http://home.arcor.de/g.s/vbehz.zip

Dirk

freecrac(R)

28.08.2013, 06:29

@ freecrac

working in more than 1280*1024 under Dos

For to get the capacity of the used CRT-monitor:

          mov      ax, 4F15h           ; DDC - INSTALLATION CHECK
          xor      bl, bl
          int    10h
          cmp      ax, 4Fh
          jnz NODDC

          mov      ax, 4F15h           ; DDC - READ EDID
          mov      bl, 1
          xor      cx, cx
          xor      dx, dx
          mov      di, OFFSET EDID     ; es:di 128 byte
          int    10h
          cmp      ax, 4Fh
          jnz short NODDC

          mov      eax, 0FD000000h     ; Text-identifier V/H range
          mov      bx, 36h
          cmp      eax, [di+bx]        ; di+36h detailed timing #1
          jz  short RANGE
          lea      bx, [bx+12h]        ; alternative/substitute for "add bx,12h"
          cmp      eax, [di+bx]        ; di+48h detailed timing #2
          jz  short RANGE
          lea      bx, [bx+12h]
          cmp      eax, [di+bx]        ; di+5Ah detailed timing #3
          jz  short RANGE
          lea      bx, [bx+12h]
          cmp      eax, [di+bx]        ; di+6Ch detailed timing #4
          jnz short NODDC

RANGE:    mov      al, [di+bx+6]       ; MAXHZ
          mov      dl, [di+bx+8]       ; MAXKHZ


EDID couldn't be readed if a CRT-Monitor is connected via a 5 pol. BNC-Monitor cable.

Public documents from http://www.vesa.org/ (Need register and/or login!)
Registation: https://fs16.formsite.com/VESA/form714826558/secure_index.html

vbe3.pdf
EEDIDguideV1.pdf
EEDIDverifGuideRa.pdf

Dirk

Back to the board
Thread view  Mix view  Order
15191 Postings in 1365 Threads, 250 registered users, 16 users online (0 registered, 16 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum