Apple DOS

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

Apple Computer

Семейство ОС

Apple DOS

Тип ядра

Монолитное

Лицензия

Apple Software License Agreement

Состояние

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

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»)

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