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
|
| 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 |
| Setup | Render 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 |
| Setup | Frames | FPS |
|---|---|---|
| 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
Benchmark BBC Model B 6502 Second Processor Difference CPU test 17.75 s 11.95 s 32.7% less time Mandelbrot 28.30 s 18.67 s 34.0% less time 3D graphics 1.2 FPS 2.4 FPS 100% 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.







Comments
Post a Comment