Xcc700: Self-Hosted C Compiler For The ESP32/Xtensa

With two cores at 240 MHz and about 8.5 MB of non-banked RAM if you’re using the right ESP32-S3 version, this MCU seems at least in terms of specifications to be quite the mini PC. Obviously this means that it should be capable of self-hosting its compiler, which is exactly what [Valentyn Danylchuk] did with the xcc700 C compiler project.

Targeting the Xtensa Lx7 ISA of the ESP32-S3, this is a minimal C compiler that outputs relocatable ELF binaries. These binaries can subsequently be run with for example the ESP-IDF-based elf_loader component. Obviously, this is best done on an ESP32 platform that has PSRAM, unless your binary fits within the few hundred kB that’s left after all the housekeeping and communication stacks are loaded.

The xcc700 compiler is currently very minimalistic, omitting more complex loop types as well as long and floating point types, for starters. There’s no optimization of the final code either, but considering that it’s 700 lines of code just for a PoC, there seems to be still plenty of room for improvement.

Microsoft’s WebTV Is Being Revived By Fans

During the 1990s, everyone wanted to surf the information super-highway — also known as the World Wide Web or just ‘Internet’ — but not everyone was interested in getting one of those newfangled personal computers when they already had a perfect good television set. This opened a market for TV-connected thin clients that could browse the web with a much lower entry fee, with the WebTV service being launched in 1996. Bought by Microsoft in 1997 and renamed MSN TV, it lasted until 2013. Yet rather than this being the end, the service is now being revived by members of the community through the WebTV Redialed project.

The DreamPi adds dial-up support back to old hardware.
The DreamPi adds dial-up support back to old hardware.

The project, which was recently featured in a video by [MattKC], replaces the original back-end services that the thin clients connected to via their dial-up modems, with the first revision using a proprietary protocol. The later and much more powerful MSN TV 2 devices relied on a standard HTTP-based protocol running on Microsoft’s Internet Information Services (IIS) web server and Windows.

What’s interesting about this new project is that it allows you to not just reconnect your vintage WebTV/MSN TV box, but also use a Windows-based viewer and more. What difficulty level you pick depends on the chosen hardware and connection method. For example, you can pair the Raspberry Pi with a USB modem to get online thanks to the DeamPi project.

Interestingly, DreamPi was created to get the Sega Dreamcast back online, with said console also having its own WebTV port that can be revived this way. Just in case you really want to get the full Dreamcast experience.

Continue reading “Microsoft’s WebTV Is Being Revived By Fans”

Playing A Game Of Linux On Your Sony Playstation 2

Until the 2000s, game consoles existed primarily to bring a bit of the gaming arcade experience to homes, providing graphical feats that the average home computer would struggle to emulate. By the 2000s this changed, along with the idea of running desktop applications on gaming console for some reason. Hence we got Linux for the PlayStation 2, targeting its MIPS R5900 CPU and custom GPU. Unlike these days where game consoles are reskinned gaming PCs, this required some real effort, as well as a veritable stack of accessories, as demonstrated by [Action Retro] in a recent video.

Linux on the PlayStation 2 was a bit of a rare beast, as it required not only the optional HDD and a compatible ‘fat’ PS2, but also an Ethernet adapter, VGA adapter and a dedicated 8 MB memory card along with a keyboard and mouse. PS2 Linux users were also not free to do what they wanted, with e.g. ripping PS2 game discs disallowed, but you could make your own games. All of which had to fit within the PS2’s meagre 32 MB of RAM.

Continue reading “Playing A Game Of Linux On Your Sony Playstation 2”

The Rise Of Fake Casio Scientific Calculators

Scientific calculators are an amazing invention that take pocket calculators from being merely basic arithmetic machines to being pocket computers that can handle everything from statistics to algebra. That said, there are a few layers of scientific calculators, starting with those aimed at students. This is where Casio is very popular, especially because it uses traditional algebraic notation (VPAM) that follows the written style, rather than the reverse-polish notation (RPN) of HP and others. However, much like retro Casio wristwatches, it appears that these Casio calculators are now being (poorly) faked, as explained by [Another Roof] on YouTube.

The advanced fx-991 models are updated every few years, with the letters following the model indicating the year, such as fx-991EX standing for the 2015-released model. This was the model that got purchased online and which turned out to be fake. While the fx-991CW is newer, it changes the entire interface and is rightfully scolded in the video. Arguably this makes it the worst Casio scientific calculator in history.

Continue reading “The Rise Of Fake Casio Scientific Calculators”

Only Known Copy Of UNIX V4 Recovered From Tape

UNIX version 4 is quite special on account of being the first UNIX to be written in C instead of PDP-11 ASM, but it was also considered to have been lost to the ravages of time. Joyfully, we can report that the more than fifty year old magnetic tape that was recently discovered in a University of Utah storeroom did in fact contain the UNIX v4 source code. As reported by Tom’s Hardware, [Al Kossow] of Bitsavers did the recovery by passing the raw flux data from the tape read head through the ReadTape program to reconstruct the stored data.

Since the tape was so old there was no telling how much of the data would still be intact, but fortunately it turned out that the tape was not only largely empty, but the data that was on it was in good nick. You can find the recovered files here, along with a README, with Archive.org hosting the multi-GB raw tape data. The recovered data includes the tape file in SimH format and the filesystem

Suffice it to say that you will not run UNIX v4 on anything other than a PDP-11 system or emulated equivalent, but if you want to run its modern successors in the form of BSD Unix, you can always give FreeBSD a shot.

The Birotary Engine Explained

Everyone generally knows about piston and rotary engines, with many a flamewar having been waged over the pros and cons of each design. The “correct” answer is thus to combine both into a single engine design. The resulting birotary engine comes courtesy of Czech company [Knob Engines] which makes their special engine for the aviation market. The workings of this engine and why it makes perfect sense for smaller airplanes is explained by [driving 4 answers] in a recent video.

Naturally, it’s at best confusing to call an engine a “rotary”, as this covers many types of engines. One could consider the birotary engine perhaps a cross between the traditional rotary piston engines that powered early aircraft and the Wankel rotary engines that would appear much later. The fact that both the housing and the crankshaft rotate reinforces this notion of a piston rotary, while it keeps the fixed ports and glow plugs on the housing that is typical of a Wankel-style engine. Having both the housing and crankshaft rotate is also why it’s called the ‘birotary’.

The claimed benefits of this design include a small size, low vibrations, reduced gyroscopic effect due to counter-rotation, no apex seals, and less mechanically complex than a piston engine. This comes at the cost of a very short stroke length and thus the need for a relatively high RPM and slow transition between power output levels, but those disadvantages are why small airplanes and UAVs are being targeted.

Continue reading “The Birotary Engine Explained”

Create Aerated Concrete Using Xanthan Gum And Dishwashing Liquid

To make aerated concrete, add a foam-forming agent and stir in a significant amount of air. This serves to make the concrete significantly lighter, better insulating, and more resilient to fire. Making it can however be a bit of an issue, often requiring ingredients that aren’t purchased at the average DIY store. This is where [NightHawkInLight]’s method seems rather promising, requiring effectively only xanthan gum and dishwashing detergent.

For the small-scale demonstration, 15 grams of the thickening agent xanthan gum is mixed with enough alcohol to create a slurry. To this 60 mL of the detergent and 1 liter of water is added and mixed until the xanthan gum has absorbed all the moisture, which takes about 5-10 minutes. This mixture is then added to Portland cement with two parts cement to one part xanthan gum/detergent mixture and mixed for a while.

Of importance here is that this mixture will keep expanding in volume while mixing, so you have to have to keep an eye on the amount of air relative to concrete, as this will determine the strength and other properties of the final aerated concrete. If you continue past a certain point you will even create open-celled aerated concrete that’s completely porous, so you have to know what kind of concrete you want before you start mixing up a big batch.

Continue reading “Create Aerated Concrete Using Xanthan Gum And Dishwashing Liquid”