Two years (and some months) have passed since we released the TIM 011 replica. Behind the scenes, we were working on improving the TIM 011 clone, and we present you the results here. The latest board we are releasing is TIM011B v2.2.
First, the hardware changes:
-

The new v2.2 TIM 011 board. The size hasn’t changed. Yet. We replaced the dynamic RAM with one static RAM chip. Dynamic RAM made sense in the 80’s and 90’s, because it was cheaper then. The multiplexers, refresh and wait state generator cirtcuitry has been removed, and the performance due to use of static RAM and no wait states has improved a little bit. This removed 4 TTL ICs from the board. Altough the system RAM IC is 512k in size, only 256k (as in the original) is used, for compatibility.
- The entire video circuitry has been reimplemented in a EPM7128 CPLD. This greatly reduces the power consumption, and improves the video output quality and stability. Also, the computer is not so picky any more to the type and make of video RAM used. This has replaced some 20 TTL ICs with just one CPLD. The CPLD also decodes the control port for the scroll register internally.
- The address decoding circuitry has been replaced with one GAL16V8. This change removed some 4-5 TTL ICs. The address decoder is still compatible with the original, with addition of some directly decoded outputs and one latch.
- Another change is that the IDE interface and connector are integrated on the main board. The IDE connector supports powering the CF adapters through pin 20.
- A RGBI (IBM CGA style) connector and header for RGBtoHDMI has been added to the board, in addition to the black and white composite output.
Hardware improvements that have been added are:
- Reset circuitry was reworked, so the reset signal is more reliable and does not cause lockups or misbehaviour of the CPU that was observed on v1.3.
- Power connector for the floppy drive / Gotek emulator has been added on the main board, so you can power everything with a single power supply.
- Video RAM footprint now supports both full size and shrink DIP 32k RAM, so a Cache RAM from an old PC motherboard can be used as video RAM.
- System ROM footprint has been extended to accept EPROM / Flash up to 512k. Only 256k can actually be used, but it is divided in two banks selectable by jumper. This enables users to have two different system ROMs. A jumper is added to enable usage of 64k EPROMs if this functionality is not needed.
- A connector has been added for a MicroSD reader module, connected to the hardware fast serial lines (TXS/RXS/CKS) of the CPU. Also, a chip select register for the MicroSD card is implemented in the address decoder GAL.
The improvements in the video circuitry, made possible with the use of the CPLD, are:
- The video signal is now more stable, thanks to the synchronous operation of the CPLD. No more propagation delays, vertical ghost lines, missed writes etc. The signal is clean and stable.
-

Comparison of the 16 color mode on v2.2 RGBI and composite output. Addition of a new video mode, 256×256 in 16 colours, software selectable. The video mode is fully compatible with the original operation, all new software that uses this mode will be usable even on original machines. The composite output stays in 512x256x4, and the RGBI output automatically switches between modes.
- Sync polarity inversion jumper, needed for some RGBI monitors like Commodore 1084.
- Composite sync or composite video selectable by jumper on pin 7 of the RGBI connector, needed for some RGBI monitors.
- Addition of a new horizontal scroll register. This, like the vertical scroll register, is software controllable. Quirk of this register is that it scrolls the screen by 4 pixels in 512×256 mode, and 2 pixels in 256×256 mode, which gives us 128 possible positions of the screen.
- On system reset, CPLD resets all of its internal registers to 0

Another addition is an expansion board which serves as a RGBI to VGA converter, using a cheap RP2040-Zero (Raspberry Pi Pico based) microcontroller. RGBI output is scaled to VGA resolution of 1280×1024, and both 4 and 16 colour mode work the same as on a RGBI monitor.
On the software side, Miodrag Milanović has been working on adding TIM 011 support in RomWBW. RomWBW is currently most used CP/M distribution for Z80 based SBCs, and is a welcome addition for TIM 011 too. The work is not yet finished, but a preview version can be downloaded here (soon). RomWBW, in addition to floppies and CompactFlash cards, supports the use of a MicroSD card, and can access FAT formatted partitions on various types of media, which increases interchangeability between modern and retro systems.
As before, all relevant downloads can be found on the TIM011 Resources page.
Now, the technical details.
I/O Address range 0xD0-0xDF is decoded by the CPLD.
- The original (vertical) scroll register is still at I/O address 0xD0.
- The horizontal scroll register (which, by design, scrolls by 4 pixels in 512×256 and 2 pixels in 256×256 mode) is at 0xD4 (and has only 128 possible values).
- To switch to 16 colors, write a 1 to I/O address 0xD8, and to revert to 512×256 write a 0 in the same register.
I/O Address ranges decoded by the GAL are:
- /FDCSEL: 0x80-0x9F
- /FDCDMA: 0xA0-0xBF
- /PRINT: 0xC0-0xC7
- /LATCH: 0xC8-0xCF
- /EXPSEL: 0xE0-0xE7, 0xF0-0xFF
- /IDECS: 0xE8-OxEF
The Latch is connected to the MicroSD Card reader /CS pin, and is activated by writing any value to address 0xC8, and reset by writing any value to address 0xCC. This is placed in the port range of the printer port, but original TIM 011 software never writes to these addresses, only to 0xC0 and 0xC1 and so it does not interfere with the regular workings of the computer.
And now, finally, the credits.
- PCB Layout by Rob Taylor @peepouk, Ian Cudlip @grandoldian and Marko Šolajić @msolajic.
- Schematics recreated and modifications by Ian Cudlip and Marko Šolajić.
- CPLD and GAL Logic by Marko Šolajić.
Special thanks to:
- Zoltan Pekić
- Demerzel
- The Board Folk Team
Additional thanks:
- Dimitriy Cvetkov for the original implementation of the RGB to VGA code for RP2040
- Demerzel, for the idea for the 256×256 video mode
- Miodrag Milanović, for getting RomWBW to work on the TIM 011
Leave a Reply