INT 21,44,C / IOCTL,C - Generic I/O for Handles

AH = 44h

AL = 0C

BX = handle

CH = device type

= 00 unknown device type (DOS 3.3+)

= 01 COMx (DOS 3.3+)

= 03 CON (DOS 3.3+)

= 05 LPTx (DOS 3.3+), printer (DOS 3.2)

CL = minor function code (when CH = 3 or CH = 5)

= 45 set iteration count (DOS 3.2 only)

= 4A select code page (DOS 3.3+); parameter format:

00 word length of data

02 word code page ID

04 nwords character set data array (see offset 00)

= 4C code page prepare start (DOS 3.3+); parameter format:

00 word flags

02 word length of remainder of parameter block

04 word number of code pages following

06 nwords code page 1,...,N

= 4D code page prepare end (DOS 3.3+); parameter format:

00 word length of data

02 word code page ID

= 5F set display info (DOS 4.x, when CH=3); parameter format:

00 byte level (0 for DOS 4.0)

01 byte reserved

02 word length of following data

04 word control flags

bit 0 set for blink, clear for intensity

bits 1 to 15 reserved

06 byte mode type (1=text, 2=graphics)

07 byte reserved

08 word colors; 0=monochrome, n=bits per pixel

0A word pixel columns

0C word pixel rows

0E word character columns

10 word character rows

= 65 get iteration count (DOS 3.2 only)

= 6A query selected code page (DOS 3.3+); parameter format:

00 word length of data

02 word code page ID

04 nwords character set data array (see offset 00)

= 6B query prepare list (DOS 3.3+); Parameter format:

00 word length of following data

02 word number of hardware code pages

04 nwords hardware code page array

xx word number of prepared code pages

xx nwords prepared code page array

= 7F get display info (DOS 4.x, CH = 3)

00 byte level (0 for DOS 4.0)

01 byte reserved

02 word length of following data

04 word control flags

bit 0 set for blink, clear for intensity

bits 1 to 15 reserved

06 byte mode type (1=text, 2=graphics)

07 byte reserved

08 word colors; 0=monochrome, n=bits per pixel

0A word pixel columns

0C word pixel rows

0E word character columns

10 word character rows

DS:DX = pointer to iteration count word (DOS 3.2)

= pointer to parameter block (DOS 3.3)

on return

AX = error code if CF set (see ~DOS ERROR CODES~)

- iteration count word specifies the number of times to retry

an operation before aborting

- DOS 3.3 changed this function to handle code page switching

- implemented from DOS 3.2

- DOS 4.x adds support for double byte characters

- see IBM DOS Technical Reference Manual for more details


Zurück zum Interrupt Info. Roger Morgan / 1998 L.Änderung 29.03.99