Posts

Decoding the NEC V20 Microcode

Image
reenigne's decoding of the 8088 microcode in 2020 opened the doors for extremely accurate emulation of the 8088 CPU.   Although I had added support for the NEC V20 in MartyPC, the V20 core was not cycle-accurate in terms of the V20's actual timings.  It was an 8088 in a V20's clothing - a copy-paste of my 8088 core with V20 instructions tacked on. This was not an ideal case, but the prospect of making my V20 core cycle-exact without the microcode seemed like it might be a discouraging slog of trial and error. So why not get the microcode, then? I recently commissioned InfoSecDJ  to take die photography of an NEC V20 CPU (actually a second-source V20 fabricated by Sharp, but a V20 nonetheless). He did an excellent job. The NEC V20 CPU die - InfoSecDJ This photomosaic is extremely high resolution - 5.6 Gigapixels to be exact, an astonishing 70478x80672 resolution - too large to even fit in the JPEG image format! You can see the entire thing at full resolution  he...

Executable Emoji

Image
Warning: This page contains hundreds of emoji. If you're using a screen reader, be sure it doesn't read them all out loud. A whole bunch of emoji. What could they mean? This particular post comes out of left field a bit. I was playing around with a web application I had made - an online disassembler for the x86  - when I noticed that emoji were being encoded into the url.  I pasted a goat emoji,  🐐   and I noticed the encoding  %F0%9F%90%90 . Now, if you're familiar with x86 assembly language at all, hexadecimal 90h is probably familiar to you. It's the opcode for a null operation or NOP . I had a brief nerd chuckle over the thought that goats were the NOP s of emoji, but then I got curious. F0h on the 8088 is the LOCK prefix. This prefix is generally used to coordinate exclusive bus access with a coprocessor such as the 8087, but otherwise does nothing for most instructions on the 8088 and is ignored (this would change on later Intel CPUs). That leaves...

60fps Video on a CGA? - The GlyphBlaster

Image
GlyphBlaster The GlyphBlaster in action - is that a cat in text mode??  There's a certain genre of retro-hardware hack that everyone recognizes is technically cheating, but has a certain audaciousness to it that merits respect regardless. I hope that this one falls into that category! A few years ago, I was impressed by TheRasteri's PiPU project - basically, a Raspberry Pi-powered mapper for the NES. Of course, it can play DOOM: The Raspberry Pi Pico and its RP2040 microcontroller have reinvigorated the retro-computing hobby quite a bit, enabling such devices as the PicoGUS , PicoMEM , PicoIDE , and most recently, the OneROM .  It was the latter device that got me thinking. I recently used a OneROM to replace the font ROM on my CGA card, and subsequently I was able to replace IBM's classic 8x8 font with a custom one. Here's Frogblock by Polyducks: The "Frogblock" font loaded onto a OneROM replacing the CGA's font ROM The programmability of the OneROM intr...