MSX-DOS

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
MSX-DOS
Разработчик Microsoft
Семейство ОС DOS
Основана на MS-DOS
Исходный код Закрытый
Первый выпуск 1984; 40 лет назад (1984)
Последняя версия  (1988)
Поддерживаемые языки Английский
Поддерживаемые платформы MSX
Тип ядра IO.SYS (Монолитное ядро)
Лицензия Проприетарная
Состояние Заброшена

MSX-DOSдисковая операционная система, которая больше не выпускается, разработанная Microsoft для 8-битных домашних компьютеров MSX, и представляет собой нечто среднее между MS-DOS v1.25 и CP/M-80.v2.2.

MSX-DOS[править | править код]

MSX-DOS и расширенный BASIC с поддержкой 3½-дюймовых гибких дисков были разработаны Microsoft и ASCII Corporation в качестве стандарта программного и аппаратного обеспечения для стандарта домашних компьютеров MSX, чтобы добавить дисковые возможности к BASIC и дать системе более дешёвый программный носитель, чем карта памяти, и более мощную систему хранения, чем кассетная лента.[1] Стандартный BIOS нерасширенного компьютера MSX не имел встроенной поддержки дисков, но предоставлял перехватчик для расширения диска, поэтому система расширения дополнительных гибких дисков поставлялась с собственным ПЗУ расширения BIOS (встроенным в контроллер диска), называемым BDOS.

Этот BIOS не только добавил в MSX BASIC команды поддержки дискет, но и загрузчик операционной системы, с помощью которого можно было загрузить дисковую операционную систему.

MSX-DOS была бинарно совместима с CP/M-80, что позволяло компьютеру MSX легко получить доступ к его обширной библиотеке программного обеспечения, доступного по очень низкой цене для того времени.

Загрузочная обработка[править | править код]

После загрузки MSX-DOS система ищет COMMAND на диске MSX-DOS. COM-файл и загружает его в память.[2] В этом случае BDOS обходит BASIC ROM, так что все 64 КБ адресного пространства микропроцессора Z80 внутри компьютера MSX можно использовать для DOS или других загрузочных дисков, например, для игр на дисках. В то же время к исходным ПЗУ BIOS по-прежнему можно было получить доступ через механизм « переключателя банка памяти», так что программное обеспечение на основе DOS могло по-прежнему использовать вызовы BIOS для управления аппаратными и другими программными механизмами, поставляемыми основными ПЗУ. Кроме того, благодаря ПЗУ BDOS основные возможности доступа к файлам были доступны даже без интерпретатора команд с использованием расширенных команд BASIC.

При первом запуске COMMAND.COM ищет необязательный пакетный файл с именем AUTOEXEC.BAT и, если он есть, выполняет указанные там команды. Если MSX-DOS не вызывается и Disk BASIC запускается, то вместо неё будет выполнена программа BASIC с именем «AUTOEXEC.BAS», если она присутствует.

Сходства и различия между MSX-DOS и MS-DOS[править | править код]

  • MSX-DOS1, как и MS-DOS 1.25, использовала значение FAT ID из первого байта FAT для выбора профилей параметров файловой системы для своей файловой системы FAT12, а не из блока параметров BIOS (BPB) в загрузочном секторе.
  • В MSX может быть более одного контроллера гибких дисков в двух или более слотах для картриджей, а MSX-DOS может загружаться с нескольких разных дисководов. Это означало, что можно было иметь оба, 5¼-дюймовый дисковод для гибких дисков и 3½-дюймовый дисковод, и пользователь мог загружаться с любого из них в зависимости от того, на каком дисководе была загрузочная дискета.
  • Как и MS-DOS 1.25, первая версия MSX-DOS не имела подкаталогов.

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

Ниже приведен список внутренних команд, поддерживаемых MSX-DOS.[3]

 

История развития[править | править код]

История версий MSX-DOS
Версия Дата
1.00 июнь 1984 г.
1.01 март 1985 г.
1.02 июль 1985 г.
1.03 август 1985 г.
2.20 июль 1988 г.
2.22
2.30 ноябрь 1990 г.
2.31 декабрь 1991 г.

10 августа 1983 года Пол Аллен позвонил Тиму Патерсону, первоначальному автору 86-DOS и MS-DOS 1.x, и попросил его сделать «версию MS-DOS для Z80» для стандарта MSX.[4] В то время Патерсон был занят, пытаясь подготовить к работе первый продукт своего стартапа Falcon Systems, поэтому он предложил ещё нескольких разработчиков, но Аллен сказал, что уже просил. Аллен торопился сделать это, и никто другой не мог уложиться в его сроки. Аллен и Патерсон наконец согласились, и 17 августа они подписали соглашение о выпуске «Z80 MS-DOS 1.25» за 100 000 долларов США и права компании Патерсона на распространение MS-DOS 2.0, 2.5 и 3.0 с аппаратным продуктом без роялти.[5]

Для Патерсона это был в основном процесс перевода. Он уже написал программу перевода Z80 в 8086 на ассемблере (TRANS.КОМ). В данном случае он вручную переводил в другую сторону. Поскольку MS-DOS 1.x была смоделирована по образцу API CP/M и могла запускать приложения CP/M, которые были переведены на уровне исходного кода в 8086, это означало бы, что MSX-DOS сможет запускать программы CP/M напрямую.[5]

Для этого проекта Патерсон также написал эмулятор Z80, работающий под MS-DOS, что позволило ему выполнять весь проект разработки под MS-DOS. MSX-DOS, которую он писал, имела уровень системы ввода-вывода, который напрямую взаимодействовал со слоем системы ввода-вывода машины MS-DOS, на которой выполнялась эмуляция. Это дало MSX-DOS прямой доступ и контроль над форматом диска. Большая часть кода ядра была связана с управлением файлами, так что это было необходимо для его проверки.[5]

К 2 октября 1983 года у него были Microsoft BASIC и ассемблер макросов Microsoft M80, работающие под MSX-DOS. Он закончил программировать COMMAND.COM через несколько дней. Он устранил некоторые ошибки и 11 октября продемонстрировал MSX-DOS Полу Аллену. Бета-тестовая версия была официально выпущена 26 октября 1983 года. В нём было пасхальное яйцо, на котором было напечатано имя Патерсона. Имя было закодировано кодом FAT, поэтому его нельзя было найти простым поиском в файле. После доставки бета-версии код был отправлен в ASCII в Японии. Они создали систему ввода-вывода для машины MSX. Этот код был разработан Джеем Судзуки. Он придумал пасхалку и добавил к ней свое имя.[5]

У ASCII были проблемы с запуском MSX-DOS на реальной машине MSX. Они не предоставили Патерсону настоящую машину MSX, а вместо этого 28 января 1984 года отправили его в Токио, чтобы помочь им. Выяснилось, что ASCII модифицировал код, не сообщая об этом Патерсону, поэтому они не работали с одной кодовой базой. Патерсон провел три дня в Токио, выясняя проблемы, и вернулся в Сиэтл.[5]

Крис Ларсон из Microsoft и Джей Сузуки посетили Патерсон в Сиэтле в конце февраля и начале марта 1984 года. Они принесли MSX-машину со встроенным эмулятором (ICE) для отладки. У них все заработало, и 23 апреля 1984 года Microsoft приняла поставку и произвела окончательный платеж за MSX-DOS Патерсону.[5]

Во время написания MSX-DOS существовала только одна популярная дисковая операционная система для 8-разрядных микропроцессоров, совместимых с Intel 8080, — система CP/M-80 компании Digital Research. Он также часто использовался с системами Z80, потому что Z80 использовал расширенную архитектуру 8080. Собственная дисковая операционная система Microsoft также была вдохновлена CP/M.

Чтобы иметь возможность запускать (слегка модифицированное) программное обеспечение CP/M, Microsoft решила реализовать функции, аналогичные основным частям BIOS CP/M, подпрограммы, которые системы CP/M использовали для выполнения конкретных задач работы с диском, таких как открытие файлов и т. д. Вместо того, чтобы основывать командный процессор на CCP CP/M, который был известен некоторым недружелюбием к пользователю, интерпретатор командной строки (COMMAND.COM), основанный на его аналоге MS-DOS. Microsoft также предпочла собственную файловую систему FAT12 методам регистрации CP/M. Это гарантировало, что дискеты MSX-DOS можно будет использовать на машине с MS-DOS и что будет использоваться только одна единственная система форматирования и хранения. Это было важное решение, потому что диски CP/M часто не были взаимозаменяемыми между машинами, и причиной этого были несовместимые схемы форматирования дисков.

Microsoft также добавила в MSX-DOS стандартный набор дисковых команд, которые были совместимы с MS-DOS, но не с CP/M. Наконец, они преобразовали свою конвейерную систему из MS-DOS в MSX-DOS. В результате DOS была системой, которая была намного удобнее для пользователя, чем CP/M, но была (в принципе) совместима с основными программными пакетами CP/M, такими как WordStar, Turbo Pascal, ассемблером «M80» и компоновщиком «L80».

Улучшенные версии[править | править код]

  • MSX-DOS2: выпущенная в 1988 году, она содержала множество улучшений, таких как подкаталоги, управление памятью до 16 МБ и строки среды. В более поздних версиях компьютеров MSX (MSX2) были добавлены внутренние часы реального времени, которые MSX-DOS могла использовать для файлов с отметками времени.
  • Nextor: расширенная версия MSX-DOS2, разработанная Konamiman на основе оригинального исходного кода MSX-DOS2.

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

Следующие команды поддерживаются в MSX-DOS версии 2.[6]

 

Кроме того, ASCII предоставило следующие инструменты MSX-DOS2.[7]

 

Смотрите также[править | править код]

Примечания[править | править код]

  1. https://www.msx.org/wiki/The_History_of_MSX-DOS Архивная копия от 3 марта 2023 на Wayback Machine The History of MSX-DOS
  2. SVI MSX User Manual (M-246) 1985 (Spectravideo MSX DOS Disk Operating System) Getting Started section 2.1
  3. MSX Technical Data Book
  4. Mace. Floppy Disk-Drive for PCjr to provide 256K of additional RAM - Infoworld Magazine p.15 vol.6 Issue 8, Framingham, MA. Wernerkai (30 апреля 1984). Дата обращения: 16 мая 2015.
  5. 1 2 3 4 5 6 Paterson. The History of MSX-DOS. Jorito, Maggoo, John Hassink, MSX Resource Center (17 февраля 2014). Дата обращения: 31 мая 2014. Архивировано 18 февраля 2020 года.
  6. MSX-DOS version 2
  7. MSX-DOS 2 Tools : []. — ASCII Corporation, 1989.