Помощь - Поиск - Пользователи - Календарь
Полная версия: Полезные процедуры для текстового режима.
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
AlaRic
НЕБОЛЬШИЕ ЧАСТО ПРИМЕНЯЮЩИЕСЯ ПРОЦЕДУРЫ
Включение клавиатуры:
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
А также процедуры, которых нет в модуле CRT.
Установка режима экрана. (установить можно любой графический и любой текстовый)
Procedure SetMode(CMode:byte);
Begin
 asm
  MOV AH,00H
  MOV AL,CMode
  INT 10H
 endEnd;

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

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


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


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

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

Получить код видео режима
Procedure GetVideoMode(var m:byte);
begin
 asm
  mov ah,0FH
  INT 10H
  MOV m,al
 endend;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.