Personal Computer World
In a couple of months' time, the BBC will transmit a series of TV programmes aimed at increasing the public's awareness of computers. To accompany this major computer literacy push, the BBC commissioned a microcomputer and promptly found itself deep in controversy. In this special feature, we look at the background to the whole BBC project, examine the machine itself and describe the main language which will be available on it: BBC Basic.
In some ways it's a miracle that the BBC Microcomputer Project has got as far as it has. The following insight, although written from the periphery of the whole thing, will explain why.
Sometime in early 1980, a group of production people at BBC-TV Further Education in Ealing Broadway conceived the idea of a series of programmes to follow up the 'Silicon Factor' series which was just about to be broadcast. Two people seemed instrumental in this - John Radcliffe, Executive Producer and David Allen, Producer. The idea was toted around various BBC and government departments and various educational groups, like the National Extension College. Support for the idea was forthcoming from most areas. In some ways this was unfortunate, as the inevitable inter-departmental wrangling began to take place. BBC Engineering was given the task of seeing whether an objective specification for a microcomputer could be drawn up, so that any programmes would be applicable to most users.
BBC Publications decided to get a book written and BBC Education in Leeds, dealing with schools and colleges liaison, was asked to see how its expertise could be used to get some form of 'referral' service going.
Various other groups now got in on the act, from MUSE - a group of computer-using educators - to the Department of Industry. And so did BBC Enterprises which saw the opportunity to make some money by selling a machine to go with the series. In some ways this latter decision has caused more problems than anything else - it has certainly distracted public attention away from the programme makers to the system marketing - and surely the programmes are the most important aspect? Once the decision to sell a system had been taken, it began to dominate the whole scene. What language to use Basic, Comal, Pascal; what processor should it be based upon - Z80, 6502, even a 16-bit; what amount of support is necessary - none at all, or a dealer network; what do we do about Prestel, Ceefax, Telesoftware? These questions seemed to take up most of the time, leaving the programme makers at a loose end until the decision had been made.
Eventually, under some pressure from the DoI to choose a British system, the powers-that-be settled on the Newbrain, at that time under seemingly endless development by Newbury Laboratories, a subsidiary of the now-defunct NEB. However, it soon became clear that, although this system fitted the so-called objective specification perfectly - some say the machine came first, the spec second! - Newbury was incapable of making it. The programmes, initially scheduled for broadcast in Autumn 1981, were moved back to Spring 1982.
This was good news for those of us working on the book, as the inevitable problems associated with a three-author publication began to raise their ugly head; we each have distinct styles of writing and the book needed some reworking to get it into shape. After the draft had been read and re-read by numerous people, it was essentially rewritten and this time, if it is possible for me to be objective, the result was one of the best introductory books on the market.
By the spring of 1981, the programme makers had come up with a pilot programme that was shown around the country to literally thousands of people. A market research project also showed that just under 20 percent of those who would consider watching the programme would also consider buying a microcomputer if it was about £200. And here was the rub; with Newbury incapable of producing a pre-production prototype, let alone thousands a month, what was going to happen? Well, a pragmatic decision was made: the original specification, calling for a Z80, CP/M-based system, was quietly shelved; and a 6502-based system closely modelled on the successful Acorn Atom was adopted.
There was much press comment about Clive Sinclair's involvement at this time. A ZX81 derivative would indeed have fitted the original specification and Clive had shown that he could produce machines in the quantity needed. Unfortunately, a mixture of misunderstanding, personality conflicts - and even anti-Sinclair feeling at the DoI - meant that this obvious approach was not followed up.
However, Chris Curry and Herman Hauser at Acorn had a development of the Atom, called the Proton, on the stocks and this needed little modification to meet the new specification. The argument then centred around the language to be used. For some reason, which in retrospect looks a bit like good old British muddle-through, an extended Basic very similar to Microsoft 5 (although we mustn't really say that) was chosen and a race was on to produce the interpreter coding, as well as a target of 250 programs, for the launch in November 1981.
At the same time as the Beeb had made its decision on the Proton, the DoI, thinking it would help the situation, decided to make the Proton-based system available to schools at half price - as well as using it for prizes in one of its competitions. This meant that Acorn was now working towards two deadlines imposed by two masters - not a very nice position to be in. The DoI initiative probably delayed the launch by a few months, although it did generate a lot of interest.
All the while the programme makers were reforming their ideas, and a link with the National Extension College (NEC) to provide a home-based 'Teach Yourself BBC Basic' course meant that most of the programming or language development aspects could be kept out of TV programmes. Consequently, the latest outline for the programmes emphasises 'awareness' of a computer's capabilities, more than an attempt to teach programming per se. Any allusion to Basic in the programmes is for illustration more than anything else.
As things will be hotting up by the time this issue hits the streets, what future developments are likely to occur? Another two, or three, series could follow in the next couple of years, looking at particular aspects of computer application. Another development could be the appearance of ROM-sets, or interpreters on disk or tape, that would allow PETs, Apples, etc, to run BBC Basic. However, the most important area could be the development of the referral centres mentioned earlier.
Broadcasting Support Services has many years' experience in working with this type of referral service, having cut its teeth with the very successful Adult Literacy and Numeracy programmes. It has contacted hundreds of computer clubs, colleges and ComputerTowns throughout the country, and is hoping to coordinate local centres spread around the country. These may range from centres having a five-evening walk-in service to those offering once-a-fortnight gatherings. The database built up in this exercise will be invaluable for all sorts of follow-up work, as well as for giving individual viewers a chance to get together with those interested novices like themselves. Some of the centres contacted will also be putting on the NEC training course to coincide with the TV programmes. In some ways this informal network of interested amateurs could do more for computer literacy in the UK than any number of TV programmes, books or mass-produced systems.
In conclusion, we can see that the whole project 'grew like Topsy' and seemed at one stage to begin to devour the original idea. It now seems to be under control and promises to be one of the major influences on computer awareness ever conceived.
It isn't often a journalist can sit down to write about a computer with the certain knowledge that he has never seen a nicer machine. But apart from the fact that you can't buy software in the shops to run on it, you can't get a nicer micro than the BBC Micro. There, I've said it.
When pre-written programs are available for it, it will be able to play games that will be faster, prettier, and more fun than the new Commodore VIC, and it will be able to run serious business software as well. As a programmable machine, it will be by far the easiest thing to write useful code on.
As an enthusiast's machine, it allows the attachment of add-on bits and pieces ... no, that's not true, it positively insists that you add on bits and pieces. Things like stepper motor controllers, sensor inputs, and all the other aspects of wiring a computer into an office or a house.
As a small system, it can be expanded to a big and powerful one, and as a single system, it can be tied into a network where lots of single ones all talk to each other and share disks and printers.
Enough fanfare; what's inside it?
Inside the BBC Micro is (for £235) 16 kbytes of user memory, 32 kbytes of permanent software, one of the most powerful graphics systems around on a special chip, and something called the Tube, which allows it to 'drive' a second computer. And there is a standard 6502 micro to handle the Basic and operating system.
For an extra £100, you get some analogue inputs, four of them, so that you can plug in four games paddles. And they will be a lot more accurate than any other games paddles, because this machine reads them to 12 binary places, rather than eight - 16 times more precise, in fact. That compares with only one paddle on the Commodore VIC, by the way, or with eight on the Atari 400. For the extra money, you also get another 16 kbytes of memory.
For around another £100, you can buy a little box which picks up the BBC's Ceefax text broadcasts (and, presumably, ITV's Oracle) and which can load software if the BBC puts software on some of its Ceefax pages. Within six months, you will be able to buy a dual disk unit for well under £500, including interface and operating system, a network connection for £47 and an add-on Z80-based processor, probably for under £300 - but that's a guess.
The bog standard BBC Micro will display its data, like the VIC and Atari and several other machines, on a standard British colour television. It will store its data on an ordinary audio cassette.
It can talk to other BBC Micros down its audio cassette interface and, with a little work, it will be able to load programs and data produced by other machines such as the Tandy. In many cases, it will run them, too.
The heart of the machine is that 32k bytes of ROM, with Basic and other routines in it, including a powerful machine-code assembler. The Basic will accept most programs written for popular micros that use Microsoft Basic but it has few of the limitations of normal 8k Microsoft Basic and it allows some features of what professional programmers call structured programming.
For instance, there are procedures which can be performed, there is a REPEAT .... UNTIL instruction, and several others which make a program easier to understand when you're trying to fix it. And the variables can be any number of characters long, not just two. Other new features, which aren't available on other Basics, include the fascinating ability to EVALuate an input string - as in INPUT A$; EVAL A$ - and A$ can be a user input formula such as Y=X^2-3X+6.
Running somebody else's Basic, however, involves more than obeying the same commands. There is also the question of how many characters there are on the screen; on the BBC machine the answer is, take your pick.
The BBC machine has eight graphics modes. Mode 0 gives 32 lines of 80 characters text or 640x256 resolution graphics in two colours. Mode 1 gives 40x32 text or 320x256 graphics in four colours and Mode 2 gives 20x32 text with 160x256 graphics in 16 colours. The snag with these three modes is that they each take up 20k of RAM, leaving just 12k for your program on a fully-expanded system. The other modes, with their memory requirements, are: Mode 3: 80x25 text in two colours (16k); Mode 4: 40x32 text, 320x256 graphics, two colours (10k); Mode 5: 20x32 text, 160x256 graphics, four colours (10k); Mode 6: 40x25 text, two colours (8k); and Mode 7: 40x25 teletext compatible (1k). At power-on, the machine is automatically in Mode 7.
The screen can look like just about any other well-known micro on the market. It can have (in Mode 4, for instance) most of the characteristics of the Apple II. Or it can have something incredibly like the VIC, in mode 5, even to the full fat characters, and only 20 across the screen, too. Or it can display characters exactly like those used on Prestel or Ceefax sets. You pick the mode you want out of eight options, and you use the PRINT instructions from the software you want, and it should make the screen look right as long as you go to the bother of programming the right graphics characters.
Programming special characters (except in Prestel mode) is another option. This means that not only can the PET graphics characters be reproduced, but also special characters of your own. Two or more of these special characters can be joined together, next to or on top of each other, to make a new, larger character - and this can be moved around the screen as a unit.
Particularly fascinating is the ability to move one of these special characters - one looking like a cowboy, for instance - along the screen, automatically watching it go behind things in the foreground, and in front of things on the background.
All these clever colour graphics are handled by a special chip, built for Acorn by Ferranti. It is the same type of uncommitted logic array (ULA) chip used in Sinclair's ZX81, to replace a dozen or so logic chips. Here it performs totally different functions because it is committed in a different way. And there is another ULA on the board, to perform the function of serial communications - normally, driving the tape cassette interface, but also providing the standard computer input and output plug known as RS232. In fact, this one is RS423, which is better; it will drive a wire 4000ft long rather than only 50 feet and it is cleverer at changing the transmission speeds. But it will pretend to be an ordinary RS232 if you like.
The graphics are truly incredible. The full resolution of which the BBC machine is capable won't show on an ordinary television set - the lines are too fine for the TV tuner to pick up; you would need a special colour monitor, which Acorn hopes to sell at £150. Even at the lower levels of detail, the plotting and drawing options are incredible - there are 90-odd such options - allowing you to draw lines, circles, and other shapes.
To illustrate just one, there is the 'fill' option which draws blocks of colour. After the programmer has specified two points on, the graphics screen, PLOT 85 (the 85th option) and two more co-ordinates, x and y, will cause the machine to draw a triangle from the first two as the base line, to the third. Specify another coordinate, and a second triangle, using the side of the first as base, turns your triangle into a quadrilateral, or folds back on itself. And this plot can be in any colour. It can also be a colour 'logically' combined with the background over which the triangle is drawn - OR, exclusive "OR" or "AND" with the background colour code.
It isn't necessary to use the screen for text only, or for pictures only. It's possible to set apart any bit of the screen as a 'window' where either will appear and this allows, for instance, the well-known Apple trick of having several lines of text at the bottom of the screen and a picture above, with the text scrolling only in those lines. The difference is, of course, that the BBC Micro can have five lines. Or it can have the whole left side of the screen, or a bit at the top and a bit at the bottom, or anywhere. Full word-wrap scrolling is handled inside each text window. And one can label diagrams with text, too. Most of these features are fully detailed in the BBC's leaflet on the system and so this is a selection of things that appeal. But possibly the most important thing about the system is its strong encouragement to the owner to write machine code programs. Machine code is difficult, usually, mainly because there are so few really friendly software tools for producing it. On the BBC Micro, the tools are more friendly than most Basic software tools.
For example, the system has that very nice Acorn Atom feature of allowing you to write in assembler mnemonics behind square brackets, and of editing them in exactly the same way you edit Basic. That is, if you leave out a line between lines 50 and 60, you just type in line 55, and the missing instruction is automatically inserted between them.
If you need some arithmetic done, you can load the accumulator with the result of a calculation done with Basic that is, LDA # 10* SIN RAD 45 will load the accumulator with the value. No more tedious attempts to write machine code mathematics routines!
There are lots of other things to drool over and in the space available, they will just have to be left out of this list. One which I must find space for, however, is the Tube.
The BBC Micro should never go out of date the way other 6502-based micros will because of its ability to perform as a keyboard unit controlling another computer. By May, Acorn promises, there will be the add-on Z80-based board, as well as an ultra-fast 6502 board with 60k bytes of user RAM. And the Z80 board will run CP/M programs, with the 6502 front bit handling the CP/M operations.
This will be done by trapping all CP/M system calls in the Tube, which watches the CP/M memory location. Whenever it is required to display some text on the screen, or to read or write disk data, or to input something from the keyboard, the Z80 will fill a 32 character buffer with the required information, as fast as it can and the 6502 will read it out from the other box and act on it. When the Z80 starts processing its application again, it will be quite happy that it handled the CP/M system command itself. But it will have been much faster than real CP/M, which is not efficiently coded and which has one or two bugs in it.
It's hard to see anybody being disappointed with this system.
While a fairly public controversy raged around the BBC's choice of Acorn as the manufacturer of its microcomputer, a quieter stir was caused by the decision to make Basic the machine's 'natural' language. For entirely inexplicable reasons, programming languages arouse strong emotions in their devotees' hearts. Each language attracts its band of followers and it sometimes seems that the more obscure or difficult or awkwardly syntaxed the language, the more fanatical its proponents.
Basic in particular seems to anger more people than just about any other aspect of microcomputing, yet it has helped thousands of newcomers to get to grips with their machines, which would certainly not be the case were Pascal, say or APL the most commonly-implemented languages on micros.
It seems that before the decision on Basic was finalised, some lively debates took place as to the 'best' language to use on the BBC machine; with Pascal and Comal devotees being notably anxious to push their languages on the theory that if the public was to be taught programming, it should be taught tidy, academically-satisfying structured programming from the start. Although other languages are planned for the BBC Micro, it was Basic which won in the end, probably because it is so easy to learn, although the fact that a Basic was under development for the Proton before it became the BBC Micro must have been an important factor. Once the Acorn and Basic decisions had been made, a further frisson circulated when people remembered what the Basic was like on the Acorn Atom; would the BBC Micro have the same very non-standard Basic, people wondered?
For those of you unfamiliar with Atom Basic, it incorporates a number of very non-standard features. These pose absolutely no problem if you're learning Basic for the first time but can be most inconvenient if you're moving to the Atom from a machine with a more standard Basic, or if you want to move on from the Atom to another machine - in either case you have quite a bit of re-learning to do. On the plus side, though, Atom Basic has some very nice features indeed, such as allow allowing you incorporate assembler language mnemonics into a Basic program.
For the BBC machine, the same team which developed Atom Basic evolved a far more standard implementation of the language which makes the conversion to or from another machine (both of user and of programs) much easier, while retaining some of Atom Basic's more elegant features.
There is, of course, no such thing as a 'standard' Basic, as each implementation has a number of features designed to fit in with the particular machine's hardware facilities. In the case of BBC Basic, while a large proportion of its facilities are similar to Microsoft Basic I (about the nearest thing to a standard Basic you can get), there are extra features to take advantage of the machine's sophisticated hardware, mostly in connection with the graphics and sound capabilities. A full list of the BBC Basic's features is printed below, so we'll just look at some of the more unusual/interesting facilities here.
Starting with the graphics, you can select any of the eight modes with the MODE statement, ie, MODE 3 or MODE A. CLG clears the current graphics area on the VDU; GCOL sets the fore and background graphics colours and COLOUR (good to see it in English!) allows you to play clever tricks, such as making an object move in front of the background but behind an object in the foreground. POINT returns the colour of a specified point on the screen. DRAW and PLOT appear to be very similar; they give very comprehensive control over graphics displays, including the drawing and infilling of triangles. There isn't space here to describe all of the very powerful graphics capabilities of the BBC Micro, but it's safe to say that the machine offers about the most sophisticated graphics available at the price.
Similarly, the sound generator is very powerful, having three channels for music and one for 'noise'. It's controlled by a couple of commands which are deceptively complex and will take some real getting to grips with before the machine's full sound potential can be exploited. First, the ENVELOPE statement, which is used to define the shapes of up to 16 envelopes and requires 14 parameters! These sounds are played using the SOUND statement, which defines the channel to be used, the envelope number and the note's frequency and duration. Built in is ability to 'stretch' all or even parts of each envelope, too!
At a less exotic level, BBC Basic has some other nice features. Yes, you can type in assembler mnemonics and with many statements requiring parameters, etc, in brackets, the brackets can be omitted, ie, ADVALn (which returns the last known value of analogue-to-digital converter channel n) can be written as ADVAL(3) or ADVAL3 or ADVALN, etc. And in conditional statements, such as IF A=B THEN C=D, the THEN can be left out.
BBC Basic allows multi-line definitions of both functions and procedures. A very useful feature of procedures is that you can define local variables within them, which saves having to keep a careful track of variable names. And those variable names can, incidentally, be of any length with all characters significant; further, upper and lower case characters are recognised separately, so TOTAL is different to 'total'. You'd have to be careful about this, though, for it would eat up RAM space quite extravagantly. You can use reserved words as variables in lower case, so goto=3 would be legal but not GOTO=3.
There are other nice features, too, such as the ability to redefine the character set (although this needs some care as some of the non-printing ASCII characters are recognised as control codes). And it's possible to place text anywhere on the screen, not just in predefined lines, which would allow you to do fancy things like displaying superscripts and subscripts or proportionally-spaced text.
BBC Basic reserved words
ABS - ACS - ADVAL - AND - ASC - ASN - ATN - AUTO - BGET - BPUT - CALL - CHAIN - CHR$ - CLEAR - CLOSE# - CLG - CLS - COLOUR - COS - COUNT - DATA - DEG - DEF - DELETE - DIM - DIV - DRAW - ELSE - END - ENDPROC - ENVELOPE - EOF - EOR - ERR - EVAL - EXP - EXT$ - FALSE - FN - FOR - GCOL - GET - GOTO - GOSUB - HIMEM - IF - INKEY - INPUT - INPUT LINE - INPUT# - INSTR - INT - LEFT$ - LEN - LET - LIST - LN - LOAD - LOCAL - LOG - LOMEM - MID$ - MOD - MODE - MOVE - NEW - NEXT - NOT - OLD - ON - OPENIN - OPENOUT - OPT - OR - PAGE - PI - PLOT - POINT - POS - PRINT - PRINT$ - PROC - PTR# - RAD - READ - REM - RENUMBER - REPEAT - REPORT - RESTORE - RETURN - RIGHT$ - RND - RUN - SAVE - SGN - SIN - SOUND - SPC - SQR - STEP - STOP - STR$ - STRING$ - TAB - TAN - THEN - TIME - TOP - TO - TRACE - TRUE - UNTIL - USR - VAL - VDU - VPOS - WIDTH
This review appeared in the December 1981 edition of "Personal Computer World".