46

In the 1980s, the popular BBC science fiction series Doctor Who used some real computer system(s) to display impressive (for the time, OK, maybe not!) graphics. They actually ran the software real-time and simply filmed the output on the screen.

Most of the time they filmed the screen while the program was already running, but on a couple of occasions they showed the source code briefly before the program was run, presumably because it made the story look more science-fictiony!

Source code

Police spaceship tracking software

TA&7A
  360.AP:LDX&78:LDY#0:.AD:LDAM%,X:STA(&7
6),Y:CLC:TYA:ADC#8:TAY:DEX:BNEAD
  370CLC:LDA&76:ADC#1:STA&76:LDA&77;ADC#
0:STA&77
  380DEC&7B:BNEAQ:CLC:LDA&74:ADC&82::STA
&74:STA&76:LDA&75:ADC&83:STA&75:STA&77:L
DA#8:STA&7B:.AQ:DEC&7A:BNEAP
  390CLC:LDA&72:ADC#1:STA&72:LDA&73:ADC#
0:STA&73
  400DEC&7F:BEQAZ:JMPAA:.AZ:RTS:]:NEXT:E
NDPROC
  410DEF PROCtitle
  420REPEATUNTILINKEY(0)=32
  455Xsize=4:Ysize=4:YOUR$="_______":PRI
NTTAB(6,7);:PROCdisplay
  460Xsize=4:Ysize=4:YOUR$="X.V.773":PRI
NTTAB(6,6);:PROCdisplay
  461REPEATUNTILINKEY(0)=32
  465Xsize=2:Yzise=2:YOUR$="LAST LOCATIO
N: 27|43":PRINTTAB(0,14);"PROCdisplay
  466REPEATUNTILINKEY(0)=32
  467Xsize=2:Ysize=2:YOUR$="LAST CONTACT
 : 12-99":PRINTTAB(0,20);:PROCdisplay
  470REPEATUNTILINKEY(0)=32
  475Xsize=2:Ysize=2:YOUR$="____________
______":PRINTTAB(2,29);:PROCdisplay
  480Xsize=2:Ysize=2:YOUR$="BELIEVED DES
TROYED":PRINTTAB(2,28);:PROCdisplay
  520FORW=0TO 4E3:NEXT:
  610ENDPROC
>RUN

Output

Program after finishing

Amusingly, the command prompt is visible at the end of the final underline!

Stories that feature running software on '80s computers (probably an incomplete list):

  • 1982 - Castrovalva (filmed late 1981)
  • 1983 - The Five Doctors
  • 1984 - The Twin Dilemma (pictured above)
  • 1985 - Attack of the Cybermen (filmed late 1984)

Although the computers used were not necessarily the same, I would be interested in knowing what system is pictured below. It's using some combination of BASIC and assembly language that I don't recognise.

Things I have been able to work out:

  • The screen is 40 characters by 32 characters.
  • Lines 350-400 (and probably earlier) contain assembly language
    • It appears that the assembly is embedded into the BASIC program and wrapped in [ and ] characters, but it's hard to tell from a single screenshot
  • Lines 410-610 contain a full procedure, which is the "controller" of the code (in MVC terminology)
  • The underline is printed before and one line below the actual text, presumably to prevent the text from being deleted by the blank space above the underline characters!
  • Xsize and Ysize are how much to stretch the text in in each direction and YOUR$ (pronounced "your string") contains the text to display
    • PROCdisplay is a procedure that displays your string at the current location with x size and y size
  • PRINTTAB (probably just PRINT TAB with an optional space removed and not a separate command) places the text cursor at the position specified on the screen
  • The coordinate system starts at the bottom left, and works upwards and to the right
    • This means you can PRINT "Hello " normally, then immediately PROCdisplay "Fred" at twice the size without having to reposition the text cursor
  • REPEATUNTILINKEY(0)=32 (REPEAT UNTIL INKEY(0) = 32) polls the keyboard until the [Space] is pressed, at which point the return value of INKEY(0) is ASCII 32 for space
    • The way INKEY(0) works is exactly the same as Locomotive BASIC on the Amstrad CPC series but the rest of the grammar is incompatible
  • Integers, and possibly floating point numbers, may be typed in scientific notation. On line 520 4E3 is 4000 for a saving of one character!

What is this computer, and what BASIC and assembly language is it? All transcription errors are my own!

CJ Dennis
  • 2,517
  • 1
  • 15
  • 30
  • 2
    The style on the source-code screen looks reminiscent of the apple ][, but that's totally a guess. They were available from 1977 so its plausible. However being an american device would not have been as common in the UK as the BBC. – Criggie Mar 04 '17 at 07:12
  • 2
    I recognized the assembler as 6502, but not which variant of BASIC. – smci Mar 04 '17 at 11:40
  • Clearly some kind of tokenized BASIC, like the Sinclair ZX-80 or something. The line numbers are the first clue. – SDsolar Mar 07 '17 at 21:08
  • 3
    You usually take it as read that any computer display in any BBC production, fictional or otherwise, from 1981 up until the early 1990s was a BBC Micro, since they were responsible for its development. – Alan B Feb 03 '20 at 16:29
  • Interestingly, Castrovalva production was apparently complete on 1 October 1981, a full 2 months before the official release of the BBC Micro, so the machine used there must have been a pre-production prototype. – occipita May 06 '20 at 13:45

2 Answers2

82

This is an example of BBC BASIC with inline (6502) assembler code. The computer in use would have been a BBC Microcomputer, manufactured by Acorn Computers Ltd.

The display was probably a studio monitor of some sort. These could be driven directly using either the RGB output or the composite video output of the microcomputer. It is likely that the actual BBC Micro was not shown in the programmes but, nevertheless, this is what would have been used for generating the display signal.

BBC technicians had a lot of influence on the specification of the BBC Micro, since they wanted to make use of the machines in their studios and labs. The machine wasn't just designed for schools and colleges.

It is likely that the BBC Micro would have had a Genlock board fitted to prevent strobing when the monitor was filmed by a television camera.

Both the BBC Micro and BBC Basic were designed by Sophie Wilson.

scruss
  • 21,585
  • 1
  • 45
  • 113
Mick
  • 2,829
  • 1
  • 17
  • 19
  • 1
    How appropriate! – CJ Dennis Mar 04 '17 at 03:44
  • 8
    The fact that procedures are named (DEF PROC title, etc) is a big giveaway. On most microcomputer BASICs of that era they were called by giving the first line number (i.e. GOSUB 410, not PROC title). (Of course the line number method was more flexible, because you could "call a procedure" starting anywhere, not just at the beginning!) – alephzero Mar 04 '17 at 12:39
  • 6
    @alephzero - spaghetti Basic! That brings back memories! (**shudder!**) – Bob Jarvis - Слава Україні Mar 04 '17 at 13:18
  • 1
    BBC basic had inline assembler? That's pretty awesome. Would have made it much easier to learn 6502 assembly vs. dealing with an external assembler. – Joe Mar 04 '17 at 19:57
  • 9
    @Joe The BBC Micro was a fantastic computer, much better than most of its similar contemporaries IMHO. Of course it was also quite a bit more expensive than some of them ;) – Muzer Mar 08 '17 at 15:12
  • 6
    I used to work with a chap who went by the name of "Bruce" (he was Australian), whose actual name I cannot recall now, who wrote that code!

    We worked at Cardiff Microcomputers together, in South Glamorgan, and he sold me his Acorn Atom in the early 1980's because he wanted to buy a BBC Micro.

    – Justin Aug 10 '17 at 01:35
  • 1
    From late 1981 it would have been either an Acorn prototype or one of the first production batch BBC Micros. (These had linear PSUs, prone to overheating). Yes to the inline assembler... the Z80 BBC Basic interpreter also had inline assembler ... but obviously not compatible with the BBC Micro's 6502! – user_1818839 Aug 16 '17 at 15:44
  • 1
    Doctor Who episodes of this era were filmed using film cameras. So no genlock, but they might have used a sync box to sync the camera with the monitor: https://en.wikipedia.org/wiki/Sync_box –  Jan 01 '18 at 04:10
  • 5
    @RossRidge I'm sorry, that's incorrect. As far as I know, all studio "filming" was done on video, with only the exterior shots being done on film cameras. There's even a big deal made of certain Doctor Who stories being filmed entirely on film (therefore also entirely on location), such as one starring Jon Pertwee in the '70s. Even the '60s stories were videoed, and you can recognise which camera was in use for each shot by a unique pattern of interference on the picture! – CJ Dennis Jan 01 '18 at 05:32
  • 1
    @CJDennis You may well be right. However, I suspect that some form of genlock would have been required to sync the monitor (and hence the micro) to the camera frame rate (which would have been 25fps for TV studios). I cannot imagine that BBC engineers would have allowed TV monitors being filmed to strobe. – Mick Jan 01 '18 at 09:45
  • Wouldn't the video output of that era have been synced to the mains 50Hz ? So it would be easy to lock to the studio camera – Martin Beckett Jun 18 '18 at 21:23
  • 1
    @Justin I'd be interested to know more! Can you contact me somehow? – CJ Dennis Sep 11 '18 at 00:03
  • 3
    If there was computer-generated output on the BBC in the early eighties you can take it as read it was a BBC Micro. – Alan B Mar 05 '19 at 10:09
  • @MartinBeckett: I don't know of any system that made any effort whatsoever to synchronize video output with mains. Some systems were configurable to produce video frame rates that were close to broadcast standards, but many were off by a significant fraction of a percent. The NTSC VIC-20 at least could be configured for two modes, and if one were using an NTSC camera to shoot an NTSC VIC-20 it would be possible to configure it for the "not quite right" mode untl the refresh lined up with the camera, then switch to the other mode. Not sure about computers in the UK, though. – supercat Mar 08 '19 at 22:59
  • @RossRidge For video production, there would be a specific device which would generate a "master" or "house" reference signal in the studio (or truck for Outside Broadcast (OB) work). This Sync signal would be fed to all cameras, monitors, switchers ("mixing desks" in BBC parlance), etc. so that all equipment would be in synchronization. It's worth mentioning that in this context a "monitor" is just a high-quality TV running at standard refresh and resolution. – Wildcat Matt Mar 12 '19 at 13:58
  • @MartinBeckett The Amiga line was specifically designed to output "clean" composite video that could be used for broadcast, and with the inclusion of a Genlock card, could use reference Sync as well. – Wildcat Matt Mar 12 '19 at 14:03
  • 1
    As someone who still has a recording of all of the above mentioned Dr Who serials, I can state with certainty that they don't strobe on these shots! At that time, the show had been using electronic colour video cameras in studio since autumn 1969. Only location work was done on film (including one 1970 Pertwee, due to a studio technicians' strike). Even so, some location recording was being done on video (e.g. in 1974). No film cameras were ever used in the tv studio, certainly not in the 1980s. The computer displays were mainly used in the TARDIS console, running BBC Basic on a BBC Micro. – Ed999 May 06 '20 at 19:17
3

There is some information what the BBC did at that time with BBC Micros in the archive of the Computer Literacy Project.

Subtitling, there they show a glimpse of a BBC Micro with a board to sync it with the equipment in the studio: https://clp.bbcrewind.co.uk/20508b5e272e398cf9579181e594e8e2

You can have a look at their programs running and even their source code: https://clp.bbcrewind.co.uk/jsbeeb/index.html?disc1=CLP0038.ssd&loadBasic=%2Fbeeb%2Floader%2F20508b5e-272e-398c-f957-9181e594e8e2&autorun=1&model=Master

Or the end titles of Making Most of the Micros: https://clp.bbcrewind.co.uk/jsbeeb/index.html?disc1=CLP0038.ssd&loadBasic=%2Fbeeb%2Floader%2F3e5b356d-cf22-09bd-ba89-0ec4287f32dd&autorun=1&model=Master

DanBoos
  • 31
  • 2
  • 3
    It's better if you include the relevant bits from the pages, as links tend to disappear over time. – Tomas By May 04 '20 at 08:01