IT-археологии пост

Posted: 2017-11-17 in По жизни, IT
Метки:,

#Windows-3.11 #Win16 #FoxPro

Думаю, уже для довольно многих читателей эта картинка покажется совершенно незнакомой, и не вызовет никаких значимых эмоций. А кто-то с ностальгией вспомнит те времена, когда жесткие диски и память измерялись мегабайтами, на дискету в 360 килобайт влезало два десятка игрушек, а видеокарты были без радиаторов.

Если интересно — просим в избу-читальню.

Короче, столкнулся я на практике с такой вещью, как IT-археология. Если вкратце — это такое очень необычное направление на стыке IT и музейного дела, призванное сохранить старые компьютеры, софт и данные для них. Подробнее можно почитать вот тут и вот тут. Помимо музейных деятелей, тут есть ещё фаны ретро-гейминга, коллекционеры старого софта и железа, специалисты по древним станкам (и их настолько же древним управляющим компьютерам), всевозможные научные наработки (Фортран и Кобол до сих пор местами живы именно из-за этого), да и просто заинтересовавшиеся данным вопросом.

Обратился ко мне один клиент, попросивший запустить достаточно древний и редкий софт — программу для управления деятельностью школы, написанную в эпоху виндовс-3.11, в далёком уже 1996 году, причём возможно с задействованием фокс-про версии 2.6.

На моё счастье, дискеты с дистрибом и архивом базы данных оказались стандартного формата на 1.44 Мб, архиватор использовался pkzip, да и с чтением данных на тестовом стенде проблем не возникло — за 20 лет дискеты не сдохли, что удивительно. На выходе же требовалось получить легко-разворачиваемую виртуальную машину, где данный софт мог бы запускаться.

И вот с запуском возникли сложности.

Первое, что я попробовал — сделать новую ВМ в виртуалбоксе с DOS, развернуть туда Windows 3.11, и там уже попробовать поставить софт. Напоминаю, что до виндовс-95 у винды не было бутабельных дисков, оптический привод тогда стоил как автомобиль, и для установки виндовс сперва ставился DOS (MS-DOS 6.22), а на него уже с более чем десятка дискет ставилась виндовс-3.11, причём дискетами надо было диджеить в процессе установки =)

Виндовс у меня поставилась и даже запустилась, и мне удалось даже запустить инсталлятор проги, который успешно выполнился, но ни сама эта установленная прога, ни поставленный параллельно фокспро не взлетели — ошибка была одна и та же, со скриншота в начале статьи. Оказалось, что на современных зверских CPU что-то ломается в работе многих таких древних программ, и просто так это не лечится. Я попробовал снизить скорость работы CPU в настройках VM — но и это не помогло. Виртуалка лагала и тупила, но приложение падало с той же ошибкой.

Древней 386/486-й машины у меня нет, поэтому я решил попробовать DOSBox, тем более, что виндовс-3.11 с ним вроде очень даже хорошо работает. Прикола ради я запустил виндовс-311 в досбоксе на тестовой машинке с Celeron-633 и 17-й убунтой — но эмуляция в таком раскладе оказалась не самой оптимальной и системе стало дурно. Мне, впрочем, тоже =)
Поэтому старичка я выключил и дальше продолжил опыты на основной машине.

Только с третьей попытки получилось собрать рабочее окружение.
Создаём ВМ под виндовс-7-х86, ставим такие параметры: 1x vCPU (50%), от 256 до 512 Mb RAM, Sound — Intel HD Audio. Ставим туда минимальную виндовс-7, на неё ставим DOS Box.
Повторять квест с образами дискет вин-3.11 мне было влом, поэтому я просто подключил диск из первой ВМ с виндовс-3.11 в новую ВМ с семеркой, и просто скопировал всё ранее собранное dos-окружение в C:\DOS. Отключаем диск, дальше всё делаем внутри ВМ с виндовс-7.

Пробуем запустить дос-бокс, закрываем его и ищем такой файл:

C:\Users\[UserName]\AppData\Local\DOSBox\dosbox-0.74.conf

В самый конец, в секцию [Autoexec], дописываем команды для автозапуска виндовс:

mount c c:\dos
c:
cd windows
win

Да, тогда виндовс была поверх доса, и из неё можно было выйти, как из обычной программы, вернувшись в нижележащий дос.
После этого запускаем нашу софтину … и она запустилась, и даже увидела все данные, набитые туда 20 лет назад!

В самой программе не удалось найти никаких контактов разработчиков, кроме названия компании, которое, впрочем, даже гуглится. Вот такой был софт 20 лет назад для государственных учреждений.

База данных сей дивной палео-софтины — 80 DBF-файлов, лежащих прямо в каталоге программы, вперемешку с собственными cdx-индексами, exe-шками, картинками и ресурсами. Только фотки сотрудников (в 16-и цветах, 4-х битный цвет) вынесены в отдельный подкаталог /BMP. И что самое занятное — в 2017 году встречается софт, написанный таким же диким способом, где рабочие файлы баз и временные файлы лежат вперемешку с исполняемыми.

Но то, что было нормой в 1996-м, в 2017 — полнейшая дичь. Напомню, интернета тогда в России было не густо (Mail.Ru ещё не существовало!), была FIDO, подключение к которой было квестом не для слабонервных.
Хотя MSDN уже тогда был.

И ещё один «штрих к портрету» для софта того времени — инструкция к инсталлятору в doc-формате, Word 6.0. При установке на чистую систему такую инструкцию и прочитать-то нечем — ворд в те времена мог занимать значительную часть диска и ставился также с дискет, а никаких вордпадов в комплекте не было.

Так что когда вы встретите очередную чудо-диво-программу, которая требует права записи в свой рабочий каталог, прав локального админа, или не работает в режиме белого списка SRP — знайте, что это стиль программирования под виндовс-3.11 программиздами из середины 90-х, экстренно размороженными из криокамеры.

- комментарии
  1. BhNO3:

    я как-то имел дело с таким вот прибором https://www.iveindhoven.com/en/article/lkb-bromma-hplc-pump-system/
    У него единственный способ подключения к компьютеру — это COM порт. А драйвер старше меня, и работает только под IBM PC XT. Графики он рисует только текстовыми символами на XТ-шном же экране. А сам прибор притом вполне себе годный. Так что компьютерная археология — вполне себе практическая задача.
    я тогда хотел перенести софт на Windows 98, но по моему я так и не нашёл тех самых дискет, а за дисковпод пришлось сражатьця со складскими барыгами.

  2. Amin:

    COM-порт работает не быстро, тем более на XT, и наверняка может быть проброшен в виртуалку с FreeDOS. Можно я спрошу про наличие открытой документации на протокол обмена по ком-порту ? 😀

  3. BhNO3:

    Трудно сказать, лично я не думаю, что там было что-то сложное. Беда в том, что COM порта у нас ни на одном компе не было, вот и решились старые окна ставить.
    Протокол, думаю, умер в архивах компании, которая поглотила другую компанию. Мы и ман то по етой штуке в буквалном смысле международными усилиями восстанавливали.

  4. Amin:

    Брали штурмом офис компании-разработчика при поддержке тяжелых говномётов ?

  5. BhNO3:

    Не, мы б-гу распада не поклоняемся, так что вместо говномётов инквизицию вызывали :).

    Нет, просто я достал один ман, а у другого человека в другои стране сохранилась другая часть мана утраченная из интернета. Мы и махнулись.