Lotus 1-2-3 для Linux

Created Diff never expires
8 removals
12 lines
8 additions
12 lines
Да, это оригинальный неразобранный объектный файл из 1-2-3. Имеется около 20 000 символов, включая частные символы и отладочную информацию.
Да, это оригинальный не урезанный объектный файл из 1-2-3. В нём имеется около 20 000 символов, включая частные символы и отладочную информацию.


Зачем Lotus выпускать это? Он настолько велик, что, должно быть, им пришлось физически отправлять дополнительный диск каждому покупателю? Могла ли это быть ошибка, случайно оставленная на финальном изображении?
Зачем Lotus выпускать это? Он настолько большой, что, должно быть, им пришлось физически доставлять дополнительный диск каждому покупателю? Могла ли это быть ошибка, случайно оставленная в последнем выпуске?


У меня было так много вопросов, но я недостаточно взрослый, чтобы иметь какой-либо опыт работы с SysV, поэтому я спросил седобородых на alt.folklore.computers, видели ли они это раньше и почему это могло произойти.
У меня было так много вопросов, но я недостаточно взрослый, чтобы иметь какой-либо опыт работы с SysV, поэтому я спросил седобородых на alt.folklore.computers, видели ли они это раньше и почему это могло произойти.


Ответ заключался в том, что это, вероятно, сделано намеренно — dlopen() не была широко доступна в UNIX в начале 90-х, поэтому не было простого способа загрузки собственных плагинов или расширений. Чтобы решить эту проблему, поставщики отправляли кучу частично связанных объектных файлов со сценарием, который повторно связывал их с вашими расширениями — умно!
Ответ заключался в том, что это, вероятно, сделано намеренно — dlopen() не была широко доступна в UNIX в начале 90-х, поэтому не было простого способа загрузки собственных плагинов или расширений. Чтобы решить эту проблему, поставщики отправляли кучу частично связанных объектных файлов со скриптом, который повторно связывал их с вашими расширениями — Умно!
Взлом
Взлом


Я не могу передать вам, насколько полезным было это открытие: отладочная информация ответила на многие мои вопросы о внутреннем устройстве Lotus 1-2-3! Это был прямой порт исходного кода из DOS, поэтому в основном он работал так же, но теперь у меня были отладочные данные. Например, мне очень хотелось подключить растеризатор в моем драйвере, чтобы улучшить внешний вид графиков в терминале… но это было слишком сложно для понимания без документации.
Я не могу передать вам, насколько полезным было это открытие: отладочная информация ответила на многие мои вопросы о внутреннем устройстве Lotus 1-2-3! Это был прямой порт исходного кода из DOS, поэтому в основном он работал так же, но теперь у меня были отладочные данные. Например, мне очень хотелось подключить растеризатор в моем драйвере, чтобы улучшить внешний вид графиков в терминале… но это было слишком сложно для понимания без документации.


Теперь я знаю, что растеризатор динамически генерирует небольшие программы с байт-кодом, которые интерпретируются графическим движком. Теперь, когда я знаю, что такое коды операций, я могу дизассемблировать и изменить их в своем драйвере, чтобы улучшить результат!
Теперь я знаю, что растеризатор динамически генерирует небольшие программы с байт-кодом, которые интерпретируются графическим движком. Теперь, когда я знаю, что такое коды операций (опкоды), я могу дизассемблировать и изменить их в своем драйвере, чтобы улучшить результат!