[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [StrongED] Re: StrongED 4.69b6 available
In message <5374d2466astronged-sub@xxxxxxxxx>
Frank de Bruijn <stronged-sub@xxxxxxxxx> wrote:
> In article <d6eb9a7453.fjgraute@xxxxxxxxx>,
> Fred Graute <fjgraute@xxxxxxxxx> wrote:
> > Yes, the value in R8 causes an unaligned load. Now to find where that
> > value came from and how to fix it. Still don't know too much about the
> > StrongHelp internals so that should be fun.
>
> Yup. Nothing beats trying to figure out other people's code (especially
> if there's Norwegian all over the place...).
The Norwegian isn't such a big problem anymore - after almost 13 years
of StrongED maintenance. Got myself Dutch - Norwegian dictionary very
early on, and these days there is of course Google translate.
A much bigger problem is that there no description of data structures
used. You have to piece it together by reading the code carefully.
> Looking at a pretty old piece of StrongHelp source (version 2.75 from
> 2001), I think R8 is used as the base address of search areas. As these
> areas appear to start at a word boundary, with a guard word and length
> word taking up the first eight bytes, I wonder if the ADD R8,R8,#1 a bit
> before the aborting instruction is correct.
It is a strange bit of code. It seems to look for the guard word and it
apparently can start at any byte in a word. That's why R5 is set to 4
and R8 is increased by one.
Strange thing is that the data structure that's being read from consists
of word size element so why keep it all word-aligned?
Anyway, there is a macro to do unaligned loads (FN_ldr1) and I've used
that instead of loading R5 directly:
Changed
LDR R5,[R8,#dir_1stfree%-len_dirroot%] ; this is what is used.
to
ADD R1,R8,#dir_1stfree%-len_dirroot%
FN_ldr1(pass%,5,1, 14,2)
Hopefully that fixes it.
Cheers,
Fred.
--
StrongED Developer
http://www.stronged.iconbar.com/
--
To unsubscribe send a mail to StrongED+unsubscribe@xxxxxxxxxxxxxx