Monday, March 31, 2008

Homebrew Apple II+ Diagnostic Tool

Rummaging around in a stuffed drawer one day I came across a computing project from the past for an Apple II+...

My first personal computer was a built from a kit, the Heathkit H-8. That one was based on an 8080A CPU, 4KB of static RAM and a front panel monitor based in octal. Well, after the solder smoke cleared there was a fully functional computer in front of me with a cassette player to load and save data. Programs were created with either a BASIC interpreter or a far less used FOCAL language and even less via the front panel I/O capability.
Later I obtained a breadboard and with some BASIC peeks and pokes was able to actually have the terminal inform me that lights were either on of off in the room. The future was finally here!

A couple of years later I purchased an Apple II+ with 16KB of dynamic RAM, later upgraded to 64KB. This was of course a much more useful PC application and program learning wise than the H-8 mainly due to the variety of applications available as well as UCSD Pascal.
I subscribed to magazines both Apple specific and computing in general. In one of these magazines an article described a home brew project along a schematic to build a diagnostic device to examine the address and data states on an Apple II+ bus.

This diagnostic board had 16 red leds representing the address bus and 8 red leds representing the data bus. The led being lit indicating a binary 1 and a binary 0 for an unlit led. In the upper left there were 3 green leds which represented the Ready, Write, and Sync CPU indicators for the 6502 CPU.

There were 3 control switches in the upper right. The first being a toggle switch which would place the CPU in either Halt or Run mode.
The second 2 switches were momentary switches with one being to execute a Single CPU Cycle and the other to execute a single CPU Instruction.

The card was made with IC sockets and wire-wrapped on the backside. The logic consisted of the 7400 variety of integrated circuits which ranged from de-bouncing the mechanical switches to driving the leds through current limiting resistors. The usual +5VDC noise eliminating capacitors were wired across various points in the power supply runs.

Below is a close up of the LS373 tristate latches which were the direct interface to the address and data bus signals. The '1's and '0's on the bus were latched onto and displayed on the led indicators depending on the directives of the switches.

Although it was actually never used to diagnose a problem it was a good learning tool, especially when used with ORCA/M (Object Relocatable Code Assembler for Microcomputers), which was a very nice code assembler for the 6502 CPU and Apple.

Note that time takes a toll, a 9 volt battery was used to illuminate the leds for the purpose of these images.

No comments: