Robotron KC 85/3

One of many East German tries to make a home computer. KC, standing for Kleincomputer (literally "small computer") was a Z80-based computer expandable by modules. Earlier KC 85/2 had only simple cassette-oriented system in ROM while /3 had also BASIC interpreter. ROM could be expanded by module too: there were assembly language development environments sold as ROM modules as well as FORTH language.
Not only ROM could be added by modules - there were digital input/output modules, RAM expansions or analog/digital (and vice versa) converters. If two module bays were too small, a 4-bay module expander called "Busdriver" could be installed.
KC 85 had some problems. First, the keyboard has been made around very uncomfortable buttons. Keyboard controlling chip, U807D, was eastern clone of SAB3021, a chip made to drive remote controllers. It was good as only two wires were needed to connect a keyboard, but any problem or interference in connection (jack mono plug) resulted in a garbage input. Another problem was with screen modes - there is literally no text mode in KC, everything has to be drawn by copying to IRM (Image Repetition Memory) buffer. It slows down a whole system. 
These times orders for computers were so big that these machines were mostly sold to schools, industry or public institutions and were not accessible in a typical market.

Manufacturer VEB Mikroelektronik "Wilhelm Pieck" Muhlhausen (part of Robotron kombinat)

Origin East Germany
Year of unit 1986
Year of introduction 1986
End of production 1990
Speed 1,75MHz
RAM 32kB expandable by modules
ROM 16kB
Colors: 16
Sound: Speaker, 2 tone generators.
OS: CAOS 3.1 from ROM
Display modes: 320x256 graphics mode, 40x32 emulated text mode.  


Media: Magnetic tape
ROMs in modules

Power supply:


Built-in semi-switching power supply giving +5V, -12V, +12V DC.

I/O: 2 module bays
RGB/composite output
Expansion connector
Tape connector
Possible upgrades: Many
Peripherals in collection:
 - RFT LC-R tape recorder
 - RFT KC85 floppy disk with controller
 - RFT bus expander (in this page too)
Software accessibility: TOSEC

I have two units. First has serial number 002000 and was used with "Busdriver" expansion device. It is mostly built around Soviet chips and was damaged - started after replacing 4 of them. The second computer was manufactured later (serial number >23000) and has more western chips.
The set consists of 8 modules: two 64K RAM expansions (for computers), Analog-digital converter module, Digital-analog module, Digital I/O module (containing 8255 and serial chip) and three 8K "User PROM" modules which are equipped with EPROMs. One of these modules contains some unknown "diagnostic program" while other one has Forth language as in then-available Forth cartridge.
The third module is the same as "Development" module, giving assembly language development environment, but it has not 2 kilobyte (2716) but 4K (2732) EPROMs. The modification which makes 8K board use 16K ROM is shown in photos.

Robotron KC 85/4

East German KC85, next version. KC85/4 has bigger graphics memory (64kB) and also 64kB of RAM. Because such big amounts of RAM had to be accessed by Z80, the main RAM was accessed in 32+16+16 way and video RAM was visible in 4 16K blocks. This method allowed to display and run faster, but lost much compatibility with KC85/3. Graphics allowed to address 1x8 pixel blocks and color them independently.
In KC85/4, Muhlhausen plant changed look and feel by changing case to white and making keyboard plug a DIN plug. Keyboard was still uncomfortable, made of hard plastic buttons and not so hard switches. Casing had only two LEDs: Power and System, no memory access LEDs.
It is interesting that in 1989 Robotron planned to introduce KC85/5, but they probably never sold it. KC85/5 was KC85/4 with improvements: It had 256kB of RAM and bigger EPROM, which containted CAOS 4.4 (4.5?) operating system. It was never sold but instruction manual has been prnted and can be downloaded from the link above. They planned even improved KCS900 computer, but it never left concept stage.

Manufacturer VEB Mikroelektronik "Wilhelm Pieck" Muhlhausen (part of Robotron kombinat)

[old photo]

Origin East Germany
Year of unit 1988
Year of introduction 1988
End of production 1990?
Speed 1,77MHz
RAM 64kB +64K Video RAM
ROM 20kB
Colors: 16
Sound: Speaker, 2 tone generators.
OS: CAOS 4.2 from ROM
Display modes: 320x256 graphics mode, 40x32 emulated text mode.  


Media: Magnetic tape
ROMs in modules

Power supply:


Built-in semi-switching power supply giving +5V, -12V, +12V DC.

I/O: 2 module bays
RGB/composite output
Expansion connector
Tape connector
Possible upgrades: Many
Peripherals in collection:
 - RFT LC-R tape recorder
 - RFT KC85 floppy disk with controller
Software accessibility: TOSEC?

My unit was in a very poor condition, it looks like someone sat on it, and before it was electronically damaged. RAM was bad, PIO and CPU was out. It has been repaired and it works now.

UPDATE: 02.2016: Second unit came in better condition, only video RAM was damaged (3 chips). I cannot check FDD and controller because I don't have proper connector cables.

The IC placement on video board can be seen on this drawing.


Contents Loading programs Making cassettes Pinouts Links

Loading programs

After powering up, the computer should clear screen, produce a blue background and then write CAOS (Cassette Aided Operating System) prompt with available commands. These commands are important: LOAD (loads data from tape), SWITCH (switches memory to/from modules and other places), JUMP (executes code from memory area), MENU (displays commands menu). Programs may require JUMPing to them or just add their entries to menu.

To load a program from tape, it's needed to know is it a machine-code program or BASIC program. If it's the machine code program, it must be loaded by CAOS. The structure of command is:

LOAD nnnn

Where nnnn is a starting address. After pressing Enter, play the tape. If no address is given, it may load the program as specified in a header.
During loading, the screen should show the name and then counting blocks. If only blocks are shown it means that the program has no header and won't be loaded properly. If blocks are FF or out of order, volume is too high (FF) or too low (out of order).
After loading computer may return to CAOS waiting to proper JUMP instruction. First MENU should be tried as some programs install themselves as menu entries. Sometimes it may even hang after loading, then pressing reset button will make menu with new items reappear.

Here you can download a WAV file with memory/module test  program. LOAD it (no parameters), it may hang at  the end, usually it should let the cursor move (in 85/4 beeping) and type MENU for new menu. If it hangs, reset your KC, new items may appear on CAOS menu regardless of reset performed.

The loading header screen is similar to this:

        0200 0400
02> 03> 04> 05>

BASIC routines should be loaded with "CLOAD" command in BASIC or "BLOAD" if it's a binary. May be used with program name:  CLOAD "PROGRAM" .

Loading software from cartridges is quite difficult. Generally you have to JUMP x where x is a number of bay (e.g. JUMP C or JUMP 8) but not always. Some cartridges must be SWITCHed first. The syntax is as follows


Where X is a module bay number and Y is a control word with address and control byte. For example Forth cartridge in bay C must be loaded as follows:

SWITCH 2 0  <-- Turn off BASIC ROM occupying menu space. (2 is BASIC, 0 - RAM, 1- IRM)
SWITCH C C1 <-- Place the cartridge from module bay C on address C000 with 1 as control word (turn cartridge ON).
MENU <-- Display menu with FORTH commands

While diagnostic or development cartridges have automated routines for doing it and may be just JUMPed (e.g. JUMP C) to it.

Making programs on cassette:

There is a data converter in JKCEMU emulator which can convert between KCC format and a WAV file, but it has a problem of not adding headers to many machine code programs even if load/start addresses were explicitly given. Better WAVs are generated b toolchain of KCEMU emulator. Download it freely from author's site looking for "Kassetten transfer" file ( Then select:
 - Automatische speichern - checked
 - Kodierung: KC85/1..4, KC87
 - In: as selected by program.
 - Out: Datei KCLOAD.WAV
Now click "Speichern auf Kassette..." and select KCC file. The file will be rendered to KCLOAD.WAV.

In every program, it's good to try with both converters, JKCEMU and KCEMU. JKCEMU will read from KCC and show you starting addresses. To run converter in JKCEMU click Extra->Werkzeuge->Dateikonverter.


All as seen from the user side, not the opposite one:

Cassette port:

1 - Cassette OUT (or Sound left)
2 - GND
3 - Cassette IN
4 - Sound R
5 - Tape ON (TTL).

RGB port:

A1 2 3 4 5 6 7 8 9 10111213
B1 2 3 4 5 6 7 8 9 10111213

A3, A5, A7, A9, A11, B2, B9 - GND
A4 - Blue
A6 - Green
A8 - Red
B3 - Sound output
B10 - Composite video out.
All other pins are not connected.
To make a plug, you can cut an old 5.25" disk drive ribbon plug in pin 15 and then polish it smoothly to 14 contacts. Then remove last contacts from both sides and stick a piece of plastic in their place to make plug not slide in PCB.

Expansion port:

(from KC85/3 System Handbook).

As I've seen in some photos, link between "Busdriver" and KC 85/3 is just a 1:1 connection, but I haven't tested it!

Useful links:

 - - Schematics
 - - Lots of information, manuals and downloads.
 - - Some docs, tips, ROM dumps.
 - - Good source of information, look for "Dokumentationen" for manuals.
 - - Some service documentation, mostly for modules and floppy disk.
 - - I recommend to visit this site as it has a very good resources, System handbook and good PCB module photos.