cool_lang在指定位置显示字符非字符串函数?
[求助]显示“字符”的办法?再就此问题请教Cool_lang,strcpy strXXX等函数对于显示字符有什么用?在指定位置显示字符,要用那些函数?在你的源码中有个worddig是作什么用的?各位朋友,看了C00l_lang RainMoon等同志的VKP,有很多显示字符的地方!
但如何显示单个字符呢?
(不是改字串,是在编补丁时,如何在指定位置显示个字符?)
[此贴子已经被作者于2004-3-13 13:58:19编辑过]
各种菜单下的字符显示都不一样。我知道的不多,以下为知道的几种:
1、右软键为“选项”的情况下,左软键字符为:XXXX2F0000007202 或在紧随其后找。
2、有提示框的字符显示为: E6F?XXXX ; ?为C或D
[此贴子已经被作者于2004-3-12 13:37:50编辑过]
谢谢,试试
HUAJIA同志,我不是说改字串,而是在补丁如何显示字符? 国外论坛有一些西门子手机写函数的资料,你可以找找,因我不懂编程,没有保存。 以下是引用huajia在2004-3-12 14:24:42的发言:
国外论坛有一些西门子手机写函数的资料,你可以找找,因我不懂编程,没有保存。
好,找找先! 以下可能是SL45i v56 :
Yes, I've found these. I can give you an summary of routines in the SL45i v56 Fubu.
- make an SL56 big File
- go to the addresses in Flash named in the list
- go in hex editor on these addresses, copy some bytes form routine and finde these in your m35
fubu. So you have some really usefull routines named, that are in nearly all Siemens the same.
would be really nice if you could list your routines too. This saves lot's of time
I've made an litte program: open fubu, type in segment & offset and this tool shows you
the string in fubu on this place. So you don't have to go to hex edit and calculate address
on your own. Do you want to have it? Tell me you mail address
code:--------------------------------------------------------------------------------
01) DisplayMessageBox :
mov r12, flag ; #1=boxed, #2=unboxed
mov r13, textID
calls 0E6h, 0F138h ; with V icon
mov r12, flag
mov r13, textID
calls 0E6h, 0F198h ; with ! icon
02) StringCopy :
mov r12, dst_offset
mov r13, dst_page
mov r14, src_Offset
mov r15, src_page
calls 0C7h, 84A6h
03) MoveWord :
mov r4, src_offset
mov r5, src_page
mov r10, dst_offset
mov r11, dst_page
mov r3, word_count
calls 0C7, 0EE0Ah
04) Indirect Call :
mov r4, func_offset
mov r5, func_page
calls 0C7h, 7EE88h
05) Run Java File :
mov r12, filename_offset
mov r13, filename_page
mov r14, flag ; #0 = list, #1 = run
calls 0C8h, 0BDEh
06) Draw Image (Screen must be prepared) :
mov r14, image_index
mov r12, x_pos
mov r13, y_pos
calls 0C1h, 22ECh
07) Write Data to EEPROM :
mov r12, #0
mov [-r0], r12
mov [-r0], r12
mov [-r0], r12
mov r12, size
mov [-r0], r12
mov r12, EEPROM_Block
mov r13, data_Offset
mov r14, data_Page
mov r15, offset
calls 0C2h, 2F92h
add r0, #8
08 ) Read Data from EEPROM (method 1) :
mov r12, #0
mov [-r0], r12
mov [-r0], r12
mov [-r0], r12
mov r12, size
mov [-r0], r12
mov r12, EEPROM_Block
mov r13, dst_Offset
mov r14, dst_Page
mov r15, offset
calls 0C2h, 2F3Eh
add r0, #8
08 ) Read Data from EEPROM (method 2) :
mov r12, size
mov [-r0], r2
mov r12, EEPROM_Block
mov r13, dst_Offset
mov r14, dst_Page
mov r15, offset
calls 0C2h, 30BAh
add r0, #2
09) GetLength :
mov r12, string_offset
mov r13, string_page
calls 0C7h, 8536h ; output = r4
10) CopyArray :
mov r12, size
mov [-r0], r12
mov r12, src_offset
mov r13, src_page
mov r14, dst_offset
mov r15, dst_page
calls 0C7h, 859Eh
11) Get Word Value :
mov r12, string_offset
mov r13, string_page
calls 0C7h, 82E6h ; output = r4
12) Get Double Word Value :
mov r12, string_offset
mov r13, string_page
calls 0C7h, 7EBAh ; output = r4,r5
13) Get Word :
mov r12, data_offset
mov r13, data_page
calls 0h, 8356h ; output = r4
14) Get Double Word :
mov r12, data_offset
mov r13, data_page
calls 0C7h, 8344h ; output = r4:r5
15) FillChar :
mov r12, dst_offset
mov r13, dst_page
mov r14, char
mov r15, size
calls 0C7h, 8416h
16) Display Free String without Box :
mov r12, text_offset
mov r13, text_page
calls 0CAh, 8B7Ah
17) Find substring :
mov r12, string_offset
mov r13, string_page
mov r14, substring_offset
mov r15, substring_page
calls 0C7h, 85F0h
--------------------------------------------------------------------------------
---------------------------
以下是S/ME451V04的资料:
Setup:
F9D776: ToggleIrDA()
E2771E: Get_IrDA_State() ; returns r4 = #0FFh when IrDA off
E27784: IrDA_On_Off() ; r12 = flag, #0FFh = off, #0 = on
F5476A: ToggleGPRS()
F546DA: Get_GPRS_State() ; returns r4 = #0 when GPRS = off, r4 = #1 when GPRS = on
F546FE: GPRSOn()
F54710: GPRSOff()
SetGPRSState() {
mov r12, #value ;#1 -> GPRS off #0 -> GPRS on
call F546FA
}
TurnOnHandsFreeMode () {
mov r12, #3ADEh
mov r13, #41h
mov r14, #29h ;101001
jmps 0CCh, sub_CC80C0
}
TurnOffHandsFreeMode () {
mov r12, #3ADEh
mov r13, #41h
mov r14, #2Ah ;101010
jmps 0CCh, sub_CC80C0
}
Messagebox
DisplayMessageBoxA() {
mov r12, flag ; #1=boxed, #2=unboxed
mov r13, #textID
calls 0FAh, 04CB0h ; with V icon
}
DisplayMessageBoxB() {
mov r12, flag ; #1=boxed, #2=unboxed
mov r13, #textID
calls 0FAh, 04CD8h ; with ! icon
}
DisplayMessageBoxC() {
mov r12, flag ; #1=boxed, #2=unboxed
mov r13, #textID
calls 0FAh, 04D00h ; without icon
}
Pictures
PicturePaint() { ; --> needs some inits first
mov r14, image_index
mov r12, x_pos
mov r13, y_pos
calls 0C8h, 0439Ch
}
Strings
StringCopy() {
mov r12, dst_offset
mov r13, dst_page
mov r14, src_Offset
mov r15, src_page
calls 0FFh, 04030h
}
GetSringLength() {
mov r12, string_offset
mov r13, string_page
calls 0FFh, 40C0h ; output = r4
}
Find substring() {
mov r12, string_offset
mov r13, string_page
mov r14, substring_offset
mov r15, substring_page
calls 0FFh, 0417Ah
}
Word, Byte, Double Handels
GetWordValue() {
mov r12, string_offset
mov r13, string_page
calls 0FFh, 03E70h ; output = r4
}
GetDoubleWordValue() {
mov r12, string_offset
mov r13, string_page
calls 0D0h, 09360h ; output = r4,r5
}
GetWord() {
mov r12, data_offset
mov r13, data_page
calls 0FFh, 03EE0h ; output = r4
}
GetDoubleWord() {
mov r12, data_offset
mov r13, data_page
calls 0FFh, 03ECEh ; output = r4:r5
}
MoveWord() {
mov r4, src_offset
mov r5, src_page
mov r10, dst_offset
mov r11, dst_page
mov r3, word_count
calls 0FC, 0FFAAh
}
Chars, Arrays
CopyArray() {
mov r12, size
mov [-r0], r12
mov r12, src_offset
mov r13, src_page
mov r14, dst_offset
mov r15, dst_page
calls 0FFh, 04128h
}
FillChar() {
mov r12, dst_offset
mov r13, dst_page
mov r14, char
mov r15, size
calls 0FFh, 03FA0h
}
Calls
IndirectCall() {
mov r4, func_offset
mov r5, func_page
calls 0E2h, 0FFFAh
}
EEPROM
WriteDataToEEPROM() {
mov r12, #0
mov [-r0], r12
mov [-r0], r12
mov [-r0], r12
mov r12, size
mov [-r0], r12
mov r12, EEPROM_Block
mov r13, data_Offset
mov r14, data_Page
mov r15, offset
calls 0CCh, 0FEB8h
; calls 0CDh, 0606h ;2nd choice
; calls 0CDh, 0CD063h ;3rd choice
add r0, #8
}
Programme / Meldungen
E99466: GotoNewSMS()
E9946E: GotoNewSMS_Vorlage1()
E99482: GotoNewSMS_Vorlage2()
E99496: GotoNewSMS_Vorlage3()
GotoNewSMS_UserVorlage() {
mov r12, #StringIndex ;String Index der Vorlage
calls 0EAh, sub_EAE152
mov r14, r4
mov r15, r5
mov r12, #0
mov r13, #0
jmps 0E9h, 0BB7Ah
}
E994AA: GotoSMS_Vorlagen()
E994CA: GotoSMS_Eingang()
E99548: GotoSMS_Eingang_Archiv
E99508: GotoSMS_Ausgang()
E9959A: GotoSMS_Ausgang_Archiv()
E99606: GotoMeldungen_Eingang()
E9960E: GotoSprachmeldung()
E99618: Goto_neueCB_lesen()
E9961C: GotoCBDienste()
E99624: GotoNewEMail_Eingang()
E9964E: Goto_neue_eMail_abrufen() 收下这个重要礼物,T h a n k s 那个Display Free String without Box 是不是我要的东东?试试先。
页:
[1]