[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]

{
>How do I set those REALLY low-resolution modes which people keep on
>using? i.e. 80x50, etc.  I can tell that the only real reason that most
>scaling effects are so fast is because rather than doing it fullscreen in
>320x200, they use something like 80x50 or so...

Correct, in the old days, anyway.  They usually were unchained
modes with the cell height changed.  Changing the cell height makes
every pixel twice as high, three times as high, etc.  They were
unchained modes so you could change the write plane registers so
when you wrote one pixel to the screen, it wrote four in a row.
Voila, 80x50.

You can't do that because of the way you program (you're strictly
mode 13h) but you *can* change the cell height, like this:
}

Procedure cellheight(a:Byte);Assembler;
  Asm
    push    DX
    mov     AH,a            {cell height is a}
    mov     DX,$3D4         {CRTC_Index $3d4 }
    mov     AL,9            {register function}
    out     DX,AL           {do it!}
    Inc     DL
    In      AL,DX
    And     AL,11100000b
    Or      AL,AH
    out     DX,AL           {do it!}
    pop     DX
  End;


[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]