Всем привет! Пару лет тут не был. Есть у меня MS-DOS программа, которая исправно работает на старом компьютере, но не запускается больше нигде. Причем непонятно, то ли это защита от копирования, то ли просто что-то не так. К компьютеру подключен матричный принтер в LPT порт. Написана она на turbo basic, пытаюсь отлаживать в dosbox, собранным с heavydebug, отлаживать неудобно. В turbo debugger она не запускается. Ошибка одинаковая что в dosbox, что в виртуальной машине с dos(образ копировали acronis с винчестера на компьютере, на котором работает программа). Программа работает на том старом компьютере с другим винчестером, так что возможно, если это все-таки защита от копирования, читает данные из bios(дату производства, или что-то подобное). Чем лучше отлаживать? В аттаче программа, их почему-то две, запускать нужно lpm.exe, вроде. "Start 0/1" жмем 1, и "Standard settings 0/1" тоже 1.
Кстати, под dos были какие-то пакеры? IDA при загрузке ругается, что probably packet file, или это turbo basic генерирует такую кучу говна? Наверняка кто-то из здешних ломал ms-dos программы, чем их удобно отлаживать? Пришлось патчить dosbox, иначе он вообще вылетал на отладке, да и сейчас временами виснет, очень неудобно.
HiEndsoft, не, в запросы не надо, непонятно, защита это или нет.
Ранг: 1053.6 (!!!!), 1078thx Активность: 1.06↘0.81 Статус: Участник
Создано: 19 февраля 2012 14:41 · Поправил: reversecode · Личное сообщение · #4
basic это такой найдите компилятор и соберите пример
cup386 найди и поиграйся с ним, если там есть пакер она его снимет ну и в ней же и отлаживать можно, только нужен реал CPU а не емуляция так что отлаживать только под реал DOS
Ранг: 72.1 (постоянный), 30thx Активность: 0.05↘0 Статус: Участник
Создано: 19 февраля 2012 17:04 · Поправил: yagello · Личное сообщение · #6
ValdikSS пишет: Кстати, под dos были какие-то пакеры? Вот и выросло поколение... Pklite, Diet, LzExe, WWPack, AinExe и еще 100500 штук разных не считая защит. Файл не пакованный, родной турбовасиковский.
Cup386 /1/d может и под виндой работать, но зачем? проще действительно досовый TD.EXE взять.
sendersu пишет: и где же ета ошибка? код, строка, сообщение, лог в файле... Critical error 5 -25036, появляется на экране.
yagello У меня линукс, использую dosbox и vmware с досом. В отладчике cup386 брейкпоинты не срабатывают(по крайней мере под досбоксом), а turbo debugger не запускает программу.
yagello пишет: А что это за штука? Телескопом управлять, что ли? Не знаю
yagello пишет: Интересное, блин, кино, кто-то за это 30000 рубасов хочет заплатить Так и есть, нашел на фрилансе. Если кто-то заломает до меня - милости прошу. Я в ответе к заказу так и написал. Я все еще не уверен, что это именно защита. В виртуальной машине отладка должна работать?
Исходя из постановки ОРИГИНАЛЬНОЙ задачи, программа работает в реал-моде - раз, на очень старом железе - два. И может вообще не работать на современных компах хотя бы из-за кривого RTL турбо-васика (ну была ж бага в RTL Турбо Паскаля с Runtime error 200) либо в виртуальном режиме процессора, фиг знает, чего ей надо внутри.
Кстати, борландовский td.exe валится на моменте перехвата векторов прерываний 0-4, кажись. Можно еще deglucker попробовать. На всякий случай.
Декомпилятора Турбо Бейсика не существует. Разбираться с его виртуальной машиной и байткодом - думаю задача перевалит за 30 кил. А оно того стоит? Может заказчикам стоит сменить постановку вопроса.
Ранг: 237.0 (наставник), 20thx Активность: 0.13↘0 Статус: Участник sysenter
Создано: 21 февраля 2012 00:02 · Поправил: HiEndsoft · Личное сообщение · #13
ValdikSS пишет: запускать нужно lpm.exe, вроде крутой подход к зарабатыванию килобакса 01:35D2 out 61,al и т.д. - вывод супер-мелодии в системный динамик после нажатия Space после ошибки Прога вроде чем-то через com-порт управляет, судя по всему что-то с линзами связаное.
Ранг: 72.4 (постоянный), 33thx Активность: 0.05↘0.03 Статус: Участник
Создано: 21 февраля 2012 16:46 · Поправил: ValdikSS · Личное сообщение · #16
Да, я видел, что она обращается к ком-портам, но она работает без какого-либо подключенного оборудования на оригинальной машине. К этой машине подключен только принтер в lpt, но и без него она работает. Эмулирую оба com-порта и lpt в виртуальной машине - безрезультатно. Машина, кстати, действительно древняя - 386 и 1мб оперативки. Ломает ее, похоже, 3 человека.
HiEndsoft пишет: запускать нужно lpm.exe, вроде крутой подход к зарабатыванию килобакса Там lpm.exe и lpc.exe. Отличия, как я понял, только визуальные. По умолчанию на компьютере запускают lpm.exe.
OKOB пишет: Пора к автору обратиться. http://www.studiumplus.de/wps/splus/ma/dat/studiumplus/Jan_Pesek/ Спасибо большое, а как автора нашли? Там строки в программе были? Значит невнимательно я смотрел. Почта не работает, которая там указана, сейчас попробую позвонить и погуглить еще.
Короче по скринам видно что для передачи данных используется старый чип для COM порта,марки8250 внём очень много было глюков и чтобы их устранить испoльзовалось низкоуровнивое программирование на уровне BIOS
----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.