home *** CD-ROM | disk | FTP | other *** search
- {
- > 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;