Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2021, 20:02   #1
sergey-2
Новичок
Джуниор
 
Регистрация: 23.06.2021
Сообщений: 7
По умолчанию программы не работают на 64-bit. Посоветуйте - что сделать?

в конце 80-х составил несколько программ на ТР в готовом виде (.exe) для выполнения работ со студентами. Программы включали, в том числе печать LPT на матричный принтер, чтение/запись в файлы, подпрограммы. Раньше возникали вопросы с печатью, но некоторые сборки ХР позволяли печать на матричный (с лазерным не получалось). А недавно обнаружил, что программы не работают на 64-bit. Посоветуйте - что сделать. ТР еше помню (слабо, но осталась литература), а для новых языков уже староват (мне 70). Хотелось бы, что программы работали с W 10 и с матричным принтером.
Спасибо
sergey-2 вне форума Ответить с цитированием
Старый 24.06.2021, 09:19   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Попробуйте поставить виртуальную машину с DOS и пробросить LPT порт.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 24.06.2021, 11:11   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Цитата:
Сообщение от sergey-2 Посмотреть сообщение
Раньше возникали вопросы с печатью, но некоторые сборки ХР позволяли печать на матричный (с лазерным не получалось).
Странно. Если есть драйвер данного принтера, то печатать не должно быть проблем независимо от его "лазерности". Смутно подозреваю, что речь идёт о печати графики? Тогда графический режим печати из программы выполняется на уровне команд принтера (Esc-последовательность).
А если выгрузить графику в .bmp? Картинку-то оно должно распечатывать безотносительно типа принтера. Ес-сно, если установлен драйвер этого принтера.
Ну и радикальный выход: забросить ТР на антресоль и освоить что-нибудь посовременне. Delphi, например - чтобы не отрываться от привычного Паскалевского синтаксиса. Переход прост, как через улицу на зелёный.
-------------------------
Первый раз слышу, что для того, чтобы что-то напечатать, нужны специальные сборки ОС и то лишь для "кошерных" принтеров.

Последний раз редактировалось digitalis; 24.06.2021 в 11:21.
digitalis вне форума Ответить с цитированием
Старый 24.06.2021, 13:17   #4
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

sergey-2, прекрасно понимаете что для Turbo Pascal среда обитания DOS.
Не поверю что о LPT знаете а про DOS не слышали.
Следовательно нужен DOSBox:
Turbo Pascal (With DOSBox) for PC Windows 10 – Download Latest Version
или
Turbo Pascal (With DOSBox)

P. S.
Возник попутный вопрос.
Если используете мат. плату на которой есть LPT-порт, с Windows 10 не тормозит это железо?
Подозреваю что как минимум мешает ограничение по максимально допустимому объему ОЗУ.
I am not a wizard, I am just learning.

Последний раз редактировалось Desc; 24.06.2021 в 13:31. Причина: Добавил P. S.
Desc вне форума Ответить с цитированием
Старый 24.06.2021, 15:24   #5
sergey-2
Новичок
Джуниор
 
Регистрация: 23.06.2021
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Desc Посмотреть сообщение
sergey-2, прекрасно понимаете что для Turbo Pascal среда обитания DOS.
Не поверю что о LPT знаете а про DOS не слышали.
Следовательно нужен DOSBox:
Turbo Pascal (With DOSBox) for PC Windows 10 – Download Latest Version
или
Turbo Pascal (With DOSBox)

P. S.
Возник попутный вопрос.
Если используете мат. плату на которой есть LPT-порт, с Windows 10 не тормозит это железо?
Подозреваю что как минимум мешает ограничение по максимально допустимому объему ОЗУ.
Я понял так: скачиваю Turbo Pascal (With DOSBox); открываю старую программу; перевожу ее в .exe.
Поясню. На занятиях применял 4-6 старых РС (2 очень старых и 2-4 с XP) с печатью на FX 800 (80-х). Если студента устраивают результаты расчетов, то он их печатает. На работе каждый год прошу не выбрасывать старые принтеры и РС. Сейчас ставят новые РС с W 10 (без LPT) и поэтому решил делать так: студент выполняет расчеты; скрин с экрана копирует в файл и потом с ним работает. Но прграммы "не пошли", т.к. 32-bit.
Почему матричный принтер. Обычный результат расчета - это 4-6 строк, а потом следующий результат и так идет лентой. Лазерный печатает 4-6 строк на 1 стр.
sergey-2 вне форума Ответить с цитированием
Старый 24.06.2021, 16:26   #6
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

DOSBox - позволит запускать TP в виртуальной DOS.
По поводу разрядности ОС.
В 64 разрядных ОС есть директории:
Program Files (x86) - для приложений 32 бит;
Program Files - для приложений 64 бит.
Цитата:
В 64-разрядных версиях Windows 64-разрядные приложения устанавливаются в папку Program Files. Однако, 64-разрядные версии Windows также поддерживают 32-разрядные программы, и Microsoft не хочет, чтобы 32-битное и 64-битное программное обеспечение смешивались в одном месте. Таким образом, 32-разрядные программы устанавливаются в папку «Program Files (x86)».

Когда вы запускаете 32-разрядную программу в 64-разрядной версии Windows, уровень эмуляции WOW64 плавно перенаправляет доступ к файлу с «C:\Program Files» на «C:\Program Files (x86)». 64-разрядные программы по-прежнему используют обычную папку Program Files.
Источник: В чём разница между папками «Program Files (x86)» и «Program Files» в Windows

Но в вашем случае проблема не только в разрядности, влияет и отсутствие DOS-эмулятора в операционной системе.

Сохранил скрин и потом с ним работать, зачем издеваться над людьми?
Перепишите исходники, вывод на матричный принтер замените на запись в файл.
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 24.06.2021, 16:34   #7
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Если остались исходники и в них не было прямого обращения к портам, к памяти, то можно попробовать скомпилировать их при помощи FreePascal в режиме совместимости с Turbo Pascal - в начале исходника добавить
Код:
{$mode TP}
Для работы с графикой потребуется небольшая переработка исходника - модули CRT и Graph заменить на WinCRT и WinGraph, взятые http://math.ubbcluj.ro/~sberinde/wingraph/main.html
Эти новые WinCRT и WinGraph перекомпилировать в режиме совместимости Dilphi - в начале исходников добавить
Код:
{$mode Dilphi}
И в собственных исходниках подогнать целые типы переменных под объявления из модулей.

Если LPT так необходим, то тут ничего не поделать - только запуск из DOSBox с пробросом порта LPT (хотя не уверен, что это именно для LPT возможно).
Если производится печать в принтер, то можно попробовать не печатать в сам принтер, а запустив спулер печати, перенаправлять вывод в файл. Спулер печати можно взять по ссылке
lptx http://www.ibiblio.org/pub/academic/...rsx85a/240002/ Судя по описанию, он перехватывает int 17h, но не прямой доступ к порту.


Исходники - большие? Их можно привести? И покажите, как проходит работа студента на небольшом примере. Может быть всё же есть возможность быстрого переноса с небольшими изменениями на FreePascal и заменой вывода в файл вместо принтера.

Последний раз редактировалось FPaul; 24.06.2021 в 17:01.
FPaul вне форума Ответить с цитированием
Старый 24.06.2021, 21:20   #8
sergey-2
Новичок
Джуниор
 
Регистрация: 23.06.2021
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Desc Посмотреть сообщение
DOSBox - позволит запускать TP в виртуальной DOS.
Сохранил скрин и потом с ним работать, зачем издеваться над людьми?
Перепишите исходники, вывод на матричный принтер замените на запись в файл.
Спасибо. Видимо, это лучший совет. Придется записывать данные в 2 файла в разных папках.
Меня от этого сдерживало следующее: студент работает по-разному и поэтому все его результаты (более подробно) приходится записывать в мой отдельный текстовый файл (студент об этом не знает). Этот файл применяю крайне редко - при конфликте или когда студент потерял свои распечатки.

Последний раз редактировалось sergey-2; 24.06.2021 в 21:29.
sergey-2 вне форума Ответить с цитированием
Старый 24.06.2021, 21:29   #9
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Цитата:
а для новых языков уже староват (мне 70)
К чему весь этот переполох? Зачем цепляться за то, что тлен?
Мне немного по более, но освоил Python. Написал свою методичку ...
Для студентов это более полезным будет, да и себя надо держать в тонусе.
digitalis
Цитата:
Ну и радикальный выход: забросить ТР на антресоль и освоить что-нибудь посовременне. Delphi, например - чтобы не отрываться от привычного Паскалевского синтаксиса. Переход прост, как через улицу на зелёный.
В том, что бы забросить TP нет никакого радикализма. Это надо было сделать давно. Все предпосылки для этого проявились сразу, с появлением Windows.
Delphi для ученого заведения? Тут есть проблема с лицензией, но есть Lazarus, можно и Free Pascal.
А как писать на TP приложения с GUI? А как использовать API?
Есть Lazarus, можно и Free Pascal.
Программирование на Python дают во многих школах. Здесь вам и GUI и графика, и ...
Сейчас задания по ЕГЭ Информатика - это Pascal, C++, Python и школьный язык.
Кроме того, с этого года школьники сдают ЕГЭ с обязательным использованием компьютера и одной из сред программирования.
Есть желание работать, вперёд, осваивайте новые технологии и языки, ...

Не цепляйтесь за прошлое. Оно прекрасно, но пока в том, своём времени, а здесь и сейчас нужны другие знания.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 24.06.2021, 21:48   #10
sergey-2
Новичок
Джуниор
 
Регистрация: 23.06.2021
Сообщений: 7
По умолчанию

Цитата:
Сообщение от FPaul Посмотреть сообщение
Если остались исходники и в них не было прямого обращения к портам, к памяти, то можно попробовать скомпилировать их при помощи FreePascal в режиме совместимости с Turbo Pascal - в начале исходника добавить
Код:
{$mode TP}
...
Исходники - большие? Их можно привести? И покажите, как проходит работа студента на небольшом примере. Может быть всё же есть возможность быстрого переноса с небольшими изменениями на FreePascal и заменой вывода в файл вместо принтера.
Спасибо. Уже давно склоняюсь к применению лазерного принтера - записывать 2-4 результата и печатать.
Меня от этого сдерживало следующее: т.к. студент работает по-разному, то все его результаты (в более развернутом виде) приходится записывать в мой отдельный текстовый файл (студент об этом не знает). Этот файл применяю крайне редко - при конфликте или когда студент потерял свои распечатки (иногда при проверке соответствия варианту задания).

Придется записывать данные в 2 файла в разных папках (одна из которых будет моя скрытая).
Скажите FreePascal будет для меня сложен ? Исходная писалась на TP5 или TP6. Последний раз ее немного изменял в 2008 (вот тогда и обнаружил, что старею). Появлялись неверные результаты и пришлось заменить некоторые word (65535) на longint.
sergey-2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с комментариями к строкам написали программы, работают, но не понимаем что написано Alexander_Petrenko Помощь студентам 16 29.06.2018 15:45
помогите с комментариями к строкам написали программы, работают, но не понимаем что написано Alexander_Petrenko Помощь студентам 1 29.06.2018 00:08
помогите с комментариями к строкам написали программы, работают, но не понимаем что написано Alexander_Petrenko Помощь студентам 0 28.06.2018 23:34
Доработка программы java. Посоветуйте что делать ISV-777 Помощь студентам 0 03.11.2011 21:46
Посоветуйте что сделать на выставку zifanchuck Свободное общение 6 18.02.2011 17:32