[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]