BBC Schedula

This article is about a piece of equipment. For more information on what it is for or how to use it, try its documents wiki article.

BBC as in BBC Microcomputer, not BBC as in BBC broadcasts, although for much of it's history most of the content controlled was rebroadcasts of mainstream TV.

BBC Micro system

This system had at it's heart a specially programmed BBC Microcomputer, which controlled the station's audio and video hardware whenever live programs were not being shown, so that the network was kept busy.

First created in 1994, by Dominic Plunkett and Alan Murrell. Dominic worked out how to drive YSTV's satellite receiver by analysing the bit pattern emitted from the remote control, and transcribed this into the BBCs memory to be later replayed as though coming from the remote itself. During 1994-95 it was let loose to the masses, and Chris Kwouk stepped forward as a keen exponent as he knew it was the answer to many of YSTV's scheduling problems.

 
An intractable user interface

However, some people were slightly baffled by user interface. During a visit to Alan Murrell sometime later in 1995 Owain Davies discussed the issue of the user interface with Alan and suggested he could write an alternate but he could never match the excellent work that had been done in device control. Alan offered to substitute the user interface for a serial interface thus allowing another computer to control the BBC schedula.

BBC Micro and Owain's DOS front end

In 1995-96 Owain set about writing a user interface based in C on a DOS platform. He thought he would try and use pointers to store all of the scheduling information. This version soon found itself in the bin after many crashes and he reverted to a static array, there's even a quote to that effect at the start of the source code:

/* Owain experiments with arrays, structures and Alan's Scheduling System */

True to his word, Alan, produced the ammended program for the BBC. First trial, did not go successful at first, until Alan advised to lift the front edge up of the BBC up a couple of centimetres and then drop it. After which, much to Owain's delight - it worked. The new system met with much enthusiasm. At first it ran an Owain's 386SX20, since this also had the compiler on it (Borland Turbo C). After a week or so to bed in, the executable was transferred to a boot floppy and run on a hard diskless 286. Owain spent some time trying to find a bit of code to translate between the Videoplus number system and programme start and finish times and channels. However none could be found, so he stuck with manual time and channel entry. The user interface was designed around the use of the 4 arrow keys, with as much help on the screen as possible. A number of short cuts were added to allow a schedule to be built up quickly. By pressing a key, a program could be repeated the next day or a different key for next week. Subsequent modifications were compiled using Borland C++ for Windows to generate a DOS executable using the recently installed PC's up {unsure|G/145}.

In a split role, the DOS code also included a simple driver for Tank Umatic which had been modified to include a set of wires in parallel with the front panel play/rewind/stop buttons, in principle allowing tapes to be scheduled out of hours. However, this was never seen to be working and support was later removed, leaving all hardware in control of the BBC Micro.

At the start of 1996-97, Owain attempted a further feat with the PC user interface. He had experimented with an extremely crude VGA to composite converter from Bull Electrical, that somehow seemed to work. His aim was to get the scheduler to announce the start of a program and show schedules by putting it's VGA output to network and showing some graphics. It was trialed before it was ready, and the system would get itself into a very confused state.

Reluctantly, he reverted to the previous version. Owain's last update was 8th October 1997 before handing over this stable version to Rob Sprowson to develop further.

BBC Micro and Rob's DOS front end

The first 3 versions of the BBC Micro software by Rob Sprowson actually used Alan's binary which was patched to produce a new binary, this was made easy by the use of a 16 entry device table in the ROM so new devices could easily be swapped just by fiddling the table. These first 3 versions added:

 
Hourly schedule update
  • New satellite decoder support. This also added a small delay of 8 seconds where Grapevine would be shown while the satellite decoder unscrambled the chosen channel.
  • A new teletext device. This allowed teletext magazines for the five UK terrestrial channels to be rebroadcast, primarily being used for sports results during the mute lecture hours. The channel/page/time stripe normally shown on the top line of the page was replaced by "York Student Television", and subpages were visited by the page finding logic.
  • Automatic schedules. In conjunction with a change to the DOS front end, hourly schedules (assuming nothing else was being shown) would display what was scheduled for that day. This just redisplayed a teletext image held on the floppy disc on the DOS front end.

By 1999 maintaining the various patches became too difficult and a whole new system ROM was produced, using communications code kindly supplied by Alan. A new 'test card' device was also added - not normally requested by most students - but allowed for easier network testing with a choice of colour bars; 2T pulse; and crosshatch.

The remaining changes to the BBC Micro versions were primarily incremental changes, such as renaming the startup commands, and timestamping the cryptic columns of numbers which scrolled past when the video was not otherwise being used for teletext or automatic schedules. From version 2.86 the Station Video Mux was used for video output instead, and the test cards gained a 1kHz audio tone.

In parallel with the BBC Micro changes the DOS front end was also adjusted, partly to track new functionality and partly to enhance it in itself. A total of 27 versions were produced from 1998 to 2004.

A handful of new keyboard shortcuts were added, notably using INSERT and DELETE on the keyboard for inserting and deleting programmes (rather than the obtuse I and D in Owain's version), and shortcuts to bring forward a programme ahead of schedule if required.

 
Page per day listings

From January 2000, after a suggestion by Alex Hudson, a new 'page per day' interface was added rather than the schedule being one continuous listing. A priority column was also introduced so that the origin of the schedule could be recorded, whether it was a telephone request, template entry, manually entered, etc...

The ever increasing number of satellite channels, in addition to the 40 teletext magazines available, made searching the channel selection somewhat tedious. The channel selector was therefore changed to allow just the first few letters to be typed to narrow down the listing.

To save time for the Scheduling Manager the concept of schedule templates was introduced, infact this was just a CSV file saved from Excel with recurring programmes. With careful design a quite respectable number of programmes could fill the schedule with little or no human intervention.

The code by this point could also be compiled to generate a version to run on an Acorn Archimedes, indeed this is where the development was done, and the DOS version which was actually used by the station only produced as a byproduct.

BBC Micro and PHP system

The serial input to the system proved to be invaluable towards the end of the system's life, by which time no-one really knew how the innards worked. It enabled Kevin BowmanUnverified or incomplete information to create a webpage/database based system to replace the DOS front-end. This was initially a stand-alone system that sat in the control room running on a Pentium running FreeBSD. Everything was written in PHP - even the daemon that read the database and kicked out the requests to the BBC over the serial port. This required a specially re-compiled version of PHP that allowed the script to keep running for ever rather than being killed after accumulating 10 seconds of CPU time (usually some weeks after being set running).

Dave Baker then moved the front end pages to the YSTV web server, still driving the same machine for the back-end. This meant that the Scheduling Manager could fill up the schedules without actually coming in to the station. At about the same time some more hacks were inserted to make the system talk to the Video Server, at least after a fashion. Throughout this the BBC had to be kept, as no-one knew what protocol passed between it at the Network Audio Mux and Station Video Mux doing the actual control.

Origin of the name

It's uncertainUnverified or incomplete information where the abbreviation of 'schedula' rather than 'scheduler' came from. The original Alan Murrell system ROMs were titled 'YSTV Scheduler ROM' and 'YSTV Hardware Control ROM' respectively, though the top-row-of-the-monitor-rack monitor which showed the scheduler's output was labelled with a stash of free business cards from "Diane's Hair Salon" which weren't large enough for the full name.

The abbreviation spread to the next monitor along which showed the output of the terrestrial tuners, logically shortened to 'Tuna A' 'Tuna B' and 'Tuna C' certainly by 1997.

Satellites supported

The satellite channel changer has had 4 incarnations:

  • the original Dominic Plunkett version for the unbrandedUnverified or incomplete information decoder which was replaced when a new larger dish was installed to resolve picture interference
  • a Grundig GSR1/MkII which later failed in an electrical storm
  • a Grundig GRD150 decoder which later became obsolete when Sky switched to digital broadcasting
  • a Pace Sky Digibox

They all work on the same principle, study the remote control codes on an oscilloscope, translate these into timings which are stored in the schedula ROM for later playback. The last 3 versions included some logic gates glued to the circuit board of the satellite decoder to mix the input from the remote (which still worked) with the computer control. In Dominic's version he simply wire-OR'd the computer into the circuit board for a slightly simpler solution.

End of BBC Micro era

In a final burst of enthusiasm in early 2005, Dave Baker and Richard Ash moved the database to the main YSTV server and the PHP control daemon to the Video Server so that the FreeBSD machine could be retired, mainly in the interests of it's space in the rack. Over the summer of 2005, the whole lot was replaced by Spider and SchedSeven, a new from-scratch solution built by Rob Humphrey and Dave Baker.