From 026d2aba40631627e1b77501ed8fdb96bb752cbf Mon Sep 17 00:00:00 2001 From: rgimad Date: Mon, 10 Mar 2025 20:04:26 +0100 Subject: [PATCH] Libs/console_coff: Translate comments to English and convert to UTF-8 (#128) Translated remaining non-English comments to English and convert to UTF-8 Co-authored-by: rgimad <33692565+rgimad@users.noreply.github.com> Reviewed-on: https://git.kolibrios.org/KolibriOS/kolibrios/pulls/128 Reviewed-by: Max Logaev Co-authored-by: rgimad Co-committed-by: rgimad --- .../libraries/console_coff/conscrl.inc | 6 +- .../libraries/console_coff/console.asm | 63 ++--- .../libraries/console_coff/console_ru.txt | 230 +++++++++--------- 3 files changed, 150 insertions(+), 149 deletions(-) diff --git a/programs/develop/libraries/console_coff/conscrl.inc b/programs/develop/libraries/console_coff/conscrl.inc index 24944515c..ea65dab51 100644 --- a/programs/develop/libraries/console_coff/conscrl.inc +++ b/programs/develop/libraries/console_coff/conscrl.inc @@ -1,5 +1,5 @@ -; ᯮ⥫ 䠩 console.inc - ᠭ scrollbar -; ⨪쭠 ப⪠ +; Helper file for console.inc - scrollbar definition +; Vertical scrolling virtual at 0 file 'conscrlv.bmp', 36h ; sanity check @@ -28,7 +28,7 @@ if con.vscroll_btn_height*4 + con.vscroll_bgr_height*2 \ error 'conscrlv.bmp: invalid dimensions!' end if -; 㦠 BMP, 室 ८ࠧ 7- 㭪樨 +; Load BMP data, converting it into data for sysfn 7 on the fly con.vscroll: repeat con.vscroll_height file 'conscrlv.bmp':36h + ((con.vscroll_width*3+3) and not 3)*(con.vscroll_height - %),\ diff --git a/programs/develop/libraries/console_coff/console.asm b/programs/develop/libraries/console_coff/console.asm index 1098b4db9..0163ffcf5 100644 --- a/programs/develop/libraries/console_coff/console.asm +++ b/programs/develop/libraries/console_coff/console.asm @@ -1,6 +1,7 @@ -; 㭪樨 ࠡ ᮫ ணࠬ ਎ +; SPDX-License-Identifier: GPL-2.0 +; Functions for interaction with the console for KolibriOS programs ; diamond, 2006-2008 - +; Copyright (C) 2006-2025 KolibriOS team format MS COFF @@ -56,7 +57,7 @@ START: or eax, -1 ret 4 -; 樠 ᮫ +; Console initialization ; void __stdcall con_init(dword wnd_width, dword wnd_height, ; dword scr_width, dword scr_height, const char* title); @@ -271,13 +272,13 @@ con_write_length: pop esi ebx ret 8 -; ᨬ -con.printfc.normal = 0 ; ଠ ᨬ +; Each character is classified as one of the following +con.printfc.normal = 0 ; normal character con.printfc.percent = 1 ; '%' con.printfc.dot = 2 ; '.' con.printfc.asterisk = 3 ; '*' con.printfc.zero = 4 ; '0' -con.printfc.digit = 5 ; 㫥 +con.printfc.digit = 5 ; non-null digit con.printfc.plus = 6 ; '+' con.printfc.minus = 7 ; '-' con.printfc.sharp = 8 ; '#' @@ -376,24 +377,24 @@ con_printf: jmp .normal .spec_begin: xor ebx, ebx -; bl = ⨯ 樨: -; 0 = 砫 -; 1 = ⠭ 騩 0 ᯥ䨪樨 ଠ -; 2 = ⠥ ਭ -; 3 = ⠥ 筮 -; 4 = ⠭ ࠧ 㬥 -; 5 = ⠥ ⨯ -; bh = 䫠: -; 1 = 䫠 '#', 뢮 0/0x/0X -; 2 = 䫠 '-', ࠢ -; 4 = 䫠 '0', ﬨ -; 8 = 䫠 'h', ⪨ 㬥 +; bl = position type: +; 0 = start +; 1 = read leading 0 in format specification +; 2 = read width field +; 3 = read precision field +; 4 = read argument size field +; 5 = read type field +; bh = flags: +; 1 = flag '#', output 0/0x/0X +; 2 = flag '-', align left +; 4 = flag '0', zero padding +; 8 = flag 'h', short argument push -1 ; dword [esp+8] = precision push -1 ; dword [esp+4] = width push 0 -; byte [esp] = 䫠 0/'+'/' ' +; byte [esp] = flag 0/'+'/' ' .spec: xor eax, eax lodsb @@ -529,7 +530,7 @@ con_printf: @@: push edx xor edx, edx -; ᫮ eax, ᭮ ⥬ ᫥ ecx +; number in eax, radix in ecx @@: cmp dword [esp+16+8], 0 jnz .print_num @@ -1777,10 +1778,10 @@ con.data2image: mov al, [esi+1] push eax and al, 0xF - mov ebx, eax ; 梥 ⥪ + mov ebx, eax ; text color pop eax shr al, 4 - mov ebp, eax ; 梥 䮭 + mov ebp, eax ; background color sub ebx, ebp lodsb inc esi @@ -2188,7 +2189,7 @@ con_gets2: sub ebx, 1 jle .ret mov byte [esi], 0 - xor ecx, ecx ; 㦥 񭭮 ப + xor ecx, ecx ; length of the already entered string call con.get_data_ptr .loop: call con_getch2 @@ -2596,15 +2597,15 @@ con.wake: popad ret -; ⮪ ᮫. ࠡ뢠 뢮. +; Console window thread. Handles input and output. con.thread: -; ⮪ ॠ IPC, ஥ ᯮ ⮫쪮 ⮣, ⮡ 뫮 "ࠧ㤨" +; The thread responds to IPC, which is used only so that it can be "waken up" push 40 pop eax push 0x80000067 ; program dont getting events mouse, when it dont active pop ebx int 0x40 - xor ebx,ebx ;clear ebx + xor ebx,ebx ; clear ebx mov al, 60 mov bl, 1 mov ecx, con.ipc_buf @@ -3212,7 +3213,7 @@ con.draw_image: @@: int 0x40 push edx -; 塞 㭪 +; Calculate the height of the slider mov ax, dx sub eax, con.vscroll_btn_height mov ecx, eax @@ -3222,7 +3223,7 @@ con.draw_image: jae @f mov al, 5 @@: -; eax = 㭪. 塞 㭪 +; eax = slider height. Calculate the slider position mov [con.vscrollbar_size], eax xchg eax, ecx sub eax, ecx @@ -3232,7 +3233,7 @@ con.draw_image: div ebx pop edx push edx -; ecx = 㭪, eax = +; ecx = slider height, eax = position add eax, con.vscroll_btn_height mov [con.vscrollbar_pos], eax mov ebx, con.vscroll_bgr2 @@ -3331,8 +3332,8 @@ con.extended_numlock: cursor_esc dd 27 + ('[' shl 8) -; ⥪饩 ॠ樨 祭 㬮砭 ⠪. -; 饬 , , 뢠 ࠬ ini-䠩 console.ini. +; In the current implementation, the default values are: +; In the future, they may be read as parameters from the console.ini ini file. con.def_wnd_width dd 80 con.def_wnd_height dd 25 con.def_scr_width dd 80 diff --git a/programs/develop/libraries/console_coff/console_ru.txt b/programs/develop/libraries/console_coff/console_ru.txt index dd74634a3..c494d3cee 100644 --- a/programs/develop/libraries/console_coff/console_ru.txt +++ b/programs/develop/libraries/console_coff/console_ru.txt @@ -1,91 +1,91 @@ -console.obj : +console.obj экспортирует следующие функции: -typedef unsigned long dword; /* 32- */ -typedef unsigned short word; /* 16- */ +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 - . +Инициализация консоли. Вызывается один раз в начале программы. +wnd_width, wnd_height - высота и ширина (в символах) видимой в окне консоли + области; +scr_width, scr_height - высота и ширина (в символах) всей консоли; +любые из первых 4 параметров могут быть установлены в -1 (=0xFFFFFFFF) + - использовать значения по умолчанию; +title - заголовок окна консоли. void __stdcall con_exit(bool bCloseWindow); - . () bCloseWindow -, , - , " [Finished]". +Вызывается при завершении программы. Если (байтовый) параметр bCloseWindow +нулевой, то окно консоли остаётся на экране до того момента, как пользователь +пожелает закрыть его, при этом к заголовку добавляется строка " [Finished]". void __stdcall con_set_title(const char* title); - . +Устанавливает новый заголовок окна консоли. void __stdcall con_write_asciiz(const char* string); - ASCIIZ- , . +Выводит ASCIIZ-строку в консоль в текущую позицию, продвигает текущую позицию. void __stdcall con_write_string(const char* string, dword length); - con_write_asciiz, length . +Аналогично con_write_asciiz, но выводит ровно length символов. int __cdecl con_printf(const char* format, ...) - printf ANSI C. +Стандартная 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[;;m - : - , ; - 0 = ( ) - 1 = - 5 = - 7 = ( ) - 30 = - 31 = - 32 = - 33 = - 34 = - 35 = - 36 = - 37 = - 40 = - 41 = - 42 = - 43 = - 44 = - 45 = - 46 = - 47 = - 5 : - Esc[A - - Esc[B - - Esc[C - - Esc[D - +/* Если флаг сброшен, функция интерпретирует специальные символы: + 10 ('\n') - перевод в начало следующей строки + 13 ('\r') - перевод в начало текущей строки + 8 ('\b') - забой (на символ назад) + 9 ('\t') - табуляция + 27 ('\033'='\x1B') - начало Esc-последовательности; +иначе выводит их как обычные символы. */ +/* Поддерживаемые Esc-последовательности: + Esc[;;m - выбор атрибутов символов: + можно указывать один, два или три кода в любом порядке; + 0 = нормальное изображение (белые символы на чёрном фоне) + 1 = выделение яркостью + 5 = яркий фон + 7 = реверсное изображение (чёрные символы на белом фоне) + 30 = чёрные символы + 31 = красные символы + 32 = зелёные символы + 33 = жёлтые символы + 34 = синие символы + 35 = фиолетовые символы + 36 = бирюзовые символы + 37 = белые символы + 40 = чёрный фон + 41 = красный фон + 42 = зелёный фон + 43 = жёлтый фон + 44 = синий фон + 45 = фиолетовый фон + 46 = бирюзовый фон + 47 = белый фон + Следующие последовательности появились в версии 5 библиотеки: + Esc[A - переместить курсор на строк вверх + Esc[B - переместить курсор на строк вниз + Esc[C - переместить курсор на позиций вправо + Esc[D - переместить курсор на позиций влево Esc[;H = Esc[;f - - , - Esc[2J - , - 9 : + установить курсор в позицию с координатами , + Esc[2J - очистить экран, переместить курсор в левый верхний угол + Следующие последовательности появились в версии 9 библиотеки: Esc[J or Esc[0J - Erase everything below cursor Esc[1J - Erase everything above cursor Esc[K - Erase in line @@ -107,83 +107,83 @@ dword __stdcall con_set_flags(dword new_flags); Esc]2ST/BEL - Implemented identical as Esc]0. */ -/* ; 6 ; - con_set_flags */ +/* сигнал о закрытии окна консоли; появился в версии 6 библиотеки; + флаг игнорируется функцией con_set_flags */ #define CON_WINDOW_CLOSED 0x200 - = 7. +Значение по умолчанию для флагов = 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% . +Устанавливает значение высоты курсора. Возвращает старое значение. +Попытка установить значение вне корректного интервала (от 0 до font_height-1) +игнорируется. +Курсор высоты 0 не отображается на экране. +Значение высоты по умолчанию - 15% от высоты шрифта. int __stdcall con_getch(void); - . - ASCII-. -(, Fx ) 0, - ( DOS- ). - 7 , - 0. +Считывает один символ с клавиатуры. +Для обычных символов возвращается ASCII-код. Для расширенных символов +(например, Fx и стрелочек) первый вызов функции возвращает 0, +а повторный вызов возвращает расширенный код (подобно DOS-функциям ввода). +Начиная с версии 7 библиотеки, после закрытия окна консоли возвращается +значение 0. word __stdcall con_getch2(void); - . ASCII- -(0 ), - -( BIOS- ). - 7 , - 0. +Считывает один символ с клавиатуры. Младший байт содержит ASCII-код клавиши +(0 для расширенных символов), старший - расширенный код +(подобно BIOS-функциям ввода). +Начиная с версии 7 библиотеки, после закрытия окна консоли возвращается +значение 0. int __stdcall con_kbhit(void); - 1, - , 0 . - con_getch con_getch2. - 6 , 1. +Возвращает 1, если какая-то клавиша была нажата, 0 иначе. Для считывания +нажатой клавиши предназначены функции con_getch и con_getch2. +Начиная с версии 6 библиотеки, после закрытия окна консоли всегда возвращает 1. char* __stdcall con_gets(char* str, int n); - . - , n-1 ( , - ). -str. . - 6 , - NULL, . -6 . +Считывает строку с клавиатуры. Ввод прерывается при поступлении символа +новой строки, а также по прочтении 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 . +Функция появилась в версии 4 библиотеки. +Полностью аналогична con_gets за исключением того, что когда пользователь +нажимает нераспознанную клавишу, вызывается указанная callback-процедура +(которая может, например, обрабатывать up/down для истории ввода и tab для +автодополнения). Процедуре передаётся код клавиши и три указателя - на строку, +на лимит и на текущую позицию в строке. Процедура может менять содержимое +строки и может менять саму строку (например, перераспределить память для +увеличения лимита), лимит, позицию в строке - для этого и передаются указатели. +Возвращаемое значение: 0=строка не менялась; 1=строка изменилась, необходимо +удалить старую и вывести новую; 2=строка изменилась, необходимо её вывести; +3=немедленно выйти из функции. +Начиная с версии 6 библиотеки, функция возвращает указатель на введённую +строку при успешном чтении и NULL, если окно консоли было закрыто. До версии +6 возвращаемое значение было неопределено. void __stdcall con_cls(); - 5 . - . +Функция появилась в версии 5 библиотеки. +Очищает экран и переводит курсор в левый верхний угол. void __stdcall con_get_cursor_pos(int* px, int* py); - 5 . - *px x, *py - y. +Функция появилась в версии 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), . +Функция появилась в версии 5 библиотеки. +Устанавливает курсор в позицию с указанными координатами. Если какой-то из +параметров выходит за пределы соответствующего диапазона (от 0 до scr_width-1 +для x, от 0 до scr_height-1 для y, scr_width и scr_height были заданы при +вызове con_init), то соответствующая координата курсора не меняется. int __stdcall con_get_input(char* buf, int buflen); Read as many input events as are available and fit in the receive buffer.