MS-DOS
- 1 year ago
- 0
- 0
Apple DOS — операционная система для микрокомпьютеров серии Apple II с 1978 по 1983 год . Также известна как просто DOS 3.x . У Apple DOS было три важных версии: DOS 3.1, DOS 3.2 и DOS 3.3, за каждой из которых следовал релиз, исправляющий небольшие ошибки, но только в случае DOS 3.2 этот релиз получил собственный номер версии — DOS 3.2.1. Apple DOS была написана на языке ассемблера .
Наиболее известная и используемая версия — DOS 3.3 релиза 1980 и 1983 годов .
Продвинутой по тем временам особенностью Apple DOS была поддержка имён файлов, способных содержать до 30 любых символов (хотя в случае использования в именах файлов управляющих символов и запятых могли возникать проблемы с использованием таких имён в командах). Также интересной особенностью была строгая типизация файлов: каждый файл мог иметь один из типов A ( Applesoft BASIC ), B (двоичный), I ( Integer BASIC ), T (текстовый), и, в зависимости от типа, к файлу могли быть применены разные операции. Ещё несколько типов (R, S, «дополнительный A», «дополнительный B») было зарезервировано для дальнейших расширений. Файлы разных типов имели разную внутреннюю организацию; изменить тип существующего файла было невозможно.
Штатно Apple DOS была рассчитана на работу только с устройством Disk II , то есть с 5-дюймовыми односторонними дискетами ёмкостью 140 килобайт . Так как физически дискета имела две рабочие стороны, то её можно было вынуть из дисковода и вставить обратно другой стороной. Таким образом, каждая физическая дискета логически представляла собой два отдельных 140-килобайтных диска. Диски разбивались на 35 дорожек по 16 секторов размером 256 байт (13 секторов в версиях 3.1 и 3.2, использовавших более примитивный метод кодирования битов на диске). Диск имел один каталог, который, вместе с таблицей свободного пространства, размещался на зарезервированной для этого 17-й дорожке (посередине). В трёх первых дорожках диска размещалась сама Apple DOS (на загрузочных дискетах), в том числе самый первый сектор был загрузочным сектором. В каталоге для каждого файла сохранялись его имя, тип, флажок защиты от записи, номер первого сектора и размер файла в секторах. В первом секторе файла находился общий список занимаемых файлом секторов, этот список при необходимости сам мог продолжаться в других секторах. Экстенты не использовались, всё дисковое пространство распределялось секторами.
Одновременно могло быть установлено несколько дисков в различных устройствах Disk II. Эти устройства с дисками идентифицировались по номерам слотов на материнской плате и разъёмов на этих слотах, к которым они подключались.
Каждый диск в Apple DOS имел так называемый номер тома, однобайтное число, по умолчанию 254. В командах работы с файлами можно было указывать специальный параметр для проверки, что в дисководе установлен диск с указанным номером. Если номер не совпадал, команда завершалась с ошибкой. Но на практике идея с номерами томов не получила развития, практически все диски имели номер 254. В позднейшие годы существовали решения по использованию номера тома при подключении к Apple II жёсткого диска , который в таком случае логически выглядел как набор отдельных дискет. Но с жёстким диском было гораздо удобнее работать в пришедшей на смену Apple DOS системе ProDOS (ранние версии которой были совместимы со всеми моделями Apple II). При активации сетевой карты, её микрокод модифицировал ОС загруженную в память, при этом появлялась возможность обращаться к дискам на компьютерах в сети, используя номер тома в качестве идентификатора сетевой карты удаленного компьютера.
Для Apple DOS имелись расширения, позволяющие использовать дополнительную память в качестве виртуального диска. Это расширение удобно было использовать при работе в сети, где на компьютерах без дисков можно было создать виртуальный диск, содержимое которого не терялось даже после перезапуска компьютера (без отключения питания компьютера).
В связи с отсутствием в Apple II системных часов, время и дата в Apple DOS никак не отслеживались. Работа со временем появилась только в ProDOS.
При использовании командной строки, команды Apple DOS выглядели как расширение набора команд интерпретатора языка Бейсик , зашитого в ПЗУ Apple II. Собственного командного процессора или другого интерфейса пользователя Apple DOS не имела.
Вся система Apple DOS полностью загружалась в оперативную память и постоянно там находилась во время своей работы. В связи с этим, системный диск был нужен только для начальной загрузки. Даже для создания нового системного диска (командой INIT, при условии отсутствия расширений ОС, например сетевой карты или виртуального диска) было достаточно только загруженного в оперативную память кода Apple DOS, диск с исходной копией не требовался.
Расширения Apple DOS практически никогда не конфликтовали друг с другом, но имелись случаи крахов ОС при активации сетевой карты. Это было связано с наличием компьютерного вируса, который располагался в том же участке памяти, что и расширение сетевой карты.
Одним из самых объёмных и сложных модулей Apple DOS была подпрограмма RWTS ( Read/Write Track and Sector ), предоставлявшая интерфейс чтения-записи сектора и форматирования дорожки для дисковода Disk II . Сложность RWTS была вызвана тем, что Disk II имел интерфейс очень низкого уровня, так что даже кодирование и декодирование отдельных битов и синхронизацию данных на дорожке диска надо было выполнять программно .
Существовало огромное количество клонов Apple DOS (в основном версии 3.3), полученных путём обратной разработки и внесения тех или иных исправлений, от очень незначительных (просто замены названия системы) до весьма нетривиальных (ускорения работы с диском, реализации дополнительных команд, дополнительных типов файлов и т. д.). Многие клоны Apple DOS при работе с диском выводили в правом нижнем углу экрана текущие номера дорожки и сектора диска, чтобы обеспечить пользователю контроль в случае сбоев (дискеты имели невысокую надёжность). Одним из самых развитых клонов была система Eagle Software GraphExt 2.x и её русифицированная и расширенная советской фирмой Space Soft версия Eagle & Space Soft QDOS 2.A, которая, в частности, поддерживала работу со сжатыми графическими файлами (тип G, он же «дополнительный B», команды GSAVE, GLOAD) и с файлами перемещаемого объектного кода (тип R, команда RLOAD). Также в этой версии имелись команды для ввода с консоли и вывода на консоль содержимого текстовых файлов (MAKE, TYPE), отсутствовавшие в базовой Apple DOS.
CATALOG
— выдача каталога диска;
DELETE, LOCK, RENAME, UNLOCK, VERIFY
— управление файлами, только эти команды могли работать с файлами произвольного типа;
INIT
— запись копии Apple DOS из памяти на диск и установка файла автозапуска (в оригинальной Apple DOS — также форматирование диска; клоны обычно не содержали встроенных средств форматирования, это делалось специальными программами);
APPEND, CLOSE, OPEN, POSITION, READ, WRITE
— работа с текстовыми файлами;
EXEC
— исполнение команд из текстового файла;
LOAD, RUN, SAVE
— загрузка, исполнение и сохранение файлов на Бейсике;
BLOAD, BRUN, BSAVE
— загрузка, исполнение и сохранение двоичных файлов;
FP, INT
— переключение между интерпретаторами
Applesoft BASIC
и
Integer BASIC
(который требовалось предварительно загрузить с диска);
IN#, PR#
— инициализация внешних устройств ввода и вывода (переопределяли такие же команды интерпретатора Бейсика);
MON, NOMON
— включение и выключение трассировки команд Apple DOS;
MAXFILES
— установка количества одновременно открытых файлов;
CHAIN, GLOAD, GSAVE, DIR, TYPE, MAKE, MODE, SOUND, BOOT, RLOAD, HALT
(в QDOS 2.A вместо
HALT
была реализована команда
KEYS
) — дополнительные команды в семействе клонов Eagle Software GraphExt, отсутствовавшие в оригинальной Apple DOS.
В 2013 году , спустя более 35 лет после выпуска Apple II , исходный код Apple DOS был открыт Музеем компьютерной истории на своём веб-сайте . Пол Лоутон, создатель исходного кода, сделал пожертвования .