Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Moucha čestný člen

 Založen: 25. 01. 2006 Příspěvky: 2125 Bydliště: C. Budejovice Telefon: HTC Hero
60.08 SMM
|
Zaslal: pá prosinec 08, 2006 6:50 pm Předmět: Programovani elfu |
|
|
Byl by tu nekdo schopny udelat nejaky navody na programovani elfu, treba vim ze sh@dy v tom umi tak jestli by nechtel neco kratkyho udelat nejaky jednoduchy elf atd _________________
Podpořte SiemensManii
=> HTC Hero, ROM alias HTC Touch
Koukněte co zrovna poslouchám
Naposledy upravil Moucha dne pá prosinec 08, 2006 7:11 pm, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
alkaba čestný člen

Založen: 15. 01. 2005 Příspěvky: 1618 Bydliště: 0x0000FFF Telefon: S75
10903.00 SMM
|
Zaslal: pá prosinec 08, 2006 6:52 pm Předmět: |
|
|
On už návod je, ale rusky Takže by stačil nějaký schopný ruštin, který by to přeložil...
(btw Sh@dy nemá čas) _________________ »HTC Rose S740 with WM 6.5.3
»HP iPaq 514 with WM6.5.3
»Siemens C65
|
|
Návrat nahoru |
|
 |
Moucha čestný člen

 Založen: 25. 01. 2006 Příspěvky: 2125 Bydliště: C. Budejovice Telefon: HTC Hero
60.08 SMM
|
Zaslal: pá prosinec 08, 2006 6:54 pm Předmět: |
|
|
Kde najdu link? ze bych to zkusil treba v PC translatoru nejak prelozit _________________
Podpořte SiemensManii
=> HTC Hero, ROM alias HTC Touch
Koukněte co zrovna poslouchám
Naposledy upravil Moucha dne pá prosinec 08, 2006 6:59 pm, celkově upraveno 3 krát |
|
Návrat nahoru |
|
 |
alkaba čestný člen

Založen: 15. 01. 2005 Příspěvky: 1618 Bydliště: 0x0000FFF Telefon: S75
10903.00 SMM
|
|
Návrat nahoru |
|
 |
krMeEjNzy věrný diskusník

 Založen: 06. 11. 2005 Příspěvky: 401 Bydliště: javamania :o)
2061.00 SMM
|
Zaslal: pá prosinec 08, 2006 7:08 pm Předmět: |
|
|
Tak me napada, neni nahodou symbian taky v Ccku? nebo je v c++?
Jinak za navod bych se primlouval... A spis bych se primlouval za nakej pokud mozno psanej jak pro debily Takze sh@dy jestli sem kouknes tak uvidis, ze uz nejsem sam kdo by to chtel  |
|
Návrat nahoru |
|
 |
mart22 elfmaster

 Založen: 03. 05. 2005 Příspěvky: 1346 Bydliště: Tábor
56669.28 SMM
|
Zaslal: pá prosinec 08, 2006 7:20 pm Předmět: |
|
|
návod na ruským fóru (Howmakeelf.rar) jsem přeložil na altavista a překladu bylo rozumět dobře ,ale nepochopil jsem návod samotný .
Takže bych byl taky pro 1/2patický návod _________________ E71v45 + Testpoint, MasterPatch 14, ElfPack 2.3CZ , 1GB
|
|
Návrat nahoru |
|
 |
Moucha čestný člen

 Založen: 25. 01. 2006 Příspěvky: 2125 Bydliště: C. Budejovice Telefon: HTC Hero
60.08 SMM
|
Zaslal: pá prosinec 08, 2006 7:26 pm Předmět: |
|
|
Doufam ze nespamuju
Tohleto mi vyhodil PC Translator po prelozeni do CJ, jeste by to chtelo trosku dat do vic srozumitelny CJ, sem tam je to opravdova blbost co to vypise takze se nedivte
kód: | Elfy psaní jazykem Si i zabezpečuje maximální operační rychlost.
Pro jich zanedbáváš u vás musejí je nastavený 3 PATČA: knihovna funkcí, elfloader i swi- hook konkrétně pro vaší TYPY prošití i aut (čísla prošití viz z *#06# - > další působnosti, řádku SW- Version). Ssylki na patči viz nižší.
Hned nakladač elf psaní pro všechny mód posvěceného oleje x65 (některé je třeba přešít v dr. model, že označuje - >): CX65- >CX70, M65), C65 - >SL65, S65
i pro x75 mód posvěceného oleje: S75, CX75 i dr.
Instrukce z vytvoření elf od cbn 0.3a:
Všichni příklad (s) Rst7.
co to je elf viz . zde.
Připravené elf i patči iščem na kibab
Obsah:
1. Instalování Si kompilátor IAR
2. Instalování nakladač elf na aut
3. Uvedení do chodu příklad v IAR
4. Sozdaem svůj elf
5. Příklad 1. Práce s památkou i souborem
6. Příklad 2. Závěr na štít i dezinfekci klávesa
7. Příklad se rozloučí. Zapuskaem fonovyj proces, kreslí z časového spínače
8. Příklad 4. Rezidentnaja program
9. FAQ
1. Instalování Si kompilátor IAR
S webovská stránkou www.iar.com skačivaem evaluation verzi ARM IAR kompilátor (>100 mb),
při záznamu se stanoví reálný e- mail - na něj pošlu klíč.
Zapuskaem krek iarunicrk aby obejde 30- dnevnoe omezení (přečte předpisy).
Nebo (komu lenivost pumpuje 100 mb :) bereme krácný pracovní verzi Iar (11 mb, bez angl.help i sv.čl.)
odtud: 1 2 3 4 5 6 7
2. Instalování nakladač elf na aut ( ponadobitsja šňůra - bez něj nikterak ):
Idem na siemens- klub, rozšíření všichni o elf v FAQ i na forumach tamtéž.
Delaem jak tam psaní...:)
3. Uvedení do chodu příklad v IAR
Raspakovyvaem příklad od Rst7 (i Unzip i Tetris (cbn), Diction (alex_itd), bibl. Swilib ) ve fasciklu E:\ARM\
Zapuskaem IAR, objevuje Open existing Workspace jedno ze příkladu
ŠČelkaem v lvovi okně navrchu na název návrhu i vybírá meno Project- >Options- >Arm
Kompiliruem Project - > Rebuild All
Pokud obdržela chyba "_thumb...in range 0- 0xFF", to ne udělalo předešlé stanoviště!
V nastavení je třeba stát Release (Project- >Edit Configurations- >Release), sv.k. skompilirovannye s Debug elf ne naloží!
Došlý elf leží ve fasciklu E:\ARM\jméno návrhu\Release\Exe\
PS. Pokud potřebný elf pro x65, to před kompilací kommentiruem // v souboru E:\ARM\swilib.h řádek
#define NEWSGOLD, pokud pro s75, ten čistý komentář.
Kommentiruem všichni nepotřebné #include png,sys,<> ... kromě swilib.h
Pokud vyráží chyba obexcopy... ne lekají se - všichni ok.
Jak vidí všichni jednoduše :)
4. Sozdaem svůj elf
Nyní vytvoření elf stalo se celkem snadným práci :)
Prošče pouze poopraví připravený příklad: viz . předešlá část.
Dobavljaem k návrhu "Project- >Add Files" soubory Siemens.c i main.c
K návrhu musejí jsou podključeny soubory Func.asm (tečka vzletu) i divu.r79 (dělení, viz .Swilib výše)
Korrektiruem v main.c působnost:
onkey - dezinfekce klávesa (return 1 pro východu z elf)
onredraw - pererisovka štít (masív screen[132*176])
onstart, oncreate - působnost volá při začátku
onclose, onexit - působnost volá při východu
REDRAW() tázaný pro pererisovki štít (zanedbává onredraw)
A vše! U vás hotovo přiložení. Specifiku Simensa ví netřebu vůbec!
Také viz . příklad nižší.
5. Příklad 1. Práce s památkou i souborem
mne v každému příkladu maině.c na:
#include "E:\ARM\swilib.h"
void ElfKiller(void){ // používá se pro východu z elf
extern void *ELF_BEGIN;
// zde obvykle ještě osvobozuji památku z mfree(), freeWS()
((void (*)(void *))adr()))(&ELF_BEGIN); // nic není jasné :(
}
int main(char *exename, char *fname){ // hlavní funkce
// v exename oznamuje cestu zanedbaně elf vzhledu 4:\Zbin\xyz.elf
// ve fname oznamuje jméno soubor, který vyčiní v CardExplorere, vzhledu 0:\Misc\data.txt
// nebo 0, pokud elf zahájený sám
char *mem;
int i, err;
int handle;
if(fname){
// práce se souborem standardním:
handle=fopen(fname,A_ReadWrite+A_BIN+A_Append+A_Create,P_READ+P_WRITE,&err);
// otevřít pro čtenija i vložení v dvojkové. poměry s do zápisem (append), utvoří nejsou - li
// nebo handle=fopen(fname,A_ReadOnly+A_BIN,P_READ,&err); // read only - konstanta viz . swilib.h
if(handle!= - 1){ // -1 = error
mem=malloc(10000); // vyčlení památka: AllocWS() pro řádek (z 2b)
if(mem!=0){ //0 = error
i=freadndle,mem,10000,&err); // Vozvraščaet počet pročte slabiku i chybu v err
// Delaem cokoliv makesomebody(mem,i);
fwrite(handle,mem,i,&err);
mfree(mem); // osvobodí památka: FreeWS() pro řádek
}
fclose(handle); // zavře soubor
}
}
SUBPROC((void *)ElfKiller); // se hádanka velká je :) ale bez ji spodku!
return(0);
}
// PS. Sv.k. v x65 souborů čtení i zápisu se provádí bloku do 32767 slabik,
// místo fread() i fwrite() používaného jich analogie fread32() i fwrite32( analogicky)
int fread32(int fh, char *buf, int len, unsigned int *err) // (s) Rst7
{
int clen;
int rlen;
int total=0;
while(len)
{
if (len>16384) clen=16384; else clen=len;
total+=rlen=fread(fh, buf, clen, err));
if (rlen!=clen) break;
buf+=rlen;
len- =clen;
}
return(total);
}
Ne nechává zařadí do každého projektu soubor Func.asm :
PUBLIC ELF_BEGIN
RSEG ELFBEGIN:DATA
ELF_BEGIN
defadr MACRO a,b
PUBLIC a
a EQU b
ENDM
END
6. Příklad 2. Závěr na štít i dezinfekci klávesa
Líhne malá kresba na štít, přemístitelný pomocí joystick,
i vychází z dlouho stlačení červenou tlačítka. Sdelan na příkladu TED- a (c) Rst7
Hledět odzdolu nahoru :)
mne v příkladu maině.c na:
#include "E:\ARM\swilib.h"
typedef struct
{
GUI gui;
// WSHDR *ws1;
// WSHDR *ws2;
// int i1;
}MAIN_GUI;
typedef struct
{
CSM_RAM csm;
int gui_id;
}MAIN_CSM;
const int minus11= - 11;
const unsigned int INK=0;
const unsigned int PAPER=1;
volatile int xx=0, yy=0; // souřadnice otobraženija risunka
const char bmp[12]={0xFC,0x86,0xB3,0xA9,0xB1,0xA9,0x81,0xFF,0,0,0,0};
const IMGHDR img = {8,12,0x1,0,(char *)bmp};
//================================
//závěr na štít
//================================
void DrwImg(IMGHDR *img, int x, int y, int *pen, int *brush)
{
RECT rc;
DRWOBJ drwobj;
StoreXYWHtoRECT(&rc,x,y,img->w,img->h);
SetPropTo_Obj5(&drwobj,&rc,0,img);
SetColor(&drwobj,pen,brush);
DrawObject(&drwobj);
}
void DrawScreen(void)
{
int *ink=GetPaletteAdrByColorIndex(INK);
int *paper=GetPaletteAdrByColorIndex(PAPER);
int x=xx;
DrwImg((IMGHDR *)&img,x,yy,ink,paper);
}
//Pererisovka základního dialog
void method0(MAIN_GUI *data){
DrawScreen();
}
void method1(MAIN_GUI *data, void *adr)(int)){}
void method2(MAIN_GUI *data, void (*mfree_adr)void *)){}
void method3(MAIN_GUI *data, void *adr)(int), void (*mfree_adr)void *)){}
void method4(MAIN_GUI *data, void (*mfree_adr)void *)){}
void method7(MAIN_GUI *data, void (*mfree_adr)void *)){}
int method8id){return(0);} // prázdná F- á
int method9id){return(0);} // prázdná F- á
// - - - - - - - -----------------------------------------------------------------------
// Osn. dialog - dezinfekce knopok
// - - - - - - - -----------------------------------------------------------------------
int method5(MAIN_GUI *data, GUI_MSG *msg)
{
// if (msg- >gbsmsg- >msg==KEY_UP) // klávesa odpuštění
if ((msg - >gbsmsg->msg==KEY_DOWN)||(msg->gbsmsg->msg==LONG_PRESS)) // tř. stlačení nebo uderživaetsja
switch(msg- >gbsmsg- >submess)
{
case RED_BUTTON:
return(1); //vzniká výzva GeneralFunc pro tek. GUI - > zavírání GUI
case UP_BUTTON:
if(yy>0) - -yy; break;
case LEFT_BUTTON:
if(xx>0) - -xx; break;
case DOWN_BUTTON:
if ++yy; break;
case RIGHT_BUTTON:
if ++xx; break;
// case GREEN_BUTTON:
// case RIGHT_SOFT:
// case ENTER_BUTTON:
// case LEFT_SOFT:
// case VOL_UP_BUTTON:
// case VOL_DOWN_BUTTON:
// case' 0':
// case' 9':
// case' #':
// SUBPROC((void *)DoDiskAccess,1);
// Dr. proces s nízkým prioritou aby ne brzdí pererisovku okna
}
DrawScreen();
return(0);
}
const void * const gui_methods[11]={
(void *)method0, //Redraw
(void *)method1, //Create
(void *)method2, //Close
(void *)method3, //Focus
(void *)method4, //Unfocus
(void *)method5, //OnKey
0,
(void *)method7, //Destroy
(void *)method8,
(void *)method9,
0
};
const RECT Canvas={0,0,131,175};
void maincsm_oncreate(CSM_RAM *data)
{
MAIN_GUI *main_gui=malloc(sizeof(MAIN_GUI));
MAIN_CSM*csm=MAIN_CSM*)data;
zeromem(main_gui,sizeof(MAIN_GUI));
// ustk=malloc(STKSZ); // Vydeljaem památka pod že nám je třeba
// info_ws=AllocWS(512);
main_gui- >gui.canvas=void *));
main_gui- >gui.flag30=2;
main_gui- >gui.methods=void *)gui_methods; // základní metody (viz . výše)
main_gui- >gui.item_ll.data_mfree=void (*)(void *))mfree_adr(); // nižší nic nevím :(
csm- >csm.state=0;
csm- >csm.unk1=0;
csm- >gui_id=CreateGUI(main_gui); // vlastně vytvoření GUI
}
void Killer(void) // východ
{
extern void *ELF_BEGIN;
// mfree(ustk); // Osvoboždaem památka
// FreeWS(info_ws);
((void (*)(void *))adr()))(&ELF_BEGIN);
}
void maincsm_onclose(CSM_RAM *csm)
{
// GBS_StopTimer(&light_tmr);
SUBPROC((void *)Killer);
}
int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg){
return(1);
}
unsigned short maincsm_name_body[140];
const struct
{
CSM_DESC maincsm;
WSHDR maincsm_name;
}MAINCSM =
{
{
maincsm_onmessage, // Obrabotčik soobščenij
maincsm_oncreate, // Vyzyvaetsja při vytvoření
// 0, // pro S75 uklidí kommentarii v 4ch štěpováních
// 0, // i raskommentirovat v swilib.h řádek #define NEWSGOLD
// 0,
// 0,
maincsm_onclose, // Vyzyvaetsja při uzavření
sizeof(MAIN_CSM),
1,
&minus11
},
{
maincsm_name_body,
NAMECSM_MAGIC1,
NAMECSM_MAGIC2,
0x0,
139
}
};
int main(char *exename, char *fname)
{
char dummy[sizeof(MAIN_CSM)];
// strcpy(filename,fname); // Sochranjaem kdesi fname
CreateCSM(&MAINCSM.maincsm,dummy,0);
return 0;
}
7. Příklad se rozloučí. Zapuskaem fonovyj proces, kreslí z časového spínače
Dobavljaem k návrhu "Project- >Add Files" soubor Siemens.c:
// Siemens.c 0.1
// interface aut pro IAR
// zde nic ne dotýkáš se! (nejsou - li přesvědčený)
// Vnešnie působnost volá při:
extern int onstart(char *exename, char *fname); // začátku aplikace. Vozvraščaet 0 nebo 1 pro východu.
extern void oncreate(); // Sozdanii okna
extern void onclose(); // uzavření oknech
extern void onexit(); // Vychode
extern void onredraw(void); // Pererisovke štít
extern int onkey(unsigned char keycode, int pressed); // Nažatii klávesy. Vozvraščaet 0 nebo 1 pro východu.
// v swilib.h kommentiruem // řádek #define NEWSGOLD není - li S75
#include "E:\ARM\swilib.h"
// následující řádek dává 16 bit poměry (RGB 565 z 2 slabik na bod štít screen)
// zakommentirovav obdrž 8 bit poměry (RGB 232 z 1 slabik na bod)
#define HIGHCOLOR
#ifdef HIGHCOLOR
short screen[132*176];
const int screensize=132*176*sizeof(short);
const IMGHDR img = {)132,(unsigned)176,8,0,(char*)screen};
#else
char screen[132*176];
const int screensize=132*176*sizeof(char);
const IMGHDR img = {)132,(unsigned)176,5,0,(char*)screen};
#endif
// nižší číst už není třeba! :)
typedef struct
{
GUI gui;
WSHDR *ws1;
WSHDR *ws2;
int i1;
}MAIN_GUI;
typedef struct
{
CSM_RAM csm;
int gui_id;
}MAIN_CSM;
void DrawScreen(){
RECT rc; DRWOBJ drwobj;
StoreXYWHtoRECT(&rc,0,0,img.w,img.h);
SetPropTo_Obj5(&drwobj,&rc,0,(IMGHDR*)&img);
SetColordrwobj,GetPaletteAdrByColorIndex(0),GetPaletteAdrByColorIndex(1));
DrawObject(&drwobj);
}
void method0(MAIN_GUI *data){ onredraw(); DrawScreen();}
void method1(MAIN_GUI *data, void *adr)(int)){ oncreate(); data- >gui.state=1;}
void method2(MAIN_GUI *data, void (*mfree_adr)void *)){ data- >gui.state=0;}
void method3(MAIN_GUI *data, void *adr)(int), void (*mfree_adr)void *)){ data- >gui.state=2;}
void method4(MAIN_GUI *data, void (*mfree_adr)void *)){ if (data- >gui.state!=2) return; data- >gui.state=1;}
int method5(MAIN_GUI *data, GUI_MSG *msg){
return onkey(msg- >gbsmsg- >submess, msg- >gbsmsg- >msg);}
void method7(MAIN_GUI *data, void (*mfree_adr)void *)){}// mfree_adr(data);
int method8id){return(0);} // prázdná F- á
int method9id){return(0);} // prázdná F- á
const void * const gui_methods[11]={
(void *)method0, //Redraw
(void *)method1, //Create
(void *)method2, //Close
(void *)method3, //Focus
(void *)method4, //Unfocus
(void *)method5, //OnKey
0,
(void *)method7, //Destroy
(void *)method8,
(void *)method9,
0
};
const RECT Canvas={0,0,131,175};
void maincsm_oncreate(CSM_RAM *data)
{
MAIN_GUI *main_gui=malloc(sizeof(MAIN_GUI));
MAIN_CSM*csm=MAIN_CSM*)data;
zeromem(main_gui,sizeof(MAIN_GUI));
// ustk=malloc(STKSZ); // Vydeljaem památka
// info_ws=AllocWS(512);
main_gui- >gui.canvas=void *));
main_gui- >gui.flag30=2;
main_gui- >gui.methods=void *)gui_methods;
main_gui- >gui.item_ll.data_mfree=void (*)(void *))mfree_adr();
csm- >csm.state=0;
csm- >csm.unk1=0;
csm- >gui_id=CreateGUI(main_gui);
}
void Killer(void){
extern void *ELF_BEGIN;
extern void kill_data(void *p, void (*func_p)(void *));
onexit();
kill_data(&ELF_BEGIN,void (*)(void *))mfree_adr());
// ((void (*)(void *))adr()))(&ELF_BEGIN);
}
void maincsm_onclose(CSM_RAM *csm)
{
onclose();
SUBPROC((void *)Killer);
}
int maincsm_onmessage(CSM_RAM *data, GBS_MSG *msg){
MAIN_CSM *csm=MAIN_CSM*)data;
if ((msg - >msg==MSG_GUI_DESTROYED)&&((int)msg->data0==csm->gui_id))
csm- >csm.state= -3;
return(1);
}
const int minus11= - 11;
unsigned short maincsm_name_body[140];
const struct
{
CSM_DESC maincsm;
WSHDR maincsm_name;
}MAINCSM =
{
{
maincsm_onmessage,
maincsm_oncreate,
#ifdef NEWSGOLD
0,
0,
0,
0,
#endif
maincsm_onclose,
sizeof(MAIN_CSM),
1,
&minus11
},
{
maincsm_name_body,
NAMECSM_MAGIC1,
NAMECSM_MAGIC2,
0x0,
139
}
};
int main(char *exename, char *fname){
char dummy[sizeof(MAIN_CSM)];
if(onstart(exename,fname)) SUBPROC((void *)Killer);
else CreateCSM(&MAINCSM.maincsm,dummy,0);
return 0;
}
Nyní korrektiruem (pokud je třeba) soubor main.c:
// Main.c 0.1
// Demo 3: Příklad se rozloučí: Zapuskaem fonovyj proces, kreslí z časového spínače
#include "E:\ARM\swilib.h"
extern short screen[132*176]; // štít 132*176*2
extern void DrawScreen(); // funkce pererisovki štít
void onredraw(void);
//#define RGB8) (B+(G<<2)+(R<<5))
#define RGB16B) ((B>31?31:B)+63:G)<<5)+>31?31:R)<<11))
char *buf=0; // jakýsi nárazník (na ukázku výtok paměti)
int bufsize=10000; // jeho rozměru
volatile int started=0; // proces kontroluje vlajku i vychází pokud =0
int color=0;
GBSTMR timer;
void timer_proc(void){ // funkce se provádí z časového spínače 10 raz ve vteřinu
if(started){
REDRAW(); // Pererisovat štít
}
GBS_STARTTimerProc(&timer,262/10,timer_proc); // Startuem časový spínač s frekvencí 10 raz ve vteřinu
// on provádí se jednorázově proto jeho je třeba neustále zanedbávat
}
void execute(){ // Fonovyj proces
started=1;
while(started){ // zatím nejsou brigády na zastavení
onredraw(); // jen na ukázku, de facto případy cokoliv ještě
}
}
int onstart(char *exename, char *fname){ // start aplikace. Vozvraščaet 0 nebo 1 pro východu.
// if(!fname) return 1; // není - li zadání jméno soubor vystupoval
buf=char *)malloc(bufsize); // Vydeljaem památka i sv.čl.
if(!buf) return 1; // nevyšlo - vystupoval
// zde případy cokoliv
return 0;
}
void oncreate(){ // vytvoření okna
SUBPROC((void *)execute); // Zapuskaem fonovyj proces
GBS_STARTTimerProc(&timer,262/10,timer_proc); // Startuem časový spínač s frekvencí 10 raz ve vteřinu
}
void onclose(){ // zavírání okna
started=0; // signál na stanici fonovogo procesu
GBS_StopTimer(&timer); // Ostanavlivaem časový spínač
// Sochranjaem tvar pokud je třeba
}
void onexit(){ // východ
if(buf) mfree(buf); // Osvoboždaem památka
}
void onredraw(void){ // Pererisovka štít screen[132*176]
int i,j;
forcolor++;i<132*176;i++){
screen[i]=j++;
}
}
// keycode - klíč klávesy, pressed - stlačení/odpuštění/uderživaetsja
int onkey(unsigned char keycode, int pressed){ // Obrabotčik klávesa. Vrátit 0 nebo 1 pro východu
switch(pressed){
case KEY_UP: break; // klávesa odpuštění
case LONG_PRESS: // klávesa uderživaetsja dlouho (opakuje)
case KEY_DOWN: // klávesa stlačení
switch(keycode){ // klíč klávesy
case RED_BUTTON: return 1; // východ
case LEFT_SOFT: case RIGHT_BUTTON: case UP_BUTTON: case ENTER_BUTTON: // Delaem cokoliv
case' 0': case' 9': case' #': case' *': break;
default: return 0;
}
onredraw(); DrawScreen(); // Pererisovat štít
}
return 0;
}
//#define MSG_GUI_DESTROYED 152 //pro ne s75 pokud u vás není v swilib.h
8. Příklad 4. Rezidentnaja program
[...]
9. FAQ
Smontovaný na základě odpověď Rst7 (děkuje mu:)
proč v iar cu konstrukci char c[100]; int a=*c+5) odpojuje potrubí?
Protože ty pokoušíš se číst int z nekruglomu adresy - proc to je posílá nach - generuje vyloučení... Pokud tobě je třeba taková věc dělat, to čtete pobajtno i hodláme v zvláštní int.
určitě při východu osvobozuje vší památku z mfree()?
Vší, kterou půjčil - určitě
jak odlaďovat elf než kopírovat jich na telefon i psal úžlabinu?
Debaggerom CHaosovskim... Hledáš BLX R4 v nakladači elf, staví tam bod zastavení i vpřed...
že činí SUBPROC ? REDRAW ?
SUBPROC - výzva působnost v kontextu jiného proudění s malou prioritou kvůli tomu, aby ne brzdí GUI, pokud je třeba cosi dlouho dělat (například v TED\'e nakládá text, v MegaDial\'e hledá jména v poznámkové knize)
REDRAW - vyzve metodu onRedraw zobrazovat GUI (lze z kontextu procesu- pomocník)
Odpovědi od cbn :
jak dostane datum/čas?
TDate date; TTime time;
GetDateTime(&date,&time);
sprintf(s,"%d:%02d",time.hour,time.min);
sprintf,"%02d-%02d-%04d",date.day, date.month,date.year);
IAR maluje: ne známá funkce div_32a (nebo adresa ELF_BEGIN)
K návrhu musejí jsou podključeny patřičně soubory div.r79 i func.asm
přiložení pracuje příliš pomalu - jak opsat na asm?
S opisováním na asm spěchá nestojí - zpočátku je třeba se přesvědčit že si verze pracuje bez chyb. Nejvyšší akcelerace dává správně psaný algoritmus, je třeba udělat pokus jeho zlepšit. V kompilátoru zahrne maximální optimalizaci z rychlostí.
A už poslední etapa - zaměří nebo odhadnout jaké části klíč provádí se nejvíce dlouho (80% času proca zaujímá 20% klíč) i opíše jich.
Příklad: přidává ve func.asm funkcí myfunc,c,d)
zasazujeme před ELF_BEGIN její klíč
PUBLIC myfunc
myfunc: PUSH {R4 R6,LR}
;případy cosi s R4- R6 (lze do R12)
POP {R4 R6,PC} ; Vrácení
;nebo dělá BX LR ne zachováváš jeho
Výzva ze Si:
extern int myfunc(int a,int b,int c, int d);
myfunc,c,d);
První 4 hodnot předává sootv. v registru R0- R3, zbývající přes zásobník.
Výsledek se vrací v R0.
Systém povelů ARM viz tuhle i tuhle
proč na ch65 - 75 ne otvírají se soubory s kartičkami (MMC)?
Ve fopený() jistě P_READ místo 0
jak vyvede na štít kresba bmp?
Viz . tuhle
Autor předpisy: Vorobev Alexander (cbn) Webovská stránka Pošta |
_________________
Podpořte SiemensManii
=> HTC Hero, ROM alias HTC Touch
Koukněte co zrovna poslouchám |
|
Návrat nahoru |
|
 |
mart22 elfmaster

 Založen: 03. 05. 2005 Příspěvky: 1346 Bydliště: Tábor
56669.28 SMM
|
Zaslal: čt prosinec 14, 2006 3:50 pm Předmět: Český popis elfů |
|
|
Kdyby se někdo nudil může si přečíst.
Tady je nějaký popis souborů .elf, je to docela obsáhlé.
http://www.kiv.zcu.cz/~luki/vyuka/stare-materialy/os/oslinux/2.1.120/svobod30/myiso.htm
Tohle je jen začátek
Struktura ELFu
kód: |
/-------------------------------\
| hlavička |-------\--\
|-------------------------------| | |
| tabulka programů |<------/ |
| |>--\ |
|-------------------------------| | |
/-->| sekce 1 | | | |
| |---------------- | | |
/-->| sekce 2 | segment 1 |<--| |
| |---------------- | | |
/-->| sekce 3 | | | |
| |-------------------------------| | |
/-->| ... | | | |
| |---------------- segment m |<--/ |
/-->| sekce n | | |
| |-------------------------------| |
\---| tabulka sekcí |<---------/
| |
\-------------------------------/ |
_________________ E71v45 + Testpoint, MasterPatch 14, ElfPack 2.3CZ , 1GB
|
|
Návrat nahoru |
|
 |
Skipy badatel

Založen: 05. 09. 2005 Příspěvky: 124
264.00 SMM
|
Zaslal: út prosinec 19, 2006 6:06 pm Předmět: |
|
|
Nevíte někdo v jakým programu otevřít Elfy a trochu je "počeštit". Nějak se mně nedaří tu jejich azbuku zobrazit. _________________ Nějaká Motorola -> C25 -> S25 -> ME75 předělaný na C75 sw22 + hafo patchů + ELFloader 2.3 CZ
Asus P535, WM6 |
|
Návrat nahoru |
|
 |
alkaba čestný člen

Založen: 15. 01. 2005 Příspěvky: 1618 Bydliště: 0x0000FFF Telefon: S75
10903.00 SMM
|
Zaslal: út prosinec 19, 2006 6:09 pm Předmět: |
|
|
Winhex+doinstalovat do windows podporu azbuky
Důkaz: http://www.imghosting.eu/uploaded1/azbuka_hex_1.JPG  _________________ »HTC Rose S740 with WM 6.5.3
»HP iPaq 514 with WM6.5.3
»Siemens C65
Naposledy upravil alkaba dne út prosinec 19, 2006 10:07 pm, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
michalkopecky redaktor

 Založen: 30. 11. 2004 Příspěvky: 1541 Bydliště: Praha Mobil:Siemens CX70
13617.60 SMM
|
Zaslal: út prosinec 19, 2006 6:18 pm Předmět: |
|
|
Kde seženu tu azbuku pro WinXP? Prosím stránku nevedoucí na Microsoft. _________________ N3410 > Siemens CX70v56 WVA TNG 3.1 > C72 > SE K750i CID49 RED > Vodafone 845 > HTC Desire Z (Android 4.0.4)
______________________________
http://droidik.blogspot.cz |
|
Návrat nahoru |
|
 |
alkaba čestný člen

Založen: 15. 01. 2005 Příspěvky: 1618 Bydliště: 0x0000FFF Telefon: S75
10903.00 SMM
|
Zaslal: út prosinec 19, 2006 6:53 pm Předmět: |
|
|
Je tam standartně.. Start-Ovládací panely-Místní a jazykové nastavení-Upřesnit-Ruština
Restartuješ PC a pojede to... _________________ »HTC Rose S740 with WM 6.5.3
»HP iPaq 514 with WM6.5.3
»Siemens C65
|
|
Návrat nahoru |
|
 |
michalkopecky redaktor

 Založen: 30. 11. 2004 Příspěvky: 1541 Bydliště: Praha Mobil:Siemens CX70
13617.60 SMM
|
Zaslal: út prosinec 19, 2006 9:52 pm Předmět: |
|
|
To mi hlásí chybu :-( _________________ N3410 > Siemens CX70v56 WVA TNG 3.1 > C72 > SE K750i CID49 RED > Vodafone 845 > HTC Desire Z (Android 4.0.4)
______________________________
http://droidik.blogspot.cz |
|
Návrat nahoru |
|
 |
alkaba čestný člen

Založen: 15. 01. 2005 Příspěvky: 1618 Bydliště: 0x0000FFF Telefon: S75
10903.00 SMM
|
Zaslal: út prosinec 19, 2006 10:01 pm Předmět: |
|
|
"Nějaká chyba" to je široký pojem  _________________ »HTC Rose S740 with WM 6.5.3
»HP iPaq 514 with WM6.5.3
»Siemens C65
|
|
Návrat nahoru |
|
 |
romboid badatel

Založen: 25. 11. 2005 Příspěvky: 102 Bydliště: Bratislava, Slovakia
261.00 SMM
|
Zaslal: st prosinec 20, 2006 2:22 pm Předmět: |
|
|
no ja pouzivam UltraEdit ktory ma v sebe aj hex editor. problem je ze je plateny ale pracuje tusim 30 dni zdarma takze je to fpohode _________________ nokia 8110, motorola T192, A55->C55, CX75fw25 + Apacer uz len 256MB + ELF + patches + kabel Siemens DCA-510 |
|
Návrat nahoru |
|
 |
|
|
Nemůžete odesílat nové téma do tohoto fóra Nemůžete odpovídat na témata v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete hlasovat v tomto fóru Můžeš k příspěvkům připojovat soubory Můžeš stahovat a prohlížet přiložené soubory
|
Powered by phpBB © phpBB Group
|