A program, SerialTester,  a guide and test results.

Also updated Prolific PL2303HXA driver misery solution.

Serial USB adapters testing

So I have a collection of those USB to serial adapters, some with cables and DB-9 connectors, some with cable and Dupont connectors, and some USB TTL type connectors on a PCB with male or female Dupont pin connectors for USB-A, mini or micro USB. Most not documented or unsure if the voltage levels are 3.3V or 5V ..

First some background. These are all descendants of the EIA RS232 standard in some way. Terminology, asynchronous serial format, voltage levels, start bits, stop bits, 7 or 8 data bits, hardware and software handshake, and the way it is abused in many of these devices. And so common nowadays in Arduino and ESP8268, ESP32 and even Raspberry Pi world.

If you are new to the serial world and want to use these devices and understand how, study the next chapter. You will learn and know what I am talking about: DCE, DTE, DSR, DTR, TxD, RxD, CTS, RTS, DTR, RI, CarrierDetect, UAR/T’s, TTL voltage levels being reverse to RS232 voltage levels, a ‘0’ being negative RS232 voltage up to 15V, a ‘1’ being as low as -15V.


RS232 asynchronous information

This picture shows where RS232 came into being about 50 years ago,

Read these PDF’s:
RS232 Protocol – Basics
EIA RS232-C Standard Protocol
EIA RS232-E Standard Protocol
Fundamentals of RS–232 Serial Communications
RS232 Physical Layer Interface Standards
RS232 (TIA/EIA-232-F)
RS-232: Serial Ports

USB Serial TTL devices

These little devices came into use to communicate with small computers like SBC’s, Arduino and ESP’s and PC’s. Throw out the overhead of the + and -15v, limit or leave out the handshake signals, (mis)use the DTR signal to reset the Arduino, use it to download firmware or collect data from sensors on the small computers and process it on bigger machines. And act as the power supply the little computer.
Based on special UAR/T IC’s, very small footprint, and dirt cheap.

Testing USB Serial TTL adapters

What you need:
– A PC, Raspberry Pi or another Linux or Windows PC. Any PC platform supporting USB ports will do.
– The program SerialTester, see below
– A small breadboard
– A collection of Dupont cables with male and female connectors
– A multimeter, a most simple one will do


Testing USB serial adapters is not that difficult, you need a terminal emulator, which are available in lots of formats and capabilities. Putty, Minicom etc all allow to choose a serial port, set baudrate and other parameters like hardware handshake, software handshake, number of data and stop bits. With a loopback test (which means connecting serial out TxD to serial in (RxD) you can test the serial connection by typing characters and seeing the characters appear on screen.

What I miss in these programs is a way to inspect the modem control lines. So I wrote a little program for that.
SerialTester allows to do the loopback test and shows the state of the modem control lines.
You can change the DTR and RTS lines since these are set of cleared by the USB serial port. The other lines are read from the USB serial adapter.

Get the program here:
Windows 10 installable executable
source (Lazarus + Freepascal) and executable for Windows, Linux and executable for Raspberry Pi

Use the program as follows to completely test and document (write down test results on the next steps!) the adapter.

1. It is a GUI/Windows program, so start as usual on your operating system. Raspberry runs this program fine, but Linux is not so forgiving in plug and play of USB devices, so expect some hangs and reboots. CH340 chipsets can have a temper, and SerialTester sometimes fails, where Minicom succeeds.

2. Insert the USB adapter, do not connect anything yet to the adapter
For the USB-A types it is handy to have an USB-A male -female cable to bring the adapter to the table

– Check if the USB adapter is recognized by the operating system
For Windows start Device Manager and look for COM Ports, like COM8 in the example below
On Linux start a terminal and type “lsusb”, insert the USB serial adapter and look for added USB device serial adapter, in the screenshot an FTDI adapter.
The command “ls -l /dev/ttyUSB*” will show devices like “ttyUSB0”.

3. Click Port settings and click in the field Port drop down button. A list of serial adapters will be shown, pick one. Note that on a Raspberry the serial port ttyAMA0 on the GPIO connector will be shown also. Here we want the ttyUSBxx device.

Select 300 baud as baud rate, this will help seeing the transmit with the multimeter., leave the rest default.

Press OK

4. Open the Port by clicking the button Open Port. Look at the status displayed, it should tell the port is opened. If not opened, you might have a driver problem, see the sections below on CH34x, FTDI and Prolific 2303HX devices.
You will also see the DTR and RTS fields light up red, as opening also sets the DTR and RTS pin high.

5. Switch on the multimeter and read the prints on the USB or the color of the wires.
– First find Gnd. Indicated with the label GND or a black wire.
– Now find Vcc, indicated with VCC or the red wire. Measure the voltage, should be 5V, 3.3V. Some adapters have a jumper to select the voltage. Some adapters also change the voltage on the other lines, some do not. Measure!

6. Find the TxD pin. Connect the multimeter to the TxD pin. It should be +3.3V or 5V. Also check if changing VCC to +3.3V or 5V makes any difference, some adapters do, some do not change the voltages on the pins.

7. Enter a long string in the Send field, and press Send (or Send CR for a line ending). Observe the readout on the multimeter, it should be lower than the value in rest. Nothing will be shown in the received fields.

If not, then this is not the transmitting pin. Check RxD if that is the transmitting pin, for all my adapters it was TxD, but who knows what manufacturers do ..

8. Inspect the adapter for a DTR line if any. Connect the multimeter to the corresponding pin and measure the voltage. Press the DTR button in SerialTester and check if the voltage changes on the pin.

9. Repeat for the RTS line.

10. Locate the RxD line. Connect this line to the TxD pin and send a string again. Now you should see the Receive and Receive hex fields filled with the send string.

11. Now if any pins are not tested yet, they have to be the other modem control lines. The labels on the adapter will tell or experiment and measure. Connecting to ground or VCC with a 2k2 resistor (to be safe) will show on the display of the SerialTester program the corresponding level.

Chipsets: FTDI, Prolific, Silicon Labs, CH340

The USB Serial adapters contain a UAR/T IC, made by a small group of manufacturers.

1. FTDI. Comes with the highest recommendations. Many types. Well supported in Linux and Windows.
Due to fake IC’s made in China the current drivers check and try to make a fake inoperable.
If you encounter in Windows a non-working FTDI adapter, you cna only use it in Linux, after ‘repairing it. See here how to do that

2. Prolific. Supported in Linux and Windows.
Also due to fakes, older (not fake!) IC’s made by Prolific are not supported by the current Prolific driver in Windows. Device manager shows PL2303HXA PHASED OUT SINCE 2012. PLEASE CONTACT YOUR SUPPLIER.

Easy to solve with an older version of the drive, like in this archive. Unpack in a folder, Update driver, Look on this PC, Have disk, Browse to the folder.
Windows may ‘update’ the driver again, just rollback the update in Device Manager. For permanent fix, see also this page how to enable group Policies on Windows 10 Home and prevent any updates.

3. CH34x. I sometimes encounter problems under Linux with this chipset. Windows runs fine.


‘Blue’ closed connector with cable
Prolific PL2303
Male Dupont connectors
Black Gnd
Red +5V
Green Tx (sending data) 3.3V
Yellow Rx (receiving data)
Betemcu CH340
Status LED red, send LED blue
Edge pin connector maleGND Gnd
VC +3.V or 5 V slide switch
TX 5V Sending
Rx 5V receiving
CTS connect ground for ‘on’
Button switch of Vcc
D-Sun-V3.0 CH340
Status LED red Send blue led Received blue led
Edge pin connector male
RxD receiving
TxD sending at 3.3V or 5V
3V3 3.3V
Vcc jumper to +3.3V or 5V (no jumper 3.3 V)
5V 5V
Tienu ZX2H1911A1 PL2303HXA
Status LED red Sending green LED Receiving Yellow LED
Edge pin male
5V 5V
3.3V 3.3V
TxD sending 3.5V
RxD receiving 3.5V
Gnd Gnd
Red status LED send receive green LEDs
Edge pin male
Jumper +5V Vcc +3.V
Jumper 5V – Vcc – 3.3V
All modem signals to edges RI CTS RTS
110 baud not supported
DTR 5V or 3.3V following jumper
TX sending 5V or 3.3V following jumper
RX receiving 5V or 3.3V following jumper
VCC 5V or 3.3V following jumper
CTS 5V or 3.3V following jumper
Gnd Gnd
4D Programming Cable CP2102
Dupont female
Gnd Gnd
Tx Sending 3.4V
Rx Receiving 3.4V
+5V 5V
FTDI cable no ident,
lights in cable red (receive) green (send)
Dupont female
Black Gnd
Blue CTS 3.4V
Red +5V
Green Sending 3.4V
White Receive 3.4V
Yellow RTS 3.4V
Tienu FTDI232H
USB-A FTDI edge pin red status LED green send, yellow receive
RXD Receive at 3.5V
TXD Sending at 3.5V
3.3V 3.4V
5V 5V
FDTI basic Sparkfun female dupont bottom
Mini USB
5V 5V
TxD sending 5V
RXI receive 5V
Square CP210X Red status
LED Red LED send Red LED receive
Micro USB Male Dupont Edge
3V3 3.3V
DTR 3.4V
RXD sending 3.4 V
TXD receive 3.4V
+5V 5V
FTDI232 Mini USB
Jumper 5V – Vcc – 3.3V
All modem signals to edges. Voltages follow Jumper setting.
MBC2 cable Prolific 2303
black GND
red 5V Vcc
Green TX sending at 3.4V
White Rx
UC-2102 Cable CP210X
Male edge pin connector
DTR 3.4V
TxD sending 3.4 V
+5V +5V


Super Jolt

The Super Jolt is a evolution of the JOLT. Same CPU, 1 MHz clock, same TIM IC, same PIA, more RAM (1K), sockets for PROMS, RAP (Resident Assembler Program) and Tiny Basic (of Tom Pittman Itty Bitty Computers) in ROM.


Superjolt CP110 User Manual
DEMON software manual part 1
DEMON software manual part 2
DEMON software manual part 3
(part 3 has an alternative listing of the TIM 6530-004 monitor)
2 PROM hardware_manual

Superjolt schematic

Superjolt PCB topview

2K PROM card schematic


Sold under the name CP110 by Synertek  in 1985, Microcomputer Associates had become the core of Synertek Systems and in the next years produced the SYM SBC’s.


Photos by Ray Holt of Microcomputer Associates.




Jolt was the first 6502 singleboard computer. On December 1975, the coveted inside-front-cover of Byte magazine contained a two-page advertisement for “the world’s lowest cost computer system”. This was perhaps the first non-MOS Technology 6502 based computer system to come to market, The computer was named Jolt, and it was marketed by Microcomputer Associates Inc. (MAI) as both a kit for $249, or fully assembled and tested for $348 (Dec. 1975 Byte). Microcomputer Associates also sold add-ons for the basic system. They included 4 kilobytes for $265, an I/O card for $96, and a power supply for $145. Either at that time or shortly later MAI expanded the line to a RAM card and an EPROM card using 2702 PROMS. The boards were about 4″x6″ arranged in a vertical stack jointed by a ribbon cable. Only 5 volt power was needed. Software available in PROM was RAP (Resident Assembler Program) and Tiny Basic from Tom Pittman.

As can be seen in the photos of the Jolt front, back and experimenters card below, the system is quite simple. In fact it is a TIM system (the 6530-004 is the middle IC), with a 6502 at the right and a 6820 PIA on the right. Some glue logic on the right and the top, RAM on the bottom (4x 2111 for 512 byte memory) and RS232 TTY interface at the right (1488, 1489 line drivers). The system clock was a RC at 750 KHz, in the photo the clock is a 1 MHz crystal added later.
The TIM IC, 6530-004,contains the ROM (1K), timers, 128 byte RAM, 16 I/O) and 64 bytes RAM. The PIA 6820 adds another 16 bit I/O.


(See the Microcomputer Associates Catalog in PDF format here)
• MOS Technology 6502 CPU
• MOS Technology 6530 with DEbug MONitor (a 653-004 TIM)
• 750 KHz clock operation-RC controlled or crystal controlled with user supplied crystal.
• 512 bytes RAM
• 64 bytes RAM-located at interrupt vector locations
• Expandable address & data lines
• Direct drive to 8 K bytes of memory
• 26 Programmable I/O lines
• Two hardware interrupts
• Serial interface for 20 ma current loop and EIA RS232C
• 4.25″ x 7″ printed circuit card
• Compatible with other JOLT cards

Jolt User Newsletter


The JOLT system consists of a set of modular microcomputer boards which can be used singly or tied together to produce any desired microcomputer system configuration. The minimum system is one CPU board. which alone constitutes a viable computer system complete with central processor. 1/0. interrupts. timer. read/write memory. and a complete software debug monitor in read-only memory. Additional boards in the JOLT system include a 4 K byte RAM , 1/0. Power Supply and blank Universal Interface board. A large JOLT system could have up to 32 K bytes of RAM memory. up to 128 lines of bidirectional 110 and 16 interrupts. JOLT boards come in kit form or assembled. and are ready to use in any form. from home hobby kits to industrial applications. All JOLT components are new. fully tested and fully warranted by MAI.

The internal oscillator operates in a “free run” mode with a capacitor and variable resistor supplied on the CPU printed circuit board. The frequency of oscillation may be adjusted with the variable resistor. If a very stable clock is required by the system a crystal may be added to the CPU board.
The RESET input to the CPU is pulled to logic ground by an RC circuit (t=33 milliseconds) on the printed circuit board. The CPU normally fetches a new program count vector from hex locations FFFC and FFFD upon activation of the RESET line, but these locations are in the interrupt vector RAM and therefore volatile. Hardware on the CPU board causes the CPU to begin executing the monitor program by forcing the effective sixteenth bit of the address bus  to a logic ZERO during reset. As a result, the RESET function on the JOLT CPU card causes the debug monitor (DEMON) to begin executing.
There are two interrupt inputs to the CPU. One interrupt is maskable under program control (IRQ) and the other (NMI) is not.
A READY control line provides for asynchronous operation with slow memory or I/O devices.
The address bus (A0-A15). the data bus (00-07). the two phase clock (PHI). the reset line (RESET). the interrupt lines (IRQ and NMI). and the ready line (RDY) are all available at the edge connector of the CPU board. The loading restrictions should be considered when using the signal lines driven by the CPU for external system expansion.

Program RAM
There are 512 bytes of program RAM provided on the CPU card. The program RAM is hardwired addressed as the first 512 bytes of the CPU’s 64 K of memory address space. It may become necessary to remove these RAM’s from their sockets if a 4 K memory card is also hardwired in this address space. The program RAM on the CPU card uses NMOS RAM chips type 2111, 512×4 bytes.

Monitor ROM and Interrupt Vector RAM
The monitor ROM is located in the last 1 K bytes of the lower half of memory space (first 32 K bytes). The interrupt vector RAM is located in the last 64 bytes of the 64 K memory address space. The monitor ROM and the interrupt vector RAM as well as additional I/0 are implemented with a single 6530 chip, the 6530-004 TIM

Programmable User I/0
The programmable I/0 lines available from the CPU card are provided by a Peripheral Interface Adapter (PIA) and a 6530 ROM chip. The PIA has two 8-bit 1/0 ports with two interrupt-causing control  lines each. Two jumpers are provided on the card which connects one or both PIA interrupt outputs to the CPU IRQ interrupt line. Refer to the CPU assembly drawing for proper identification of the jumpers. A Data Direction Register for each port determines whether each 1/0 line is an input or an output.  The 6530 ROM chip provides 10 additional I/O lines that may also be specified as input or output lines under program control. There are eight 1/0 lines from one port on the 6530 and two 1/0 lines from the second port. These I/0 lines may be used in conjunction with DEMON for interfacing a high speed paper tape reader to the CPU card. In the paper tape reader application, the eight 1/0 lines from one port are used as inputs and two I/0 lines from the second port are used to accomplish the handshake control between the reader and the CPU card.
The PIA is hardwired addressed as location 4000 to 4003 in the memory address space. Memory addresses from 4000 to 4003 are allocated for PIA devices so that the JOLT system may be easily expanded to accommodate up to eight PIA chips. The 6530 uses addresses from 6200 to 6E07 for eight I/0 functions. The unused memory addresses occur because address bits A10 and A11 are ignored to simplify address decoding. The 6530 I/0 lines may be referred to as Monitor I/0 because these lines are commonly used for a high speed paper tape interface.
See the TIM page for more information on timers and I/O.

Standard Interface Circuits
The JOLT CPU card provides direct interfacing with a 20 mA current loop and RS232C terminal. The 20 mA current loop requires +5 v and -10 v whereas the RS232C interface requires +12 v and -10 v. Both interfaces are wired in parallel on the input and output thereby allowing both interfaces to be used simultaneously.

The memory map on the following charts explains what functions have been assigned to each segment of the JOLT address space. It is recommended that users respect this space allocation when adding memory and peripherals to their JOLT systems. Space has been reserved for 32 K bytes of user RAM or ROM, seven additional PIA devices, and’up to 512 user I/O device registers. Other areas are reserved for JOLT expansion, new JOLT peripherals and memory options will use these spaces. Users are advised to not use JOLT expansion space unless absolutely necessary. Note that some areas used by the JOLT CPU board and PIA boards have more space indicated than there are registers or locations in the device occupying them. This is because these devices do not decode all address bits, or use some of the address bits for special functions. For example, the 6530 timer determines the time scale and interrupt enable/disable by the address used to access it. Thus, these “partly filled” areas are actually entirely used and are not available for other uses.

(1) Standard on JOLT CPU board.
(2) Available to user-not used by DEMON.
(3) To get enable-interrupt address, add 0008 to disable-interrupt address with corresponding functions.
(4) Reserved for DEMON use, TTY control and reset functions

DEbug MONitor (TIM 6530-004)

Debug Monitor
The JOLT CPU card comes complete with DEMON, MAl’s debug monitor program. The program is located in the 1,024 byte, Read Only Memory (ROM) of the multi-function 6530 chip and is therefore
completely protected against any alteration. DEMON provides a permanently available general purpose monitor program to aid users in developing hardware and software for MAl’s JOLT series of microcomputers.
DEMON’s Features Include:
• Self adapting to any terminal speed from 10-30 cps,
• Display and Alter CPU registers,
• Display and Alter Memory locations,
• Read and Write/Punch hexadecimal formatted data,
• Write/Punch BNPF format data for PROM programmers,
• Unlimited breakpoint capability,
• Separate non-maskable interrupt entry and identification,
• External device interrupts directable to any user location or defaulted to DEMON recognition,
• Capability to begin or resume execution at any location in memory,
• Completely protected, resident in Read Only Memory,
• Capability to bypass DEMON entirely to permit full user program
control over system,
• High speed 8-bit parallel input option, and
• User callable I/O subroutines.
DEMON’s Command Set Includes:
.R Display registers (PC,F,A,X,Y,SP)
.M ADDR Display memory (8 bytes beginning at ADDR)
: DATA Alters previously displayed item
.LH Load hexadecimal tape
.WB ADDR1 ADDR2 Write BNPF tape (from ADDR1 to ADDR2)
.WH ADDR1 ADDR2 Write hexidecimal tape (from ADDR1 to ADDR2)
.G Go, continue execution from current PC address
.H Toggles high-speed-reader option (if it is on, turns it off; if off, turns on)
See the TIM manual for more information on DEMON, the name MAI uses for the TIM program.

RAP — 1.75K Byte Resident Assembler Program
(This looks like a predecessor of the RAE of the SYM-1). The JOLT Resident Assembler Program (RAP) is designed for use on JOLT systems equipped with at least 4K bytes of RAM memory. RAP has some significant advantages over conventional assemblers:
1. Resident as part of the JOLT system on PROM chips. The assembler never has to be read into volatile memory before use. It, just like the DEMON monitor, is instantly available. In addition, costly time sharing services are not needed for cross assemblies.
2. Operates on one pass of the source code. The source tape is read in only once, thereby increasing assembler speed by a factor of two over conventional assemblers that make two or three passes over the source code.
3. Small in size. The assembler is smaller by a factor of 4 or 5 over comparable assemblers. Its size guarantees the smallest number of PROM chips needed and minimizes printed circuit board space requirements. With the assembler PROM chips installed in your JOLT PROM board (at address E800 hex), the assembler may be activated by reading the source code input on the console input device and transfering to location E800 hex using the DEMON monitor. As source code is being read in, a listing is produced on the console printer and the object code is generated directly into RAM at the addresses specified by the origin directive (.ORG).
After the assembly is complete, the object code may be punched onto paper tape or executed directly using DEMON. The assembler assumes RAM at locations 1FFF hex and lower to be available for symbol table usage. RAP uses an efficient symbol table algorithm and users can normally expect that about 4 to 6 bytes of RAM will be used for each symbol or that a 3000 byte program would use approximately 800 bytes for the entire symbol table (locations 1CEO to 1FFF hex). This space need not be left unused if buffers,’ etc. are allocated to it. The Resident Assembler Program is compatible with the MAS Technology Cross Assembler with the following exceptions:
1. Expressions and * (used for current program counter) are not allowed.
2. Thee .OPT and .PAGE pseudo operations are not implemented.
3. Octal and binary numbers are not implemented.
4. .ORG is used instead of *= to origin program.
5. .RES is used for reserving storage.

The Jolt is somewhat famous for the part it played in the development of the prototype Atari 2600 VCS, which was assembled using the Jolt computer board.

This photo is one of the original wirewrapped prototypes for “The Worlds Most Popular Video Game” aka… The Atari Video Computer System (VCS) Model #2600.    The interesting and eye catching part of the unit besides the extremely intricate hand wired area (TIA perhaps?) are the controllers, you look and say “Hey those don’t look like the standard CX-40 joysticks I’ve come to know and love all these many years!”   The controllers are actually from the Atari/KeeGames TANK coin-op arcade game.   The actual Atari VCS joysticks would later come from a home console game of TANK which was sold under the Sears exclusive brand label.   The Atari Tank joysticks for a one player would act as left and right treads on the home tank game and then they popped out of the rectangular home console and could be used for two player action and would allow each user to use one joystick just like Atari VCS Combat (CX-2601).

  The above prototype designed by Ron Milner and Steve Mayer in Grass Valley, Ca. at Cyan Engineering (a company owned by Atari, Inc.)is actually a combination of many parts.   The wirewrap board was the original version of the STELLA chip.  The boards to the right are a memory board and a “Jolt” 6502  board ) and on the far left is a 5V power supply.  The above Stella prototype had actually been thrown out in the garbage at Atari at one point. Owen Rubin, one of Atari’s first programmers had found it in the trash and recovered this piece of history and placed it into the safe hands of Atari’s Employee #3, who built the first Atari Pong, Allan Alcorn.

History of Jolt Serial One, Bill Ragsdale (from 

Jolt was designed and developed by Raymond M. Holt, Founder and Executive Vice-President of Microcomputer Associates. Holt went on to design the SYM-1 single-board computer, a KIM-1 clone. In the late 1990’s Holt was finally given government permission to discuss his role in the development of the F-14 Tomcat. Holt claims he designed and developed the worlds first microprocessor one year before Intel.
Manny Lemas was the co-founder of Microcomputer Associates, Inc. Ray Holt was the hardware side and he was the software side of the business. He wrote the DEMON (Debugger/Monitor) software for the JOLT.
This software was actually developed for MOS Technology for use in the TIM chip and the KIM-1 single board computer. M.A. was granted rights to its own version of the software for use in the JOLT, they used the TIM 6530-004 IC!

I bought the first Jolt microcomputer out the door. I saw its advertisement (in Byte?) and was just starting a project in security access control. We were doing a crash project to demonstrate reading magnetic striped ID badges for Honeywell. We needed to accept a real-time bit sequence, extract numeric data and do a simple name vs. number lookup. An ideal job for a small processor. But remember, this was 1976. Development systems cost $5,000+ and none were offered for the 6502. (Later, MOS Technology offered one and Rockwell had a very good one.)
I ordered a Jolt system on a Wednesday or Thursday and was told Microcomputer Associates Inc. (Manny Lemas and Ray Holt) was awaiting the first silicon of their DeMon monitor to come by air from MOS Technology in two days, on Saturday. DeMon was a one chip Debug-Monitor containing 1K of ROM, 512 bytes of RAM, paralled IO, an ASCII serial interface and a monitor program. With the 6502 processor and a simple clock you could have a two-chip microcomputer. DeMon was later renamed Tim, Terminal Input Monitor.
MAI received their first DeMon chips about 9 AM Saturday morning, plugged in one, it ran, and I picked up the first unit at noon at their office. IIRC the Jolt had an inked-in serial number 0 or 1. Over the week-end I built a teletype interface as Jolt had a voltage output while the Teletype had current loop.


Photos by Ray Holt of Microcomputer Associates.

TIM-2 a ‘modern’ recreation of a TIM-1 system

Peter Renaud has designed a TIM system with a 6532, a 6502, some RAM, ROM and glue logic that runs the TIM-1 sofware.

Read here for the cicuit diagram and assembler source.


The TIM-1 IC is a 6530, and since the 6532 is nearly identical with regards to I/O and timer facilities it is possible to construct a TIM system with the same software.

And that is what Peter Renaud has done. He took a 6532, a 6502, an EPROM (as replacement for the mask ROM in the 6530-004) and some RAM, some glue logic to build a system. See the cicuit diagram and source below (reproduced here with his permission).

Schematic in PDF format

TIM-2 assembler source
Adapted for other I/O RAM and ROM addresses, functionally identical to the TIM-1 source.
Changes are (besides some assembler related)
– I/O base TIM-1 = $6E00 TIM-2 = $6800
– ROM start TIM-1 = $7000 TIM-2 $F000
– 64 Byte monitor reserve area TIM-1 $FFC0 TIM-2 = $6000
– TIM-2 no INT Vectors area
– RS232 bit inverted
– 7 bit ASCII forced

An older version of the TIM-2 on the test bench of Peter.

PC utilities for 6502 KIM-1

Updated December 2020, Linux compilation checked, bugs fixed, online program for comverting binary to wave file.

To aid in the handling of KIM-1 program and dataformats I have written some programs for Windows and Linux (Raspbian), sources included.

KIM Tape WAV to BIN conversion
Convert 8 bit hex formats
KIMPoser Tape Convert hex to WAV online
KIM Tape Convert BIN and BIN to WAV
KIM-1 simulator
Pascal-M cross compiler

All programs come with source (Free Pascal Lazarus), compiled for Windows but thanks to Freepascal and Lazarus also compiled and tested on Linux (Ubuntu and Raspberry PI OS).

Convert 8 bit hex formats

A general purpose utility to convert common 8 bit hex and binary formats, such as Intel HEX, Motorola S records, MOS Papertape, hex format, and binary files.

source files (Freepascal Lazarus).
Convert8bithexformat Setup for Windows, Executables for Ubuntu and Raspberry PI OS
Available formats:
– BIN binary, raw data, no formatting, no information on start address.
– HEX formatted as hex numbers raw data, no start address included.
– IHEX Intel hex 8 bit format, multiple memory block, start address included.
– PAP MOS Technology papertape format, multiple memory blocks, start address included.
– SREC Motorola 8 bit S record, contiguous memory block, start address included.
– A1hex Apple Woz monitor hex format, start address included.
– KIM Tape as used in the KIM-1 Simulator as emulation of audio tape files.

KIM-1 simulator

6502/65C02 CPU emulation, disassembler, TTY, KIM-1 keypad and LEDs.

See the KIM-1 Simulator page for more information.

KIM Paper

Note that the Conver8bitHexFormat program is also capable of converting to and from Papertape format from many more formats.
Originally written for the launch of the MicroKIM, an older version is on the support CD.

When you attach a serial device like the teletype or a modern PC with Hyperterminal you can use the TIM monitor of the KIM-1. One of the functions is loading from and saving to a papertape device on the teletype. Now since this is a way to load and save data as a textfile this is in fact quite useful.
The Micro-KIM triggered me to modernize my conversion utility for MOS Technology papertape format dating from 1983, VAX/VMS and Turbo Pascal. A Windows and a commandline/console version are available.

KIMPAPER for Windows

A program for Windows to convert between papertape and binary format.

Windows setup KIMPAPER
Sources (Freepascal Lazarus, build also on Linux)


Not too modern, but handy, a commandline utility. Does exactly the same as the Windows program KIMPAPER. Runs fine in a commandline DOS box. Can also be compiled for Linux with Freepascal. In the KIMPAPER DOS archive the program, source and information on the program and papertape format can be found.

KIM-1 MOS Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1

Syntax is:
KIMPAPER [-[b|p] filename [startaddress]
C:\MICROKIM\kimpaper -h
KIM-1 Mos Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1
Syntax is: KIMPAPER [-[b|p|h] filename [startaddress] first parameter switches
-h help
-p convert to papertape
-b convert to binary
second parameter (first if no parameters, assumed binary to papertape)
name of file to convert
.BIN for binary, forces conversion to PAPertape
.PAP for papertape, forces conversion to BINary
third parameter (assumed 0000 if not present)
startaddress for BIN to papertape conversion
Files of type .BIN wil force conversion to papertape.PAP
Files of type .PAP wil force conversion to binary .BIN

C:\MICROKIM\kimpaper mastermind.bin 0200
KIM-1 Mos Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1
C:\MICROKIM>kimpaper mastermind.pap
KIM-1 Mos Technology BIN papertape format conversion utility, Hans Otten, 2007 v1.1
Start address 0200 in file mastermind.BIN

Convert KIM tape to text

KIM Tape to Text is a utility to convert between binary format of a KIM-1 tape dump to a DOS text file.
The KIM tape dump is a binary file and is just a dump of part of the memory of the KIM-1.
This binary file can be a text file as used in editors Micro Ade or CW Assm/TED.
By using the tape write routine in the KIM-1 one can write an audio file on cassette.
When this audio file is captured on a PC as WAV file (22K, mono) this can be converted back to a binary memory dump with ED’s Utility KIMTape
These text files can be converted to DOS text files with this utility.

First open the binary file. If this is recognized as Micro Ade or CW Moser format, the Save as text file can be used.

Windows program.
Full source for Freepascal and Lazarus, no Windows dependencies. Compiled on 64 bits Windows 10 as 32 bit application.

Note on detection of assembler editor type
1. Micro Ade file must start with CR: when present this is Micro Ade
line nr follows 2 byte
line ends with $0D
file ends with $40
2. Assm/Ted by CW Moser starts with line number $10 $00
end of line is high bit set
There may be rare situations that a file starts with a $0D or a different line nr. You can force CW Mose detection by changing this to a sequence of $10 $00 $0D and if necessary blanks $20 to make it consistent. If in doubts: use an editor that shows the file in hex (Ultra Edit, or the free Notepad ++, Text editor PRO) and study the tape file.

Methods to get the binary file out of a Junior or KIM-1.
Read the record tape into a binary with Ed’s KIMTAPE conversion *see below). It is MS-DOS and runs fine in VDOS ( or DOsbox (slow).
Make a note of start address as shown by KIMTAPE.
Non-printing ASCII characters are filtered out of the resulting text file.

KIM Tape Convert WAV to BIN and BIN to WAV

Not my program, but so handy!

KIMTAPE v0.5 – tape conversion utility for KIM-1 and SYM-1 (2004-05-17) Local copy of

KIMTAPE allows programs stored on cassette tape to be decoded to a program file. It handles both MOS Technology KIM-1 and Synertek SYM-1 tape formats including HYPERTAPE. The reverse process – converting a program file to an audio wavefile is also possible, allowing one to produce perfectly regenerated cassettes. KIMTAPE works with 8-bit mono WAV, VOC or RAW audio files recorded
at 22050 samples per second.

Download: (MS-DOS) It is MS-DOS and runs fine in VDOS ( or DOSbox (slow).

The binary files in the KIM-1 program archives have been reproduced, from the original cassette recordings, with the tool KIMTAPE on a PC in a DOS box. See Eds DX-Forth and Utilities Page for this and other nice programs.
This program also makes it possible to reproduce the original cassette recordings that can be read by a KIM-1.

The files were made as follows: The KIM-1 cassette audio was connected to the PC audio input and (with e.g. Audacity) recorded as a wave file (mono 22KHz).
For example: qchess.wav
The wave file was then converted with KIMTAPE to a binary file (the exact content of of the KIM-1 memory when recorded).
And the KIMTAPE utility then displays load address (for example and tape ID

c:\kimtape qchess.wav qchess.bin
KIMTAPE version 0.5 17-May-04
infile: qchess.wav
outfile: qchess.BIN
Program 01 address 0200 checksum OK xxxx bytes done

This .bin file (any extension is fine!) is NOT a wave file! It contains the exact content of the KIM-1 memory when recorded. The size is exactly the number of bytes as stored in the memory of the KIM-1 and much smaller than the wave file. This binary file can be converted back to a wave file with KIMTAPE or converted to a papertape file with KIMPAPER:

C:\kimtape -M -A0200 -D01 -B2 qchess.bin qchess.wav 

As you can see: you have to specify the load address and the program ID. The B parameter indicates hypertape speed (2 here, slow)
The resulting wav file should be acceptable for the KIM-1. It is (as I have tested) acceptable as input for KIMTAPE!

All command parameters can be seen by typing KIMTAPE without parameters:

Pascal-M Cross compiler

Executables of cross compiler, workflow, sources, command line utilities.


Jolt and Super Jolt

On these pages some information on the Jolt and Super Jolt are presented, the result of a Internet research for Jolt, Super Jolt and Microcomputer Associates. Microcomputer Associates company played an important role in the 6502 SBCs, TIM, KIM-1 and SYM-1 all contain results of their work. It continued as Synertek Systems with the SYM-1 and more.

Jolt page

Super Jolt page

Microcomputer Associates page


6530 TIM IC

New in my collection: a TIM IC! 6530-004 2577


New commands for TIM

An article from Micro February 1979 shows how to enhance the TIM monitor.