Beocenter 7000

It soon became clear to the Beocenter 7000 project team that software development was time-consuming, especially for a novice in the field who was also working on electronics development. To relieve the project team, an agreement was made with Texas Instruments (TI) to develop the program. This was done in Bedford, England with simulation run on a mainframe computer based in Texas, as neither a TMS9940 nor Beocenter electronics existed at the time.

The program was written by George, who came to B&O in Struer for a few days to deliver it. George arrived with a cassette tape of the program and a very large stack of papers showing the simulated results of each instruction as the program was executed.

At this time I was called in from B&O’s EDP (electronic data processing) department and seconded to the development department to assist with the transfer of the program from TI to the Beocenter 7000 project team. I had been employed in the data processing department at B&O since January 1969, first as a programmer and later as a systems programmer responsible for standards, systems software on the company’s Univac mainframe computer, and development of common routines for program development. I had experience in programming with assembler, Cobol, Fortran, RPG and various other languages, but no experience with microprocessors or electronics. I also worked on a project in B&O’s instrument department where test equipment based on an HP minicomputer was being developed for production testing of the four new units being developed with embedded microprocessors.

George and I went through his program together, after which he handed it over before returning to England. My task was to get the program running on the TI development systems that B&O had acquired, and with a temporary set-up of some electronics on a chipboard. The development systems consisted of a TI 990 minicomputer with an attached terminal consisting of keyboard, thermal printer and two cassette tape drives. Program editing was done with a line-based editor, which simultaneously copied the program from one cassette tape to the other. The minicomputer could emulate a TMS9940 with only a few changes needed for the final version.

The TI program written by George had two major problems. First, the program was about 4K in size, or twice the capacity of the TMS9940. Second, the program was only run in simulation and thus not tested. It turned out that, after executing a few instructions, the program had gone into a very small loop, so the vast majority of the large simulation output was repetition and totally useless and the majority of the program had not been simulated at all.

Within a month I managed to get the program running with all the features that were in the specifications for the product, but it still required about 4K memory. A scanned copy of a printout of the running 4K program on thermal paper is attached.

I suggested rewriting the program from scratch to see how many of the specifications could be included in a 2K version. I went ahead and worked on the task through the company’s summer vacation in 1977. At the same time, B&O contracted a couple of people from TI’s Danish division or distributor to rewrite the program for two TMS9940s that could communicate with each other, and thus have all the functions fit into the 4K that would then be available.

In August 1977 my program was finished and tested with only a few deviations from the specifications, mainly around timer programming, in order to reduce space requirements. These changes to the specifications were accepted and the contract for the dual-processor solution was terminated before a single line of code had been written. Although without B&O being able to avoid paying the contract price.

At the same time, the expected delivery date of the TMS9940 was postponed and the price was increased. This happened in several stages with an expected initial delivery price of around $38. B&O eventually could not continue to delay the project to fit the much delayed delivery date and instead chose to rewrite the program for an Intel 8048 processor. So I went to work on that towards the end of 1977.

Development was still with a chipboard model of the finished device, with parts being replaced as they were completed. Egon Bjerre has found a photo of a chipboard model for the Beocenter 7000. The model looks very primitive, but it worked very well. This was for the Intel 8048 version, as there are two 40-pin IC sockets (8048 + 8355) on the display board, as seen near the bottom left corner of the gramophone. Some of the parts were borrowed from other existing devices and connected with flying leads so they could be controlled by the microprocessor. The same chipboard model with a different display print was probably used in the development of the TMS9940 version of the Beocenter 7000 program.

Chipboard model of Beocenter 7000 for Intel 8048 processor (with thanks to Egon Bjerre for the photo)

The two sockets for 8048 and 8355 are mounted on the board with some long pins, which allow a simple measurement of signals with an oscilloscope or logic analyzer. Under development this allows measurement without having test points for all the signals that might be of interest. The probes are placed directly on the long pins. The development system’s ICE (In-Circuit Emulator) could be plugged directly into the socket of the 8048 processor.

Intel’s development system, the Intellec II, was contained in a large blue box with a screen and noisy fans. There was an external keyboard, dual external 8″ floppy drives (128K capacity), and a built-in EPROM (Erasable Programmable Read Only Memory) burner and in-circuit emulator (ICE). It ran the ISIS-II operating system. The emulator for the 8048 was obtained on a trip to the USA by Bent Møller Pedersen who visited Intel and persuaded them to let him buy a copy and take it home to Struer. The editor in ISIS-II was still line-based as in the TI system, but storing and assembling programs was somewhat faster with floppy disks than with cassette tapes.

The Intel 8048 had some disadvantages compared to the TMS9940. It had only 1K bytes of internal ROM and 64 bytes of RAM, had no multiplication or division (which were not needed for the Beocenter 7000) and was somewhat slower. To expand the program space, an Intel 8355 chip was used which contained 2K ROM in a 40-pin DIP (dual in-line package) that could also be used as an I/O expander. The ROM in the 8048 and 8355 was divided into pages of 256 bytes, with conditional jumps only possible to destinations within the same 256-byte page. Thus, the program preferably had to be divided into functions that could fit within the 256-byte boundaries.

One of the advantages of the 8048 and 8355 was that they were available in EPROM versions, 8748 and 8755, so that programs could be tested in their final versions without being connected by a thick umbilical cord to the development system. One could thus build temporary models of the Beocenter 7000 for user testing, EMI or RFI (ElectroMagnetic Interference or Radio Frequency Interference) emissions testing, etc. The EPROM versions could be erased under ultraviolet light and reused multiple times. It was not a quick process, but was a very big help during development.

Another advantage of the 8048 was that Intel had or would have agreements with other chip manufacturers for the production of the processor, a so-called second-source arrangement required by some large customers. Toshiba and Philips, among others, were licensed, with B&O using both of these alternatives for later products. This could result in some price reductions. Philips later developed their own variants with built-in I2C bus and with extended capacity, called the MAB8400 family. These were used in a later B&O TV among others.

However, the Intel 8048 was somewhat slower than the TMS9940. It could run at a maximum crystal frequency of 6 MHz which, divided internally 15 times, gave a cycle time of 2.5 microseconds. All instructions required one or two cycles for execution. The Beocenter 7000 used a slower and cheaper crystal at 5.185 MHz which gave a cycle time of about 2.9 microseconds.

The Beocenter 7000 program for 8048 was written with exactly the same features as the TMS9940 2K version, with the expectation that TI could deliver at a better price and with a single 40-pin IC (Integrated Circuit) instead of the two required by the Intel solution. The program ended up using all the pages of the 8048 and 8355 ROM, but with some free bytes at the end of almost all the pages. About 2.5K of program code. Fortunately, the 64 bytes of RAM were sufficient to complete the task. After final development, the program had to be sent to Intel where it was converted into a mask version, which was considerably cheaper than the EPROM versions in larger quantities. This process could typically take a few months before the first mask samples were delivered. The 8048/8355 program ended up going into production, and the TMS9940 was never delivered to the Beocenter 7000 project.

Some of the functions controlled by the microprocessor were reading and debouncing the keypad; controlling a 4-digit 7-segment display that could display time, tape counter, and the like; controlling a display to show function selections; updating the mains frequency controlled clock; controlling switching between functions such as fast forward to playback or gramophone playback to tape playback; time programming to start or stop a function at a specified time; reception and decoding of IR remote control codes; updating of tape counter; standby after some time without operation after completion of tape or disc playback.

RFI turned out to be a bigger problem than expected, with the microprocessor and external ROM being shielded in metal boxes on both sides and capacitors and possibly resistors on the outputs to smooth out the voltage level transitions and remove the worst spikes.

Next chapter: Beocord 8000

Beocenter 7000 with lid for secondary functions open
Texas Instruments Silent700 terminal similar to those used for TMS9940 program development

A Danish version of the Beocenter 7000 technical product information manual can be found on and downloaded from the Danish version of this chapter.

The following scanned listings are from an early version of the Beocenter 7000 program for the TMS9940. The program is almost 4K in size, and divided up into 4 modules, MOD1 to MOD4, and a linker listing, with the listings printed to thermal paper and scanned to PDF files.

The following PDF contains the first 9 pages of the program listing for the Intel 8048 version of the Beocenter 7000 program. It’s a faded listing, printed on a dot-matrix printer with a worn printer ribbon, so not very legible.

Leave a comment