Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Операционная система машины ( MOS ) [2] или OS является прекращенной компьютерной операционной системы (ОС) , используемых в Acorn Computers диапазоне компьютера BBC. Он включал поддержку четырехканального звука, графики, абстракции файловой системы , а также цифрового и аналогового ввода / вывода (I / O), включая шину расширения с последовательным подключением. Система была однозадачной, монолитной и не допускала повторного входа .

Версии от 0.10 до 1.20 использовались на BBC Micro , версия 1.00 на Electron , версия 2 использовалась на B +, а версии от 3 до 5 использовались в серии BBC Master .

Последний компьютер BBC, BBC A3000, был 32-разрядным и работал под управлением ОС RISC , которая содержала части архитектуры Acorn MOS и имела ряд общих характеристик (например, интерфейс командной строки «звездные команды» , коды управления видео «VDU» и режимы экрана. ) с более ранней 8-битной MOS.

Версии от 0 до 2 MOS имели размер 16  КиБ , были написаны машинным кодом 6502 и хранились в постоянном запоминающем устройстве (ПЗУ) на материнской плате . Верхняя четверть 16-битного адресного пространства (от 0xC000 до 0xFFFF) зарезервирована для кода ПЗУ и пространства ввода-вывода.

Версии с 3 по 5 по-прежнему были ограничены адресным пространством 16 КиБ, но им удавалось хранить больше кода и, следовательно, более сложные процедуры, отчасти из-за альтернативного центрального процессора (ЦП) 65C102 с его более плотным набором команд плюс осторожное использование подкачки .

Пользовательский интерфейс [ править ]

В исходных версиях MOS, от 0 до 2, не было пользовательского интерфейса как такового: ожидается, что приложения будут перенаправлять командные строки операционной системы в ОС от ее имени, а язык программирования BBC BASIC ROM со встроенным ассемблером 6502 прилагается. с BBC Micro - это приложение по умолчанию, используемое для этой цели. BBC Micro остановится с Language?ошибкой, если отсутствует ПЗУ, которое объявляет ОС возможность предоставить пользовательский интерфейс (так называемые языковые ПЗУ ). MOS версии 3 и более поздних версий действительно имела простой интерфейс командной строки , обычно видимый только тогда, когда память CMOS не содержала настройки для ПЗУ по умолчанию.

Прикладные программы в ПЗУ, а также некоторые программы на кассетах и ​​дисках обычно предоставляют командную строку, полезную для работы с файловым хранилищем, например для просмотра вставленного в данный момент диска. ОС предоставляет возможность ввода строки и подчиняется введенным командам, но приложение контролирует запуск командной строки.

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

В BBC BASIC командам ОС предшествует звездочка или они передаются через ключевое слово OSCLI, чтобы указать BASIC перенаправить эту команду непосредственно в ОС. Это привело к тому, что звездочка стала символом подсказки для любого программного обеспечения, предоставляющего командную строку ОС; MOS версии 3 официально использует звездочку в качестве символа командной строки. При ссылке на команду ОС они обычно включают звездочку как часть имени, например *RUN, *CATи *SPOOLт. Д., Хотя командой является только часть после звездочки. Звездочка была названа «звездой», а команды - «звездными командами».

Неизвестные команды предлагаются любым служебным (расширенным) ПЗУ; Системные ПЗУ файловой системы часто проверяют, соответствует ли файл на диске этому имени, как и большинство других интерфейсов командной строки. Вызов операционной системы OSWORD с аккумулятором = 0, однако, предлагает программам однострочный ввод (с ctrl-U для очистки строки и включенными клавишами копирования курсора) с базовой фильтрацией символов и ограничением длины строки.

В интерпретаторе командной строки MOS реализована довольно необычная идея: сокращение команд. Чтобы сэкономить, можно использовать точку после нескольких первых символов, например *L.for *LOADи *SA.for *SAVE. *RUNбыл сокращен до */одиночки. *CAT, команда каталогизации (списка) кассеты или диска может быть сокращена до *..

Сервисные ПЗУ [ править ]

Сторонние ПЗУ обычно также поддерживают сокращение команд, что приводит к неоднозначности, когда два служебных ПЗУ предоставляют команды, которые очень похожи по названию, но, возможно, различаются по функциям. В этом случае MOS будет отдавать приоритет команде из ПЗУ в слоте ПЗУ с более высоким номером, например, 7 имеет приоритет над 6.

Некоторые сторонние поставщики могли бы обойти это, добавив к своим звездным командам другие буквы. Например, команды ROMS Watford Electronics будут иметь префикс звездочки, Wчто сделает их уникальными.

Расширение [ править ]

Младшие 16 КиБ карты ПЗУ (от 0x8000 до 0xBFFF) зарезервированы для активного банка выгружаемого бокового адресного пространства . Система Sideways на BBC Micro позволяет переключать по одному ПЗУ из разъемов на материнской плате (или платах расширения) на карту основной памяти. Таким образом, программное обеспечение можно запускать из ПЗУ (оставляя оперативную память свободной от программного кода пользователя, для большего рабочего пространства), а ОС можно расширять с помощью таких ПЗУ. Наиболее распространенным боковым ПЗУ после BASIC является система хранения дисков Acorn, используемая для обеспечения поддержки дискет для машины.

Во время сброса каждое выгружаемое ПЗУ включается и спрашивает, сколько публичного и частного рабочего пространства ему нужно. Каждому ПЗУ выделяется часть частной рабочей области, которая остается выделенной все время, и один блок общедоступной рабочей области, равный размеру наибольшего запроса, становится доступным для активного ПЗУ. Во время работы выгружаемая область быстро переключается между ПЗУ, когда выдаются команды файловой системы и нераспознанные команды помещаются в ОС.

MOS выделяет блок памяти размером 3,5 КиБ (от 0x0000 до 0x0DFF) снизу карты памяти для рабочей области ПЗУ операционной системы и языка:

[3] [4]

На кассетной машине 0x0E00 - это начало памяти пользовательской программы. Если установлены ПЗУ расширения ОС, такие как ПЗУ файловой системы, выше этой точки выделяется больше памяти; ПЗУ DFS обычно используют еще 2,75 КиБ для кэширования каталога дисков и управления буферами произвольного доступа. ПЗУ сетевой файловой системы (для Econet) выделяет еще 0,5 КБайт сверх этого. Это серьезная проблема, поскольку MOS не поддерживает перемещение машинного кода, который должен запускаться с адреса, по которому он был собран, поэтому некоторые программы, предполагавшие фиксированный запуск памяти пользовательских программ, могли перезаписать рабочее пространство MOS. Проблема была уменьшена в версиях с 3 по 5, позволяя ПЗУ выделять рабочее пространство в альтернативном банке ОЗУ от 0xC000 до 0xDFFF, который присутствовал в компьютерах серии Master, хотя старые ПЗУ могли продолжать выделять блоки основной памяти.

ОС также поддерживает векторную таблицу всех своих вызовов, которая может быть обновлена ​​для перехвата любых вызовов ОС для расширения пользователя. Изменяя или «зацепляя» эти векторы, разработчики могли заменить свои собственные процедуры на те, которые предоставляются MOS по умолчанию.

Текст, графика, печать [ править ]

MOS позволяет направлять текстовый вывод, предназначенный для экрана, вместо этого на принтер или и то, и другое сразу, что обеспечивает очень простую поддержку печати для обычного текста. Печать графики не поддерживается и должна быть написана отдельно.

Графика и вообще весь экран выводится очень необычным образом. Управляющие символы ASCII почти полностью получили новое значение в MOS: они известны как «драйверы VDU», поскольку в документации они описаны в связи с оператором VDU в BBC BASIC, они интерпретируются как символы управления видео. VDU 30(т.е. ASCII 30) перемещает курсор в (0, 0), VDU 4 и 5 выбирают, должен ли текст отображаться на графике или текстовом курсоре, VDU 12 очищает экран, а VDU 14 и 15 включают и выключают блокировку прокрутки. Таким образом, нажатие ctrl-L очистит экран, а ctrl-N включит блокировку прокрутки. VDU 2 и 3 переключают, выводится ли вывод с экрана на принтер. Оператор BBC BASIC VDU VDU x [, y[, z...]]эквивалентен обычному BASICPRINT CHR$(x) [; CHR$(y)[; CHR$(z)...]]и многие из управляющих кодов (например, 12 для «очистки экрана» и 7 для «звукового сигнала») имеют те же функции, что и на других современных машинах.

Многие другие управляющие символы принимают параметры: один или несколько следующих за ними символов используются исключительно для их битового значения в качестве параметра, а не в качестве управляющего кода. VDU 19 обрабатывает переназначение палитры; следующие пять байтов представляют собой запись палитры, желаемый цвет и три резервных байта. VDU 31 помещает текстовый курсор в позицию, содержащуюся в следующих двух байтах. VDU 17 устанавливает цвет текста, а 18 - цвет графики. VDU 25 использует следующие пять байтов для перемещения графического курсора и построения сплошных и пунктирных линий, точек и закрашенных треугольников, задокументированного объема графики в MOS 0 и 1. Первый байт - это код команды, за которым следуют координаты x и y. -координаты как две пары байтов. Другие графические функции, такие как заливка горизонтальной линии, ограниченной заданным цветом, были доступны за счет использования недокументированных или плохо документированных кодов команд.

BBC BASIC содержал псевдонимы для обычно используемых кодов VDU (например, GCOL для VDU 18 или PLOT для VDU 25). Некоторые операторы были прямыми эквивалентами кодов VDU, например, CLS для VDU 12. Некоторые операторы были менее точными эквивалентами, поскольку они включали в себя функции, специфичные для BASIC, а также вызов подпрограмм ОС; например, оператор MODE x установит режим экрана x и отрегулирует системную переменную BASIC HIMEM в соответствии с объемом памяти, который новый режим оставил доступным для BASIC, в то время как VDU 22, xустановит только режим экрана, не изменяя HIMEM. Это позволяло программисту выделять блок памяти из BASIC - например, для загрузки в него процедур машинного кода - путем понижения значения HIMEM в начале программы, и при этом иметь возможность переключать режимы экрана, не освобождая его в качестве побочного эффекта. .

Существует одна команда операционной системы для записи символа, OSWRCH, которая отвечает за весь текст и графику. Например, чтобы переместить курсор на (10, 15), необходимо в ассемблере 6502 :

LDA # 31: JSR OSWRCH \ перемещение текстового курсораLDA # 10: JSR OSWRCH \ x-координатаLDA # 15: JSR OSWRCH \ y-координата

(LDA загружает значение в аккумулятор; JSR - это «переход к подпрограмме».) При третьем вызове ОС курсор переместится. Следующий код будет рисовать линию от (0, 0) до (0, +100):

LDA # 25: команда JSR OSWRCH \ begin "PLOT" (ASCII 25)LDA # 4: JSR OSWRCH \ command k = 4, или переместить абсолютноеLDA # 0: JSR OSWRCH: JSR OSWRCH: JSR OSWRCH: JSR OSWRCH \ send (0, 0) как младшие и старшие байтовые пары
LDA № 25: JSR OSWRCH \ begin PLOTLDA # 1: JSR OSWRCH \ k = 1 - рисовать относительныйLDA # 0: JSR OSWRCH: JSR OSWRCH \ x = 0LDA # 100: JSR OSWRCH \ y = 100 (младший байт)LDA # 0: JSR OSWRCH \ старший байт

BBC BASIC позволяет выполнять указанные выше действия одним из следующих способов:

 ВДУ 25 , 4 , 0 ; 0 ; 25 , 4 , 100 ; 0 ;         ПЕЧАТЬ CHR $ ( 25 ); CHR $ ( 4 ); CHR $ ( 0 ); ... и т . д.      УЧАСТОК 4 , 0 , 0 : УЧАСТОК 1 , 0 , 100        MOVE 0 , 0 : РИСОВАТЬ 0 , 100 : REM абсолютных кооперативы - ords только!          OSWRCH = & FFEE: % = 25 : ВЫЗОВ OSWRCH: % = 4 : ВЫЗОВ OSWRCH: % = 0 : ВЫЗОВ OSWRCH ... и т.д. .           

Графика в Acorn MOS использует виртуальное графическое разрешение 1280 × 1024 с позициями пикселей, сопоставленными с ближайшим эквивалентным пикселем в текущем графическом режиме. Переключение разрешения видео не повлияет на форму, размер или положение графики, нарисованной даже с совершенно другими пиксельными метриками в новом режиме, потому что все это учитывается ОС.

MOS предоставляет два других вызова ОС, которые обрабатывают текстовый вывод: OSNEWLи OSASCI. OSNEWL записывает перевод строки и возврат каретки в текущий выходной поток. OSASCI перенаправляет все символы непосредственно в OSWRCH, за исключением возврата каретки, который вместо этого вызывает вызов OSNEWL. Точный код OSASCI и OSNEWL - пять строк ассемблера 6502 - задокументирован в Руководстве пользователя BBC Micro.

MOS реализует распознавание символов, так что текст, напечатанный на экране системным шрифтом, можно выбирать с помощью клавиш со стрелками и вводить с помощью COPYклавиши, как если бы он был набран. Чтобы активировать редактирование экрана, пользователь перемещает аппаратный курсор к тексту, который нужно прочитать, и ОС отображает второй курсор в программном обеспечении в исходной позиции. НажатиеCOPYкопирует один символ из аппаратного курсора в программный курсор и продвигает оба, так что при удержании клавиши копируется часть текста, при этом курсоры обтекают вертикальные края экрана по мере необходимости. Если экран прокручивается во время редактирования, положение аппаратного курсора регулируется в соответствии с текстом. Пользователь может вносить изменения в текст во время копирования, а определенные пользователем символы распознаются в графических режимах. Редактирование экрана прекращается при нажатии RETURNили ESCAPE, что имеет свои обычные эффекты. Распознавание символов становится доступным для пользователей в API с вызовом для чтения символа в текущей позиции курсора.

Звук [ править ]

Генерация звука осуществляется через другой вызов ОС, OSWORD, который обрабатывает множество задач, перечисленных с помощью кода задачи, помещенного в аккумулятор. Все вызовы OSWORD содержат блок параметров, используемый для отправки и получения нескольких данных; адрес этого блока передается в регистры X и Y, с младшим байтом в X и старшим байтом в Y. Имеется четыре буферизованных звуковых канала - три мелодических и один шумовой на основе звукового чипа, найденного в BBC Micro. . Для мелодических каналов существует только одна форма волны; поддерживаемые параметры ноты - высота, длительность, амплитуда, выбор огибающей и различные параметры управления. Для параметра амплитуды ноль или отрицательное значение задают статическую амплитуду, а положительное значение выбирает огибающую амплитуды и высоты тона (предварительно определенное изменение во времени) для применения к ноте.

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

OSWORD обрабатывает множество функций, кроме звука, многие из которых не имеют прямой поддержки в BASIC. К ним можно получить доступ из BASIC, настроив блок параметров, загрузив его адрес в X% и Y% и код задачи в A%, а затем вызвав процедуру.

Другой ввод / вывод и поддержка второго процессора [ править ]

BBC Micro поддерживает второй процессор, подключенный через Tube , что обеспечивает прямой доступ к системной шине. Код драйвера для интерфейса Tube не хранится в MOS, обычно предоставляется внешним служебным ПЗУ.

В ОС есть вызовы для обработки чтения и записи всех операций ввода-вывода (порты и экранная память), и программистам настоятельно рекомендуется использовать их в документации Acorn. Причина этого в том, что когда установлен второй процессор, пользовательское программное обеспечение запускается из отдельной карты памяти на дальней стороне шины процессора Tube, и прямой доступ к отображенным в память регистрам ввода-вывода и видеопамяти невозможен. Однако в целях повышения производительности многие приложения, включая многие игры, записывают данные непосредственно в основное адресное пространство для ввода-вывода и, следовательно, дают сбой или выдают пустой экран, если подключен второй процессор 6502. Одна из таких областей, критичных к производительности, - это спрайты.поддержка: оборудование BBC Micro не поддерживает спрайты, и игры должны реализовывать спрайты в программном обеспечении. На практике широкое использование прямого доступа вместо вызовов ОС очень редко вызывало проблемы. Вторые процессоры были дорогими, и для их использования было написано очень мало программного обеспечения, поэтому их мало кто покупал, а те, у кого они были, могли просто выключить их или отсоединить кабель, если возникла проблема.

MOS содержит две встроенные файловые системы: кассету и ПЗУ. Они очень похожи (попробуйте *ROM, *OPT 1 2, *CATс соответствующим ROM установлен) и разделяют много кода. Они имеют элементарный механизм защиты от копирования, при котором файл с определенным установленным флагом не может быть загружен, кроме как для его выполнения. [5] (До того, как в 1987 году компания Amstrad выпустила на массовый рынок двухкассетный магнитофон [6], у большинства домашних пользователей не было средств для перезаписи кассет, не загружая файлы в компьютер для повторного сохранения.) Advanced Disc Filing. Система (ADFS), стандартно устанавливаемая в серию Master, имеет аналогичный механизм. [7]

Версии [ править ]

Выпуски 0 и 1 [ править ]

Версии для семейства BBC Micro , начиная с 0.10 и заканчивая 1.20. Как ни странно, Electron поставлялся с версией 1.00, несмотря на то, что был выпущен после версии 1.20 BBC Micro, потому что это был первый выпуск ПЗУ для электрона. Номер версии MOS не был задуман как определение API: электронное ПЗУ ни в каком смысле не было «основано» на BBC Micro ROM версии 1.0.

Выпуск 2 [ править ]

Эта версия предназначена для BBC Model B +, по сути, такая же, как MOS 1.20, за исключением добавления поддержки боковой и теневой RAM, присутствующей в B +.

Выпуски с 3 по 5 [ править ]

MOS 3 - MOS 5, поставляемые с системами BBC Master Series , в моделях Master 128, Master ET и Master Compact соответственно.

В первоначальном выпуске MOS 3 были расширены возможности, предоставляемые в MOS 2 на B +, для поддержки дополнительного оборудования, обеспечения возможности командной строки и расширения кода драйвера VDU с улучшенными возможностями построения графики. Были обнародованы две известные версии: наиболее распространенная версия 3.20 и версия 3.50 (хотя в ней было больше функций и исправлений ошибок [8], она не была на 100% совместима с некоторыми популярными приложениями [9], поэтому была предложена в качестве дополнительного обновления. Только).

MOS 4 была урезанной версией MOS 3, предназначенной для столь же минимизированного Master ET, и в ней исправлено несколько мелких ошибок.

MOS 5 поставлялся с Master Compact и был сильно изменен, некоторые функции были удалены или сильно изменены.

Кредиты [ править ]

За исключением MOS 3.50, где пространство было освобождено для большего количества кода, область, обычно скрытая ячейками памяти ввода / вывода (768 байтов от 0xFC00-0xFEFF включительно) в ПЗУ MOS содержала список имен участников системы. . Это можно исправить, извлекая ПЗУ и считывая его содержимое в программаторе СППЗУ. Те, у кого не было такого устройства, могли получить доступ к ПЗУ на Мастере, установив тестовый бит в регистре управления доступом, а затем используя программу машинного кода для копирования ПЗУ непосредственно в экранную память текстового режима. [10]

Полный текст кредитной строки в MOS 1.20 выглядит следующим образом; после запятых не ставятся пробелы для экономии памяти:

"(C) 1981 Acorn Computers Ltd. Благодарности причитаются следующим участникам разработки BBC Computer (среди которых слишком много, чтобы упоминать): - Дэвид Аллен, Боб Остин, Рам Банерджи, Пол Бонд, Аллен Бутройд , Кембридж , Клиртоне, Джон Колл , Джон Кокс, Энди Криппс, Крис Карри , 6502 дизайнера, Джереми Дион, Тим Добсон, Джо Данн, Пол Фаррелл, Ферранти , Стив Фербер , Джон Гиббонс, Эндрю Гордон, Лоуренс Хардвик, Дилан Харрис, Герман Хаузер , Hitachi , Энди Хоппер , ICL , Мартин Джексон, Брайан Джонс, Крис Джордан, Дэвид Кинг, Дэвид Китсон, Пол Кривачек,Компьютерная лаборатория , Питер Миллер, Артур Норман , Глин Филлипс, Майк Прис, Джон Рэдклифф, Уилберфорс-роуд, Питер Робинсон , Ричард Рассел , Ким Спенс-Джонс, Грэм Тебби, Джон Текрей, Крис Тернер, Адриан Уорнер, Роджер Уилсон , Алан Райт. "

Прием [ править ]

В интервью 1993 и 2001 годов соучредитель Acorn Герман Хаузер рассказывал, что Билл Гейтс из Microsoft , заметив, что было продано 1,5 миллиона BBC Micros, пытался продать MS-DOS компании Acorn, но Хаузер считал, что переход на MS-DOS был бы «ретроградным». шаг "по сравнению с сохранением системы Желудь. [11] [12]

Ссылки [ править ]

  1. ^ Редкие прототипы iPhone P-серии работают под управлением Acorn OS (видео). YouTube: Культ Mac. 2017-06-29. Событие происходит в 3:46 . Проверено 5 января 2019 .
  2. ^ Колл, Джон (1982) [1982]. Аллен, Дэвид (ред.). Руководство пользователя микрокомпьютера BBC (PDF) . Лондон: Британская радиовещательная корпорация. п. 443. ISBN.  0-563-16558-8. Проверено 28 марта 2017 года .
  3. ^ http://mdfs.net/Docs/Comp/BBC/AllMem
  4. ^ EUG a-os2
  5. ^ Брей, Эндрю С .; Диккенс, Адриан Ч .; Холмс, Марк А. (1983). Расширенное руководство пользователя микрокомпьютера BBC . Кембридж: Кембриджский микрокомпьютерный центр. п. 347. ISBN 0-946827-00-1. Архивировано из оригинального (заархивированного PDF-файла) 14 января 2006 года . Проверено 19 апреля 2012 года .
  6. ^ https://www.theguardian.com/music/2013/aug/30/cassette-store-day-music-tapes пункт 6
  7. ^ «5. Команды файловой системы». Руководство пользователя Advanced Disc Filing System (PDF) (1-е изд.). Acorn Computers. Август 1985. с. 32 . Проверено 22 июля 2018 .
  8. Спенсер, Дэвид (декабрь 1989 г.). «Новый Мастер Мега-ПЗУ». Бибаг . RISC Developments Ltd. 8 (7): 6–7.исправить ошибки в исходной MOS, такие как печально известная ошибка CLOSE # 0 в DFS ... ADFS была ускорена как минимум в два раза ... Утилиты форматирования, проверки и резервного копирования теперь включены в ПЗУ .. .speed увеличивается в программах, которые выполняют много операций с плавающей запятой ... позволяет вводить международные символы с клавиатуры ... Acorn решили не включать альтернативное ПЗУ в качестве стандарта в новые Мастера. Причина, по их словам, в том, что, хотя новое ПЗУ очень совместимо, некоторые существующие программы с ним не работают. В частности, новая обработка 8-битных ключей может сбить с толку некоторые программы, и любая программа, которая напрямую обращается к подпрограммам в ПЗУ, почти наверняка выйдет из строя. Я чувствую, что Acorn принял мудрое решение, учитывая количество программного обеспечения, уже доступного для Мастера, но я не делаю этого.Не думаю, что вас должна отпугнуть несовместимость - на практике большинство программ будет работать.
  9. Гиббонс, Дерек (ноябрь 1990 г.). «Некоторые комментарии к новому мастер-ПЗУ». Бибаг . RISC Developments Ltd. 9 (6): 38–39. * FX225,2 выделяет еще одну проблемную область ... поскольку действие этой команды теперь было изменено по сравнению с первоначально задокументированным, такие программы больше не работают
  10. Холтон, Дэвид (апрель 1992 г.). "Уголок машинного кода мистера Тоада: Скрытые уговоры (Часть 1)". Бибаг . RISC Developments Ltd. 10 (10): 6. установка бита 6 регистра управления доступом ACCON (& FE34) выберет эту часть ПЗУ, и названия могут быть прочитаны ... На странице F.2-3 Справочного руководства Руководство (Часть 1), где каждому биту ACCON дается отдельное имя, бит 6 называется TST.
  11. Гроссман, Венди М. (май 1993 г.). «Скучаю по большому времени» . Мир персональных компьютеров . Проверено 6 ноября 2012 года .
  12. Вулли, Алиса (6 июня 2001 г.). «Моя самая большая ошибка: да, я мог бы быть Биллом Гейтсом» . Независимый . Дата обращения 2 июня 2017 .
Примечания
  • Watford Electronics, "Расширенное справочное руководство для серии BBC Master", 1988 г.