MSX-DOS

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 и дать системе более дешевый программный носитель, чем карта памяти, и более мощную систему хранения, чем кассетная лента .  Стандартный BIOS нерасширенного компьютера MSX не имел встроенной поддержки дисков, но предоставлял перехватчик для расширения диска, поэтому система расширения дополнительных гибких дисков поставлялась с собственным ПЗУ расширения BIOS (встроенным в контроллер диска), называемым BDOS .

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

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

Загрузочная обработка 
После загрузки MSX-DOS система ищет COMMAND на диске MSX-DOS. COM-файл и загружает его в память.  В этом случае 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. 
 
 BASIC
 COPY
 DATE
 DEL
 DELETE
 DIR
 ERASE
 FORMAT
 MODE
 PAUSE
 REM
 REN
 RENAME
 TIME
 TYPE
 VERIFY

История развития 

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

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

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

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

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

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

Во время написания 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. 
 
 ASSIGN
 ATDIR
 ATTRIB
 BASIC
 BUFFERS
 CD
 CHDIR
 CHKDSK
 CLS
 COMMAND2
 CONCAT
 COPY
 DATE
 DEL
 DIR
 DISKCOPY
 ECHO
 ERA
 ERASE
 EXIT
 FIXDISK
 FORMAT
 HELP
 MD
 MKDIR
 MODE
 MOVE
 MVDIR
 PATH
 PAUSE
 RAMDISK
 RD
 REM
 REN
 RENAME
 RMDIR
 RNDIR
 SET
 TIME
 TYPE
 UNDEL
 VER
 VERIFY
 VOL
 XCOPY
 XDIR

Кроме того, ASCII предоставило следующие инструменты MSX-DOS2. 
 
 ADDAUX
 BEEP
 BIO
 BODY
 BSAVE
 CAL
 CALC
 DUMP
 EXPAND
 GREP
 HEAD
 KEY
 LIST
 LS
 MENU
 MORE
 PATCH
 SLEEP
 SORT
 SPEED
 TAIL
 TR
 UNIQ
 VIEW
 WC

Смотрите также 

 SymbOS
 86-DOS
 MIDAS
 DOS Plus

Примечания 

Программное обеспечение, разработанное в 1984 году
Неподдерживаемые ОС Microsoft
MSX-DOS
CP/M