CSS, Now It’s Got Your 8086

The modern web browser is now far more than a thing for rendering web pages, it’s a multi-faceted environment that can provide a home for almost any application you could imagine. But why should JavaScript or Wasm have all the fun? CSS is Turing complete now, right? Why not, as [Lyra Rebane] has done, write an 8086 emulator in pure CSS?

The web page at the link above may contain an 8086, but missing MMU aside, don’t expect it to run Linux just yet. Instead it has limited resources, just enough to run a demo program. It needs a Chrome-adjacent browser because it uses some CSS functions not available in for example Firefox, but we’ll forgive it that oddity. Its clock is provided by a small piece of JavaScript not because CSS can’t provide one, but because the JS version is more stable.

On one hand this is of little practical use, but to dismiss it as such is to entirely miss the point. It’s in the fine spirit of experimentation, and we love it. Perhaps a better way to look at it is to see what could be done more efficiently with the same idea. A 1970s CISC microprocessor might not be the best choice, but would for example a minimalist and optimized RISC design be more capable? We’re looking forward to where others take this thread.

It’s not the first unexpected computing environment we’ve found, who could forget the DOOM calculator!


Header: Thomas Nguyen, CC BY-SA 4.0.

12 thoughts on “CSS, Now It’s Got Your 8086

    1. I believe the author’s point was that Linux won’t run without an MMU, that’s the “missing MMU”. I remember the early days of the μClinux project, trying to get Linux to run on Dragonball D68EZ328, which also doesn’t have an MMU, on a Palm Pilot! Didn’t succeed, and while (early)Xenix ran without an MMU, it also sucked big time! Also Minix, always an academic project, was displaced by wholly re-written “Minix 3” which also requires an MMU(386 or 68030 or higher). Now someone just has to write a memory management unit in CSS! lol

    1. I believe it’s called ‘Creeping Featurism’. Unless you’re a really cool l33t programmer, then you get to call it ‘Feeping Creaturism’.

      In any other form of engineering it’s considered bad practice.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.