Bootstrapped and Beamed In: Connecting an Apple II //c to My M2 MacBook (Part 1)

#tech

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:

  1. USB-C to USB-A adapter → plugs into the Mac.
  2. USB-A to Serial Adapter (mine uses a DE-9 connector).
  3. 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:

  1. Unzipped the ADTPro-2.1.0 folder.
  2. Noticed the lib/ folder has ADTPro-2.1.0.jar, and a jssc-2.9.2.jar in its own subfolder.
  3. Renamed and copied jssc-2.9.2.jar into the lib folder as jssc.jar so the app could find it:
cp lib/jssc/jssc-2.9.2.jar lib/jssc.jar
  1. 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 native libjssc.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

~ ben.tankersley ⌁
echo "last note sent."
cd /blogs/the-wall

💬 Comments