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
    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 <<Annotation: REWIND>>
    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$<B$ THEN ...
    *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


    Источник

    Источник

    Сначала BBC фактически выбрали компьютер Grundy NewBrain, разработка которого была начата в компании Клайва Синклера Sinclair Radionics, однако в 1980 году она была признана банкротом и ликвидирована, а сам проект был передан в лабораторию Newbury Laboratories.

    image
    Источник 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, но с ним возникли некоторые сложности: в пленочной клавиатуре пересох шлейф и она не работает, нужно или заказывать новую пленку, или пытаться восстанавливать эту.

    Благодарю за внимание.
    Метки:
    Plarium 64,10
    Разработчик мобильных и браузерных игр.
    Поделиться публикацией
    Комментарии 15
    • 0
      Элита на BBC — идет приятнее! FPS выше раза в два
      • 0
        Новую жизнь в элиту я вдохнул как-то подключив джойстик Logitech F710, и забиндив нужные клавиши на кнопки. Так приятно взводить ракету по клику на аналоговом джойстике, а потом отправлять её. Просто новые ощущения от игры! На пару дней хватило поиграться. Это всё в симуляторе, понятное дело.
        • 0
          К BBC Micro можно подключить аналоговый джойстик, только вот поддерживается ли он в Elite я не знаю.
          https://deskthority.net/wiki/BBC_Micro_analogue_in
          • 0
            Может в эмуляторе?
            • 0
              Не понял вопроса.
              • 0
                Потому что он не вам.

                Внимательно смотрите на сообщения, которые валятся в почту и уведомления на сайте, есть отправленые вам (хотя не обязательно, например просто новый комментарий к статье) или на ваши комментарии, а есть другим, на их комментарии.
              • 0
                Логично. Именно в нём. Правда эмулятор спектрума, а не этого BBC, которого я не встречал.
            • +1
              В Elite интересна планета — она тут из двух окружностей состоит (добавлен экватор). На ZX такого не было, насколько я помню. А FPS, действительно, выше.
              • +1
                Похоже, 6502 при более низкой тактовой частоте оказывается даже быстрее Z80.
                Но тут следует отметить, что (к сожалению) Z80 — никак не игровой процессор. У него хорошо проработанный (для того времени) аппаратный интерфейс, позволяющий с минимумом внешних компонентов организовать законченное устройство, большие задержки при обращении к памяти и портам I/O, позволяющие без особых проблем подключать медленную логику, высокая нагрузочная способность, встроенный регенератор памяти до 64Кб и т.д. Но вот назвать его быстрым процессором нельзя никак. Минимальное время выполнения команды на нем — 4 такта. Да и чего только стоит факт, что максимальной скорости работы с памятью там можно было достичь только используя стек. Т.е. Zilog явно не ставил производительность на первый план )
              • –2
                По моему раньше игроделы старались охватить максимум возможных платформ. А не как сейчас.
                • 0
                  unreal engine/unity?
                  • +1
                    Ну почему же, сейчас годные игры тоже стараются сразу на все платформы выпускать, PC, XBox, PS4, если речь не идет об эксклюзивах под какую-то конкретную платформу.
                    • 0
                      Сейчас, годные игры стараются эксклюзивно выпускать.
                  • +1
                    Хорошу фразу мужик в очках сказал на видео (18:39): «I really hate to see computers just use for playing games».
                    Поддерживаю )
                    • –2
                      :) Можно сократить до
                      I really hate computers

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое