Введение

Семейство дисковых операционных систем

Apple DOS – это семейство дисковых операционных систем для серии микрокомпьютеров Apple II, выпускавшихся с конца 1978 года по начало 1983 года. В 1983 году Apple DOS была заменена ProDOS. Apple DOS имеет три основных выпуска: DOS 3.1, DOS 3.2 и DOS 3.3; за каждым из этих трех выпусков следовал второй, незначительный выпуск, предназначенный для исправления ошибок, но только в случае Apple DOS 3.2 этот незначительный выпуск получил собственный номер версии – Apple DOS 3.2.1. Наиболее известным и широко используемым выпуском является Apple DOS 3.3 в версиях 1980 и 1983 годов. До выпуска Apple DOS 3.1 пользователи Apple вынуждены были использовать аудиокассеты для хранения и восстановления данных.

История версий

Когда Apple Computer представила Apple II в апреле 1977 года, у нового компьютера не было дисковода или дисковой операционной системы (DOS). Хотя соучредитель Apple Стив Возняк разработал контроллер Disk II к концу того же года и считал, что мог бы написать DOS, его соучредитель Стив Джобс решил передать эту задачу на аутсорсинг. Компания рассматривала возможность использования CP/M от Digital Research, но Возняк искал операционную систему, которая была бы проще в использовании. 10 апреля 1978 года Apple подписала контракт с Shepardson Microsystems на 13 000 долларов на написание DOS и поставку в течение 35 дней. Apple предоставила подробные спецификации, а один из первых сотрудников Apple, Рэнди Виггинтон, тесно сотрудничал с Полом Лаутоном из Shepardson, пока тот писал операционную систему с помощью перфокарт и миникомпьютера. Apple DOS версий 1 или 2 не существовало. Версии с 0.1 по 2.8 были последовательно пронумерованными редакциями в процессе разработки, которые можно было бы назвать сборками с 1 по 28. Apple DOS 3.0, переименованная версия 2.8, так и не была выпущена в публичный доступ из-за ошибок. Apple не публиковала официальную документацию до выпуска 3.2. Apple DOS 3.1 была выпущена в июне 1978 года, чуть более чем через год после выпуска Apple II, и стала первой дисковой операционной системой для любого компьютера Apple. Позже вышел релиз с исправлениями ошибок, который решал проблему с помощью утилиты, используемой для создания мастер-дисков Apple DOS (загрузочных): встроенная команда создавала диски, которые можно было загрузить только на машинах с объемом памяти не меньше, чем у машины, которая их создала. В состав также входила самоперемещающаяся версия DOS, которая загружалась на Apple с любой конфигурацией памяти. Apple DOS 3.2 была выпущена в 1979 году, чтобы отразить изменения в методах загрузки компьютера, которые были встроены в преемника Apple II, Apple II Plus. Новая прошивка включала функцию автоматического запуска, которая автоматически находила контроллер диска и загружалась с него при включении системы, получив название "Autostart ROM". DOS 3.2.1 была выпущена в июле 1979 года с некоторыми незначительными исправлениями ошибок. Apple DOS 3.3 была выпущена в 1980 году. Она улучшала различные функции версии 3.2, одновременно обеспечивая значительное увеличение доступного объема памяти на дискетах. Новые ПЗУ P5A/P6A в контроллере диска позволяли читать и записывать данные с более высокой плотностью, поэтому на трек можно было сохранить 16 секторов (4 КБ) вместо 13 секторов (3,25 КБ), увеличивая емкость с 113,75 КБ до 140 КБ на сторону, из которых 16 КБ использовалось служебными структурами файловой системы и копией DOS, оставляя 124 КБ для пользовательских программ и данных. Однако DOS 3.3 не была обратно совместима; она не могла читать или записывать диски DOS 3.2. Для решения этой проблемы Apple Computer выпустила "MUFFIN" – утилиту для переноса файлов и программ Apple DOS 3.2 на диски версии 3.3. Apple никогда не предлагала утилиту для копирования в обратном направлении. Чтобы перенести файлы Apple DOS 3.3 обратно на диски версии 3.2, кто-то написал утилиту "NIFFUM". Существуют также коммерческие утилиты (например, Copy II Plus), которые могут копировать файлы между любым из этих форматов (и в конечном итоге ProDOS). Выпуск 3.3 также улучшил возможность переключения между Integer BASIC и Applesoft BASIC, если компьютер оснащен картой языка (расширением памяти) или картой прошивки.

Загрузчик загрузки

Процесс загрузки Apple DOS включает в себя серию очень маленьких программ, каждая из которых продвигает процесс загрузки на несколько шагов, прежде чем передать управление следующей программе в цепочке. Изначально, ПЗУ Apple II вообще не поддерживало загрузку с диска. При включении отображалась командная строка Системного монитора. И в Системном мониторе, и в Integer BASIC есть команды для перенаправления вывода на драйвер принтера в указанном слоте, поэтому обычным способом загрузки с диска было дать компьютеру команду начать "печать" на карту интерфейса диска, обычно установленную в слот 6, используя команду (из ML-монитора) или (из BASIC). Когда монитор или BASIC выдавали следующий символ приглашения, компьютер вызывал подпрограммы ПЗУ на дисковой карте для "печати" на нее, после чего начиналась последовательность загрузки. (Можно было использовать перенаправление ввода для достижения аналогичного результата.) В качестве альтернативы, из ML-монитора пользователь мог напрямую вызвать загрузочный код контроллера с помощью команды, такой как . Когда был представлен Apple II Plus, он получил возможность сканировать каждый слот расширения (начиная с 7-го и заканчивая 1-м) в поисках загрузочной ROM-карты расширения и автоматически запускать ее. Загрузочный код ROM-карты расширения пытается загрузиться с диска 1 контроллера, перемещая головку чтения/записи на нулевой трек и пытаясь прочитать 256 байт из нулевого сектора этого трека. (Если доступный диск для чтения отсутствует, привод вращается непрерывно, пока диск не будет вставлен и дверца привода не будет закрыта.) Нулевой сектор содержит небольшую программу, которая инструктирует компьютер прочитать секторы 0–9 нулевого трека в память, используя часть загрузочного кода ПЗУ (при этом сектор 0 перечитывается). Программа в секторах 1–9 нулевого трека, включая полный код RWTS, затем загружает треки 1 и 2, которые содержат остальную часть DOS. На системном мастер-диске также содержится код для определения конфигурации оперативной памяти компьютера и размещения DOS как можно выше в системной памяти, до лимита в 48 КБ основной памяти Apple II ($BFFF). После загрузки DOS в память он пытается загрузить и выполнить программу автозагрузки, как указано в коде программы DOS. Обычно это программа на языке BASIC с именем HELLO (или другим именем), но DOS может быть модифицирован для запуска других типов программ при загрузке, например, исполняемого двоичного файла. Появление правой квадратной скобки (]) на экране указывает пользователю, что загружается программа автозагрузки Applesoft BASIC, а символ больше (>) указывает на загрузку программы Integer BASIC. (Это приглашения для соответствующих версий BASIC, которые в данный момент инициализируются.) Затем программа автозагрузки начинает выполняться.

Поддержка Integer BASIC и Applesoft BASIC

Оригинальный Apple II включал в себя интерпретатор BASIC в ПЗУ, первоначально известный как Apple BASIC, а позже как Integer BASIC. Переменные в этом языке могут обрабатывать только целые числа в диапазоне от −32 768 до +32 767 (16-битные двоичные значения); числа с плавающей точкой не поддерживаются. Компания Apple заказала Microsoft разработку Applesoft BASIC, способного обрабатывать числа с плавающей точкой. Applesoft BASIC не может запускать программы, написанные на Integer BASIC, что вызывало сопротивление обновлению у некоторых пользователей. DOS 3.3 был выпущен, когда Applesoft BASIC стал стандартным в ПЗУ на Apple II Plus, поэтому Apple разработала его таким образом, чтобы поддерживать переключение между этими двумя интерпретаторами BASIC. Integer BASIC загружается в оперативную память на языковую карту Apple II (при наличии) и, вводя или из BASIC, пользователь может переключаться между любой версией.

Упадок

После 1980 года Apple DOS вошла в состояние стагнации, поскольку Apple сосредоточила свои усилия на злополучном компьютере Apple III и его операционной системе SOS. Еще две версии Apple DOS, обе по-прежнему называемые DOS 3.3, но с некоторыми исправлениями ошибок и улучшенной поддержкой новой модели Apple IIe, были выпущены в начале и середине 1983 года. Без сторонних патчей Apple DOS может читать только дискеты, работающие в 5,25-дюймовом накопителе Disk II, и не может получить доступ к другим носителям, таким как жесткие диски, виртуальные диски RAM или 3,5-дюймовые дискеты. Структура дисков Apple DOS (особенно карта свободных секторов, ограниченная частью одного сектора) такова, что невозможно получить более 400 КБ доступного пространства на диск одновременно без существенной переработки почти всех разделов кода; это основная причина, по которой Apple отказалась от этой версии DOS в 1983 году, полностью заменив Apple DOS на ProDOS. ProDOS сохраняет 16-секторный низкоуровневый формат DOS 3.3 для 5,25-дюймовых дисков, но вводит новый высокоуровневый формат, подходящий для устройств объемом до 32 МБ; это делает его пригодным для жестких дисков того времени и 3,5-дюймовых дискет. Все компьютеры Apple, начиная с II Plus, могут работать как с DOS 3.3, так и с ProDOS; для использования ProDOS модели Plus требуется расширение памяти "Language Card"; модели e и более поздние имеют встроенное аппаратное обеспечение Language Card и могут запускать ProDOS напрямую. ProDOS включает программное обеспечение для копирования файлов с дисков Apple DOS. Однако многие пользователи, которым не требовались улучшения ProDOS (и которым не нравился его значительно больший объем занимаемой памяти), продолжали использовать Apple DOS или один из ее клонов и после 1983 года. Политика Apple, заключающаяся в хранении загрузочной ОС на каждой дискете, означает, что коммерческое программное обеспечение можно использовать независимо от операционной системы пользователя. Программа DOS.MASTER позволяет пользователям создавать несколько виртуальных разделов DOS 3.3 на томе ProDOS большего размера, что позволяет использовать множество дискетных программ DOS с жестким диском. Вскоре после выхода ProDOS компания Apple отозвала разрешение у сторонних разработчиков на распространение DOS 3.3, но предоставила компании Syndicomm эксклюзивную лицензию на перепродажу DOS 3.3. Коммерческие игры обычно не использовали Apple DOS, предпочитая собственные дисковые процедуры для защиты от копирования, а также для повышения производительности.

Выпуск исходного кода

В 2013 году, более чем через 35 лет после выхода Apple II, оригинальный исходный код операционной системы Apple DOS был опубликован Музеем истории компьютеров на своем веб-сайте. Его предоставил автор, Пол Лаутон.