2014 Retrochallenge Winter Warmup, Retrochallenge

2014 Retrochallenge Winter Warmup – Initial Post

For the 2014 Retrochallenge Competition Winter Warmup, I have queued three projects with the goal of completing at least one of them. Each of the proposed tasks is meant to be easier than the previous so that if an impeneratrable barrier of possibility is encountered, I can don a parachute and jump to the next.

  • Have fun with Briel Computer’s A2MP3 card and Apple II RWTS – Not that the Apple world needs another way to transfer disk images to/from modern devices, but I would like to write a program for the Apple II that will transfer a disk image from a physical floppy to a USB thumb-drive mounted on an unmodified A2MP3 card. Then – there and back again.
  • Retro Super Bowl Sunday – Reverse engineer and alter the American football team/player data for the Apple II game program “Super Sunday” (currently contains teams from 1966-1981) to contain 2013 season teams, players, and statistics. Then simulate the upcoming Super Bowl XLVIII once the teams are decided.
  • Aquarius Tape Library – Create a personal cassette tape library of the games available for the tragic Mattel Aquarius home computer.
2013 Retrochallenge Summer Event, Retrochallenge

2013 Retrochallenge Summer Event – Post 03

(This is part three of the chronicle of my 2013 Retrochallenge Summer Event submission. Challenge #1 = Learn Italian using an Atari 400. Challenge #2 = Interface a Wii controller to an Apple IIe. The mediocrity starts here.)

Challenge #1, Snag #2

Several nights ago, I ran the first side of tape number one of the Atari Conversational Italian program without any problems. I thought the interleaving of recorded audio with the program was pretty dang cool.

Then I made a big mistake. I hit the rewind button and since it seemed like it was going to take a bit, I stepped outside the room. When I returned I found the tape had fully rewound but the drive motor was still spinning away. I assumed it would automatically click off when it ran out of tape.

I didn’t think much of it until I tried loading lesson two a few days later. The take-up spindle would rotate about half a turn then stop, struggle, rotate, and stop. I could imagine the tape getting tangled under the door. Again, I disassembled the tape drive. It appears to be a problem on the side of the drive I couldn’t access due to the stubborn philips screw I mentioned in a previous post.

So using the best fitting screwdriver I could find, I ended up mangling and stripping the screw. Hmm. My friend suggested using a Dremel tool to fashion a flathead notch on the screw head. Sounded like a good idea, however, I was worried about tiny metal filaments flying everywhere, so I grabbed a large refrigerator magnet and positioned it to catch the debris.

The magnet worked well. But the notch I made ended up getting stripped, too. Using the last bit of metal left on the screwhead, I cut a much deeper channel, praying there would be enough material to hold everything together. Finally it moved and I was able to gain access to the opposite side where the take-up spindle resides.

Atari 410 Part
Philips-to-Flathead Conversion using Dremel

After some inspection and spinning the pulleys around, I discovered I had flat-spotted a rubber cylinder that transfers rotation from the large flywheel to the take-up spindle. I thought about applying some sort of rubber or glue to the flat-spot to add some roundness but it seemed risky.

Atari 410 Part
That little flat-spot may not seem like much but it has Tourette’s and a drinking problem.

My solution was to wedge something small under the flat-spot, between the plastic spool and the rubber, hoping it would increase the radius just at that location. The “something small” ended up being a lead from a resistor that I’ve been flicking and spinning like a propeller instead of letting it live its life as intended, converting current to heat and such.

Atari 410 Part
Resistor: “I just don’t think you understand me.”
Atari 410 Part
Don’t laugh. It worked.

Thankfully I was able to get everything back together with no broken parts. Tested and it’s working again. Well, rewind doesn’t but I can flip the cassette over and fast-forward instead. I’ll live with that. Whew. Back in business. But I’ve lost a lot of time.

2013 Retrochallenge Summer Event, Retrochallenge

2013 Retrochallenge Summer Event – Post 02

(This is part two of the chronicle of my 2013 Retrochallenge Summer Event submission. Challenge #1 = Learn Italian using an Atari 400. Challenge #2 = Interface a Wii controller to an Apple IIe. The mediocrity starts here.)

Challenge #1, Snag #1

I loaded tape #1 into the cassette drive. The tape had been streamed to the end of side 1 by the previous owner so it needed to be rewound. I hit the “REWIND” button on the 410 tape drive and could hear a whirring noise within its bowels but no activity in the little plastic tape window. No spindle movement. This was supposed to be the easy challenge.

A quick search revealed the 410 is susceptible to belt failure. I dismantled the drive and found a very weak belt and the infamous 410 kink where the belt deformed around the very small drive wheel.

Atari-410-Belts-Annotated

After searching forums and eBay, I decided to contact Best Electronics and glad I did. Not only did they have a set of replacement belts for the 410 in stock, they also had several 800XL parts I’d been wanting for some time. And they were able to get it to me in just a few days.

So, I’ve replaced just the main drive belt. The small counter belt seemed fine and I stripped a stubborn Philips screw trying reach the third belt. Thankfully, replacing the main drive belt was sufficient to get the 410 working again.

Back in business.

2013 Retrochallenge Summer Event, Retrochallenge

2013 Retrochallenge Summer Event – Post 01

(This is part one of the chronicle of my 2013 Retrochallenge Summer Event submission. Challenge #1 = Learn Italian using an Atari 400. Challenge #2 = Interface a Wii controller to an Apple IIe. The mediocrity starts here.)

Atari-400-Setup The Setup

Challenge #1: Learn Italian using one of the Atari 400/800 Language Series programs. The program consists of five cassettes (ten sides) and a 30-page workbook / manual.

The system requirements are minimal for the Atari systems:

  • Atari 400 or 800 with at least 16K RAM
  • Atari 410 cassette drive
  • Atari BASIC
  • Atari CX4125 Conversational Italian

I’ll be using the very 400 I purchased as a teenager in the fall of 1983. By chance I spotted it on a clearance shelf at the Osco drug store in the local mall for about $130. I had been saving up for a Tandy/Radio Shack Color Computer but was only half way there. The find allowed me to get a computer that day rather than wait any longer. I didn’t know it at the time but my 400 did not include the BASIC ROM – it was sold separately. When I finally got home to plug it into the television, I was supremely disappointed to find all I could do was type in the memo pad that runs by default.

The 410 is a recent Ebay purchase. I wanted to get a cassette drive and opted for the 410 over, say, the later mode, the 1010, since it would be a good aesthetic match for the 1970’s browns and golds of the 400. To this point, I have not used or tested it. The Conversational Italian will be its maiden voyage.

The “Conversational Italian” software package was ordered from Ebay solely for use in this Retrochallenge. By luck, it arrived exactly on July 1. The condition was somewhat dusty/dirty. I cleaned up the vinyl binder with a damp cloth and, must say, it is now looking quite spry.

Early Multimedia

The Atari cassette system is a sorely overlooked marvel. One nice feature is the motor could be computer-controlled. The BASIC CLOAD command could load an initial program into memory and when executed, that program could call CLOAD again and load additional code. Clever use of this feature would allow BASIC programs to be loaded and executed in stages, performing some work, then allowing a second or third program to overwrite no-longer needed command lines. This meant you could get more than 16K of functionality on a 16K computer.

The other nice feature (and as far as I know this is unique to the Atari) is that data is stored to tape using only one of the stereo channels, and, optionally, recorded audio could co-exist on the other channel. This allows the system to play audio through the television speaker while data is loading – or – it could just play audio.

When I was young, the extent of my use of these features was limited to playing Big Country’s “The Crossing” while typing in code from Antic magazine. I didn’t have access to any commercial cassette titles and never experienced the full extent of this feature.

Examples of Early Multimedia

Here are a couple examples I found on YouTube of recorded audio being intermingled with data – you’ll want to skip the initial CLOAD to save your sanity:

Atari Kingdom (Skip to 1:04)

Atari Invitation to Programming (Skip to 2:17)

Model CX4125 Conversational Italian

The Conversational Italian package should take advantage of both features described above (incremental load and execution; and playing recorded audio through the television). If you want to take a peek, here is a scan of my manual/workbook.

Atari-Conversational-Italian-00.2
Link to PDF of manual
2013 Retrochallenge Summer Event, Retrochallenge

2013 Retrochallenge Summer Event – Initial Post

For my second Retrochallenge, I will be making the monumental mistake of undertaking two endeavors.

  1. Learn conversational Italian – using an Atari 400 computer, 410 cassette drive, and the Atari CX4125 software package. I will deem it a success if I can get the programs to run and complete the 5 cassette tape course.
  2. Interface a Nintendo Wii nunchuck controller to an Apple IIe via Arduino. It’ll be a success if I can control the helicopter in Dan Gorlin’s classic game Choplifter by raising, lowering, rotating, and tilting the controller.
2013 Retrochallenge Winter Warmup, Retrochallenge

2013 Retrochallenge Winter Warmup – Post 05

Testing (Part 2)

(This is part five of the chronicle of my 2013 Retrochallenge Winter Warmup submission. The mediocrity starts here.)

Having modified the initial design and successfully recorded a program from the Apple IIe to the iPhone, the next step was to wipe the Apple IIe clean and load the program back into memory. So I…

  • booted the Apple IIe to the BASIC prompt
  • connected the cable between the iPhone and IIe
  • launched the Voice Memo app on the iPhone (with the recording made earlier)
  • type “LOAD” at the BASIC prompt
  • pressed “PLAY” in the Voice Memo app
  • waited for BASIC to return to the prompt, and…

Nothing.

It never returned to the BASIC prompt. It would still be waiting if I let it.

So, Snag #2

I thought…”obviously a volume level problem”. But I tried every possible volume level available on the iPhone and…

Nothing.

I thought…”maybe the audio out cable is not working”. So I connected the iPhone to the AUX input for my car’s audio system, turned on the stereo, and…

The mind-numbing 770 Hz tones and warbles were being played as originally expected.

I thought…”So maybe the waves are being chopped at the peaks and valleys during recording or playback”. The Voice Memo app doesn’t provide any options for recording level, etc. Maybe I should try a 3rd party app. So I downloaded a handful of free apps:  SpeakEasy, Voice Record HD, iTalk. There were many others I didn’t try. Most offer some way of posting recordings to cloud services or ftp servers. That might be pretty cool.

Some Success

Eventually I discovered that the recordings made with the Apple Voice Memo could be successfully loaded if played from an email attachment. But not from the app itself. I know. Makes no sense at all.

The SpeakEasy app didn’t provide much in the way of options, but it was the first to be able to successfully save and load a simple BASIC program. So it holds a special place in my heart. But I found its interface to be somewhat contrived. Its four main icons rotate on a turntable and I found myself constantly hitting the “record” function when I thought it might be the “play” function. Oh…red vs blue. Yeah, thanks. Also there was one screen that I swear had no obvious way of exiting.

Screenshot of SpeakEasy app

Voice Record HD wins points for style. It was also able to successfully save and load a program from the Applesoft BASIC interface. Some of the features such as interfacing with DropBox and Google Drive are promising, but it looked like, while you can assign a title to a recording, the filename for the audio file consists of nothing more than a timestamp with an .mp4 extension. That would cause confusion later if the file were transferred to another system.

For example, notice below the title is “retrochallenge”, but the filename is “20130123-215432.mp4”. Oh, snap! calls to Guatemala for 12 cents per minute. Awesome. Maybe I should re-enable targeted ads in my preferences.

Screenshot of Voice Record HD

The iTalk app had the simplest interface of the three and no mistaking what you press for “record”. It was able to successfully save and load the test program (with the output volume set around 90% during playback). The paid version integrates with DropBox and includes sharing via email (though email may be in the free version; I’ve upgraded since these snapshots were made).

iTalk record screen
iTalk playback screen
iTalk recording attributes

So. Yea! Some success.

2013 Retrochallenge Winter Warmup, Retrochallenge

2013 Retrochallenge Winter Warmup – Post 04

Testing

(This is part four of the chronicle of my 2013 Retrochallenge Winter Warmup submission. The mediocrity starts here.)

Immediately upon completing the cable, I quickly:

  • booted the Apple IIe to the BASIC prompt
  • connected the cable between the iPhone and IIe
  • wrote a few lines of REM statements
  • launched the Voice Memo app on the iPhone
  • pressed “Record” in the app
  • typed “SAVE” from BASIC
  • waited for the BASIC prompt to come back
  • pressed “Stop” in the app
  • unplugged the iPhone
  • listened to what was recorded and…

Snag #1

All I could hear in the recording was myself typing on the IIe and rustling about in my nylon jacket. So obviously the iPhone was using its internal microphone instead of the line-in. After verifying all the connections were valid along the cable and behind the IIe, I decided to pray to the Internet.

The Internet told me that the iPhone expects a particular amount of impedance on the microphone pin before it will be recognized. Otherwise the iPhone will default to using the built-in microphone. About 1600 ohms is needed.

So without knowing what that really meant I decided to add two resistors I found in my junk pile, a 1k and 620 ohm in series along the line and things are back on track.

I am now able to record to the iPhone.

You may wish to turn down your computer’s speaker volume before clicking on this link. There will be 10 seconds of mind-numbing tone followed by another long run of “was-once-my-mind-but-is-now-jelly”-numbing tone before the data part starts to warble out.

Apple II Cassette Audio Test (recorded using the cable above and the Apple iPhone Voice Memo app)

But then, as it is with computers, I hit Snag #2…

2013 Retrochallenge Winter Warmup, Retrochallenge

2013 Retrochallenge Winter Warmup – Post 03

Construction

(This is part three of the chronicle of my 2013 Retrochallenge Winter Warmup submission. The mediocrity starts here.)

1. iPhone plug (TRRS 4-pole connector)

  • Strip 1/8″ (3mm) off both ends of the 4 wires
  • Use a digital multimeter to determine the relationship between the plug and posts (where wires will be connected/soldered)
  • Solder 1 wire to left channel (tip)
  • Skip the right channel (next closest to tip)
  • Solder 2 wires to ground (next closest to base)
  • Solder 1 wire to mic (base)
  • Test connections using digital multimeter (ensure each wire connects to exactly one part of the plug)
  • Slide the clear insulator sheath over the solders (to prevent accidental connections to the metal housing)
  • Slide the housing over the wires and screw the housing onto the plug
  • Test again using digital multimeter to ensure the housing isn’t interfering with the connections

2. Braid Wires

To avoid the 4 wires from becoming unwieldy I wanted some way to bundle the wires together. I thought about purchasing a length of heat shrink tubing but decided it would be simpler to braid or weave them together. I tried searching how to braid 4 strings but could only find references to friendship bracelets. Now that might be pretty cool to weave some retro logos using the wires but life is short. So I decided to do a 3-string braid – treating two of the wires as a single.

For some fleeting moments I had a good rhythm for the braid – until I thought about it. So some sections look like I knew what I was doing and other sections look like I was drunk. Braiding 4 wires (well really 3)

3. Microphone plug

  • Solder the mic wire to the tip
  • Solder one of the ground wires to the base

4. Line out plug

  • Solder the left channel wire to the tip
  • Solder the remaining ground wires to the base
Here is the (almost) completed cable. In my over-zealousness to try the cable out, I didn’t take a picture of it in its simple state before I found my initial design was flawed and needed additional surgery.

2013 Retrochallenge Winter Warmup, Retrochallenge

2013 Retrochallenge Winter Warmup – Post 02

Collecting Components

(This is part two of the chronicle of my 2013 Retrochallenge Winter Warmup submission. The mediocrity starts here.)

Before I can assemble the cable for the Retrochallenge, I have to find the components. One end of the cable needs to plug into the iPhone and the other end needs to split into 2 mono plugs. The mono plugs are easily available at most electronics parts stores (Radio Shack, Fry’s, etc). However, the iPhone uses a 4-pole phone plug to handle the stereo earplugs, headset microphone, and remote switch.  Because the Internet is teeming with prattle about the iPhone, I found searching for this part quite difficult.

That was until I discovered the magic phrase “TRRS”. Then it became easy. I found on Ebay I could get a package of 5 shipped from China to my doorstep for $4US. And it must’ve taken the speed boat because it arrived in a little more than a week after ordering.

For wiring, I already had a spool of 26 gauge stranded wire – all black, so I’ll have to use the multimeter often to keep things straight. I thought about using, say, some CAT-5 cabling or getting some heat-shrink tubing to help bundle the wires. However I think it would have more panache if I weaved them together.

Components needed for iPhone / Apple II cassette interface cable

Tools

Nothing special regarding tools. It is nice to have wire strippers with the numbered grooves. So stripping the 26 Gauge wire will be quick and error-free. I think of the time lost to stripping wires using an X-acto knife or crappy strippers and I begin to weep. Also in a big step towards a crap-free existence, I received a much better soldering iron as a birthday gift from my wife. This will be my second opportunity to use it so I hope I don’t muck up the tip.

Not pictured but vital is a digital multimeter so I can test my solders and keep track of which wire is connected to which part of the TRRS plug.

Tools