Maxing Out Your MacIntosh With A 4 MB Memory Stick Kit

One fun aspect of retrocomputing is that you get to max out all aspects of these systems without having to take out a bank loan, as tended to be the case when these systems were new. Less fun is that decades after systems like the Apple MacIntosh SE/30 were last sold, the 30-pin SIMMs that form the expandable RAM for these systems has become rather scarce. This has led many to make their own SIMM PCBs, including [Kay Koba] with a PCB for 4 MB SIMMs along with information on which memory and parity ICs are suitable for these SIMMs.

For systems like the MacIntosh SE/30 with 8 30-pin memory slots, the maximum capacity is 128 MB, but this comes with many gotchas due to its ROM being ’32-bit dirty’. While this can be circumvented by swapping in a ROM from a later MacIntosh variant, the less invasive way is to enable the MODE32 system extension and install eight 4 MB SIMMs for a total of 32 MB RAM. RAM chips for such 30-pin SIMMs can be scavenged from the far more common 72-pin SIMMs, along with any old new stock one may come across.

These 4 MB SIMM PCBs are offered for sale by [Kay] with optionally the SMD components (capacitors, resistors and LED) included in the package. The original PCB card edge design is credited to work by [Zane Kaminski] whose GitHub profile also leads to e.g. this 30-pin SIMM project.

Have you modded your MacIntosh or other retro system yet to the maximum RAM and storage limits?

An assortment of MemoryStick cards and devices, some of them, arguably cursed, like a MemoryStick-slot-connected camera.

Hacker Challenges MemoryStick To A Fight And Wins

It’s amazing when a skilled hacker reverse-engineers a proprietary format and shares the nitty-gritty with everyone. Today is a day when we get one such write-up – about MemoryStick. It is one of those proprietary formats, a staple of Sony equipment, these SD-card-like storage devices were evidently designed to help pad Sony’s pockets, as we can see from the tight lock-in and inflated prices. As such, this format has always remained unapproachable to hackers. No more – [Dmitry Grinberg] is here with an extensive breakdown of MemoryStick protocol and internals.

If you ever want to read about a protocol that is not exactly sanely designed, from physical layer quirks to things like inexplicable large differences between MemoryStick and MemoryStick Pro, this will be an entertaining read for hackers of all calibers. Dmitry doesn’t just describe the bad parts of the design, however, as much as that rant is entertaining to read – most of the page is taken by register summaries, struct descriptions and insights, the substance about MemoryStick that we never got.

One sentence is taken to link to a related side project of [Dmitry] that’s a rabbithole on its own – he has binary patched MemoryStick drivers for PalmOS to add MemoryStick Pro support to some of the Sony Clie handhelds. Given the aforementioned differences between non-Pro and Pro standards, it’s a monumental undertaking for a device older than some of this site’s readers, and we can’t help but be impressed.

To finish the write-up off, [Dmitry] shares with us some MemoryStick bit-banging examples for the STM32. Anyone who ever wanted to approach MemoryStick, be it for making converter adapters to revive old tech, data recovery or preservation purposes, or simply hacker curiosity, now can feel a bit less alone in their efforts.

We are glad to see such great hacking on the MemoryStick front – it’s much needed, to the point where our only article mentioning MemoryStick is about avoiding use of the MemoryStick slot altogether. [Dmitry] is just the right person for reverse-engineering jobs like this, with extensive reverse-engineering history we’ve been keeping track of – his recent reverse-engineering journey of an unknown microcontroller in cheap E-Ink devices is to behold.

USB Stick Hides Large Language Model

Large language models (LLMs) are all the rage in the generative AI world these days, with the truly large ones like GPT, LLaMA, and others using tens or even hundreds of billions of parameters to churn out their text-based responses. These typically require glacier-melting amounts of computing hardware, but the “large” in “large language models” doesn’t really need to be that big for there to be a functional, useful model. LLMs designed for limited hardware or consumer-grade PCs are available now as well, but [Binh] wanted something even smaller and more portable, so he put an LLM on a USB stick.

This USB stick isn’t just a jump drive with a bit of memory on it, though. Inside the custom 3D printed case is a Raspberry Pi Zero W running llama.cpp, a lightweight, high-performance version of LLaMA. Getting it on this Pi wasn’t straightforward at all, though, as the latest version of llama.cpp is meant for ARMv8 and this particular Pi was running the ARMv6 instruction set. That meant that [Binh] needed to change the source code to remove the optimizations for the more modern ARM machines, but with a week’s worth of effort spent on it he finally got the model on the older Raspberry Pi.

Getting the model to run was just one part of this project. The rest of the build was ensuring that the LLM could run on any computer without drivers and be relatively simple to use. By setting up the USB device as a composite device which presents a filesystem to the host computer, all a user has to do to interact with the LLM is to create an empty text file with a filename, and the LLM will automatically fill the file with generated text. While it’s not blindingly fast, [Binh] believes this is the first plug-and-play USB-based LLM, and we’d have to agree. It’s not the least powerful computer to ever run an LLM, though. That honor goes to this project which is able to cram one on an ESP32.

Continue reading “USB Stick Hides Large Language Model”

Linux Fu: Reading Your Memory’s Memory

Linux users have a lot of software to be proud of. However, there is the occasional Windows program that does something you’d really like to do and it just won’t run. This is especially true of low-level system programs. If you want to poke around your CPU and memory, for example, there are tons of programs for that under Windows. There are a few for Linux, but they aren’t always as complete or handy. Recently, I had half the memory in my main desktop fail and I wanted to poke around in the system. In particular, I wanted to read the information encoded in the memory chips configuration EEPROM. Should be easy, right? You’d think.

Not Really Easy

One nice tool a lot of Windows users have is CPU-Z. Of course, it doesn’t run on Linux, but there is a really nice imitator called CPU-X. You can probably install it from your repositories. However, the GitHub page is a nice stop if for no other reason than to enjoy the user name [TheTumultuousUnicornOfDarkness]. The program has a gtk or an ncurses interface. You don’t need to run it as root, but if you press the “start daemon” button and authenticate, you can see some extra information, including a tab for memory.

Continue reading “Linux Fu: Reading Your Memory’s Memory”

Showing the end result - a Defender machine copy in all its glory, with a colourful front panel with joysticks.

Defender Arcade Rebuilt To Settle A Childhood Memory

[Jason Winfield] had a nemesis: the Defender arcade machine. Having put quite a number of coins into one during his childhood, he’s since found himself as a seasoned maker, and decided to hold a rematch on his own terms. For this, he’s recreated the machine from scratch, building it around the guts of a Dell laptop, and he tells us the story what it took to build a new Defender in this day and age.

Defender was a peculiar machine — it was in cocktail table format, unlike many other arcade machines of that period. From pictures, he’s redesigned the whole thing in Fusion 360, in a way more desk-friendly format, but just as fancy looking as before.

As for the laptop, gutting it for its mainboard, screen, and speakers was a surprisingly painless procedure — everything booted up first try. A few board-fitted brackets and a swap from a HDD to a USB flashdrive for the OS later, the electronics were ready. As he was redesigning the entire arcade machine anyway, the new design control panel was also trimmed down for ease of use, while preserving the original colorful look.

All in all, an impressive build from [Jason]. After all was set and done, we don’t doubt that he went on to, let’s say, settle some old scores. It’s not the first time we see a desktop-sized arcade cabinet, and you gotta admire the skills making such a machine smaller while sticking to the old-timey aesthetic! Or, perhaps, would you like a cabinet that’s more subtle?

Continue reading Defender Arcade Rebuilt To Settle A Childhood Memory”

Modernizing C Arrays For Greater Memory Safety

Lately, there has been a push for people to stop using programming languages that don’t promote memory safety. But as we still haven’t seen the death of some languages that were born in the early 1960s, we don’t think there will be much success in replacing the tremendous amount of software that uses said “unsafe” languages.

That doesn’t mean it’s a hopeless cause, though. [Kees Cook] recently posted how modern C99 compilers offer features to help create safer arrays, and he outlines how you can take advantage of these features. Turns out, it is generally easy to do, and if you get errors, they probably point out unexpected behavior in your original code, so that’s a plus.

We don’t think there’s anything wrong with C and C++ if you use them as you should. Electrical outlets are useful until you stick a fork in one. So don’t stick a fork in one. We really liked the recent headline we saw from [Sarah Butcher]: “If you can’t write safe C++ code, it’s because you can’t write C++.” [Cook’s] post makes a similar argument.  C has advanced quite a bit and the fact that 30-year-old code doesn’t use these new features isn’t a good excuse to give up on C.

Continue reading “Modernizing C Arrays For Greater Memory Safety”

Two circuit boards connected with wires

Glow In The Dark Computer Memory Illuminates The Fundamentals

Computer memory has taken on many forms over the years, from mercury-based delay-line tubes to handwoven magnetic core. These days, volatile storage using semiconductors has become ubiquitous with computing, but what if there was a better way? [Michael Kohn] has been working on a new standard for computer memory that uses glow in the dark stickers.

Clearly we jest, however we’re still mighty impressed by the demonstration. Eight delightful star-shaped phosphorescent stickers represent eight bits of memory, totaling one byte. The glow in the dark material is stuck to the inside of short cylinders, each of which contains a white LED and a phototransistor. The memory array is wired up to an iceFUN FPGA board, which is then connected via level shifters to a Western Design Center MENSCH single board computer.

Continue reading “Glow In The Dark Computer Memory Illuminates The Fundamentals”