Hi
Now I try translate texts in kernel.bin. Sometimes I must write a few bytes more than original english text, so I must know, where are the pointers to all text' section.
So I search... and I can't find base to all of this
.
First: from 04h to E0h (end at E1h) - there is pointers. I divide this onto 2 groups:
A - from 04h to 7Ch - these pointers has an adress to another pointers' sections, which are have adresses to texts.
B - from 80h to E0h - these pointers show adresses to texts' sections, who is analogical to pointers' sections.
Example:
04h shows pointers' section to texts' section which adress is on 80h;
08h - 84h;
0Ch - 88h, etc.
First pointer on A group is E4 00. So there is starting first pointer section. And here problem begins...
At E4h I see FF FF FF ........ - It's not the pointers to texts.
So I must search. At 80h I have 08 4E. Following to this adress I see first text - Attack. I start calculate and I see - second pointer is 7 bytes after first (Attack with equipped weapon). First is always 00 00, so second will be 07 00. Next text is Magic - its 32 bytes after beginning so the pointer of this will be 20 00. Next pointer must be 26 00.
So I have first 4 pointers: 00 00, 07 00, 20 00, 26 00. I moved onto the E4h and I start search.
At ECh I have 00 00 and 07 00 - first two pointers. Next I see FF A0 54 00 - it's not the pointers. At F4h I have 20 00 26 00 - so it's the pointers.
So there is: 4 bytes of pointers, jump 4 bytes forward and next 4 bytes of pointers. And that's it to the end of this section.
Second section - I try similarly - but it's not the same
Text is start on 5188h and the section of pointers is on 21Ch. Let's see on 5188h:
First four pointers are 00 00, 05 00, 1B 00 and 20 00.
At 21Ch - I must search 00 00 05 00...
Yes - I see it on 258h. 4 bytes and lot's non-interesting stuff :weep: . Next pointers on 294h so its 56 bytes full of something. I read 1B 00 20 00 and again jump 56 bytes... (to 36 00 3D 00) and this 'jumps' to the end of section.
At another section I have even 132 bytes between this pointers and at every section value of this jump has different. Why? When I can check how many bytes I must jump? There is some rule to check this?
Please help me (and sorry about my English)