Subj : Re: FPC - trying again :( To : All From : Robert AH Prins Date : Mon Jan 09 2012 19:42:46 From: Robert AH Prins On 2012-01-09 16:54, Bart wrote: > Op Mon, 09 Jan 2012 15:50:53 +0000 schreef Robert AH Prins > : > > >> repeat >> if list_ptr^.cday[3] = '#' then<--- 216 >> _hash_tr:= pred(list_ptr^.tr); >> >> list_ptr:= list_ptr^.list_nxt; >> until (_hash_tr<> maxint) or >> (list_ptr = nil); >> > > RTE 216 = GPF I think? > if list_ptr = nil on entry the code will crash > > if (list_ptr<> nil) and (list_ptr^.cday[3] = '#') then > _hash_tr:= pred(list_ptr^.tr) > else writeln('lsit_ptr = nil'); //debug > > See what that comes up with? To be quite honest, I don't see the point in adding extra code to detect something that cannot occur unless there is a failure earlier in the program. What I really need is a clue as to why the "reset(liftin)" fails when I'm running the program inside the IDE. FWIW, full source can be found in "lift32bit.rar" in the Files section of the hitching group on Yahoo! The sources contain two parts, pure Pascal and assemblerized Pascal {$ifdef asm} Input data is in liftdat.rar at the same location. In the FPC version I had to comment out the code in the "write_time" procedure, need to look at the differences in parameters between VP and FPC, VP uses longint's in GetTime, FPC doesn't like them. Other than the fact that the programs are meant to process hitchhike data, they might serve as a prime example as to what can be done using VP's built-in assembler, the assemblerized version of "lift" is around 15k smaller than the Pascal version, which tells you something about the quality of the VP generated code, which is really, really bad. (And the FPC generated code is, as I already mentioned, not a lot better...) Robert -- Robert AH Prins robert(a)prino(d)org --- Internet Rex 2.31 * Origin: The gateway at Omicron Theta (1:261/20.999) .