SpartaDOS X (или SpartaDOS 4.0 ) — дисковая операционная система для 8-битного семейства компьютеров Atari, очень похожая на MS-DOS . Он был разработан и продан компанией ICD, Inc. в 1987–1993 годах, а много лет спустя подхвачен сторонним сообществом SpartaDOS X Upgrade Project, которое до сих пор поддерживает это программное обеспечение.
SpartaDOS X является преемником SpartaDOS 1.0, 2.0 и 3.0 (также продуктов ICD), и хотя он имеет хороший уровень обратной совместимости со старыми версиями, это совершенно новая система, написанная с нуля.
SpartaDOS X 4.0 была первоначально разработана Майклом Густафсоном в 1987-89 годах [2] и поставлялась на картриджах с 64 КБ ПЗУ компанией ICD, Inc. [3] до версии 4.21. Картридж имел дополнительный слот для картриджа, так что можно было подключить другой картридж, например часы ICD R-Time 8 с батарейным питанием, языковой картридж ( Action!, MAC /65 и т. д.) или игру. картридж и используйте его совместно с DOS.
В 1992 году корпорация Atari прекратила официальную поддержку своих 8-битных компьютеров, вскоре после этого последовала и ICD. Права на 8-битную версию ICD были куплены в ноябре 1993 года Майклом Хоманом, официально называвшимся Fine Tooned Engineering. FTE выпустила слегка обновленную версию 4.22 5 ноября 1995 г. [2] и через два или три года исчезла вместе со всеми принадлежащими ей элементами и правами.
Десять лет спустя разработку SpartaDOS X подхватили энтузиасты под названием SpartaDOS X Upgrade Project. [4] Это привело к появлению нескольких неофициальных версий программного обеспечения, включающих многие утилиты, написанные с 1992 года, устраняющих многие выявленные проблемы и включающих многочисленные улучшения. По состоянию на 2020 год [update]опубликованные версии:
SpartaDOS X — это немногозадачная операционная система , намеренно созданная по образцу MS-DOS и внешне напоминающая ее по внешнему виду. Он состоит из ядра, системной библиотеки, нескольких типов драйверов, оболочки (называемой COMMAND.COM ) и ряда служебных программ. SpartaDOS X написан на машинном языке 6502 и помещается в файлово-ориентированный ПЗУ-картридж емкостью 128 КБ .
Обеспечивается полная поддержка последовательных дисков типа Atari, а также параллельных жестких дисков, если они соответствуют стандартам Atari (т. е. если они используют реализованный механизм интерфейса параллельной шины (PBI) «подключи и работай»). в ПЗУ компьютеров XL/XE). Для тех, которые этого не делают, а также для виртуальных дисков и т.п. можно установить до четырех драйверов блочных устройств. Нестандартные интерфейсы жестких дисков обрабатываются специализированными драйверами.
Максимальное количество одновременно подключенных дисков (или разделов жесткого диска) составляет 15, начиная с версии 4.40 (9 в более ранних версиях).
Ядро позволяет открывать файлы и каталоги в режимах «только чтение», «только запись», «запись-добавление» и «чтение-запись». Он также поддерживает переменные среды , и программы могут запрашивать поиск файлов в каталогах, указанных в $PATH. Переменные также управляют некоторыми настройками DOS и программ, например, форматом отображаемой даты и времени (выбор осуществляется между «европейским» форматом ДД-ММ-ГГ и 24-часовым форматом часов и «американским» форматом). ММ-ДД-ГГ и 12-часовой формат времени).
Благодаря некоторой форме виртуальной файловой системы практически к любой файловой системе можно получить прямой доступ, если соответствующий драйвер файловой системы существует и загружен в память. Одновременно можно установить до восьми таких драйверов.
Основной драйвер файловой системы (размером менее 4,5 КБ) может выполнять поиск в каталогах (FFIRST/FNEXT), читать/записывать файлы (FREAD/FWRITE), получать или изменять текущую позицию в файле (FTELL/FSEEK), получать длину файла. (FILELENG), удаление файлов и каталогов (REMOVE/ RMDIR ), переименование файлов и каталогов ( RENAME /RENDIR), создание каталогов ( MKDIR ), изменение атрибутов в файлах и каталогах ( CHMOD ), изменение текущего каталога ( CHDIR ), получение пути к текущий каталог (GETCWD), собрать информацию о диске (GETDFREE) и сделать бинарный файл загрузочным (SETBOOT). Он также поддерживает буферный кэш с очередью, который может одновременно хранить до 16 секторов (8 КБ).
Собственный формат файловой системы , называемый SpartaDOS FS (не связанный с MS-DOS FAT и несовместимый с ним), предлагает полную поддержку подкаталогов, атрибутов, подобных MS-DOS (AHPS: Archived , Hidden , Protected , Subdirectory ), даты и времени изменения. штампы, произвольный доступ к данным внутри файла, разреженные файлы .
Соглашение об именах файлов — 8+3 (эта схема, унаследованная от CP/M , является обычной для Atari). Структура каталогов иерархическая, и нет никаких ограничений на вложенность каталогов, кроме практических. Каталог может содержать до 1423 записей файлов и других каталогов.
Файловая система 16-битная: диск может содержать до 65 535 логических секторов (на дисках Atari сектор 0 отсутствует). Размер логического сектора составляет 128 или 256 байт в более ранних версиях и 128, 256 и 512 байт в версии 4.40. Таким образом, максимальная емкость каждого раздела составляет 16 МБ в более ранних версиях и 32 МБ в версии 4.40. 4 ГБ на диск — путем создания секторных кластеров до 65 536 байт на кластер — теоретически возможно, но пока не реализовано.
Системная библиотека содержит двоичный загрузчик, поддерживающий стандартные, зависящие от адреса двоичные файлы Atari, а также независимые от адреса («перемещаемые») двоичные файлы SpartaDOS X. Она также облегчает такие задачи, как обработка ошибок, анализ командной строки, а также управление памятью, ресурсами файлов и устройств и т. д. Библиотека также содержит управляемый меню форматировщик дисков, который можно вызвать в любое время, не только из DOS. ' Командный процессор, но и из прикладной программы.
Вся библиотека занимает 24 КБ картриджа (в трёх банках по 8 КБ) и при необходимости может быть отключена для освобождения части памяти.
Пользовательский интерфейс SpartaDOS X по умолчанию представляет собой интерпретатор командной строки с тем же именем, что и тот, который используется в MS-DOS: COMMAND.COM. Программа SpartaDOS X COMMAND.COM занимает менее 4 КБ и включает примерно 45 внутренних команд , таких как DIR , CD , DEL и т. д. Для перенаправления ввода-вывода используются «<<» и «>>» вместо «<» и «>». UNIX и других систем (это потому, что знак «>» является собственным разделителем путей SpartaDOS).
Псевдоконвейеры доступны начиная с версии SpartaDOS X 4.42.
Пакетные файлы могут содержать структурированные условия, такие как IF... ELSE... FI, GOTO, GOSUB, процедуры и циклы.
Переменная среды $COMSPEC может указывать на альтернативный интерпретатор командной строки, который нужно загрузить вместо COMMAND.COM.
Дополнительная утилита, называемая RUNEXT, позволяет связать типы данных с программами, которые будут вызываться автоматически, когда пользователь вводит имя файла данных в командной строке DOS и нажимает клавишу Return.
Программа под названием MENU облегчает сложные задачи управления файлами и может служить заменой оболочки. Другие утилиты позволяют изменять имена дисков, искать на дисках файлы, восстанавливать их, устанавливать буфер клавиатуры , редактировать системные файлы ( CONFIG.SYS и AUTOEXEC.BAT ) и так далее. Порт ARC предоставляет возможности сжатия файлов.
Среди специальных программ, которые не доступны непосредственно на картридже и, следовательно, не входят в состав самой DOS, имеются редакторы дисков, а также утилиты для проверки и восстановления целостности файловой системы.
Следующие команды поддерживаются SpartaDOS X. [5]
При запуске с загрузочного диска считывается текстовый файл CONFIG.SYS. Содержимое файла определяет, какую память DOS будет использовать для хранения основной части своего кода и драйверов (выбор стоит между расширенной памятью и двумя областями обычного 64 КБ), сколько файлов можно открыть одновременно, размер буферного кэша и его расположение в памяти (те же варианты, что и для кода DOS), переменные среды по умолчанию и драйверы для загрузки.
Помимо «основного» может быть до 9 альтернативных конфигурационных файлов (или 19 начиная с версии 4.45). Выбор между ними предлагается при запуске в виде меню. Если файл CONFIG.SYS отсутствует, из картриджа загружается файл по умолчанию.
Другой файл по умолчанию, который можно использовать для настройки, — AUTOEXEC.BAT. Это пакетный файл, который запускается COMMAND.COM при первой загрузке COMMAND.COM.
Для работы SpartaDOS X требуется 8-битный компьютер Atari (модели 400, 800 или XL/XE), оснащенный как минимум 48 КБ обычной памяти для работы или 64 КБ для действительного использования (на машине с 48 КБ остается слишком мало памяти, поскольку для выполнения большинства программ). Однако рекомендуемая конфигурация — не менее 128 КБ ОЗУ (64 КБ обычного плюс не менее 64 КБ расширенного). DOS может использовать расширенную память для хранения большой части своего кода, буферного кэша и внутренних структур, освобождая таким образом традиционную память. Остальную расширенную память можно использовать для дополнительных драйверов или виртуальных дисков.
В отличие от своего предшественника, SpartaDOS 3.0, SpartaDOS X не является тем, что обычно называют «DOS» на 8-битном языке Atari.
8-битная операционная система Atari состоит из двух основных частей: «ОС» на основе ПЗУ и загрузочной «DOS». Распространенное заблуждение относительно этого разделения состоит в том, что эти соответствующие части соответствуют BIOS и DOS на компьютере , совместимом с IBM PC . В действительности «ОС» отвечает за связь не только с блочными устройствами (вроде PC BIOS ), но и с символьными устройствами, в том числе файлово-ориентированными (вроде PC DOS ). Следовательно, все функции управления файлами централизованы в части «ОС», а часть «DOS» является лишь одним из подчиненных ей драйверов устройств, которые работают на запоминающих носителях (например, на дискетах).
Таким образом, « DOS » для Atari обычно состоит из вышеупомянутого драйвера устройства (называемого FMS, «Система управления файлами») и прикладной программы, играющей роль оболочки ОС. Эту оболочку обычно называют DUP, «Пакет дисковой утилиты». Вся связь между пользовательскими программами (включая DUP) и FMS осуществляется через CIO («центральный ввод/вывод»), находящийся в ПЗУ.
Такая конструкция имеет некоторые недостатки, например, ни одна типичная DOS не может держать открытыми более восьми файлов одновременно, поскольку это ограничение, налагаемое API « ОС » на основе ПЗУ.
Теперь SpartaDOS X, даже несмотря на то, что он зарегистрирован в CIO на базе ПЗУ как драйвер устройства и (для обратной совместимости) выполняет все типичные функции DOS по запросу, фактически независим от CIO. Вместо этого он имеет собственный «центр ввода-вывода» (известный как «ядро»), не связанный с ОС на базе ПЗУ, с собственным набором спецификаторов и драйверов как для символьных устройств (таких как CON: или COM:), так и для блочных устройств. устройства.
В SpartaDOS X программы могут выполнять все операции ввода-вывода через ядро SpartaDOS, полностью минуя ОС Atari в ПЗУ. Благодаря этому удалось обойти многие ограничения: например, одновременно может быть открыто до 16 файлов. Это также делает SpartaDOS X (в отличие, например, от его предшественника SpartaDOS 3.2 или любой другой DOS для Atari) операционной системой , а не просто еще одним драйвером устройства с какой-то оболочкой.