Apoligies. It was a type but total is correct:
0x49ee + 0xa78 = 0x5466
Some more but still not the good stuff I'm afraid.
When you go to the 5466 address the first four bytes are 14 00 00 00.
The next four bytes are 34 00 00 00 this is the offset to the first display scheme.
Add start address 0x5466 + 0x14 + 0x34 to get 0x54AE.
This is the address of the first hash #. If you add new rules you'll have to change the 34 to accommodate the extra length in rules.
The next four bytes I have no idea.
The next eight bytes are for national and international calls. 0 0011 in Australia
The next section up to 54AE are the actual rules. I can see that some of the information is offsets to the different display schemes (## ##, etc), but I haven't got my head around the actual rules. It looks like there is a rule and if met an offset which points to the display scheme.
Using the default AU rules for disection:
01 00 00 00 09 00 00 00 09 00 00 00 00 00 00 00
04 00 00 00 04 00 00 00 09 00 00 01 1B 00 00 00
01 00 00 00 09 00 00 00 09 00 00 01 0C 00 00 00
It looks like each rule is composed of sixteen bytes broken down into 4 x 4bytes. The last set of 4 bytes is the pointer to the display scheme. In the example above the first rule points to the first scheme( address 54AE + 00), the second to 54AE + 1B and the third to 54AE + 0C.
All ideas are welcome at this stage.
Last edited by spare; 09-18-2008 at 04:46 PM. Reason: Updated logic
spare
How do you think, what mean letters "n" and "c" in numbers format.
And please tell what is domestic and international numbers formats for Austria.
I thinking how to add domestic code for exUSSR (Russia, Belarus and Ukraine), we have domestic number format 8 (0XX) XXXXXXX, where 8 and first 0 (in area code) - is a code for domestic numbers.
"All ideas are welcome at this stage"
timschuerewegen
You are the person in this forum that can resolve this, you did it in FW1.2,FW1.3 and FW1.4
Ok spare , Ok raulb , all correct
36 31 00 00 61 75 00 00 EE 49 00 00----------61 au --
jump to address= 0x49EE + 0xA78 = 0x5466
now we have 3 blocks
Block1 - Header (4 bytes + 4 bytes + 2 strings)
14 00 00 00 34 00 00 00
01 00 00 00 30 00 30 30 31 31 00 00
0x14 = block1 length
0x34 = block2 length
"0","00"
adding 0x14 to 0x34 we have the offset to the beginning of block3
Block2 - match rules
01 00 03 00 ----------> 01= 1 digit match -- 03= 3 rules follows
01 00 00 00 --- 09 00 00 00 --- 09 00 00 00 --- 00 00 00 00
04 00 00 00 --- 04 00 00 00 --- 09 00 00 01 --- 1B 00 00 00
01 00 00 00 --- 09 00 00 00 --- 09 00 00 01 --- 0C 00 00 00
rule1 if (X >= 1 and X <= 9) maxL=9 use=string1(offset 0x00)
rule2 if (X >= 4 and X <= 4) maxL=9 use=string3(offset 0x1B)
rule3 if (X >= 1 and X <= 9) maxL=9 use=string2(offset 0x0C)
note byte 3 of word 3 = 00 sometimes is not zero
note byte 4 of word 3 = 01 flag - generally when string begin with n#
Block3- format strings
23 20 23 23 23 23 20 23 23 23 23 00 28 6E 23 29-# #### ####.(n#)
20 23 23 23 23 20 23 23 23 23 00 6E 23 23 23 20- #### ####.n###
23 23 23 20 23 23 23 00---------------------------------### ###.
string1= # #### ####
string2= (n#) #### ####
string3= n### ### ###
if we add rules or strings then offsets must be recalculated
Frank8
How do you think, what mean letters "n" and "c" in numbers format.
And how to add domestic code 80?
Please
Azzie,
I think "n" add automatically a "0" while byte3_word3 = 1 delete it
about "c" , I see it now !
Hi. I'm trying to edit the file to fit the Philippine Phone Formats.
Previously, our .plist file consisted of these:
<key>ph</key>
<array>
<string>+63 (9##) ###-####</string>
<string>+63 (2) ###-####</string>
<string>+63 (3#) ###-####</string>
<string>+63 (4#) ###-####</string>
<string>+63 (5#) ###-####</string>
<string>+63 (6#) ###-####</string>
<string>+63 (7#) ###-####</string>
<string>+63 (8#) ###-####</string>
<string>0 (9##) ###-####</string>
<string>0 (2) ###-####</string>
<string>0 (3#) ###-####</string>
<string>0 (4#) ###-####</string>
<string>0 (5#) ###-####</string>
<string>0 (6#) ###-####</string>
<string>0 (7#) ###-####</string>
<string>0 (8#) ###-####</string>
<string>00 $</string>
</array>
Tried using the hex editor to edit the new .phoneformat file to include the format above.
Searched for "ph" in the binary field.
Results:
36 33 00 00 70 68 00 00 CD 4C 00 00
Then used hex calculator to add:
0x4CCD + 0xA78 = 0x5745
Jumped to address: 5745
But the result was:
10 00 00 00 00 00 00 00
what does this mean?
Any help would be highly appreciated.
To add rules we have to modify also Header
Block1 - Header (4 bytes + 4 bytes + 4 bytes + 2 strings)
14 00 00 00 58 00 00 00
02 00 00 00 30 00 30 30 31 31 00 00
0x14 = block1 length
0x58 = block2 length (was 0x34)
0x02 = Two block2 sub-blocks (was 0x01)
"0","0011"
Block2_A - match rules
04 00 02 00 ----------> 04= 4 digit match -- 02= 2 rules follows
14 05 00 00 --- 14 05 00 00 --- 0A 00 00 00 --- 28 00 00 00
08 07 00 00 --- 08 07 00 00 --- 0A 00 00 00 --- 28 00 00 00
rule1 if (X >= 1300 and X <= 1300) maxL=10 use=string4(offset 0x28)
rule2 if (X >= 1800 and X <= 1800) maxL=10 use=string4(offset 0x28)
Block2_B - match rules
01 00 03 00 ----------> 01= 1 digit match -- 03= 3 rules follows
01 00 00 00 --- 09 00 00 00 --- 09 00 00 00 --- 00 00 00 00
04 00 00 00 --- 04 00 00 00 --- 09 00 00 01 --- 1B 00 00 00
01 00 00 00 --- 09 00 00 00 --- 09 00 00 01 --- 0C 00 00 00
no differences
Block3- format strings
23 20 23 23 23 23 20 23 23 23 23 00 28 6E 23 29-# #### ####.(n#)
20 23 23 23 23 20 23 23 23 23 00 6E 23 23 23 20- #### ####.n###
23 23 23 20 23 23 23 00 23 23 23 23 20 23 23 23-### ###.#### ###
20 23 23 23 00 ---------------------------------------------###.
string1= # #### ####
string2= (n#) #### ####
string3= n### ### ###
string4= #### ### ###
Bookmarks