Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

0xA000 is also the address of the memory location that holds the contents of the display in so-called "mode 13h" in the old IBM VGA displays.

Mode 13h was an extremely popular graphics mode, used by many PC games in the early 90s (probably also late 80s). It gave a resolution of 320x200 pixels with 8-bit colour palette.

After entering mode 13h, the way to plot a pixel is to poke the corresponding 8-bit memory address, where the 0th pixel (display top left) is 0xA000.



I think that's A000:0000 or, without the segments, 0xA0000 (one extra zero).

0xA000 would mean video memory started not after 640kB, but after 40kB. That wasn't even enough for everybody when the IBM PC launched (the Apple II already had been shipping with 48kB for a few years at that time)


Yes indeed, quite right!

0xA000 is the memory _segment_ and so the linear address is 0xA0000

I think I would have got this right first time ~20 years ago: ftp://ftp.scene.org/mirrors/hornet/code/3d/systems/gsescher.zip :)


Mode 13h was popular - but Mode X was where it was really at (square pixels):

https://en.wikipedia.org/wiki/Mode_X




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: