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

{
> How would one find the diffrence between a 43 line monitor and a 50
> line monitor?

At least VGA is required for 50 lines of 16-color text.  At least EGA is
required for the 43 lines.  Simply test the video BIOS to identify a VGA.

Those displays use an 8x8 font so multiply the number of lines by 8. VGA 50*8
= 400 lines which is greater than EGA vertical resolution of 350. For 25 line
display, VGA uses 8x16y font and EGA uses 8x14y font.
}

procedure OnlyVGA; assembler;
asm
  @CheckForVga: {push    es}
                mov     AH,1ah       {Get Display Combination Code}
                mov     AL,00h       {AX := $1A00;}
                int     10h          {Intr($10, Regs);}
                cmp     AL,1ah       {IsVGA:= (AL=$1A) AND((BL=7) OR(BL=8))}
                jne     @NoVGA
                cmp     BL,07h       {VGA w/ monochrome analog display}
                je      @VgaPresent
                cmp     BL,08h       {VGA w/ color analog display}
                je      @VgaPresent
  @NoVGA:
                mov     ax,0003h     {text mode}
                int     10h
                push    cs
                pop     ds
                lea     dx,@message
                mov     ah,9
                int     21h          {print $ terminated string}
                mov     ax,4c00h
                int     21h          {terminate}
  @message:     db      'Sorry, but you need a VGA to see this!',10,13,24h
  @VgaPresent:  {pop     es}
  {After here is where your VGA code can execute}
end;  {OnlyVGA}


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