https://hackaday.com/2021/07/28/emulating-the-ibm-pc-on-an-esp32/ Skip to content Logo Hackaday Primary Menu * Home * Blog * Hackaday.io * Tindie * Hackaday Prize * Submit * About * Search for: [ ] [Search] July 28, 2021 Emulating The IBM PC On An ESP32 24 Comments * by: Lewin Day July 28, 2021 * * * * * Title: [Emulating The IBM PC] Copy Short Link: [https://hackaday.com] Copy [ut2] The IBM PC spawned the basic architecture that grew into the dominant Wintel platform we know today. Once heavy, cumbersome and power thirsty, it's a machine that you can now emulate on a single board with a cheap commodity microcontroller. That's thanks to work from [Fabrizio Di Vittorio], who has shared a how-to on Youtube. The full playlist is quite something to watch, showing off a huge number of old-school PC applications and games running on the platform. There's QBASIC, FreeDOS, Windows 3.0, and yes, of course, Flight Simulator. The latter game was actually considered somewhat of a de facto standard for PC compatibility in the 1980s, so the fact that the ESP32 can run it with [Fabrizio's] code suggests he's done well. It's amazingly complete, with the ESP32 handling everything from audio and video to sound output and keyboard and mouse inputs. It's a testament to the capability of modern microcontrollers that this is such a simple feat in 2021. We've seen the ESP32 emulate 8-bit gaming systems before, too. If you remember [Fabrizio's] name, it's probably from his excellent FabGL library. Videos after the break. * [share_face] * [share_twit] * [share_in] * [share_mail] Posted in Misc HacksTagged ESP32, FabGL, IBM PC, pc Post navigation - Rooting The Atari VCS 800 It Takes A Lot To Build A Hacker's Laptop - 24 thoughts on "Emulating The IBM PC On An ESP32" 1. Alice Lalita Heald says: July 28, 2021 at 1:21 am So DOS is faster than linux ?:D (see prev esp post) Report comment Reply 1. Harvie.CZ says: July 28, 2021 at 1:36 am Dos is not really an OS when compared to Linux, it's more like bootloader for games :-D There are actualy a games which can be loaded directly from GRUB instead of Linux, so i guess comparing DOS to GRUB would be a better comparison... Report comment Reply 1. Aadu says: July 28, 2021 at 7:24 am The two last letters in DOS have a quite specific meaning. Report comment Reply 1. Ragnarok700 says: July 28, 2021 at 8:24 am :rofl: & :+1: Report comment Reply 2. jonmayo says: July 28, 2021 at 9:40 am you forgot the "D", which narrows the context for the "OS" part. DOS is a system only for operating your disks. It's mostly a file system driver rather than a full blown machine abstraction that Unix or VMS offers. That said, DOS was more advanced than earlier environments that had to be recompiled depending on how much RAM a machine was configured with. Dynamic memory allocation really is more convenient than fixed memory maps. Report comment Reply 2. Robert says: July 28, 2021 at 8:48 am What?!? DOS is the real OS (wanna burn all the cycles (almost) uniterrupted? write directly to ports? run 9-bit RS232 comm as god intended? ... it's all yours). Linux, Windows, ... just bloatware. Report comment Reply 1. Harvie.CZ says: July 28, 2021 at 11:00 am I am just saying that GRUB can perhaps do more stuff than DOS. Neither have multitasking, both can load and execute binaries from disk and GRUB even have software RAID and supports several filesystems which is something you don't have on DOS. But yes, there is even way to chainload Linux from DOS. So DOS is about as complex as bootloader of Linux :-) Report comment Reply 3. Steve S. says: July 28, 2021 at 10:28 am DOS - Disk "Operating System" Kids these days can't even spell DOS let alone know what it is. Report comment Reply 2. deshipu says: July 28, 2021 at 1:36 am Every time I look at some of those old programs, I can't help thinking how well designed, clean and responsive they were, despite the technology limitations. Report comment Reply 1. jpa says: July 28, 2021 at 1:43 am Maybe exactly because of the technology limitations. Whenever I wrote something for DOS, it became clean and simple because making complex stuff was so much effort. Now just a few quick library imports get millions of lines of complex code :) Report comment Reply 1. deshipu says: July 28, 2021 at 1:48 am But you can literally see the menus being redrawn, because the graphic cards is so slow, and yet not a single bit of user input is lost. Compare with Mozilla Thunderbird, which freezes for minutes every time you tell it to do anything. Report comment Reply 1. x3n0x says: July 28, 2021 at 7:37 am The first thing wrong with that statement is 'Mozilla Thunderbird'. I ditched Mozilla long ago because of the huge pile of bloat it became. When it first came out, it was great, you could install it by unzipping some files, but over the years, it has become a huge pile of bloat. I guess, on that note, what piece of modern software hasent? Oh well. Sometimes I find myself longing for a simpler time... Report comment Reply 3. Harvie.CZ says: July 28, 2021 at 2:06 am Does it run DOS versions of Doom and GTA? Report comment Reply 4. vib says: July 28, 2021 at 2:28 am Kudos to Fabrizio and thanks him for his excellent FabGL library ! Report comment Reply 5. Feinfinger (super villain in nostalgy mode) says: July 28, 2021 at 3:27 am Does it run MINIX1? Report comment Reply 1. Lee says: July 28, 2021 at 3:46 am What about XENIX? Report comment Reply 1. jonmayo says: July 28, 2021 at 9:41 am or MWC Coherent ? Report comment Reply 6. Mike says: July 28, 2021 at 5:06 am Great job!!! Very impressive. Report comment Reply 1. Mike says: July 28, 2021 at 7:16 am Add Turbo Basic, it is better than qbasic. Report comment Reply 7. CMH62 says: July 28, 2021 at 5:48 am "Leisure Suit Larry in The Land of the Lounge Lizards" on an ESP32. Now that would beat all! Report comment Reply 1. Anonymous says: July 28, 2021 at 10:57 am Lol... "beat"... we see what you did there. Report comment Reply 8. H. Hubert Dreiling says: July 28, 2021 at 7:06 am Really great. Since I do not have an VGA Monitor anymore, i have to use an SPI Display. Since I am not a really friend of Arduino, i have to learn a lot before i can change the video output. Report comment Reply 9. Miroslav says: July 28, 2021 at 8:40 am Amazing! Can you do port access (INP and OUT) from QBasic or DOS directly? Probably not :) Report comment Reply 10. Steve L says: July 28, 2021 at 11:28 am I ordered one of the common LiliGo FAB-GL boards to do this with (it made economic sense not to DIY it), and I THINK that the boards for sale don't have PSRAM, which this particular emulation needs. So, I THINK that I will have to desolder the ESP32 and put a PSRAM-equipped ESP32 on it. Does anyone know if the LiliGo board stock has PSRAM? I don't think so...in any event I ordered an ESP32 with PSRAM. Report comment Reply Leave a Reply Cancel 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. Search Search for: [ ] [Search] Never miss a hack Follow on facebook Follow on twitter Follow on youtube Follow on rss Contact us Subscribe [ ] [ ] [Subscribe] If you missed it * [WISE_artis] More Than Just Hubble: The Space Observatories Filling The Skies Today And Tomorrow 3 Comments * [tCam-Mini-] Hands-On Review: TCam-Mini WiFi Thermal Imager 24 Comments * [RNA-thumb] RNA Therapeutics And Fighting Diseases By Working With The Immune System 70 Comments * [curtiss-NC] Who Flew Across The Atlantic First? The Airborne Boats Of 1919 42 Comments * [RSI2] Avoiding Repetitive Stress Injury: Invest In Yourself Now, Or Pay Later 42 Comments More from this category Our Columns * [ModAux_thu] How To Modify Your Car Stereo For Bluetooth Or Aux-In 4 Comments * [Keebin-thu] Keebin' With Kristina: The One With The Mad Model M 11 Comments * [LinuxFu-th] Linux Fu: Superpowers For Mere Mortals 26 Comments * [links-thum] Hackaday Links: July 25, 2021 10 Comments * [flux-thumb] Learning To Desolder Gracefully 39 Comments More from this category Search Search for: [ ] [Search] Never miss a hack Follow on facebook Follow on twitter Follow on youtube Follow on rss Contact us Subscribe [ ] [ ] [Subscribe] If you missed it * [WISE_artis] More Than Just Hubble: The Space Observatories Filling The Skies Today And Tomorrow 3 Comments * [tCam-Mini-] Hands-On Review: TCam-Mini WiFi Thermal Imager 24 Comments * [RNA-thumb] RNA Therapeutics And Fighting Diseases By Working With The Immune System 70 Comments * [curtiss-NC] Who Flew Across The Atlantic First? The Airborne Boats Of 1919 42 Comments * [RSI2] Avoiding Repetitive Stress Injury: Invest In Yourself Now, Or Pay Later 42 Comments More from this category Categories Categories[Select Category ] Our Columns * [ModAux_thu] How To Modify Your Car Stereo For Bluetooth Or Aux-In 4 Comments * [Keebin-thu] Keebin' With Kristina: The One With The Mad Model M 11 Comments * [LinuxFu-th] Linux Fu: Superpowers For Mere Mortals 26 Comments * [links-thum] Hackaday Links: July 25, 2021 10 Comments * [flux-thumb] Learning To Desolder Gracefully 39 Comments More from this category Recent comments * chango on It Takes A Lot To Build A Hacker's Laptop * Michael Black on Black And White TV Was Hiding A Special Input Board * Dude on It Takes A Lot To Build A Hacker's Laptop * uda-thortit on Swamp Gas Will Get You Home * Mike on Black And White TV Was Hiding A Special Input Board * Nikolai on How To Modify Your Car Stereo For Bluetooth Or Aux-In * Steve L on Emulating The IBM PC On An ESP32 * andarb on Rooting The Atari VCS 800 * Glenn Taylor on Building A Stump Grinder From The Ground Up * kota//Kaet - Channel Nyan Mews [?] (@dakotathekat) on Workshop Tools Are Available In First-Class Now on Hackaday.io * deShipu has added a new log for Kamina Keyboard. * projecter wrote a comment on diy electric one-wheeled vehicle. * Pedro Barbero has updated the project titled PCB for HandWired Keyboards. * stefan.schnitzer liked ES-200 Electric Scooter Unlocker. * projecter has updated the project titled Arduino Oled Picture Frame. * Aaron liked AND!XOR DC29 Badge. * mrselam liked 3D Printed Robotic Actuator. * projecter has updated components for the project titled Color Oled Picture Frame. * projecter has added details to Color Oled Picture Frame. * Tim has updated the project titled Evaluating Transistors for Bipolar Logic (RTL). Logo * Home * Blog * Hackaday.io * Tindie * Hackaday Prize * Video * Submit A Tip * About * Contact Us Never miss a hack Follow on facebook Follow on twitter Follow on youtube Follow on rss Contact us Subscribe to Newsletter [ ] [ ] [Subscribe] Copyright (c) 2021 | Hackaday, Hack A Day, and the Skull and Wrenches Logo are Trademarks of Hackaday.com | Privacy Policy | Terms of Service Powered by WordPress VIP [impression] [close] By using our website and services, you expressly agree to the placement of our performance, functionality and advertising cookies. Learn more OK