Apple DOS

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Apple DOS
Скриншот Apple DOS 3.0Скриншот Apple DOS 3.0
Разработчик

Apple Computer

Семейство ОС

Apple DOS

Тип ядра

Монолитное

Лицензия

Apple Software License Agreement

Состояние

Историческое

Следующая

ProDOS

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.

Наиболее известная и используемая версия — DOS 3.3 релиза 1980 и 1983 годов.

Особенности Apple DOS[править | править код]

Продвинутой по тем временам особенностью 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 II системных часов, время и дата в Apple DOS никак не отслеживались. Работа со временем появилась только в ProDOS.

Команды Apple DOS были реализованы как расширение набора команд интерпретатора языка Бейсик, зашитого в ПЗУ Apple II. Собственного командного процессора или другого интерфейса пользователя Apple DOS не имела.

Вся система Apple DOS полностью загружалась в оперативную память и постоянно там находилась во время своей работы. В связи с этим, системный диск был нужен только для начальной загрузки. Даже для создания нового системного диска (командой INIT) было достаточно только загруженного в оперативную память кода Apple DOS, диск с исходной копией не требовался.

Подпрограмма RWTS[править | править код]

Одним из самых объёмных и сложных модулей Apple DOS была подпрограмма RWTS (Read/Write Track and Sector), предоставлявшая интерфейс чтения-записи сектора и форматирования дорожки для дисковода Disk II. Сложность RWTS была вызвана тем, что Disk II имел интерфейс очень низкого уровня, так что даже кодирование и декодирование отдельных битов и синхронизацию данных на дорожке диска надо было выполнять программно.

Клоны Apple DOS[править | править код]

Скриншот Eagle Software GraphExt 2.9 при выполнении команды проверки читаемости файла VERIFY

Существовало огромное количество клонов 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.

Команды 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.

Литература[править | править код]

  • Вълчев О. П. Що е дискова операционна система. — София: Державно издателство «Техника», 1987. 80 с. (болг.)
  • Worth, Don, and Pieter Lechner. Beneath Apple DOS. — Quality Software, 1981. ISBN 0-912985-00-3 (англ.) (существовал самиздатовский русский перевод под названием «Под яблоней DOS 3.3»)

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