console.obj экспортирует следующие функции:

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), то соответствующая координата курсора не меняется.
