Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 112

/ вопрос открыт /

Здравствуйте!
После замены процессора Athlon(tm)XP 2000 на процессор Athlon 64 X2 Dual Core Processor 4200+ у меня в Pascal (BP 7.0) перестал поддерживаться графический режим. При попытке войти в графический режим получил сообщение: - “Процессор NTVDM обнаружил недопустимую инструкцию.” Что делать в этой ситуации? Как мне восстановить графический режим?

VBoris Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: VBoris (статус: Посетитель)
Вопрос отправлен: 23 августа 2009, 19:21
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, VBoris!
Когда то давно, когда процессоры были слабенькие и глупенькие, компания Борланд умудрилась написать функцию sleep и несколько других интересным образом. при старте программы запускался маленький цикл, который рассчитывал сколько тактов процессора приходиться на единицу времени. потом рассчитывались константы. Но когда процессоры стали быстрее, на новых процессорах начало происходить деление на ноль. Это же есть и в графическом режиме. Для решения этой проблемы придумали много решений - вплоть до то, что пропатчивали исполняемые файлы.
Но есть одно надежное решение. Это установить себе DosBox (http://www.dosbox.com/) - это маленький (пара мегабайт) симулятор доса. В нем можно выставить частоту процессора для симуляции, объем памяти и много много других вкусностей. Также под ним удобно запускать старые игрушки - просто надо подобрать нужную частоту и объем памяти (некоторые программы не знают о том, что памяти может быть 16 мегабайт и больше и просто отказываются работать!). Вместо DosBox можно использовать Bocsh.

А можно сделать по другому - просто установить себе FreePascal (http://freepascal.org/). Внешне очень похоже, старный код, если чуточку настроить компилятор, работают с пол пинка.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 23 августа 2009, 21:32
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 26 августа 2009, 22:27; участников в обсуждении: 2.
VBoris

VBoris (статус: Посетитель), 25 августа 2009, 19:46 [#1]:

Здрасктвуйте Вадим К. Спасибо за помощь и подсказку!
DosBox я пробовал (правда “частоту процессора для симуляции” не выставлял), и безрезультатно. Тогда я попробовал другой (временный) вариант. Установил вместо видеоадаптера, встроенного в мою системную плату (M2N MX) другой видеоадаптер: - NVIDIA GeForce 8600 GT.
После этой замены графический режим в Pascal заработал.
Но останавливаться на этом решении мне не хочется, поэтому я ещё хочу воспользоваться рекомендованным Вами Free Pascal. Зашёл для скачивания на (http://freepascal.org/), но скачать версию не смог, т.к. скачивание не доступно (не активно). Подскажите, пожалуйста, где есть доступная для скачивания версия Free Pascal.
Вадим К

Вадим К (статус: Академик), 25 августа 2009, 23:03 [#2]:

Странно, досбокс работал всегда хорошо. Может просто готовить не умеете его к работе:)
Как скачать фрипаскаль. идем на страницу http://freepascal.org/
вверху ищем Download, кликаем. Так как исходники нам не нужны (хотя...), то находим сразу Binaries, чуть ниже Intel/i386 и еще чуть ниже Win32, Win64 and WinCE . Если же у Вас 64битный атлон, то ещё чуть ниже есть ссылка под него. Кликаем по ссылке и попадаем на новую страницу - там будет выбор страны для сервера, с которого будете качать. Скорее всего подойдет Россия. После этого попадаем на страницу, где находим ссылку "fpc-2.2.4.i386-win32.exe (35 MB) contains the installer containing the compiler and tools for win32". Еще чуть ниже есть кросскомпиляторы для 64битной виндовс и WinCE (это КПК к примеру). кросскомпиляторы - это такие компиляторы, которые на одной платформе могут генерировать исполняемые файлы для другой. Например под Линуксом генерировать файлы для Макось - скорее всего не нужны они Вам. Всё, теперь дожидаемся скачки.
Галочка "подтверждения прочтения" - вселенское зло.
VBoris

VBoris (статус: Посетитель), 26 августа 2009, 22:27 [#3]:

FreePascal я скачал. Спасибо.
У меня 64-битный атлон, но я скачал обе версии – и 32-битную (36 МБ) и 64-битную (17 МБ).
Вначале попробовал установить 64-битную. Она установилась, но как-то не полностью(?); в директории bin\i386-win32 был какой-то один exe-файл не запускающий Free Pascal.
Тогда я удалил 64-битную версию и установил 32-битную. Здесь сразу всё пошло. После того как я указал компилятору нужные директории для exe и ppu файлов мой файл из BP 7.0 успешно откомпилировался в среде FreePascal.
Сделал (ctrl+F9) и программа всё просчитала. Потом настал черёд графиков. Но графический режим не пошёл. Получил сообщение: “exited with exitcode 3”.
Я думаю, что дело в инициализации графического режима.
В BP 7.0 он инициализировался следующим образом:
Bd{это буква диска}:=ParamStr(0);
dr:=Detect;
Initgraph(dr,md,Bd+':\bp\bgi');
В среде FreePascal я вместо “bp” прописал:
Initgraph(dr,md,Bd+':\ FPC\2.2.4\bgi');
Но вот где находится модуль “bgi” я не знаю; не нашёл.
Подскажите как быть.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:29
Выполнено за 0.02 сек.