Ошибка при компиляции (или не полная совместимость с TP)

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ошибка при компиляции (или не полная совместимость с TP)

Сообщение alexey_k » 24.03.2008 14:09:04

Здравствуйте!

Я скачал последнюю версию FreePascal 2.2.0, и попытался откомпелировать исходник http://www.sources.ru/pascal/graph/vesa256.zip. Он предназначен для работы с VESA в реальном режиме, но компилятор выдал мне ошибку тут:
Код: Выделить всё
{the CRTC port address}
  CRTCPort           :WORD ABSOLUTE 0:$463;


vesa256.pas(615,38) Fatal: Syntax error, ";" expected but ":" found
vesa256.pas(0) Fatal: Compilation aborted

хотя TurboPascal 7 откомпелировал это на ура.

Но проблема TP в том, что он автоматически линкует программу в EXE, а мне нужен чистый бинарик (ос-независимый, т.к. я не использую стандартные библиотечные ф-ии)...

Режим совместимости с Turbo Pascal тоже не помог =(

В чем может быть дело?

Зарание спасибо![/i][/code]
alexey_k
незнакомец
 
Сообщения: 3
Зарегистрирован: 24.03.2008 13:58:38

Сообщение Иван Шихалев » 24.03.2008 14:17:45

Указание абсолютных адресов памяти невозможно, поскольку Free Pascal компилирует только для защищенных режимов работы.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Сообщение alexey_k » 24.03.2008 14:20:14

тогда не моглибы вы подсказать компилятор для реального режима (ну кроме TP), с помощью которого можно получить нелинкованный бинарик?
alexey_k
незнакомец
 
Сообщения: 3
Зарегистрирован: 24.03.2008 13:58:38

Сообщение SAK » 25.03.2008 21:28:56

Компилятор тут не причём. Реальный режим и независимость от ОС вещи взаимоисключающие. Все современные ОС работают в защищенном режиме процессора. DOS программы под Windows работают в виртуальном режиме. При этом для них эмулируются многие функции MS-DOS и BIOS. В Вашем варианте используется прямое обращение к области данных BIOS и то не совсем корректно (формально правильный адрес $40:$63) это может работать только в ОС которые будут эмулировать эту область памяти для DOS программы.
Любые обращения к аппаратным устройствам в защищённом режиме происходят с разрешения или под управлением ОС.
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru