• Plynylý scrolling v textovém režimu • V nultém čísle Výhně jsem uveřejnil článek týkající se scrollingu v grafických režimech VGA karty. Jestli jste to zkoušeli v textovém režimu, asi vám výsledný efekt nepřipadal moc plynulý. Scrolling v texťáku je o trochu složitější. Musíme ho rozdělit na dvě části. První rutina bude zvyšovat/snižovat vertikální posun znaku a druhá nastavovat počáteční adresu zobrazování videopaměti. V praxi to bude vypadat asi takto: Procedure SetTextLine(L:Word); Assembler; asm mov dx,3d4h { CRTC adress register } mov bx,L mov al,ch mov ah,bh { počáteční adresa - vyšší byte } out dx,ax inc al mov ah,bl { počáteční adresa - nižšší byte } out dx,ax end; Procedure SetLineAddr(Addr:Byte); Assembler; asm mov dx,3dah { čekání na paprsek } @@1: in al,dx test al,8 jz @@1 mov dx,3dah @@2: in al,dx test al,8 jnz @@2 mov dx,3d4h { CRTC adress register } mov ah,Addr mov al,8 { vertikální posun } out dx,ax end; { hlavní program } begin for y1:=0 to 24 do begin SetLine(y1); for y2:=0 to 15 do SetLineAddr(y2); end end. Tento prográmek plynule odscrolluje na 25. řádku v textovém režimu. Stejným způsobem lze dosáhnout i scrollingu směrem dolů tím že změníme hlavní program takto: begin for y1:=24 downto 0 do begin SetLine(y1); for y2:=15 downto 0 do SetLineAddr(y2); end end. Zjistíte, že se tímto způsobem dá odscrolovat až na 200. řádku. Potom se většinou karta vrátí na začátek videopaměti ([B800:0]) a celkově se posune o osm bajtů. To znamená, že nelze donekonečna scrollovat aniž by se nemusela překreslovala videopamět. Je to podobné jako v grafických režimech, kde například v módu 320x200 zbývá do 64KB ještě 1535 bajtů, to znamená, že se po návratu na začátek videopaměti ([A000:0]) posune nultá pozice o 255 bajtů doprava. Ale existují některé karty (například některé Tridenty), které jaksi nemíní skákat na začátek videopaměti a pokud je k tomu donutíte, tak vesele scrollují dál, někam na podezřelé adresy. Abych se vyhnul případným nekompatibilitám grafických karet, zavedl jsem tedy maximální délku jedné stránky na oněch 200 řádek. Proto jsou některé články rozděleny na více částí. Pokud bude mít někdo problémy nebo dotazy ohledně scrollingu nebo nestandardních grafických a textových módů, můžete se obrátit na mě. Udělám, co bude v mých silách. ReDox výheň