====== MSX-DOS ====== {{:msx:msxdos-logo.svg?250|}} MSX-DOS — дисковая операционная система, используемая на компьютерах стандарта [[msx:msx|]], разработана в 1984 году. Она совместима по системным вызовам с [[cp_m:cp_m|CP/M-80 2]], но имела расширенные функции. Иными словами, система позволяла запускать большинство программ, написанных под [[cp_m:cp_m|]] и имела файловую систему FAT, что позволяло обмениваться файлами с системой [[ms_dos:ms_dos|]]. Сейчас продолжением этой ОС (MSX-DOS 2.31) является [[msx:nextor:nextor|]]. {{anchor:history}} ====== История создания MSX-DOS ====== Перевод статьи: [[msxorg>wiki/The_History_of_MSX-DOS|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. Я надеюсь, что это отвечает на ваши вопросы. Тим Патерсон \\ Патерсон Технолоджи {{anchor:v1x}} ====== Версия 1.x ====== Создана на базе [[ms_dos:ms_dos|]] 1.25 в 1984 году. Различные версии: * {{:msx:dos:msxdos13.zip|MSX-DOS 1.03 - COMMAND 1.11 (Tim Paterson)}}, [[http://www.msxpro.com/download/msxdos/disk/MSXDOS13.zip|оригинал]] ^Файл^SHA1^ |COMMAND.COM|af5f2ef3eac4062638f5d8069515e6bcee788e7d| |MSXDOS.SYS|61cd9b4a8c06d750be90b85ed09d4b21871490c4| * [[msx:dos103x:|]] {{anchor:dos1src}} Исходные тексты: * {{:msx:dos:msxdoskit.zip|}} * {{:msx:dos:msxdos1src.zip|}}, [[https://hansotten.file-hunter.com/uploads/files/msxdos1src.zip|оригинал]] * [[msx:msxsyssrc:msxsyssrc|]], [[https://sourceforge.net/p/msxsyssrc/git/ci/master/tree/msxdos100/|Ссылка на репозитарий]] ---- [[msxorg>wiki/MSX-DOS_1|MSX-DOS 1]] {{anchor:v2x}} ====== Версия 2.x ====== Подробная информация: [[msx:dos2:|]] {{anchor:tpa}} ====== Transient Program Area (TPA) ====== TPA — это свободная область для пользователей MSX-DOS и называются "транзитной областью". Эта область начинается с адреса 0x0100 и заканчивается адресом, хранящимся в ячейке 0x0006. Команды MSX-DOS загружаются в TPA. ---- [[msxorg>wiki/TPA|TPA]] ====== Ссылки ====== * [[https://msxhub.com/static/hub/img/logos/MSXDOS-Logo.svg|Логотип]] * [[wp>MSX-DOS]] * [[msxorg>wiki/Category:MSX-DOS|MSX-DOS]] * [[msxorg>wiki/MSX-DOS_Internal_Commands|MSX-DOS Internal Commands]] * https://archive.org/details/MSXDOS * **http://fms.komkon.org/MSX/Docs/EasyGuide.txt** * [[github>/Konamiman/MSX2-Technical-Handbook/blob/master/md/Chapter3.md#11-features-of-msx-dos|Konamiman/MSX2-Technical-Handbook/Chapter3 — MSX-DOS]] * [[http://www.msxpro.com/msx-dos.html|The MSX Hardware Page — MSX DOS]] {{tag>OS MSX}}