BBC Micro Second Processors

Introduction

Unique for microcomputers of the time, a number of different second processor units could be connected to the BBC microcomputer as to increase its performance so that programs ran faster, could handle more text, make better use of the high resolution graphics and so on. The BBC micro had a specialised interface for second processors known as the 'Tube' interface but the main Tube hardware (an ULA) was in the second processor unit, lowering the cost of the BBC Micro somewhat.

With a second processor connected, the CPU in the BBC micro became the 'host' and handled just the I/O (screen, keyboard, disk, etc.) while the second processor, the 'parasite', actually ran the main program. The second processor and BBC Micro communicate with each other over the Tube connection by sending messages to one another and this is done through a number of memory registers.

Please read the following sections to learn further about the various types of second processor for the BBC micro including the Master.

Unless otherwise stated the screenshots on this page were taken using an Elgato capture card using the BBC Micro's RGB video connection upscaled.

6502 Second Processor

The first second processor add-on for the BBC micro was known as the '6502 Second Processor' and was available to buy in April 1984 for £199, which was about half the cost of a BBC Micro. The second processor is compatible with the BBC Model B and it is also compatible with the BBC Master. The 6502 second processor features a 3MHz 6502B (1MHZ faster than the BBC micro's built-in CPU) and 64KB of integrated memory (same amount of RAM that the BBC Model B+ had as main memory). The unit is large, as deep as the BBC micro itself, and earned it the nickname 'cheese wedge' due to its resemblance to a slice of cheese as well as, no doubt, its colour.

When the BBC Micro boots with a second processor connected and powered on the main language interpreter is copied to the second processor's memory through the Tube interface. Although the language program is transferred to the second processor's memory, taking up 16KB of memory, that still leaves 48KB of memory for programs.

The BBC Micro's main memory (32KB for model B) can now be used purely for I/O and the second processor's RAM for the program and its data to be run and this works with both the standard BASIC and HIBASIC. Because the BBC Micro's CPU is handling I/O, which includes responding to interrupts, programs can be executed much faster on the second processor, as much as twice as fast. Even standard BASIC programs, which have no awareness of a connected second processor will run faster and the added RAM can be used by new programs.

For power, the 6502 second processor runs off its own mains derived power supply (fortunately not the same as the one in the BBC micro so should be more reliable) and for communication it connects to the BBC micro's tube connector using a 40-way short ribbon cable. The connector, however, is not keyed so it's possible to connect the wrong way (although would require some effort) so make sure the triangle on the second processor connector matches the triangle indicator on the BBC micro's underside.

Unlike the BBC Master which supports second processors without any upgrades, to use a second processor on a BBC model B/B+ the computer will need to have the Acorn DNFS ROM (or other, such as Watford DDFS 1.54T) fitted since it contains the required tube software (the second processor was usually supplied with the required ROM). With the second processor connected you can power on the second processor and then the BBC Micro and you should be greeted with a message stating 'Acorn TUBE 6502 64K'. If you do not get such a message, power off the BBC Micro and second processor, double-check you've inserted the tube connector the right way and all the way in and try power on again. You may have to troubleshoot further if the second processor still isn't detected such as by trying on a second BBC Micro, if you have one. It's a good idea also to inspect the BBC Micro tube connector pins to see if any are bent or have become dirty and clean as necessary.

Instead of powering on the second processor first you can turn it on after the BBC Micro is powered on and then press CTRL+BREAK to reset the computer which should then display the second processor message previously mentioned. If at any time you want to stop using the second processor and use the BBC Micro as 'standalone' then simply switch the second processor off and press CTRL+BREAK.

Originally supplied with the second processor is the HIBASIC ROM, also known as BASIC 3, which can only run on the second processor and has a number of bug fixed compared to the previous version and supports both COLOR and COLOUR keywords to select text/background colour to use (the BBC Micro was released in the US but did not do well). When using the HIBASIC ROM with the second processor you get over 45KB of memory for BASIC programs: PRINT HIMEM - TOP reports 45054. If you want to have both the BASIC V2 and HIBASIC ROMs fitted you will need to install some kind of switch to either enable the BASIC V2 ROM or the HIBASIC ROM and DNFS ROM since having both versions of BASIC installed will cause the computer to boot but freeze with a continuous bleep as it needs the second processor. Fortunately, my BBC Micro had already be fitted with a switch to choose between the DNFS and DFS ROMs so with some ROMs switched around I can now switch between the two versions of BASIC. Note that even with HIBASIC and DNFS ROMs enabled the second processor must be switched on before turning on the BBC MIcro otherwise it will freeze at boot with a continuous bleep.

Perhaps due to its high cost the second processor did not sell too well and not much commercial software was released that could take advantage of the second processor but examples of software that supported the second processor include an enhanced version of Elite, Econet fileserver (level 2 and 3) and a special version of View called Hi-View. It's possible for software to detect the second processor's presence and adapt as to use the extra memory. This can be done with using OSBYTE call &EA and by setting Y=&FF, X=0. If the result in X, is 0 if there is no Tube device or &FF if the Tube system is present.

To be able to run software on the second processor that was originally written without the second processor it must not access memory in an absolute, hard coded way and instead make use of the built-in O/S routines (OSBYTE, OSFILE, etc.).

Please see this link for the 6502 second processor manual:

http://chrisacorns.computinghistory.org.uk/docs/Acorn/Manuals/Acorn_65022ndprocUG.pdf

I did a number of very simple tests to see how much faster the BBC micro is with a 6502 second processor connected and the results are interesting. Firstly, I wrote and ran the following program in BASIC:

FOR X=0 TO 10000:NEXT

When run on a BBC B and the second processor turned off the program took roughly 6 seconds to complete and with the second processor turned on it took 4 seconds.

For the next test I used the same program but just made the loop run ten times longer:

FOR X=0 TO 100000:NEXT

The results are that with the second processor turned off the program lasted around 52 secs and with the second processor turned on the program took 38 seconds. So with both tests using the second processor did not result in the simple programs running twice as fast; this makes sense as the second processor is only 1MHz faster than the host CPU.

After doing the tests I came across a site that makes use of similar tests and it's a very useful read for speed comparisons with the second processor:

http://beebmaster.co.uk/BeebHelp/6502Test.html

In particular, it shows that graphics operations won't run any faster using the second processor since the (slower) host CPU still has to run them.

80186 Second Processor

The 80186 second processor connected either internally or externally to a standard BBC Master 128 with a mouse and four software disks formed what was known as the BBC Master 512. The intention was that it could be used both as a BBC computer (by having the internal tube turned off) and as an 8088/8086 PC compatible (by having the internal tube turned on) with the equivalent of CGA graphics emulated in software and equivalent of MS-DOS V2, in the form of DOS Plus. The 80186 second processor can also be used externally with a BBC B/B+ by using an adapter box provided that the micro is fitted with tube software and a WD1770 disk controller with ADFS support in order to load the required software.

The Intel 80186 is a 16-bit CPU mostly compatible with the 8086 and on the second processor board it is clocked at 10 MHz. The 80186 second processor card has 512 KB on-board memory (forming 8 segments from the CPU's perspective), but up to 1MB in theory could be accessible with an appropriate add-on memory board, as required by software that needed the extra memory. You can see an 80186 second processor board with what looks to be an expansion RAM board fitted:

https://stardot.org.uk/forums/download/file.php?id=61912&mode=view

Interestingly, there are two ROMs on the expansion board which possibly replace the two ROMs that otherwise would be on the main 80186 board.

Costing £400 when it was first released, similar price to a BBC Micro, the 80186 second processor bundle was certainly an expensive purchase and considering that ideally two 80-track floppy drives were needed, that would have set you back even more. The BBC Master 512 gave better performance than a typical PC at the time and it was cheaper and had slightly better screen resolution. However, an issue with the 80186 second processor was that only PC software written to not directly access the hardware of a PC can run on DOS Plus but often PC programmers would try to get as close as possible to the hardware, which happens to ruin compatibility with the 80186 second processor board.

The bundle disks contained software from Digital Research including DOS Plus which provided an MS-DOS type environment and allows a wide range of disk formats to be usable - 800K and 640K Acorn DOS Plus, MS-DOS, CP/M and RAM disc - with utilities to convert between the various formats. The other software in the bundle is the GEM (Graphics Environment Manager) operating system which made use of a two-button mouse that plugged into the user port and the business oriented operating system CP/M-86 which included a Z80 emulator (unfortunately it ran a lot slower than the equivalent real world Z80).

The 80186 second processor board contains its own software which as well as allowing DOS-Plus or other software to be loaded it also has an 80186 monitor which can be accessed by pressing the break key. You will then get a star prompt that allows you to type BBC MOS commands as well as some monitor specific commands.

For further reading on the BBC Master 512:

http://www.cowsarenotpurple.co.uk/bbccomputer/master512/index.html

For software to be used with the BBC Master 512:

http://www.cowsarenotpurple.co.uk/bbccomputer/master512/software.html

I bought from ebay an external 80186 second processor unit made by Watford Electronics for £80 which is labelled simply as 'CO PRO ADAPTOR' so it's possible the enclosure is generic and can be used with any compatible second processor. The unit is metal (and thus heavy) and measures approx 200 x 220 x 65 mm (w x l x h), which is smaller than the 'cheese wedge' second processors. While being metal means the adapter box can take a lot more heavy handedness, unfortunately mine has rusted and looking online the rusting seems common (and can be worse that what my one has).

Coming out of the back of the unit is the mains cable but the tube interface cable can be tucked inside (the cable can be passed through a window on one side of the unit when the second processor is in use). The top of the unit is on a hinge so you can easily lift it up to access anything inside, which is very neat (but dangerous as mains voltages are involved). On the front is a power switch (which on mine needs replacing) and a red power LED.

Inside we find there are three PCBs, one of which is a fairly small power supply board which takes in the mains, rectifies and smooths it so it looks to be a very simple linear power supply. I would strongly recommend if you get one of these to service or have someone service the power supply by at least replacing the smoothing capacitor.

The second processor board is on top and looks to have been made by Acorn since the PCB is marked as 'Acorn computers 80186'; on the underside it's specified as 'iss 1' (issue 1). You can remove the board and install it internally in a BBC Master, which would be a good way to test it first, as I did. The chips of interest on the second processor board are:

80186-10 CPU by AMD. Note: the '1978'marked on the chip actually refers to the 8086 release date. Looking at photos I found online the printed text and logo on the 80186 is rotated 90 degrees compared to other photos which could be confusing should someone need to install the CPU in the socket (which is why you must always go by the pin 1 marker on the chip). Note that the 80186 does get quite hot to the touch even when it's idle.

ACORN AMI 8616KFV 2201.266 unknown chip.

x2 D2764A 8KB UV ROMs for software.

x16 HM50257 262,144 x 1 DRAM.

The third board, the biggest and the one at the bottom, has a 78S05 2A +5V voltage regulator, glue logic, the two headers for the second processor board and the tube interface connector; the power switch and power light also connect to the bottom board.

I installed the 80186 second processor board into my BBC Master, making sure that the pins protruding from the bottom of the board went in as far as possible into the two headers on the Master's motherboard. For reference I looked at some photos online which show the ROMs on the second processor PCB are toward the rear of the Master and I noticed a few interesting things about the 80186 CPU.

When I powered on my BBC Master I was greeted with:

Acorn TUBE 80186 512K

Acorn 1770 DFS

BASIC

As soon as the Master is powered on with the 80186 active it will attempt to load software from a connected drive (drive 0) and you will see a flashing cursor while trying to load. If there is an issue loading the software or you just don't have the software or don't even have a disk drive connected, eventually you will get this error (or similar):

Disc error 50 at :0/000000

And you will be dropped into a star prompt, which is helpful as you can issue O/S commands (the 'star' commands, but there is no need to type the star before the command). If you find the 80186 isn't detected then first make sure the tube is enabled using:

*CONFIGURE TUBE

You can also issue either *CONFIGURE INTUBE to set preference for the internal tube or *CONFIGURE EXTUBE for preference for external tube, but that only really matters if you have both an internal and external second processor connected. Press either press CTRL + BREAK or power off and on again and hopefully the 80186 will be detected. If not, you can check that the board is getting power by very carefully measuring the voltage on one of the 74 logic chips, which should be close to 5V. Even if you do get a suitable reading but the 80186 isn't detected, power off the machine, re-insert the second processor card and try powering on again.

If you are at the star prompt and want to disable the second processor you can use:

CONFIGURE NOTUBE

And then press CTRL + BREAK or power off and on again.

As mentioned, if the software isn't loaded as required by the 80186 you will end up with a star prompt, allowing us to issue commands. For e.g., you can type HELP and see what is installed. The 80186 second processor provides a quite simple 'monitor' program called MON which doesn't need running, you just need to use the provided commands, which can be listed with HELP MON. So we can use 'd', for example, which if typed on its own followed by return dumps the memory from address 0 in both hex and ASCII form as 16 bytes x 9 lines. Since the 80186 accesses memory using the segment: offset approach that is how addresses will be listed and how you will need to specify addresses. So we can use:

d 0000: 1000

to dump memory from address 0000: 1000.

Or for a specified range of memory you can use:

d 0000: 1000 1010

to list the memory contents from 0000: 1000 to 0000: 1010.

The monitor has a few other commands but unfortunately it's lacking an assembler/disassembler.

Back to loading the software into the 80186 second processor board I intended to use my Gotek floppy drive emulator by loading the software I found at:

http://www.cowsarenotpurple.co.uk/bbccomputer/master512/method1.html

In the section 'In detail', click 'Download the package' to download the software which then needs to be unzipped. Since I was using a Gotek I just copied the image files to a flash drive to use in the Gotek. Making sure I had the Gotek set to use the disk 1 image file I was pleased to see DOS Plus boot, which took about 40 seconds from boot for the Master to load DOS Plus and reach the A> prompt which should be familiar to people who have used MS-DOS.

You can type HELP to get a list of available commands and for further information about a particular command just type the command name and press return. Type HELP and press return if you want to get the list of commands or press return on its own to exit HELP. You may noticed that there are some special commands unique to DOS Plus for the BBC Master:

NOTUBE: turns off the tube and returns you to native mode (as if no second processor active). Note that you will have to use *CONFIGURE TUBE and then CTRL+BREAK or power off/on to get the 80186 to run again.

PCSCREEN to set the screen mode to use.

Everything seem to be running and yes it's a little slow and seems basic as it has to load the commands from floppy (the Gotek in my case) but what I did have issue was when I tried to DIR the contents of disk 2, 3 or 4 I would either get an error or corrupted file names. Looking online, someone else had a similar problem and possibly the issue is that disk 1 works because it's in a dual format - one format for native BBC (ADFS) and another for DOS Plus but the other disks are in a different format (Acorn 800KB DOS format). I tried downloading other disk images including as recommended from:

http://www.retroclinic.com/docs/index.htm

For the above linked site you need to click the 'Boot disk images for various CoProcessor Cores'. After downloading, unzip the file and try using the disk images in the CoPro 80286 folder, which have .hfe extension, and should work even on 80186 second processor. However, the files behaved just like the others one and I was still unable to access disks 2 to 4.

I wondered if the issue with not being able to access disks 2 to 4 was due to the Gotek not correctly reading the disk because it's in an unusal format: 800KB Acorn DOS format, a modified MS-DOS type of disk. You can read more about it at:

http://www.cowsarenotpurple.co.uk/bbccomputer/master512/format.html#acorn800

The solution I found was to take advantage of the Gotek's feature (or, at least the FlashFloppy firmware) in which you can can create an IMG.CFG file on the flash drive to specify exactly how a particular disk is laid out. You can read more about it on the Wiki:

https://github.com/keirf/FlashFloppy/wiki/IMG.CFG-Configuration-File

Rather than create the file from scratch you can use an example file and modify it. So I downloaded the FlashFloppy firmware from:

https://github.com/keirf/FlashFloppy/wiki/Downloads

by clicking on the latest release download link. After extracting the downloaded file I copied the IMG.CFG file in the examples folder to the flash drive I use with my Gotek. Then it was just a matter of opening the file in notepad and modifying the following values in the default section:

Number of sectors per track: change from 9 to 5.

Bytes per sector: change from 512 to 1024.

Using the modified IMG.CFG file, whenever the Gotek comes across .img or .ima files that aren't tagged it will use the settings in the default section. I must mention that I also had on the flash drive an FF.CFG file, also from the examples folder and I set host to be 'acorn'.

Now, after loading DOS Plus I was able to view the contents of disks 2 to 4 and I could now load GEM by selecting the disk 2 image, typing GEM and pressing return. GEM takes about 34 seconds to load and while loading there is at first a white screen before the mouse pointer appears and then the various windows. It's quite something to see a graphical O/S on a BBC Micro - even if boosted by the 80186 second processor - but of course you need a mouse to be able to do anything with GEM.

Z80 Second Processor

The Z80 second processor when released cost £300, was aimed at businesses and has a Z80 CPU clocked at 6MHz, 64 KB of RAM, runs off its own power supply and is connected to a BBC Micro via a ribbon cable connected to the Tube interface. As with the 6502 second processor the Z80 version will work with a BBC Master without any modifications but a BBC Micro needs O/S ROM version 1.2 and the DNFS ROM (which was included in the Z80 second processor pack) for the Z80 second processor to work. Unlike the 6502 second processor which will still let you write and execute BASIC programs (assuming that the BBC MIcro has a BASIC ROM installed) having the Z80 second processor active transforms the BBC MIcro into a different machine since the Z80 is a very different CPU to the 6502 in the BBC Micro. In addition, the system will now expect software to be loaded from floppy, which was typically CP/M; supposedly, the BBC MIcro being able to run CP/M was part of the BBC Micro's original design spec. As the software has to be loaded from disc each time the BBC MIcro and second processor are turned on that is a big disadvantage over ROM based software.

As with the 6502 second processor the Z80 version connects to a BBC MIcro by plugging the ribbon cable connector into the BBC MIcro's Tube interface, ensuring that the triangle on the connector lines up with the triangle on the BBC MIcro's underside near the Tube port. Then, you can either turn the BBC Micro on first and then the second processor and press CTRL+BREAK of have the second processor powered on first before the BBC Micro is turned on. Either way you should be greeted with a screen that says 'Acorn TUBE Z80 64K 1.0' or similar as the version number (1.0) maybe different. If you want to turn your system back into an ordinary BBC Microcomputer, switch the second processor off and press BREAK and to return To go back to using the Z80, turn the second processor on and press BREAK

For the Z80 second processor user guide please see this link:

http://chrisacorns.computinghistory.org.uk/docs/Acorn/Manuals/Acorn_Z802ndprocUG.pdf

Torch Z80 Communicator

Torch Computers released their own second processor board, the Torch Z80 Communicator for the BBC Micro (also works on the Master), in the form of a small PCB containing a Z80 running at 4MHz, 64KB RAM and a 16KB ROM which holds Torch's version of CP/M called CPN (Control Program Nucleus) that is compatible with CP/M and most CP/M commands but the disc format isn't compatible with Acorn's own Z80 second processor. CP/M was especially important at the time as it was a favourite of businesses so adding support for CP/M was very appealing and made available lots of existing software.

Even though CPN was stored in the Torch Z80's ROM, utility programs and other software could still be loaded from floppy disk or hard disk as the software stored in the ROM is only the main part of CPN. Nonetheless, having some code stored in ROM has the advantage that less data needs to be read from disk which reduces wear on the disk drive and disks.

Although the Torch Z80 connects to a BBC Micro via the Tube interface it doesn't use Acorn's Tube protocol (perhaps Torch did not have access to such information at the time), instead using an on-board 6522 to handle the interface. The Torch Z80 also requires that a ROM be fitted in the BBC Micro which handles the host side of the interface with the Torch Z80.

There appears to be at least two issues (versions) of the Torch Z80, issue 1 and 2, and you can see the differences at:

http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Torch_Z802ndproc.html

The site also has other useful information about the Torch Z80 so it's worth checking out.

The Torch Z80 board is designed to be fitted internally in a BBC micro by sticking the board with adhesive supports to the lid of the BBC micro and then running the tube cable internally with the connector on the end of the cable sticking out only to connect to the BBC micro's Tube connector.

I bought a Torch Z80 board for £33 which came as the board itself without a cable or enclosure. The PCB has the tube connector (which is keyed and has triangle marking pin 1). On the board it is marked as 'Z80 COMMUNICATOR MKJ 001 (C) TORCH'. and also '8715 ISS1' in one corner.

As well as glue logic it has these chips:

6522 Versatile Interface Adapter (VIA).

8255A Programmable Peripheral Interface (PPI). Similar to 6522 but more advanced and with more I/O.

Z80 8-bit CPU, 6MHz version (likely whatever chips were available were used). Note that some boards have a D780C-1 which is Z80 compatible.

AM2764 with label 'TORCH CCCP V1.02'. Contains CPN. 'CCCP' means Cambridge Console Command Processor.

MCM6665B x8. 64K x 1 bit DRAM. Similar to 4164.

Notice the 4MHz crystal for the Z80 CPU.

Despite claims of the Torch Z80 containing a 16KB ROM, my board at least, has an 8KB ROM but possibly a 16KB ROM was later used. If you are looking to buy a second hand Torch Z80 look to seem if the board has the ROM fitted and whether the host ROM is provided otherwise you will need to source EPROMs and burn with the appropriate software. You can find these ROMs at:

http://mdfs.net/System/ROMs/Torch/

If you look at:

http://mdfs.net/System/ROMs/Torch/TORCH.TXT

It lists what each type of ROM is and which to use. For even more information about the various ROMs please see:

https://stardot.org.uk/forums/viewtopic.php?t=17923

As I did not get the host ROM with the Torch Z80 board I first tried burning the host ROM software CPN071 and installed the ROM in my BBC Master into socket IC37 and set LK19 to the east position to map out the sideways RAM and map in 32KB of ROM into ROM slots 4 and 5. When I turned on Master it started up in mode 0 (80 x 32 characters) and displayed:

TORCH Computer System (v71)

Acorn ADFS

BASIC

Although nothing new showed up when I issued *HELP (possibly because the Torch Z80 board wasn't connected) when I used *ROMS, 'CPN 47' shows in ROM slot 7. This was with the tube disabled but even with the tube enabled and the Torch Z80 board connected it did not appear to be detected.

I issued *CPN, which is supposed to start CPN, but got the error 'I cannot run this code'. I could issue some other commands specific to the Z80 board (not sure if it's running from the host ROM): *TIME, which displayed the date and time, and *BASIC when printed 'BASIC' (usually used to exit CPN and return to BASIC). Looking online I found a site that mentions the 'I cannot run this code' error in conjunction with Torch Z80 and the fix is to change byte 6 is in the CPN071 ROM from 0xC4 to 0xC2. However, when I now issued *CPN I got the 'No Z80!' error.

Wondering if the CPN071 software wasn't completely compatible with my Master I did install it into my Model B and although it displayed the 'TORCH Computer System' message the system hung with a flashing cursor whether I had the Torch Z80 board connected or not. I thought that it may be trying to load software but there was no disk activity on my Gotek. There was no way to break out of the hang but I did find (as mentioned in the manual) if you hold CAPS LOCK while powering on the BBC or if you press CAPS LOCK + CTRL + BREAK you will get an 'AUTOBOOT' message but again there was no activity on the Gotek. I did also try CPN071 with corrected byte 6 (as mentioned above) but it made no difference, since the 'patch' is for the Master.

Next, I wanted to try the MCP122ABM version of the software that's designed for the Master but I had no new 16KB UV ROM and although I had a very large flash ROM I could adapt to behave as if it's a 16KB ROM it was too difficult making an adapter that would go in the ROM socket. Looking through my other UV ROMs I thought I'd test them to see if I had some working 16KB/32KB ROMs and then I could buy a UV erase lamp. I came across a D27256 which is an Intel 27256 32K x 8 UV ROM and oddly, when I read it in I found that the first 16KB was unused (the ROM only had a green sticker over the UV window so it's unknown what the ROM was used for). When you erase a UV ROM it sets all the bits to 1 and when you program the ROM it actually just set the bits that need to be 0. This particular UV ROM had the first 16KB blank (all 1's) so I was able to program it with the MCP122ABM software.

At boot I got 'Torch MCP V1.22 (ABM)' displayed.

Unfortunately, when I issued *CPN (or *MCP) I got the 'no Z80!' error continually.

If I issued *HELP I saw 'MCP V1.22 (ABM)' listed.

If I turned the tube off and pressed CTRL + BREAK the system hangs with flashing cursor; the same happens if the tube is enabled but set to use internal tube (no internal 2nd processor card fitted).

Before going into more detail about testing it's worth sharing the Torch Z80 circuit diagram that has been uploaded:

http://mdfs.net/Info/Comp/Torch/z80card.gif

Use with caution, however, as even on the diagram it is written as the top that the pin numbering is incorrect (some pins, that is).

Some of my observations in regards to the circuit:

Six inverters in series drive the DRAM CAS line and was possibly done to create a specific delay.

The schematic shows three links, for WE, CAS and RAS and although these links are present on the board it's unusual to show them on a circuit diagram as if they are option links or test points.

There are 18 100R resistors between most of the I/O connections between the 6522 and 8255 and are possibly used to limit current between the chips and could help prevent damage should the I/O be configured incorrectly (two I/O lines connected together set as outputs).

A multivibrator consisting of a resistor, capacitor and IC7 resets the Z80, 8255 and IC21a; IC21a controls whether the ROM or RAM (via IC3) is enabled. The ROM is initially enabled as that's where the Z80 runs code from at reset. The Z80 can then switch out the ROM or RAM as needed.

The 6522 is enabled as long as the appropriate Tube signal is low but the 8255 always has its chip enable (CS) low, however, its RD input determines whether the 8255 will output anything on its data bus.

I tried testing the Torch Z80 board itself by probing with my oscilloscope and even swapped the 6522 and Z80 with others I had as I wasn't seeing the activity I expected: no CAS and RAS signals, for e.g. I swapped the Z80 for yet another and now I was seeing those signals active. Unfortunately, the board was still not detected by the micro but at least the Z80 seemed to be running.

The other thing I tested was the 8255 but although I didn't have a replacement 8255 I tested it on breadboard and it appeared to be working correctly in mode 0 (which is supposedly what is used by the Torch Z80).

Through further tested it seems perhaps one or more of the DRAM chips are bad which could be due to old age or because the original Z80 was bad and that damaged the chip(s) as old DRAM can be damaged if not refreshed frequently enough. However, I did test the original Z80 that was installed in the Torch Z80 board in a ZX Spectrum +2 since that uses a socketed Z80 and that showed the CPU to work as the computer booted and I was able to execute BASIC commands.

I used my oscilloscope and looked at DOUT of each DRAM chip in turn and found that IC19 DOUT wasn't active and looking with my thermal imaging camera IC19 seemed to get slightly hotter than the other DRAM ICs. Note that if you do this test yourself, sometimes you won't see any activity on the DOUT lines and this is possibly because the Z80 has crashed. Just power off the BBC and back on and check for activity again.

I tested a spare 4164 IC I had using an Arduino; you can find details of building such a DRAM tester online such as found at this site:

https://forum.defence-force.org/viewtopic.php?t=1699

Knowing that I had a good DRAM chip I piggybacked it onto IC19; this is quite tricky to do to get the pins to line up so check with a multimeter with the power off for continuity. Although now there was activity on DOUT of IC19 the board still wasn't detected by the micro.

At this point I had not been able to get the Torch Z80 to work and I had come to the conclusion that I needed to replace one or more RAM chips which would mean desoldering the chips and soldering known working ones. If ever you need to carry out such a task yourself it's worth installing chip sockets just in case any replacement RAM chips go bad and I've actually seen online a version of the Torch Z80 (issue 1) which has the RAM chips socketed but whether they were in the original design or someone installed them at a later date is unknown. But as it would not be an easy task to replace the RAM chips I decided to leave it for a later date but be sure to read on to learn about the Torch Z80 disk pack which I was able to get my hands on.

If you do have a working Torch Z80 board but no software you can find downloads at:

https://www.g7jjf.com/disc_images.htm

Torch Z80 Disc pack

Introduction

The Z80 Communicator board was sold with a twin 400K 5.25" disc drive, system software, and The Perfect suite of software from Perfect Software, consisting of Perfect Writer (word processor), Perfect Calc (spreadsheet) and Perfect Filer (database), as the Torch Z80 Disc pack (a.k.a. UNICORN ZDP240) and cost £299 at the time of release (£100 cheaper than Acorn's own Z80 2nd processor). The disc drives use standard DSD floppy disks (some sources claim that 800K is supported but likely they are referring to the total capacity of the two disc drives combined), The disc drive could also be used without the Torch board installed in the BBC Micro, provided an appropriate disc drive controller and ADFS/DFS ROM has been installed in the computer.

The user guide can be found at:

http://chrisacorns.computinghistory.org.uk/docs/Torch/Torch_ZDPUG.pdf

Also, there is some useful information here:

http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Torch_Z80Discpack.html

Interestingly, the manual describes how the disc drive's power supply can be used to power the BBC micro but depending on the BBC micro you have that may not be necessary and was possibly more recommended for earlier BBC micro revisions.

If you are able to get your hands on a Torch Z80 Disc pack but without the software fortunately you can find downloads at:

https://www.g7jjf.com/disc_images.htm

The two disc drives are housed in a large metal box and are accessible from the front, with their own activity lights, and there is a red power LED between them, and 'TORCH Z80 DISC PACK' is written bottom right. At the back of the unit is a 3-pin DC connector for powering the BBC micro (if its PSU has been removed) using the appropriate lead, the mains in socket, fuse holder (containing a 2.5A 250V fuse), and power switch. Also at the rear is a ribbon cable that connects to the BBC Micro's floppy disc port. On the underside is the model number, ZDP 240M, and the serial number.

Using the system

We will now look at using the Torch system but keep in mind that a lot of what is presented here will also apply to a using a standalone Torch Z80 Communicator. After powering on the BBC Micro and disc drive you will be greeted with the boot screen:

To run CPN, insert the system disk (V1.5 for me) into drive A (left drive), issue the *MCP command, and after some very brief disc access, you will get the 0A> prompt:

Keep in mind that it's always best to work with copies of the software discs (which I was fortunate to get with my Disc pack), the manuals for the various software describe how to duplicate the discs.

You can display a list of available commands using HELP, which list each command name and what information it requires:

Starting off simple, I changed the foreground colour using the F command, followed by the colour number, and the background using the B instruction with the colour number. After a number of attempts I found a colour that went fairly well with yellow (F 3): magenta (B 5):

Don't worry I'll change it back to the default using F 7 (white foreground) and B 0 (black background).

The default screen mode is mode 0, having 80 x 32 characters, which is ideal as it can fit the most amount of characters on screen at once. For the time of the system's release, having 80 characters horizontal was very desirable as it made working with spreadsheets, or word processing, much easier. The screen mode can be changed with the MODE command, example. MODE 1 for 40 x 32 characters.

VDU commands are also supported, which shows how Torch's CPN is tailored toward the BBC micro. Example, to make a beep from the speaker use:

VDU 7

For further information about VDU values see:

https://central.kaserver5.org/Kasoft/Typeset/BBC/Ch34.html

There are many other commands listed in the manual, including DIR to list files on disk, FORMAT to format a disc, and so on. It's important to remember that when using CPN, drive A is the left drive and B is the right drive. Lastly, it's worth mentioning that you can use *BASIC to return to BASIC.

It's a good idea to have a read through the user guide for more details on the various CPN commands:

http://chrisacorns.computinghistory.org.uk/docs/Torch/Torch_ZDPUG.pdf

The system disc has utility programs stored on it, so the disc must be in drive A to be able to run any of the programs. See the manual linked above for more details, but I'll go over a few here.

TORCHBUG is a monitor and debugger and is invoked with the TORCHBUG command, which will give you this screen:

Commands can be typed to access the various features or a function key can be pressed as a shortcut for some of them. To get a list of commands, enter HELP of press f1:

There aren't many commands but we'll look at the Modify memory option, accessed with M (without pressing return). It will prompt you for the start address, which must be entered in hex, followed by the return key. Then, 16 bytes will be displayed from the specified start address. Values can be entered to modify the memory contents or you can press return to display the next 16 bytes:

Use the full stop (.) key followed by return to end the Modify memory command.

Other commands display and allow editing of the CPU registers, execute a machine code program, and load and save a variety of files types. QUIT or f0 will return to the CPN prompt. Note that the text will remain in yellow, but MODE 0 is a quick way to reset to the default colour.

Another CPN command is MUSIC, which plays .MUS music files, by specifying the music file (either with or without the .MUS extension). For example, to play one of the samples enter the following command:

MUSIC TOODLE

The MUSIC command gives some feedback while the music is being played:

The ESCAPE can be used to interrupt the playing.

See the user guide for information on what makes up a music file.

Another utility program is MAPDISC, used for viewing the allocation map of a disc with the option of making corrections. Here is MAPDISC running after selecting the F option to show a full map of the disc:

Check the user guide for details of how to interpret the map.

The Perfect suite

Next, we will look briefly at The Perfect suite of software, which is made up of Perfect Writer (word processor), Perfect Calc (spreadsheet) and Perfect Filer (database), and can be thought of as the 'Microsoft Office' of the day. The software may seem very basic compared to what is available today but for the time it was quite advanced, featuring support for virtual memory, something that we would take for granted when using a hard disk/SSD based system, not a floppy disc as in the case of the BBC Micro. Virtual memory was especially significant in the BBC Micro days as RAM was very limited, so virtual memory allowed the user to work on large files that otherwise wouldn't fit in memory.

Let's first take a look at Perfect Writer. The manual for Perfect Writer can be viewed here:

http://www.bitsavers.org/pdf/perfectSoftware/Perfect_Writer_1983.pdf

Perfect Writer includes Perfect Speller and as well as the main disk, a lessons disk was included to train you on word processing.

To run Perfect writer, first boot into CPN, then replace the system disk with the Percect Writer disk and type MENU then return. After some loadng, you will be presented with the main men:

Type a letter representing the menu option, followed by return, to make a selection. I started a new file by selecting 'E' but instead of entering a filename, I pressed return. After making a selection there will be loading and then you will be presented with a new screen:

It looks very bare but typing is straightforward enough, like on a modern word processor, and there are a number of shortcuts to get used to in order to delete individual characters and lines, and to move forward and back a character, capitalise words, and so on, all explained in the manual.

Here is some text I typed:

There wasn't a means to change fonts or styles from what I could see but it is possible to embed control codes that a printer can take advantage of, such as to underline characters.

The second piece of software to look at from the Perfect suite is Perfect Calc, an electronic spreadsheet. Its manual can be found at:

http://bitsavers.informatik.uni-stuttgart.de/pdf/perfectSoftware/Perfect_Calc_1983.pdf

To run Perfect Calc, make sure CPN is running and put the Perfect Calc disc in drive A. I wanted to start a blank spreadsheet so I used the command pc with no filename specified, which presented me with this screen:

Again, very simple compared to what we are now used to. Shortcut keys are used to move about the spreadsheet (not the arrow keys as you might assume) and labels or values can be entered, followed by return, which will add to the selected spreadsheet shell. As well as labels, formulas can be entered, which the computer recognises by the equals sign, you can see an example below, where the formula 'b2-b3' has been entered:

Note that the cell names are case sensitive, so, for example, you cannot enter 'B2' to mean 'b2'.

As seen in the next screenshot, I have recreated the simple formula to calculate the remaining amount for each month but although you are supposedly able to enter the calculation once and copy it over automatically changing the referenced cells, I couldn't get that working and had to enter manually.

To quit Perfect Calc, use CTRL+X then CTRL+C and you will be prompted whether to exit wihout saving changes.

Lastly, we will talk about Perfect Filer, which is a record management system, not a file manager as I had first thought.

A copy of the manual can be found at:

http://www.bitsavers.org/pdf/perfectSoftware/Perfect_Filer_1983.pdf

To run Filer, put the Perfect Filer disk in drive A and type Filer followed by return. You will be prompted for the drive containing the database you want to load:

Enter the drive name (A or B) followed by return and then you will be presented with a new screen checking whether the date is correct:

You can choose whether to confirm that the displayed date is correct by pressing 'x' or press return and then 'x' to pick the option to modify the date. Unfortunately, as the manual points out, only years between 80 and 88 are valid, so I could enter the actual date other than the year, which I set as 84, the year of my birth.. Once the date is entered and confirmed to be correct, the program moves on to the individual member data base:

I chose the selection 'access individual members' so I could show creating a record:

It's straightforward to enter data and move between fields using the shortcuts (CTRL + N to move to the next field, CTRL + P to move to the previous).

To quit the program, press ESCAPE several times.

Repair

I was able to buy second hand a Torch Z80 disk pack (twin disk drive and software) with a BBC Micro Model B that has the Z80 Communicator board installed inside the computer as well as the necessary ROM to use the Z80 board. Upon powering on the BBC it doesn't auto boot into CPN (even if you have the disk drive on first and the system disk 1 inserted) but you will hear a double bleep, a reassuring sign the Torch board is working. To start CPN you must use the command *MCP which then displays the 0A> prompt after a bit of loading but you must have the system 1 disk in drive A (the left drive of the twin drive unit). If instead you use *CPN even with the system disk inserted it will try to load and then you will get a Bad command error.

Just to mention, if you read the start of this section, Torch Z80 Communicator, in which I talk about the first Torch board I got, after getting the Torch Z80 Disc pack I tested the first Torch board in the newly acquired BBC Micro (which has the necessary ROM installed) but the system hangs when you use *MCP. So, although it didn't display the No Z80! error, suggesting that perhaps there was an issue with the Master and the software I was using, there certainly is a hardware fault with the Torch board (likely bad RAM).

The disc drive is powered from a switched mode power supply and there are two 0.1uF RIFA capacitors that should be replaced as they have a tendency to blow while the unit is powered, read on to learn more.

Do not attempt to do the replacement yourself if you don't feel confident, as mains powered equipment can be very dangerous. Switch off and remove the power cable before opening up the disc drive.

To take the disc drive apart: there are four screws that need taking out, two at the left side and two at the right side, then the top cover can be lifted up. Now is a good time to become familiar with the internal parts: The main components are the two 5.25" floppy drives, PSU board, mains power connector with integrated filter, DC output connector (to power a BBC micro, switch and fuse holder.

The PSU has a single mains in connector (live and neutral) and DC output connector; the connector supplies power to the disc drives in a daisy chain manner (Black is GND, orange +12V, red +5V). In the next image you can see the aforementioned connectors, along with (from left to right) the 3-pin DC output connector, mains in socket, fuse holder and power switch.

On the PCB there is a label declaring it as ASTEC AC9251, rated for 115V/230V 0.6A 50/60Hz and there is a date of 83/4. The PSU was used in a number of different pieces of equipment and I even found some technical information about it at:

http://technischmuseum.nl/documentation/documentation%20files/Holborn/Holborn%20documents/Power%20supply%20schematics/Astec%20AC9251.pdf

Note that toward the end someone has included a hand drawn partial schematic (looks to be the output stage) and included a colour photo.

In summary, the PSU is rated for:

+5V 6A, +12V 2A, -12V 1A, -5V 0.5A.

The PDF linked above gives the pinout of the connectors. The mains input connector has two pins, P1 and P2. The DC output connector consists of pins P3 to P14, but the Torch drive only uses P3, P5, P7, P8, P9, P10, P12, P13, P14.

P1 neutral

P2 live

P3 -5V

P4 -12V

P5 +12V

P6 +12V

P7 COM

P8 COM

P9 COM

P10 COM

P11 COM

P12 +5V

P13 +5V

P14 +5V

The Torch drive has the power LED (with limiting resistor inline) connected to P10 and P14. The 3-pin DC output connector has its white lead connected to P3, black lead to P7, and red lead to P12, supplying -5V and +5V, since 12V wouldn't be needed by the BBC micro as that would typically be used for a disc drive but of course the Torch disc drive has its own power supply anyway.

To remove the PSU board, take out the four screws in the corners, note that there is an earth lead held in by one of the screws holding the PSU board in. Unplug the two connectors - you may find it difficult to remove the large connector, so try prising from one end. On the back of the PCB we can see it's marked as '042 02014008'.

The RIFA capacitors that need replacing are: C4 (0.1uF, 250V), and C1 (0.1uF, 250V), they can be seen marked out in the below image While C4 will only take one size capacitor, C1 can take two different sizes. By the way, you may be able to make out strands of thin wire below the transformer, I have no idea where that came from and only noticed after taking the photo, it certainly wasn't part of the PSU.

For replacing C4, I only had a small capacitor but with long enough leads I could bend them to reach the holes. You can view the newly installed capacitors in this image:

After replacing the capacitors, when putting the PSU PCB back, make sure the earth connection goes back between the post and the PCB held in by the screw. Fit the mains in and DC connectors back into the PCB and put the main metal cover back on and then you can put the power cable back in and switch on.

For safety, it would be best to probe the 3-pin DC out connector at the rear; bottom left is GND, top is -5V, bottom right 5V. Note that the PSU needs a load connected to work, so make sure the disc drives are connected or replaced with a dummy load. If you need to check the 12V line (which is connected to the disc drives) then do so very carefully with the metal cover off.

Other Torch Z80 Versions

Emulated Torch Z80

The BBC Micro BeebEm emulator has support for the Torch Z80 which you can read about at:

https://www.g7jjf.com/torch_z80.htm/

There is also an emulated version of the Torch Z80 that runs on the Raspberry Pi but I've only found mention of it on this site (you'll need to scroll down a bit for the link):

https://stardot.org.uk/forums/viewtopic.php?t=11491

Torch C Series

The Torch C Series ('C' meaning Communicator) is a computer combining a 6502 based BBC Micro with an additional Z80 running CPN (Torch's version of CP/M) and also featured integrated colour screen, modem and one or two disc drives while still providing the electrical ports you would find on a typical BBC Micro (video, analogue, cassette, and so on). Unfortunately the system does not use a 'standard' keyboard.

Model C-500 cost £3000 in 1986 and in effect was similar to adding a Torch Z80 Communicator to a standard BBC Micro whereas model C-68000 featured a 68000 with 256 KB RAM, cost £6000 in 1986 and was similar to the Torch HDP68K/Unicorn system.

There is an article reviewing the Torch computer at:

http://chrisacorns.computinghistory.org.uk/docs/Mags/PCW/PCW_Jan83_Torch.pdf

Other Second Processors

32016 second processor

A 32016 second processor, the Acorn Cambridge Co-Processor, featured a 32016 CPU and 32081 FPU clocked at 6MHz and 1MB of RAM, and runs the Panos O/S as well as various programming languages (BBC BASIC, C, Lisp and Pascal). For more information please check out:

http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Acorn_ANC05_320162ndproc.html

More information:

https://www.4corn.co.uk/archive/docs/AMPAPP/150/APP031%20-%2032016%20Second%20Processor-opt.pdf

Another site covering the 32016 second processor:

http://cpu-ns32k.net/Acorn.html

A 32016 second processor wiki:

http://beebwiki.mdfs.net/32016_Second_Processor

68000 second processor

Torch released the HDP68K/Unicorn that contained a 8MHz 68000 with 256 KB RAM (expandable up to 1MB), and Z80 with 64KB RAM, as well as a 5.25" 400K floppy drive, 20 MB hard drive in a 'tower' case and in a sense is an extension of the Torch Z80 Communicator. It connected to a BBC micro via both the Tube and 1MHz buses and could run CPN (Torch's version of CP/M) and Unix (at a more affordable cost than other options). The Z80 runs CPN and Unix executes on the 68000 but as the Unicorn connects to a BBC micro it is still bottlenecked by the processing done by the BBC Micro, limiting Unix's capabilities but allowing for backward compatibility.

You can find an article about the system at:

https://archive.org/details/AcornUser026-Sep84/page/n154/mode/1up

80286 second processor

Rather than being a second processor add-on board in the traditional sense the 80286 was available as a second processor option in the Acorn Business Machine but it's mentioned here for completeness. You can find some information at:

http://beebwiki.mdfs.net/80286_Second_Processor

There are some additional photos here:

https://acorn.huininga.nl/pub/media/photo/Acorn/80286%20Second%20Processor%20(from%20the%20ABC310)/

ARM Evaluation System

The ARM Evaluation System was very significant as it contained an ARM 1 CPU and an early use of RISC processor; the CPU ran at 8MHz and included was either 2 or 4MB of RAM.

Some information with pictures:

http://www.computinghistory.org.uk/det/4617/Acorn-ARM-Evaluation-System/

For an overview of the ARM 1 including how it works at low level:

http://www.righto.com/2015/12/reverse-engineering-arm1-ancestor-of.html

The system manual:

https://www.g7jjf.com/acornArm/Acorn_ARMEvalSystemUG.pdf

Another manual:

https://acorn.huininga.nl/pub/docs/manuals/Acorn/ARM%20Evaluation%20System/ARM_Evaluation_Sys_Aug86_text.pdf

Various pictures:

http://www.stumpie.com/armeval/

Reference manual which includes the circuit diagram:

https://acorn.huininga.nl/pub/docs/manuals/Acorn/ARM%20Evaluation%20System/ARM%20Evaluation%20System%20-%20ARM%20Hardware%20Reference%20Manual.pdf

System software and boot ROM:

http://www.dunnington.info/public/BBC/ARMeval.html

Raspberry Pi Emulated

Getting your hands on the various second processors can be expensive and take up a lot of space so fortunately if you want to experience the joy of using a second processor without so much hassle you can make use of a Raspberry Pi to emulate various second processors. The project is called PiTubeDirect and the information can be found at:

https://github.com/hoglet67/PiTubeDirect/wiki

It emulates various second processors (6502, Z80, 80286 and more) and switching between the various processors is just a matter of issuing a command from the BBC micro.

Torch Graduate

Torch released the Torch Graduate upgrade for the BBC Micro model B to give IBM PC software compatibility with MS-DOS by way of either a single 320K disc drive unit (model G400) or double 360K disc drive unit (model G800) that integrated an 8088 16-bit CPU running at 5MHz, 128KB/2556KB RAM and connects to the micro using the 1MHz bus (no special ROM is needed in the BBC Micro). The disc drive unit also features two ISA IBM PC compatible expansion slots.

You can view an advert for it at:

https://archive.org/details/AcornUser026-Sep84/page/n13/mode/1up

For photos and additional information please see:

http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Torch_Graduate.html

Universal Second Processor Unit

While not a second processor unit itself, the Universal Second Processor Unit is an adapter that permits an internal second processor designed for the BBC Master to be connected externally to a BBC MIcro or Master. This meant that a BBC Micro could make use of internal second processors made for the Master and with regards to the BBC Master, if an internal second processor has already been fitted the second processor adapter allows an additional internal second processor to also be connected externally although only one of them can be used at once.

There were a number of different Universal Second Processor Units but generally they consisted of a box with integrated power supply that connects to the mains, buffer circuitry, connections for the second processor board and Tube cable. An example of a Universal Second Processor Unit is the Acorn ANC21, and uses the familiar 'cheese wedge' design, which can be seen at:

http://chrisacorns.computinghistory.org.uk/8bit_Upgrades/Acorn_ANC21_Uni2Proc.html

Another is the Watford Co-Pro Adapter which used a metal box:

http://www.beebmaster.co.uk/2P/Co-ProAdapter.html

Please also see the 80186 second processor section on this page for additional information.

All content of this and related pages is copyright (c) James S. 2020-2022