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

    {
    > Who knows how to detect and access dual display's?

    As this feature is only available if you're using VGA as the primary adapter
    you can get information about a second adapter by interrupt 10h.

            Get primary/secondary video adapter:
            interrupt:      10h
            input:          AH = 1Ah
                            AL = 00h                               (subFunction)
            output:         AL = 1Ah                (indicates Function support)
                            BL = code For active card              (primary one)
                            BH = code For inactive card

                            where following codes are valid:
                            00h     no card
                            01h     MDA With monochrome display
                            02h     CGA With CGA display
                            03h     reserved
                            04h     EGA With EGA or multiscan display
                            05h     EGA With monochrome display
                            06h     reserved
                            07h     VGA With monochrome display
                            08h     VGA With VGA or multiscan display
                            09h     reserved
                            0Ah     MCGA With CGA display (PS/2)
                            0Bh     MCGA With monochrome display (PS/2)
                            0Ch     MCGA With color display (PS/2)
                            FFh     unknown

            Set primary/secondary video adapter:
            interrupt:      10h
            input:          AH = 1Ah
                            AL = 01h                                (subFunction)
                            BL = code For active card        (here secondary one)
                            BH = code For inactive card
            output:         AH = 1Ah                 (indicates Function support)

    First you call subFunction 00h to get the code of your primary and secondary
    video adapter. Then you can toggle between them by using subFunction 01h.

    To get back ontopic (Pascal code is needed ;-)) here's a simple example For a
    toggle Procedure:
    }
    Uses Dos;

    Procedure ToggleAdapters;
    Var Regs            : Registers;
        Active,Inactive : Byte;
    begin
      Regs.AH := $1A;
      Regs.AL := $00;
      Intr($10,Regs);
      If Regs.AL=$1A Then           { is Function supported? (is VGA?) }
     begin
       Active   := Regs.BL;                      { exchange both codes }
       Inactive := Regs.BH;
       Regs.AH  := $1A;
       Regs.AL  := $01;
       Regs.BL  := Inactive;
       Regs.BH  := Active;
       Intr($10,Regs);                           { now you can't see me }
     end;
    end;

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