frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

VGA Memory Access Is Complicated

https://www.os2museum.com/wp/learn-something-old-every-day-part-xxi-vga-memory-access-is-complicated/
24•ingve•2d ago

Comments

rasz•2d ago
> VGA is only a slightly extended superset of the EGA

People remember EGA as being planar and VGA packed/chunky in its most widely used mode 13h 320x200@256.

In reality VGA never stopped being planar internally. VGA like EGA before supports 256KB of ram, but instead of simply giving user access to linear sliding 64KB window it arranges video ram into 4 chained planes. Writing 4 consecutive pixels at 0x0 stores those in video memory 64KB apart.

Depending on the implementation all this complexity can add up. Simply turning off Chaining is not enough, but can be bypassed by engaging VESA linear modes. Effect can be miniscule:

Toshiba Satellite T2130CS CT65545 https://www.youtube.com/watch?v=7PjA6PfyWW8 Mode Y: 28 fps. 13h: 36 fps. VESA: 37 fps

be significant:

SiS 6326 PCI https://www.youtube.com/watch?v=minIT5dBCVQ Mode Y: 55 fps. 13h: 59 fps. VBE2 (LFB): 75 fps

or outright massive:

Rendition Veritè V2200 (internally a MIPS based DSP emulates VGA core in software) https://www.youtube.com/watch?v=6unNuPympE4 Mode Y: 14 fps. 13h: 59 fps. VBE2 (LFB, PM): 305 fps!

There was even a Tweak released for one vendor (Trident) http://www.geocities.ws/liaor2/myutil/m13speed.html that intercepted setting mode 13h and switched it for custom VESA underneath.

"M13speed examines all video BIOS calls (10h.) If the call is a request for VGA mode13h (320x200 256-color), M13speed replaces the call with a request for VESA SVGA 640x400x8 (mode 100h.) ... The TSR's response to setmode13h includes issuing a VESA setmode100h (640x400 SVGA) request, reprogramming the VGA CRTC and SR registers to setup a 320x200 display field, which looks, feels, smells like MCGA 320x200."

"Without m13speed, the 9680 posted MCGA ("vidspeed L") write performance of 14mb/sec. ...loaded m13speed and re-tested my 9680's MCGA performance - 50mb/sec"

userbinator•1d ago
Writing 4 consecutive pixels at 0x0 stores those in video memory 64KB apart.

I don't think "64KB apart" would make much sense either, especially because of the flexibility of the VGA memory controller described in the article; they end up in 4 separate 64KB planes. Unless you're referring to the linear view of the framebuffer that post-VGA GPUs use, in which case the mapping between the planes and LFB can differ considerably between implementations: https://stackoverflow.com/questions/36269239/meaning-of-byte...

rasz•1d ago
Yes. Bytes land in separate planes which afaik are 64KB apart in video memory if you would/could access it linearly. I think it was performance driven decision in the design of EGA with 4 parallel ram banks enabling 4x faster solid color fills etc. Both MCGA and VESA VBE cut all that crap out only allowing linear buffer which greatly simplified hardware interface unlocked new optimization possibilities.

All VGA clones still have to at least pretend mode 13h writes are divided into planes.

Dwedit•1h ago
The thing that really surprised me is how rare actual IBM MCGA cards were, yet the MCGA-compatible VGA mode was so widely used.

Postmortem: TanStack npm supply-chain compromise

https://tanstack.com/blog/npm-supply-chain-compromise-postmortem
634•varunsharma07•7h ago•241 comments

Claude Platform on AWS

https://claude.com/blog/claude-platform-on-aws
64•matrixhelix•3h ago•35 comments

If AI writes your code, why use Python?

https://medium.com/@NMitchem/if-ai-writes-your-code-why-use-python-bf8c4ba1a055
283•indigodaddy•7h ago•285 comments

UCLA discovers first stroke rehabilitation drug to repair brain damage (2025)

https://stemcell.ucla.edu/news/ucla-discovers-first-stroke-rehabilitation-drug-repair-brain-damage
276•bookofjoe•10h ago•54 comments

They Live (1988) inspired Adblocker

https://github.com/davmlaw/they_live_adblocker
59•tokenburner•4h ago•6 comments

Software Internals Book Club

https://eatonphil.com/bookclub.html
26•aragonite•2h ago•6 comments

A lost ancient script reveals how writing as we know it began

https://www.newscientist.com/article/2524042-a-lost-ancient-script-reveals-how-writing-as-we-know...
25•emot•4d ago•4 comments

Show HN: A modern Music Player Daemon based on Rockbox firmware

https://github.com/tsirysndr/rockbox-zig
37•tsiry•2d ago•2 comments

I let AI build a tool to help me figure out what was waking me up at night

https://martin.sh/i-let-ai-build-a-tool-to-help-me-figure-out-what-was-waking-me-up-at-night/
111•showmypost•7h ago•119 comments

Nullsoft, 1997-2004 (2004)

https://slate.com/technology/2004/11/the-death-of-the-last-maverick-tech-company.html
249•downbad_•3d ago•74 comments

Library for fast mapping of Java records to native memory

https://github.com/mamba-studio/TypedMemory
118•joe_mwangi•9h ago•26 comments

GitLab announces workforce reduction and end of their CREDIT values

https://about.gitlab.com/blog/gitlab-act-2/
390•AnonGitLabEmpl•7h ago•397 comments

Google says criminal hackers used AI to find a major software flaw

https://www.nytimes.com/2026/05/11/us/politics/google-hackers-attack-ai.html
139•donohoe•15h ago•108 comments

Griffin PowerMate driver for modern macOS

https://github.com/jameslockman/Griffin-PowerMate-Driver
56•classichasclass•7h ago•19 comments

VGA Memory Access Is Complicated

https://www.os2museum.com/wp/learn-something-old-every-day-part-xxi-vga-memory-access-is-complica...
24•ingve•2d ago•4 comments

Interaction Models

https://thinkingmachines.ai/blog/interaction-models/
135•smhx•7h ago•19 comments

Boriel BASIC

https://zxbasic.readthedocs.io/en/docs/
6•AlexeyBrin•2d ago•0 comments

Silverback Imfura took a chance, and ended up alone

https://gorillafund.org/mountain-gorillas/silverback-imfura-took-a-chance-and-ended-up-alone/
45•alex000kim•2d ago•12 comments

Why Everyone's Picking Up a PSP Again in 2026

https://gardinerbryant.com/psp-in-2026/
9•Kate0CoolLibby•2h ago•3 comments

Training an LLM in Swift, Part 1: Taking matrix mult from Gflop/s to Tflop/s

https://www.cocoawithlove.com/blog/matrix-multiplications-swift.html
225•zdw•1d ago•11 comments

Interfaze: A new model architecture built for high accuracy at scale

https://interfaze.ai/blog/interfaze-a-new-model-architecture-built-for-high-accuracy-at-scale
121•yoeven•12h ago•31 comments

The rise and fall of snake oil

https://www.historytoday.com/archive/history-matters/rise-and-fall-snake-oil
41•samizdis•4d ago•22 comments

AMÁLIA and the future of European Portuguese LLMs

https://duarteocarmo.com/blog/amalia-and-the-future-of-european-portuguese-llms
122•johnbarron•3d ago•57 comments

Show HN: OpenGravity – A zero-install, BYOK vanilla JS clone of Antigravity

https://github.com/ab-613/opengravity
64•ab613•8h ago•19 comments

CUDA-oxide: Nvidia's official Rust to CUDA compiler

https://nvlabs.github.io/cuda-oxide/index.html
379•adamnemecek•12h ago•108 comments

Hardware Attestation as Monopoly Enabler

https://grapheneos.social/@GrapheneOS/116550899908879585
2095•ChuckMcM•1d ago•709 comments

Bild AI (YC W25) Is Hiring Founding Product Engineers

https://bild.ai/jobs
1•rooppal•10h ago

Building a web server in aarch64 assembly to give my life (a lack of) meaning

https://imtomt.github.io/ymawky/
112•theanonymousone•3d ago•35 comments

Ratty – A terminal emulator with inline 3D graphics

https://ratty-term.org/
625•orhunp_•18h ago•206 comments

Abstract Machines for Logic Programs

https://chrisistyping.bearblog.dev/abstract-machines-for-logic-programs/
20•surprisetalk•2d ago•1 comments