Note: This IBM PC BIOS API call is for DOS/Win16 personality only. Use Family API for portability.

Note: osFree Macro Library provides macros for most of functions

Int 10H, AH=00H

Version

IBM 5150 and higher

Brief

Specify the display mode for the currently active display adapter

Macro

@SetMode

Family API

VioSetMode

Input

AH = 00h

AL = Mode

Return

AL = video mode flag (Phoenix, AMI BIOS)

20h mode > 7

30h modes 0-5 and 7

3Fh mode 6

AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)

Notes

Install check/adapter detect:

for Ahead adapters, the signature “AHEAD” at C000h:0025h

for Paradise adapters, the signature “VGA=” at C000h:007Dh

for Oak Tech OTI-037/057/067/077 chipsets, the signature “OAK VGA” at C000h:0008h

for ATI adapters, the signature “761295520” at C000h:0031h; the byte

at C000h:0043h indicates the chipset revision:

31h for 18800

32h for 18800-1

33h for 18800-2

34h for 18800-4

35h for 18800-5

62h for 68800AX (Mach32) (see also #00732)

the two bytes at C000h:0040h indicate the adapter type

“22” EGA Wonder

“31” VGA Wonder

“32” EGA Wonder800+

the byte at C000h:0042h contains feature flags

bit 1: mouse port present

bit 4: programmable video clock

the byte at C000h:0044h contains additional feature flags if chipset

byte > 30h (see #00009)

for Genoa video adapters, the signature 77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h and XXh is

00h for Genoa 6200/6300

11h for Genoa 6400/6600

22h for Genoa 6100

33h for Genoa 5100/5200

55h for Genoa 5300/5400

for SuperEGA BIOS v2.41+, C000h:0057h contains the product level

for Genoa SuperEGA BIOS v3.0+, C000h:0070h contains the signature “EXTMODE”, indicating support for extended modes

IBM standard modes do not clear the screen if the high bit of AL is set (EGA or higher only)

the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA, Everex EV-673, etc.

intercepted by GRAFTABL from Novell DOS 7 and Caldera OpenDOS 7.01.

Note

Text based on Ralf Brown Interrupt List Release 61

IBM PC BIOS API
Video I/O	INT 10H: 00H, 01H, 02H, 03H, 05H, 06H, 07H, 08H, 09H, 0AH, 0BH, 0CH, 0DH, 0EH, 0FH
Hardware info	INT 11H, INT 12H
Serial I/O	INT 14H: 00H, 01H, 02H, 03H
Tape I/O	INT 15H: 00H, 01H, 02H, 03H
Keyboard I/O	INT 16H: 00H, 01H, 02H
Printer I/O	INT 17H: 00H, 01H, 02H
Disk I/O	INT 13H: 00H, 01H, 02H, 03H, 04H, 05H
Date and Time	INT 1AH: 00H, 01H
osFree Macro Library
Video I/O	@SetMode @SetCurSz @SetCurPos @GetCur @SetPage @ScrollUp @ScrollDn @Scroll @GetChAtr @PutChAtr @PutCh @SetPalet @SetColor @SetDot @GetDot @WrtTTY @VideoState @GetMode @GetDisplay @GetVideoState @GetEGAInfo @Cls
Hardware info	@Equipment @MemSize
Serial I/O	@AuxInit @AuxSendChar @AuxRecieveChar @AuxStatus
Tape I/O	@TapeOn @TapeOff @TapeRead @TapeWrite
Keyboard I/O	@KbdStatus @CharIn @CharPeek
Printer I/O	@PrnPrint @PrnInit @PrnStatus
Disk I/O	@DskReset @DskStatus @DskRead @DskWrite @DskVerify @DskFormat
Date and Time	@SetTime @GetTime
Mouse	@MouInit @MouShowPointer @MouStatus @MouSetPos @MouSetMickey @MouRegion
Memory manager	@ModBlok SET_BLOCK
Family API
DOS	Process Manager	DosBeep DosExit DosSleep DosExecPgm
File Manager	DosChDir DosChgFilePtr DosClose DosDelete DosDupHandle DosMkDir DosMove DosQCurDir DosQCurDisk DosSetFileMode DosOpen DosQFileInfo DosRead DosQFileMode DosQFSInfo DosQVerify DosRmDir DosSelectDisk DosFindClose DosFindFirst DosFindNext DosSetFileInfo DosSetVerify DosWrite DosFileLocks DosSetFHandState DosNewSize DosBufReset DosQFHandState DosSetFSinfo DosShutdown
Memory Manager	DosFreeSeg DosSubAlloc DosSubFree DosSubSet DosAllocHuge DosAllocSeg DosReallocHuge DosReallocSeg DosGetHugeShift DosCreateCSAlias
NLS	DosCaseMap DosGetCtryInfo DosGetDBCSEv DosSetCtryCode DosGetCollate DosGetMessage DosInsMessage DosPutMessage
Date and Time	DosSetDateTime DosGetDateTime
Devices	DosDevConfig DosDevIOCtl DosDevIOCtl2
Signals	DosHoldSignal DosSetSigHandler
Misc	BadDynLink DosGetEnv DosGetMachineMode DosGetVersion DosError DosErrClass DosSetVec
KBD	KbdCharIn KbdFlushBuffer KbdGetStatus KbdSetStatus KbdStringIn KbdPeek
VIO	VioGetBuf VioGetConfig VioGetCurPos VioGetCurType VioGetPhysBuf VioReadCellStr VioReadCharStr VioScrollUp VioScrollDn VioScrollLf VioScrollRt VioScrUnLock VioSetCurPos VioSetCurType VioSetMode VioGetMode VioShowBuf VioWrtCellStr VioWrtCharStr VioWrtCharStrAtt VioWrtNAttr VioWrtNCell VioWrtNChar VioWrtTTY VioScrLock VioPopUp
Tools	BIND
Modules	DOSCALLS.DLL VIOCALLS.DLL KBDCALLS.DLL MSG.DLL
Libraries	API.LIB OS2386.LIB FAPI.LIB DOSCALLS.LIB SUBCALLS.LIB