Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.16;
Скачать: CL | DM;

Вниз

Прошу помочь с переводом сишного кода эмулятора Adlib   Найти похожие ветки 

 
Grom PE ©   (2007-11-08 13:35) [0]

Здравствуйте, мастера.

Я поставил перед собой задачу перевода сишного кода на Delphi, и столкнулся
с проблемами. При переводе у меня получился неработающий код, и я не могу
увидеть, где я допустил ошибку, возможно, из-за недостаточных знаний по C.

Собственно код выполняет роль эмулятора Adlib,
может кто помнит этот характерный FM звук в старых досовских играх.

Я составил программу, переводящую музыку из команд чипа в формат WAV с помощью
эмулятора. Эмулятор есть в двух версиях - DLL, и переведенный PAS.

Версия с DLL работает как положено, а PAS
вылетает с ошибкой Floating-point overflow.

Прилагаю архив со всеми бинарниками, исходниками и файлами для тестирования.
http://grompe.org.ru/files/adlib_problem.rar (44 кб)
Описание файлов там же.

Прошу найти ошибки в PAS-версии, и попытаться добиться ее работоспособности.

На вопрос "А не достаточно ли тебе DLL?" заранее отвечу, что меня интересует
сам перевод с С на Delphi, и я прошу помочь и указать, где у меня ошибка, чтобы
позже уметь перевести без подобных ошибок.

Спасибо всем, кто заинтересуется проблемой.


 
Grom PE ©   (2007-11-10 06:55) [1]

up


 
icWasya ©   (2007-11-10 21:28) [2]

Ну очень много букафф

ну например у Вас в коде полно таких мест
// Not sure:
(*(long *)&((celltype *)c)->amp
должно переводится не
trunc(c.amp)
а так
Integer(c.amp)

Посмотрю ещё


 
icWasya ©   (2007-11-10 21:37) [3]

и ещё
вот это

(long)(adlibreg[i+0xB0])

на паскаль переводится так
trunc(adlibreg[i+$B0])


 
Grom PE ©   (2007-11-11 07:56) [4]

> icWasya ©   (10.11.07 21:37) [3]

Вы что-то не то мне посоветовали.
В случае [2] получится Invalid typecast, а в [3] нечего округлять, adlibreg это же массив байтов..


 
Grom PE ©   (2007-11-12 20:31) [5]

up


 
Grom PE ©   (2007-11-13 20:09) [6]

up


 
Grom PE ©   (2007-11-14 10:29) [7]

Эх.. Что ж за игнор-то такой?


 
@!!ex ©   (2007-11-14 10:33) [8]

> [7] Grom PE ©   (14.11.07 10:29)

Думаешь кому то особо надо перелопачивать твой код?


 
Grom PE ©   (2007-11-14 10:44) [9]

> @!!ex ©   (14.11.07 10:33) [8]

А кому-то особо надо помогать другим? А ведь помогают.


 
@!!ex ©   (2007-11-14 10:46) [10]

> [9] Grom PE ©   (14.11.07 10:44)

Я тоже помогаю другим.
И даже примеры пишу.
Но это не тоже самое, что копаться в чужом коде, да еще криво переведенном.
Переводи по частям?
Перевел часть кода, сравнил с результатм сишным.
Например функцию первеодишь.
перевел первые 10 строчек.
посмотрел как при выполнении на С это выполняется и что лежит в переменных.
сравнил с дельфи и т.д.


 
Skyle ©   (2007-11-14 10:48) [11]

Вопрос неконкретный.


 
Grom PE ©   (2007-11-14 11:02) [12]

> @!!ex ©   (14.11.07 10:46) [10]

Ну да. Совет хороший, спасибо.
Я думал, что "копаться в кривом чужом коде" будет проще, чем переводить с нуля.
Ну что ж.
Так понимаю, что если "вопрос" выше определенной сложности, то на него не отвечают.

> Skyle ©   (14.11.07 10:48) [11]

Не могли бы вы сказать конкретнее, что неконкретно в моем "вопросе"?

P.S. "вопрос" = просьба


 
Думкин ©   (2007-11-14 11:05) [13]

> Grom PE ©   (14.11.07 11:02) [12]

Сложность там вряд ли, а вот заниматься долгим и с непойми чем - многих напрягает.


 
KSergey ©   (2007-11-14 11:13) [14]

> Grom PE ©   (14.11.07 10:29) [7]
> Эх.. Что ж за игнор-то такой?

Так сумма не озвучена чтобы было интересно просматривать весь проект.
Может просто озвучить места где "not sure"?


 
KSergey ©   (2007-11-14 11:16) [15]

> Grom PE ©   (14.11.07 11:02) [12]
> Ну что ж.
> Так понимаю, что если "вопрос" выше определенной сложности,
>  то на него не отвечают.

Не правильное понимание.
Выше определенного объема ответа.

Вы хотите, чтобы кто-то на халяву, используя знания, на получение которых затрачены время и деньги, сел и убил не один час времени копаясь в ваших поделушках и делая работу, которая нужна вам (даже если вы явно за нее денег и не получите). Кому это надо-то??!
Причем вопрос не в деньгах как таковых, о чем тут не раз уже писалось.


 
Grom PE ©   (2007-11-14 11:25) [16]

> KSergey ©   (14.11.07 11:13) [15]

Говоря о сложности, я имел ввиду и время тоже.

> Может просто озвучить места где "not sure"?

Отделить от кода сложно, придется все типы писать. Неужели долго скачать 44 кб и сделать поиск по "not sure"?


 
Grom PE ©   (2007-11-14 11:44) [17]

Никто не говорит, что надо в одиночку "перелопачивать весь код".
Даже за одну найденную ошибку я буду премного благодарен.

Кстати, там 500 строк. Я не знаю, это на многие часы работы?


 
KSergey ©   (2007-11-14 11:58) [18]

> Grom PE ©   (14.11.07 11:44) [17]
> Кстати, там 500 строк. Я не знаю, это на многие часы работы?

Это просто нафиг никому не надо, понимаете?


 
Grom PE ©   (2007-11-14 12:05) [19]

> KSergey ©   (14.11.07 11:58) [18]

Читайте выше. На одну строчку. А о помощи тут уже говорили.


 
Grom PE ©   (2007-11-17 14:35) [20]

Удалено модератором
Примечание: В следующий раз down будет


 
Riply ©   (2007-11-17 14:47) [21]

> [17] Grom PE ©   (14.11.07 11:44)
> Кстати, там 500 строк. Я не знаю, это на многие часы работы?

Разбираясь в чужих исходниках, кстати С-шных, бывало такое,
что на двух-трех строчках кода застревала на дни.
Это не преувеличение. Чтобы понять и разобраться в них приходилось
поднимать целую гору литературы.


 
Grom PE ©   (2007-11-17 15:16) [22]

> Riply ©   (17.11.07 14:47) [21]

Так собственно, я и застрял...
Для знающего человека это, наверное, не много.


 
Riply ©   (2007-11-17 15:49) [23]

> [22] Grom PE ©   (17.11.07 15:16)
> Так собственно, я и застрял...
> Для знающего человека это, наверное, не много.

У тебя скорее всего очень специфичная область и найти
"знающего человека именно в этой области" не так-то и просто.
Поверь моему опыту: если бы дело обстояло не так, то уже давно помогли бы.
Так что, видимо, придется тебе "поднимать целую гору литературы" и разбираться.
Оно и полезнее будет :)



Страницы: 1 вся ветка

Текущий архив: 2007.12.16;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.024 c
1-1187160815
AndrewK
2007-08-15 10:53
2007.12.16
Градиентная заливка строк в DBGrid


15-1195221717
йцукенЫЧ
2007-11-16 17:01
2007.12.16
Как найти компонент?


15-1195094771
Jolik
2007-11-15 05:46
2007.12.16
Работа для программиста...


15-1195422004
Черный Шаман
2007-11-19 00:40
2007.12.16
Поможем российскому Стивену Кингу


15-1195416112
Torry
2007-11-18 23:01
2007.12.16
www.torry.net - 11 лет