MSX-DOS — дисковая операционная система, используемая на компьютерах стандарта MSX, разработана в 1984 году. Она совместима по системным вызовам с CP/M-80 2, но имела расширенные функции. Иными словами, система позволяла запускать большинство программ, написанных под CP/M и имела файловую систему FAT, что позволяло обмениваться файлами с системой MS DOS.
Сейчас продолжением этой ОС (MSX-DOS 2.31) является Nextor.
Перевод статьи: The History of MSX-DOS.
Тим Патерсон (Tim Paterson) — американский программист, более известный как первоначальный автор MS-DOS, наиболее широко используемой операционной системы для персональных компьютеров в 1980–х годах.
В 1983 году Microsoft заключила контракт с Тимом Патерсоном на перенос MS-DOS 1.25 на платформу MSX.
Тим Патерсон в настоящее время является владельцем технологии Paterson.
Недавно связавшись с нами, Тим любезно согласился поделиться историей разработки MSX-DOS с сообществом MSX:
Вот что я могу восстановить в истории MSX-DOS:
10 августа 1983 года мне позвонил Пол Аллен с просьбой сделать версию MS-DOS для Z80. Я не упустил этот шанс, так как пытался подготовить первый продукт для своего «startup» Falcon Systems. Я предложил ему ещё одного или двух человек, которые, как мне казалось, могли бы это сделать, и он сказал, что он их уже спрашивал. Он торопился сделать это, и никто другой не мог уложиться в предлагаемый его срок. Но он был готов заплатить наличными и позволить моей компании распространять MS-DOS, поэтому я решил, что это хорошая сделка. 17 августа я подписал соглашение о выпуске Z80 MS-DOS 1.25 за 100 000 долларов и о праве распространять MS-DOS 2.0, 2.5 и 3.0 с аппаратными продуктами без лицензионных платежей.
Для меня это был процесс перевода. Я уже написал программу перевода на ассемблер с Z80 на 8086 (TRANS). В данном случае я делал ручной перевод в обратном направление. Поскольку MS-DOS была способна запускать приложения CP/M, которые были переведены на 8086, это должно означать, что MSX-DOS сможет запускать программы CP/M напрямую. Поэтому, хотя я считаю MSX-DOS версией MS-DOS для Z80, её также можно рассматривать как вариант CP/M, которая использует формат диска MS-DOS.
Я сидел за терминалом Heath/Zenith H19, подключённым к компьютеру Seattle Computer Products 8086, работающему под управлением MS-DOS, с двойным дисководом PerSci 8”. В качестве редактора я использовал MicroPro WordMaster (не самый известный WordStar), который я сам портировал в DOS, разобрав 8–битную версию CP/M и переводя (с помощью TRANS) на 8086 ассемблер. Я сомотрел по несколько строк исходного кода DOS на ассемблере 8086 и набрал ту же операцию на ассемблере Z80.
Я также написал эмулятор Z80, работавший под MS-DOS, имитирующий машину CP/M, с которой я работал 27 августа 1983 года. Это позволило мне выполнить весь проект разработки под MS-DOS. Я собирал исходный код Z80 с использованием ассемблера Microsoft M80, работающего под эмулятором, и выполнил сборку используя L80.
У MSX-DOS, которую я писал, был системный уровень ввода–вывода, который взаимодействовал непосредственно с системным уровнем ввода–вывода машины MS-DOS, на которой выполнялась эмуляция. Это давало MSX-DOS прямой доступ и контроль над форматом диска. Большая часть основного кода была связана с управлением файлами, так что было необходимо протестировать это. Я сделал резервную копию своей работы на втором диске PerSci и предоставив MSX-DOS полный контроль над рабочим диском. Конечно, в первые дни появлялись ошибки, которые уничтожали диск.
Ко 2-му октября у меня были Microsoft BASIC и M80, работающие под управлением MSX-DOS. Я закончил кодирование COMMAND.COM несколько дней спустя. Я разработал некоторые ошибки и продемонстрировал MSX-DOS Полу Аллену 11 октября. Я официально поставил бета-тестовую версию 26 октября. Там было пасхальное яйцо, на котором было написано моё имя, но я не помню, как оно было активировано. Моё имя было закодировано с помощью FAT–кода, поэтому его нельзя было найти простым поиском в файле.
После этого код был отправлен в ASCII в Японии. Они создали систему ввода-вывода для машины MSX. Они сообщали об ошибках, и я их исправлял. Однажды в начале января 1984 года я сделал ревизию кода, которая затем разбила мой диск, когда я запустил его эмуляцию. К сожалению, я уже привык к тому, что все работает, и не сделал резервную копию. Потребовался целый день, чтобы восстановить потерянные данные.
В ASCII был очень проницательный японский программист Джэй Сузуки. Он разобрался с пасхальным яйцом и добавил к нему своё имя.
У ASCII возникли проблемы с работой MSX-DOS на реальной машине MSX. Они не предоставили мне машину, а вместо этого мне пришлось приехать в Токио, чтобы помочь им. 28 января я уехал в Японию с Крисом Ларсоном, где мы встретились с Кей Ниши и его людьми. Оказалось, что они взламывали код, не сказав мне, поэтому мы работали с разной кодовой базой. Я провёл три дня в Токио, чтобы выяснить проблемы (и немного времени я провёл как турист). Я не очень хорошо работаю под давлением, поэтому я не пытался там писать код. Я продолжи дальнейшую работать над MSX-DOS в феврале.
Крис Ларсон и Джей Сузуки приходили ко мне в офис в конце февраля и начале марта. Они принесли машину MSX с встроенным эмулятором (ICE) для отладки. У нас все заработало, и я больше ничего не слышал до апреля. Было ещё немного работы, и затем 23 апреля 1984 года Microsoft приняла поставку и произвела окончательный расчёт.
После этого я исправил несколько ошибок, но это было практически завершением контакта с этим проектом. Я больше ничего не слышал о MSX.
Я надеюсь, что это отвечает на ваши вопросы.
Тим Патерсон
Патерсон Технолоджи
Создана на базе MS DOS 1.25 в 1984 году.
Различные версии:
MSX-DOS 1.03 - COMMAND 1.11 (Tim Paterson), оригинал
Файл | SHA1 |
---|---|
COMMAND.COM | af5f2ef3eac4062638f5d8069515e6bcee788e7d |
MSXDOS.SYS | 61cd9b4a8c06d750be90b85ed09d4b21871490c4 |
Подробная информация: MSX-DOS 2
TPA — это свободная область для пользователей MSX-DOS и называются «транзитной областью». Эта область начинается с адреса 0x0100 и заканчивается адресом, хранящимся в ячейке 0x0006. Команды MSX-DOS загружаются в TPA.