Прошлый пост завершился тем, что вся наша дружная Moto-компания максимально приблизилась к этапу портирования ElfPack.
Лирическое отступление...
В силу занятости каждого участника, я вместо того, чтобы заниматься тем, чем должен, решил немного поиграть со свежепрошитым C390 и прогнал на нём jBenchmark 1.1.1, где аппарат набрал 901 балл, что сильно меньше легендарных E398, V3i и L7. Хотя, Siemens MC60 набрал всего 350, поэтому считаем, что Java машина, для данного сегмента, вполне сносная.
В прошлом посте я рассказывал, что сдампил с C390 его Boot и PDS. Как позже выяснилось, они пригодились для запуска эмулятора данного аппарата.
Запуск платформы в эмуляторе
Приблизительно в это же время у нас всё сошлось и начали двигаться в сторону портирования эльфпака.
Весь процесс осложнился тем, что портированный на Motorola C650 не заработал на C390, хотя трубки во многом схожие. В итоге, перед нами встала задача - найти адреса всех функций. Часть адресов была известна, но, тем не менее, работы предстояло много. Для ЛЛ: её и сейчас остаётся много.
Что ж, вооружаемся списками адресов функций и начинаем сверку.
Поле этого берём HEX редактор и начинаем искать одинаковые куски кода - паттерны.
Несколько паттернов нашлись без особых усилий, но к части возникли вопросы: находились либо несколько адресов с одинаковыми последовательностями байтов, либо схожие куски, но с некоторыми различиями.
Бороться с возникшими сложностями вручную - та ещё задача, однако, знающие люди в профильной ветке подсказали, что решить эту проблему поможет IDA Pro, но об этом в следующем посте.