[ Главная | Ресурсы | FAQ ] Уроки: [ Введение | DatePlan | SwissClock | HandMap | MobileDB | Noter | ThinkDB | HandMap33 | Lingua Franca | AlarmMaster | Race Fever | TinySheet | Strategic Commander | FlipChart ]
Lingua Franca - это хороший словарь, который обладает довольно удобным интерфейсом, а также поддерживает маленькие (211 слов) словари для довольно большого числа языков:
Маленькие (~211 слов): Afrikanns, Arabic, Armenian, Azerbaijani, Bengali, Cymraeg (Welsh), Dansk, Deutsch, Espanol, Esparanto, Francois, Greek, Han-kuk-o (Korean), Hawaiian, Hindi, Indonesian, Irish Galic, Italiano, Ivrit Hebrew, Latina, Magyar (Hungarian), Nihongo, Norsk, Farsi (Persian), Polski, Portugues, Russky, Suomea (Finnish), Svenska, Taioan Holooe, Turkce, Yiddish.
Средние (500-1500 слов): Czech, Ivrit (using Hebrew font), Portugues, Romanian, Yiddish.
Большие (3500-10000 слов): Deutsch, Espanol, Francais, Italiano, Latina.
В дополнение к этому, Lingua Franca обладает ещё рядом интересных возможностей: перевод чисел, перевод времени и карточками для заучивания слов.
Нашли два места, где есть ссылка на форму $4e84. Поставили по очереди туда debug break и выяснили, что при открытии окна About используется первый участок кода по адресу 00003554:
00003554 4e56fffc L509 LINK A6,#-4 00003558 4227 CLR.B -(A7) 0000355a 48780004 PEA $0004.W 0000355e 486efffc PEA -4(A6) 00003562 4e4fa027 TRAP #15,$A027 = sysTrapMemSet 00003566 7021 MOVEQ #33,D0 00003568 2d40fffc MOVE.L D0,-4(A6) 0000356c 486efffc PEA -4(A6) 00003570 487a0022 PEA L510 00003574 3f3c4e84 MOVE.W #20100!$4e84,-(A7) 00003578 4ebae3ac JSR L273 0000357c 4e5e UNLK A6 0000357e 4e75 RTS
Замечательно. Теперь надо сделать, чтобы эта штука не вызывалась, когда прошло более 30 дней. Ищем все места, где есть переход на метку L509. Перебираем все варианты. Правильный этот:
00001f9a 4a6dfc92 L329 TST.W -878(A5) 00001f9e 6604 BNE L330 00001fa0 4eba15b2 JSR L509 00001fa4 4a6dfc92 L330 TST.W -878(A5) 00001fa8 670e BEQ L331 00001faa 3f3c05dc MOVE.W #1500!$5dc,-(A7) 00001fae 4e4fa19b TRAP #15,$A19B = sysTrapFrmGotoForm 00001fb2 4eba0270 JSR L355 00001fb6 544f ADDQ.W #2,A7
Нам нужно не допустить переход по адресу 00001fa0. Для этого мы делаем переход BNE L330 безусловным (6004). Ниже мы видим ссылку на форму $5dc. Посмотрев в ресурсе tFRM05dc.bin, что это такое, находим, что это основной экран программы. Он-то нам и нужен. Чтобы переход BEQ L331 не сработал никогда, мы его забиваем 4e71. Теперь всё замечательно. Маленькое косметическое исправление: в окне About видны слова 0 days left in demo! Чтобы подставить туда Registered, находим это слово в ресурсе tSTR4e22.bin, а потом ищем ссылку на $4e22 в программе. Нашли:
0000388c 4e4fa185 TRAP #15,$A185 = sysTrapFrmShowObject 00003890 2f3c74535452 MOVE.L #1951618130!$74535452,-(A7) 00003896 3f3c4e22 MOVE.W #20002!$4e22,-(A7) 0000389a 486dfc9a PEA -870(A5) 0000389e 4eba4d32 JSR L1042
Это секция под меткой L523. А немного выше есть условный переход в секцию L524
000037d6 4e4fa184 TRAP #15,$A184 = sysTrapFrmHideObject 000037da 0c43ffff CMPI.W #-1,D3 000037de 4fef0042 LEA 66(A7),A7 000037e2 6600010e BNE L524 000037e6 3f3c4e85 MOVE.W #20101!$4e85,-(A7) 000037ea 2f0a MOVE.L A2,-(A7)
который нам не нужен, потому что в ней выводится текст "Your Demo is Expired!". Поэтому мы забьём этот условный переход 4e714e71 и он никогда не случится. Теперь в окне About честно написано Registered.
Урок 7 - HandMap 3.3 | Урок 9 - AlarmMaster |
Copyright © PalmPot.
Последнее обновление 03.02.2001.