Mattel Aquarius: All Points In The Wrong Stat
Christ almighty, I have to write a new intro to this disaster of a microcomputer, as the old one was very Cohost-specific. And I just absolutely HATE this computer. I really, really do. It is an unredeemable piece of shit. There is no reason for it to exist. It does nothing correctly... and then new information came to light. And this information contains the one actual thing it did right. And now I have to go through all of this again to convert the Markdown into HTML and BBCode... and then de-BBCode it for the standalone HTML version.
But it's time. I've put this off long enough. It's time to talk about...

...you.
EDUCATION
YOURSELF
Episode 003
Part 1: Mattel Gets Suckered By Their Partner
Mattel had a very important partner over in Hong Kong. This was Radofin, and they were the company that manufactured the Intellivision for Mattel. They had come up with some designs for a home microcomputer of their own, and pitched them to Mattel to turn into actual products to sell. This was a rather unique opportunity for Mattel, because their previous attempt at making a home microcomputer (which will get its own piece in the future) crashed and burned rather violently, so to have something that was pretty much ready to go into production seemed like a slam dunk way to restore consumer faith.
Instead they got the Aquarius. The majority of people at Mattel actually hated the thing as much as the press. It was cheap, but that was its only strong point. Even though it had a Zilog Z80 clocked at 3.5MHz, it only had a paltry 4KB of onboard RAM to work with, with a copy of Microsoft BASIC stored in the 8K ROM. The venerable General Instruments AY-3-8910 sound chip was an optional add-on because the computer only had a single-channel beeper. The graphics were handled by a chip that was only designed for use with Teletext, so it had no capabilities for things like sprites or user-programmable graphics. You needed to purchase an add-on in order to actually use add-ons because the computer only had one serial port on the back for using a cassette recorder for storing data.
However the tape storage interface was so bad, you would be lucky if it properly saved or loaded your data. Which meant that the most reliable way of loading a program was to manually type it in on the worst chiclet keyboard ever made. This computer would have been... average?? ...if it were released in the late 70s like the Mattel programmers joked about. But no, this thing released in June of 1983, competing against the TI-99/4A and the Commodore VIC-20, while also being weaker than the older Atari 800 that was still on shelves with a larger library of software and hardware. Mattel tried to keep it alive with a bunch of mediocre ports of Intellivision games, but pulled the plug on the platform in October.

Radofin did attempt to go it alone with an improved version called the Aquarius II. The keyboard is replaced with a non-chiclet design, the ROM is expanded to 12K to hold a more robust version of Microsoft BASIC, the onboard RAM was increased to 20K, and created a version of LOGO to work with the computer. Unfortunately, the damage was done, and it didn't stand a chance, as all the other shortcomings of the original model persisted.
But sadly, this isn't the end of the tale. A common theme with vintage microcomputers in this day is to improve storing and loading data, generally with some form of removable flash media like an SD Card. Many systems have had carts or peripherals to handle this for years now. But it took until late 2022 for the Aquarius to get one, because they... they got something right. Oh my God.
Part 2: ALL IN DEFENSE!
There is so much they did wrong with this thing. Expandability is locked behind an extra purchase. The cassette interface is unreliable. There's barely any RAM. The keyboard is nasty to type on. The character set does nothing to alleviate the lack of proper graphic support. And it's because the developers put all their actual effort into one point: security.
Most likely, when Radofin was pitching this to Mattel, they made sure to highlight this one key detail. Being able to prevent third-party developers from creating content for the computer without going through Mattel must have really sold the system to the top brass. This means that if someone else wants to make a game for the computer, they have to go through Mattel, and thus Mattel can get a chunk of sales. Tactics like this were known to exist with Coleco and their computer, the Adam, so it wouldn't be a stretch to see Mattel attempting the same thing here.
So how does the Aquarius protect itself? Well, there is a PLA (Programmable Logic Array) that sits between the Z80 and the data bus. This PLA "encrypts" data going out of the CPU to RAM, and "decrypts" data going into the CPU from RAM. Though, back then you didn't need much to "encrypt", and in this case it's just an XOR masking operation. Thing is... the "key" (which is the mask itself) is not hardcoded. It is randomly generated at startup. So, okay, it's using some sort of pseudo-random number generator, you'd say. Except it doesn't.
The Aquarius uses a source of true randomness to generate the XOR mask.
I can already hear you screaming at your screen. "Techo! What the fuck?! True randomness is HARD! How can a shitheap like the Aquarius pull off something that requires huge, physical contraptions like a goddamned wall of lava lamps?!" Well, at startup, there is one limited source available: uninitialized DRAM. In this state, the contents of memory are undefined, because the capacitors within have undefined charge. Once you initialize it to a value, you know exactly what it will be. But if you try to read it before it is initialized? Well, whatever the state it is in, it tries to be interpreted as something, and the value you get back is completely unexpected. Thus, this is actually a source of true randomness.
So how was this defeated? A guy by the name of Nick Bild made some homebrew peripherals for the Aquarius, including an SD Card loader and RAM expansion. But he had to first defeat this protection. He ultimately came up with a 16-line BASIC program that has to be manually typed in by hand every time the SD Card loader is to be used that backs up the stack and system variables to a place where they won't be scrambled, then force-writing zero to the PLA for its XOR mask, then reloading the stack and system variables. That is crazy and bullshit. What the actual fuck. I hate this computer!
NEXT TIME ON EDUCATION YOURSELF
Probably something involving Motorola. There's some neat shit they did.