Читать «Bash IT Happens Истории ## 9701 – 9800» онлайн - страница 14

Bash.org.ru IT

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

#9730: А ручка-то — вот она

12:45 15.08.2012, IT happens

Ноут HP с Core i7 на борту греется, как маленький термоядерный реактор. Пришёл с подозрительно плавающим дефектом, был оставлен на run-in тест на выходные.

Утром в понедельник обнаружилась крайне неприятная проблема: в непосредственной близости от системы выхлопа лежала шариковая ручка, которая от потока горячего воздуха весьма обильно потекла. Теперь предстоит отмывать корпус от чернил — опять неслабый расход спирта, опять головная боль, которая неизменно придёт после вдыхания паров…

#9731: Старьё моё

12:15 16.08.2012, IT happens

Понадобилось недавно написать для студента небольшую программу на Паскале. Программа простейшая — переход в графический режим, построение графика функции, вывод таблицы значений. На Windows 7 x64 Паскаль, разумеется, не запустится, да и от версии х86 толку бы не было — там отсутствует возможность работы в графическом режиме.

Итак, попытка номер раз — FreePascal. Пишем привычный код для инициализации графического режима и ожидания нажатия любой клавиши. Оказалось, что это дело во FreePascal организовано более чем интересно: открывается отдельное окно для графики, но все сообщения от клавиатуры принимает другое окно, с консолью. Приложение по нажатии любой клавиши просто так не закрывается, только после ручного переключения на окно консоли. Гугление даёт решение проблемы: собрать программу с ключом APPTYPE: GUI, подключить WinCRT и вызвать ShowWindow. В общем и целом под Borland Pascal это гарантированно не соберётся, а необходима совместимость. Отпадает.

Попытка номер два. Для совместимости со старыми приложениями я использую виртуальную Windows XP. Вот и сейчас на виртуалке стоит новенькая «хрюша» со всеми обновлениями. Копирую весь пакет Turbo Pascal, который предусмотрительно имеется, запускаю bp.exe, открываю исходник, запускаю. Приложение закрывается: отвалился эмулятор ntvdm.exe. Я привык: как Windows XP ни ставь, где-нибудь в конце концов да вылезет глюк, но тем не менее. В ходе экспериментов выяснилось, что отваливается при любой попытке перейти в графический режим, а также просто на запуске turbo.exe. Переустанавливать виртуальную машину на тот момент не было ни времени, ни желания. Решил пойти другим путём.

Итак, попытка номер три. Хвалёный многими DOSBox. Много слышал о нём, но использовать не доводилось. Включаем, монтируем в качестве диска С: папку с Паскалем, запускаем bp.exe, открываем исходик и привычно нажимаем Ctrl+F9. Программа закрывается. Полностью. Путём курения манов устанавливаем, что в DOSBox это сочетание клавиш действительно поставлено на закрытие. Кому пришло в голову назначить для эмулятора такие простые сочетания, когда все они используются многими досовскими программами, неясно, но на то он и опенсорц. Ладно, убираем это сочетание из настроек DOSBox, запускаем — графика работает. Вносим изменения в исходник, чтобы доделать-таки эту несчастную задачу. Вносим… А они не вносятся, ибо Паскаль реагирует только на пробел и на клавиши со стрелками. Закрываем Паскаль, в консоли DOSBox — тот же глюк. Нажатия клавиш Backspace и Del вызывают появление на экране символов из набора DOS. Закрываем DOSBox, открываем, монтируем, запускаем — проблема исчезает, но появляется после следующего запуска написанной программы. В результате отладка идёт именно так: запускаем, выходим, закрываем эмулятор, открываем эмулятор, монтируем, запускаем, пишем…