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