Files
Kenshin d799d55fdb little documentation fix: color names according to ECMA-48 standard
git-svn-id: svn://kolibrios.org@8582 a494cfbc-eb01-0410-851d-a64ba20cac60
2021-02-06 10:47:12 +00:00

166 lines
7.2 KiB
Plaintext

console.dll ¤ъёяюЁЄшЁєхЄ ёыхфє■∙шх ЇєэъЎшш:
typedef unsigned long dword; /* 32-сшЄэюх схччэръютюх Ўхыюх */
typedef unsigned short word; /* 16-сшЄэюх схччэръютюх Ўхыюх */
void __stdcall con_init(dword wnd_width, dword wnd_height,
dword scr_width, dword scr_height, const char* title);
╚эшЎшрышчрЎш  ъюэёюыш. ┬√ч√трхЄё  юфшэ Ёрч т эрўрых яЁюуЁрьь√.
wnd_width, wnd_height - т√ёюЄр ш °шЁшэр (т ёшьтюырї) тшфшьющ т юъэх ъюэёюыш
юсырёЄш;
scr_width, scr_height - т√ёюЄр ш °шЁшэр (т ёшьтюырї) тёхщ ъюэёюыш;
ы■с√х шч яхЁт√ї 4 ярЁрьхЄЁют ьюуєЄ с√Є№ єёЄрэютыхэ√ т -1 (=0xFFFFFFFF)
- шёяюы№чютрЄ№ чэрўхэш  яю єьюыўрэш■;
title - чруюыютюъ юъэр ъюэёюыш.
void __stdcall con_exit(bool bCloseWindow);
┬√ч√трхЄё  яЁш чртхЁ°хэшш яЁюуЁрьь√. ┼ёыш (срщЄют√щ) ярЁрьхЄЁ bCloseWindow
эєыхтющ, Єю юъэю ъюэёюыш юёЄр╕Єё  эр ¤ъЁрэх фю Єюую ьюьхэЄр, ъръ яюы№чютрЄхы№
яюцхырхЄ чръЁ√Є№ хую, яЁш ¤Єюь ъ чруюыютъє фюсрты хЄё  ёЄЁюър " [Finished]".
void __stdcall con_set_title(const char* title);
╙ёЄрэртыштрхЄ эют√щ чруюыютюъ юъэр ъюэёюыш.
void __stdcall con_write_asciiz(const char* string);
┬√тюфшЄ ASCIIZ-ёЄЁюъє т ъюэёюы№ т Єхъє∙є■ яючшЎш■, яЁюфтшурхЄ Єхъє∙є■ яючшЎш■.
void __stdcall con_write_string(const char* string, dword length);
└эрыюушўэю con_write_asciiz, эю т√тюфшЄ Ёютэю length ёшьтюыют.
int __cdecl con_printf(const char* format, ...)
╤ЄрэфрЁЄэр  printf шч ANSI C.
dword __stdcall con_get_flags(void);
╧юыєўрхЄ чэрўхэшх Їыруют т√тюфр.
dword __stdcall con_set_flags(dword new_flags);
╙ёЄрэртыштрхЄ чэрўхэшх Їыруют т√тюфр. ┬ючтЁр∙рхЄ ёЄрЁюх чэрўхэшх.
╘ыруш (сшЄютр  ьрёър):
/* ЎтхЄ ЄхъёЄр */
#define CON_COLOR_BLUE 1
#define CON_COLOR_GREEN 2
#define CON_COLOR_RED 4
#define CON_COLOR_BRIGHT 8
/* ЎтхЄ Їюэр */
#define CON_BGR_BLUE 0x10
#define CON_BGR_GREEN 0x20
#define CON_BGR_RED 0x40
#define CON_BGR_BRIGHT 0x80
/* єяЁртыхэшх т√тюфюь */
#define CON_IGNORE_SPECIALS 0x100
/* ┼ёыш Їыру ёсЁю°хэ, ЇєэъЎш  шэЄхЁяЁхЄшЁєхЄ ёяхЎшры№э√х ёшьтюы√:
10 ('\n') - яхЁхтюф т эрўрыю ёыхфє■∙хщ ёЄЁюъш
13 ('\r') - яхЁхтюф т эрўрыю Єхъє∙хщ ёЄЁюъш
8 ('\b') - чрсющ (эр ёшьтюы эрчрф)
9 ('\t') - Єрсєы Ўш 
27 ('\033'='\x1B') - эрўрыю Esc-яюёыхфютрЄхы№эюёЄш;
шэрўх т√тюфшЄ шї ъръ юс√ўэ√х ёшьтюы√. */
/* ╧юффхЁцштрхь√х Esc-яюёыхфютрЄхы№эюёЄш:
Esc[<number1>;<number2>;<number3>m - т√сюЁ рЄЁшсєЄют ёшьтюыют:
ьюцэю єърч√трЄ№ юфшэ, фтр шыш ЄЁш ъюфр т ы■сюь яюЁ фъх;
0 = эюЁьры№эюх шчюсЁрцхэшх (схы√х ёшьтюы√ эр ў╕Ёэюь Їюэх)
1 = т√фхыхэшх  ЁъюёЄ№■
5 =  Ёъшщ Їюэ
7 = ЁхтхЁёэюх шчюсЁрцхэшх (ў╕Ёэ√х ёшьтюы√ эр схыюь Їюэх)
30 = ў╕Ёэ√х ёшьтюы√
31 = ъЁрёэ√х ёшьтюы√
32 = чхы╕э√х ёшьтюы√
33 = ц╕ыЄ√х ёшьтюы√
34 = ёшэшх ёшьтюы√
35 = ЇшюыхЄют√х ёшьтюы√
36 = сшЁ■чют√х ёшьтюы√
37 = схы√х ёшьтюы√
40 = ў╕Ёэ√щ Їюэ
41 = ъЁрёэ√щ Їюэ
42 = чхы╕э√щ Їюэ
43 = ц╕ыЄ√щ Їюэ
44 = ёшэшщ Їюэ
45 = ЇшюыхЄют√щ Їюэ
46 = сшЁ■чют√щ Їюэ
47 = схы√щ Їюэ
╤ыхфє■∙шх яюёыхфютрЄхы№эюёЄш яю тшышё№ т тхЁёшш 5 сшсышюЄхъш:
Esc[2J - юўшёЄшЄ№ ¤ъЁрэ, яхЁхьхёЄшЄ№ ъєЁёюЁ т ыхт√щ тхЁїэшщ єуюы
Esc[<number1>;<number2>H = Esc[<number1>;<number2>f -
єёЄрэютшЄ№ ъєЁёюЁ т яючшЎш■ ё ъююЁфшэрЄрьш <number1>,<number2>
Esc[<number>A - яхЁхьхёЄшЄ№ ъєЁёюЁ эр <number> ёЄЁюъ ттхЁї
Esc[<number>B - яхЁхьхёЄшЄ№ ъєЁёюЁ эр <number> ёЄЁюъ тэшч
Esc[<number>C - яхЁхьхёЄшЄ№ ъєЁёюЁ эр <number> яючшЎшщ тяЁртю
Esc[<number>D - яхЁхьхёЄшЄ№ ъєЁёюЁ эр <number> яючшЎшщ тыхтю
*/
/* ёшуэры ю чръЁ√Єшш юъэр ъюэёюыш; яю тшыё  т тхЁёшш 6 сшсышюЄхъш;
Їыру шуэюЁшЁєхЄё  ЇєэъЎшхщ con_set_flags */
#define CON_WINDOW_CLOSED 0x200
╟эрўхэшх яю єьюыўрэш■ фы  Їыруют = 7.
int __stdcall con_get_font_height(void);
┬ючтЁр∙рхЄ чэрўхэшх т√ёюЄ√ °ЁшЇЄр.
int __stdcall con_get_cursor_height(void);
╧юыєўрхЄ чэрўхэшх т√ёюЄ√ ъєЁёюЁр.
int __stdcall con_set_cursor_height(int new_height);
╙ёЄрэртыштрхЄ чэрўхэшх т√ёюЄ√ ъєЁёюЁр. ┬ючтЁр∙рхЄ ёЄрЁюх чэрўхэшх.
╧юя√Єър єёЄрэютшЄ№ чэрўхэшх тэх ъюЁЁхъЄэюую шэЄхЁтрыр (юЄ 0 фю font_height-1)
шуэюЁшЁєхЄё .
╩єЁёюЁ т√ёюЄ√ 0 эх юЄюсЁрцрхЄё  эр ¤ъЁрэх.
╟эрўхэшх т√ёюЄ√ яю єьюыўрэш■ - 15% юЄ т√ёюЄ√ °ЁшЇЄр.
int __stdcall con_getch(void);
╤ўшЄ√трхЄ юфшэ ёшьтюы ё ъыртшрЄєЁ√.
─ы  юс√ўэ√ї ёшьтюыют тючтЁр∙рхЄё  ASCII-ъюф. ─ы  Ёрё°шЁхээ√ї ёшьтюыют
(эряЁшьхЁ, Fx ш ёЄЁхыюўхъ) яхЁт√щ т√чют ЇєэъЎшш тючтЁр∙рхЄ 0,
р яютЄюЁэ√щ т√чют тючтЁр∙рхЄ Ёрё°шЁхээ√щ ъюф (яюфюсэю DOS-ЇєэъЎш ь ттюфр).
═рўшэр  ё тхЁёшш 7 сшсышюЄхъш, яюёых чръЁ√Єш  юъэр ъюэёюыш тючтЁр∙рхЄё 
чэрўхэшх 0.
word __stdcall con_getch2(void);
╤ўшЄ√трхЄ юфшэ ёшьтюы ё ъыртшрЄєЁ√. ╠ырф°шщ срщЄ ёюфхЁцшЄ ASCII-ъюф ъыртш°ш
(0 фы  Ёрё°шЁхээ√ї ёшьтюыют), ёЄрЁ°шщ - Ёрё°шЁхээ√щ ъюф
(яюфюсэю BIOS-ЇєэъЎш ь ттюфр).
═рўшэр  ё тхЁёшш 7 сшсышюЄхъш, яюёых чръЁ√Єш  юъэр ъюэёюыш тючтЁр∙рхЄё 
чэрўхэшх 0.
int __stdcall con_kbhit(void);
┬ючтЁр∙рхЄ 1, хёыш ърър -Єю ъыртш°р с√ыр эрцрЄр, 0 шэрўх. ─ы  ёўшЄ√трэш 
эрцрЄющ ъыртш°ш яЁхфэрчэрўхэ√ ЇєэъЎшш con_getch ш con_getch2.
═рўшэр  ё тхЁёшш 6 сшсышюЄхъш, яюёых чръЁ√Єш  юъэр ъюэёюыш тёхуфр тючтЁр∙рхЄ 1.
char* __stdcall con_gets(char* str, int n);
╤ўшЄ√трхЄ ёЄЁюъє ё ъыртшрЄєЁ√. ┬тюф яЁхЁ√трхЄё  яЁш яюёЄєяыхэшш ёшьтюыр
эютющ ёЄЁюъш, р Єръцх яю яЁюўЄхэшш n-1 ёшьтюыр (т чртшёшьюёЄш юЄ Єюую, ўЄю
яЁюшчющф╕Є Ёрэ№°х). ┬ яхЁтюь ёыєўрх ёшьтюы эютющ ёЄЁюъш Єръцх чряшё√трхЄё  т
str. ╤ўшЄрээр  ёЄЁюър фюяюыэ хЄё  эєыхт√ь ёшьтюыюь.
═рўшэр  ё тхЁёшш 6 сшсышюЄхъш, ЇєэъЎш  тючтЁр∙рхЄ єърчрЄхы№ эр ттхф╕ээє■
ёЄЁюъє яЁш єёях°эюь ўЄхэшш ш NULL, хёыш юъэю ъюэёюыш с√ыю чръЁ√Єю. ─ю тхЁёшш
6 тючтЁр∙рхьюх чэрўхэшх с√ыю эхюяЁхфхыхэю.
typedef int (__stdcall * con_gets2_callback)(int keycode, char** pstr, int* pn, int* ppos);
char* __stdcall con_gets2(con_gets2_callback callback, char* str, int n);
╘єэъЎш  яю тшырё№ т тхЁёшш 4 сшсышюЄхъш.
╧юыэюёЄ№■ рэрыюушўэр con_gets чр шёъы■ўхэшхь Єюую, ўЄю ъюуфр яюы№чютрЄхы№
эрцшьрхЄ эхЁрёяючэрээє■ ъыртш°є, т√ч√трхЄё  єърчрээр  callback-яЁюЎхфєЁр
(ъюЄюЁр  ьюцхЄ, эряЁшьхЁ, юсЁрсрЄ√трЄ№ up/down фы  шёЄюЁшш ттюфр ш tab фы 
ртЄюфюяюыэхэш ). ╧ЁюЎхфєЁх яхЁхфр╕Єё  ъюф ъыртш°ш ш ЄЁш єърчрЄхы  - эр ёЄЁюъє,
эр ышьшЄ ш эр Єхъє∙є■ яючшЎш■ т ёЄЁюъх. ╧ЁюЎхфєЁр ьюцхЄ ьхэ Є№ ёюфхЁцшьюх
ёЄЁюъш ш ьюцхЄ ьхэ Є№ ёрьє ёЄЁюъє (эряЁшьхЁ, яхЁхЁрёяЁхфхышЄ№ ярь Є№ фы 
єтхышўхэш  ышьшЄр), ышьшЄ, яючшЎш■ т ёЄЁюъх - фы  ¤Єюую ш яхЁхфр■Єё  єърчрЄхыш.
┬ючтЁр∙рхьюх чэрўхэшх: 0=ёЄЁюър эх ьхэ ырё№; 1=ёЄЁюър шчьхэшырё№, эхюсїюфшью
єфрышЄ№ ёЄрЁє■ ш т√тхёЄш эютє■; 2=ёЄЁюър шчьхэшырё№, эхюсїюфшью х╕ т√тхёЄш;
3=эхьхфыхээю т√щЄш шч ЇєэъЎшш.
═рўшэр  ё тхЁёшш 6 сшсышюЄхъш, ЇєэъЎш  тючтЁр∙рхЄ єърчрЄхы№ эр ттхф╕ээє■
ёЄЁюъє яЁш єёях°эюь ўЄхэшш ш NULL, хёыш юъэю ъюэёюыш с√ыю чръЁ√Єю. ─ю тхЁёшш
6 тючтЁр∙рхьюх чэрўхэшх с√ыю эхюяЁхфхыхэю.
void __stdcall con_cls();
╘єэъЎш  яю тшырё№ т тхЁёшш 5 сшсышюЄхъш.
╬ўш∙рхЄ ¤ъЁрэ ш яхЁхтюфшЄ ъєЁёюЁ т ыхт√щ тхЁїэшщ єуюы.
void __stdcall con_get_cursor_pos(int* px, int* py);
╘єэъЎш  яю тшырё№ т тхЁёшш 5 сшсышюЄхъш.
╟ряшё√трхЄ т *px Єхъє∙є■ ъююЁфшэрЄє ъєЁёюЁр яю юёш x, т *py - яю юёш y.
void __stdcall con_set_cursor_pos(int x, int y);
╘єэъЎш  яю тшырё№ т тхЁёшш 5 сшсышюЄхъш.
╙ёЄрэртыштрхЄ ъєЁёюЁ т яючшЎш■ ё єърчрээ√ьш ъююЁфшэрЄрьш. ┼ёыш ъръющ-Єю шч
ярЁрьхЄЁют т√їюфшЄ чр яЁхфхы√ ёююЄтхЄёЄтє■∙хую фшрярчюэр (юЄ 0 фю scr_width-1
фы  x, юЄ 0 фю scr_height-1 фы  y, scr_width ш scr_height с√ыш чрфрэ√ яЁш
т√чютх con_init), Єю ёююЄтхЄёЄтє■∙р  ъююЁфшэрЄр ъєЁёюЁр эх ьхэ хЄё .