BBC Micro — компьютер, который обыграл ZX Spectrum
В статье речь пойдет об истории противостояния между Acorn, Sinclair Research LTD и несколькими другими компаниями за право разрабатывать компьютер для образовательной программы британской корпорации BBC. Также предлагается подробный обзор победителя этого состязания — BBC Micro. За подробностями приглашаю под кат.
В начале 80-х годов BBC выступили инициатором проекта компьютерной грамотности Computer Literacy Project и запланировали выпуск 10-серийного сериала The Computer Programme.
Для этого им нужен был собственный компьютер. Подробная спецификация проекта, автором которой был Джон А. Колл, доступна по ссылке.
Outline specification for the BBC MICROCOMPUTER system
This specification does not set out to be definitive
but it represents a desirable set of characteristics
which we should like to aim at for a BBC system.
Certain of these characteristics are in our view
essential and these can be clarified at a later date.
SOFTWARE
We fully realise that all microcomputers have different
dialects. The BBC is investigating the possibility of
supporting a version of BASIC which is not implemented
yet on any single machine but which would be as
compatible as possible with existing practice and
could be made available within the public domain to
any manufacturer willing to implement it. The specification
in draft form is available on request. Meanwhile, you will
see that the most desirable 'fallback' is specified below.
BASIC: The general syntax of all commands should be identical to Microsoft BASIC
5.0 (repeat 5.0). If there is any conflict between what is said below
and the relevant Microsoft implementation then the latter should be used.
Graphics and I/O are outlined later.
The following commands and statements should be implemented in
floating point arithmetic to 6 figure accuracy over a range of at
least +-10^38
DIM OPEN
OPTION BASE (0 or 1) CLOSE
DEF FN INPUT
IF ... THEN ... ELSE PRINT
GOTO ?
GOSUB LINPUT
RETURN GET
ON ... GOTO PUT
ON ... GOSUB RND
ON BREAK GOTO READ
ON ERROR GOTO DATA
CONT RESTORE
RESUME CLOAD
FOR ... TO ... STEP CSAVE
NEXT CVERIFY <
RUN CMERGE
RANDOMIZE LIST
NEW LPRINT
DELETE LLIST
PEEK PLOT
POKE MPLOT
USR LINE
STOP MLINE
RENUMBER POINT
TRACE MPOINT
WHILE ... ENDWHILE ORIGIN
INP, OUT MORIGIN
SIN, COS, TAN, ATN, INT, ABS, SGN, LOG, EXP, POS, TAB, FRE, SQR
+ - * / ^ ( )
+ (string concatenation operator)
< <= <> => =
AND OR NOT
ASC, CHR$, LEN, LEFT$, MID$, INSTR, STR$, VAL
Variables names should be as long as the user wishes with the first
two characters being significant. Examples of legal variables would be
X, X1, KM, LENGTH, A3$, NAME$ and illegal names would include 3A (must
start with letter), TO$ (reserved keyword), PER POUND (no spaces).
2 John A. Coll
Odds and ends: Powers of negative integer numbers [Y=(X)^Z] should evaluate
correctly - at least for Z<15.
Multidimensional string and numeric arrays.
Strings with totally dynamic memory useage.
It should be possible to say IF A$*Useful option MID$(A$,4,3)="cat".
Timed single character input.
I/O should be channel oriented using the word ASSIGN to assign a
logical channel to a physical device (e.g. ASSIGN OUTPUT TO PRINTER or
ASSIGN #4 TO DISK0, "MYPROG")
Graphics: the software should include commands to at least
(a) Plot an alpha-numeric character or string at any place on the screen
(PLOT X,Y,A$)
(b) Plot a low resolution graphics point to build Teletext graphic
characters in a range of colours or shades of grey (minimum: black and
white) (PLOT X,Y,C probably C=-1 to complement point, C=0 to plot
black point .... C=7 to plot white point)
(c) Find out what is at the point X,Y ( C=POINT(X,Y) or A$=POINT(X,Y))
(d) Draw a line from the last specified point to the new co-ordinates (LINE
X,Y,C)
(e) Move the effective origin (ORIGIN=X,Y)
(f) Do all the above in medium resolution graphics with similar commands
MPLOT X,Y,C
MLINE X,Y,C and
C=MPOINT (X,Y)
MORIGIN=X,Y
(f) Illegal values of X,Y or C should be ignored.
Video display: Either
(a) an integral single line display of 40 characters (each built from at
least 5 by 7 dots) and a modulated UHF output of the full screen (see
below) or
(b) an integral display of the full screen plus a modulated UHF output of
the full screen or
(c) a modulated UHF output of the full screen
A composite video output should be included.
The 'full screen' should consist of at least 24 lines of 40 characters
(*preferably an option of 80 characters from the outset) of upper and lower
case alpha-numerics and (colour) Teletext graphics. These should be capable
of being freely mixed with (colour) medium resolution graphics of at least
200 horizontal points. The medium resolution graphics should be eraseable
separately from the other displays.
The computer should either produce UHF colour signals at the time of
purchase or be easily expaned to produce UHF colour signals. It must be
designed with colour Teletext and colour graphics in mind.
3 John A. Coll
The screen handler should respond to specific control characters to
(a) Home top left and clear to end of page (whole screen)
(b) GOTOXY - cursor addressing
(c) clear to end of line
(d) clear to end of page
(e) Non destructively move the cursor up/ down/ left/ right
(f) Move to start of line (carriage return)
(g) Delete previous character
(h) Scroll when on bottom line of display
(i) Clear medium resolution graphics display
Keyboard: capable of generating all 128 ASCII codes. Positive action keys (not
touch sensitive). ISO standard layout plus
(a) Up/down/left/right cursor control
(b)*A row of keys, above the numbers, which generate software definable
codes - this could be done with a software look-up table to map the
original codes to new values.
Loudspeaker: inside box and accessible from BASIC
Printer connection: electrically to RS449 (or RS232C) with the connector to ISO
2110. Only Send Data, Receive Data, Request to Send and Clear to Send need
be implemented.
Paddles: some connector to which two simple potentiometers may be connected the
setting of which can be determined by a simple BASIC statement or a few
lines of assembler program.
Teletext: adapter should be available for off-air downloading of software
Expansion port: fully electrically buffered expansion connector (e.g. no
unprotected MOS!).
Memory: sufficient within the box to support floating point BASIC and medium
resolution graphics. This probably means 16K ROM plus 32K RAM - certainly
at least 16K RAM should be supplied at the outset.
Memory map: above all this should be designed for expansion and standardisation.
Probably should be RAM from 0000 up with ROM from FFFF down (including
8080/Z80 systems). At the very top there should be a simple monitor with
any ROM high level languages immediately below. The screen should not be
allocated to fixed RAM locations below C000 and could be dynamically
allocated from available RAM. Scratchpad RAM for the stack and monitor, and
RAM for the DOS should, preferably, be well clear of low memory RAM (6502
problems here) used for user programs.
System monitor: should contain routines to
(a) output character to screen
(b) test keyboard for character waiting
(c) get character from keyboard
4 John A. Coll
(d) send character to printer
(e) load and save binary files from cassette
all the above should vector via RAM locations to default ROM device drivers
(f) examine and change memory locations.
Device handlers: Cassette, paddles and printer should also be driven via RAM
vectored device drivers.
Cassette interface: producing CUTS frequencies, but doing all the byte recovery
in software. The software should be insensitive to reversed phase play back
from a cassette recorder, work at 1200 bps, accept and produce the BBC
format tape (as well as your own format if you wish). Named files,
catalogue, idiot proof.
The manufacturer should be able to demonstrate a production model disk operating
system which should, at least:
Enable a user to plug the thing in and, without pressing a single button,
end up running a BASIC program - or any other program that the machine
had been configured to run.
Give a 'DIRectory' or 'CATalogue' of files on disk showing filenames, file
length, creation date, whether or not the file is delete-protected
Save a specified area of memory as a named binary file
Load and automatically execute binary files
Save onto disk ASCII text or data from BASIC etc.
Load text from disk
LIST a text file to screen or printer
EXECute an text file as if it were a 'command line' - including refernces
to any disk drive or any peripheral
Delete and rename specified files or groups of files
Permit random access to data in multiple files
Have a well organised JUMP list at a known location to all routines likely
to be needed by assembly language programmers.
The Disk Operating System should appear as a byte oriented input/output
stream similar to the keyboard/VDU and data should not need to be
blocked before being passed to the DOS
At least 10 disk channels should be capable of 'simultaneous' access (i.e.
OPEN concurrently)
Faulty disk sectors should be automatically avoided
Accidental swapping of disks should not either (a) crash the disk file
structure or (b) abort everthing
The vast majority of the DOS high level commands (such as CAT, DIR, COPY,
LIST, DELETE, RENAME, PROTECT, SAVE) should not form part of the
permanently memory resident DOS. They should be Utility or Transient
programs called into memory when required. All those listed above
should not reside in the same memory space as BASIC or as the EDITOR
or WORD-PROCESSOR. They should all be able to be called from BASIC
etc. The manufacturer should be able to SHOW an extensive range of
such transients and should not say 'Oh that would be very easy to
write'!
5 John A. Coll
источник http://stardot.org.uk
источник http://www.retro-kit.co.uk
Сначала BBC фактически выбрали компьютер Grundy NewBrain, разработка которого была начата в компании Клайва Синклера Sinclair Radionics, однако в 1980 году она была признана банкротом и ликвидирована, а сам проект был передан в лабораторию Newbury Laboratories.
Источник wikipedia.org
Представленный компьютер не соответствовал ожиданиям и спецификации BBC, и предложение было отклонено. Корпорация объявила о начале конкурса на разработку компьютера, и в борьбу включилась новая компания Клайва Синклера Sinclair Research и небольшая компания Acorn, основанная бывшим сотрудником Sinclair Radionics Крисом Карри и его другом Германом Хаузером. У Acorn на момент объявления конкурса уже был компьютер Acorn Atom, и команда работала над новой версией Acorn Proton, а Sinclair Research выпускали ZX80 и активно работали над ZX Spectrum.
Один из разработчиков BBC Basic, Ричард Рассел, опубликовал на форуме stardot.org.uk ряд интересных документов, в частности коммерческое предложение от Acorn и план встречи руководства BBC с представителями компаний-разработчиков. Сам Ричард также присутствовал на этой встрече, которая состоялась 12 февраля 1981 года и куда в итоге пригласили представителей Acorn, Newbury Lab, Tangerine и Commodore. На форуме Ричард пишет, что в первоначальном списке были также Transam, Nascom и Sinclair, но в итоге BBC даже не включили предложение от Sinclair в приглашение.
Причиной того, что Sinclair даже не попали на финальное совещание, стало упрямство самого Клайва Синклера. В книге The legacy of the BBC Micro автор ссылается на письмо исполнительного продюсера BBC Джона Рэдклифа, в котором говорится, что команда проекта вела активную переписку с Клайвом. Одно из противоречий заключалось в том, что в Sinclair был реализован стандартный Basic, а BBC хотели несколько модифицированную версию, и у Клайва Синклера не было особого желания его переделывать. В BBC видели, что Синклер успешно продает свою модель ZX80 и готовится к выпуску новой модели. Они считали, что Синклер не будет готов серьезно менять спецификацию своего компьютера, и в результате компания получит стандартный ZX Spectrum в цветах BBC. Acorn же, напротив, показали полную готовность делать именно то, что просят инженеры BBC. Крис Карри позвонил в BBC и сообщил о готовности показать рабочий прототип. У команды Acorn было всего несколько дней, чтобы доработать Proton под спецификацию BBC. Презентация была назначена на 10 утра пятницы, в четверг вечером прототип всё еще не работал.
Как вспоминал Стив Фербер, один из членов команды Acorn: «Мы все очень устали, но Герман умел мотивировать команду. Его работа заключалась в том, чтобы выходить на улицу и покупать шашлыки. Еще он готовил чай. Он делал это, чтобы поддержать команду. Мы все смотрели на эту штуку, которая всё еще отказывалась работать, и Герман предложил что-то вроде «перерезать пуповину от прототипа до системы разработки и позволить ей работать самостоятельно».
Судя по всему, речь шла о сигнале синхронизации от отладочной платы к прототипу. Это решение помогло, и к 7 утра пятницы у команды был рабочий прототип. Представители BBC должны были прийти в 10, к этому времени прототип уже выполнял реальные программы на Basic, чуть позже удалось запустить и графику. По некоторым показателям он даже превосходил заявленные требования.
Эта презентация произвела большое впечатление на BBC, им также понравилось отношение команды к проекту и та самоотдача, с которой они работали над прототипом.
После финального совещания BBC сделали выбор в пользу Acorn. Так началась история одного из самых популярных в Британии компьютеров — BBC Micro.
В 2009 году BBC выпустили художественный фильм Micro Men об истории развития компьютерной индустрии в Британии, в котором достоверно показано противостояние Sinclair и Acorn. Очень рекомендую посмотреть этот фильм всем интересующимся компьютерной историей, тем более он есть с переводом.
Дальше предлагаю перейти к обзору BBC Micro model B, который пользователи называли Beeb.
Итак, 1 декабря 1981 года на рынок были выпущены две модели: BBC Micro model A по цене £235 и BBC Micro model B по цене £335. C учетом инфляции и в пересчете в доллар это $860 и $1225 соответственно — не так уж и дешево для массового домашнего компьютера.
Он представляет собой довольно габаритный (в сравнении с ZX Spectrum) моноблок, в котором сам компьютер и клавиатура расположены в одном корпусе. Центральный процессор — MOS 6502, работающий на частоте 2 МГц. На нём же были построены и Atari, и Apple II. Выпущенные модели отличались количеством оперативной памяти (в модели А было 16 Кб, в модели В — 32 Кб), а также поддерживаемыми видеорежимами. Память ПЗУ была размером 32 Кб и содержала BBC Basic — специально разработанную версию Basic на базе Microsoft Basic v. 5.0. У компьютера была удобная 74-кнопочная клавиатура, которая выглядела намного солиднее и надежнее, чем у ZX Spectrum.
В правом углу над клавиатурой изображен фирменный логотип проекта Computer Literacy Project — пиксельная сова.
На задней панели BBC Micro выведены интерфейсы для подключения к антенному входу телевизора, композитный выход на монитор (по умолчанию черно-белый, но на плате есть перемычка, позволяющая вывести цветной PAL сигнал), интерфейс RGB для подключения к цветным мониторам, RS423 для связи с RS232 устройствами, интерфейс магнитофона для загрузки и сохранения программ и шина 4-х аналоговых интерфейсов, к которой можно подключить джойстики и лабораторное оборудование. АЦП обеспечивал 12-битное разрешение.
На нижней части корпуса в нише расположены системная шина 1 МГц для подключения модулей расширения (например, Телетекст), шина IEEE 488, интерфейс жесткого диска.
Архитектура BBC Micro позволяла установить множество дополнительных расширений, таких как интерфейс дисковода, дополнительные языки высокого уровня в ПЗУ. Acorn даже разработали свой стандарт локальной сети — Econet, позволяющий объединить в сеть до 255 компьютеров. Поддержка этого стандарта была в ядре Linux до 2012 года, позже ее убрали из-за уязвимостей.
Еще одной интересной особенностью была возможность подключить дополнительный сопроцессор Z80 с собственными 64 Кб памяти для полной совместимости с популярной в то время операционной системой CP/M, для чего была разработана собственная шина, названная Tube.
Внутри корпуса расположена довольно большая плата, подробности о которой можно узнать из Service Manual.
Структурная схема платы
На плате изображен логотип Acorn, мне досталась уже 7-я ревизия платы.
В комплекте с компьютером поставлялись рекламные материалы со спецификацией на компьютер и модули расширения для него, а также инструкция и кассета программ к проекту Computer Literacy Project.
Поскольку проект был образовательным, для компьютера также была разработана программа по обучению языку Basic и выпущено много учебников.
Игры для BBC Micro, конечно же, тоже были.
Один из самых известных космических симулятров — Elite — был написан Acornsoft специально для BBC Micro (у меня есть оригинальная коробочная версия). Позже эту игру переиздали под множество других компьютеров.
Для пользователей компьютеров Acorn также выпускался журнал Acorn User. Как и в современных компьютерных журналах, до 30% там занимала реклама.
Ну что же, самое время включить Beeb. На видео показаны загрузка и демонстрация игр Elite, Monopoly и Repton 3. За качество видео прошу строго не судить. Пришлось внести небольшие модификации в компьютер, чтобы получить цветную картинку с композитного выхода, — по умолчанию на него выводится только черно-белое изображение. Из-за этого мерцание изображения стало больше.
В сети также есть онлайн-эмулятор BBC Micro, который поможет получить более полное представление об этой машине — bbc.godbolt.org
История Acorn на этом не заканчивается. После BBC Micro компания выпустила еще Acorn Electron — упрощенную версию Beeb, BBC Master со 128 Кб памяти, линейку компьютеров Acorn Archimedes на 32-разрядных RISC процессорах собственного производства, но наиболее весомый вклад Acorn в компьютерную индустрию — это разработка архитектуры ARM, на которой сейчас работает огромное количество электроники от смартфонов до электроавтомобилей.
В продолжение планирую еще небольшой обзор Acorn Electron, материалы по нему почти готовы, также готовится статья про Sinclair QL, но с ним возникли некоторые сложности: в пленочной клавиатуре пересох шлейф и она не работает, нужно или заказывать новую пленку, или пытаться восстанавливать эту.
Благодарю за внимание.