9

What was the 1 MHz bus used for on the BBC micro series and how did it compare with the TUBE in terms of speed/bandwidth?

I read somewhere that EPROM programmers used the 1 MHz bus, but anything else?

2 Answers 2

19

The so-called "1MHz bus" is not actually a separate bus. It is just the set of devices which were too slow to run at the full 2MHz in the original BBC Micro, and which therefore incur a clock-stretched cycle when accessed. These include most of the SHEILA ($FExx) devices, except for the Econet, floppy, Tube, VIDPROC, and memory mapping registers.

The 1MHz extension bus, one of the ports under the keyboard, additionally includes buffers to prevent 2MHz cycles from going out on an unpredictable user-supplied set of cables and electronics, which would otherwise potentially cause trouble. The BBC Micro reserves the FRED ($FCxx) and JIM ($FDxx) pages which directly map to the extension bus.

JIM is, by convention, reserved for large memory expansion devices, some of which have additional functionality such as advanced video framebuffers. Four registers at the top of FRED are reserved as paging registers for such devices. This allows supplying up to a 40-bit address (1TB) to a JIM memory - pretty forward-looking.

A partial list of devices that map to FRED:

&FC00-&FC03 Byte-Wide Expansion RAM
&FC08-&FC0F Ample M2000 MIDI Interface (see also FCF0)
&FC10-&FC13 Teletext Hardware
&FC14-&FC1F Prestel Hardware
&FC20-&FC3F SID Interface
&FC20-&FC27 IEEE Interface
&FC28-&FC2F Electron Econet
&FC30-&FC3F Cambridge Ring interface
&FC40-&FC4F Hard Drive Access
&FC50-&FC5F
&FC60-&FC6F Electron Serial
&FC70-&FC7F Electron expansion
&FC80-&FC87 LCD Display Control
&FC88-&FC8F
&FC90-&FC9F Electron sound and speech
&FCA0-&FCAF
&FCB0-&FCBF Electron 6522 VIA expansion
&FCC0-&FCCF Morley Electronics RAMDisk
&FCC0-&FCCF Electron floppy disk expansion
&FCD0-&FCDB
&FCDC-&FCDF PRES Battery-backed RAM
&FCE0-&FCEF Electron Tube expansion
&FCF0-&FCF7 JGH/ETI MIDI Control (see also FC08)
&FCF8-&FCFB USB port
&FCFC-&FCFF Page-Wide Expansion RAM

The 1MHz bus and the Tube can't really be compared in terms of speed, because they do totally different things. The Tube is specifically intended for attaching a Second Processor, which includes a protocol and buffers for the necessary communications between the application code and the "I/O host" that the BBC Micro itself then becomes. Indeed there is an OSBYTE call specifically for allowing the Tube to access the 1MHz expansion bus (or other) hardware devices.

The Tube protocol allows transferring 256 bytes of bulk data at a rate of 10µs per byte - which is 20 cycles at 2MHz. The following loop is capable of transferring 256 bytes from JIM to an arbitrary main memory page at 16 cycles per byte:

  LDX #0
: LDA $FD00,X   ; normally 4 cycles, but JIM access stretched to 5
  STA (dest),X  ; 6 cycles
  INX           ; 2 cycles
  BNE :-        ; 3 cycles per taken branch

Unrolling this loop could speed it up a little more.

3
  • I don't recall ever seeing the term "1MHz extension bus" before, the port under the keyboard was certainly just labeled "1MHz bus". Commented Aug 31, 2022 at 17:29
  • @PeterGreen I use the term specifically to distinguish it from the internal 1MHz devices, which are labelled on the official circuit diagram as "1MHz bus". It is, quite simply, the extension port which operates at 1MHz.
    – Chromatix
    Commented Sep 1, 2022 at 20:20
  • BBC Micro design team member here. Acorn documentation variously called this "1MHz bus", "1MHz extension bus", "1MHz expansion bus" and others - sometimes three different ones in the same technical document, seemingly at random. Typical Acorn sloppiness, unfortunately.
    – ChrisJJ
    Commented Jun 13, 2023 at 23:11
1

The 1MHz bus also has an audio in to the BBC pin, and was used to connect synthesizers like the Music 500 and 5000.

4
  • was that a single pin carrying analogue input from the music 5000 device into the BBC which would be converted to digital inside the BBC? Or was it a pin carrying digital info, e.g. MIDI data either from or to the BBC? Thanks Richard Commented Jul 21, 2021 at 8:45
  • @therobyouknow It is an analogue input, which is mixed with the digital output of the 76489 sound chip and the (optional) TMS 5220 voice chip in the audio amplification circuitry (ICs 17 and 19, LM324 and LM386 amplifiers).
    – Kaz
    Commented Jul 21, 2021 at 16:18
  • Sorry, my answer was poorly worded. The MUSIC 5000 connected to the 1MHz bus, but used its own audio out. I don't know if it could connect to the audio in pin. There were several X000 modules including a MIDI module. retro-kit.co.uk/page.cfm/content/Hybrid-Music-5000-Synthesiser The audio in pin was also on the 1MHz bus. Commented Jul 22, 2021 at 14:28
  • BBC Micro team member and Music 500/0 designer here. During BBC Micro design, the 1MHz bus originally did not have an audio in. I requested one for an add-on synth and got it, but that synth turned out something much more than I'd first envisaged, with audio quality beyond appropriate to feed into the internal speaker. So no, the Music 500/0 did not use the 1Mhz bus audio in pin .
    – ChrisJJ
    Commented Jun 13, 2023 at 23:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .