TPU
Модератор: Модераторы
TPU
Коллеги !
Помогите начинающему !
Давно написаны программы на ТР, использующие модули Turbo Professional (TPCrt, TPString...).
Понадобилось запустить программы. Они все откомпилированы и запуск их через DOSBox не был удачным. Пишет ошибку "Runtime 003 ...". Маленькие программы (без модулей Turbo Professional) запускает нормально.
Решил попробовать перекомпилировать через FPC (исходники есть), а он не находит модули Turbo Professional. Куда их поместить и как подсоединить ?
Спасибо за помощь !
Помогите начинающему !
Давно написаны программы на ТР, использующие модули Turbo Professional (TPCrt, TPString...).
Понадобилось запустить программы. Они все откомпилированы и запуск их через DOSBox не был удачным. Пишет ошибку "Runtime 003 ...". Маленькие программы (без модулей Turbo Professional) запускает нормально.
Решил попробовать перекомпилировать через FPC (исходники есть), а он не находит модули Turbo Professional. Куда их поместить и как подсоединить ?
Спасибо за помощь !
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Re: TPU
p927, для начала, если есть тексты, то их надо преобразовать в проект (набор модулей) fpc. Потом добавить как зависимость проекта. Но, скорее всего, достаточно будет подключить только соответствующие модули самого fpc. Возможно, что они будут отличаться. Не забудь модуль DOS. Все же поддержка разных платформ не запускается с нуля.
Ну и попробуй понять где именно возникают ошибки.
Ну и попробуй понять где именно возникают ошибки.
Re: TPU
p927 писал(а):Пишет ошибку "Runtime 003 ...".
Если я правильно помню, то это означает "Путь не найден". Чего-то у Вас там нет.
p927 писал(а):Решил попробовать перекомпилировать через FPC (исходники есть), а он не находит модули Turbo Professional. Куда их поместить и как подсоединить ?
А модули TP в виде исходников? Если нет, то можно сразу забыть про них - FPC никогда их не найдёт, точно так же, как кошка не найдёт еду, если ей в качестве еды предлагают гречневую кашу из которой не пахнет мясом.
Если же Ваши TP-модули в виде исходников, то просто положите их рядом со своей программой, а потом пару недель исправляйте ошибки, которые при компиляции будет выдавать Вам FPC.
Если не секрет, зачем Вам такая совершенно засушенная старина, как TurboProfessional для TurboPascal?
Re: TPU
Куда их поместить и как подсоединить ?
Поместить в ту же самую директорию, где лежит основная программа, либо подсоединить через -Fu, например -FuC:\tppro\
Re: TPU
p927, насколько я помню, turbo professional из исходников не удавалось полностью собрать до рабочего состояния уже 7-м TurboPascalем - там перенасыщение ассемблеровским кодом, завязанным на внутреннюю структуру объектов. TpString, впрочем от всего остального можно достаточно легко отделить.
Re: TPU
1 Насколько я помню FPC умеет кросс-компилировать для Дос .(впрочем про новые версии не уверен )
2 Возможно старая проблема CRT.TPU (и ее аналогом из Turbo Professional ) лечится заменой пропаченной версией или замедлением дос бокса .
3 Turbo Professional достаточно хитрая "жлезячная"(аппаратно зависимая ) библиотека с которой возможны разные сюрпризы
4 Вместо урезанного "турбо паскаля" стоит попробовать более полный Борланд паскаль .
5 Turbo Professional зависит от версии паскаля (по моему последний был к 4-й версии, а дальше был Object Professional ).
6 Можно найти образ дискеты "честного Дос" и загрузится с него в дос-боксе (Возможность есть правда придется повозится с подготовкой образа винчестера )
ЗЫ
Что за программа ? Сомневаюсь что это что-то секретное так что просто выложи вместе со своим Turbo Professional попробую собрать .
Добавлено спустя 12 минут 35 секунд:
Извини за занудство, но в turbo professional не было объектов ты путаешь с object professional.
Но разумеется ты прав, надежнее всего запустить честную виртуалку (а не "хитрый" досбокс )с честным аутентичным ДОСом и подходящей версией паскаля . (Правда возможно придется искать "тормозилку" для CRT.TPU. Кстати от версии ДОС-а тоже кажется что-то как-то зависло )
2 Возможно старая проблема CRT.TPU (и ее аналогом из Turbo Professional ) лечится заменой пропаченной версией или замедлением дос бокса .
3 Turbo Professional достаточно хитрая "жлезячная"(аппаратно зависимая ) библиотека с которой возможны разные сюрпризы
4 Вместо урезанного "турбо паскаля" стоит попробовать более полный Борланд паскаль .
5 Turbo Professional зависит от версии паскаля (по моему последний был к 4-й версии, а дальше был Object Professional ).
6 Можно найти образ дискеты "честного Дос" и загрузится с него в дос-боксе (Возможность есть правда придется повозится с подготовкой образа винчестера )
ЗЫ
Что за программа ? Сомневаюсь что это что-то секретное так что просто выложи вместе со своим Turbo Professional попробую собрать .
Добавлено спустя 12 минут 35 секунд:
SSerge писал(а):p927, насколько я помню, turbo professional из исходников не удавалось полностью собрать до рабочего состояния уже 7-м TurboPascalем - там перенасыщение ассемблеровским кодом, завязанным на внутреннюю структуру объектов. TpString, впрочем от всего остального можно достаточно легко отделить.
Извини за занудство, но в turbo professional не было объектов ты путаешь с object professional.
Но разумеется ты прав, надежнее всего запустить честную виртуалку (а не "хитрый" досбокс )с честным аутентичным ДОСом и подходящей версией паскаля . (Правда возможно придется искать "тормозилку" для CRT.TPU. Кстати от версии ДОС-а тоже кажется что-то как-то зависло )
Re: TPU
Alex2013 писал(а):1 Насколько я помню FPC умеет кросс-компилировать для Дос .
Там проблема не в этом. Кросскомпиляция это совсем другая песня. Насколько я помню древнюю историю Паскаля (
Там и правда, ассемблера хоть одним местом ешь. И весь этот ассемблер рассчитан на:
- 16 бит;
- адресацию база+смещение.
поэтому что там может понадобиться в сегодняшнем программировании - тайна покрытая мраком. Тем более, что нынешний FPC, по сравнению с TurboPascal, позволяет делать очень много не лазая в какие-то сторонние коды.
Re: TPU
Alex2013
Turbo Professional imho кончился на версии компилятора 5.5 (или 5.0), ни шестерка, ни семерка его не могли в рабочем виде пересобрать - валились как на отличиях синтаксиса, так и на ассемблере. И да, для каждой версии компилятора он действительно свой.
под "объектами" мною подразумевалось внутреннее представление данных и структур в памяти.
Исходя из этого - если используются модули TP работы с huge arrays, или что еще хуже, с менюшками, то под fpc это загнать нереально. Проще переписать заново.
"условно независимые" части библиотеки, типа tpString - конечно в принципе можно выдрать из общего объема, но они опять таки основаны на модели строк "старых turbo pascalей".
Добавлено спустя 8 минут 35 секунд:
Кстати, для запуска программ, с прилинкованными модулями тех же самых массивов, мог требоваться dos ems memory extender, virtualbox его вроде бы не эмулирует.
Turbo Professional imho кончился на версии компилятора 5.5 (или 5.0), ни шестерка, ни семерка его не могли в рабочем виде пересобрать - валились как на отличиях синтаксиса, так и на ассемблере. И да, для каждой версии компилятора он действительно свой.
под "объектами" мною подразумевалось внутреннее представление данных и структур в памяти.
Исходя из этого - если используются модули TP работы с huge arrays, или что еще хуже, с менюшками, то под fpc это загнать нереально. Проще переписать заново.
"условно независимые" части библиотеки, типа tpString - конечно в принципе можно выдрать из общего объема, но они опять таки основаны на модели строк "старых turbo pascalей".
Добавлено спустя 8 минут 35 секунд:
Кстати, для запуска программ, с прилинкованными модулями тех же самых массивов, мог требоваться dos ems memory extender, virtualbox его вроде бы не эмулирует.
Re: TPU
Vadim писал(а):Там проблема не в этом. Кросскомпиляция это совсем другая песня. Насколько я помню древнюю историю Паскаля ( ) TurboProfessional принципиально не работал ни в Windows режиме, ни в досовском защищённом.
Это ерунда ... разумеется сами программы сейчас только в дос-боксе(или на виртуалке и то не на всякой и с настройками ) запускаются ...
Другое дело СОБРАТЬ рабочий exe-шникк из исходников .
Vadim писал(а):ам и правда, ассемблера хоть одним местом ешь. И весь этот ассемблер рассчитан на:
- 16 бит;
- адресацию база+смещение.
поэтому что там может понадобиться в сегодняшнем программировании - тайна покрытая мраком. Тем более, что нынешний FPC, по сравнению с TurboPascal, позволяет делать очень много не лазая в какие-то сторонние коды.
Асемблер в первых версиях Turbo Professional-а был натуральный TASM (через линковку с obj-файлами ) так что тупо перетащить исходники T-Pro на FPC это "как карты лягут" ... Кстати интересно Object Professional имел совместимость "снизу верх" с Turbo Professional? Если да то было бы привлекательно перевести программу на него ...
И вообще насколько я помню в реальных программах из Turbo Professional использовали едва-ли с десяток процедур и функций ( меню, фреймы, ФастВрайт... ) Так что переписать их при своевременном уровне программирования нет никаких особых проблем . (Я как-то вполне успешно портировал прикладной код с Turbo Vision в Дельфи что по моему сложнее чем написать "эмулятор Turbo Professional" для конкретной программы )
Добавлено спустя 15 секунд:
Vadim писал(а):Там проблема не в этом. Кросскомпиляция это совсем другая песня. Насколько я помню древнюю историю Паскаля ( ) TurboProfessional принципиально не работал ни в Windows режиме, ни в досовском защищённом.
Это ерунда ... разумеется сами программы сейчас только в дос-боксе(или на виртуалке и то не на всякой и с настройками ) запускаются ...
Другое дело СОБРАТЬ рабочий exe-шникк из исходников .
Vadim писал(а):ам и правда, ассемблера хоть одним местом ешь. И весь этот ассемблер рассчитан на:
- 16 бит;
- адресацию база+смещение.
поэтому что там может понадобиться в сегодняшнем программировании - тайна покрытая мраком. Тем более, что нынешний FPC, по сравнению с TurboPascal, позволяет делать очень много не лазая в какие-то сторонние коды.
Асемблер в первых версиях Turbo Professional-а был натуральный TASM (через линковку с obj-файлами ) так что тупо перетащить исходники T-Pro на FPC это "как карты лягут" ... Кстати интересно Object Professional имел совместимость "снизу верх" с Turbo Professional? Если да то было бы привлекательно перевести программу на него ...
И вообще насколько я помню в реальных программах из Turbo Professional использовали едва-ли с десяток процедур и функций ( меню, фреймы, ФастВрайт... ) Так что переписать их при своевременном уровне программирования нет никаких особых проблем . (Я как-то вполне успешно портировал прикладной код с Turbo Vision в Дельфи что по моему сложнее чем написать "эмулятор Turbo Professional" для конкретной программы )
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Re: TPU
Alex2013, а смысл? Наверняка ведь где-то что-то глюканет и придется переписывать все.
Re: TPU
Просто все зависит от программы (точнее от степени интеграции с Turbo Professional )
Зачем ? Бывает переписать труднее чем адаптировать. Например я встречал огромные (но при этом все еще полезные ) программы на фортране "которые проще убить чем переписать" (В наличии только листинг - рулон распечатки получается в полкило весом .) + математика + чисто фортрановские заморочки с вводом-выводом (хорошо хоть формат данных полностью текстовый и можно было нормально фронтенд накатать )
Зачем ? Бывает переписать труднее чем адаптировать. Например я встречал огромные (но при этом все еще полезные ) программы на фортране "которые проще убить чем переписать" (В наличии только листинг - рулон распечатки получается в полкило весом .) + математика + чисто фортрановские заморочки с вводом-выводом (хорошо хоть формат данных полностью текстовый и можно было нормально фронтенд накатать )
Последний раз редактировалось Alex2013 09.04.2019 10:25:47, всего редактировалось 1 раз.
Re: TPU
Alex2013 писал(а):чисто фортрановские заморочки с вводом-выводом
А Вы с Фортраном то давно общались?
Re: TPU
Vadim писал(а):Alex2013 писал(а):чисто фортрановские заморочки с вводом-выводом
А Вы с Фортраном то давно общались?Нет там никаких заморочек. Весь вывод можно парой движений пальцев в файл перенаправить. Собственно как и ввод...
Разумеется, (именно так и делали ) просто проблема в том что форматированный вывод и ввод (в реально старых программах) реализован настолько "оригинально" что разобраться в нем не будучи регулярным пользователем фортрана достаточно тяжело (один оператор FORMAT чего стоит
Зы
Как я понимаю "троллейбус идет без кондуктора" ....
Re: TPU
Alex2013 писал(а):(один оператор FORMAT чего стоит)
Сишники свой формат вывода как раз на основе Фортрана делали. И вроде никто не плачет по этому поводу...
По-моему как раз FORMAT в Фортране мало изменился, потому что ничего такого особого в выводе\вводе не поменялось.
Я как-то раз долго искал, как в Фортране преобразовать число в строку. Уже весь на нервы извёлся - нету таких функций как в Паскале и хоть ты тресни. Потом оказалось, что это просто делается как раз через форматированный вывод...
Alex2013 писал(а):Как я понимаю "троллейбус идет без кондуктора" ....
Кондуктор, увидев столь бурное обсуждение, решил своими нервами не рисковать...
Re: TPU
Угу ... что-то типа этого
...описанное в другой части программы (да еще и с 10-тю переназначениям - ага, типа память экономят )... Нет разобраться разумеется можно... но как "приятно" все это переписывать в паскаль... нормальными словами не предать !
CHARACTER(LEN=30) :: Format999
Format999 = "(5X, I5.2, F10.3, A, ES14.7)"
...описанное в другой части программы (да еще и с 10-тю переназначениям - ага, типа память экономят )... Нет разобраться разумеется можно... но как "приятно" все это переписывать в паскаль... нормальными словами не предать !
