Bootstrapped and Beamed In: Connecting an Apple //c to My M2 MacBook (Part 1)
A CTRL+Strum Blog by Ben the Tank
You ever just stare at a glowing green screen and think:
"I'm gonna make this little dinosaur talk to my spaceship of a laptop."
Yeah… same.
So this past weekend, I went full retro-computer whisperer and tried to get my 1984 Apple //c linked up to my M2 Pro MacBook using a little tool called ADTPro. Spoiler: it worked. But not before it kicked my ass a few times.
⚡️The Mission
The goal was simple:
Transfer programs (games, utilities, etc.) from my Mac to my Apple //c via serial connection using ADTPro — an open-source app that speaks the Apple II’s language. It's basically magic for vintage nerds.
The twist?
Modern Macs don’t have serial ports. Apple //c doesn’t speak USB. And ADTPro isn’t exactly plug-and-play on an M2 Mac.
So... I went to war.
🔌 The Cable Setup (a Frankenstein Build)
Here's the daisy chain I built:
- USB-C to USB-A adapter → plugs into the Mac.
- USB-A to Serial Adapter (mine uses a DE-9 connector).
- DIN-5 to DE-9 Null Modem Cable → This is the one for the Apple //c modem port. (Still waiting on this piece to finish the job)
Without the DIN-5 serial cable, I couldn’t transfer disks yet — but I wanted to get the software prepped so when it comes in, it’s GO TIME.
🧰 Installing ADTPro (the Pain Begins)
ADTPro is a Java-based app. Sounds easy, right?
Nah.
I downloaded the ADTPro 2.1.0 .zip and opened it up. Inside was a .jar
file — basically a Java app package.
Problem 1: macOS didn’t want to open it because it’s unsigned.
Fix: I right-clicked and selected "Open Anyway" via System Settings → Privacy & Security.
Cool. So now the app was showing a GUI... but then it crashed.
Problem 2: Java couldn't find the serial library it needs (jssc
).
ADTPro depends on this lib to talk to USB-to-Serial adapters, and it wasn’t loading on my ARM Mac.
🧬 The Fix (a Nerd’s Odyssey)
Instead of quitting, I got surgical.
Here’s what I did:
- Unzipped the
ADTPro-2.1.0
folder. - Noticed the
lib/
folder hasADTPro-2.1.0.jar
, and ajssc-2.9.2.jar
in its own subfolder. - Renamed and copied
jssc-2.9.2.jar
into thelib
folder asjssc.jar
so the app could find it:
cp lib/jssc/jssc-2.9.2.jar lib/jssc.jar
- Ran the app manually using Terminal so I could pass the correct classpath:
java -cp "lib/*" org.adtpro.ADTPro
It launched.
But it still wouldn’t talk to the serial port...
🦴 One More Skeleton in the Closet
Problem 3: UnsatisfiedLinkError for libjssc.dylib
— the native binary that talks to hardware.
ADTPro shipped the Intel version, but I’m on ARM (uname -m
returned arm64
).
So I cracked open the JAR file:
jar xf lib/jssc.jar
And dug out the libjssc.dylib
file for macOS — hidden in the natives/osx_64
directory. I moved that into the lib/
folder manually:
cp temp/natives/osx_64/libjssc.dylib lib/
Then ran it again:
java -Djava.library.path=lib -cp "lib/*" org.adtpro.ADTPro
Boom. ADTPro was live.
💡 Takeaways (a.k.a. Retro Wisdom)
- macOS makes unsigned Java apps annoying to run. Push through it.
- ADTPro needs
jssc.jar
AND the nativelibjssc.dylib
in the right spots. - Terminal is your best friend for launching Java manually.
- Don’t assume a GUI app “just works” — sometimes you gotta dig into the jars like it’s archaeology.
- I’m on M2 Pro ARM, so I had to work around some Intel-native binaries.
🧠 What’s Next (Part 2 Teaser)
The final cable (DIN-5 null modem) is on the way. Once that arrives, I’ll:
- Connect the Apple //c’s modem port to my USB-to-Serial adapter
- Use ADTPro to bootstrap ProDOS
- Start transferring real games and programs over serial
Then, we’ll be playing Prince of Persia off an SD card… on hardware from the Reagan era.
And yes — I will film that moment.
✅ Status:
- ✅ ADTPro running on M2 Mac
- ✅ Serial adapter setup
- 🔜 DIN-5 cable install
- 🔜 Data transfer test
Stay tuned for Part 2 — where we actually beam files through time.
Until then...
echo "Loading music… tech… weird science..."
Peace out,
Ben
CTRL+Strum | Long-Haired Guitar Guy | Apple II Reanimator
💬 Comments