console library version 7; console examples updated

git-svn-id: svn://kolibrios.org@1145 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2009-08-27 16:05:05 +00:00
parent 5d45c37af3
commit 0dc8dae83d
5 changed files with 17 additions and 11 deletions

View File

@ -1225,7 +1225,7 @@ con_getch:
ret
con_getch_closed:
or eax, -1
xor eax, eax
ret
; int __stdcall con_getch2(void);
@ -1255,8 +1255,6 @@ con_gets2:
call con.get_data_ptr
.loop:
call con_getch2
cmp eax, -1
jz .closed
test al, al
jz .extended
cmp al, 8
@ -1413,6 +1411,8 @@ con_gets2:
mov al, 0
mov ah, 0xF
.extended:
test ah, ah
jz .closed
xchg al, ah
cmp al, 0x4B
jz .left
@ -2273,7 +2273,7 @@ con.vscroll_pt dd -1
align 16
EXPORTS:
dd szStart, START
dd szVersion, 0x00020006
dd szVersion, 0x00020007
dd szcon_init, con_init
dd szcon_write_asciiz, con_write_asciiz
dd szcon_printf, con_printf

View File

@ -86,7 +86,7 @@ dword __stdcall con_set_flags(dword new_flags);
Esc[<number>C - переместить курсор на <number> позиций вправо
Esc[<number>D - переместить курсор на <number> позиций влево
*/
/* сигнал о закрытии окна консоли;
/* сигнал о закрытии окна консоли; появился в версии 6 библиотеки;
флаг игнорируется функцией con_set_flags */
#define CON_WINDOW_CLOSED 0x200
Значение по умолчанию для флагов = 7.
@ -108,15 +108,15 @@ int __stdcall con_getch(void);
Для обычных символов возвращается ASCII-код. Для расширенных символов
(например, Fx и стрелочек) первый вызов функции возвращает 0,
а повторный вызов возвращает расширенный код (подобно DOS-функциям ввода).
Начиная с версии 6 библиотеки, после закрытия окна консоли возвращается
значение -1.
Начиная с версии 7 библиотеки, после закрытия окна консоли возвращается
значение 0.
word __stdcall con_getch2(void);
Считывает один символ с клавиатуры. Младший байт содержит ASCII-код клавиши
(0 для расширенных символов), старший - расширенный код
(подобно BIOS-функциям ввода).
Начиная с версии 6 библиотеки, после закрытия окна консоли возвращается
значение -1 (0xFFFF при интерпретации как word).
Начиная с версии 7 библиотеки, после закрытия окна консоли возвращается
значение 0.
int __stdcall con_kbhit(void);
Возвращает 1, если какая-то клавиша была нажата, 0 иначе. Для считывания

View File

@ -68,6 +68,8 @@ mainloop:
jmp mainloop
extended:
call [con_getch]
test eax, eax
jz done
push eax
push eax
push string_extended

View File

@ -41,7 +41,7 @@ start:
; for (;;)
; {
; con_write_asciiz("Enter string (empty for exit): ");
; con_gets(s,256);
; if (!con_gets(s,256)) break;
; if (s[0] == '\n') break;
; con_write_asciiz("You entered: ");
; con_write_asciiz(s);
@ -52,6 +52,8 @@ mainloop:
push 256
push s
call [con_gets]
test eax, eax
jz done
cmp [s], 10
jz done
push str2

View File

@ -41,7 +41,7 @@ start:
; for (;;)
; {
; con_write_asciiz("Enter string (empty for exit): ");
; con_gets2(mycallback,s,256);
; if (!con_gets2(mycallback,s,256)) break;
; if (s[0] == '\n') break;
; con_write_asciiz("You entered: ");
; con_write_asciiz(s);
@ -53,6 +53,8 @@ mainloop:
push s
push mycallback
call [con_gets2]
test eax, eax
jz done
cmp [s], 10
jz done
push str2