Никак не получается прочитать данные из PCI устройства (ПЛИС Altera), подключенного к шине PCI.
В устройстве реализована память размером в 1МБайт. При инициализации, BIOS назначает базовый адрес, который успешно считывается функцией PCI BIOS 1Аh. (Находим устройство, читаем конфигурационное пространство). Работаем в защищенном режиме.
Создается селектор, устанавливается базовый адрес дескриптора, равный прочитанному базовому адресу из конфигурационного поля устройства, устанавливается предел в 1МБайт (или ниже для проверки). При попытке считать байты из памяти командой seg_move() возникает Runtime error 216 at $... Назначаемый базовый адрес всегда $EFC00000. Машина - AMD Geode LX800, x86 совместимая.
Причем изредка программа работает, но максимальное смещение, по которому читаются данные - это $FFF, далее все таже ошибка! Что я должен прочитать я знаю! Устройство рабочее, есть альтернативные программы на visual c и ASM.
Уважаемые специалисты, подскажите как быть. Как читать память устройства, а то все примеры - как работать с буфером видеоадаптера или с областью памяти DOS.
(Применительно к FP для GO32v2 Dos extender. Compiler version 2.0.4)