Чем единственное изменение байта было к порту WordStar с CP/M на DOS?

По умолчанию, rebase пишет в рабочую копию, но вы можете настроить ее для работы в памяти для повышения производительности и разрешения запуска, если рабочая копия загрязнена. Просто добавьте следующие строки в ваш файл .hgrc:

[rebase]

experimental.inmemory = True

(Чтобы получить больше настроек для rebase, попробуйте запустить hg help rebase)

14
задан Andrew Eisenberg 4 May 2012 в 03:30
поделиться

7 ответов

Звуки, немного преувеличенные, нашли некоторую историю WordStar здесь

WordStar 3.0 для MS-DOS

Апрель 1982

На одной единственной ночной сессии Jim Fox исправил CP/M-86 версия WordStar, чтобы заставить его работать под MS-DOS на IBM PC так, чтобы это могло быть продемонстрировано Rubenstein. Фактический порт был сделан группой ирландского использования программистов системы разработки Intel, которые выполнили ИГИЛ II операционных систем. Сборка программного обеспечения была сделана на 8-дюймовых дискетах, и двоичные (исполняемые) файлы были затем переданы IBM PC последовательным кабелем.

Но... Joel, возможно, имел в виду MS-DOS 1.0 / QDOS

MS-DOS 1.0 был на самом деле переименованной версией QDOS (Быстрая и Грязная Операционная система), который Microsoft купила у Сиэтлской компании, соответственно названных Сиэтлских Компьютерных продуктов, в июле 1981. QDOS был разработан как клон восьмиразрядной операционной системы CP/M для предоставления совместимости с популярными бизнес-приложениями дня, такими как WordStar и dBase. CP/M (Управляющая программа для Микрокомпьютеров) был записан Gary Kildall Цифрового Исследования несколькими годами ранее и стал первой операционной системой для микрокомпьютеров во всеобщем употреблении.

7
ответ дан 1 December 2019 в 13:34
поделиться

Эта статья в Википедии утверждает, что CP/M и MS-DOS совместно используют двоичные форматы. Это продолжает:

Хотя формат файла является тем же в MS-DOS и CP/M, это не означает, что программы CP/M могут быть непосредственно выполнены под MS-DOS или наоборот; файлы COM MS-DOS содержат x86 инструкции, в то время как файлы CP/M COM содержат 8080, 8085 или инструкции Z80.

Под CP/M 3, если первый байт файла COM является 0xC9 затем, это указывает на присутствие 256-байтового заголовка; так как 0xC9 соответствует 8 080 инструкциям RET, это означает, что файл COM сразу завершит, если работается более раннюю версию CP/M, который не поддерживает это расширение.

Это подразумевает, что, возможно, фиксирование/портирование изменяло эту первую инструкцию во что-то еще, которое позволило остальным выполняться. Не уверенный, хотя, который, кажется, подразумевает, что двоичный файл, должно быть, был "толстым", который кажется неблагоразумным для двоичного файла прежней версии.

2
ответ дан 1 December 2019 в 13:34
поделиться

Я не уверен, точен ли оператор Joel или нет. Возможно, он имел в виду демонстрационную версию, которую сделал Jim Fox?

См. http://www.wordstar.org/wordstar/history/history.htm

Я заключу подходящий раздел в кавычки:

WordStar 3.0 для MS-DOS

Апрель 1982

На одной единственной ночной сессии Jim Fox исправил CP/M-86 версия WordStar, чтобы заставить его работать под MS-DOS на IBM PC так, чтобы это могло быть продемонстрировано Rubenstein. Фактический порт был сделан группой ирландского использования программистов системы разработки Intel, которые выполнили ИГИЛ II операционных систем. Сборка программного обеспечения была сделана на 8-дюймовых дискетах, и двоичные (исполняемые) файлы были затем переданы IBM PC последовательным кабелем.

(Редактирование: ой, слишком поздно. Кто-то еще уже нашел ту же самую вещь :-/ Не стесняйтесь игнорировать меня.)

1
ответ дан 1 December 2019 в 13:34
поделиться

WordStar был записан в 8 080 ассемблерах, и были инструменты тогда для преобразования 8 080 - 8 086 ассемблеров (8 086 систем команд были разработаны для разрешения этого), если весь код мог бы вписаться в единственный сегмент, таким образом, это довольно возможно.

Я сначала использовал WordStar в 1979 на поле Z80 CP/M. Люди сегодня не могли бы понять, насколько удачный они - сколько пользователи MS Word были бы подготовлены как первая задача при установке их текстового процессора для записи нескольких маленьких ассемблерных стандартных программ (в шестнадцатеричном числе!) для взаимодействия через интерфейс с текстовым процессором эффективно (Вы могли использовать стандартные программы CP/M, но они были собакой, замедляются и не работал правильно) с экраном и клавиатурой? Счастливые дни...

2
ответ дан 1 December 2019 в 13:34
поделиться

Вам придется изменить более одного байта. Исполняемые файлы CP / M-86 (. CMD) все имеют 128-байтовый заголовок, который не похож на заголовок .EXE.

Если вы ограничиваете все вызовы API общим подмножеством CP / M и DOS, тогда вы можете использовать условную сборку для сборки версий CP / M и DOS из одного источника:

bdos:
       if CPM86
         int 0E0h
       else
         mov ah, cl
         int 21h
       endif
3
ответ дан 1 December 2019 в 13:34
поделиться

«Фактически WordStar был перенесен на DOS путем изменения одного байта в коде. (Настоящие программисты могут сказать вам, что это был за байт, я давно забыл)»

Пн, 08.06.2009, 18:27. Я предполагал, что Спольски говорил о 8080 CP / M с 8086 MSDOS, и что эта история, вероятно, вымышленная. 8086 CP / M никогда не был большим продуктом - я имею в виду, он был полностью раздавлен MSDOS - и кто-то, возможно, преобразовал WordStar с 8080-CPM в 8086-CPM - путем повторной сборки, как и другие отметили, используя специальный преобразователь 8080 в 8086 - и затем , возможно, нужно было изменить только один байт.

2
ответ дан 1 December 2019 в 13:34
поделиться

Важно понимать, что в то время 16-битные 8086 машины только выходили на замену 8-битным машинам, на которых операционной системой CP/M была Windows того времени. Все с дисковым накопителем, предназначенным для работы, работали под управлением CP/M. Позже эта версия была названа CP/M-80, чтобы отличать ее от CP/M-86 для процессора 8086.

К сожалению, это заняло столько времени, что QDOS была написана, чтобы иметь SOMETHING для работы программ, и это было, по сути, быстрой перезагрузкой функций CP/M (но с другим синтаксисом). Позже QDOS была куплена Microsoft и сделана в MS-DOS. Следовательно, MS-DOS на самом деле имеет ядро CP/M глубоко внутри, и поэтому объем работы, необходимый для того, чтобы заставить программу CP/M-86 работать под MS-DOS, был ограничен (не одним байтом, а управляемым).

Я имел удовольствие работать несколько лет с CCP/M-86, который позволял многозадачность, очень похожую на то, что Linux в текстовом режиме (с виртуальными приставками) позволяет сегодня. К сожалению, это так и не зацепило меня. Ну что ж, у нас есть Linux :)

.
1
ответ дан 1 December 2019 в 13:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: