Upgrading My BBC Micro With a 6502 Second Processor – Is It Really Faster?

I've added an original Acorn 6502 Second Processor to my BBC Model B.

Connecting it is easy. The interesting question is what it actually does.

The external unit contains another 6502 processor running at 3 MHz and 64 KB of its own RAM. It communicates with the BBC through Acorn's Tube interface, allowing programs to run on the second processor while the BBC handles things such as the display, keyboard and storage.

Rather than just showing the installation, I wanted to answer one question:

How much faster does it make the BBC Micro?

Test 1 – Raw BASIC Performance

First I wanted a simple CPU-heavy test.

10 MODE 7
20 CLS
30 PRINT "BBC 6502 CPU BENCHMARK"
40 T%=TIME
50 FOR R%=1 TO 5
60 FOR I%=1 TO 100
70 X=SQR(I%)+SIN(I%/50)+COS(I%/25)
80 NEXT
90 NEXT
100 E=(TIME-T%)/100
110 PRINT "TIME = ";E;" SECONDS"

I ran exactly the same program first on the BBC Model B alone, then again with the 6502 Second Processor enabled: -

  • the BBC Model B alone

  • the BBC with the 6502 Second Processor and Hi-BASIC

Results


No Second Processor Result


Second Processor Result


Setup           Time
BBC Model B         [17.75 Seconds]
6502 Second Processor[11.95 Seconds]

Performance improvement: [32.7]%

This gives me the raw number.

The next test should make the difference much easier to see.

Test 2 – Mandelbrot Race

For the visual benchmark I'm using a Mandelbrot fractal.

Each point on the screen requires repeated mathematical calculations, so the image gradually appears as the computer works through it.

10 MODE 1
20 VDU 23,1,0;0;0;0;
30 VDU 23,224,255,255,255,255,255,255,255,255
40 S%=256:M%=8
50 T%=TIME
60 FOR Y%=0 TO 15
70 CI%=Y%*41-307
80 PRINT TAB(8,Y%+5);
90 FOR X%=0 TO 23
100 CR%=X%*36-560
110 ZR%=0:ZI%=0:I%=0
120 REPEAT
130 R%=(ZR%*ZR%) DIV S%
140 Q%=(ZI%*ZI%) DIV S%
150 IF R%+Q%<=1024 THEN ZI%=(2*ZR%*ZI%) DIV S%+CI%:ZR%=R%-Q%+CR%
160 I%=I%+1
170 UNTIL R%+Q%>1024 OR I%=M%
180 IF I%=M% THEN C%=0 ELSE C%=1+(I% MOD 3)
190 VDU 17,C%,224
200 NEXT
210 NEXT
220 E=(TIME-T%)/100
230 COLOUR 3
240 VDU 23,1,1;0;0;0;
250 PRINT TAB(0,27);"TIME ";E;" SECONDS"

Same BBC, same program. same fractal, however one with the second processor and one without.

The difference was visible while the fractal was being drawn, with the Second Processor finishing noticeably sooner.

Results

No Second Processor Result


Second Processor Result


SetupRender Time
BBC Model B[28.3 Seconds]
6502 Second Processor[18.67 Seconds]

Performance improvement: [34.0]%

Test 3 – 3D Graphics

Finally, I wanted something a little more dramatic.

This program calculates and draws a rotating 3D wireframe cube.

Rather than timing one operation, it runs for ten seconds and counts how many complete frames it manages.

10 MODE 4
20 VDU 23,1,0;0;0;0;
30 DIM X(7),Y(7),Z(7),A%(11),B%(11),SX%(7),SY%(7)
40 FOR I%=0 TO 7:READ X(I%),Y(I%),Z(I%):NEXT
50 FOR I%=0 TO 11:READ A%(I%),B%(I%):NEXT
60 T%=TIME:F%=0
70 REPEAT
80 CLG
90 AN=F%*.08
100 C=COS(AN):S=SIN(AN)
110 D=COS(AN*.7):E=SIN(AN*.7)
120 FOR I%=0 TO 7
130 X1=X(I%)*C-Z(I%)*S
140 Z1=X(I%)*S+Z(I%)*C
150 Y1=Y(I%)*D-Z1*E
160 Z2=Y(I%)*E+Z1*D
170 K=520/(Z2+5)
180 SX%(I%)=640+X1*K
190 SY%(I%)=512+Y1*K
200 NEXT
210 FOR I%=0 TO 11
220 MOVE SX%(A%(I%)),SY%(A%(I%))
230 DRAW SX%(B%(I%)),SY%(B%(I%))
240 NEXT
250 F%=F%+1
260 UNTIL TIME-T%>=1000
270 PRINT TAB(0,0);"FRAMES ";F%
280 PRINT "FPS ";F%/10
290 END
300 DATA -1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1
310 DATA -1,-1,1,1,-1,1,1,1,1,-1,1,1
320 DATA 0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4
330 DATA 0,4,1,5,2,6,3,7

Results

No Second Processor


Second Processor Result

SetupFramesFPS
BBC Model B[12 frames][1.2 FPS]
6502 Second Processor[24 frames][2.4 FPS]

Performance improvement: [100]%

This was most interesting test visually as the computer is continuously calculating 3D coordinates and drawing the result.

So, Does the Second Processor Actually Help?

With all three tests are complete, the results speak for themselves, adding a second processor really does improve the performance of the computer

BenchmarkBBC Model B   6502 Second ProcessorDifference
CPU test17.75 s11.95 s32.7% less time
Mandelbrot28.30 s18.67 s34.0% less time
3D graphics1.2 FPS2.4 FPS100% higher FPS

With all three tests complete, the results speak for themselves, the Acorn 6502 Second Processor makes a substantial difference.

The raw BASIC benchmark completed around a third quicker, the Mandelbrot showed a very similar improvement, and the 3D test was the standout result jumping from 1.2 FPS to 2.4 FPS.

What I like most about this upgrade is that the difference isn’t just measurable. In the graphical tests, you can actually see it.

For a piece of hardware from the 1980s, that’s a pretty satisfying result.

And now I’m wondering what would happen if the BBC could be made to use more than one extra processor.

Video

If you liked this post, check out the video below demonstrating these tests.'

Thanks for reading and watching.
Matty

Comments

Popular posts from this blog

BBC Model B + MMFS: Command Guide

BBC Model B – Installing Turbo MMFS

Op-Amp Series – Part 5: The Differential Amplifier