Помощь - Поиск - Пользователи - Календарь
Полная версия: Как установить граф. режим 640х480 и больше (svga)
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
Andruid
Подскажите, плз, ка мне спомощью прерываний BIOS (или напряму в регистры, не суть важно) установить графический режим с разрешением, больше чем 320х200? Хочу, скажем 640х480
Shadow
Y-a-h-o-o VESA заработала на 16 млн цветов
смотри ссылку
Графика в Tasm
смотри ссылку
Procedure VESAINIT;Assembler;
asm
    mov ax,4f02h            {дгжЁп VESA}
    mov bx,10fh            {०Ё¬ 320*200 16-¬Ё«Ё®®ў}
    int 10h                  {BIOS video interrupt}
    mov ax,0a000h            {video memory adress}
    mov es,ax            {init es for video memory}
end;
Из Пирогова ASSEMBLER учебный курс
в bx номер режима
Цитата
100h 256 640*400
101h 256 640* 480
102h 16 800*600
103h
104h
105h
115h - 16777216 800*600

их там много smile.gif
GoodWind
посмотри этот док:
GoodWind
Разрешение:640x480
Номера графических режимов:12h,101h,110h,111h,112h

Разрешение:800x600
Номера графических режимов:102h,103h,113h,114h,115h


Двузначные номера - стандартные VGA, устанавливаются через 0 функцию 10h
(то-есть в AH=0 al=номер режима) прерывания.

так-вот:

procedure SetVga(mode:byte); assembler;
asm
 mov ax,mode    
 int 10h        
end;


или точнее:

procedure SetVga(mode:byte); assembler;
asm
 mov ah,0
 mov al,mode    
 int 10h        
end;


Трехзначные номера - VESA, устанавливаются через 4Fh функцию 2 подфункцию.
(т.е: ax = 4F02h, bx=номер режима)

procedure SetVesa(mode:word); assembler;
asm
  mov bx,mode
  mov ax,4F02h  
  int 10h    
end;


если что неправильно, пусть меня поправят Гуру...

ps: и не забудь - текстовый режим -

procedure gotext25x80;assembler;
asm
 mov ax,3
 int 10h
end;
Dark
Я извиняюсь конечно, но я не считаю эту тему избранной => переношу ее в обычные
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.