TIM 011: A new life for an old computer

Early TIM 011 revision, with 5,25″ floppy drive. Photo from promotional leaflet by Institute “Mihajlo Pupin”

TIM 011 was an 8-bit computer from 1987. that was developed at the Institute “Mihajlo Pupin” in Belgrade. It was envisioned as a school computer, for the informatics courses in programming. It’s developers were Nenad Dunjić, Milan Tadić and Ljubiša Gavrilović. The computer is based on Hitachi HD64180 CPU, a highly integrated Z80 derivative working on 6,144 MHz. The CPU integrates two Serial ports, DMA controller, timer based interrupts, and a MMU which is capable of adressing up to 1 megabyte (!) of memory.

The configuration of the computer includes 8k boot ROM, 256k of RAM, floppy disk controller with one 800k 3,5″ drive, and 32k of video RAM, with a built in green monitor. The display is capable of 512×256 resolution and 4 colors (black + 3 shades of green), but is mostly used as a text display for 80×25 text which is rendered in software trough a terminal emulator. The display controller is not standard by any means – it is completely done in TTL logic, running simultaneously with the CPU (albeit at double the frequency, 12,288 MHz). The computer was delivered in a case with a 12″ monochrome monitor attached to it, and a 95-key keyboard which runs it’s own CPU, CDP1802. For external connections, there is a parallel printer port and two serial ports (one of which is dedicated for the keyboard). Provision for one expansion port is made on the motherboard.

BYTE Magazine, September 1985 issue.

While not revealed at the time when the computer was announced and produced, it is based on an project published in September 1985 issue of Byte magazine, a single board computer named SB180 by Steve Ciarcia. Hardware wise, the computer itself is the same thing, just without the display controller.

The computer runs CP/M, more precisely ZCPR3, with ZRDOS. This was an open implementation of CP/M, compatible with CP/M 2.2. As CP/M knows how to use only the base 64 kilobytes of memory, the rest of the RAM here is used as a very fast RAM disk, supported by the CPU’s DMA controller.

Unfortunately, there are not many TIM 011’s left in the world. During the production run, according to Wikipedia, some 1200 pieces were made, destined for school use (with an optional XT based server for the teacher, TIM 020) and the computer was also offered in kit form trough Računari magazine and its partners, much as the Galaksija back in 1984. Unfortunately, in the late 80s when the computer was made, CP/M was already outdated, PCs were taking over, so this was not a commercial success. In the end, the assumption is that today there are not more than 10 of them left. But, this fact did not pose a problem for sparking people’s interest in the machine, in the age of retrocomputing rennesaince. Since there is virtually no documentation on the machine, apart from the articles in the “Računari u Vašoj kući” magazine, Žarko Živanov and myself started work on finding out what is what, how the display controller works, how the video memory was organized, how the software terminal emulation works, what are the modifications to the operating system, and so on. With these findings, Žarko was able to start working on graphics libraries and some tools for the system.

TIM 011 running in MAME

This work was highly aided by efforts of Miodrag Milanović, who added the support for TIM 011 in MAME (since v0.263 even wit AY sound support!). With this, I started reverse engeneering the operating system. It was clear that everything was based on SB180’s operating system, just with slight modifications. The terminal emulator was a separate piece of software, which was needed to run at startup so you can get any output on the screen. Even the command to initialize the RAM disk was enhanced with making the shadow copy of the CCP in RAM disk. The OS has a lot of hooks, extensions etc., and it will take a while to figure everything out. But this will be documented in a separate post.

We revealed our findings and achievements on BalCCon2k22 conference, and you can watch the video below:

Žarko Živanov continued with software development, and with the help of Leuat added the support for TIM 011 in TRSE and also implemented the graphics routines for tile-based graphics, pixel graphics, and text in TRSE. Žarko’s game, TimTris, a Tetris clone for TIM 011 which was written in TRSE, ranked 5th in the Game Dev compo on Revision 2024. I am still working on reverse engeneering the system software, greatly aided by MAME and Ghidra. I publish the work on https://github.com/msolajic/tim011-system-software

Hardware wise, the computer has some quirks. The way it generates video and sync signals is not quite compatible with modern monitors. The sync signals are too long, and an external board is needed to shorten them. Also, it uses a serial keyboard, and while a PC keyboard interface was made available at the time of release, it’s implementation supports only XT keyboards, which are nowadays hard to find. The floppy drive also requires the READY signal on pin 34, but it is more practical today to use a Gotek floppy emulator. It also has many software quirks, but these rightfully deserve their own separate post.

TIM 011 replica by the Board Folk team

In 2024, Zoltan Pekić approached Rob Taylor, who is very well known in the retrocomputing community with high quality reproductions of many of the 1980’s 8-bit computer PCBs, with the idea of recreating the TIM 011 main board. With help from Ian Cudlip, Rob decided to tackle the task of recreating the board in KiCad. It has already been done before by user Demerzel from Benchmark forum, but there was no feedback if the replica board actually worked. Ian Cudlip and Rob Taylor, apart from redrawing the schematics and the PCB layout in KiCad, also created some addon boards – PS/2 to Serial adapter, Sound card with AY-3-8910 or AY-3-8912 sound generator chip and so on. The first revision of the board does not deviate from the original design, only some “quality of life” improvements – different power connector as the original is unavailable, different footprint for the reset switch, and so on. You can find the repository HERE. For easy and quick start, I compiled some of the resources needed for using the computer HERE.

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.