Перейти к содержанию
Old Phone Forum
  • Вход

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Рекомендуемые сообщения

вот что удалось накопать по прошивке от X140 по базам T9

 

за работу с базой отвечает непосредственно 6 функции

SetDataOffset ReadByte, ReadWord и ReadNibble - последовательное чтение и GetByte, GetLong - чтение по адресу

Единицей информации в базе является полбайта и SetDataOffset адресует к полу байту. для чтения 0x20 байта выполняется следующее

r0= указатель

r1=0x40

SetDataOffset

r0= указатель

ReadByte

получили в R0 значение 0x20 байта.

 

примерное описание функций

void SetDataOffset(word handle, word index)

word Read....(word handle)

после чтения из базы указатель установленный SetDataOffset смещяется на размер данных. т.е. если продолжить

r0=указатель

ReadWord

в R0 будут 0x21 и 0x22 байты, причём 21 будет младшим.

 

За чтение заголовка базы отвечает функция InitializeLDB (одинаковая в sysol, shift, agere, в siemens наверное тоже)

 

описание таблиц по возрастанию адресов

1. описание кнопок для T9

2. описание кнопок для ABC

3. Указатели (простые) как правило 2 числа. их количество определяется байтом 0x6B

Указатель равен смещению от начала таблицы данных T9 (последня)

4. Указатели (сложные) состоят из коэффициента (2 байта) и смещения. Полное смещнние вычисляется как роизведение коэффициента на index из базы плюс смещение.

5. таблица ValidKeys - по 3 полубайта на индекс

6. таблица корректировки символов по 2 бита на индекс.

7. таблица индексов Instructions по 2 байта на индекс

8. коды символов пунктуации (по ним определяется завершение слов) по 2 байта на символ.

9. непосредственно база данных.единицей записи явлется полубайт (4 бита). имеет примерно такую структуру:

Key - битовая маска кнопок (0 бит- цифра 1, 1 бит - 2 и т.д.)

Instruction_key1-1 - номер буквы на кнопке для цифры бит которой включён

Instruction_key1-2 - номер другой возможной буквы для этой цифры

....

Inctruction_key1-N - последний вариант для этой кнопки

Pointers - адрес следующей наборной комбинации для этой кнопки

Instruction_key2-1 - номер буквы на кнопке для цифры бит которой включён (следующая возможная кнопка)

Instruction_key2-2 - номер другой возможной буквы для этой цифры

....

Inctruction_key2-N - последний вариант для этой кнопки

Pointers - адрес следующей наборной комбинации для этой кнопки

... и так для всех возможных кнопок.

 

Для хранения чисел используется оригинальный подход

в заголовке есть так называемые базы (числа)

если индекс меньше первой базы, то он записывается как есть, если больше, то величина превышения расматривается как десятки, к которым потом прибавляется следуюжий полубайт и база. Тоже самое и для превышения 2 базы, но там уже разница будет сотнями.

Для разных данных свой набор баз.

 

Индексы могут быть определены непосредственно в самой базе, но сделано так, что больщинство из них берётся из таблиц.

 

Последняя инструкция для каждой кнопки отдичается старшим битом установленным в 1. т.е. максимальная первая база не может быть больше 7 для inctruction.

 

во вложении описание структуры заголовка баз T9 и немного структура данных по T9 применительно к X140

У каждой базы есть 2 контрольных числа.

1. OEM_ID - сдесь закладывается производитель и язык базы

2. validateLDB - контрольная сумма файла.

 

и то и другое легхко вычисляется.

 

PS. Это в краце всё, если что не понятно спрашивайте.

T9_fieldinfo_X140.zip

T9_fieldinfo_X140.zip

  • Like 2

Одна из последних версий binedit здесь.

AlexeyK.gif

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Не знаю как у обладателей Х100/Х600, а на Е630 (Е800/Е820) есть функция добавления новых слов в словарь Т9. Но корректно работает она почему-то только с английским языком. Русские же слова не заносятся. Алексей, ты не разбирался в принципе сохранения слов в Т9 и какое может быть этому объяснение?

Ковыряю e630 :)

Ссылка на комментарий
Поделиться на другие сайты

На Х100 такая же ж... На английском языке добавляй сколько хочешь, а русские слова не заносятся в словарь, хотя и пишет: Добавить слово. Давно охота исправить это. Думаю можно сделать патч, чтобы, например, заносились слова на русском языке в область, отведенную на пополнение английского Т9, а английский язык не пополнялся.

Samsung X100 (X100XEDG1) -> SonyEricsson K700 (R2CA001)

Ссылка на комментарий
Поделиться на другие сайты

Хацкер я разбирал только основную базу (LDB) пользовательские базы (UDB) хранятся в flesh, размер вроде 1 кб для X600. с ними работает другой набор функций. Их не смотрел. Раньше думал что всё сохраняется в ANSII кодировке, по этому потом нельзя восстановить русский текст, но сейчас думаю по другому. Похоже там привязка к одному языку, так как пользовательская база одна. По умолчанию 0109 (English)

Одна из последних версий binedit здесь.

AlexeyK.gif

Ссылка на комментарий
Поделиться на другие сайты

AlexeyK, можно ли будет реализовать добавляение русских слов в базу?

Ссылка на комментарий
Поделиться на другие сайты

AlexeyK, подскажи, пожалуйста, где в прошивке Х100ХEDG1 находятся опции т9, те которые появляются при нажатии правого софта при написании нового сообщения.

Ссылка на комментарий
Поделиться на другие сайты

AlexeyK, но в х140 русские же слова добавляются, выходит там есть база под русский язык? получается нас обделили :idea:

Ковыряю e630 :)

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Вчера смотрел на X620....Там также хорошо добавляются русские, как и на

X100/X600...

 

Выходит, что Samsung'у пофигу на добавление слов из других языков...

даже в более новых моделях...

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Хочу поделиться наблюдениями поповоду сохранения русских слов на x100 (может поможет кому). у меня слова сохраняются, но как-то странно. происходит это так: я добавляю слово, слово в словарь добавляется, но не надолго. т.е. через т9 слово какое-то время набрается а потом из словаря исчезает. если надо, могу точно узнать как это происходит.

Ссылка на комментарий
Поделиться на другие сайты

Странно, у меня на х100 (да и на е630) даже в одном сообщении нельзя ввести слово из словаря в т9. оба раза приходится добавлять новое. зато слово "DVD" в русский словарь добавилось после "еще" постоянно вылазит...

E630XEDK2 + Nokia N72+1Gb

Всё, что нас не убивает, то нас делает сильней! (Е. Летов)

Ссылка на комментарий
Поделиться на другие сайты

у меня слова сохраняются, но как-то странно. происходит это так: я добавляю слово, слово в словарь добавляется, но не надолго. т.е. через т9 слово какое-то время набрается а потом из словаря исчезает.

Если они записываются в EEPROM, и под них ,как писал AlexeyK, выделен 1кб, то при добавлении

нового слова - старое перезаписывается к концу области, пока не вытесняется окончательно. :arrow:

[AD]

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

NO ved' 1 Kb - eto 1000 bukv...

Люблю яблочные пирожки с маком =)

———————————————————

WAP-Форум на wap.sgh.ru

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


×
×
  • Создать...