VOGONS


First post, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie

X-VESA 2.0 – Public Beta
A deep VESA diagnostic tool for real DOS hardware

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Hello everyone,

My name is Marco Pistella. I'm a DOS/x86 assembly programmer and vintage hardware enthusiast based in Italy. Over the past years I've been working on a personal project born out of a simple frustration: I couldn't find any DOS tool that actually tested VESA implementations instead of just reading what the BIOS claims to support.

Today I'm releasing the first public beta of X-VESA 2.0 here on Vogons, because if there's one place on the internet where people have the hardware — and the patience — to push a tool like this to its limits, it's here.

I'm looking for beta testers, hardware reports, bug reports, and feedback of any kind. Screenshots, logs, "it crashed on my [card]" — all welcome.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

WHAT IS X-VESA?

X-VESA is a DOS diagnostic program that performs in-depth analysis and verification of VESA BIOS Extensions (VBE) on real hardware. It enumerates all available VESA video modes, decodes the information returned by the VBE interface, and then actively tests what the hardware can actually do.

The key word is "actively". X-VESA does not trust the BIOS.

It probes VRAM directly, reads VGA registers to verify that a mode was actually initialized, cross-checks declared values against hardware behavior, and catches implementation bugs that have existed — undetected — for thirty years.

X-VESA supports VBE 1.0 through 3.0, including non-standard, partial, and defective implementations. Software VESA TSR drivers are supported.

The entire program — over 22,000 lines of x86 real-mode assembly — was written by hand, from scratch, without code generators or macros doing the heavy lifting. It is distributed as a single .COM executable with no external libraries, no runtime dependencies, and no installer. It just runs. The compressed executable is approximately 32 KB. Requires 302 KB of free conventional memory and an 80386 or higher.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

WHAT IT FOUND ALONG THE WAY

During development and testing on real hardware, X-VESA uncovered a number of previously undocumented (or underdocumented) behaviors.

The 4F06h divide-by-zero bug
Present in Nvidia (up to GT740), 3dfx, Trident, and Cirrus Logic implementations. Traced to unchanged code from the original 1990s VESA reference kit, never updated for VRAM > 8 MB. X-VESA detects and works around it.

GT740 horizontal timing quantization
This card's VGA emulation produces timing errors in exact multiples of 2/4/6 scanlines — a digital artifact of GPU-level VGA emulation. X-VESA's jitter analyzer is likely the first tool to detect and characterize this signature (see screenshot 09).

Nvidia 4F07h retrace inversion bug
Function 4F07h BL=80h on Nvidia cards waits for the end of retrace instead of the start, causing flickering in dual-page mode. Detected via a single 3DAh read immediately after the function returns. X-VESA automatically falls back to VGA retrace on affected cards.

RTX5070 / CSM mode VIDEO_200_LINES freeze
The standard INT 10h call for 200-line mode freezes the system in legacy/CSM mode on this card. X-VESA uses direct VGA register manipulation first, with BIOS as fallback.

ATI, S3, 3dfx, Intel-specific anomalies — and much more
3dfx Voodoo3: 4F06h returns a value larger than requested, triggering INT04 at C000:2F63h (inside the card's BIOS ROM — see screenshot 24). ATI Radeon 9250: 4F06h systematic 16-byte readback error. ATI 4200: SET/GET mismatch (sets 1032, reads back 1024). ET4000W32 / GD5434: 4F07h Y > 511 causes 9-bit overflow and silent reset to 0. Intel HD (i7-2600K): 640×480×16bpp linear has a scanline gap between 4085 and 4139 pixels. Intel HD (i5-6200U): physical CRTC registers not accessible in emulated VGA mode (see screenshot 07). And many other anomalies documented in the hardware bug database included with the distribution.

If your card has a quirky VESA implementation, X-VESA will probably find it.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

FEATURES

Mode enumeration and validation
- Up to 256 VESA video modes, fully decoded per VBE version (1.0 / 1.1 / 1.2 / 2.0 / 3.0)
- Full memory model support: text, planar (1–4 bpp), packed-pixel (1–8 bpp), direct color (9–32 bpp including 15/16/24/32 bpp)
- Automatic reclassification of direct-color modes misdeclared as packed-pixel in pre-1.2 interfaces
- Banked window validation with automatic WinA/WinB fallback
- RGB mask validation with bitwise overlap detection
- BytesPerScanLine and LinBytesPerScanLine automatic correction
- VGA register cross-check to verify actual mode initialization
- Up to 22 error codes recorded per mode

Diagnostics and measurements
- VRAM benchmark: 8 / 16 / 32 / 64 / 128 / 256 / 512-bit access (FPU / SSE / AVX / AVX-512F), with overhead subtraction, graphical display. Where the linear frame buffer is available and the A20 line is enabled, all tests run in Unreal Mode for full 32-bit physical address access with no bank switching overhead. The AVX and AVX-512F paths are, to my knowledge, unique for a DOS .COM with no external libraries: the transition through PM/16 to configure XCR0, followed by vmovntdq/vmovdqu64 in Unreal Mode, is handled entirely in hand-written assembly.
- VRAM reliability test: three distinct patterns (BITS_TEST, BURST_TEST, MATRIX_TEST), configurable address range and pass count, real-time monitoring, navigable error table, saveable report
- Video timing analysis: vertical/horizontal frequency, bandwidth, interlace detection, jitter (σ/μ) with graphical sample distribution, zoom 10–400%, LED KITT animation during sampling
- Dual-page test with vertical retrace sync: OFF / VGA (3DAh polling) / VESA (4F07h BL=80h), with automatic Nvidia retrace inversion detection and fallback
- Virtual resolution test: 4F07h characterization (alignment granularity + upper bound on both axes), keyboard + mouse navigation, four range presets including Custom for bug isolation
- DAC 6/8-bit test: direct 3C6h probe, four color gradients, automatic VBE 4F09h fallback
- Physical VRAM measurement via direct hardware probe (independent of TotalMemory field), with memory aliasing detection
- Complete EDID read and decode: up to 8 DDC controllers, automatic deduplication, 9 decoded pages, extension block navigation, binary view, file save
- VBE/PM power management check and interactive state activation
- System capabilities: CPU mode, FPU, A20, CPUID, SSE, AVX, AVX-512F

Interface and I/O
- 80×40 text interface (640×400, 8×10 font, near-100% VGA compatible)
- Screenshot to IFF-PBM at any point via F2, with PackBits compression
- DOS INT 24h critical error handler with video state restoration
- INT 00h / INT 04h Guru Meditation: full register dump (EAX–ESP, DS/ES/FS/GS, EFLAGS, CS:IP) on red screen; CS segment C000h = crash inside graphics card BIOS ROM

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

WHY A PUBLIC BETA ON VOGONS

I've tested X-VESA on a range of hardware in my own lab, but the point of a beta is to find what I couldn't. I'm particularly interested in:

Hardware coverage
ISA, VLB, PCI, AGP cards — the more exotic the better. Software VESA TSRs. Modern systems in legacy/CSM mode. Anything with a non-standard or partial VBE implementation.

What I'm looking for
- Crashes, hangs, or unexpected behavior on any hardware
- Incorrect readings or measurements that don't match what you'd expect
- VESA implementation bugs that X-VESA doesn't catch or misidentifies
- Documentation errors, unclear explanations, translation issues
- Suggestions for additional tests or output improvements

Every hardware report — even "it worked perfectly on my [card]" — is useful.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

AFTER THE BETA

Once the beta phase is complete and known issues are resolved, the final release of X-VESA 2.0 will be published on GitHub with:

- Full source code (~22,000 lines of x86 assembly)
- Complete technical documentation
- Official build
- Notes on algorithms, design decisions, and the hardware bug database

The project will be fully open and freely available.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

SCREENSHOTS

— Interface —

Lwoncf6.png
Main screen – S3 Incorporated 86C362. 63 VESA modes enumerated and validated, with resolution, color depth, memory segment, window size and granularity.

8xC2JfL.png
Extended interface information – 3dfx Voodoo3 3500 TV. PMID structure detected via both BIOS and 4F0Ah, with complete field decode.

r7oC0Iz.png
EDID controller selection – 8 DDC controllers detected simultaneously. Controllers 6 and 7 return identical data and are automatically deduplicated.

2jkNaGW.png
Detailed video mode information – mode 010Ch (132×60 text). Full VBE field decode, window pointer, bank size, and pixel clock.

— VRAM tests —

evi1JnG.png
VRAM access speed – Intel HD Graphics (Sandybridge/Ivybridge), banked mode. 8 to 256-bit access measured with overhead subtraction. AVX-512F not supported on this hardware.

rFP96Rz.png
VRAM reliability test in progress – elapsed 6s, estimated 1m33s, address 007800h, 6.43%, pass 2. Real-time display in graphic VESA mode.

FbUak45.png
Available VRAM per video mode – Intel HD Graphics. Banked access limited to 8.192 KiB per window; linear frame buffer exposes the full 262 MiB. Measured via direct hardware probe, independent of the TotalMemory field.

— Timing analysis —

KbEtJjT.png
Video scan timings – Intel HD Graphics (i5-6200U), 800×600×8. Bandwidth and interlace fields report "Emulated VGA CRTC registers!": indirect emulation detected, physical CRTC not accessible. Sync integrity 100%, σ/μ = 0.0039.

A2B2n9C.png
Video scan timings – Nvidia GT740, 1280×1024×8. Only 7 of 256 samples pass the validity threshold. σ/μ = 0.8582 – extreme jitter, characteristic of GPU-level VGA emulation.

hdiofh5.png
Horizontal retrace sample distribution – Nvidia GT740, 640×480×8. Three distinct clusters separated by fixed multiples of scanlines: the digital signature of GPU VGA emulation quantization. X-VESA is likely the first tool to detect and characterize this artifact.

— Mode visualization —

2WVOZI6.png
Mode visualization – TEXT 132×25×4. Frame via direct VRAM write to B800h; interior: 16×16 matrix of all 256 foreground/background attribute combinations.

y4bBywm.png
Mode visualization – PLANAR 800×600×4. 16 filled rectangles, one per VGA palette index 0–15.

O9yaN5g.png
Mode visualization – PACKED 640×480×8. 16×16 grid covering all 256 palette indices.

k7XQlXZ.png
Mode visualization – DIRECT COLOR 640×480×24. 2D gradient: red/blue on horizontal axis, green on vertical. Values pre-calculated with integer remainder accumulation for uniformity at any resolution.

— Dual page and virtual resolution —

yJ0t4yy.png
Dual-page test – VGA and VESA retrace both AVAILABLE. F10 cycles through OFF / VGA / VESA synchronization modes. The moving line traverses both pages with no flickering.

7toxGUc.png
Virtual resolution – Intel HD, 65,472×4,099 pixels. Grid with coordinate labels at every 100-pixel intersection. Navigation via cursor keys and mouse.

bmb9QFn.png
Virtual resolution – Intel HD, 4,032×65,535 pixels. Vertical axis pushed to the signed 16-bit limit of function 4F07h.

P4Tieyg.png
Bottom-right corner of the 4,032×65,535 virtual page – Intel HD. Coordinates confirmed correct at the extreme vertical boundary.

om7KtGw.png
Navigation near the 32,768-pixel horizontal boundary – Intel HD. Beyond this X value, 4F07h silently resets the display start to 0.

OQLl5Ig.png
4F07h characterization result – Intel HD. Horizontal bound detected at 32,768 pixels (highlighted in red): the interface silently resets the X offset beyond this value. Vertical bound: PROPER.

— DAC test —

sf3AW1B.png
DAC test – 6-bit mode. Banding clearly visible on all four gradients. Press + to switch to 8-bit.

sxiVXRc.png
DAC test – 8-bit mode. Banding gone: smooth continuous ramp on all four channels. The switch is verified via direct probe on register 3C6h; VBE 4F09h is used as automatic fallback if direct I/O fails.

— Error handling —

mRVzCAl.png
Critical DOS error handler (INT 24h) – error 0013h (disk write-protected), class 08h. X-VESA intercepts the DOS error, presents available options, and restores video state correctly on exit.

exNoixw.png
Critical error handler – DIV/INTO exception on 3dfx Voodoo3. Full CPU context saved: EAX–ESP, DS/ES/FS/GS, EFLAGS, CS:IP. CS:IP = C000:2F63 – the crash occurred inside the graphics card BIOS ROM, not in X-VESA code.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

DOWNLOAD

The beta is attached to this post as XVESA200.ZIP.

Archive contents:

X-VESA.COM   – Executable
X-VESA.TXT – Full documentation (English)
PBM2PNG.EXE – IFF-PBM to PNG converter
PBM2PNG.TXT – PBM2PNG documentation
IPEREDID.COM – DOS TSR for multiple monitor EDID management
IPEREDID.TXT – IPEREDID documentation

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ACKNOWLEDGMENTS

This project is dedicated to the memory of Prof. Mario Bruschi, my collaborator and friend, who didn't live to see it completed.

Thanks to the Vogons community, whose years of documented hardware experience, preserved software, and shared knowledge made this kind of work possible in the first place.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

X-VESA is freeware. Modification of the executable is not permitted. The documentation is an integral part of the distribution. The author disclaims all liability for damages caused by the use of X-VESA.

— Marco Pistella
mpistella@libero.it

The attachment XVESA200.ZIP is no longer available

Reply 1 of 31, by igully

User metadata
Rank Member
Rank
Member

Hi Marco,
Your X-VESA program seems to work pretty good on all my VESA systems. If you want I can make a list of each of them.

Since it shows you went on a deep dive on VESA, I believe there is a lot of room for going beyond its current state: it would be ideal to have a tweak section which would for example, help spoof the VESA version, fake the video memory size, let users adjust brightness, contrast, etc. This would make it ideal as an all-in-one tool which we currently don't have (we have a collection of patches in the best of cases for some of these purposes).

Reply 2 of 31, by Yoghoo

User metadata
Rank Oldbie
Rank
Oldbie

Impressive! Used an old version (1.0.3) of your tool before. Will definitely test this version in the future.

Reply 3 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
igully wrote on Yesterday, 22:30:

Hi Marco,
Your X-VESA progra ... [CUT]

Hi, thank you! A list of your systems would be very welcome — that's exactly the kind of data I'm looking for during the beta phase.

Regarding the tweak section: it's an interesting direction and I understand the appeal of an all-in-one tool. For now X-VESA is designed as a pure diagnostic instrument, but I'm keeping all suggestions noted for future development. Let's see what comes out of the beta first.

Reply 4 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
Yoghoo wrote on Yesterday, 22:32:

Impressive! Used an ol ...[CUT]

Thank you! I'm curious — where did you find version 1.x, and on what hardware did you test it? I wasn't aware it had reached anyone outside my immediate circle. Any feedback from that experience, even old impressions, would be useful context for the current beta.

Reply 5 of 31, by Yoghoo

User metadata
Rank Oldbie
Rank
Oldbie
Marco Pistella wrote on Today, 03:57:
Yoghoo wrote on Yesterday, 22:32:

Impressive! Used an ol ...[CUT]

Thank you! I'm curious — where did you find version 1.x, and on what hardware did you test it? I wasn't aware it had reached anyone outside my immediate circle. Any feedback from that experience, even old impressions, would be useful context for the current beta.

I found it on Vogons in some topic (which I can't find anymore). I used it on a couple of retro videocards (ET4000, S3). It worked correctly and was informative. But as it was some time ago I forgot why I even ran it so don't have any feedback on that version. 😀

Reply 6 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
Yoghoo wrote on Today, 06:49:

I found it on Vogons in some topic (w ...[CUT]

Thanks for tracking it down! ET4000 and S3 are well-represented
in the 2.0 hardware database — if you get a chance to run this
version on the same cards, the comparison might be interesting.
No pressure though.

Reply 7 of 31, by Yoghoo

User metadata
Rank Oldbie
Rank
Oldbie
Marco Pistella wrote on Today, 07:04:
Thanks for tracking it down! ET4000 and S3 are well-represented in the 2.0 hardware database — if you get a chance to run this […]
Show full quote
Yoghoo wrote on Today, 06:49:

I found it on Vogons in some topic (w ...[CUT]

Thanks for tracking it down! ET4000 and S3 are well-represented
in the 2.0 hardware database — if you get a chance to run this
version on the same cards, the comparison might be interesting.
No pressure though.

I tested it on a Tseng ET4000AX 2theMax 4000S (ISA) just now and it works okay. Was a bit confused at first about all the Fails in attached screenshot. It's not clear what Fail[11] means. It's clearly not supported of course on a ET4000AX. So maybe change the wording or show an explanation? I have dozens of video cards so can do a couple of more tests if needed but let me know what option in the program you like to be tested etc. I am not an expert on VESA things so I can use some guidance what you like me to test.

Reply 8 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
Yoghoo wrote on Today, 08:16:

I tested it on a Tseng ET4000AX 2theMa ... [CUT]

Thank you for testing on the ET4000AX — that's exactly the kind of hardware I need covered.

Fail[11] means "linear frame buffer not supported": the card declares no LFB address in the VESA mode information, so linear access is not available. On a card like the ET4000AX this is
completely expected — it's not a malfunction, just a hardware limitation of the era. I'll add an inline explanation in the next build to make this clearer without having to look it up.
For the next tests, the most useful commands on that card would be:

- Command 4 (Detect video scan timings) on a few modes — I'm curious about the jitter signature of a real ISA card
- Command 1 (Detailed video mode information) on mode 0101 or 0103 to verify the banked window parameters
- Command 9 (Detect available video memory) to confirm the 1.024 KiB figure via direct probe

No pressure — even what you've already provided is useful data.

Reply 9 of 31, by Falcosoft

User metadata
Rank l33t
Rank
l33t

Hi,
1. Just a quick remark:
At the 8-bit wide palette the 6/8-bit switch is associated to the numeric pad '+' button. Unfortunately on some notebooks (e.g. Thinkpad T430) such button is not available.
At that test e.g. 'space' would be a better option.

2. It is known that at least from Nvidia Maxwell the Function 07h - Set/Get Display Start does not work correctly:
NVIDIA Kepler/Maxwell/Pascal VESA Bios Bug (workaround found)
Your double buffering and virtual screen tests say the function is not available and refuse to run. The truth is the function is available and supported but it fails.
Maybe instead of simply refusing to run the test could show how the function fails ( that is scrolling does not work, the page flip flickers etc.).
This way the test would be more expressive about the nature of the problem.

Thanks in advance.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 10 of 31, by Yoghoo

User metadata
Rank Oldbie
Rank
Oldbie

Here is the output of the requested tests. Hope that covers it.

Reply 11 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on Today, 08:43:
Hi, 1. Just a quick remark: At the 8-bit wide palette the 6/8-bit switch is associated to the numeric pad '+' button. Unfortuna […]
Show full quote

Hi,
1. Just a quick remark:
At the 8-bit wide palette the 6/8-bit switch is associated to the numeric pad '+' button. Unfortunately on some notebooks (e.g. Thinkpad T430) such button is not available.
At that test e.g. 'space' would be a better option.

2. It is known that at least from Nvidia Maxwell the Function 07h - Set/Get Display Start does not work correctly:
NVIDIA Kepler/Maxwell/Pascal VESA Bios Bug (workaround found)
Your double buffering and virtual screen tests say the function is not available and refuse to run. The truth is the function is available and supported but it fails.
Maybe instead of simply refusing to run the test could show how the function fails ( that is scrolling does not work, the page flip flickers etc.).
This way the test would be more expressive about the nature of the problem.

Thanks in advance.

Good news: the regular + key (not just the numpad one) works
for the toggle as well. Let me know if that's not the case
on your T430.

Thank you for the link — I'm familiar with that bug.

On the GT740 I traced the INT 10h execution step by step through
the BIOS: function 4F07h returns 014Fh (failure) immediately,
with no hardware register activity whatsoever. It's not a case
of "the function is available but misbehaves" — the BIOS
explicitly reports failure and does nothing.

In that situation there is nothing meaningful to show: forcing
the test to run anyway would produce a static screen with no
scrolling and no page flip, which is indistinguishable from a
hang from the user's perspective.

The current behavior — detecting the failure via the 014Fh return
code and the GET verification, reporting it clearly, and refusing
to proceed — is intentional and I think more honest than
pretending the function is operational when the BIOS itself
disagrees.

That said, I'll consider whether the failure report could be
more descriptive about the nature of the problem (014Fh + no
hardware activity) rather than just "not available".

Reply 12 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on Today, 08:43:

Hi,
1. Just a quick r ... [CUT]

It's also worth noting that my analysis is based on a specific
GT740 BIOS. Other Nvidia generations or firmware revisions may
behave differently — if anyone has a Maxwell/Pascal/Kepler card
and wants to test, that data would be very useful.

Reply 13 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
Yoghoo wrote on Today, 09:10:

Here is the output of the requested tests. Hope that covers it.

Thank you — this is excellent data.

The timing distribution on the ET4000AX is exactly what a real
analog oscillator looks like: single spike, N=4 distinct values,
MINX/MAXX spread of 3 PIT units. Compare this with the GT740
trimodal distribution from the screenshots in the first post —
the difference between a physical crystal and GPU VGA emulation
quantization could not be more visible.

One note: the σ/μ of 0.0069 at 640×480 is slightly above the
expected range for that resolution (typically 0.0052–0.0057 on
healthy hardware). Not a malfunction, but a measurable indicator
of component aging — likely the crystal or capacitors showing
their years. X-VESA picks it up.

This kind of data is precisely what the tool was designed to
produce. Much appreciated.

Reply 14 of 31, by Yoghoo

User metadata
Rank Oldbie
Rank
Oldbie
Marco Pistella wrote on Today, 09:24:
Thank you — this is excellent data. […]
Show full quote
Yoghoo wrote on Today, 09:10:

Here is the output of the requested tests. Hope that covers it.

Thank you — this is excellent data.

The timing distribution on the ET4000AX is exactly what a real
analog oscillator looks like: single spike, N=4 distinct values,
MINX/MAXX spread of 3 PIT units. Compare this with the GT740
trimodal distribution from the screenshots in the first post —
the difference between a physical crystal and GPU VGA emulation
quantization could not be more visible.

One note: the σ/μ of 0.0069 at 640×480 is slightly above the
expected range for that resolution (typically 0.0052–0.0057 on
healthy hardware). Not a malfunction, but a measurable indicator
of component aging — likely the crystal or capacitors showing
their years. X-VESA picks it up.

This kind of data is precisely what the tool was designed to
produce. Much appreciated.

You're welcome. It would be nice to make that note visible somewhere in the program as I think the σ/μ values (as well as some other values) will probably not be understandable for a regular user. Thanks for the program.

Reply 15 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
Yoghoo wrote on Today, 09:38:

You're welcome. It would be nice to ... [CUT]

Thank you for the suggestion. Adding inline explanations for
σ/μ and related values is something I'll evaluate — the
challenge as always is balancing information density with
interface readability.

Regarding the values themselves: collecting this kind of data
from a wide range of hardware is exactly one of the reasons
I'm running this beta on Vogons. My own lab is reasonably
large but nowhere near the collective hardware pool here.
The σ/μ ranges I mentioned are based on my own observations
and should be treated as preliminary — a real correlation
would need a much larger dataset than I can build alone.

One thing I have observed consistently on my machines: σ/μ
tends to increase with temperature over a measurement session,
which suggests a thermal component in the jitter. Again,
preliminary — but repeatable on my end.

Thanks again for the data and the feedback, both are valuable.

Reply 16 of 31, by mwdmeyer

User metadata
Rank Oldbie
Rank
Oldbie

Can you add a option to dump all data to a txt file so we can attach more easily? Just a command line switch? I don't really understand this information but I have lots of hardware I can test on!

Vogons Wiki - http://vogonswiki.com

Reply 17 of 31, by Falcosoft

User metadata
Rank l33t
Rank
l33t
Marco Pistella wrote on Today, 09:11:

Good news: the regular + key (not just the numpad one) works
for the toggle as well. Let me know if that's not the case n your T430.

Hi,
Bad news:
I have just tested and none of the expected key combinations work. It's a keyboard with a Hungarian layout so 'Shift + 3' should be the right combination (that otherwise work in other DOS programs) but in the palette test it does nothing.
I have also tried 'Shift+=' that is the English layout equivalent but this combination does not work either.
Then I have tried with an external English keyboard and only the numpad + key worked, 'Shift + =' did not. So actually this can be a more generic problem that is not Hungarian T430 specific ( during the tests always the proper code pages were used).

Marco Pistella wrote on Today, 09:11:
On the GT740 I traced the INT 10h execution step by step through the BIOS: function 4F07h returns 014Fh (failure) immediately, […]
Show full quote

On the GT740 I traced the INT 10h execution step by step through
the BIOS: function 4F07h returns 014Fh (failure) immediately,
with no hardware register activity whatsoever. It's not a case
of "the function is available but misbehaves" — the BIOS
explicitly reports failure and does nothing.

2. Maybe I'm too pedantic but I partly disagree. According to VBE 3 specification there is a clear distinction between a function call is not supported and a function call is failed:

VBE RETURN STATUS
AL == 4Fh: Function is supported
AL != 4Fh: Function is not supported
AH == 00h: Function call successful
AH == 01h: Function call failed

As you say the function 4F07h returns 014Fh that means the function is supported but it failed. I think this is clearly different from a situation when the function is simply not available (as the test program currently suggests).

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 18 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
mwdmeyer wrote on Today, 10:17:

Can you add a option to dump all data to a txt file so we can attach more easily? Just a command line switch? I don't really understand this information but I have lots of hardware I can test on!

Thank you — having access to a wide range of hardware is exactly what this beta needs.

Regarding the dump option: it's a reasonable request and I'll keep it in mind for future development. For now, the F2 key saves a screenshot in IFF-PBM format at any point in the program
— PBM2PNG.EXE (included in the archive) converts it to PNG, which is easy to attach to a post.

If you want to start testing, the most useful sequence on any card is:
- Main screen: note the VBE version, OEM name, and total video modes reported
- F10: extended interface information
- Command 4 (Detect video scan timings) on a couple of modes
- Command 9 (Detect available video memory) on a packed or direct color mode

Screenshots of those screens give me most of what I need. No VESA expertise required — just run it and share what you see.

Reply 19 of 31, by Marco Pistella

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on Today, 10:43:

Hi,
Bad news:
I have just ... [CUT]

Thank you for the detailed testing — this is a real bug, not a layout issue.

X-VESA reads hardware scancodes directly, not ASCII characters. It currently only recognizes the numpad + scancode (4Eh). The main keyboard + (Shift+= in English, Shift+3 in Hungarian) produces a different scancode that X-VESA doesn't catch. This will be fixed in the next build by adding the main keyboard equivalent alongside the numpad key.

Sorry for the inconvenience, and thank you for isolating the problem across two different keyboards — that made the cause unambiguous.

Falcosoft wrote on Today, 10:43:

2. Maybe I'm too pedantic but I pa ...[CUT]

You are correct and I was imprecise. 014Fh is unambiguous per the VBE specification: AL=4Fh means the function is supported, AH=01h means the call failed. These are two distinct conditions and X-VESA should report them as such.

The current behavior conflates "function not supported" (AL != 4Fh) with "function supported but failed" (014Fh), which is technically wrong. I'll correct the reporting in the next build to distinguish the two cases explicitly.

Thank you for pushing back on this — it's a legitimate correction.