maxcodehack wrote:
И чтобы новый fasm работал
Новый fasm не работает по 2-м причинам:
1) в коде есть макрос define, которым программа t2fasm обделывает все функции из полученного *.asm файла.
В новых версиях fasm появилась команда define, которая совпадает с именем макроса и потому компиляция не идет.
По этой причине я в (rev 8129) в подключаемых *.inc файлах заменил макрос define на макрос proc, однако осталась проблема с программой t2fasm.
2) в коде который создает bcc32 имена некоторых меток начинаются со знака $.
А в новых версиях fasm имена меток не могут начинаться со знака $.
Т.е. для компиляции нужно исправить эти проблемы.
Предлагаю такой вариант решения:
Создаем *.asm файл с таким содержанием:
Code:
;Crack for Borland C++ 5.5.1
use32
file 'bcc32.exe':0,0x4a8f
dd 0x90909090,0x90909090 ;fix end proc
db 0xb8
dd 0x4a626b
file 'bcc32.exe':0x4a9c,0x5753-0x4a9c
dd 0x4b2472 ;fix label byte
file 'bcc32.exe':0x5757,0x575a-0x5757
dd 0x4b2472 ;fix proc near
file 'bcc32.exe':0x575e,0x5761-0x575e
dd 0x4b2472 ;fix label word
file 'bcc32.exe':0x5765,0x5768-0x5765
dd 0x4b2472 ;fix label dword
file 'bcc32.exe':0x576c,0x576f-0x576c
dd 0x4b2472 ;fix label qword
file 'bcc32.exe':0x5773,0x5776-0x5773
dd 0x4b2472 ;fix label tbyte
file 'bcc32.exe':0x577a,0x56216-0x577a
db '_' ;fix '$' to '_'
file 'bcc32.exe':0x56217,0xd4400-0x56217
;0x4b2472 - ':',13,10,0
;0x4a626b - 13,10,0
Ложим его рядом с компилятором bcc32.exe и делаем ему кряк, описанный в *.asm файле. Исходный файл bcc32.exe куда-нибудь убираем, чтобы не мешал. Переименовываем получившийся скомпилированный файл в bcc32.exe. После чего компилируем все как обычно, но при этом убираем макрос
macro define x,[link] ... из файла
kos_start.inc .
Может получилось еще сложнее и более накручено, но зато у меня компилируется новым fasm-ом. Кряк компилятору делается одноразово и должен подходить к компиляции разных *.cpp файлов.