An accurate Reassembly (byte exact) is unfortunately not possible, there the urpruenglich used compiler (Microsoft C version before 7.0) for the order does not stand :-( ----[ NetMail Folder ]-------------------------------------------------------- On: Sun 19 Dec 1999 16:27 (Rcvd: Sun 19 Dec 1999 21:51) #5 By: Michael Karcher 2:2410/710.9 To: Franz Zimmer 2:2410/710 Re: f:\FD\SECURE\makenl.arj St: Pvt File Rcvd ------------------------------------------------------------------------------ Hallo Franz! In the Attachment the source code is to Makenl. To place, where I from the original deviate, I with "BUG FIXED" comments to it referred. The stringers are simply taken over, therefore it is called cnacled" in MERGE.C in a place "merge;. There is many small source coding files, and if one links her in the following order: BAUDRATE.C CHECK.C GETKEYW.C FTS5_1.C GETPATH.C FTS5_2.C UPCONT.C CLEAN.C CONFIG.C COMMENT.C STRCRC.C APPDIFF.C INSTLST.C OPENLST.C SRCHMAX.C CLEANOLD.C MAKEARC.C MKDIFF.C MAKENL.C VARIABLE.C COPYMOVE.C ADDRESS.C MSGTOOL.C FTS5_3.C MERGE.C PROCESS.C STACK.C OUTPUT.C And the functions from LIB.C and EXECUTE.ASM into a library packs, then the same function sequence as in should emerge the original in the EXE file. The source texts compile at present under Borland C 3,1 errorprotect, but the adjustment to a MSC should require only with identification findfirst and coreleft (_max_avail with ms) changes. Many greetings, Michael Karcher --- FIDOGATE 4.2.3 ----[ NetMail Folder ]-------------------------------------------------------- On: Fri 31 Dec 1999 0:33 (Rcvd: Fri 31 Dec 1999 8:05) #8 By: Michael Karcher 2:2410/710.9 To: Franz Zimmer 2:2410/710 Re: F:\FD\SECURE\newfiles.zip St: Pvt File Rcvd ------------------------------------------------------------------------------ [...] Your test datas go through now all prima, and supply the same result as MAKENL. In addition I regarded times the modified version of MAKENL 2,52. It differs from MAKENL in the following places: 1) The function GET Baud is dead and always supplies "1" back 2) The function GET stringer does not schmeisst indications more largely than 127 more raus, fnf the lines while(*(++workptr) != 0) { if(*workptr < 0) *workptr = '?'; } are dead-put. As this fragment puts close, MAKENL must by the way be translated with signed character. But in the PRJ is that already everything adjusted. The Y2K-Fix seems to function identically. Michael Karcher --- FIDOGATE 4.2.3 ----[ NetMail Folder ]-------------------------------------------------------- On: Thu 13 Jan 2000 23:14 (Rcvd: Fri 14 Jan 2000 22:10) #33 By: Michael Karcher 2:2410/710.9 To: Franz Zimmer 2:2410/710 Re: makenl St: Pvt Rcvd Replied ------------------------------------------------------------------------------ [...] > mkdiff.c: In function `WriteDiffPart': > mkdiff.c:418: warning: int format, long int arg (arg 3) > mkdiff.c:437: warning: int format, long int arg (arg 3) > mkdiff.c:443: warning: int format, long int arg (arg 3) That is because of the 32-Bit-Pointern of GNU C. The original had there far pointers, which can represent as well known only arrays within a segment, and Borland C treated these differences as ints. > openlst.c: In function `searchlistfile': > openlst.c:69: warning: unused variable `extension' Delete simply Michael Karcher --- FIDOGATE 4.2.3 ----[ NetMail Folder ]-------------------------------------------------------- On: Tue 18 Jan 2000 22:55 (Rcvd: Wed 19 Jan 2000 22:01) #42 By: Michael Karcher 2:2410/710.9 To: Franz Zimmer 2:2410/710 Re: MKNLDATA.ZIP St: Pvt Rcvd ------------------------------------------------------------------------------ > It functions plausibly only if into mkdiff.c the formats warned by the GCC > on %d instead of %ld are located. > With %ld I found a D-statement with an enormously large negative numerical > value in addition. There the difference of two (long *) and not two stands long, and in the model small the pointer difference is now times a 16-Bit-Int. It probably goes around: "(long*)(unsigned)*NowRunner OldRunner". Now Runner shows on louder longs. As the first will on one unsigned int converted, there the loss and warning-freely in one (long near *) to be converted to be able. (note! 16-Bit-Zeiger are here * VORRAUSSETZUNG! *). Afterwards the whole is converted into a pointer. OldRunner is likewise (long *), and the difference of two (long *) is ptr_diff_t, which int depending upon desire and mood of the compiler char, long, or otherwise possibly a signed type of integer its none. In the model small that is even a Int, under GNU C long. I became more differ however not so simply me nix you nix portieren, because that has there so an unpleasant characteristic: It buffers Hashwerte of lines. In this buffer either a 31-Bit-Hashwert is located, and the highest bit is set, or there a 16-Bit-Zeiger (near) stands on the Hash array of the other file. This 16 pointer of bit has 0 in the highest bit always. The algorithm looks for linkages of the two files, and examines on the basis the highest bit, whether there already a linkage stands, or not. If one has now a compiler, with which pointers can have set also the highest bit, gives it powerfully to annoyance. > The Diff files differ with identical input data clearly between the original > MakeNl and the version produced here, however only with directly sequential > C-statements (why happens sowas actually at all? e.g. C825+C20+C99 is > identical to C944). He regards in each case sections of the files, since diffing on near heap runs, where straight times for instance 30K is free. Like one on -C112 -C3988 -C2861 +C324 +C4094 +C2543 to see, buffers the original knows 3988 lines, against what my version in the buffer under-gets 4094 lines. If at the buffer end a connection were found, simply one says: "Die last 112 and/or. 324 lines in the buffer were gleich", then contents of the lists to there are forgotten, and loaded the next charge lines. The diff part is even (somewhat meagerly) commentated. Michael Karcher --- FIDOGATE 4.2.3