Skip to content
BigEd edited this page Jul 30, 2021 · 3 revisions

Beeb816 is a CPU replacement card for the BBC Model B computer, offering additional RAM, ROM and CPU performance while retaining full software compatibility.

Beeb816 provides a WDC65816 16-bit CPU, which has a fully 6502 compliant 8 bit emulation mode, together with a fast 512KByte SRAM, a local high speed clock and a clock switching/interface unit embedded in a CPLD.

On startup Beeb816 boots into emulation mode, running with the motherboard 2MHz clock and behaving exactly as the original 6502, providing full software compatibility but with the option of using BBC B+/Master like shadow RAM and 4 additional sideways RAM/ROM slots.

After configuration using system extension commands (provided in the companion Boot816 ROM), Beeb 816 can be set up as an accelerator card for standard BBC software, as a full 65816 system or a combination of the two. When running as an accelerator, the Boot816 software should be used to first copy the MOS and ROMs (slots 4-7, 12-15) into Beeb816's fast RAM. Once this is done the CPU can run at full speed, needing only to slow down to write to the motherboard video memory area.

Main Beeb816 Operating Modes

  1. 6502 Emulation Plus

    • Default mode on system boot
    • Full BBC software compatibility
    • CPU runs from the motherboard clock
    • Plus
      • 20KB shadow RAM available, similar to the BBC B+ and Master
      • 4 Sideways RAM/ROM Slots available (in addition to the 4 BBC model B motherboard slots)
  2. BBC Acceleration Plus

    • CPU running in 6502 emulation mode at 14MHz
      • RAM from &0000 - &2FFF (12K) runs at full CPU speed
      • Option to have either a. slow video RAM (&3000-&7FFF) + fast shadow RAM OR b. cached video RAM (slow 2MHz write/fast 14Mhz read)
      • sideways RAM/ROM slots 4-7 remapped to fast RAM and run at full CPU speed
      • sideways ROM slots 12-15 and MOS remapped to fast RAM and run at full CPU speed
    • Plus ability to switch in and out of native 65816 mode
      • 256KB of RAM available for user programs using WDC65816 assembler
  3. WDC65816 mode

    • up to 512KB available for user programs running in 65816 (16-bit) mode

Benchmarks

Benchmark 2MHz 14.32MHz Speed Up
Sphere 42.99s 5.88s 7.3x
ClockSP CA 1.98 14.48s 7.3x

PiTubeDirect and Other Second Processors

Beeb816 is able to provide a 7x speed up over the original unexpanded machine together with the additional 20K shadow RAM of the BBC B+/Master. This is a significant improvement over the performance of the original Acorn 6502 Second Processor options, running at 3 or 4Mhz.

These days PiTubeDirect on the Raspberry Pi offers emulation of all the original Second Processors at very low cost. In the case of the 6502 Processor emulation it is able to achieve clock rates of well over 300MHz with a cheap Pi 3A+. Although this makes the Beeb816's 14MHz clock look rather pedestrian, in fact Beeb816 is an excellent companion to PiTubeDirect rather than a competitor.

When running graphic intensive programs on the PiTubeDirect co-processor, or any program passing a large amount of data back and forth over the tube, the slow BBC host is a performance bottleneck. Beeb816 improves the performance of the host in this case enabling the PiTubeDirect to achieve more throughput. For example, when running the Sphere benchmark on PiTubeDirect using a Pi3A+, each iteration takes 1.48s to complete on a standard Model B. With Beeb816 accelerating the host, that time reduces to just 0.28s, for a 5.3X speedup.

Overclocking

Beeb816 uses a WDC65816 CPU which is nominally rated at 14MHz, together with an 18MHz SRAM IC.

The standard set-up for Beeb816 is to use a 14.318MHz crystal oscillator, although experiments on a number of boards show that the board can be overclocked to around 16.5MHz for a small additional speed-up. At this point the combination of the CPLD logic and SRAM cycle and read/write access times are limiting any further speed increase.