Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Написание игр _ Полезные процедуры для текстового режима.

Автор: AlaRic 16.05.2004 18:27

НЕБОЛЬШИЕ ЧАСТО ПРИМЕНЯЮЩИЕСЯ ПРОЦЕДУРЫ
Включение клавиатуры:

procedure keyenable;
begin
asm
in al,21h
and al,not 2
out 21h,al
end;
end;


Выключение клавиатуры:
procedure keydisable;
begin
asm
in al,21h
or al,2
out 21h,al
end;
end;


Выключение курсора в текстовом режиме:
procedure CursorOff;
begin
asm
mov ah,1
mov cx,2020h {Убрать мерцание за пределы знакоместа}
int 10h
end;
end;


Включение курсора в текстовом режиме:
procedure CursorOn;
begin
asm
mov ah,1
mov cx,0607h {Установить мерцание 6й и 7й строк}
int 10h
end;
end;

Автор: Altair 26.05.2004 20:25

А также процедуры, которых нет в модуле CRT.
Установка режима экрана. (установить можно любой графический и любой текстовый)

Procedure SetMode(CMode:byte);
Begin
asm
MOV AH,00H
MOV AL,CMode
INT 10H
end
End;

установить курсор в текстовом режиме (размер)
Procedure SetCur(ns,ks:byte);
begin
asm
mov ah,01H
mov ch,ns
mov cl,ks
int 10H
end
End;

Переход в точку X,Y в текстовом режиме (аналог стандартной)
Procedure GOTOXY(x,y);
begin
asm
mov ah,02
mov bh,00
mov dh,y+1
mov dl,x+1
int 10H
end
end;


получить координаты курсора в текстовом режиме (НЕ КУРСОРА МЫШИ!!!!!)
procedure GetCur(var x,y:byte);
begin
asm
mov ah,03H
mov bh,00H
int 10H
end
end;


Установить активную страницу в текстовом режиме

procedure SetAktivPage(p:byte);
begin
asm
mov ah,05H
mov al,p
int 10H
end
end;

Получить код видео режима
Procedure GetVideoMode(var m:byte);
begin
asm
mov ah,0FH
INT 10H
MOV m,al
end
end;