Teleram 4000 / T-4000 Vintage Computer with Magnetic Bubble Memory

In this blog post, I restore a Teleram 4000, a portable vintage computer from 1983 that ran CP/M and used Magnetic Bubble Memory.

Teleram 4000 Video – Teardown, Power-Up, Speech Synthethis, Bubble Memory

Motivation

Anyone who has read this blog a few times knows my fascination with computers that used magnetic bubble memory. The technology was only in use for a few years, and the computers that used it were fairly rare. The Grid Compass is a prime example, and another computer that I have restored. I previously restored a Teleram Portabubble, which is a much larger computer with a CRT screen. The Teleram 4000 is more of a notebook-sized portable, similar to a TRS-80 Model 100 in size.

Teleram 4000 Computer showing directory listing

Teleram created two computers in the series, the T-3000 and the T-4000. As far as I can tell, the primary difference is that the 4000 offered an 8-line display whereas the 3000 only offered a 4-line display. Both computers featured 64KB of RAM, a Z80L CPU, and either 128 KB or 256 KB of bubble memory. The computer has a serial port, and typically would come with a built-in terminal program.

Teardown

The batteries were undoubtedly shot and the charging voltage is unknown and undocumented, so I decided to tear it down before powering it up. First, I removed the case top:

Teleram 4000 with case top removed

We can’t see the bubble memory or the CPU because they’re under the keyboard, but we can see several lead acid batteries. The cells are 2V / 2.5 AH. There are a total of 6 cells configured as two packs. Here are a couple more pictures:

Teleram 4000 Batteries
Batteries, Top View, in case we ever need to duplicate the wiring again

After removing the batteries, I removed the keyboard, and we can get a look at the bubble board:

Teleram 4000 Vintage Computer, keyboard removed

I removed the bubble memory board and took a closer look:

Teleram 4000 Bubble Memory PCBoard

The bubble memory is an intel 7110-4 along with the 7220 chipset, a very common bubble memory subsystem for the day. Interestingly, there is a second socket, along with drivers for a second bubble memory. It would be relatively easy to add a second memory device and extend the capacity to 256 KB. The only wrinkle would be the need to format the new bubble memory and write an operating system image to it. The bubble memories do not work as independent devices; I think their data in this configuration would be interleaved.

Under the bubble memory board, we can finally see the main board:

Teleram 4000 Main Board

There are two ICs that are obscured by double-face tape. They are a 27C32 EPROM that holds the bootstrap and a Z80L microprocessor. There’s also 64KB of DRAM, a keyboard controller, and a bunch of traditional logic. All together, it’s relatively simple.

Bypassing the batteries

The battery configuration is interesting. There are two independent banks that are a nominal 6V each. These banks are connected in parallel most of the time. However, when the bubble memory is accessed, they are switched in series to provide the 12V supply to the bubble memory. After a short time delay, they switch back to parallel. This creates a bit of complication. We can’t simply power the computer with a +12V supply, because the 6V supply is actually used to power the main logic. My best solution was to power the computer by wiring up two independent power supplies to the battery connectors.

Each supply I powered with +6.2V with a 1.4 A current limit. Make sure to use independent supplies with no common ground, otherwise you’d be up for a rude surprise when they were put into series. My tests showed the computer consumed up to about 1.4A on the 6 volt supply (across both packs, when in parallel). When it switched into series mode, it would typically pull 100ma from the second pack.

It runs CP/M

The computer runs CP/M 2.2

CP/M Boot Screen

and there are a handful of programs present

Directory Contents

Most of the stuff here is standard CP/M stuff such as STAT, PIP, DDT, ED, etc. We have the assembler, ASM, and the loader, LOAD, as well. There are a few Teleram-specific programs such as TTALK and ASSIGN. TTALK is a terminal program that can be used to connect to external devices over the serial port. I used it in my demo video to interact with a Votrax Personal Speech System (PSS).

PIP may be easily used to transfer ASCII text by sending it to LST: or LPT:, or reading it from RDR: or PTR:. RDR: is by default assigned to the keyboard/LCD, so you’ll need to “STAT RDR:=PTR:” first to make RDR: use the serial port.

There’s also a CONFIG program that I think will allow you to configure some of the settings, including possibly the assignments for the devices like RDR:. The ASSIGN command also allows you to remap devices, in a more granular way than STAT.

My github repo contains disassemblies and reverse-engineered manpages for TTALK, ASSIGN, and a few of the other programs.

Dumping the Bubble and the Boot ROM

I was worried about the possibility of damaging the bubble by accident. With no external floppy drive and no Teleram corporation to send it in for repair, that would render the computer unusable. As such, one of my first goals was to dump the contents of the bubble memory.

I used Claude Code to write a Z80 assembly program to read all the sectors on the A: drive and print them in Intel Hex format out the serial port. I then captured them and converted them back to a 128KB binary image. This should be sufficient to restore a bubble memory if the need ever arises. The disk image is in my github repo.

I also made a copy of the 4 KB Boot ROM and I had Claude Code disassemble and comment the source code. The Boot ROM includes a full monitor that is triggered by NMI or by an unreadable bubble memory on boot. How you trigger the NMI yourself I don’t know — it might be as simple as a special key combination.

Adding BASIC

The disk image did not come with Microsoft Basic (MBASIC). In fact, there wasn’t even enough free space to hold it. I had to delete DUMP.ASM and the various text files (AFILE.TXT, FILEA.TXT, FILEB.TXT, etc) to make enough room. After that I reverse engineered the TTALK protocol, and I used TTALK to send the binary MBASIC.COM over to the computer. This allowed me to write basic programs and demo them in the video.

The reverse-engineered protocol and a python-based send/receive tool is included in my github repo.

Adding Batteries

I couldn’t leave the portable computer permanently tethered to a power supply, it begged to have batteries reinstalled. Using replacement lead-acid batteries was out of the question as they are both expensive and have limited shelf life, especially when left discharged. They’re also prone to leak. Instead, I constructed myself a pair of LifePO4 battery packs:

Replacement Batteries using LiFePO4 cells

Each of these used a pair of 3.2V LiFePO4 cells together with a small BMS pack. That yields a nominal voltage of 6.4V per pack. This seems to work well, though charging them has left me with a little bit of caution. Normally you would charge these at approximately 7.3 V per pack (3.65V per cell). I’m not sure how much voltage the T-4000 was designed to take. There is some loss from the charging jack to the battery packs — I previously measured 9V at the charge jack to be 6.8 V at the cells. I’ve applied as high a voltage as 9.4V, which should in theory charge at approximately 7.2 V per pack. However, 9.2V makes me feel a bit safer. The one issue I’ve had is that they don’t charge very fast. At the 9.4V input I’m only seeing about 200 – 250ma of charge current. But it gets them topped off eventually.

Expanding the Bubble

One bubble only has 128 KB, and the CP/M distribution took almost this entire space! I was able to delete a few things and squeeze in Microsoft Basic, but with almost zero space leftover. The answer was to expand from one bubble to two:

Teleram T-4000 with two bubbles installed

I was able to scavenge two spare 7110-1 bubbles from old PLC boards and install them. The other change that was needed is the footprint to the right of the rightmost bubble. If you look at the earlier pictures in this blog post, you can see there was a 20-pin footprint with a wire soldered from pin 13 to pin 20. This was a footprint for the second 7242, which was not used in a single-bubble configuration. Curiously, Teleram had apparently produced a 256 KB board, then manually removed the second bubble, manually removed the second 7242, and then added the bodge wire (which forces !enable low to the drivers for the second bubble). Enabling the second bubble was just a matter of reversing those changes. I scavenged the 7242 from the same PLC board I scavenged the 7110 bubble memories from.

Now, at this point, it might have just worked. The bubbles are addressed sequentilly, and the CP/M filesystem will automatically make use of the available space. However, I did not want to risk my original and only known-working bubble becoming corrupted, so my plan was to replace both bubbles and write a new CP/M image to it.

To do this, I patched the motherboard’s ROM with a serial loader that can be used to load programs into RAM. I used this to then load a bubble-writer program which was designed to receive bubble contents over serial, block-by-block, and write the blocks to the bubble. I then constructed a raspberry pi program to stream the replacement bubble. This took a few minutes at 9600 baud, but left me with a functional 256 KB filesystem. The process and the tools are in my github repo.

Finally, we can have Zork!

The double-bubble expansion was necessary for one huge important purpose — there wasn’t room enough on the single bubble for Zork. With 256 KB, there was now plenty of room. I copied Zork over via TTALK. Being a standard CP/M system, it had no issue playing Zork!

Zork on the Teleram 4000

Teleram vs the TRS-80 Model 100

Portable computing · 1982–1983
Teleram T-3000 / T-4000 vs. TRS-80 Model 100
Three battery-powered portables aimed at the same field-reporter market. Teleram built powerful CP/M workstations with bubble-memory storage; Tandy built a cheaper, lighter instant-on appliance — and won the segment.
Feature Tandy / Radio ShackTRS-80 Model 1001983 TeleramT-30001983 TeleramT-40001983
Released April 26, 1983 February 1983 November 1983
CPU Intel 80C85 (CMOS)2.4 MHz CMOS Z80 (Z80L) CMOS Z80 (Z80L)
RAM 8K – 32K 64K 64K
ROM 32KOS + applications 4K 4K
Display 8 × 40, text240×64 pixel graphics 4 × 80, text only 8 × 80, text only
Operating system Proprietary ROM menu OS CP/M CP/M
Mass storage Battery-backed CMOS RAMno internal disk 128K bubble memoryexpandable to 256K · CP/M drive A 128K bubble memoryexpandable to 256K · CP/M drive A
Bundled software BASIC, TEXT, TELCOM, ADDRSS, SCHEDLin ROM MBASIC, assembler, teleTalkno word processor not documented
Modem Built-in, 300 bauddirect-connect Novation Cat (acoustic)external, included not documented
Other I/O RS-232, parallel, cassette, barcode, system bus RS-232C, teleConnect bus RS-232C, teleConnect bus
Battery 4 × AA, ~20 hr+ internal NiCd memory backup Sealed lead-acid pack Sealed lead-acid pack
Price (1983) ~$1,099 – $1,399 $2,995 not documented

Display is the only confirmed difference between the T-3000 and T-4000 — the T-4000 doubles the line count to 8 while keeping the full 80-column width. CPU, memory, bubble storage, I/O, and battery are identical.

T-3000 date: introduced February 1983 (in development since May 1982); one contemporary review placed its market debut in mid-1982.

Model 100 price: ~$1,099 (8K) to $1,399 (24K) per Wikipedia; an entry price near $799 is also widely cited for launch.

T-4000: CPU, RAM, ROM, bubble storage, I/O, and battery confirmed identical to the T-3000 from hardware inspection. Bundled software, modem, weight, and price remain undocumented.

Sources: period press · Creative Computing, Jan 1984 · manufacturer brochures · hardware inspection

In short, the Teleram 3000 / 4000 are much more capable computers than the Model 100 series. However, the capability comes at a cost in both money and weight, and this led to dominance of the Model 100.

Conclusion

In conclusion, this is a really fun little CP/M computer if you can find one. The batteries are still available, albeit expensive, so it could probably be restored to true portable operation if you wanted to. It should be possible to expand the bubble memory, though it would take some effort to write a new OS image. Expanding the bubble memory would make it a lot more usable, probably provide sufficient room to load a few games (Zork!).

There is an external drive that I’d love to have, if anyone has one available. I would also love a copy of the technical manual. There’s an external bus connector that is not documented.

Leave a Reply

Your email address will not be published. Required fields are marked *