qa.hlp (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Int 21H Function 44H Subfunction 0CH
   Summary  Notes  Back
──────────────────────────────────────────────────────────────────────────────
 
▀ If the minor code is 45H (Set Iteration Count) or 65H (Get Iteration
  Count), the parameter block is simply a 2-byte buffer containing or re-
  ceiving the iteration count for the printer. This call is valid only for
  printer drivers that support Output Until Busy, and determines the number
  of times the device driver will wait for the device to signal ready be-
  fore returning from the output call.
 
▀ For MS-DOS version 3.3, the parameter block for minor codes 4AH (Select
  Code Page), 4DH (End Code Page Preparation), or 6AH (Query Code Page)
  has the following format:
 
  dw     2          ; length of following data
  dw     ?          ; code page ID
 
▀ For MS-DOS version 4.0, minor codes 4AH and 6AH also set or get the
  double-byte character set (DBCS) lead byte table, and the following for-
  mat is used:
 
  dw     (n+2)*2+1  ; length of following data
  dw     ?          ; code page ID
  db     start,end  ; DBCS lead byte range 1
  (vertical 3-ellipsis symbol)
  db     start,end  ; DBCS lead byte range n
  db     0,0
 
▀ The parameter block for minor code 4CH (Start Code Page Preparation)
  has the following format:
 
  dw     0          ; font type
                    ; bit 0 = 0 downloaded
                    ;       = 1 cartridge
                    ; bits 1-15 = reserved (0)
  dw     (n+1)*2    ; length of remainder of
                    ;  parameter block
  dw     n          ; number of code pages in
                    ;  the following list
  dw     ?          ; code page 1
  dw     ?          ; code page 2
  (vertical 3-ellipsis symbol)
  dw     ?          ; code page n
 
▀ The parameter block for minor code 6BH (Query Prepare List) has the fol-
  lowing format, assuming n hardware code pages and m prepared code pages
  (n <= 12, m <= 12):
 
  dw     (n+m+2)*2  ; length of following data
  dw     n          ; no. of hardware code pages
  dw     ?          ; hardware code page 1
  dw     ?          ; hardware code page 2
  (vertical 3-ellipsis symbol)
  dw     ?          ; hardware code page n
  dw     m          ; no. of prepared code pages
  dw     ?          ; prepared code page 1
  dw     ?          ; prepared code page 2
  (vertical 3-ellipsis symbol)
  dw     ?          ; prepared code page m
 
▀ After a minor code 4CH (Start Code Page Preparation) call, the data de-
  fining the code page font is written to the driver using one or more
  calls to the IOCTL Write Control Data subfunction (Interrupt 21H, Func-
  tion 44H, Subfunction 03H). The format of the data is device- and driver-
  specific. After the font data has been written to the driver, a minor
  code 4DH (End Code Page Preparation) call must be issued. If no data is
  written to the driver between the minor code 4CH and 4DH calls, the
  driver interprets the newly prepared code pages as hardware code pages.
 
▀ A special variation of the minor code 4CH (Start Code Page Preparation)
  call, called "Refresh," is required to actually load the peripheral de-
  vice with the prepared code pages. The refresh operation is obtained by
  requesting minor code 4CH with each code page position in the parameter
  block set to -1, followed by an immediate call for minor code 4DH (End
  Code Page Preparation).
 
▀ [4.0+] For minor codes 5FH (Set Display Information) and 7FH (Get Display
  Information), the parameter block is formatted as follows:
 
  db     0          ; level (0 in MS-DOS 4.0)
  db     0          ; reserved (must be 0)
  dw     14         ; length of following data
  dw     ?          ; control flags
                    ; bit 0  = 0 intensity
                    ;        = 1 blink
                    ; bits 1-15 = reserved (0)
  db     ?          ; mode type (1 = text, 2 = APA)
  db     0          ; reserved (must be 0)
  dw     ?          ; colors
                    ; 0 = monochrome compatible
                    ; 1 = 2 colors
                    ; 2 = 4 colors
                    ; 4 = 16 colors
                    ; 8 = 256 colors
  dw     ?          ; pixel columns
  dw     ?          ; pixel rows
  dw     ?          ; character columns
  dw     ?          ; character rows
                                    -♦-