38

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!

  • 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 4 '17 at 7:12
  • 2
    I recognized the assembler as 6502, but not which variant of BASIC. – smci Mar 4 '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 7 '17 at 21:08
62

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.

  • 7
    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 4 '17 at 12:39
  • 4
    @alephzero - spaghetti Basic! That brings back memories! (****shudder!****) – Bob Jarvis Mar 4 '17 at 13:18
  • 5
    @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 8 '17 at 15:12
  • 5
    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 1:35
  • 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 1 '18 at 5:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.