Примерно полвека назад, где-то в начале 80-х годов XX века в BBC загорелись идеей образовательного проекта, цель которого — повышение компьютерной грамотности школьников, студентов и вообще всех желающих. А чтобы сделать проект масштабным, привлечь максимальное количество участников, нужен был инструмент.

Им стал персональный компьютер BBC Micro с особой версией Basic, которая получила название BBC Basic. Программа, к слову, действует до сих пор, но фокус обучения чуть сместился. В статье поговорим как о самом компьютере от BBC, который получил название BBC Micro, так и о языке программирования.

Как всё начиналось

После того, как авторы проекта решили выпустить собственный компьютер и запустить обучение пользователей языку Basic, прошло не так много времени. Перед самым новым годом 1981 г. на рынок выпустили две модели устройства: BBC Micro model A по цене £235 и BBC Micro model B по цене £335. На тот момент это было дорого для обычного пользователя, примерно, как 800 и 1000 долларов США сейчас. Согласитесь, если для рабочего ноутбука это более-менее нормально, то для обучающего инструмента — дороговато.

 

Но всё же проект пошел в массы, что может свидетельствовать о привлекательности его для людей, которым очень хотелось приобщиться к IT в то время. Вот технические характеристики этого компьютера:

  • Процессор: MOS Technology 6502A (в Model B — 6512A) на тактовой частоте 2 МГц.

  • Память: 32 КБ ПЗУ (в Model B — 48 КБ), 16 КБ ОЗУ (в Model B — 32 КБ, в Model B+ — 64 КБ).

  • Полноразмерная клавиатура, 74 клавиши, из них десять функциональных.

  • Габариты — 409×358×78 мм, вес 3,7 кг.

  • Экран: 8 текстово-графических режимов — от 160 × 256 точек при 8 цветах, до 640 × 256 точек при двух цветах.

  • Звук: монофонический, три независимых звуковых канала (это было преимуществом перед конкурентами) с прямоугольной волновой формой плюс генератор шума, 16 программно-управляемых уровней громкости; используется звуковой генератор Texas Instruments SN76489.

Компьютер был неплох, и это тоже стало одним из факторов популярности девайса. Например, чип 6502 в этом ПК имеет вдвое большую частоту (2 МГц), чем у таких конкурентов, как Apple II и Commodore 64. Например, по результатам теста Calculator Benchmark (8 ферзей) на Бейсике BBC Micro опережает такие ПК, как Apple IIe, Commodore 64, MSX, ZX Spectrum в 2,5-3 и более раз.

Интерпретатор Бейсика (BBC BASIC) имеет возможности работы с процедурами (с локальными переменными), использования логических координат вместо физических при выводе на экран (то есть положение и размер графических элементов на экране не зависят от текущего разрешения), задания раздельных окон на экране для отображения текста и графики, включения ассемблерных вставок.

На задней панели компьютера разместились интерфейсы для подключения к ТВ, композитный выход на монитор (можно было обеспечить как ч/б, так и цветное изображение), RS423 для связи с RS232 устройствами, интерфейс магнитофона для загрузки и сохранения программ и шина 4-х аналоговых интерфейсов, к которой можно подключить джойстики и лабораторное оборудование. Еще одним отличием девайса была его расширяемость — т.е. имелась возможность подключения различных плат расширения, дополняющих функциональность.

Кроме того, можно было подключить и дополнительный сопроцессор Z80 с 64 КБ памяти. Это делало компьютер совместимым с ОС  CP/M.

Что насчёт обучения Basic?

Поскольку сам проект образовательный, то для него был разработан целый курс изучения языка программирования Basic, а также создано несколько учебников. ЯП решили выбрать потому, что он достаточно простой для изучения, с несложным синтаксисом.

BBC BASIC основан на более старом Atom BASIC, имевший возможности работы с процедурами и функциями, а также со структурами IF-THEN-ELSE. Кроме того, он имел широкие возможности по работе со звуком и поддерживал графику с высоким разрешением. Вот версии BBC BASIC от самой первой до наиболее продвинутой:

  • BASIC I, оригинальная версия, была написана для ранней версии BBC Micro.

  • BASIC II был использован в Acorn Electron и BBC Micro уже после 1982 года, включая BBC B+.

  • BASIC III издавался в Великобритании и США компанией Acron Computers под одной версией. В ней исправили множество ошибок, а также добавили новые возможности, например, команда COLOR, изменявшая цвет вводимого текста. BASIC III также известен как HI-BASIC.

  • BASIC IV (CMOS BASIC) поддерживал компьютеры BBC Master и BBC Master Compact. В этой версии были добавлены новые команды, исправлены ошибки, появилась поддержка других процессоров.

  • HI-BASIC был доступен в двух версия; первая был основана на BASIC III, а вторая на BASIC IV. Версия поддерживалась процессорами Z80 и 6502 Second.

Позже выпускались и другие версии, адаптированные под новые аппаратные платформы и архитектуры.

Одной из уникальных особенностей BBC BASIС была поддержка элементов ассемблера и возможность писать на нём программы для MOS Technology 6502. Ассемблер был полностью встроен в BBC Basic — компиляция ассемблерной программы происходила во время интерпретации программы, откомпилированный код размещался в оперативной памяти (обычно для этого надо было заранее зарезервировать соответствующий кусок памяти), а потом двоичный код можно было записать на диск или вызвать прямо из программы. Это позволяло использовать при компиляции выражения с переменными языка и даже вызывать функции, существенно увеличивая функциональность компилятора.

Курс был 30-часовым, дистанционным. Несмотря на нестандартный подход к обучению, на курс сразу зарегистрировалось свыше 150 тыс. человек. Аудитория каждого из выпусков была очень большой — от полумиллиона до 2 млн зрителей.

Не последнюю роль в стимуляции интереса к компьютерным технологиям сыграл и софт, а также игры, которые выпускались для нового ПК. Например, один из самых известных космических симуляторов, который называется Elite, выпустили именно для компьютера от BBC, а уж потом он попал и к пользователям других персональных систем.

Вероятно, этот проект был наиболее влиятельным из всех образовательных программ за все время. Благодаря авторам идеи интерес к компьютерам проснулся у очень многих людей, выросло целое поколение программистов, которые начинали именно с BBC Micro и BBC Basic.

И это не всё, проект продолжает жить

В 2016 году BBC представил микрокомпьютер micro:bit, который разработан специально для образовательных целей — для школьников, а также вообще всех желающих приобщиться к электронике и программирования.

Но целевая аудитория всё же дети в возрасте 11-12 лет. В разработке принимали участие крупнейшие компании:

  • Microsoft снабдила проект средой разработки (платформа Touch Develop);

  • Samsung создали приложение на Android;

  • NXP предоставила микросхемы USB контроллера, акселерометра и магнитометра;

  • Nordic Semiconductor свой чип микроконтроллера;

  • в Ланкастерском университете создали ядро софтовой части микрокомпьютера.

Вот характеристики этого устройства:

  • Размеры платы 4х5 см.

  • ЦП: Nordic nRF51822, 16 МГц 32-бит ARM Cortex-M0 микроконтроллер, 256 КБ флеш-памяти, 16 КБ оперативной памяти, так же данный микроконтроллер имеет встроенный модуль 2,4 ГГц Bluetooth пониженного энергопотребления.

  • Для обслуживания интерфейса USB на плате установлен отдельный микроконтроллер Freescale Kinetis KL26Z 48 МГц с ядром ARM Cortex-M0+.

  • Трёхосевой акселерометр Freescale MMA8652 с шиной I²C.

  • Трёхосевой магнитометр Freescale MAG3110 с шиной I²C (можно использовать как компас или в качестве детектора металла).

  • Матрица 5х5 из 25 светодиодов.

  • Три кнопки: две для пользователя, одна залочена на функцию reset.

  • 23 контакта пинов ввода-вывода общего назначения.

  • Коннекторы: MicroUSB и питания.

Для него было разработано множество различных модулей, расширений и корпусов. Плюс ПО, которое дает возможность относительно быстро разобраться в вопросе программирования и разработки электроники. Чуть позже появилась вторая версия, с беспроводным модулем связи и микрофоном. Стоимость ее составляет около 22 долларов США.  

BBC Basic сегодня

BBCSDL, or BBC Basic for SDL 2.0, running on iOS devices, in graphical mode.
BBCSDL, or BBC Basic for SDL 2.0, running on iOS devices, in graphical mode.

На текущий момент существует версия BASIC, которая называется BBC BASIC для SDL 2.0.  Данный его вариант имеет открытый исходный код и совершенно бесплатен.

Функции:

  • Работает на Windows, MacOS, Linux (а также Raspberry Pi OS), Android, iOS и в Web.

  • Поддерживает 2D, 3D и графику со сглаживанием, а также программирование шейдеров.

  • Имеет встроенный физический движок Box2D.

  • Добавлено около 150 примеров программ.

  • Высокая совместимость с оригинальным BBC Micro, включая MODE 7, SOUND и ENVELOPE.

https://www.bbcbasic.co.uk/bbcsdl/wss.png

Редакции Windows, MacOS и Android устанавливаются автоматически. Редакцию Linux (64-разрядную версию) следует извлечь в пустую папку; библиотеки SDL2, SDL2_ttf и SDL2_net также необходимо загрузить из репозитория вашего дистрибутива, если они ещё не установлены.

Вот официальная страница проекта

Язык, конечно, уже не столь популярен, как ранее, но способен заинтересовать школьников младшего возраста, ведь на нем можно разрабатывать как игры, так и несложное ПО иного рода. А если ребенок проявил интерес к электронике и программированию, то, скорее всего, склонность ко всему этому не пропадет и в будущем. 

В любом случае, BBC Micro и BBC Basic многим обязаны миллионы программистов, а текущая конфигурация IT-отрасли сформировалась под влиянием этого проекта. 

Комментарии (4)


  1. Skigh
    14.12.2023 10:48

    Например, по результатам теста Calculator Benchmark (8 ферзей) на Бейсике BBC Micro опережает такие ПК, как Apple IIe, Commodore 64, MSX, ZX Spectrum в 2,5-3 и более раз.

    Интересно было бы узнать, что это за Calculator Benchmark, и как BBC Micro смог в разы обойти ZX Spectrum, имеющий гораздо более высокую частоту процессора.


    1. K0styan
      14.12.2023 10:48

      Что характерно, похожий абзац на Вики снабжён меткой "Источник не указан много дней")

      Но на англовики есть небольшой кусочек про производительность (хоть и без конкретных цифр в бенчмарках). Пишут, что там была ОЗУ повышенного быстродействия, эксклюзив по тем временам от Hitachi. Это позволило иметь общий пул памяти между ЦП и видеоадаптером, разделяя доступ по времени.

      А у того же Спектрума процессор был быстрый, ускоренный по сравнению с предшественниками, но память - старая, так что такой разделённый доступ тормозил всех.


    1. checkpoint
      14.12.2023 10:48

      Тут нужно понимать, что ни Zilog Z80, ни MOS 6502 не являются конвейерными процессорами. Z80, не смотря на существенно более высокую тактовую частоту, имеет очень низкую пропускную способность - IPS (Instructions per Second) равную 0.145, т.е. каждая инструкция на Z80 выполянется за 8 (восемь!) тактов. В то время как на MOS 6502 - инструкция в среднем выполняется за 2.3 такта, IPS = 0.43. Таким образом, при одинаковой тактовой частоте, MOS 6502 почти в 3 раза быстрее чем Z80. Таблица сравнения IPS некоторых известных процессоров и систем.

      Но и это еще не все. В подавляющем большинстве 8-ми битных ПК видео память располагалась в основном адресном пространстве и была однопортовой (Atari 800, большинство отечетсвенных на базе КР580ВМ80А), что существенно притормаживало процессор при работе с памятью (в момент генерации изображения, видео подсистема останавливала центральный процессор чтобы получить доступ к шине). В BBC Micro и в некторых других ПК использовали отдельный видео контроллер со своим двухпортовым ОЗУ, доступ к которому от центрального процессора не приводил к замедлению и обновление изображения на экране не приводило к остановке процессора. Это давало существенный выигрыш в производительности.

      В общем, архитектура имеет значение.


  1. marks
    14.12.2023 10:48

    Вот пример просто отличного образовательного проекта - я других таких, включая масштабность, и не знаю, наверное.