программа для DOS

Вопросы программирования и использования среды Lazarus.

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

Re: программа для DOS

Сообщение Vadim » 22.07.2011 16:03:45

Velial
До понедельника подождёте? Я сечас подумаю маленько. В понедельник приеду, тогда Вам расскажу, хорошо? ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: программа для DOS

Сообщение Сквозняк » 23.07.2011 02:57:31

Если программа не содержит ничего лазарусного, то не проще-ли писать её прямо из под доса в редакторе fp? Не потребуется никакой кросскомпиляции. Есть и 32 битные версии дос, например полученные при помощи загрузочной дискеты от Win95, FAT32 оттуда видно.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

Re: программа для DOS

Сообщение Mr.Smart » 23.07.2011 05:55:42

Сквозняк как связаны разрядность кода и файловая система?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: программа для DOS

Сообщение Сквозняк » 23.07.2011 12:54:21

Прямой связи нет, но кроме MS DOS 7 и FreeDos были и другие версии. В PC DOS 7 даже начали пилить многозадачность. Виндовс 95 сколько битный? Вот тебе ссылка на краткую инфу по досам http://ru.wikipedia.org/wiki/DOS А конкретно про связь разрядности и фс, так в 32 разрядной системе, по сравнению с 16 разрядной, проще устроить быстрый доступ к большим адресам дискового пространства. У FAT 16 пространство не больше 2 ГБ, а у Fat 32 его уже так много, что пользователю даже не нужно знать максимальную величину. Но минздрав очень не рекомендует писать из под доса или WIN XP (без сервиспаков) на фатовские адреса свыше 100-120 Гб - испортится информация на разделах, да и сами разделы будут пропадать. У меня так было, думал на вирус, а оказалось хрюша адреса попутала.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

Re: программа для DOS

Сообщение Velial » 24.07.2011 12:16:16

Vadim
Подожду.

Сквозняк писал(а):Если программа не содержит ничего лазарусного, то не проще-ли писать её прямо из под доса в редакторе fp?

Можно конечно плюнуть и реализовать например на том же TP, но хотелось бы решить проблему, а не обходить ее.
Velial
новенький
 
Сообщения: 36
Зарегистрирован: 02.07.2010 21:23:11

Re: программа для DOS

Сообщение Vadim » 25.07.2011 12:34:52

Итак, "бархатный путь" компиляции досовских (сиречь go32v2-ских) программ в Lazarus'е. :)
1. Нужно скачать досовский дистрибутив, который на ftp-шке лежит в каталоге GO32V2. Дистрибутив должен быть той же версии, что и уже установленный виндовый компилятор. Это важно.
2. Просмотреть все zip'ы дистрибутива и там, где встретился каталог UNITS, распаковать его в то же место, где стоит виндовый компилятор. Теперь в каталоге UNITS должно лежать два подкаталога - I386-WIN32 и GO32V2.
3. Из бинарников нужен будет только досовский линковщик - ld.exe. Распаковать его в тот же каталог, где лежит компилятор (..\bin\i386-win32\) с одновременным переименованием его в I386-GO32V2-LD.exe. Это важно!!! Иначе затрёте виндовый линковщик, у которого то же название.

В принципе, это всё. Теперь нужно только в параметрах проекта выбрать ОС назначения - go32v2 и виндовый компилятор правильно всё откомпилирует, а вот окончательную сборку будет проводить новый линковщик - i386-go32v2-ld.exe.
Для того, чтобы программа работала в досе, нужен будет ещё дополнительный файл, драйвер DPMI - cwsdpmi.exe. Возможно и ещё какой-нибудь файл потребуется, мне просто не на чем проверить, но если ещё что-то нужно будет, то выскочит сообщение при запуске, посмотрите потом этот файл в досовском дистрибутиве.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: программа для DOS

Сообщение Velial » 25.07.2011 15:37:45

Vadim
Скачал go32v2.
Распаковал units в C:\lazarus\fpc\2.4.2\units\go32v2 .
Скопировал ld.exe в C:\lazarus\fpc\2.4.2\bin\i386-win32\I386-GO32V2-LD.exe
в параметрах компилятор C:\lazarus\fpc\2.4.2\bin\i386-win32\fpc.exe
в свойствах проекта Операционная система - go32v2
нажимаю ОК и получаю
Изображение

После этого пытаюсь скомпилировать проект и получаю всё ту же ошибку "project1.lpr(1,1) Fatal: Can't find unit system used by project1"

Что я делаю не так?

P.S. lazarus 0.9.30 FPC 2.4.2 go32v2 2.4.2
Velial
новенький
 
Сообщения: 36
Зарегистрирован: 02.07.2010 21:23:11

Re: программа для DOS

Сообщение Vadim » 25.07.2011 15:41:52

Velial
1. Вы скачали версию 2.4.2 или 2.4.4?
2. Перечислите первые пять названий каталогов в C:\lazarus\fpc\2.4.2\units\go32v2.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: программа для DOS

Сообщение Velial » 25.07.2011 15:54:45

1. 2.4.2
2. все
chm
fcl-base
fcl-db
fcl-fpcunit
fcl-image
fcl-json
fcl-net
fcl-passrc
fcl-process
fcl-registry
fcl-res
fcl-xml
fpmkunit
fppkg
fv
gdbint
graph
hash
lexyacc
libgd
pasjpeg
paszlib
regexpr
rtl
symbolic
unzip
Velial
новенький
 
Сообщения: 36
Зарегистрирован: 02.07.2010 21:23:11

Re: программа для DOS

Сообщение Vadim » 25.07.2011 16:36:58

В каталоге C:\lazarus\fpc\2.4.2\bin\i386-win32\ найдите файл fpc.cfg и найдите в нём строки, которые начинаются с -Fu.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: программа для DOS

Сообщение Velial » 25.07.2011 16:38:42

-Fuc:\lazarus\fpc\2.4.2/units/$FPCTARGET/httpd13/
-Fuc:\lazarus\fpc\2.4.2/units/$FPCTARGET/httpd20
-Fuc:\lazarus\fpc\2.4.2/units/$FPCTARGET/httpd22
-Fuc:\lazarus\fpc\2.4.2/units/$FPCTARGET/
-Fuc:\lazarus\fpc\2.4.2/units/$FPCTARGET/*
-Fuc:\lazarus\fpc\2.4.2/units/$FPCTARGET/rtl
Velial
новенький
 
Сообщения: 36
Зарегистрирован: 02.07.2010 21:23:11

Re: программа для DOS

Сообщение Vadim » 25.07.2011 16:54:11

Velial
Поставьте вот эту строку:
-Fuc:\lazarus\fpc\2.4.2/units/$FPCTARGET/rtl
на первое место.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: программа для DOS

Сообщение Velial » 25.07.2011 16:59:15

не помогло
Velial
новенький
 
Сообщения: 36
Зарегистрирован: 02.07.2010 21:23:11

Re: программа для DOS

Сообщение Vadim » 25.07.2011 17:05:09

Судя по ошибке, не находятся досовские модули, либо модули не той версии, что и компилятор. С путями вроде всё ок, модули Вы мне написали той же версии, что компилятор. Моя фантазия иссякла. :(
Если что-нибудь придумаю, напишу Вам.

Добавлено спустя 2 минуты 2 секунды:
Проверьте каталог C:\lazarus\fpc\2.4.2\units\go32v2\rtl\, не пустой ли он. system.ppu там есть?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: программа для DOS

Сообщение Velial » 26.07.2011 07:44:52

C:\lazarus\fpc\2.4.2\units\go32v2\rtl\ не пустой, system.ppu есть
Velial
новенький
 
Сообщения: 36
Зарегистрирован: 02.07.2010 21:23:11

Пред.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru