reenigne
reenigne.org · Personal blog · on HN since 2011
Reenigne is a retro computing developer who writes about 8086/8088 hardware, microcode, CGA graphics tricks, and demoscene techniques.
What HN saysHN links it for detailed technical explanations, such as the 8086 microcode disassembly and the 8088 PC speaker MOD player.
20HN people shared it
12linked it in comments
11stories submitted
762story points
3 months agolast shared
2011people per year2026
Most-shared posts
- 1Basic2.gif1 people · first shared 2016
- 2Xtserver1 people · first shared 2022
- 38086 Microcode Disassembled8 people · 242 points · first shared 2020 · 51 comments on HN
- 48088 PC Speaker MOD player: How it’s done5 people · 120 points · first shared 2015 · 26 comments on HN
- 51K colours on CGA: How it's done3 people · 227 points · first shared 2015 · 42 comments on HN
- 6How do you use a computer that's 30 years old, has no monitor, and no keyboard?1 people · 71 points · first shared 2011 · 21 comments on HN
- 7More 8088 MPH how it's done1 people · 56 points · first shared 2015 · 4 comments on HN
- 880386 Microcode Disassembled1 people · 41 points · first shared 2026 · 3 comments on HN
- 9ISA Bus sniffer1 people · 3 points · first shared 2016 · discussion on HN
- 10What are all those pins for? (2009)1 people · 1 points · first shared 2026 · discussion on HN
- 11How to get away with disabling DRAM refresh1 people · 1 points · first shared 2017 · discussion on HN
- 12Xtce trace.zip1 people · first shared 2025
- 13Gempaint.gif1 people · first shared 2016
- 14Cga 1k colours.png1 people · first shared 2015
What HN people wrote when they linked it
userbinator · 2019-02-07
The most amazing thing I've heard done with a PC speaker is in the last part of this equally amazing demo (starts at 6:37 --- the parts before have more "normal" beeper music): https://www.youtube.com/watch?v=yHXx3orN35Y
Explanation here:
https://www.reenigne.org/blog/8088-pc-speaker-mod-player-how-its-done/
ygra · 2026-08-14
kens · 2026-01-24
It had the micro-instructions for most of the machine instructions, but a few simple instructions were implemented directly in hardware.
https://www.reenigne.org/blog/8086-microcode-disassembled/
ajenner · 2025-12-04
I wrote a program called xtce-trace (https://www.reenigne.org/software/xtce_trace.zip ) to do just this (albeit non-interactively - you just give it a program and it will generate a cycle-by-cycle trace of which lines of microcode are executed). GloriousCow aka Daniel Balsom recently fixed some of its bugs and turned it into an actual emulator (https://github.com/dbalsom/XTCE-Blue ), though it's not finished yet so there's no binary release at the moment.
rep_lodsb · 2022-07-21
It was done that way in the original 8086/88:
https://www.reenigne.org/blog/8086-microcode-disassembled/
(its successor the 80186 already had a divider in hardware)
kiwidrew · 2022-05-11
And the award for most innovative use of the manufacturing test mode goes to reenigne (of 8088MPH fame), who used it to make a web service that runs user-submitted snippets of 8086 code on a genuine IBM XT:
http://www.reenigne.org/xtserver/
guerrilla · 2021-11-08
The 8086's microcode has been disassembled (and is mostly documented) by the way [1]
1. https://www.reenigne.org/blog/8086-microcode-disassembled/
temac · 2020-12-12
CISC and RISC are mostly an ISA concept.
Most chips are "microcoded", at least here and there. The term does not define a whole micro-architecture, esp in modern complex ones, but I'm not really sure how you would implement old school CISC chips without microcode concepts. The 8086 was microcoded: https://www.reenigne.org/blog/8086-microcode-disassembled/. It basically means that "you" program some low level internal details of a chip, e.g. the muxes connecting various buses to execution units. Most of the time the "you" is only the chip designers, and it is stored mostly in a ROM. Sometimes microcoding is accessible by actual software programmers, but it is quite rare.
And modern u-ops are not necessarily like what was done at the time of old-school microcode.
mepian · 2020-12-07
x86 used microcode from the beginning: https://www.reenigne.org/blog/8086-microcode-disassembled/
em3rgent0rdr · 2018-04-28
The outro credits manage to play a MOD file just via PC speakers (which normally can just make bleeps)...quite an accomplishment! [1]
[1] http://www.reenigne.org/blog/8088-pc-speaker-mod-player-how-its-done/
johansch · 2016-03-26
This wouldn't be complete without mentioning the enhanced CGA version a lot of Europeans experienced via Amstrad/Schneider PCs in the 80s (they tended to be the cheapest way to get a PC here, back then).
"The Amstrad used an "enhanced" CGA graphic mode, which could display 640x200 pixels with 16 colors (or grayscale)."
http://www.old-computers.com/museum/computer.asp?c=183&st=1
http://www.nostalgianerd.com/amstrad-pc1512
There were probably at least five pieces of software released which supported this mode. :)
The PC1512 came bundled with the GEM windowing system from Digital Research, including a paint program: http://www.reenigne.org/computer/gempaint.gif as well as a fairly state of the art graphical BASIC: http://www.reenigne.org/computer/basic2.gif, https://www.youtube.com/watch?v=dDL8w_Mi49A (video in EGA though).
magicalhippo · 2022-08-22
> with the smaller CPUs you can lookup exactly how long each instruction will take and thus get the timing right
Reminds me of the good old demo scene hack to get 18-bit color[1] back in the VGA days (and probably earlier) by changing the color palette per pixel through careful timing of the instructions.
IIRC you ignore the pixel values entirely, writing effectively a single "color", ie palette index, and then just change that single palette entry per pixel, timed so it's ready just when the output DAC is clocked to the next pixel.
edit: I forgot which demos I've seen this effect in, but searching for it led me down a marvelous rabbit hole where I stumbled over someone[2] managed[3] to get 1k colors over CGA[4], apparently discussed here[5] a couple of years ago.
[1]: https://en.wikipedia.org/wiki/Video_Graphics_Array#Color_palette
[2]: https://int10h.org/blog/2015/04/cga-in-1024-colors-new-mode-illustrate…
[3]: https://www.reenigne.org/blog/1k-colours-on-cga-how-its-done/
[4]: https://en.wikipedia.org/wiki/Color_Graphics_Adapter
[5]: https://news.ycombinator.com/item?id=21992870