The „Data Handler“ is a Single Board Computer built in 1975 by „Western Design Systems“ Corporation. The Manual and further Literature name Mr. C.A. Indihar as the founder of Western Design Systems in Santa Clara, California . I got this unit while bidding for a White 6502.
The Data Handler Single Board Computer – Version A – with red „RUN“ LED and equipped with the optional Input and Output Ports
Built around the MOS 6502 CPU, it has 1-KB static RAM of Type 2102 and a „Front Panel“ with 16 Keys for Hex Entry and 10 Function-Keys to control operation. Data output is realized by 16 LEDs for Address and 8 LEDs for DATA.
- CL Clear : Clears the Adress or Data Value
- SC Single Cycle : Executes a single CPU Cycle
- SI Single Instruction : Runs one operation
- HT Halt : Stop CPU
- INT Interrupt/Reset : Start from Reset Vector
- AD Adress : Change to Modify Adress
- DA Data : Change to Modify Data
- EX Examine : Examine Data in an Address
- RN Run : CPU Run
- DP Deposit : Store Data
Data Entry , Data Display and CPU Management is completely realized in Hardware and not under CPU Control.
There are two I/O Ports on the upper right of the board. One Port for 8-Bit Input and one Port for 8-Bit Data output.
This is the Data Handlers Block Diagram from the REV „C“ Manual. In comparison to the „B“ Version it has an additional Cassette Interface Option. On the RAM Memory there are S-T-R Pins, which are used to split the Memory in 4 Pages.
Data Handler Block Diagram. Version C with Cassette Option and changed Memory Layout (Jumpers ‚S‘ and ‚T‘)
The board has a Altair compatible BUS Connector, allowing to use one of the many Expansion Cards available for Altair Systems.
Three unpopulated spare sockets are provided for system modification.
To increase system stability, the RC oscillator can be replaced by a Crystal. The SBC needs only one single 5V Supply.
An optional Regulator can be soldered on the back of the board, converting 8V power provided through the Altair Bus or an Altair Power supply to the necessary 5V.
The Manual covers the building and the operation of the Data Handler and also contains the complete Opcode description of the 6502 and the schematics of the board. Though this Manual is marked as REV B, it does not contain the ROR Command.
In the 70s PDF’s have not been developed and you need a printed manual as reference . Buying a manual for a CPU was expensive, so having the 6502 opcodes at hand was very convinient. Additionally there is a section with an instruction lookup table.
A “program section“ contains very few simple programs to start programming.
Data-Handler Manual with Schematics
To my current knowledge, the first „Data Handler“ Press can be found around June 1976.
The „B“ Manual shows „-2.8-77“. The „C“ Manual said „(c)1976“. While the (c)1975 indicates that it was developed and released much earlier, please mail if you know more !
This is the 1970s – 6502 timetable:
- 1975-Fall: MOS Introduced the MOS 650x Series
- 1976-03: – Steve Wozniak and Steve Jobs finish work on a computer circuit board, that they call the Apple I computer.
- 1976-04: – Steve Jobs and Steve Wozniak form the Apple Computer Company, on April Fool’s Day.
- 1976-05: BYTE magazine announces MOS-KIM-1
- 1976-06: Radio Electronics advertise Dyna Micro
- 1976-06: Data Handler in Dr. Dobbs Page 43, Starts from $79
- 1976-07: The Apple I computer board is sold in kit form, and delivered to stores by Steve Jobs and Steve Wozniak. Price: US$666.66.
- 1976: August – Steve Wozniak begins work on the Apple II.
- 1976-09: Data Handler microcomputer digest
- 1976: December – Steve Wozniak and Randy Wigginton demonstrate the first prototype Apple II at a Homebrew Computer Club meeting.
My Hardware Version seems to be a REV A with all RED LEDs for DATA/ADRESS/RUN.
The Rev „B“ Handbook indicates the RUN Led to be orange.
The „Data Handler“ is definitively one of the first SBC’s, and maybe the first 6502 SBC at all.
In the 1976-12 Volume of the PCC Magazine it is said that some schools in the California Bay area bought Data Handlers in June 1976, and teachers were instructed to build them. So we can assume that it was announced some time before June 1976 !
One Article about the Data Handler was written by a scoolar : Chris Espinosa, later apple employee #8 , and writer of the Apple II Handbooks.
Data Handler Offers:
The bare board was offered for $79, the kit with all parts for $169 or $179, so it was half the price of a KIM-1.
The „Data Handler“ was a nice tool to be populated by hobbyists and to learn the Basics of 6502 machine language, but its operation is more difficult: Compared to the KIM-1 SBC the Data Handler has NO onboard ROM, PIA or TIA and no Monitor Program.
The „Front Panel“ is a hard wired system to enter data into Ram and start/stop and reset the CPU.
At first the CPU is Reset and the SI Button should be pressed four times to execute the Reset Sequence.
The program is entered in the static RAM locations. If the computation requires input data, these values have to be written in memory addresses. Additionally the start address of the program has to be stored in reset vector address $FFFC and $FFFD.
The program execution is then started by resetting the CPU. To debug the program, simply press SI-Button to follow the code. The Adress and Data LEDs show the current Program-Step. Additionally you can Cycle through an instruction with the SC-Button, follwing the CPU While fetching or storing Data from or to RAM.
By pressing the (run) RN-Button, the program executes ad maximum speed and preferrably it terminates in an endless loop.
When the calculation is finished, the CPU has to be manually halted by pressing „HT“. If there has been results, these could be viewed by pressing EX-Button and EXamination of the corresponding memory locations.
A FIRST EXAMPLE
I tried the 8 Bit Multipy Example from the „Programmes“ Section of the Manual
To Enter the Program, i Pressed HT, CL, AD 0xFFFC, DA 0x00, and DP. So the First Byte of the Reset Vector is entered. The second byte only requires entering 0xFC and DP-Button.
To change the Adress simply Type AD 0xFC00, then DA-Button 0xA2 DP-Button to enter the first Program Byte. Next Byte is 0x08 which is entered via DP-Button. Adress increases automatically after DP-Button is pressed. During the programming process i it is possible to check the entered values via the LEDs. I was astonished how fast i get used to the simple binary display! If you misstyped the DATA, simply reenter, before pressing DP-Button. If i was not sure if the data was entered correctly, i simply retype the adress and start over a bit earlier. After i finished the program we have to deposit the two values required by the test program „Multiplicand“ and „Multiplier“ in 0xFD00 and 0xFD01. Simply Type AD 0xFD00, AD 0x02, and DP. In my test i used 0x02 for Multiplier and Multiplicand 0xFD01. This simply represents Multiply 2 by 2, and we expect 4 as a result. To verify the entered data, I used the sequence HT-SI-EX-AD 0xFD00.
To start the CPU, i pressed INT, and single-stepped through it with the single Instruction SI-Key. After some cycles the programm halted in the endless loop in 0xFC1F. By pressing HT EX 0xFD02 i could examine the result: The data LEDs „Display“ showed 0x04 ! Yippie. First Program Run Completed..!
In the rear right the we can find the I/O-Section of the SBC. It holds a strobed 8-Bit output and 8-Bit input port. Bytes written at Address 0x7FFE appear at the output port, and input data could be read from 0x7FFF. If attached some LEDS, as instructed in the Manual, output could be directly controlled.
Interesting Detail: Output not necessarily need to be generated by program control: Data entered via the front panel could be stored at 0x7FFE and the result could be instantly controlled at the PIA Port without CPU Control, giving a very direct system response.
The Board is made of #47 TTL Chips plus 8x1k-RAM.
The onboard Ram is located at 0xFC00 not 0x0000 to allow modification of the RESET and Interrupt Vectors.
To my knowledge this disables the use of Zero Page features like Stack (POP/PUSH), Subroutines JSR/RET, Complete Zero Page Storage and all indirect Addressing of the CPU. Only to set the Reset Vectors in Ram…Strange.
In the manual it is strongly suggested to map RAM expansions to Address 0x0000 to enable all CPU features.
Work-Around: Since Address decode is done via some Gates, it seems pretty simple to modify the Address Decoder to additionally Map the existing Ram to Adresse $00xx and $01xx to add Stack and Zero Page features.
Update August 2022: In the REV C Manual, the Manufacturer describes a Modification of the Board, which separates the 1k Memory in 4 Pages. A Jumper R,S,T, is installed which allows to Map parts of the Memory to Page 0x00,0x01 and 0xFE and 0xFF. So the System can use the Zero Page Features of the CPU.
Original MOS CPU Card
The unit came with an original MOS 6500 CPU Instruction Set Summary Card, attached is a WDS Stamp.
Data Handler and Chris Espinosa
In Summer 1976 Homestead-High-School used the DATA HANDLER in computer science class. Chris Espinosa – who later joined Apple at the Age of 14 as employee #8 – was one of the pupils learning 6502 Assembler on this unit. Below you find an article about his experiences with the DATA HANDLER from People Computer Magazine of 1976. Unfortunately the photo has no baseline, but since it is directly related to the article it most likely shows him operating the front panel of the 6502 based SBC.
(c)PCC Magazine and archive.org