Тим Патерсон - американский программист, наиболее известный как автор первой версии MSDOS, наиболее широко используемой операционной системы персональных компьютеров в 1980-ых.
Мы недавно обратились к нему с вопросами и Тим любезно согласился поделиться историей разработки системы MSX-DOS с MSX Community. Вот его рассказ.
Вот, что я могу вспомнить об истории MSX-DOS. 10 августа 1983 мне позвонил Пол Аллен и попросил меня сделать Z80 версию MSDOS. Я не ухватился за это предложение, поскольку был тогда занят подготовкой к выпуску первых продуктов Falcon Systems. Я предложил ему обратиться сначала к одному программисту, кто мог бы это сделать, затем к другому, но он сказал, что у них уже спросил. Он сказал, что это надо сделать в сжатые сроки и никто другой не согласился на такие условия. Но он предложил хорошие деньги и разрешение для моей компании распространять MSDOS. Так что я решил, что это хорошая сделка. 17 августа я подписал договор на разработку версии MSDOS 1.25 для Z80 за 100.000 USD и право распространять MSDOS 2.0, 2.5, и 3.0 с моими аппаратными продуктами без лицензионного платежа.
Для меня это был только процесс трансляции. Ранее я написал программу трансляции ассемблерных исходников на Z80 на ассемблер 8086 (TRANS). В этом случае я вручную переводил программу в обратном направлении. Поскольку MSDOS была сделана так, что была способна выполнять приложения CP/M, которые были транслированы в коды 8086, то это означало, что MSX-DOS будет способна выполнять оригинальные программы CP/M. Так, можно считать MSX-DOS версией MSDOS на Z80, но одновременно её можно считать вариантом CP/М, которая использует формат диска MSDOS.
Я сидел за терминалом Zenith H19 связанным с 8086 компьютером от 'Seattle Computer Products' работающем в MSDOS с помощью двойного PerSci 8" НГМД. В качестве редактора я использовал MicroPro WordMaster из CP/M (а не более известный WordStar), причём я перенес его на MSDOS самостоятельно дизассемблированием 8-ми битовой версии CP/М и последующим переводом (with TRANS) на ассемблер 8086. Я смотрел на несколько строк исходного текста DOS на ассемблере 8086 и печатал соответствующие команды на Z80 ассемблере.
Сначала я написал эмулятор Z80, который выполнялся под MSDOS, моделируя Z80 машину c CP/М. Этот эмулятор заработал уже через 10 дней, 27 августа 1983. Это позволило мне делать весь проект разработки под MSDOS. Я транслировал исходный текст на ассемблере Z80, используя CP/M-ассемблер M80 от Microsoft, выполняющийся под этим эмулятором, и затем компоновал REL-файл используя CP/M-компоновщик L80.
MSX-DOS, который я писал, имел систему ввода/вывода, которая имела интерфейс непосредственно к процедурам ввода/вывода машины MSDOS, которая выполняла эмуляцию. Это давало прямой доступ из MSX-DOS к управлению дисковым форматом. Большинство основного кода было управлением файлами, так что это было необходимо отладить. Я делал резервную копии своей работы на втором диске 'PerSci', и стартовал код под эмулятором, давая тем самым MSX- DOS полное управление. Резевирование было необходимо, т.к, естественно, в ранних версиях, неожиданно возникали ошибки, приводящие к крушению диска.
К 2-ому октября я добился, что БЕЙСИК Microsoft и M80, выполнялись под MSX-DOS. COMMAND.COM я закончил программировать несколько дней спустя. После тестирования, я устранил несколько багов и продемонстрировал работу MSX-DOS Полу Аллену 11 октября. Я официально поставил тестовую Beta-версию 26-ого октября. Это включало пасхальное яйцо, которое выводило на экран мое имя, но я не помню, как это активизировалось. Мое имя было закодировано кодом FAT, так что это не могло быть найдено, просто просмотром кода.
После моей поставки код послали фирме 'ASCII' в Японию. Они создавали I/O System для MSX машины. Они должны были сообщить об ошибках, и я мог бы устранить их. В ходе этого однажды, в начале января 1984, я сделал ревизию ДОС, которая привела к крушению диска, когда я запустил код под эмулятором. К сожалению, я уже привык, что всё отлично работает и не сделал копии. Потребовался целый день труда, чтобы возвратить потерянные данные.
Фирма 'ASCII' имела на проекте очень крутого японского программиста Джея Судзуки. Он обнаружил моё пасхальное яйцо и добавил своё имя к нему наряду с моим.
В фирме ASCII возникли проблемы при изготовлении MSX-DOS, работающей на реальной MSX машине. Они не предоставили машину для меня, и вместо этого сделали так, что я вынужден был прибыть в Токио, чтобы помочь им. 28-ого января я уехал в Японию с Крисом Ларсоном, где мы встретились с Кей Ниши и его людьми. Оказалось, что они сильно изменили код, не сообщив мне, так что мы работали не над одинаковым исходным кодом. Я потратил три дня в Токио, чтобы выяснить проблемы (отчего осталось мало туристского времени). Я плохо работаю под давлением, так что я отказался делать любое кодирование там. В феврале я продолжил работу над MSX-DOS уже дома.
Крис Ларсон и Джей Судзуки приезжали в мой офис в конце февраля и в начале марта. Они привезли MSX машину с внутрисхемным эмулятором для отладки. Мы запустили всё в работу, и я не слышал ничего более до апреля. Оставалось доделать очень немногое и затем 23 апреля 1984, фирма Microsoft приняла работу и сделала заключительную оплату.
После этого я устранил ещё несколько ошибок, и это стало концом всякого контакта с проектом. После чего я вообще ничего не слышал больше о MSX. В выпуске версии MSX-DOS 2.0 с подкаталогами, я не участвовал.
Я надеюсь, что это отвечает на ваши вопросы.
[свернуть]