рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЖрд╢реНрдЪрд░реНрдп рдХрд░рддреЗ рд╣реИрдВ:
"рдХреНрдпрд╛ рдореИрдВ рдХреЛрд▓рд┐рдмреНрд░реАрд╕ рдХреЗ рддрд╣рдд рдПрдХ рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ?"рдЙрддреНрддрд░:
"рд╣рд╛рдБ, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!" , рдФрд░ рдиреАрдЪреЗ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
- KolibriOS рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ KolibriOS рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреЗрдВ рдХрд┐ KolibriOS рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 8MB RAM рдФрд░ рдкреЗрдВрдЯрд┐рдпрдо-рд╕рдВрдЧрдд CPU рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рдПрдХ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ (рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рд╣рдорд┐рдВрдЧрдмрд░реНрдб рдореЗрдВ рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ)ред
- рдХрдВрдкрд╛рдЗрд▓рд░ TCC (Ty C C ompiler)ред рд╣рдорд┐рдВрдЧрдмрд░реНрдб ( mini_c_dev ) рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓реА рд╣рдорд╛рд░реЗ рдордВрдЪ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред Ktcc (Kolibri TCC) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЪрд░реНрдЪрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдпрд╣рд╛рдБ рд╣реИ: board.kolibrios.org/viewtopic.php?f=45&t=565
рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ
KolibriOS рдореЗрдВ рджреЛ рддрд░рд╣ рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЛрддреЗ рд╣реИрдВ: рд╡рд┐рдВрдбреЛ рдФрд░ рдХрдВрд╕реЛрд▓ред GUI рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░
BoxLib рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрдВрд╕реЛрд▓ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдЖрдЬ рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдлрдВрдХреНрд╢рдиреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╡рд┐рдВрдбреЛ рдПрдкреНрд▓реАрдХреЗрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗред
рд╡рд┐рдВрдбреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ
рдореБрдЦреНрдп () рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рд╣реЛрддрд╛ рд╣реИ:
while (!0) { switch (_ksys_wait_for_event(10)) { case 2: return 0; case 3: if (_ksys_get_button_id() == 1) return 0; break; default:
рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдХреАрдмреЛрд░реНрдб рдИрд╡реЗрдВрдЯ рдФрд░ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВрдЧреЗред рд╕реНрд╡рд┐рдЪ-рдХреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЙрдирдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред
рдЖрдЗрдП рдЗрди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:2 - рдХреАрдмреЛрд░реНрдб рдкрд░ рдПрдХ рдХреБрдВрдЬреА рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
3 - рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдЯрди (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдХреНрд░реЙрд╕ рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдмрдЯрди рд╣реИ);
рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣рдорд╛рд░реЗ
рд╡рд┐рдХреА рдкрд░ рдпрд╛ рдУрдПрд╕ (рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдбреЙрдХрдкреИрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо) рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред
рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ
рдбреНрд░рд╛_рд╡рд┐рдВрдбреЛ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред
рдЕрдм рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдЦрд┐рдбрд╝рдХреА рдХреИрд╕реЗ рдЦреАрдВрдЪреА рдЬрд╛рдПред
рдПрдХ рдЦрд┐рдбрд╝рдХреА
рдЦреАрдВрдЪрдирд╛ _ksys_window_redraw (1) рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░
_ksys_window_redraw (2) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЦрд┐рдбрд╝рдХреА рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
_ksys_draw_window рдлрд╝рдВрдХреНрд╢рди (x рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдВрдбреЛ рд╕рдордиреНрд╡рдп, y, рдЪреМрдбрд╝рд╛рдИ, рдКрдБрдЪрд╛рдИ, рд░рдВрдЧ, рд╡рд┐рдВрдбреЛ рдкреНрд░рдХрд╛рд░, рд╡рд┐рдВрдбреЛ рд╢реАрд░реНрд╖рдХ рд░рдВрдЧ, рдЪрд╛рд╣реЗ рдЦрд┐рдбрд╝рдХреА рдЬрдВрдЧрдо рди рд╣реЛ, рд╡рд┐рдВрдбреЛ рдлреНрд░реЗрдо рд░рдВрдЧ рдирд╣реАрдВ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ;
рдЦрд┐рдбрд╝рдХреА рдХреЗ рдкреНрд░рдХрд╛рд░:0 - рдЯрд╛рдЗрдк I - рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреА рд╡рд┐рдВрдбреЛ (рдмрд┐рдирд╛ рддреНрд╡рдЪрд╛ рдХреЗ)
1 - рдХреЗрд╡рд▓ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдВ, рдХреБрдЫ рднреА рдЖрдХрд░реНрд╖рд┐рдд рди рдХрд░реЗрдВ
2 - рдкреНрд░рдХрд╛рд░ II - resizable рдЦрд┐рдбрд╝рдХреА (рддреНрд╡рдЪрд╛ рдХреЗ рдмрд┐рдирд╛)
3 - рддреНрд╡рдЪрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд┐рдбрд╝рдХреА (рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдпреЛрдЧреНрдп)
4 - рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреА рддреНрд╡рдЪрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд┐рдбрд╝рдХреА
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдкрд╛рда рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
_ksys_write_text (x рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, y рд╕рдордиреНрд╡рдп, рдлрд╝реЙрдиреНрдЯ рдкреНрд░рдХрд╛рд░, рд░реЗрдЦрд╛, рд░реЗрдЦрд╛ рд▓рдВрдмрд╛рдИ);
рдЕрдм рдЖрдк рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕реАрдзреЗ рд╣рдорд┐рдВрдЧрдмрд░реНрдб рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
Tinypad рдЦреЛрд▓реЗрдВ, рдФрд░ рдпрд╣ рдХреЛрдб рд▓рд┐рдЦреЗрдВ:
#include <stdio.h> #include <string.h> #include <kolibrisys.h> #define FONT0 0 #define FONT1 0x10000000 char header[] = {"Hello World!"}; #define BT_NORMAL 0 #define BT_DEL 0x80000000 #define BT_HIDE 0x40000000 #define BT_NOFRAME 0x20000000 void draw_window () { _ksys_window_redraw(1); _ksys_draw_window(100, 100, 300, 120, 0xaabbcc, 4, 0x5080d0, 0, 0x5080d0); _ksys_write_text(50,30,FONT0, header, strlen(header)); _ksys_window_redraw(2); } int main (int argc, char **argv) { while (!0) { switch (_ksys_wait_for_event(10)) { case 2: return 0; case 3: if (_ksys_get_button_id() == 1) return 0; break; default: draw_window(); break; } } }
рдЕрдм рд╕рдВрдХрд▓рди рдХрд╛ рд╕рдордп рд╣реИ!
рдпрджрд┐ рдЖрдкрдиреЗ рд╣реБрдорд┐рдВрдЧрдмрд░реНрдб рдореЗрдВ рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдпреВрдПрд╕рдмреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдбрдВрдк рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ
hello.c рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВред
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╣рдорд┐рдВрдЧрдмрд░реНрдб рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЖрдк USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЦреЛрд▓реЗрдВ рдЬрд╣рд╛рдВ рд╕рдВрдХрд▓рдХ рдХрдВрд╕реЛрд▓ (
рд╢реЗрд▓ ) рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ
ktcc.kex <__> libck.a тАУo <__>
рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗред рдЕрдм рдЗрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдмрд╣реБрдд рдХреБрдЫ рдкрдврд╝рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ, рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓:
рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк
рд╣рдорд╛рд░реЗ рдордВрдЪ рдкрд░
ktcc (рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо)
рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред