⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 borland.fix

📁 压缩算法的源代码
💻 FIX
字号:
Notes on patching Borland (binary) executables so they'll understand Unix-style, LF-delimited ASCII files (from Onno van der Linden, c/o Frank vander Linden, vdlinden@fwi.uva.nl).1. The CPP used by TC 2.0 can't handle unix-style (LF-terminated) lines.   The CPP used by BC++ 2.0 can.   The CPP used by BC++ 3.0 can't handle #if statements with unix-style lines.   Fixes for both these problems below (GRR:  offset, new byte, old byte).     Comparing files \TC\CPP.EXE and \TC\CPP.OLD     00004F25: 0D 0A     00005E3D: 0D 0A     00007916: 0D 0A     000079D6: 0D 0A     00007AC1: 0A 0D     0000D8EE: EC F7     0000D8F1: F7 EC     0000D9EE: EC F7     0000D9F1: F7 EC     0000DC80: 0A 0D     0000DC90: 0A 0D     Comparing files \BORLANDC\BIN\CPP.EXE and \BORLANDC\BIN\CPP.OLD     0001D150: 89 75     0001D151: 36 08     0001D152: 30 89     0001D153: 23 36     0001D154: 75 30     0001D155: 04 23     0001D288: 9A 89     0001D289: FF 36     0001D28A: FF 30     0001D28B: 00 23     0001D28C: 00 9A     0001D28E: 0E FF     0001D28F: 30 00     0001D290: 23 00     0001E5A7: 89 8D2. The compilers (tcc 2.0 and bcc 3.0) are both one-pass compilers; i.e.,   cpp.exe isn't used when compiling with tcc or bcc.  The earlier statements   about both cpp's are the same for the builtin preprocesser in the compilers.   To fix the unix-style line stuff for the compilers, apply the fixes below.   I do have something called bpatch.c which reads in the output of fc /b and   changes the executable.  If anyone is too lazy to write it himself, just   send out a mail.     Comparing files TCC.EXE and TCC.OLD     00005E06: BF 88     00005E07: 02 01     00005E0C: 88 BF     00005E0D: 01 02     00006E7C: 0A 0D     00011FF9: 0A 0D     00012059: 0A 0D     00017E6C: 0A 0D     00018181: 0A 0D     000181F6: 0A 0D     00018AC1: 0A 0D     00018B27: 0D 0A     00018BBE: 0A 0D     00018C12: 0A 0D     00018C6A: 0A 0D     0001948A: 0A 0D     000194B7: 0D 0A     00019507: 0A 0D     0001C093: 0A 0D     0001C495: 3C 89     0001C496: 0D 46     0001C497: 74 FC     0001C498: DF 3D     0001C499: FF 0D     0001C49A: 0E 00     0001C49B: 34 75     0001C49C: 50 03     0001C49D: 3C E9     0001C49E: 0A F6     0001C49F: 75 FB     0001C4A0: 03 FF     0001C4A1: E9 0E     0001C4A2: F2 34     0001C4A3: FB 50     0001C4D0: 0A 0D     0001CFA7: 0A 0D     0001CFBA: 0D 0A     0001D007: 0A 0D     0002A13C: 0A 0D     0002A14C: 0A 0D     0002A2B6: EC F7     0002A2B9: F7 EC     0002A3B6: EC F7     0002A3B9: F7 EC     0002A4B6: EC F7     0002A4B9: F7 EC     0002BDC3: 20 21     0002BDC6: 21 20          Comparing files BCC.EXE and BCC.OLD     0002B877: 89 75     0002B878: 36 08     0002B879: 5C 89     0002B87A: 5F 36     0002B87B: 75 5C     0002B87C: 04 5F     0002B9AF: 0E 89     0002B9B0: E8 36     0002B9B1: 56 5C     0002B9B2: DC 5F     0002B9B3: FF 90     0002B9B5: 5C E8     0002B9B6: 5F 51     0002B9B7: 90 DC        Just an addition: the first one was for the cpp.exe's, the recent one is for   the compilers (bcc.exe, tcc.exe).  The first one is a bit redundant because   cpp.exe is hardly ever used.  See it as an attempt to make things complete.3. For those of you who are using NDMAKE45 under MSDOS:   version 4.5 predefines the macro's MAKE and MFLAGS as readonly's.   So there was no way you could use $(MAKE) with ndmake45.   Here are the fc /b's that make things work:     Comparing files MAKE45.EXE and MAKE45.OLD     000019C0: 00 03   # MFLAG     000019DC: 00 03   # MAKE     00007BEA: 0A 7E   # output of make -p     00007BEB: 00 0A   #     Comparing files MAKE45L.EXE and MAKE45L.OLD     0000277E: 00 03   # MFLAG     0000279D: 00 03   # MAKE     0000A6A8: 0A 7E   # output of make -p     0000A6A9: 00 0A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -