home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-13 | 343.3 KB | 9,191 lines |
- Interrupt List, part 11 of 13
- This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
- --------*-62---------------------------------
- INT 62 - reserved for user interrupt
- --------d-62---------------------------------
- INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
- Notes: this vector stores the third four bytes of the parameter table for
- hard disk 0
- SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"
- --------b-62---------------------------------
- INT 62 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
- Desc: the low word of this vector contains the segment of the RAM data area
- to be used by the expansion ROM at F400h:2000h, and the high word
- contains the length of the data area; this segment and size are
- both set to 0000h if no ROM is installed at F400h:2000h
- SeeAlso: INT 61"TI Professional PC",INT 63"TI Professional"
- SeeAlso: INT 66"TI Professional PC"
- --------b-62---------------------------------
- INT 62 - HP 95LX - USED BY CALCULATOR
- SeeAlso: INT 60"HP 95LX"
- ----------62---------------------------------
- INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
- AH = function (00h to 07h)
- CX = FFFEh
- DX = FFFFh
- ???
- Return: ???
- Note: the installation check consists of testing for the string "DBLIBRARY"
- 2 bytes past the interrupt handler
- SeeAlso: AH=08h"SQL"
- Index: installation check;MS SQL Server|installation check;Sybase DBLIBRARY
- ----------62---------------------------------
- INT 62 - MPAUSE - ???
- details not yet avialable
- Program: MPAUSE is a program by Manfred Michael which appeared in the German
- _EGA-Handbuch_ from m&t-Verlag
- --------N-62---------------------------------
- INT 62 - XFS v1.76 - FILTERED PACKET DRIVER API
- Program: XFS is a shareware Network File System client by Robert Juhasz
- Desc: XFS requires a packet driver to operate. Since it does redirections,
- etc., it provides its own packet driver entry point, changing the
- signature string of the original packet driver to "XKT DRVR" so that
- it will no longer be found by the packet driver installation check
- Range: INT 61 to INT 66, selected by scanning for two consecutive free
- vectors and hooking the second
- Note: the installation check for this vector is the same as that for the
- packet driver specification: scan for the signature string "PKT DRVR"
- three bytes past the interrupt handler
- SeeAlso: INT 60"Packet Driver",INT 61"XFS"
- --------N-6200-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET PHYSICAL HARDWARE ADDRESS
- AH = 00h
- DS:DX -> 6-byte buffer for address
- Return: AX = length of hardware address???
- Range: INT 4C to INT FB, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=01h"ETHDEV",AH=04h"ETHDEV",AH=09h"ETHDEV",AH=0Eh"ETHDEV"
- SeeAlso: AH=14h"ETHDEV",AH=18h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
- SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
- --------V-620000-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE
- AX = 0000h
- BX = page number (0000h-003Fh)
- Return: AX = status (0000h,0001h,0007h,0008h) (see #2097)
- Program: FGDRIVER is the external video driver for the shareware
- Fastgraph/Light by Ted Gruber Software
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- The amount of memory required by the virtual video page depends on the
- current video mode
- The installation check consists of testing for the signature "FG" ten
- bytes beyond the start of the interrupt handler
- SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0038h
- Index: installation check;Fastgraph/Light
-
- (Table 2097)
- Values for FGDRIVER status:
- 0000h successful
- 0001h specified page is a physical or logical page
- 0007h virtual page created/released, but memory control blocks corrupted
- 0008h not enough memory
- 0009h attempt to free a page which was never created
- FFFCh insufficient memory
- FFFDh page already created, or exists as physical or virtual page
- FFFEh invalid page number
- FFFFh memory manager not initialized
- SeeAlso: #2667
-
- (Table 2667)
- Values for FGDRIVER functions (by driver version):
- Name v1.10 v3.03 v4.02
- FG_ALLOCATE 0042h 0000h 0000h
- FG_ALLOCCMS 009Dh 0001h 0001h
- FG_ALLOCEMS 009Eh 0002h 0002h
- FG_ALLOCXMS 009Fh 0003h 0003h
- FG_AUTOMODE 0004h 0004h 0004h
- FG_BESTMODE 0003h 0005h 0005h
- FG_BOX 00A2h 0006h 0006h
- FG_BOXDEPTH 00A3h 0007h 0007h
- FG_BOXX -- 0008h 0008h
- FG_BUTTON 0078h 0009h 0009h
- FG_CAPSLOCK 0070h 000Ah 000Ah
- FG_CHGATTR 0035h 000Bh 000Bh
- FG_CHGTEXT 0036h 000Ch 000Ch
- FG_CIRCLE 0030h 000Dh 000Dh
- FG_CIRCLEF -- 000Eh 000Eh
- FG_CLIPMAP -- -- 000Fh
- FG_CLIPMASK 0052h 000Fh 0010h
- FG_CLPIMAGE 004Ah 0010h 0011h
- FG_CLPRECT 002Bh 0011h 0012h
- FG_COLORS -- -- 0013h
- FG_COPYPAGE 005Fh 0012h 0014h
- FG_CURSOR 0007h 0013h 0015h
- FG_DASH 0027h 0014h 0016h
- FG_DASHREL 0028h 0015h 0017h
- FG_DEFCOLOR 0014h 0016h 0018h
- FG_DEFPAGES -- 0017h 0019h
- FG_DISPFILE 004Fh 0018h 001Ah
- FG_DISPLAY 004Dh 0019h 001Bh
- FG_DISPLAYP 004Eh 001Ah 001Ch
- FG_DISPPCX 0060h -- --
- FG_DRAW 0025h 001Bh 001Dh
- FG_DRAWMAP 0047h 001Ch 001Eh
- FG_DRAWMASK 0051h 001Dh 001Fh
- FG_DRAWREL 0026h 001Eh 0020h
- FG_DRAWRELX -- 001Fh 0021h
- FG_DRAWX -- 0020h 0022h
- FG_DRECT 002Ch 0021h 0023h
- FG_DRWIMAGE 0049h 0022h 0024h
- FG_EGACHECK 0005h 0023h 0025h
- FG_ELLIPSE 002Dh 0024h 0026h
- FG_ELLIPSEF -- 0025h 0027h
- FG_ERASE 001Eh 0026h 0028h
- FG_FADEIN 0064h 0027h 0029h
- FG_FADEOUT 0065h 0028h 002Ah
- FG_FILLPAGE -- 0029h 002Bh
- FG_FINDPAGE -- -- 002Ch
- FG_FLICDONE -- -- 002Dh
- FG_FLICHEAD -- -- 002Eh
- FG_FLICMODE -- -- 002Fh
- FG_FLICOPEN -- -- 0030h
- FG_FLICPLAY -- -- 0031h
- FG_FLICSIZE -- -- 0032h
- FG_FLICSKIP -- -- 0033h
- FG_FLIPMASK 0054h 002Ah 0034h
- FG_FLOOD -- 002Bh 0035h
- FG_FLPIMAGE 004Ch 002Ch 0036h
- FG_FONTSIZE -- 002Dh 0037h
- FG_FREEPAGE 0043h 002Eh 0038h
- FG_GETADDR 0044h 002Fh 0039h
- FG_GETATTR 0037h 0030h 003Ah
- FG_GETBANKS -- -- 003Bh
- FG_GETBLOCK -- 0031h 003Ch
- FG_GETCHAR 0038h 0032h 003Dh
- FG_GETCLIP -- -- 003Eh
- FG_GETCLOCK 0099h 0033h 003Fh
- FG_GETCOLOR 0015h 0034h 0040h
- FG_GETDACS 00A4h 0035h 0041h
- FG_GETENTRY -- 0036h 0042h
- FG_GETHPAGE 0040h 0037h 0043h
- FG_GETIMAGE 0048h 0038h 0044h
- FG_GETINDEX 0016h 0039h 0045h
- FG_GETKEY 006Eh 003Ah 0046h
- FG_GETLINES 0010h 003Bh 0047h
- FG_GETMAP 0046h 003Ch 0048h
- FG_GETMAXX 000Ah 003Dh 0049h
- FG_GETMAXY 000Bh 003Eh 004Ah
- FG_GETMODE 0000h 003Fh 004Bh
- FG_GETPAGE 003Ch 0040h 004Ch
- FG_GETPIXEL 0020h 0041h 004Dh
- FG_GETRGB 001Ch 0042h 004Eh
- FG_GETVIEW -- -- 004Fh
- FG_GETVPAGE 003Eh 0043h 0050h
- FG_GETXBOX -- -- 0051h
- FG_GETXJOY 0076h 0044h 0052h
- FG_GETXJUST -- -- 0053h
- FG_GETXPOS 0021h 0045h 0054h
- FG_GETYBOX -- -- 0055h
- FG_GETYJOY 0077h 0046h 0056h
- FG_GETYJUST -- -- 0057h
- FG_GETYPOS 0022h 0047h 0058h
- FG_HUSH 008Eh 0048h 0059h
- FG_HUSHNEXT 008Fh 0049h 005Ah
- FG_IMAGEBUF -- 004Ah 005Bh
- FG_IMAGESIZ 0062h 004Bh 005Ch
- FG_INITEMS 00A0h 004Ch 005Dh
- FG_INITJOY 0075h 004Dh 005Eh
- FG_INITPM -- -- 005Fh??? (NOP in v4.02)
- FG_INITXMS 00A1h 004Eh 0060h
- FG_INSIDE -- 004Fh 0061h
- FG_INTJOY 0079h 0050h 0062h
- FG_INTKEY 006Fh 0051h 0063h
- FG_INVERT -- -- 0064h
- FG_JUSTIFY -- 0052h 0065h
- FG_KBINIT -- 0053h 0066h
- FG_KBLAST -- -- 0067h
- FG_KBRESET -- -- 0068h
- FG_KBTEST -- 0054h 0069h
- FG_LOADPCX -- -- 006Ah
- FG_LOCATE 0033h 0055h 006Bh
- FG_MAKEPCX 0061h 0057h 006Ch
- FG_MAKEPPR -- 0058h 006Dh
- FG_MAKESPR -- 0059h 006Eh
- FG_MAPRGB 001Dh 005Ah 006Fh
- FG_MEASURE 0098h 005Bh 0070h
- FG_MEMAVAIL 009Bh 005Ch 0071h
- FG_MEMORY -- 005Dh 0072h
- FG_MOUSE256 -- -- 0073h
- FG_MOUSEBUT 007Ch 005Eh 0074h
- FG_MOUSECUR 007Eh 005Fh 0075h
- FG_MOUSEFIN -- 0060h 0076h
- FG_MOUSEINI 007Ah 0061h 0077h
- FG_MOUSELIM 0080h 0062h 0078h
- FG_MOUSEMOV 0081h 0063h 0079h
- FG_MOUSEPOS 007Dh 0064h 007Ah
- FG_MOUSEPTR 007Fh 0065h 007Bh
- FG_MOUSESPD 0082h 0066h 007Ch
- FG_MOUSEVIS 007Bh 0067h 007Dh
- FG_MOVE 0023h 0068h 007Eh
- FG_MOVEREL 0024h 0069h 007Fh
- FG_MUSIC 008Ch 006Ah 0080h
- FG_MUSICB 008Dh 006Bh 0081h
- FG_NUMLOCK 0072h 006Ch 0082h
- FG_PACK -- -- 0083h
- FG_PAGESIZE -- 006Dh 0084h
- FG_PAINT 002Fh 006Eh 0085h
- FG_PALETTE 0017h 006Fh 0086h
- FG_PALETTES 0018h 0070h 0087h
- FG_PAN 0066h 0071h 0088h
- FG_PATTERN 0050h 0072h 0089h
- FG_PCXHEAD -- 0073h 008Ah
- FG_PCXMODE -- 0074h 008Bh
- FG_PCXPAL -- -- 008Ch
- FG_PCXRANGE -- -- 008Dh
- FG_PLAYING 0091h 0075h 008Eh
- FG_POINT 001Fh 0076h 008Fh
- FG_POINTX -- 0077h 0090h
- FG_POLYEDGE -- -- 0091h
- FG_POLYFILL -- 0078h 0092h
- FG_POLYGON 002Eh 0079h 0093h
- FG_POLYLINE -- 007Ah 0094h
- FG_POLYOFF -- 007Bh 0095h
- FG_PRINT -- 007Ch 0096h
- FG_PRINTC -- -- 0097h
- FG_PUTBLOCK -- 007Dh 0098h
- FG_PUTIMAGE -- 007Eh 0099h
- FG_QUIET 0090h 007Fh 009Ah
- FG_RECT 002Ah 0080h 009Bh
- FG_RESET 0006h 0081h 009Ch
- FG_RESIZE 0045h 0082h 009Dh
- FG_RESTORE 005Bh 0083h 009Eh
- FG_RESUME 0092h 0084h 009Fh
- FG_REVIMAGE 004Bh 0085h 00A0h
- FG_REVMASK 0053h 0086h 00A1h
- FG_SAVE -- 0087h 00A2h
- FG_SCALE -- -- 00A3h
- FG_SCRLOCK 0074h 0088h 00A4h
- FG_SCROLL 0067h 0089h 00A5h
- FG_SETATTR 0019h 008Ah 00A6h
- FG_SETBANKS -- -- 00A7h
- FG_SETCAPS 0071h 008Bh 00A8h
- FG_SETCLIP 0029h 008Ch 00A9h
- FG_SETCOLOR 001Ah 008Dh 00AAh
- FG_SETDACS 00A5h 008Eh 00ABh
- FG_SETENTRY -- 008Fh 00ACh
- FG_SETFUNC 009Ch 0090h 00ADh
- FG_SETHPAGE 0041h 0091h 00AEh
- FG_SETLINES 0011h 0092h 00AFh
- FG_SETMODE 0001h 0093h 00B0h
- FG_SETNUM 0073h 0094h 00B1h
- FG_SETPAGE 003Dh 0095h 00B2h
- FG_SETRGB 001Bh 0096h 00B3h
- FG_SETVIEW -- -- 00B5h
- FG_SETVPAGE 003Fh 0098h 00B6h
- FG_SHEAR -- -- 00B7h
- FG_SHOWFLIC -- -- 00B8h
- FG_SHOWPCX -- 009Ah 00B9h
- FG_SHOWPPR -- 009Bh 00BAh
- FG_SHOWSPR -- 009Ch 00BBh
- FG_SOUND 0088h 009Dh 00BCh
- FG_SOUNDS 0089h 009Eh 00BDh
- FG_SPLIT -- -- 00BEh
- FG_STALL 0097h 009Fh 00BFh
- FG_SUSPEND 0093h 00A0h 00C0h
- FG_SVGAINIT -- 00A1h 00C1h
- FG_SVGASTAT -- 00A2h 00C2h
- FG_SVGAVER -- 00A3h 00C3h
- FG_TCDEFINE -- 00A4h 00C4h
- FG_TCMASK 005Eh 00A5h 00C5h
- FG_TCXFER 005Dh 00A6h 00C6h
- FG_TESTMODE 0002h 00A7h 00C7h
- FG_TEXT 0032h 00A8h 00C8h
- FG_TEXTC -- -- 00C9h
- FG_TRANSFER 005Ch 00A9h 00CAh
- FG_UNPACK -- -- 00CBh
- FG_VBADDR -- -- 00CCh
- FG_VBALLOC -- -- 00CDh
- FG_VBCLOSE -- -- 00CEh
- FG_VBCOPY -- -- 00CFh
- FG_VBCUT -- -- 00D0h
- FG_VBDEFINE -- -- 00D1h
- FG_VBFREE -- -- 00D2h
- FG_VBHANDLE -- -- 00D3h
- FG_VBINIT -- -- 00D4h
- FG_VBOPEN -- -- 00D5h
- FG_VBPASTE -- -- 00D6h
- FG_VBTCCOPY -- -- 00D7h
- FG_VBTCXFER -- -- 00D8h
- FG_VBUNDEF -- -- 00D9h
- FG_VGASTATE -- -- 00DAh
- FG_VOICE 008Ah 00AAh 00DBh
- FG_VOICES 008Bh 00ABh 00DCh
- FG_WAITFOR 0096h 00ACh 00DDh
- FG_WAITKEY 006Dh 00ADh 00DEh
- FG_WAITVR -- 00AEh 00DFh
- FG_WHERE 0034h 00AFh 00E0h
- FG_XALPHA 000Ch 00B0h 00E1h
- FG_XCONVERT 000Eh 00B1h 00E2h
- FG_XVIEW -- -- 00E3h
- FG_YALPHA 000Dh 00B2h 00E4h
- FG_YCONVERT 000Fh 00B3h 00E5h
- FG_YVIEW -- -- 00E6h
- SeeAlso: #2097
- --------V-620001-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONV)
- AX = 0001h
- BX = page number (0001h-003Fh)
- Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #2097)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- The only operation which is allowed on logical pages is "FG_COPYPAGE"
- (see AX=0014h)
- SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0014h,AX=0038h
- --------V-620002-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)
- AX = 0002h
- BX = page number (0001h-003Fh)
- Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #2097)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- You must first call "FG_INITEMS" (see AX=005Dh) before using this
- function
- The only operation which is allowed on logical pages is "FG_COPYPAGE"
- (see AX=0014h)
- SeeAlso: AX=0000h,AX=0001h,AX=0003h,AX=0014h,AX=0038h,AX=005Dh
- --------V-620003-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)
- AX = 0003h
- BX = page number (0001h-003Fh)
- Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #2097)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- You must first call "FG_INITXMS" (see AX=0060h) before using this
- function
- The only operation which is allowed on logical pages is "FG_COPYPAGE"
- (see AX=0014h)
- SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0014h,AX=0038h,AX=0060h
- --------V-620004-----------------------------
- INT 62 u - FGDRIVER 1.10,3.03+ - "FG_AUTOMODE" - GET VIDEO MODE W/MOST FEATURES
- AX = 0004h
- Return: AX = proposed video mode number (see #2111 at AX=00B0h)
- Program: FGDRIVER is the external video driver for the shareware
- Fastgraph/Light by Ted Gruber Software
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=0005h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
- --------V-620005-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN
- AX = 0005h
- BX = horizontal resolution
- CX = vertical resolution
- DX = number of video pages required (both physical and virtual)
- Return: AX = proposed video mode number or FFFFh if no matching video mode
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- You must first call "FG_SVGAINIT" (see AX=00C1h) to get SVGA video
- modes
- SeeAlso: AX=0004h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
- --------V-620006-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_BOX" - DRAW UNFILLED RECTANGLE
- AX = 0006h
- BX = left column
- CX = right column
- DX = top row
- SI = bottom row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- The rectangle is drawn in screen space, respecting the clipping region,
- with edges of the width specified with "FG_BOXDEPTH" (see AX=0007h)
- (default = 1 is set by "FG_SETMODE")
- This function has no effect in text modes
- SeeAlso: AX=0007h,AX=0008h,AX=000Ch,AX=0016h,AX=001Dh,AX=0026h,AX=0051h
- SeeAlso: AX=0055h,AX=008Fh
- --------V-620007-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH
- AX = 0007h
- BX = width of left and right edges in pixels (> 0)
- CX = width of top and bottom edges in pixels (> 0)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=0006h,AX=0008h,AX=0051h,AX=0055h
- --------V-620008-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_BOXX" - XOR HOLLOW RECTANGLE
- AX = 0008h
- BX = left column
- CX = right column
- DX = top row
- SI = bottom row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- The rectangle is XORed into screen space, respecting the clipping
- region, with edges of the width specified with "FG_BOXDEPTH"
- (see AX=0007h) (default = 1 is set by "FG_SETMODE")
- This function has no effect in text modes
- SeeAlso: AX=0006h,AX=0007h,AX=0021h,AX=0022h,AX=0051h,AX=0055h,AX=0090h
- --------V-620009-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_BUTTON" - GET JOYSTICK BUTTON STATE
- AX = 0009h
- BX = joystick number (0001h or 0002h)
- Return: AX = button states
- bit 0: top button pressed
- bit 1: bottom button pressed
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=0052h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
- --------V-62000A-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY
- AX = 000Ah
- Return: AX = CapsLock state (0000h off, 0001h on)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=0082h,AX=00A4h,AX=00A8h,AX=00B1h
- --------V-62000B-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS
- AX = 000Bh
- BX = number of characters to recolor
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in graphics modes
- Starting at the current text cursor position, the specified number of
- characters have their attributes to the current text attribute
- SeeAlso: AX=000Ch,AX=003Ah,AX=00A6h
- --------V-62000C-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION
- AX = 000Ch
- CX = length of string
- ES:BX -> string to be displayed
- Return: text cursor updated
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in graphics modes
- SeeAlso: AX=000Bh,AX=0096h
- --------V-62000D-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLE" - DRAW UNFILLED CIRCLE
- AX = 000Dh
- BX = radius in horizontal screen space units (> 0)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- The circle is drawn in screen space, centered at the current graphics
- cursor position
- This call is ignored in text modes
- SeeAlso: AX=0006h,AX=0008h,AX=000Eh,AX=0026h,AX=0093h
- --------V-62000E-----------------------------
- INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLEF" - DRAW FILLED CIRCLE
- AX = 000Eh
- BX = radius in horizontal screen space units (> 0)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=0008h,AX=000Dh,AX=0027h,AX=0092h
- --------V-62000F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_CLIPMAP" - DISPLAY CLIPPED IMAGE (MODE-INDEP)
- AX = 000Fh
- ES:BX -> bitmap
- CX = width
- DX = height
- Desc: display a mode-independent bitmap, showing only the portion within
- the current clipping limits
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes and in native EGA and VGA graphics
- modes
- The image is drawn with its lower left corner at the current graphics
- cursor position
- SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=0086h,AX=00A9h,AX=00C5h
- --------V-620010-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)
- AX = 0010h
- ES:BX -> array containing image stored as a masking map (see #2098)
- CX = number of pixel runs in masking map
- DX = width of masking map in pixels
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes and in native EGA and VGA graphics
- modes
- The image is drawn with its lower left corner at the current graphics
- cursor position
- SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=00A1h,AX=00A9h,AX=00C5h
- --------V-620011-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)
- AX = 0011h
- ES:BX -> mode-specific bitmap
- CX = width of bit map in bytes
- DX = height of bit map in pixel rows
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes
- The image is drawn with its lower left corner at the current graphics
- cursor position
- The current clipping region is used, extended to a byte boundary
- SeeAlso: AX=0010h,AX=0024h,AX=0036h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
- --------V-620012-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE
- AX = 0012h
- BX = screen space column of left edge
- CX = screen space column of right edge
- DX = screen space row of top edge
- SI = screen space row of bottom edge
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes
- SeeAlso: AX=0006h,AX=0010h,AX=0011h,AX=0023h,AX=009Bh,AX=00A9h
- --------V-620013-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_COLORS" - GET SIMULTANEOUSLY-AVAILABLE COLORS
- AX = 0013h
- Return: AX = number of colors available at one time
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- --------V-620014-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS
- AX = 0014h
- BX = source page number (0000h-003Fh)
- CX = destination page number (0000h-003Fh)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- If both source and destination pages are logical pages, they must both
- be located in the same type (conventional, EMS, XMS) of memory
- SeeAlso: AX=009Eh,AX=00A2h,AX=00C6h,AX=00CAh
- --------V-620015-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE
- AX = 0015h
- BX = new state (0000h invisible, 0001h visible)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes
- SeeAlso: AX=000Ch,AX=0054h,AX=0058h,AX=006Bh,AX=0075h,AX=0079h,AX=007Eh
- SeeAlso: AX=00E0h
- --------V-620016-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION
- AX = 0016h
- BX = endpoint column
- CX = endpoint row
- DX = dash pattern (set bits cause drawn pixels)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes
- The starting point is the current graphics cursor position; the cursor
- position is updated
- SeeAlso: AX=0017h,AX=001Dh,AX=008Fh
- --------V-620017-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION
- AX = 0017h
- BX = endpoint column offset
- CX = endpoint row offset
- DX = dash pattern (set bits cause drawn pixels)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes
- The starting point is the current graphics cursor position; the cursor
- position is updated
- SeeAlso: AX=0016h,AX=001Eh,AX=008Fh
- --------V-620018-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX
- AX = 0018h
- BX = color index (0000h-00FFh)
- CX = new color value (0 to maximum color value for current video mode)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes and 256-color graphics modes
- SeeAlso: AX=0040h,AX=0045h,AX=00AAh
- --------V-620019-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DEFPAGES" - DEF SRC/DEST PAGES FOR BLOCK XFERS
- AX = 0019h
- BX = source page
- CX = destination page
- Desc: specify the source and destination SVGA banks for block transfers on
- extended video pages
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This function is ignored if the video controller does not support
- extended pages or the current video mode does not allow them
- SeeAlso: AX=0014h,AX=00CAh
- --------V-62001A-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DISPFILE" - DISPLAY STORED IMAGE
- AX = 001Ah
- ES:BX -> ASCIZ filename
- CX = image width in pixels (> 0)
- DX = image format
- 0000h Fastgraph standard pixel run format
- 0001h packed pixel run format
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes
- The image is displayed with its lower left corner at the current
- graphics cursor position
- SeeAlso: AX=001Bh,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
- --------V-62001B-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
- AX = 001Bh
- ES:BX -> pixel run map (pairs of bytes: color index, count)
- CX = number of pixel runs to display
- DX = width of image in pixels (> 0)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes
- The image is displayed with its lower left corner at the current
- graphics cursor position
- SeeAlso: AX=001Ah,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
- --------V-62001C-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DISPLAYP" - DISPLAY IMAGE (PACKED PIXEL RUNS)
- AX = 001Ch
- ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors
- contains the color for the first run in its high nybble and
- the color for the second run in its low nybble)
- CX = number of pixel runs to display
- DX = width of image in pixels (> 0)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes
- The image is displayed with its lower left corner at the current
- graphics cursor position
- SeeAlso: AX=001Ah,AX=001Bh,AX=00B9h,AX=00BAh,AX=00BBh
- --------V-62001D-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION
- AX = 001Dh
- BX = endpoint column
- CX = endpoint row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes
- The starting point is the current graphics cursor position; the cursor
- position is updated
- SeeAlso: AX=0016h,AX=0020h,AX=0021h,AX=0026h,AX=008Fh,AX=0090h
- --------V-62001E-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP
- AX = 001Eh
- ES:BX -> bitmap (each set bit is pixel drawn in current color)
- CX = width of bitmap in bytes
- DX = height of bitmap in pixel rows
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
- --------V-62001F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)
- AX = 001Fh
- ES:BX -> array containing image stored as a masking map (see #2098)
- CX = number of pixel runs in masking map
- DX = width of masking map in pixels
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- This call is ignored in text modes and in native EGA and VGA graphics
- modes
- The image is drawn with its lower left corner at the current graphics
- cursor position
- SeeAlso: AX=0010h,AX=001Fh,AX=00A1h,AX=00A9h
-
- Format of FGDRIVER masking map:
- Offset Size Description (Table 2098)
- 00h BYTE length of first "protect" run (pixels remain unchanged)
- 01h BYTE length of first "zero" run (pixels set to background color)
- 02h BYTE length of second "protect" run
- 03h BYTE length of second "zero" run
- ...
- --------V-620020-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION
- AX = 0020h
- BX = endpoint column offset
- CX = endpoint row offset
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- The starting point is the current graphics cursor position; the cursor
- position is updated
- SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0021h,AX=0026h,AX=008Fh
- --------V-620021-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DRAWRELX" - XOR SOLID LINE TO RELATIVE POSITION
- AX = 0021h
- BX = endpoint column offset
- CX = endpoint row offset
- Desc: draw a solid line, XORing each pixel onto the screen
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- The starting point is the current graphics cursor position; the cursor
- position is updated
- SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0020h,AX=0026h,AX=0090h
- --------V-620022-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DRAWX" - XOR SOLID LINE TO ABSOLUTE POSITION
- AX = 0022h
- BX = endpoint column
- CX = endpoint row
- Desc: draw a solid line, XORing each pixel onto the screen
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- The starting point is the current graphics cursor position; the cursor
- position is updated
- SeeAlso: AX=001Dh,AX=0021h,AX=008Fh
- --------V-620023-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE
- AX = 0023h
- BX = screen space column of left edge
- CX = screen space column of right edge
- DX = screen space row of top edge
- SI = screen space row of bottom edge
- ES:DI -> dithering matrix (video-mode dependent)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- SeeAlso: AX=0006h,AX=0008h,AX=0013h,AX=003Ch,AX=0089h,AX=009Bh
- --------V-620024-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE
- AX = 0024h
- ES:BX -> video mode-specific bitmap
- CX = width of bitmap in bytes
- DX = height of bitmap in pixel rows
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The image will be drawn with its lower left corner at the current
- cursor position (either text or graphics)
- SeeAlso: AX=0011h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
- --------V-620025-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY
- AX = 0025h
- Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
- without an Enhanced Color Display
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00C2h
- --------V-620026-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE
- AX = 0026h
- BX = horizontal semi-axis length in screen space units
- CX = vertical semi-axis length in screen space units
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- The ellipse is centered at the current graphics cursor position
- SeeAlso: AX=0006h,AX=000Dh,AX=0027h,AX=008Fh,AX=0093h
- --------V-620027-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSEF" - DRAW FILLED ELLIPSE IN SCREEN SPACE
- AX = 0027h
- BX = horizontal semi-axis length in screen space units
- CX = vertical semi-axis length in screen space units
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- The ellipse is centered at the current graphics cursor position
- SeeAlso: AX=0006h,AX=000Eh,AX=0026h,AX=008Fh,AX=0092h
- --------V-620028-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE
- AX = 0028h
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function sets each pixel to 0 in graphics modes, each character
- cell to a blank with a gray foreground attribute in text modes
- SeeAlso: AX=0029h,AX=002Bh,AX=0035h
- --------V-620029-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FADEIN" - FADE IN HIDDEN PAGE
- AX = 0029h
- BX = delay (0000h = fastest possible fade-in)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The current hidden page is copied to the current visible page in small
- random sections to produce a fade-in effect
- This call is ignored in text modes
- SeeAlso: AX=0028h,AX=002Ah,AX=002Bh
- --------V-62002A-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR
- AX = 002Ah
- BX = delay (0000h = fastest possible fade-out)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The current visible page is filled with pixels of the current color in
- small random sections to give a fade-out effect
- This call is ignored in text modes
- SeeAlso: AX=0028h,AX=0029h,AX=002Bh
- --------V-62002B-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FILLPAGE" - FILL THE ACTIVE VIDEO PAGE
- AX = 002Bh
- Desc: fill the active video page with pixels of the current color (graphics
- modes) or the block character DBh with the current character
- attributes (text modes)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0028h,AX=0029h,AX=002Ah
- --------V-62002C-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FINDPAGE" - FIND AVAILABLE VIRTUAL/LOGICAL PAGE
- AX = 002Ch
- Return: AX = first available page number (virtual or logical page)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0028h
- --------V-62002D-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLICDONE" - CLOSE FLIC FILE
- AX = 002Dh
- ES:BX -> context descriptor (see AX=0030h)
- Return: nothing
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=002Eh,AX=0030h
- --------V-62002E-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLICHEAD" - READ FLI/FLC FILE HEADER
- AX = 002Eh
- ES:BX -> FLICHEAD variable pointer record (see #2676)
- Return: AX = status (see #2678)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=002Dh,AX=002Fh,AX=0030h,AX=0032h
-
- (Table 2678)
- Values for FGDRIVER FLIC processing status:
- 0000h successful
- FFFEh not an FLI or FLC file
- FFFFh file not found
-
- Format of FGDRIVER FLICHEAD variable pointer record:
- Offset Size Description (Table 2676)
- 00h WORD segment of ASCIZ FLI/FLC file name
- 02h WORD offset of ASCIZ FLI/FLC file name
- 04h WORD segment of buffer for 128-byte file header
- 06h WORD offset of buffer for 128-byte file header
- --------V-62002F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLICMODE" - GET OPTIMAL VIDEO MODE FOR FLI/FLC
- AX = 002Fh
- ES:BX -> 128-byte buffer containing FLI/FLC file header (see AX=002Eh)
- Return: AX = optimal 256-color graphics mode number
- FFFFh if invalid file header
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=002Eh,AX=0030h
- --------V-620030-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLICOPEN" - OPEN FLI/FLC FILE
- AX = 0030h
- ES:BX -> FLICOPEN variable pointer record (see #2677)
- Return: AX = status (see #2678)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=002Dh,AX=002Eh,AX=002Fh,AX=0030h,AX=0031h,AX=0032h
-
- Format of FGDRIVER FLICOPEN variable pointer record:
- Offset Size Description (Table 2677)
- 00h WORD segment of ASCIZ FLI/FLC file name
- 02h WORD offset of ASCIZ FLI/FLC file name
- 04h WORD segment of buffer for 16-byte file context descriptor
- 06h WORD offset of buffer for 16-byte file context descriptor
- --------V-620031-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLICPLAY" - DISPLAY NEXT FRAME(S) IN FLI/FLC
- AX = 0031h
- ES:BX -> context descriptor (see AX=0030h)
- CX = number of frames to display starting at current frame
- DX = control flags (see #2688)
- Return: AX = number of frames displayed
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0030h,AX=0033h,AX=00B8h
-
- Bitfields for FGDRIVER FLI/FLC control flags:
- Bit(s) Description (Table 2688)
- 0 skip inter-frame delay specified in FLI/FLC header
- 1 display relative to current graphics position
- 2 dipslay image from the FG_IMAGEBUF buffer instead of file
- --------V-620032-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLICSIZE" - GET IMAGE SIZE
- AX = 0032h
- ES:BX -> FLICSIZE variable pointer record (see #2679)
- Return: image height/width buffers updated; height is set to FFFFh on error
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=002Eh,AX=0030h
-
- Format of FGDRIVER FLICSIZE variable pointer record:
- Offset Size Description (Table 2679)
- 00h WORD segment of buffer for 128-byte FLI/FLC file header
- 02h WORD offset of buffer for 128-byte FLI/FLC file header
- 04h WORD segment of WORD buffer for image width in pixels
- 06h WORD offset of WORD buffer for image width in pixels
- 08h WORD segment of WORD buffer for image height in pixels
- 0Ah WORD offset of WORD buffer for image height in pixels
- --------V-620033-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLICSKIP" - SKIP FRAME(S) IN FLI/FLC FILE
- AX = 0033h
- ES:BX -> context descriptor (see AX=0030h)
- CX = number of frames to skip
- reset to first frame if skip count is negative
- Return: AX = number of frames skipped (may be less than requested if EOF)
- 0000h if resetting to first frame
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0030h,AX=0031h
- --------V-620034-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)
- AX = 0034h
- ES:BX -> array containing image stored as a masking map (see #2098)
- CX = number of pixel runs in masking map
- DX = width of masking map in pixels
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes and in native EGA and VGA graphics
- modes
- The image is drawn with its lower left corner at the current graphics
- cursor position
- SeeAlso: AX=000Fh,AX=001Fh,AX=0036h,AX=00A1h,AX=00A5h,AX=00C5h
- --------V-620035-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLOOD" - FLOOD FILL ARBITRARY CLOSED REGION
- AX = 0035h
- BX = starting column
- CX = starting row
- Desc: fill the bounded region around the specified point (respecting clipping
- region) with the currrent color
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is ignored in text modes
- SeeAlso: AX=0028h,AX=0085h
- --------V-620036-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)
- AX = 0036h
- ES:BX -> mode-specific bitmap
- CX = width of bit map in bytes
- DX = height of bit map in pixel rows
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- The image is drawn with its lower left corner at the current graphics
- cursor position
- The current clipping region is used, extended to a byte boundary
- SeeAlso: AX=0011h,AX=0024h,AX=0034h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
- --------V-620037-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FONTSIZE" - SPECIFY FONT SIZE FOR TEXT OUTPUT
- AX = 0037h
- BX = desired character height in scan lines (8, 14, 16)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored if the current mode is not a VGA or SVGA graphics
- mode, or the specified character height is not 8, 14, or 16
- SeeAlso: AX=0096h
- --------V-620038-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE
- AX = 0038h
- BX = page number (0000h-003Fh)
- Return: AX = status (0000h,0001h,0007h,0009h) (see #2097)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0003h
- --------V-620039-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE
- AX = 0039h
- Return: AX = segment of active video page
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0042h,AX=00ACh
- --------V-62003A-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION
- AX = 003Ah
- BX = row
- CX = column
- Return: AX = character attribute at specified location on active video page
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in graphics modes
- SeeAlso: AX=000Bh,AX=003Dh,AX=0040h,AX=00A6h
- --------V-62003B-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETBANKS" - GET SVGA READ AND WRITE BANKS
- AX = 003Bh
- ES:BX -> GETBANKS variable pointer record (see #2680)
- Return: nothing
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00A7h
-
- Format of FGDRIVER GETBANKS variable pointer record:
- Offset Size Description (Table 2680)
- 00h WORD segment of WORD buffer for read bank number
- 02h WORD offset of WORD buffer for read bank number
- 04h WORD segment of WORD buffer for write bank number
- 06h WORD offset of WORD buffer for write bank number
- --------V-62003C-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETBLOCK" - GRAB RECTANGLE OF DISPLAY
- AX = 003Ch
- ES:BX -> buffer for screen contents
- CX = leftmost column
- DX = rightmost column
- SI = top row
- DI = bottom row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- In text modes, coordinates are character positions; in graphics modes,
- they are defined in screen space, and the left and right edges are
- adjusted to a byte boundary if necessary
- Use "FG_IMAGESIZ" (see AX=005Ch) to determine the required buffer size
- SeeAlso: AX=0044h,AX=005Ch,AX=0098h
- --------V-62003D-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION
- AX = 003Dh
- BX = row
- CX = column
- Return: AX = character at specified location on active video page
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in graphics modes
- SeeAlso: AX=000Bh,AX=003Ah,AX=0096h,AX=00A6h,AX=00C8h
- --------V-62003E-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETCLIP" - GET CLIPPING REGION IN SCREEN SPACE
- AX = 003Eh
- ES:BX -> GETCLIP variable pointer record (see #2681)
- Return: variables specifed by GETCLIP structure updated
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00CAh
-
- Format of FGDRIVER GETCLIP variable pointer record:
- Offset Size Description (Table 2681)
- 00h WORD segment of WORD buffer for minimum X coordinate (left edge)
- 02h WORD offset of WORD buffer for minimum X coordinate (left edge)
- 04h WORD segment of WORD buffer for maximum X coordinate (right edge)
- 06h WORD offset of WORD buffer for maximum X coordinate (right edge)
- 08h WORD segment of WORD buffer for minimum Y coordinate (top edge)
- 0Ah WORD offset of WORD buffer for minimum Y coordinate (top edge)
- 0Ch WORD segment of WORD buffer for maximum Y coordinate (bottom edge)
- 0Eh WORD offset of WORD buffer for maximum Y coordinate (bottom edge)
- --------V-62003F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT
- AX = 003Fh
- Return: DX:AX = number of clock ticks since midnight
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: INT 1A/AH=00h
- --------V-620040-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE
- AX = 0040h
- Return: AX = current text attribute or color index (graphics modes)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=000Bh,AX=003Ah,AX=00A6h
- --------V-620041-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETDACS" - GET VIDEO DAC CONTENTS
- AX = 0041h
- CX = number of DAC registers to return (0001h to 0100h)
- DX = starting DAC register number (0000h to 00FFh)
- ES:BX -> buffer for DAC red/green/blue triples
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The register number wraps back to zero after FFh
- SeeAlso: AX=004Eh,AX=0086h,AX=00ABh
- --------V-620042-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETENTRY" - GET PAGE TYPE AND ADDRESS
- AX = 0042h
- ES:BX -> variable pointer record (see #2099)
- CX = page number (00h-3Fh)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- Page addresses are segments for pages stored in conventional memory
- (including physical and virtual pages), and EMS or XMS handles for
- pages stored in EMS or XMS
- SeeAlso: AX=0000h,AX=00ACh
-
- Format of FGDRIVER GETENTRY variable pointer record:
- Offset Size Description (Table 2099)
- 00h WORD segment of WORD buffer for page address
- 02h WORD offset of WORD buffer for page address
- 04h WORD segment of WORD buffer for page type (se #2100)
- 06h WORD offset of WORD buffer for page type
-
- (Table 2100)
- Values for FGDRIVER page type:
- 0000h unallocated
- 0001h physical
- 0002h virtual
- 0003h logical page, stored in expanded memory (EMS)
- 0004h logical page, stored in extended memory (XMS)
- 0005h logical page, stored in conventional memory
- --------V-620043-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM
- AX = 0043h
- Return: AX = current hidden video page number (0000h-003Fh)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=004Ch,AX=0050h,AX=00AEh
- --------V-620044-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP
- AX = 0044h
- ES:BX -> buffer for video mode-specific bitmap
- CX = width of bitmap in bytes
- DX = height of bitmap in pixel rows
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0099h,AX=00A0h
- --------V-620045-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX
- AX = 0045h
- BX = color index (0000h to 00FFh)
- Return: AX = color value for specified color index
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call returns the value passed to it in text and 256-color
- graphics modes
- SeeAlso: AX=0018h,AX=0040h
- --------V-620046-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETKEY" - GET NEXT KEYSTROKE
- AX = 0046h
- ES:BX -> variable pointer record (see #2101)
- Return: (after next keystroke if no typeahead) variables updated
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=000Ah,AX=0063h,AX=0069h,AX=00DEh,INT 16/AH=00h
-
- Format of FGDRIVER GETKEY variable pointer record:
- Offset Size Description (Table 2101)
- 00h WORD segment of BYTE buffer for ASCII keycode
- 02h WORD offset of BYTE buffer for ASCII keycode
- 04h WORD segment of BYTE buffer for extended keycode
- 06h WORD offset of BYTE buffer for extended keycode
- --------V-620047-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE
- AX = 0047h
- Return: AX = number of text rows on screen in current video mode
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00AFh,AX=00C2h
- --------V-620048-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP
- AX = 0048h
- ES:BX -> buffer for video mode-independent bitmap
- CX = width of bitmap in bytes
- DX = height of bitmap in pixel rows
- Return: each bit in bitmap is set if corresponding pixel is of the current
- color, cleared otherwise
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- SeeAlso: AX=0011h,AX=001Eh,AX=0024h
- --------V-620049-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE
- AX = 0049h
- Return: AX = maximum X coordinate in screen space
- (or character space if in text mode)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=004Ah,AX=00C1h
- --------V-62004A-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE
- AX = 004Ah
- Return: AX = maximum Y coordinate in screen space
- (or character space if in text mode)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0049h,AX=00C1h
- --------V-62004B-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER
- AX = 004Bh
- ES:BX -> WORD ???
- Return: AX = current video mode number
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00B0h
- --------V-62004C-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER
- AX = 004Ch
- Return: AX = active video page (0000h-003Fh)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=00B2h
- --------V-62004D-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL
- AX = 004Dh
- BX = column in screen space
- CX = row in screen space
- Return: AX = color value of pixel (0 to num_colors-1)
- 0000h in text modes
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=003Ah,AX=003Dh,AX=008Fh,AX=0090h
- --------V-62004E-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS
- AX = 004Eh
- ES:BX -> variable pointer record (see #2102)
- CX = DAC register number
- Return: variables updated
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes and CGA/EGA video modes (since
- they do not use DAC registers)
- SeeAlso: AX=00441h,AX=0086h,AX=00ABh
-
- Format of FGDRIVER GETRGB variable pointer record:
- Offset Size Description (Table 2102)
- 00h WORD segment of WORD buffer for red component of DAC register
- 02h WORD offset of WORD buffer for red component
- 04h WORD segment of WORD buffer for green component of DAC register
- 06h WORD offset of WORD buffer for green component
- 08h WORD segment of WORD buffer for blue component of DAC register
- 0Ah WORD offset of WORD buffer for blue component
- --------V-62004F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETVIEW" - GET VIEWPORT EXTREME LIMITS
- AX = 004Fh
- ES:BX -> variable pointer record (see #2682)
- Return: indicated variables updated
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00B5h
-
- Format of FGDRIVER GETVIEW variable pointer record:
- Offset Size Description (Table 2682)
- 00h WORD segment of WORD buffer for viewport left edge (viewport units)
- 02h WORD offset of WORD buffer for viewport left edge (viewport units)
- 04h WORD segment of WORD buffer for viewport right edge (viewport units)
- 06h WORD offset of WORD buffer for viewport right edge (viewport units)
- 08h WORD segment of WORD buffer for viewport top edge (viewport units)
- 0Ah WORD offset of WORD buffer for viewport top edge (viewport units)
- 0Ch WORD segment of WORD buffer for viewport bottom edge (viewp. units)
- 0Eh WORD offset of WORD buffer for viewport bottom edge (viewp. units)
- 10h WORD segment of WORD buffer for viewport left edge (screen space)
- 12h WORD offset of WORD buffer for viewport left edge (screen space)
- 14h WORD segment of WORD buffer for viewport right edge (screen space)
- 16h WORD offset of WORD buffer for viewport right edge (screen space)
- 18h WORD segment of WORD buffer for viewport top edge (screen space)
- 1Ah WORD offset of WORD buffer for viewport top edge (screen space)
- 1Ch WORD segment of WORD buffer for viewport bottom edge (screen space)
- 1Eh WORD offset of WORD buffer for viewport bottom edge (screen space)
- --------V-620050-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER
- AX = 0050h
- Return: AX = visible video page (0000h-003Fh)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0043h,AX=004Ch,AX=00B6h
- --------V-620051-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETXBOX" - GET WIDTH OF VERTICAL BOX LINES
- AX = 0051h
- Return: AX = width (in pixels) of left and right edges of rectangles
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=006Bh
- --------V-620052-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK
- AX = 0052h
- BX = joystick number (0001h or 0002h)
- Return: AX = horizontal position of joystick
- FFFFh if joystick uninitialized or not present
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The actual coordinates are processor- and joystick-dependent
- You must call "FG_INITJOY" (AX=005Eh) before using this function
- SeeAlso: AX=0009h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
- --------V-620053-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETXJUST" - GET HORIZONTAL JUSTIFICATION
- AX = 0053h
- Return: AX = string justification
- 0000h strings are centered around current graphics X position
- 0001h strings are right-justified at current graphics X position
- FFFFh strings are left-justified at current graphics X position
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=006Ch,AX=007Bh
- --------V-620054-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN
- AX = 0054h
- Return: AX = screen space X coordinate of graphics cursor position
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0058h,AX=007Eh,AX=007Fh
- --------V-620055-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETYBOX" - GET WIDTH OF HORIZONTAL BOX LINES
- AX = 0055h
- Return: AX = width (in pixels) of top and bottom edges of rectangles
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=0063h
- --------V-620056-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK
- AX = 0056h
- BX = joystick number (0001h or 0002h)
- Return: AX = vertical position of joystick
- FFFFh if joystick uninitialized or not present
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The actual coordinates are processor- and joystick-dependent
- You must call "FG_INITJOY" (AX=005Eh) before using this function
- SeeAlso: AX=0009h,AX=0052h,AX=005Eh,AX=0062h,AX=0077h
- --------V-620057-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETYJUST" - GET VERTICAL JUSTIFICATION
- AX = 0057h
- Return: AX = string justification
- 0000h strings are centered around current graphics Y position
- 0001h strings have top edge at current graphics Y position
- FFFFh strings have bottom edge at current graphics Y position
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0053h,AX=0065h
- --------V-620058-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_GETYPOS" - GET GRAPHICS CURSOR ROW
- AX = 0058h
- Return: AX = screen space Y coordinate of graphics cursor position
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0054h,AX=007Eh,AX=007Fh
- --------V-620059-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY
- AX = 0059h
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function immediately stops any sounds started with "FG_MUSICB",
- "FG_SOUNDS", or "FG_VOICES"; it is ignored if no asynchronous sound
- is playing
- SeeAlso: AX=005Ah,AX=0081h,AX=00BDh,AX=00DCh
- --------V-62005A-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND
- AX = 005Ah
- Program: FGDRIVER is the external video driver for the shareware
- Fastgraph/Light by Ted Gruber Software
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function stops any sounds started with "FG_MUSICB", "FG_SOUNDS",
- or "FG_VOICES" after the current repetition completes; it is ignored
- unless asynchronous sound is continuous
- SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
- --------V-62005B-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_IMAGEBUF" - SPECIFY TEMPORARY IMAGE BUFFER
- AX = 005Bh
- ES:BX -> buffer to be used when creating or displaying GIF/PCX/PPR/SPR
- images
- CX = size of buffer in bytes or 0000h to use internal buffer
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- Fastgraph's internal buffer is 4096 bytes; this function allows the
- application to define a larger buffer which will typically speed
- processing
- SeeAlso: AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
- --------V-62005C-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT
- AX = 005Ch
- BX = image width in pixels
- CX = image height in pixels
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- Return: DX:AX = size in bytes of mode-specific bitmap for current video mode
- SeeAlso: AX=003Ch,AX=0098h
- --------V-62005D-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE
- AX = 005Dh
- Return: AX = status
- 0000h successful
- FFFFh expanded memory manager inaccessible or not installed
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0002h,AX=0060h"v4.02"
- --------V-62005E-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_INITJOY" - INITIALIZE JOYSTICK USE
- AX = 005Eh
- BX = joystick number (0001h or 0002h)
- Return: AX = status
- 0000h successful
- FFFFh joystick not connected or no game port
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- Fastgraph assumes that the requested joystick is centered at the time
- this function is called
- SeeAlso: AX=0009h,AX=0052h,AX=0056h,AX=0062h,AX=0077h
- --------V-62005F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_INITPM"??? - (NOT IMPLEMENTED)
- AX = 005Fh
- ???
- Return: ???
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- --------V-620060-----------------------------
- INT 62 u - FGDRIVER v1.10 only - "FG_DISPPCX" - DISPLAY PCX FILE
- AX = 0060h
- ES:BX -> ASCIZ filename
- CX = flags
- bit 0: use current palette rather than PCX file's palette
- bits 1-15 reserved (0)
- Return: AX = status
- 0000h success
- 0001h file not found
- 0002h file is not a valid PCX file
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes and Hercules low-resolution graphics
- The image is displayed with its upper left corner at the current
- graphics cursor position
- SeeAlso: AX=00B9h
- --------V-620060-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE
- AX = 0060h
- Return: AX = status
- 0000h successful
- FFFFh extended memory manager inaccessible or not installed
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0003h,AX=005Dh
- --------V-620061-----------------------------
- INT 62 u - FDGRIVER v4.02 - "FG_INSIDE" - CHECK IF POINT INSIDE CONVEX POLYGON
- AX = 0061h
- ES:BX -> vertex array
- CX = number of vertices
- DX = screen space column of point to test
- SI = screen space row of point to test
- Return: AX = result
- 0000h point is outside polygon
- 0001h point is inside polygon
- undefined if not a convex polygon
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0092h,AX=0093h,AX=0094h
- --------V-620062-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS
- AX = 0062h
- CX = joystick number (0001h or 0002h)
- ES:BX -> variable pointer record (see #2103)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- If the indicated joystick has not been initialized with AX=008Eh, both
- the button code and joystick position will be set to 00h
- If either button is pressed, a button code of 0Dh is returned;
- otherwise, a button code of 00h is returned
- SeeAlso: AX=0009h,AX=0052h,AX=0046h,AX=005Eh,AX=0077h
-
- Format of FGDRIVER INTJOY variable pointer record:
- Offset Size Description (Table 2103)
- 00h WORD segment of BYTE buffer for button code
- 02h WORD offset of BYTE buffer for button code
- 04h WORD segment of BYTE buffer for joystick position
- 06h WORD offset of BYTE buffer for joystick position
- --------V-620063-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT
- AX = 0063h
- ES:BX -> variable pointer record (see #2104)
- Return: variables updated
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- If the keyboard buffer is empty, both the ASCII and extended keycodes
- are set to 00h
- SeeAlso: AX=000Ah,AX=0046h,AX=0069h,AX=00DEh,INT 16/AH=01h
-
- Format of FGDRIVER INTKEY variable pointer record:
- Offset Size Description (Table 2104)
- 00h WORD segment of BYTE buffer for ASCII keycode
- 02h WORD offset of BYTE buffer for ASCII keycode
- 04h WORD segment of BYTE buffer for extended keycode
- 06h WORD offset of BYTE buffer for extended keycode
- --------V-620064-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_INVERT" - INVERT ORIENTATION OF BITMAP
- AX = 0064h
- ES:BX -> bitmap
- CX = width of bitmap in bytes
- DX = height of bitmap in pixel rows
- Return: nothing
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- --------V-620065-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_JUSTIFY" - SET TEXT OUTPUT JUSTIFICATION
- AX = 0065h
- BX = horizontal justification
- (00h centered, 01h right-justified, FFh left-justified)
- CX = vertical justification
- (00h centered, 01h top of characters, FFh bottom of chars)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=000Ch,AX=0037h,AX=0053h,AX=0057h,AX=0096h
- --------V-620066-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_KBINIT" - ENABLE/DISABLE LOW-LEVEL KBD HANDLER
- AX = 0066h
- BX = new state (0000h disabled, 0001h enabled)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- When the low-level handler is enabled, "FG_GETKEY", "FG_INTKEY",
- "FG_WAITKEY", and all other functions calling DOS or BIOS keyboard
- services become unavailable
- SeeAlso: AX=0067h,AX=0068h,AX=0069h
- --------V-620067-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_KBLAST" - GET MOST RECENT SCANCODE PROCESSED
- AX = 0067h
- Return: AX = scancode for keypress most recently processed by FastGraph's
- low-level keyboard handler, or 0000h if no keys since FG_KBINIT
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0066h,AX=0068h,AX=0069h
- --------V-620068-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_KBRESET" - RESET LOW-LEVEL KEYBOARD HANDLER
- AX = 0068h
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0066h,AX=0067h,AX=0069h
- --------V-620069-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_KBTEST" - CHECK WHETHER SPECIFIED KEY PRESSED
- AX = 0069h
- BX = scan code of desired key
- Return: AX = state
- 0000h key is not pressed
- 0001h key is currently pressed
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The low-level keyboard handler must have been enabled with AX=0066h
- SeeAlso: AX=0066h,AX=0067h,INT 16/AH=01h
- --------V-62006A-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_LOADPCX" - LOAD .PCX INTO ACTIVE VIRTUAL BUFFER
- AX = 006Ah
- ES:BX -> ASCIZ filename for PCX image
- CX = control flags
- bit 0: use current palette, overriding stored .PCX palette
- bit 1: load at current graphics position, not stored position
- bit 2: load image from FG_IMAGEBUF buffer instead of .PCX file
- Return: AX = status
- 0000h successful
- 0001h file not found
- 0002h not a .PCX file
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=006Ch,AX=00B9h,AX=00D5h
- --------V-62006B-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION
- AX = 006Bh
- BX = row
- CX = column
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- There are only eight text cursors shared by successive groups of
- eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ...
- share the second, etc)
- SeeAlso: AX=0054h,AX=0058h,AX=007Eh,AX=00E0h
- --------V-62006C-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW
- AX = 006Ch
- BX = left edge in screen space units
- CX = right edge in screen space units
- DX = top edge in screen space units
- SI = bottom edge in screen space units
- ES:DI -> ASCIZ filename of PCX file to create
- Return: AX = status
- 0000h successful
- 0001h file not created
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The PCX file is created from the specified region of the active video
- page; the left and right edges are adjusted to a byte boundary if
- necessary
- If the specified file already exists, it is overwritten
- This call is ignored in text and Hercules low-resolution graphics modes
- SeeAlso: AX=005Bh,AX=006Dh,AX=006Ah,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
- --------V-62006D-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MAKEPPR" - CREATE PACKED PIXEL RUN FILE
- AX = 006Dh
- BX = left edge in screen space units
- CX = right edge in screen space units
- DX = top edge in screen space units
- SI = bottom edge in screen space units
- ES:DI -> ASCIZ filename of PPR file to create
- Return: AX = status
- 0000h successful
- 0001h file not created
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The PPR file is created from the specified region of the active video
- page; the left and right edges are adjusted to byte boundaries if
- necessary
- If the specified file already exists, it is overwritten
- This call is ignored in text modes
- SeeAlso: AX=005Bh,AX=006Ch,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
- --------V-62006E-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MAKESPR" - CREATE STANDARD PIXEL RUN FILE
- AX = 006Eh
- BX = left edge in screen space units
- CX = right edge in screen space units
- DX = top edge in screen space units
- SI = bottom edge in screen space units
- ES:DI -> ASCIZ filename of SPR file to create
- Return: AX = status
- 0000h successful
- 0001h file not created
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The SPR file is created from the specified region of the active video
- page; the left and right edges are adjusted to byte boundaries if
- necessary
- If the specified file already exists, it is overwritten
- This call is ignored in text modes
- SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=00B9h,AX=00BAh,AX=00BBh
- --------V-62006F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL
- AX = 006Fh
- BX = red component
- CX = green component
- DX = blue component
- Return: AX = mode-specific palette value corresponding to specified components
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is only meaningful in 16-color graphics modes
- SeeAlso: AX=004Eh,AX=00B3h
- --------V-620070-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK
- AX = 0070h
- Return: AX = delay units per clock tick (processor-dependent)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- These delay units are used by "FG_STALL" (see AX=00BFh)
- SeeAlso: AX=00BFh
- --------V-620071-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY
- AX = 0071h
- Return: DX:AX = number of bytes of conventional memory available
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=005Dh,AX=0072h
- --------V-620072-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MEMORY" - GET SIZE OF VIDEO MEMORY
- AX = 0072h
- Return: AX = size of video memory in KB
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- You must first call "FG_SVGAINIT" (see AX=00C1h) before using this
- function
- SeeAlso: AX=0071h
- --------V-620073-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSE256" - DEFINE 256-COLOR MOUSE CURSOR
- AX = 0073h
- ES:BX -> 512-byte cursor definition
- CX = X offset of hot-spot within mouse cursor
- DX = Y offset of hot-spot within mouse cursor
- Return: nothing
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- the cursor definition array consists of 256 bytes defining the 16x16
- screen mask, followed by another 256 bytes definining the 16x16
- cursor mask
- SeeAlso: AX=0074h,AX=0075h,AX=007Bh
- --------V-620074-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS
- AX = 0074h
- CX = mouse button (1 = left press, 2 = right press, 3 = middle press,
- -1=left release, -2=right release, -3=middle release)
- ES:BX -> variable pointer record (see #2105)
- Return: variables updated
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function returns the count of presses or releases since the last
- call to this function; if the count is zero, row and column will
- also be zero
- SeeAlso: AX=0075h,AX=0077h,AX=007Ah
-
- Format of FGDRIVER MOUSEBUT variable pointer record:
- Offset Size Description (Table 2105)
- 00h WORD segment of WORD buffer for press/release count
- 02h WORD offset of WORD buffer for press/release count
- 04h WORD segment of WORD buffer for screen space col of last press/rls
- 06h WORD offset of WORD buffer for screen space col of last press/rels
- 08h WORD segment of WORD buffer for screen space row of last press/rls
- 0Ah WORD offset of WORD buffer for screen space row of last press/rls
- --------V-620075-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR
- AX = 0075h
- BX = screen mask
- CX = cursor mask
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in graphics modes
- SeeAlso: AX=007Bh,AX=007Dh
- --------V-620076-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSEFIN" - UNHOOK FASTGRAPH MOUSE HANDLER
- AX = 0076h
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function should be called before switching back to text mode if
- "FG_MOUSEINI" was called while in an SVGA graphics mode
- SeeAlso: AX=0077h
- --------V-620077-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT
- AX = 0077h
- Return: AX = status
- 0002h two-button mouse
- 0003h three-button mouse
- FFFFh initialization failed
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- After this call, the mouse cursor is invisible
- SeeAlso: AX=0076h,AX=0078h,AX=007Ch
- --------V-620078-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS
- AX = 0078h
- BX = left-most position allowed for mouse cursor
- CX = right-most position allowed
- DX = top-most position allowed
- SI = bottom-most position allowed
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0077h,AX=0079h,INT 33/AX=0007h,INT 33/AX=0008h
- --------V-620079-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION
- AX = 0079h
- BX = new column
- CX = new row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function will not move the mouse cursor outside the bounding box
- specified with AX=009Bh
- SeeAlso: AX=0078h,AX=007Ah,INT 33/AX=0004h
- --------V-62007A-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION
- AX = 007Ah
- ES:BX -> variable pointer record (see #2106)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0079h
-
- Format of FGDRIVER MOUSEPOS variable pointer record:
- Offset Size Description (Table 2106)
- 00h WORD segment of WORD buffer for mouse column
- 02h WORD offset of WORD buffer for mouse column
- 04h WORD segment of WORD buffer for mouse row
- 06h WORD offset of WORD buffer for mouse row
- 08h WORD segment of WORD buffer for button status
- 0Ah WORD offset of WORD buffer for button status
- Note: button status: bit 0 = left button, bit 1 = right, bit 2 = middle
- --------V-62007B-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR
- AX = 007Bh
- ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask)
- CX = X offset of hot spot from upper left corner
- DX = Y offset of hot spot from upper left corner
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- SeeAlso: AX=0073h,AX=0075h,INT 33/AX=0009h
- --------V-62007C-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED
- AX = 007Ch
- BX = horizontal mickeys per eight pixels of movement (default 16)
- CX = vertical mickeys per eight pixels of movement (default 16)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: INT 33/AX=000Fh,INT 33/AX=001Ah
- --------V-62007D-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY
- AX = 007Dh
- BX = new state (0000h invisible, 0001h visible)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0077h,INT 33/AX=0001h,INT 33/AX=0002h
- --------V-62007E-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION
- AX = 007Eh
- BX = new column
- CX = new row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=0079h,AX=007Fh,AX=00E0h
- --------V-62007F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION
- AX = 007Fh
- BX = column offset
- CX = row offset
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- SeeAlso: AX=0054h,AX=0058h,AX=007Eh
- --------V-620080-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MUSIC" - PLAY SERIES OF NOTES
- AX = 0080h
- ES:BX -> '$'-terminated music string in BASIC PLAY format
- Return: after music completed
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
- AX=00AAh) is already in progress
- SeeAlso: AX=0081h,AX=00BCh,AX=00DBh
- --------V-620081-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND
- AX = 0081h
- CX = number of repetitions (negative = continuous play)
- ES:BX -> '$'-terminated music string in BASIC PLAY format
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
- AX=00AAh) is already in progress
- SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
- --------V-620082-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY
- AX = 0082h
- Return: AX = NumLock state (0000h off, 0001h on)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=000Ah,AX=00A4h,AX=00A8h,AX=00B1h
- --------V-620083-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PACK" - CONVERT PIXEL-PER-BYTE TO PACKED BITMAP
- AX = 0083h
- ES:BX -> variable pointer record (see #2683)
- CX = width of bitmap in pixels
- DX = height of bitmap in pixels
- Return: result bitmap buffer updated
- SeeAlso: AX=00CBh
-
- Format of FGDRIVER PACK variable pointer record:
- Offset Size Description (Table 2683)
- 00h WORD segment of source (mode-independent) bitmap
- 02h WORD offset of source (mode-independent) bitmap
- 04h WORD segment of buffer for result (mode-specific) bitmap
- 06h WORD offset of buffer for result (mode-specific) bitmap
- --------V-620084-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PAGESIZE" - GET VIDEO PAGE SIZE FOR CURR MODE
- AX = 0084h
- Return: DX:AX = page size in bytes
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0072h
- --------V-620085-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR
- AX = 0085h
- BX = column
- CX = row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function fills an arbitrary closed region around the specified
- point with the current color; the screen edges are not considered
- region boundaries
- This call is ignored in text modes
- SeeAlso: AX=0035h
- --------V-620086-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER
- AX = 0086h
- ---CGA 4-color graphics---
- BX = CGA paletee number
- CX = background color
- ---CGA 2-color graphics---
- BX ignored
- CX = foreground color
- ---16-color graphics---
- BX = palette register number
- CX = palette value
- ---256-color graphics---
- BX = DAC register number
- CX = DAC value
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is ignored in text modes and Hercules graphics modes
- Few EGA/VGA adapters correctly set the foreground color in CGA mode 6
- SeeAlso: AX=0041h,AX=004Eh,AX=0087h,AX=00ABh
- --------V-620087-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PALETTES" - SET ALL PALETTE REGISTERS
- AX = 0087h
- ES:BX -> array of 16 WORDs containing values for palette registers
- (or first 16 DAC registers in 256-color modes)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is ignored in text modes, CGA and Hercules graphics modes
- SeeAlso: AX=0041h,AX=004Eh,AX=0086h,AX=00ABh
- --------V-620088-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PAN" - SET SCREEN ORIGIN
- AX = 0088h
- BX = new column for screen origin
- CX = new row for screen origin
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00B2h
- --------V-620089-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR
- AX = 0089h
- BX = index of pattern to define
- CX = number of predefined display pattern
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- When displaying a pixel run map, Fastgraph uses the pattern associated
- with each color index rather than displaying the actual color
- This call has no effect in text and 256-color graphics modes
- SeeAlso: AX=0023h,AX=0045h
- --------V-62008A-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PCXHEAD" - GET PCX FILE HEADER
- AX = 008Ah
- ES:BX -> variable pointer record (see #2107)
- Return: AX = status
- 0000h successful
- FFFEh not a PCX file
- FFFFh file does not exist
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=008Bh,AX=00B9h
-
- Format of FGDRIVER PCXHEAD variable pointer record:
- Offset Size Description (Table 2107)
- 00h WORD segment of ASCIZ filename
- 02h WORD offset of ASCIZ filename
- 04h WORD segment of 128-byte buffer for PCX header
- 06h WORD offset of 128-byte buffer for PCX header
- --------V-62008B-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PCXMODE" - GET OPTIMAL VIDEO MODE FOR DISPLAY
- AX = 008Bh
- ES:BX -> PCX header (see AX=008Ah)
- Return: AX = optimal video mode for PCX file
- FFFEh not a valid PCX header
- FFFFh unable to determine compatible video mode
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=008Ah,AX=00B9h
- --------V-62008C-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PCXPAL" - GET PALETTE STORED IN PCX FILE
- AX = 008Ch
- ES:BX -> variable pointer record (see #2684)
- Return: AX = number of colors in palette (16 or 256) or
- FFFEh not a valid PCX file
- FFFFh file not found
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=008Dh
-
- Format of FGDRIVER PCXPAL variable pointer record:
- Offset Size Description (Table 2684)
- 00h WORD segment of ASCIZ .PCX filename
- 02h WORD offset of ASCIZ .PCX filename
- 04h WORD segment of buffer for .PCX palette RGB triples
- 06h WORD offset of buffer for .PCX palette RGB triples
- Note: the buffer for the palette must hold at least three times as many bytes
- as there are colors in the palette
- SeeAlso: #2685
- --------V-62008D-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PCXRANGE" - GET EXTENT OF PCX IMAGE
- AX = 008Dh
- ES:BX -> variable pointer record (see #2685)
- Return: indicated variables updated; if the indicated header is not valid,
- all of the coordinate variables are set to FFFFh
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=008Ch
-
- Format of FGDRIVER PCXRANGE variable pointer record:
- Offset Size Description (Table 2685)
- 00h WORD segment of 128-byte PCX file header
- 02h WORD offset of 128-byte PCX file header
- 04h WORD segment of WORD buffer for X coordinate of image's left edge
- 04h WORD offset of WORD buffer for X coordinate of image's left edge
- 08h WORD segment of WORD buffer for X coordinate of image's right edge
- 0Ah WORD offset of WORD buffer for X coordinate of image's right edge
- 0Ch WORD segment of WORD buffer for Y coordinate of image's top edge
- 0Eh WORD offset of WORD buffer for Y coordinate of image's top edge
- 10h WORD segment of WORD buffer for X coordinate of image's bottom edge
- 12h WORD offset of WORD buffer for X coordinate of image's bottom edge
- SeeAlso: #2684
- --------V-62008E-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE
- AX = 008Eh
- Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
- --------V-62008F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_POINT" - DISPLAY A PIXEL
- AX = 008Fh
- BX = column
- CX = row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- SeeAlso: AX=0006h,AX=001Dh,AX=004Dh,AX=0090h
- --------V-620090-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_POINTX" - DISPLAY A PIXEL IN XOR MODE
- AX = 0090h
- BX = column
- CX = row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- SeeAlso: AX=004Dh,AX=008Fh
- --------V-620091-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_POLYEDGE" - SPECIFY INCLUSION OF FINAL PIXELS
- AX = 0091h
- BX = edge flag
- 0000h include right- and bottom-edge pixels when drawing polygons
- with FG_POLYFILL
- 0001h (default) exclue right- and bottom-edge pixels
- SeeAlso: AX=0092h
- --------V-620092-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_POLYFILL" - DRAW A FILLED CONVEX POLYGON
- AX = 0092h
- CX = number of vertices
- ES:BX -> variable pointer record (see #2108)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The vertex array consists of pairs of words specifying the X and Y
- coordinates of each vertex; the work array is used internally and
- must contain at least four times as many bytes as the polygon is
- high in pixels
- This function is ignored in text modes
- If the polygon is non-convex, only a portion of it may be filled
- SeeAlso: AX=000Eh,AX=0027h,AX=0091h,AX=0093h,AX=0094h,AX=0095h
-
- Format of FGDRIVER POLYFILL variable pointer record:
- Offset Size Description (Table 2108)
- 00h WORD segment of vertex array (see #2110)
- 02h WORD offset of vertex array
- 04h WORD segment of work array
- 06h WORD offset of work array
- SeeAlso: #2109
- --------V-620093-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON
- AX = 0093h
- CX = number of vertices in polygon
- ES:BX -> variable pointer record (see #2109)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- SeeAlso: AX=0091h,AX=0092h,AX=0094h,AX=0095h
-
- Format of FGDRIVER POLYGON variable pointer record:
- Offset Size Description (Table 2109)
- 00h WORD segment of WORD array containing vertex columns
- 02h WORD offset of WORD array containing vertex columns
- 04h WORD segment of WORD array containing vertex rows
- 06h WORD offset of WORD array containing vertex rows
- SeeAlso: #2108
- --------V-620094-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_POLYLINE" - DRAW AN UNFILLED POLYGON
- AX = 0094h
- CX = number of vertices in polygon
- ES:BX -> vertex array (see #2110)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is equivalent to "FG_POLYGON", but uses only a single
- array to define the vertices
- This call is ignored in text modes
- SeeAlso: AX=008Fh,AX=0092h,AX=0093h,AX=0095h
-
- Format of FGDRIVER POLYFILL/POLYLINE vertex array element:
- Offset Size Description (Table 2110)
- 00h WORD column
- 02h WORD row
- SeeAlso: #2109
- --------V-620095-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_POLYOFF" - DEFINE POLYGON DRAWING OFFSET
- AX = 0095h
- BX = horizontal offset (default 0)
- CX = vertical offset (default 0)
- Desc: define the offsets applied to all vertices of polygons drawn with
- "FG_POLYFILL" or "FG_POLYLINE"
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0092h,AX=0094h
- --------V-620096-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PRINT" - DISPLAY STRING OF HARDWARE CHARACTERS
- AX = 0096h
- CX = length of string
- ES:BX -> string to display
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The string is displayed in the current color, and the graphics cursor
- is updated to be just to the right of the last displayed character
- This function is ignored in text modes
- SeeAlso: AX=000Ch,AX=0037h,AX=0065h,AX=0097h
- --------V-620097-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PRINTC" - DISPLAY STRING OF HW CHARS (CLIPPED)
- AX = 0097h
- CX = length of string
- ES:BX -> string to display
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The string is displayed in the current color, and the graphics cursor
- is updated to be just to the right of the last displayed character;
- only the portion of the string that lies within the current clipping
- area is displayed
- This function is ignored in text modes
- SeeAlso: AX=0096h
- --------V-620098-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PUTBLOCK" - RESTORE RECTANGLE OF DISPLAY
- AX = 0098h
- ES:BX -> buffer containing previously-saved image
- CX = left edge
- DX = right edge
- SI = top edge
- DI = bottom edge
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- In text modes, coordinates are character positions; in graphics modes,
- they are defined in screen space, and the left and right edges are
- adjusted to a byte boundary if necessary
- SeeAlso: AX=003Ch,AX=0099h
- --------V-620099-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_PUTIMAGE" - DISPLAY MODE-SPECIFIC BITMAP IMAGE
- AX = 0099h
- ES:BX -> buffer containing mode-specific bitmap
- CX = width in bytes
- DX = height in pixel rows
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The bitmap is displayed with its lower left corner at the graphics
- cursor position; color 0 is NOT treated as transparent
- SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0098h
- --------V-62009A-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND
- AX = 009Ah
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call has no effect if there is no continuous sound playing
- SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00DCh
- --------V-62009B-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
- AX = 009Bh
- BX = left edge column
- CX = right edge column
- DX = top edge row
- SI = bottom edge row
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0006h,AX=0012h,AX=0023h,AX=003Ch
- --------V-62009C-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR
- AX = 009Ch
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in graphics modes
- The screen attributes are only restored if ANSI.SYS is loaded
- SeeAlso: AX=0028h,AX=00B0h
- --------V-62009D-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE
- AX = 009Dh
- BX = new page width in pixels
- CX = new page height in pixels
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The visible page must be set to 0000h before making this call
- The mouse, joysticks, expanded memory, and extended memory must be
- reinitialized after this call
- SeeAlso: AX=0084h,AX=00ACh
- --------V-62009E-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE
- AX = 009Eh
- BX = left edge column
- CX = right edge column
- DX = top edge row
- SI = bottom edge row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The left and right edges are adjusted to byte boundaries if necessary
- SeeAlso: AX=00A2h,AX=00C6h
- --------V-62009F-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND
- AX = 009Fh
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00BDh,AX=00C0h
- --------V-6200A0-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)
- AX = 00A0h
- ES:BX -> mode-specific bitmap
- CX = width of bitmap in bytes
- DX = height of bitmap in pixel rows
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- The image is drawn with its lower left corner at the current graphics
- cursor position
- SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=00A1h,AX=00A9h,AX=00B9h
- --------V-6200A1-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)
- AX = 00A1h
- ES:BX -> array containing image stored as a masking map (see #2098)
- CX = number of pixel runs in masking map
- DX = width of masking map in pixels
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes and in native EGA and VGA graphics
- modes
- The image is drawn with its lower left corner at the current graphics
- cursor position
- SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=00A0h,AX=00A9h,AX=00C5h
- --------V-6200A2-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE
- AX = 00A2h
- BX = left edge column
- CX = right edge column
- DX = top edge row
- SI = bottom edge row
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The left and right edges are adjusted to byte boundaries if necessary
- SeeAlso: AX=009Eh,AX=00C6h
- --------V-6200A3-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SCALE" - SCALE BITMAP
- AX = 00A3h
- ES:BX -> variable pointer record (see #2622)
- CX = width of source bitmap in pixels (0 < width <= 1024)
- DX = height of source bitmap in pixels (0 < height <= 1024)
- SI = desired width of scaled bitmap (0 < width <= 1024)
- DI = desired height of scaled bitmap (0 < height <= 1024)
- Return: nothing
- SeeAlso: AX=00B7h
-
- Format of FGDRIVER SCALE variable pointer record:
- Offset Size Description (Table 2622)
- 00h WORD segment of source bitmap (one pixel per byte)
- 02h WORD offset of source bitmap
- 04h WORD segment of buffer for resulting scaled bitmap
- 06h WORD offset of buffer for resulting scaled bitmap
- --------V-6200A4-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY
- AX = 00A4h
- Return: AX = ScrollLock state (0000h off, 0001h on)
- Program: FGDRIVER is the external video driver for the shareware
- Fastgraph/Light by Ted Gruber Software
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=000Ah,AX=0082h,AX=00A8h,AX=00B1h
- --------V-6200A5-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION
- AX = 00A5h
- BX = left edge column
- CX = right edge column
- DX = top edge row
- SI = bottom edge row
- DI = number of pixels by which to scroll (positive scrolls up,
- negative scrolls down)
- ES = type of scroll
- 0000h circular (rows scrolled off are copied to vacated rows)
- else vacated rows are filled with the current color
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- In graphics modes, the left and right edges are adjusted to byte
- boundaries if necessary
- Circular scrolling uses part of the hidden page as a workspace
- SeeAlso: AX=0088h,AX=00B2h
- --------V-6200A6-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE
- AX = 00A6h
- BX = foreground
- CX = background
- DX = blink (0000h nonblinking, 0001h blink)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in graphics modes
- SeeAlso: AX=000Bh,AX=003Ah,AX=0048h
- --------V-6200A7-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETBANKS" - SET SVGA READ AND WRITE BANKS
- AX = 00A7h
- BX = memory bank from which to read (FFFFh leave unchanged)
- CX = memory bank to which to write (FFFFh leave unchanged)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=003Bh
- --------V-6200A8-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY
- AX = 00A8h
- BX = new state (0000h off, 0001h on)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00B1h
- --------V-6200A9-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETCLIP" - SET CLIPPING REGION
- AX = 00A9h
- BX = left edge of clipping region
- CX = right edge of clipping region
- DX = top edge of clipping region
- SI = bottom edge of clipping region
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=003Eh,AX=00A1h,AX=00C5h
- --------V-6200AA-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETCOLOR" - SET CURRENT COLOR
- AX = 00AAh
- BX = new color index (or text attribute in text modes)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0018h,AX=0040h,AX=0045h
- --------V-6200AB-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETDACS" - SET VIDEO DAC CONTENTS
- AX = 00ABh
- CX = number of DAC registers to set (0001h to 0100h)
- DX = starting DAC register number (0000h to 00FFh)
- ES:BX -> buffer containing DAC red/green/blue triples
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The register number wraps back to zero after reaching FFh
- This call has no effect in text modes or graphics modes below 11h
- SeeAlso: AX=0041h,AX=004Eh,AX=0086h,INT 10/AX=1012h
- --------V-6200AC-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETENTRY" - SET TYPE AND ADDRESS OF VIDEO PAGE
- AX = 00ACh
- BX = page number (00h-3Fh)
- CX = page address
- DX = page type (see #2100 at AX=0042h)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0038h,AX=0042h,AX=00B0h
- --------V-6200AD-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS
- AX = 00ADh
- BX = operation
- 0000h replacement
- 0001h AND
- 0002h OR
- 0003h XOR
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is only available in native EGA/VGA graphics modes
- (0Dh to 12h)
- SeeAlso: AX=001Eh,AX=008Fh
- --------V-6200AE-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE
- AX = 00AEh
- BX = new hidden page (0000h to 003Fh)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The specified page must be a physical page or a virtual page
- SeeAlso: AX=0043h,AX=00B2h,AX=00B6h
- --------V-6200AF-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN
- AX = 00AFh
- BX = new screen size (25, 43, 50)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0047h
- --------V-6200B0-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE
- AX = 00B0h
- BX = new video mode or FFFFh for current mode (see #2111)
- ES:DX -> WORD ???
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call resets the active video page to page 0000h, the clipping
- region to the entire screen, text rows to 25, etc.
- SeeAlso: AX=004Bh,INT 10/AH=00h
-
- (Table 2111)
- Values for FGDRIVER video mode:
- 00h-07h standard BIOS modes
- 09h PCjr/Tandy1000 320x200x16
- 0Bh Hercules graphics 720x348
- 0Ch Hercules graphics 320x200
- 0Dh-13h standard BIOS modes
- 14h VGA graphics 320x200x256
- 15h VGA graphics 320x400x256
- 16h VGA graphics 320x240x256
- 17h VGA graphics 320x480x256
- 18h SVGA graphics 640x400x256
- 19h SVGA graphics 640x480x256
- 1Ah SVGA graphics 800x600x256
- 1Bh SVGA graphics 1024x768x256
- 1Ch SVGA graphics 800x600x16
- 1Dh SVGA graphics 1024x768x16
- --------V-6200B1-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY
- AX = 00B1h
- BX = new state (0000h off, 0001h on)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00A8h
- --------V-6200B2-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE
- AX = 00B2h
- BX = new video page (0000h to 003Fh)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The specified page must be a physical or virtual page
- SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=0088h
- --------V-6200B3-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS
- AX = 00B3h
- BX = palette or DAC register number
- CX = red color component
- DX = green component
- SI = blue component
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The register number may be negative for Tandy, PCjr, and 200-line
- EGA graphics modes to specify an intense color
- This call has no effect in text, CGA graphics, and Hercules graphics
- modes
- SeeAlso: AX=004Eh
- --------V-6200B4-----------------------------
- INT 62 u - FGDRIVER v4.02 - UNUSED
- AX = 00B4h
- Return: AX = 0000h
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- --------V-6200B5-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETVIEW" - DEFINE VIEWPORT
- AX = 00B5h
- ES:BX -> variable record (see #2686)
- CX = viewport's top edge in screen space
- DX = viewport's bottom edge in screen space
- Return: nothing
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=004Fh
-
- Format of FGDRIVER SETVIEW variable record:
- Offset Size Description (Table 2686)
- 00h WORD viewport's left edge in viewport units
- 02h WORD viewport's right edge in viewport units
- 04h WORD viewport's top edge in viewport units
- 06h WORD viewport's bottom edge in viewport units
- 08h WORD viewport's left edge in screen space
- 0Ah WORD viewport's right edge in screen space
- --------V-6200B6-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE
- AX = 00B6h
- BX = new video page (0000h to 003Fh)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The specified page must be a physical or virtual page
- SeeAlso: AX=0043h,AX=00AEh,AX=00B2h
- --------V-6200B7-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SHEAR" - SHEAR UNPACKED BITMAP
- AX = 00B7h
- ES:BX -> variable pointer record (see #2687)
- CX = bitmap width (0 < width <= 1024)
- DX = bitmap height (0 < height <= 1024)
- SI = size of resulting image (width for horiz. shear, height for vert.)
- DI = shear type
- 0000h horizontal shear to left
- 0001h horizontal shear to right
- 0002h vertical shear to left (left edge stretched up)
- 0003h vertical shear to right (right edge stretched up)
- Return: nothing
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=00A3h
-
- Format of FGDRIVER SHEAR variable pointer record:
- Offset Size Description (Table 2687)
- 00h WORD segment of source bitmap
- 02h WORD offset of source bitmap
- 04h WORD segment of buffer for resulting bitmap
- 06h WORD offset of buffer for resulting bitmap
- --------V-6200B8-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SHOWFLIC" - DISPLAY IMAGE FROM FLI/FLC FILE
- AX = 00B8h
- ES:BX -> ASCIZ filename for FLI/FLC file
- CX = number of times to display image file (0000h = continuously)
- DX = control flags (see #2688 at AX=0031h)
- Return: AX = status
- 0000h successful
- 0001h file not found
- 0002h not a valid FLI/FLC file
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- the FLI/FLC display may be stopped by the user by pressing Esc
- SeeAlso: AX=0030h,AX=0031h,AX=00B9h
- --------V-6200B9-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SHOWPCX" - DISPLAY IMAGE FROM PCX FILE
- AX = 00B9h
- ES:BX -> ASCIZ filename of PCX image
- CX = flags (see #2112)
- Return: AX = status
- 0000h success
- 0001h file not found
- 0002h not a PCX file
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is ignored in text modes and Hercules low-res graphics
- SeeAlso: AX=005Bh,AX=0060h"1.10",AX=006Ch,AX=006Dh,AX=006Eh,AX=00B8h,AX=00BAh
- SeeAlso: AX=00BBh
-
- Bitfields for FGDRIVER flags:
- Bit(s) Description (Table 2112)
- 0 use current palette rather than PCX file's palette
- 1 display image at cursor position instead of position in PCX header
- 2-15 reserved
- --------V-6200BA-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SHOWPPR" - DISPLAY IMAGE FROM PPR FILE
- AX = 00BAh
- ES:BX -> ASCIZ filename of packed pixel run image
- CX = width in pixels (nonzero)
- Return: AX = status
- 0000h successful
- 0001h file not found
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The image is displayed with its lower left corner at the current
- graphics cursor position
- This function is ignored in text modes and 256-color graphics modes
- SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BBh
- --------V-6200BB-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SHOWSPR" - DISPLAY IMAGE FROM SPR FILE
- AX = 00BBh
- ES:BX -> ASCIZ filename of standard pixel run image
- CX = width in pixels (nonzero)
- Return: AX = status
- 0000h successful
- 0001h file not found
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The image is displayed with its lower left corner at the current
- graphics cursor position
- This function is ignored in text modes
- SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh
- --------V-6200BC-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION
- AX = 00BCh
- BX = frequency in Hertz (18-32767)
- CX = duration in clock ticks (0000h or negative for continuous sound)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
- AX=00AAh) is already in progress
- SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
- --------V-6200BD-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND
- AX = 00BDh
- CX = number of times to cycle through sound list
- ES:BX -> sounds array (see #2113)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
- AX=00AAh) is already in progress
- SeeAlso: AX=0059h,AX=0081h,AX=00BCh,AX=00C0h,AX=00DCh
-
- Format of FGDRIVER sounds array element:
- Offset Size Description (Table 2113)
- 00h WORD frequency of sound in Hertz (0000h ends array)
- 02h WORD duration of sound in clock ticks
- --------V-6200BE-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SPLIT" - ENABLE/DISABLE SPLIT SCREEN ENVIRONMNT
- AX = 00BEh
- BX = beginning row for bottom half of split-screen
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- --------V-6200BF-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION
- AX = 00BFh
- BX = duration in processor-dependent delay units (see AX=0070h)
- Return: after delay elapses
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0070h,INT 2F/AX=1224h
- --------V-6200C0-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND
- AX = 00C0h
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call has no effect if there is no asynchronous sound in progress
- The program must not exit while sound is suspended
- SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
- --------V-6200C1-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SVGAINIT" - INITIALIZE FASTGRAPH SVGA KERNEL
- AX = 00C1h
- BX = method (see #2114)
- Return: AX = status
- 0000h no VESA BIOS or supported SVGA chipset
- 0001h using VESA BIOS
- 0002h-0016h specific chipset being used (same as "method" below)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function must be called before attempting to set SVGA graphics
- modes (18h to 1Dh) or using "FG_BESTMODE", "FG_TESTMODE", or
- "FG_MEMORY"
- SeeAlso: AX=0025h,AX=00C2h,AX=00C3h
-
- (Table 2114)
- Values for FGDRIVER SVGA method:
- 0000h autodetect, give chipset-specific code priority over VESA
- 0001h autodetect, give VESA priority over chipset-specific code
- 0002h Ahead type "A"
- 0003h Ahead type "B"
- 0004h ATI 18800
- 0005h ATI 18800-1
- 0006h ATI 28800
- 0007h Chips & Technologies 82c451/455/456
- 0008h C&T 82c452
- 0009h C&T 82c453
- 000Ah Genoa 6000 series
- 000Bh Oak OTI-067
- 000Ch Paradise PVGA1a
- 000Dh Paradise WD90C00/WD90C10
- 000Eh Paradise WD90C11/WD90C30/WD90C31
- 000Fh Trident 8800
- 0010h Trident 8900
- 0011h Tseng ET3000
- 0012h Tseng ET4000
- 0013h Video7
- 0014h Cirrus Logic 5400 series
- 0015h S3
- 0016h Trident 8900B/8900C/9000
- --------V-6200C2-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SVGASTAT" - GET SVGA CHIPSET INFORMATION
- AX = 00C2h
- Return: AX = chipset information (see #2115)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0025h,AX=00C1h,AX=00C3h
-
- Bitfields for FGDRIVER chipset information:
- Bit(s) Description (Table 2115)
- 0 SVGA kernel initialized
- 1 VESA support enabled
- 2 extended video pages available in modes 13-23
- 3 SVGA chipset has separate read and write banks
- 4-15 reserved (0)
- --------V-6200C3-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_SVGAVER" - GET FASTGRAPH SVGA KERNEL VERSION
- AX = 00C3h
- ES:BX -> variable pointer record (see #2116)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00C1h,AX=00C2h
-
- Format of FGDRIVER variable pointer record:
- Offset Size Description (Table 2116)
- 00h WORD segment of WORD buffer for major version
- 02h WORD offset of WORD buffer for major version
- 04h WORD segment of WORD buffer for minor version (hundredths)
- 06h WORD offset of WORD buffer for minor version
- --------V-6200C4-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_TCDEFINE" - DEFINE TRANSPARENCY OF COLOR INDEX
- AX = 00C4h
- BX = color index
- CX = transparency (00h opaque, other transparent)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is ignored in text modes
- SeeAlso: AX=00C5h,AX=00C6h
- --------V-6200C5-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_TCMASK" - SET TRANSPARENT COLORS
- AX = 00C5h
- BX = colors to consider transparent (bit 0 = color 0, etc)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This call is ignored in text modes
- The specified colors are considered transparent by "FG_TCXFER"
- SeeAlso: AX=00C4h,AX=00C6h
- --------V-6200C6-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT
- AX = 00C6h
- CX = source video page
- DX = destination video page
- ES:BX -> copy record (see #2117)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- Pixels which are in any of the colors defined as transparent with
- "FG_TCMASK" (see AX=00C5h) are left unchanged in the destination
- region
- The source and destination regions must not overlap if they are located
- on the same page
- This call is ignored in text modes
- SeeAlso: AX=00C4h,AX=00C5h,AX=00CAh
- --------V-6200C7-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE
- AX = 00C7h
- BX = desired video mode (00h-17h, also 18h-1Dh after "FG_SVGAINIT")
- CX = required number of video pages (ignore memory size if <= 0)
- Return: AX = status
- 0000h mode not available with requested number of pages
- 0001h mode is available
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0005h,AX=00B0h
- --------V-6200C8-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS
- AX = 00C8h
- CX = length of string
- ES:BX -> string
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The string is displayed starting at the text cursor position using the
- current text attribute (text modes) or color index (graphics modes)
- The text cursor position is updated after this call
- SeeAlso: AX=000Ch,AX=0096h,AX=00C9h
- --------V-6200C9-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_TEXTC" - DISPLAY STRING OF CHARACTERS (CLIPPED)
- AX = 00C9h
- CX = length of string
- ES:BX -> string
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- The string is displayed starting at the text cursor position using the
- current text attribute (text modes) or color index (graphics modes),
- showing only the portion within the current clipping window
- The text cursor position is updated after this call
- SeeAlso: AX=00C8h
- --------V-6200CA-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_TRANSFER" - COPY REGION
- AX = 00CAh
- CX = source video page
- DX = destination video page
- ES:BX -> copy record (see #2117)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- The source and destination regions must not overlap if they are located
- on the same page
- SeeAlso: AX=009Eh,AX=00A2h,AX=00A5h,AX=00C6h
-
- Format of FGDRIVER copy record:
- Offset Size Description (Table 2117)
- 00h WORD left edge column of source region
- 02h WORD right edge column of source region
- 04h WORD top edge row of source region
- 06h WORD bottom edge row of source region
- 08h WORD left edge of destination
- 0Ah WORD bottom edge of destination
- --------V-6200CB-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_UNPACK" - EXPAND MODE-SPECIFIC BITMAP
- AX = 00CBh
- ES:BX -> variable pointer record (see #2689)
- CX = size of source bitmap in bytes
- Return: result buffer filled
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=0083h
-
- Format of FGDRIVER UNPACK variable pointer record:
- Offset Size Description (Table 2689)
- 00h WORD segment of source bitmap
- 02h WORD offset of source bitmap
- 04h WORD segment of buffer for resulting bitmap
- 06h WORD offset of buffer for resulting bitmap
- --------V-6200CC-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBADDR" - GET ADDRESS OF VIRTUAL BUFFER
- AX = 00CCh
- BX = virtual buffer handle (0000h-001Fh)
- Return: DX:AX -> virtual buffer
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=00CDh,AX=00CEh,AX=00CFh,AX=00D3h
- --------V-6200CD-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBALLOC" - CREATE VIRTUAL BUFFER
- AX = 00CDh
- BX = width of virtual buffer in pixels
- CX = height in pixels
- Return: AX = handle for virtual buffer, or
- FFFEh out of memory
- FFFFh virtual buffer table full
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=00CCh,AX=00CEh,AX=00D0h,AX=00D1h,AX=00D2h,AX=00D4h
- --------V-6200CE-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBCLOSE" - CLOSE ACTIVE VIRTUAL BUFFER
- AX = 00CEh
- Desc: close the active virtual buffer and direct further graphics to the
- active video page
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=00CCh,AX=00D1h,AX=00D4h,AX=00D5h,AX=00D9h
- --------V-6200CF-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBCOPY" - COPY RECT BETWEEN VIRTUAL BUFFERS
- AX = 00CFh
- ES:BX -> variable record (see #2690)
- CX = handle for source virtual buffer
- DX = handle for destination virtual buffer
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- if the destination buffer is the same as the source buffer, the regions
- must not overlap
- SeeAlso: AX=00D0h,AX=00D1h,AX=00D4h,AX=00D6h,AX=00D7h
-
- Format of FGDRIVER VBCOPY variable record:
- Offset Size Description (Table 2690)
- 00h WORD source region's left edge
- 02h WORD source region's right edge
- 04h WORD source region's top edge
- 06h WORD source region's bottom edge
- 08h WORD X coordinate of destination's upper left corner
- 0Ah WORD Y coordinate of destination's upper left corner
- --------V-6200D0-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBCUT" - COPY RECT FROM VIDEO TO VIRTUAL BUFFER
- AX = 00D0h
- BX = source region's left edge
- CX = source region's right edge
- DX = source region's top edge
- SI = source region's bottom edge
- DI = X coordinate of destination's upper left corner
- ES = Y coordinate of destination's upper left corner
- Desc: copy a rectangle from the active video page to the active virtual
- buffer
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=00CDh,AX=00CFh,AX=00D4h,AX=00D6h
- --------V-6200D1-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBDEFINE" - CREATE VIRTUAL BUFFER
- AX = 00D1h
- ES:BX -> memory block for virtual buffer
- CX = buffer width in pixels
- DX = buffer height in pixels
- Return: AX = virtual buffer handle
- FFFFh on error
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- the application-provided buffer must be large enough to hold CX*DX
- bytes
- SeeAlso: AX=00CCh,AX=00CDh,AX=00CEh,AX=00D2h,AX=00D4h,AX=00D5h
- --------V-6200D2-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBFREE" - RELEASE VIRTUAL BUFFER
- AX = 00D2h
- BX = virtual buffer handle
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- this function should be used only for buffers created with FG_VBALLOC
- SeeAlso: AX=00CDh,AX=00D4h,AX=00D5h
- --------V-6200D3-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBHANDLE" - GET ACTIVE VIRTUAL BUFFER'S HANDLE
- AX = 00D3h
- Return: AX = handle for active virtual buffer
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=00CCh,AX=00D4h
- --------V-6200D4-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBINIT" - INITIALIZE VIRTUAL BUFFER ENVIRONMENT
- AX = 00D4h
- Return: nothing
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- this function must be called before any other virtual buffer functions
- are used
- SeeAlso: AX=00CDh,AX=00D5h
- --------V-6200D5-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBOPEN" - MAKE VIRTUAL BUFFER ACTIVE
- AX = 00D5h
- BX = virtual buffer handle
- Return: AX = status
- 0000h successful
- FFFEh no buffer defined for specified handle
- FFFFh invalid buffer handle
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=00CDh,AX=00CEh,AX=00D1h,AX=00D4h,AX=00D9h
- --------V-6200D6-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBPASTE" - COPY RECT FROM VIRTUAL BUF TO VIDEO
- AX = 00D6h
- BX = source region's left edge
- CX = source region's right edge
- DX = source region's top edge
- SI = source region's bottom edge
- DI = X coordinate of destination's upper left corner
- ES = Y coordinate of destination's upper left corner
- Desc: copy a rectangle from the active virtual buffer to the active video
- page
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=00CFh,AX=00D0h,AX=00D4h,AX=00D7h
- --------V-6200D7-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBTCCOPY" - COPY RECTANGLE BETWEEN VIRTUAL BUFS
- AX = 00D7h
- ES:BX -> variable record (see #2691)
- CX = source virtual buffer's handle
- DX = destination virtual buffer's handle
- Desc: copy rectangle from one virtual buffer to another with transparent
- colors
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- if the destination buffer is the same as the source buffer, the regions
- must not overlap
- SeeAlso: AX=00CFh,AX=00D0h,AX=00D6h,AX=00D8h
-
- Format of FGDRIVER VBTCCOPY variable record:
- Offset Size Description (Table 2691)
- 00h WORD source region's left edge
- 02h WORD source region's right edge
- 04h WORD source region's top edge
- 06h WORD source region's bottom edge
- 08h WORD X coordinate of destination region's upper left corner
- 0Ah WORD Y coordinate of destination region's upper left corner
- --------V-6200D8-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBTCXFER" - COPY RECTANGLE TO ACTIVE VIDEO PAGE
- AX = 00D8h
- BX = source region's left edge
- CX = source region's right edge
- DX = source region's top edge
- SI = source region's bottom edge
- DI = X coordinate of destination's upper left corner
- ES = Y coordinate of destination's upper left corner
- Desc: copy a rectangle from the active virtual buffer to the active video
- page, with transparent colors
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- SeeAlso: AX=00D6h,AX=00D7h
- --------V-6200D9-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VBUNDEF" - RELEASE HANDLE FOR VIRTUAL BUFFER
- AX = 00D9h
- BX = virtual buffer handle
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- the specified handle must not reference the currently-active virtual
- buffer
- SeeAlso: AX=00D1h,AX=00D5h
- --------V-6200DA-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VGASTATE" - SAVE/RESTORE VGA CONTROLLER STATE
- AX = 00DAh
- BX = direction (0000h save, else restore)
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667)
- this function is only meaningful in modes 0Dh and above
- --------V-6200DB-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VOICE" - START SOUND
- AX = 00DBh
- BX = channel on TI sound chip
- 1-3 = channels 1-3, 4 = channel 4 with periodic noise,
- 5 = channel 4 with white noise
- CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz,
- 2=2048 Hz for channels 4 and 5)
- DX = volume
- SI = duration in clock ticks (continuous if <= 0)
- Program: FGDRIVER is the external video driver for the shareware
- Fastgraph/Light by Ted Gruber Software
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is only available on the PCjr and Tandy 1000 machines
- SeeAlso: AX=0080h,AX=00BCh,AX=00DCh
- --------V-6200DC-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND
- AX = 00DCh
- ES:BX -> tone array (see #2118)
- CX = number of times to repeat tone array
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- This function is only available on the PCjr and Tandy 1000 machines
- SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DBh
-
- Format of FGDRIVER tone array element:
- Offset Size Description (Table 2118)
- 00h WORD channel number (0000h terminates array)
- 02h WORD frequency
- 04h WORD volume
- 06h WORD duration in 1/72.8 seconds
- --------V-6200DD-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION
- AX = 00DDh
- BX = duration in clock ticks
- Return: after delay elapses
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00BFh,INT 1A/AX=FF01h
- --------V-6200DE-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY
- AX = 00DEh
- Return: after next key pressed
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=000Ah,AX=0046h,AX=0063h,AX=0069h,INT 16/AH=00h
- --------V-6200DF-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_WAITVR" - ENABLE/DISABLE VERTICAL RETRACE WAIT
- AX = 00DFh
- BX = new state (0000h disabled, 0001h enabled)
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- --------V-6200E0-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_WHERE" - GET CURRENT CURSOR POSITION
- AX = 00E0h
- ES:BX -> variable pointers (see #2119)
- Return: indicated variables filled with cursor row and column for active
- display
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=007Eh
-
- Format of FGDRIVER variable pointers:
- Offset Size Description (Table 2119)
- 00h WORD segment of WORD buffer for cursor row
- 02h WORD offset of WORD buffer for cursor row
- 04h WORD segment WORD buffer for cursor column
- 06h WORD offset WORD buffer for cursor column
- --------V-6200E1-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN
- AX = 00E1h
- BX = screen space column
- Return: AX = character space column containing specified coordinate
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00E2h,AX=00E4h
- --------V-6200E2-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL
- AX = 00E2h
- BX = character space column
- Return: AX = screen space column of leftmost pixel in specified character col
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00E2h,AX=00E5h
- --------V-6200E3-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_XVIEW" - CONVERT VIEWPORT COORDINATE
- AX = 00E3h
- BX = horizontal viewport coordinate
- Return: AX = screen space X coordinate corresponding to supplied coordinate
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- if no viewport has been defined, the returned coordinate will be the
- same as the viewport coordinate
- SeeAlso: AX=00E2h,AX=00E6h
- --------V-6200E4-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW
- AX = 00E4h
- BX = screen space row
- Return: AX = character space row containing specified coordinate
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00E1h,AX=00E5h
- --------V-6200E5-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW
- AX = 00E5h
- BX = character space row
- Return: AX = screen space row of topmost pixel in specified character row
- Note: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- SeeAlso: AX=00E2h,AX=00E4h,AX=00E6h
- --------V-6200E6-----------------------------
- INT 62 u - FGDRIVER v4.02 - "FG_YVIEW" - TRANSLATE VERTICAL VIEWPORT COORDINATE
- AX = 00E6h
- BX = viewport Y coordinate
- Return: AX = screen space row for viewport coordinate
- Program: FGDRIVER is the external video driver for the shareware
- Fastgraph/Light by Ted Gruber Software
- Notes: the FGDRIVER functions are rearranged with each major release, but
- their parameters do not change (see #2667 at AX=0000h)
- if no viewport has been defined, the returned coordinate will be the
- same as the viewport coordinate
- SeeAlso: AX=00E3h,AX=00E5h
- --------T-6201-------------------------------
- INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
- AH = 01h
- Program: Cswitch is a set of multitasking functions by Herb Rose
- SeeAlso: AH=05h"Cswitch",AH=06h"Cswitch",INT 15/AX=1000h,INT 2F/AX=1680h
- --------N-6201-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
- AH = 01h
- Return: CF clear if successful
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6202-------------------------------
- INT 62 - Cswitch - WAIT FOR SEMAPHORE
- AH = 02h
- DX = semaphore number (0-63)
- Return: AX = FFFFh bad semaphore number
- else success
- SeeAlso: AH=03h"Cswitch",AH=04h"Cswitch"
- --------N-6202-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - INITIALIZE
- AH = 02h
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AH=00h"ETHDEV",AH=03h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
- SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6203-------------------------------
- INT 62 - Cswitch - CHECK SEMAPHORE
- AH = 03h
- DX = semaphore number (0-63)
- Return: AX = status
- FFFFh not owned
- else owned
- SeeAlso: AH=02h,AH=04h
- --------N-6203-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET REAL IP ADDRESS
- AH = 03h
- DS:SI -> DWORD buffer for IP address
- Return: CF clear if successful
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6204-------------------------------
- INT 62 - Cswitch - TRIGGER SEMAPHORE
- AH = 04h
- DX = semaphore number (0-63)
- Return: AX = status
- FFFFh bad semaphore number
- else success
- SeeAlso: AH=02h"Cswitch",AH=03h"Cswitch"
- --------N-6204-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
- AH = 04h
- BX = ???
- ES:SI -> FAR routine for ???
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6205-------------------------------
- INT 62 - Cswitch - SLEEP
- AH = 05h
- BX = seconds to sleep
- SeeAlso: AH=01h"Cswitch",AH=06h"Cswitch",AH=08h"Cswitch"
- --------N-6205-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
- AH = 05h
- ???
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6206-------------------------------
- INT 62 - Cswitch - SUSPEND
- AH = 06h
- SeeAlso: AH=05h"Cswitch",AH=08h"Cswitch"
- --------N-6206-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
- AH = 06h
- ???
- Return: CF clear if successful
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6207-------------------------------
- INT 62 - Cswitch - SPAWN
- AH = 07h
- ES:BX -> function address to start executing at
- CX = priority (1-10)
- Return: AX = result/status
- FFFDh no free memory control blocks
- FFFEh no free task control blocks
- FFFFh not enough memory to create new task stack
- >0 the tcb number of the new task, indicating no error
- SeeAlso: AH=0Fh"Cswitch",AH=10h"Cswitch"
- --------N-6207-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
- AH = 07h
- DS:SI -> ???
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6208-------------------------------
- INT 62 - Cswitch - WAKE UP TASK
- AH = 08h
- BX = tcb identifier
- SeeAlso: AH=05h,AH=06h
- --------N-6208-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
- AH = 08h
- CX = ???
- ES:SI -> ??? buffer (see #2120)
- Return: CF clear if successful
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
-
- Format of BW-TCP ??? buffer:
- Offset Size Description (Table 2120)
- 00h 6 BYTEs hardware address???
- 06h 6 BYTEs ???
- 0Ch WORD ???
- 0Eh WORD ???
- ----------6208--CXFFFE-----------------------
- INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
- AH = 08h
- CX = FFFEh
- DX = FFFFh
- Return: AX = PSP address of resident DBLIBRARY
- Note: this call does not free the memory allocated to the TSR; the calling
- code must do the deallocation.
- SeeAlso: INT 62"DBLIBRARY"
- --------T-6209-------------------------------
- INT 62 - Cswitch - SET PRIORITY
- AH = 09h
- BX = new base priority (1-10)
- Note: the lower the priority is numerically, the more often the task will run
- --------N-6209-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - HOOK TIMER INTERRUPT
- AH = 09h
- Return: CF clear if successful
- AX = handler ID
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=0Ah"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP"
- SeeAlso: INT 64"BW-NFS"
- --------T-620A-------------------------------
- INT 62 - Cswitch - TEST MESSAGE QUEUE
- AH = 0Ah
- DX = queue number (0-63)
- Return: AX = result/message size
- 0000h nothing on queue
- FFFFh bad queue number
- else number of bytes in first message in queue
- SeeAlso: AH=0Bh"Cswitch",AH=0Ch"Cswitch"
- --------N-620A-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - UNHOOK TIMER INTERRUPT
- AH = 0Ah
- DX = handler ID
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AH=09h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP"
- SeeAlso: INT 64"BW-NFS"
- --------T-620B-------------------------------
- INT 62 - Cswitch - SEND MESSAGE
- AH = 0Bh
- CX = number of bytes to write
- DS:SI -> buffer
- DX = queue number (0-63)
- Return: AX = result/message size
- 0000h no message was on queue
- FFFEh triggered by something arriving, redo the call
- FFFFh bad queue number
- else number of bytes in message
- SeeAlso: AH=0Ah"Cswitch",AH=0Ch"Cswitch"
- --------N-620B-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ADD ???
- AH = 0Bh
- AL = ???
- DX = ???
- BP = ???
- ES:SI -> ???
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AH=0Ch"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP"
- SeeAlso: INT 64"BW-NFS"
- --------T-620C-------------------------------
- INT 62 - Cswitch - READ MESSAGE
- AH = 0Ch
- CX = number of bytes to read
- DS:SI -> buffer
- DX = queue number (0-63)
- Return: AX = status
- FFFFh bad queue number
- else number of bytes transferred
- SeeAlso: AH=0Ah,AH=0Bh
- --------N-620C-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - REMOVE ???
- AH = 0Ch
- DX = ???
- BP = ???
- Return: CF clear if successful
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=0Bh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP"
- SeeAlso: INT 64"BW-NFS"
- --------T-620D-------------------------------
- INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
- AH = 0Dh
- SeeAlso: AH=0Eh"Cswitch"
- --------N-620D-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
- AH = 0Dh
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-620E-------------------------------
- INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
- AH = 0Eh
- SeeAlso: AH=0Dh"Cswitch"
- --------N-620E-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - BEGIN CRITICAL SECTION
- AH = 0Eh
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AH=0Fh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
- SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-620F-------------------------------
- INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
- AH = 0Fh
- ES:BX -> command line
- CX = priority (1-10)
- DX = background flag (nonzero allows loading to EMS)
- Return: AX = status
- 0000h task loader queue is full
- 0001h no error
- SeeAlso: AH=07h"Cswitch",AH=10h"Cswitch",AH=13h"Cswitch"
- --------N-620F-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - END CRITICAL SECTION
- AH = 0Fh
- Return: CF clear if successful
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=0Eh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
- SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6210-------------------------------
- INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
- AH = 10h
- SeeAlso: AH=07h"Cswitch",AH=0Fh"Cswitch"
- --------N-6210-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - QUERY CRITICAL SECTION
- AH = 10h
- Return: CF clear if no critical section active
- CF set if in critical section
- SeeAlso: AH=0Eh"ETHDEV",AH=0Fh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
- SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6211-------------------------------
- INT 62 - Cswitch - GET TCB INFORMATION
- AH = 11h
- ES:BX -> a pointer which will be set to the tcb address
- Return: AX = tcb indentifier
- SeeAlso: AH=12h
- --------N-6211-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
- AH = 11h
- ES:SI -> ???
- Return: CF clear
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6212-------------------------------
- INT 62 - Cswitch - GET TCB ADDRESS
- AH = 12h
- ES:BX -> a pointer which will be set to the tcb table address
- Return: AX = tcb indentifier
- SeeAlso: AH=11h"Cswitch"
- --------N-6212-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET SOCKET NUMBER???
- AH = 12h
- Return: CF clear if successful
- AX = socket number??? (memory variable incremented after reading)
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------T-6213-------------------------------
- INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
- AH = 13h
- Return: AX = result
- FFFCh no Memory Control Blocks available
- FFFDh no TCBs available
- FFFEh insufficient memory
- FFFFh cannot open file
- 0000h load in progress (not done yet)
- else tcb indentifier
- SeeAlso: AH=0Fh
- --------N-6213-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
- AH = 13h
- CX = ???
- Return: CF clear if successful
- AL = 00h
- CF set on error
- AL = error code
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------N-6214-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
- AH = 14h
- ES:SI -> ???
- Return: CF clear if successful
- AL = 00h
- CF set on error
- AL = error code
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------N-6215-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET ???
- AH = 15h
- Return: CF clear if successful
- AX = ??? (destroyed???)
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- Notes: call this function after reading the "ETHDEV27" device
- the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------N-6216-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
- AH = 16h
- ???
- Return: CF clear if successful
- CF set on error
- AL = error code
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------N-6217-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
- AH = 17h
- DX = segment of ???
- Return: CF clear
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------N-6218-------------------------------
- INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ALLOCATE AND MAP EMS FOR DRIVER
- AH = 18h
- Return: CF clear if successful
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- Notes: calls function 17h after EMS allocated and mapped
- the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
- --------R-6247-------------------------------
- INT 62 - PC Tools v7 COMMUTE - ???
- AH = 47h
- AL = subfunction (00h-31h)
- ???
- CF set
- Return: ???
- Program: COMMUTE is a remote-control program bundled with Central Point
- Software's PC Tools
- --------R-6248-------------------------------
- INT 62 - PC Tools v7 COMMUTE - ???
- AH = 48h
- AL = ???
- ???
- CF set
- Return: ???
- --------R-6249-------------------------------
- INT 62 - PC Tools v7 COMMUTE - ???
- AH = 49h
- ???
- CF set
- Return: ???
- Note: may be the same as AH=4Ch
- --------R-624A-------------------------------
- INT 62 - PC Tools v7 COMMUTE - ???
- AH = 4Ah
- AL = subfunction (00h-46h)
- ???
- CF set
- Return: ???
- --------R-624B--BX1234-----------------------
- INT 62 - PC Tools v7 COMMUTE - ???
- AH = 4Bh
- BX = 1234h
- CX = 1234h
- ES = ???
- CF set
- Return: ???
- Program: COMMUTE is a remote-control program bundled with Central Point
- Software's PC Tools
- --------R-624C-------------------------------
- INT 62 - PC Tools v7 COMMUTE - ???
- AH = 4Ch
- BL = subfunction
- 00h ???
- 02h ???
- Return: CF clear if successful
- CF set on error
- --------R-626262-----------------------------
- INT 62 - PC Tools v7 COMMUTE - INSTALLATION CHECK
- AX = 6262h
- CF set
- Return: AX = 0000h
- BX = segment of resident code's PSP
- Program: COMMUTE is a remote-control program bundled with Central Point
- Software's PC Tools
- --------s-62C0-------------------------------
- INT 62 U - GWBTSR - API
- AH = C0h
- AL = function
- 00h installation check
- Return: AX = 00FFh if installed
- 01h ???
- Program: GWBTSR is a huge (48K) resident mixer controller for the Gateway 2000
- sound card (OEM version of Aztech Sound Galaxy)
- Index: installation check;GWBTSR
- --------N-62FE-------------------------------
- INT 62 - BW-TCP - ETHDRV.SYS - MAP EMS PAGE FRAME
- AH = FEh
- AL = direction
- 00h map in driver's memory block
- 01h map out driver's memory block
- Return: CF clear if successful
- CF set on error
- AL = error code
- Range: INT 4C to INT FB, selected by configuration
- Notes: this function is supported by at least the SLIP and ODI versions of
- ETHDEV.SYS
- the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=00h"ETHDEV",INT 62/AH=18h"ETHDEV"
- SeeAlso: INT 63"BW-TCP",INT 64/AH=FEh
- --------*-63---------------------------------
- INT 63 - reserved for user interrupt
- --------d-63---------------------------------
- INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
- Desc: this vector stores the last four bytes of the parameter table for
- hard disk 0
- SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 62"Adaptec",INT 64"Adaptec"
- --------b-63---------------------------------
- INT 63 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
- Desc: the low word of this vector contains the segment of the RAM data area
- to be used by the expansion ROM at F400h:4000h, and the high word
- contains the length of the data area; this segment and size are
- both set to 0000h if no ROM is installed at F400h:4000h
- SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
- SeeAlso: INT 64"TI Professional PC"
- ----------63---------------------------------
- INT 63 - Oracle SQL Protected Mode Executive - ???
- --------d-63---------------------------------
- INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
- Desc: the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if
- INT 13 has been moved there) and places the old value here
- ----------63---------------------------------
- INT 63 - Kofax KF9X00 image manipulation card interface
- --------Q-63---------------------------------
- INT 63 - DESQview/X - SOCKET API
- Notes: parameters are passed by patching!! data field immediately following
- the entry point, as detailed below (see #2121); the preferred
- method for calling the socket API is via INT 15/AX=DE2Eh
- the installation check consists of testing for the string "dvxunix"
- (yes, lowercase) at offset 9 from the interrupt handler start
- (see #2121)
- SeeAlso: INT 15/AX=DE2Eh,INT BE"DESQview"
- Index: installation check;DESQview/X socket interface
-
- Format of DESQview/X socket interrupt handler entry:
- Offset Size Description (Table 2121)
- 00h 3 BYTEs near jump or short jump + NOP to actual interrupt handler
- 03h WORD offset from following pointer for initial top of local stack
- 05h DWORD pointer to argument/stack block (see INT 15/AX=DE2Eh)
- 09h 7 BYTEs signature "dvxunix"
- --------b-6300-------------------------------
- INT 63 - HP 100LX - MAP HIGH MEMORY
- AH = 00h
- AL = physical page (00h seg C000, 01h seg C400h, ...)
- BX = zero-based logical page
- CX = page number
- DX = device ID (00h system ROM, 05h plugin, etc.)
- Return: ???
- SeeAlso: AH=01h
- --------N-6300-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - SET IP ADDRESS???
- AH = 00h
- DS:BX -> DWORD containing IP address (big-endian)
- Return: CF clear if successful
- CF set on error
- AX destroyed
- Range: INT 4D to INT FC, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=01h"BW-TCP",AH=02h"BW-TCP"
- --------b-6301-------------------------------
- INT 63 - HP 100LX - SAVE/RESTORE MEMORY MAP
- AH = 01h
- AL = function (00h save, 01h restore)
- ???
- Return: ???
- --------N-6301-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 01h
- ES:BX -> ???
- ???
- Return: ???
- Range: INT 4D to INT FC, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: AH=00h"BW-TCP",AH=02h"BW-TCP"
- --------N-6302-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 02h
- ???
- Return: ???
- SeeAlso: AH=00h"BW-TCP",AH=01h"BW-TCP"
- --------N-6303-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - GET IP ADDRESS
- AH = 03h
- DS:SI -> buffer for DWORD IP address (big-endian)
- Return: AX destroyed
- CF clear if successful
- CF set on error
- Note: this call may use ARP or RARP to determine the address
- --------N-6304-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 04h
- ???
- Return: ???
- --------N-6305-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 05h
- DS:BX -> ???
- ES:SI -> ???
- Return: ???
- Range: INT 4D to INT FC, selected by configuration
- --------N-6306-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 06h
- ???
- Return: ???
- --------N-6307-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 07h
- ???
- Return: ???
- --------N-6308-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - SET DEFAULT ??? HANDLER
- AH = 08h
- DS:BX -> DWORD containing IP address
- Return: CF clear if successful
- CF set on error
- ???
- --------N-6309-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - INSTALL ??? HANDLERS
- AH = 09h
- BL = handler type
- ES:SI -> FAR handler of specified type
- Return: ???
- SeeAlso: AH=0Ah,AH=0Dh
- --------N-630A-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - DELETE ??? HANDLERS
- AH = 0Ah
- BL = handler type
- Return: CF clear if successful
- CF set on error (no handler of specified type installed)
- SeeAlso: AH=09h
- --------N-630B-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 0Bh
- AL = ???
- DL = ???
- DS:BX -> ???
- ES:SI -> ???
- Return: ???
- --------N-630C-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 0Ch
- ???
- Return: ???
- Range: INT 4D to INT FC, selected by configuration
- --------N-630D-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - INSTALL DEFAULT ??? HANDLER
- AH = 0Dh
- ???
- Return: ???
- Note: if not already installed, installs a type 06h handler with AH=09h
- SeeAlso: AH=09h
- --------N-630E-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - CLOSE NETWORK DESCRIPTOR
- AH = 0Eh
- ???
- Return: ???
- SeeAlso: INT 61/AH=08h"PC/TCP",INT 61/AH=09h"PC/TCP",INT 61/AH=18h
- --------N-630F-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 0Fh
- AL = ???
- SI = ???
- DS:DI -> ???
- ???
- Return: ???
- Range: INT 4D to INT FC, selected by configuration
- --------N-6310-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 10h
- DS:DI -> ???
- ???
- Return: ???
- --------N-6311-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 11h
- ???
- Return: ???
- --------N-6312-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - LISTEN FOR INCOMING CONNECTIONS
- AH = 12h
- DS:SI -> ???
- ES:BP -> ???
- Return: ???
- SeeAlso: INT 61/AH=23h
- --------N-6313-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - NOP
- AH = 13h
- Return: nothing
- Range: INT 4D to INT FC, selected by configuration
- --------N-6314-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - OPEN NETWORK CONNECTION
- AH = 14h
- BX = network descriptor???
- DS:SI -> ???
- ES:BP -> ???
- Return: ???
- SeeAlso: INT 61/AH=13h"PC/TCP",INT 62/AH=13h"ETHDEV"
- --------N-6315-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 15h
- DS:DI -> ???
- ???
- Return: ???
- Range: INT 4D to INT FC, selected by configuration
- --------N-6316-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - RESET NETWORK CONNECTION
- AH = 16h
- DS:DI -> ???
- Return: ???
- Note: calls AH=17h after preprocessing
- SeeAlso: AH=17h,INT 61/AH=19h"PC/TCP"
- --------N-6317-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 17h
- DS:DI -> ???
- ???
- Return: ???
- Range: INT 4D to INT FC, selected by configuration
- SeeAlso: AH=18h
- --------N-6318-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 18h
- DS:DI -> ???
- ???
- Return: ???
- Note: same as AH=17h, except performed with interrupts disabled
- SeeAlso: AH=17h
- --------N-6319-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - WRITE TO THE NETWORK
- AH = 19h
- DS:DI -> ???
- ???
- Return: BX = number of bytes NOT written
- ???
- Range: INT 4D to INT FC, selected by configuration
- Note: calls AH=17h with interrupts disabled and ??? set to 01h
- SeeAlso: AH=1Ah,AH=1Bh,INT 61/AH=1Ah"PC/TCP"
- --------N-631A-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - READ FROM THE NETWORK
- AH = 1Ah
- CX = maximum number of bytes to read
- ES:BP -> ???
- ???
- Return: CX = number of bytes actually read
- ???
- SeeAlso: AH=19h,INT 61/AH=1Bh"PC/TCP"
- --------N-631B-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 1Bh
- CX = ???
- ES:BP -> ???
- Return: DX = ???
- ???
- Range: INT 4D to INT FC, selected by configuration
- --------N-631C-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 1Ch
- DS:DI -> ???
- ???
- Return: ???
- Note: calls AH=17h with ???
- SeeAlso: AH=17h
- --------N-631D-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 1Dh
- ???
- Return: ???
- Range: INT 4D to INT FC, selected by configuration
- --------N-631E-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 1Eh
- DS:BX -> DWORD containing IP address (big-endian)
- ???
- Return: CF clear if successful
- CF set on error
- ???
- --------N-631F-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - SET SOCKET ??? HANDLER
- AH = 1Fh
- BX = socket number
- ES:SI -> FAR function for ???
- Return: CF clear if successful
- CF set on error (out of slots)
- SeeAlso: AH=20h
- --------N-6320-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - REMOVE SOCKET ??? HANDLER
- AH = 20h
- BX = socket number
- Return: CF clear if successful
- CF set on error (not set)
- Range: INT 4D to INT FC, selected by configuration
- SeeAlso: AH=1Fh
- --------N-6321-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 21h
- ES:SI -> ???
- Return: ???
- SeeAlso: INT 61/AH=1Ch"PC/TCP"
- --------N-6322-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - REMOVE ??? HANDLER
- AH = 22h
- Return: CF clear
- Range: INT 4D to INT FC, selected by configuration
- Note: decrements a counter if not already zero, and calls AH=0Ah with BL=11h
- if the counter reaches zero
- --------N-6323-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 23h
- DS:BX -> ???
- ES:SI -> 6-byte buffer for ???
- Return: CF clear if successful
- CF set on error
- --------N-6324-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - GET SOCKET
- AH = 24h
- Return: AX = socket number (0400h-FFFFh)
- Range: INT 4D to INT FC, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- SeeAlso: INT 62/AH=12h"ETHDEV",INT 64"BW-NFS"
- --------N-6325-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - GET INTERNET ADDRESS
- AH = 25h
- Return: CL:CH:DL:DH = caller's Internet address
- SeeAlso: AH=26h,INT 61/AH=05h"PC/TCP"
- --------N-6326-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - SET INTERNET ADDRESS???
- AH = 26h
- CL:CH:DL:DH = Internet address
- Return: nothing
- Range: INT 4D to INT FC, selected by configuration
- Note: this function sets a different variable than AH=25h returns
- SeeAlso: AH=25h
- --------N-6327-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - SET ???
- AH = 27h
- BX = ???
- ES:SI -> ???
- Return: ???
- --------N-6328-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 28h
- ???
- Return: ???
- --------N-6329-------------------------------
- INT 63 - BW-TCP - TCPIP.SYS - ???
- AH = 29h
- ???
- Return: ???
- Range: INT 4D to INT FC, selected by configuration
- Note: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- --------*-64---------------------------------
- INT 64 - reserved for user interrupt
- --------d-64---------------------------------
- INT 64 - Adaptec controllers - DRIVE 1 DATA
- Desc: this vector stores the first four bytes of the parameter table for
- hard disk 1
- Notes: these vectors are used by the following Adaptec controllers:
- ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
- these vectors are NOT used by the following Adaptec controllers:
- ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
- SeeAlso: INT 60"Adaptec",INT 65"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
- --------b-64---------------------------------
- INT 64 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
- Desc: the low word of this vector contains the segment of the RAM data area
- to be used by the expansion ROM at F400h:6000h, and the high word
- contains the length of the data area; this segment and size are
- both set to 0000h if no ROM is installed at F400h:6000h
- SeeAlso: INT 60"TI Professional PC",INT 63"TI Professional"
- SeeAlso: INT 65"TI Professional PC"
- ----------64---------------------------------
- INT 64 - Oracle SQL Protected Mode Executive - ???
- --------N-64---------------------------------
- INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API
- Note: equivalent to INT 7A for NetWare versions through 2.0a only; later
- versions do not use this interrupt for IPX/SPX access, instead
- getting an entry point from INT 2F/AX=7A00h
- SeeAlso: INT 2F/AX=7A00h,INT 7A"Novell"
- --------h-64---------------------------------
- INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
- SeeAlso: INT 65"DG10",INT 66"DG10"
- --------r-64---------------------------------
- INT 64 - Extended Batch Language v3.14+
- AH = function
- 00h to 5Fh chained to previous handler
- 60h to 6Ch reserved, return immediately
- 80h to FFh chained to previous handler
- 6Dh (v4.01+) insert tone in queue
- AL = ???
- CX = frequency in Hertz
- DL = duration in clock ticks
- Return: AL = 00h if note stored
- = 01h if no room to store
- 6Eh clear ??? counter/flag
- 6Fh return counter/flag that AH=6Eh clears
- 70h ???
- AL = ???
- 71h ???
- AL = ???
- 72h ???
- 73h insert byte at end of keyboard buffer
- AL = byte to insert
- Return: AL = 00h if byte inserted
- = 01h if no room to store
- 74h insert byte at front of keyboard buffer
- AL = byte to insert
- Return: AL = 00h if byte inserted
- = 01h if no room to store
- 75h ???
- 76h get keyboard "stack" status
- AL = 'K' if kbd read will read physical keyboard
- 'S' if it will read EBL internal keyboard buffer
- AH = ???
- 77h clear internal keyboard buffer
- 78h ???
- AL = ???
- 79h ???
- 7Ah ???
- AL = ???
- 7Bh ???
- AL = ???
- 7Ch ???
- AL = ???
- 7Dh ???
- AL = ???
- 7Eh clear buffer for ???
- 7Fh installation check
- Return: CX = version in BCD
- DI = segment of ???
- BX = segment of next program's PSP???
- Program: Extended Batch Language is a batch-file enhancer by Seaware
- Notes: the chaining does not check whether the interrupt had been hooked
- before, so if you try to chain when the previous vector was
- 0000h:0000h, you'll be in trouble
- functions 72h and 7Ah-7Dh appear to be interfaces to the optional
- floating-point and extended function packages
- Index: installation check;EBL|installation check;Extended Batch Language
- --------d-64---------------------------------
- INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
- Note: This vector is overwritten by Pdisk to install custom harddrive types.
- It can either destroy 4 vectors and take no memory or TSR and take
- up some memory.
- SeeAlso: INT 65"Pdisk"
- --------N-6401-------------------------------
- INT 64 U - BW-NFS - BWRPC - ???
- AH = 01h
- ES:BX -> ??? (at least 8 bytes)
- ES:BP -> DWORD ???
- ???
- Return: CF clear if successful
- ???
- CF set on error
- CX = 0000h
- Range: INT 4E to INT FD, selected by configuration
- Notes: the Beame&Whiteside TCP/IP protocol stack uses two consecutive
- interrupts (62h and 63h by default); the BW-NFS client uses a third
- consecutive interrupt (64h by default) if it is loaded
- the BWRPC installation check consists of determining the interrupt
- vector assigned to it (two more than the value returned by reading
- the ETHDEV27 device), and testing whether the word immediately
- preceding the interrupt handler is 4257h ('BW')
- SeeAlso: INT 62/AH=00h"ETHDEV",INT 63"BW-TCP"
- Index: installation checks;BWRPC
- --------N-6402-------------------------------
- INT 64 U - BW-NFS - BWRPC - ???
- AH = 02h
- DS:DI -> ???
- Return: ???
- Note: this call is passed directly through to INT 62/AH=07h
- SeeAlso: INT 62/AH=07h"ETHDEV"
- --------N-6403-------------------------------
- INT 64 U - BW-NFS - BWRPC - ADD ???
- AH = 03h
- AL = ???
- BP = ???
- ES:SI -> ???
- Return: ???
- Note: this call is passed directly through to INT 62/AH=0Bh
- SeeAlso: AH=04h,INT 62/AH=0Bh"ETHDEV"
- --------N-6404-------------------------------
- INT 64 U - BW-NFS - BWRPC - REMOVE ???
- AH = 04h
- BP = ???
- Return: ???
- Range: INT 4E to INT FD, selected by configuration
- Note: this call is passed directly through to INT 62/AH=0Ch
- SeeAlso: AH=03h,INT 62/AH=0Ch"ETHDEV"
- --------N-6405-------------------------------
- INT 64 U - BW-NFS - BWRPC - ???
- AH = 05h
- CX = ???
- Return: ???
- Note: this call is passed directly through to INT 62/AH=13h
- SeeAlso: INT 62/AH=13h"ETHDEV"
- --------N-6406-------------------------------
- INT 64 U - BW-NFS - BWRPC - ???
- AH = 06h
- ES:SI -> ???
- Return: AL = 00h if CF clear
- Range: INT 4E to INT FD, selected by configuration
- Note: this call is passed directly through to INT 62/AH=14h
- SeeAlso: INT 62/AH=14h"ETHDEV"
- --------N-6407-------------------------------
- INT 64 U - BW-NFS - BWRPC - GET IP ADDRESS
- AH = 07h
- Return: CX:DX = IP address
- --------N-6410-------------------------------
- INT 64 U - BW-NFS - BWRPC - CALL ETHDEV.SYS
- AH = 10h
- AL = ETHDEV function number
- other registers as appropriate for ETHDEV call
- Return: as returned by ETHDEV
- Note: this call is passed directly through to INT 62
- SeeAlso: INT 62/AH=00h"ETHDEV"
- --------N-6411-------------------------------
- INT 64 U - BW-NFS - BWRPC - NOP???
- AH = 11h
- Return: CF clear
- Range: INT 4E to INT FD, selected by configuration
- --------N-64FE-------------------------------
- INT 64 - BW-NFS - BWRPC - MAP EMS PAGE FRAME
- AH = FEh
- AL = direction
- 00h map in driver's memory block
- 01h map out driver's memory block
- Return: CF clear if successful
- CF set on error
- AL = error code
- Range: INT 4E to INT FD, selected by configuration
- Note: this call is passed through directly to ETHDEV.SYS (see INT 62/AH=FEh)
- SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=FEh,INT 63"BW-TCP"
- --------*-65---------------------------------
- INT 65 - reserved for user interrupt
- --------d-65---------------------------------
- INT 65 - Adaptec controllers - DRIVE 1 DATA
- Desc: this vector stores the second four bytes of the parameter table for
- hard disk 1
- SeeAlso: INT 64"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
- --------b-65---------------------------------
- INT 65 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
- Desc: the low word of this vector contains the segment of the RAM data area
- to be used by the expansion ROM at F400h:8000h, and the high word
- contains the length of the data area; this segment and size are
- both set to 0000h if no ROM is installed at F400h:8000h
- SeeAlso: INT 60"TI Professional PC",INT 64"TI Professional"
- SeeAlso: INT 66"TI Professional PC"
- --------h-65---------------------------------
- INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
- SeeAlso: INT 64"DG10",INT 66"DG10"
- --------N-65---------------------------------
- INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT
- --------U-65---------------------------------
- INT 65 - SD.COM v6.2
- Desc: The unregistered version of SD62.COM uses the low byte of this vector
- to count the number of invocations, displaying a registration
- reminder each time after the 20th use.
- --------d-65---------------------------------
- INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
- SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
- --------s-65---------------------------------
- INT 65 - Ad Lib SOUND.COM - INTERFACE
- SI = function number (see also entries below)
- 0000h Init
- 0002h RelTimeStart
- 0003h SetState
- 0004h GetState
- 0005h Flush
- 0006h SetMode
- 0007h GetMode
- 0008h SetRelVolume
- 0009h SetTempo
- 000Ah SetTranspose
- 000Bh GetTranspose
- 000Ch SetActVoice
- 000Dh GetActVoice
- 000Eh PlayNoteDel
- 000Fh PlayNote
- 0010h SetTimbre
- 0011h SetPitch
- 0012h SetTickBeat
- 0013h NoteOn
- 0014h NoteOff
- 0015h Timbre
- 0016h SetPitchBend
- 0017h WaveForm
- ES:BX -> arguments
- Note: the installation check consists of checking for the signature block
- immediately preceding the interrupt handler (see #2122)
- SeeAlso: SI=8000h
- Index: installation check;Ad Lib SOUND.COM
-
- Format of AdLib signature block:
- Offset Size Description (Table 2122)
- 00h WORD version number
- 02h 19 BYTEs "SOUND-DRIVER-AD-LIB"
- 15h BYTE 01h
- 16h BYTE 01h
- 17h BYTE 00h
- --------s-65----SI0000-----------------------
- INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
- SI = 0000h
- --------s-65----SI0003-----------------------
- INT 65 - Ad Lib SOUND.COM - SET STATE
- SI = 0003h
- ES:BX -> WORD new state (0000h disabled, 0001h enabled)
- SeeAlso: SI=0004h
- --------s-65----SI0004-----------------------
- INT 65 - Ad Lib SOUND.COM - GET STATE
- SI = 0004h
- Return: AX = status
- 0000h all done playing sounds
- else still playing sounds
- SeeAlso: SI=0003h
- --------s-65----SI0006-----------------------
- INT 65 - Ad Lib SOUND.COM - SET MODE
- SI = 0006h
- ES:BX -> WORD new mode (0000h melodic, 0001h percussive)
- SeeAlso: SI=0007h
- --------s-65----SI0007-----------------------
- INT 65 - Ad Lib SOUND.COM - GET MODE
- SI = 0007h
- Return: AX = mode
- 0000h melodic
- 0001h percussive
- SeeAlso: SI=0006h
- --------s-65----SI000C-----------------------
- INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
- SI = 000Ch
- ES:BX -> WORD voice = 0000h to 0008h
- SeeAlso: SI=000Dh
- --------s-65----SI000D-----------------------
- INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
- SI = 000Dh
- Return: AX = voice (0000h to 0008h)
- SeeAlso: SI=000Ch
- --------s-65----SI8000-----------------------
- INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
- SI = 8000h
- Return: DX:AX -> internal data structures
- Program: FM.COM is an Ad Lib SOUND.COM-compatible driver for Media Vision's
- Pro Audio Spectrum sound boards
- SeeAlso: SI=8001h
- --------s-65----SI8001-----------------------
- INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
- SI = 8001h
- Return: AX = ???
- DX = number of voices??? (09h or 0Bh)
- SeeAlso: SI=8000h
- --------s-65----SI8002-----------------------
- INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
- SI = 8002h
- SeeAlso: SI=8003h
- --------s-65----SI8003-----------------------
- INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
- SI = 8003h
- SeeAlso: SI=8002h
- --------s-65----SI8004-----------------------
- INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
- SI = 8004h
- Return: AX = ??? (0280h)
- DX = ??? (01A0h)
- --------s-65----SI8005-----------------------
- INT 65 U - Media Vision FM.COM v4.1a+ - ???
- SI = 8005h
- ???
- Return: ???
- SeeAlso: SI=8000h
- --------S-65---------------------------------
- INT 65 U - EZRECV v1.0 - API
- AX = function
- 0000h ???
- Return: AX = ??? or FFFFh
- 0001h ???
- Return: AX = status (0000h or 0001h)
- 0002h ???
- Return: AX = status (0000h or 0001h)
- 0003h set ??? to 0001h
- Return: AX = 0000h
- 0004h ???
- Return: AX = ???
- Return: BH = COM port being used
- BL = speed???
- CH = ???
- CL = ???
- DX = ???
- DS = ???
- ES = EZRECV data segment
- Program: EZRECV is a background Zmodem file receiver by Express Consulting
- --------*-66---------------------------------
- INT 66 - reserved for user interrupt
- --------d-66---------------------------------
- INT 66 - Adaptec controllers - DRIVE 1 DATA
- Desc: this vector stores the third four bytes of the parameter table for
- hard disk 1
- SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 67"Adaptec"
- --------b-66---------------------------------
- INT 66 - TI Professional PC - SYSTEM INFORMATION (NOT A VECTOR!)
- Desc: the low word of this vector contains the system memory size in
- paragraphs; the third byte contains the number of outstanding
- interrupt requests, and the fourth byte contains a description
- of the installed drive types (see #2123)
- SeeAlso: INT 60"TI Professional PC",INT 67"TI Professional"
-
- Bitfields for TI Professional drive type information:
- Bit(s) Description (Table 2123)
- 7 floppy drive D: has 80 tracks
- 6 floppy drive D: is double-sided
- 5 floppy drive C: has 80 tracks
- 4 floppy drive C: is double-sided
- 3 floppy drive B: has 80 tracks
- 2 floppy drive B: is double-sided
- 1 floppy drive A: has 80 tracks
- 0 floppy drive A: is double-sided
- --------h-66---------------------------------
- INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
- SeeAlso: INT 64"DG10"
- --------N-66---------------------------------
- INT 66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???
- Program: TurboNET is a NetBIOS-based file redirector and server
- Note: hooked but not used (IRET) by both redirector and server; called from
- server's INT 28 handler
- SeeAlso: INT 2F/AX=8100h
- --------d-66---------------------------------
- INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
- SeeAlso: INT 64"Pdisk",INT 67"Pdisk"
- --------W-66---------------------------------
- INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer
- Note: This Windows 3.x Virtual Device Driver implements a virtual timer
- which will expire and call INT 66. This timer can be used to
- calculate elapsed execution time etc.
- --------K-66---------------------------------
- INT 66 - Newkey v5.4 - INSTALLATION VECTOR
- Return: immediately (IRET)
- Program: Newkey is a shareware keyboard macro program by Frank A. Bell
- Range: INT 60h to INT 67h, selected by scanning for highest unused vector
- Note: the installation check consists of testing for the signature bytes
- FDh FCh FFh FEh at offset 03h in the interrupt handlers segment
- BUG: the code obviously intends to use INT F0-FE, INT 70-77, and INT 68-6F
- before falling back to INT 60-67, but only uses the last of these
- ranges in v5.4
- SeeAlso: INT 2F/AX=E300h
- Index: installation checks;Newkey|Newkey;installation check
- --------U-66---------------------------------
- INT 66 - PC-Magazin - INCA
- details not yet availble
- Program: INCA is a utility from PC-Magazin (the German edition of PC Magazine)
- issue 51-52/85.
- SeeAlso: INT 61"SWAPx"
- --------F-6601-------------------------------
- INT 66 - BitFax Scheduler - SET MODE???
- AH = 01h
- SeeAlso: AH=02h
- --------F-6602-------------------------------
- INT 66 - BitFax Scheduler - SET MODE???
- AH = 02h
- SeeAlso: AH=01h
- --------F-6603-------------------------------
- INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS
- AH = 03h
- ???
- Return: ???
- SeeAlso: AH=05h
- --------F-6604-------------------------------
- INT 66 - BitFax Scheduler - GET STATUS???
- AH = 04h
- Return: AX = ??? (0000h or 0001h)
- DX = BitSched version??? (for versions >= 3.00)
- 9796h (ver. 3.00)
- 97E6h (ver. 3.02)
- 92D0h (ver. 3.04.06)
- 9510h (ver. 3.06.02)
- SeeAlso: AH=06h,AX=3345h,INT 2F/AX=8000h"FaxBIOS"
- --------F-6605-------------------------------
- INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX
- AH = 05h
- BX:CX -> command block (see #2124)
- ???
- Return: ???
- SeeAlso: AH=03h
-
- Format of BitFax command block:
- Offset Size Description (Table 2124)
- 00h 18 BYTEs configuration bytes???
- 12h BYTEs ASCIZ temporary file name to place converted fax
- 52h BYTEs ASCIZ directory containing BitFax executables
- 92h BYTEs ASCIZ telephone number
- C2h BYTE cover page control (00h don't send, 01h do send cover page)
- C3h 15 BYTEs configuration bytes???
- E2h BYTEs ASCIZ path of BITFAX.TRA file (containing additional
- configuration information???)
- 122h BYTEs configuration bytes???
- 12Ch BYTE 00h don't send cover page
- 01h send cover page
- 12Dh 7 BYTEs configuration bytes???
- 134h BYTEs ASCIZ path of file to send
- 174h BYTEs more configuration bytes???
- ???
- --------F-6606-------------------------------
- INT 66 - BitFax Scheduler - SET MODE???
- AH = 06h
- Return: DX = BitSched version??? (same as AH=04h)
- SeeAlso: AH=04h
- --------s-660688-----------------------------
- INT 66 - IBMSND driver, DIGPAK - PLAY 8-BIT DIGITIZED SOUND
- AX = 0688h
- DS:SI -> SNDSTRUC (see #2125)
- Return: ???
- Program: The IBMSND driver is part of John W. Ratcliff's
- The IBM Digitized Sound Package
- DIGPAK is a set of digitized sound drivers written by
- John W. Ratcliff, The Audio Solution, Inc.
- Note: the installation check consists of looking for a valid signature
- string six bytes prior to the interrupt handler; this string may
- be either "KERN" or "MIDI" (in the latter case, call AX=0701h to
- determine whether IBMSND is installed)
- SeeAlso: AX=068Bh,AX=068Fh,AX=0701h
-
- Format of IBMSND driver SNDSTRUC:
- Offset Size Description (Table 2125)
- 00h DWORD -> audio data
- 04h WORD length of audio data in bytes
- 06h DWORD -> playback status flag
- 0Ah WORD playback frequency
- --------s-660689-----------------------------
- INT 66 - IBMSND driver, DIGPAK - REPORT SOUND DRIVER STATUS
- AX = 0689h
- Return: AX = status
- 0000h no sound playing
- 0001h sound effect is currently playing
- ---DIGPAK---
- BX = version number (v3.1+)
- DX = looping status
- 0000h no sound looping
- 0001h sound effect is currently looping
- SeeAlso: AX=0688h,AX=068Bh,AX=068Ch
- Index: version check;DIGPAK
- --------s-66068A-----------------------------
- INT 66 - IBMSND driver, DIGPAK - PREFORMAT SOUND
- AX = 068Ah
- DS:SI -> SNDSTRUC (see #2125)
- Desc: convert audio data into output hardware format
- SeeAlso: AX=068Bh
- --------s-66068B-----------------------------
- INT 66 - IBMSND driver, DIGPAK - PLAY PREFORMATTED SOUND
- AX = 068Bh
- DS:SI -> SNDSTRUC (see #2125)
- Return: AX = ???
- SeeAlso: AX=0688h,AX=068Ah,AX=068Fh
- --------s-66068C-----------------------------
- INT 66 - IBMSND driver, DIGPAK - REPORT AUDIO DRIVER CAPABILITIES
- AX = 068Ch
- Return: AX = capabilities (see #2126)
- DX = playback rate if fixed-frequency playback
- ---DIGPAK---
- BX:CX -> ASCIZ ID string
- SeeAlso: AX=0689h,AX=068Dh
-
- Bitfields for IBMSND driver capabilities:
- Bit(s) Description (Table 2126)
- 0 can play audio in background
- 1 data is massaged for output device
- 2 driver plays at fixed frequency, resampling input data to fit
- 3 driver uses timer interrupt
- ---DIGPAK---
- 4 device supports timer sharing
- 5 supports looped sounds and pending
- 6 supports stereo panning
- 7 supports 8-bit PCM stereo playback
- 8 supports audio recording
- 9 supports DMA bakcfilling
- --------s-66068D-----------------------------
- INT 66 - IBMSND driver, DIGPAK - REPORT CURRENT SAMPLE ADDRESS
- AX = 068Dh
- Return: AX = current playback address
- Desc: determine what point in the audio data the playback has reached, for
- synchronization with video or animation effects
- Notes: this function applies to background playback only
- the reported address may be an approximation rather than the exact
- address
- SeeAlso: AX=068Ch,AX=0691h
- --------s-66068E-----------------------------
- INT 66 - IBMSND driver, DIGPAK - SET CALLBACK ADDRESS
- AX = 068Eh
- BX:DX -> callback function
- 0000h:0000h to disable callback
- DS = value to load into DS when calling the callback function
- Desc: specify the function to be called when playback of a sound effect is
- completed
- Note: the callback function will typically be called during a hardware
- interrupt, so all the usual precautions should be taken except for
- preserving registers
- SeeAlso: AX=0691h
- --------s-66068F-----------------------------
- INT 66 - IBMSND driver, DIGPAK - STOP CURRENT SOUND
- AX = 068Fh
- Desc: cause any currently-playing sound effect to be terminated
- SeeAlso: AX=0688h,AX=068Bh
- --------s-660690-----------------------------
- INT 66 - IBMSND driver, DIGPAK - "SetAudioHardware" - SET UP HARDWARE INFO
- AX = 0690h
- BX = IRQ
- CX = base address
- DX = other setup value (device-dependent???)
- --------s-660691-----------------------------
- INT 66 - IBMSND driver, DIGPAK - REPORT CALLBACK ADDRESS
- AX = 0691h
- Return: AX:DX -> current callback function
- BX = original caller's DS register
- Program: The IBMSND driver is part of John W. Ratcliff's
- The IBM Digitized Sound Package
- DIGPAK is a set of digitized sound drivers written by
- John W. Ratcliff, The Audio Solution, Inc.
- SeeAlso: AX=068Eh
- --------s-660693-----------------------------
- INT 66 - DIGPAK - SET TIMER DIVISOR RATE
- AX = 0693h
- DX = rate
- Program: DIGPAK is a set of digitized sound drivers written by
- John W. Ratcliff, The Audio Solution, Inc.
- --------s-660694-----------------------------
- INT 66 - DIGPAK - PLAY PREFORMATTED DATA
- AX = 0694h
- DS:SI -> Sound Data structure (see #2125)
- Return: AX = status???
- --------s-660695-----------------------------
- INT 66 - DIGPAK - POST AUDIO PENDING
- AX = 0695h
- DS:SI -> Sound Data structure (***)
- Return: AX = status
- 0000h sound started playing
- 0001h sound was posted as pending to play
- 0002h sound effect already pending, this one not posted
- SeeAlso: AX=0696h
- --------s-660696-----------------------------
- INT 66 - DIGPAK - GET AUDIO PENDING STATUS
- AX = 0696h
- Return: AX = status
- 0000h no sound is playing
- 0001h sound playing, and a sound is pending
- 0002h sound playing, no sound pending
- SeeAlso: AX=0695h
- --------s-660697-----------------------------
- INT 66 - DIGPAK - SET STEREO PANNING
- AX = 0697h
- DX = panning position (0 = right, 127 = left)
- Return: AX = status
- 0000h command ignored (not supported)
- 0001h panning set
- --------s-660698-----------------------------
- INT 66 - DIGPAK - SET PLAY MODE
- AX = 0698h
- DX = playback mode
- 0000h 8-bit PCM
- 0001h 8-bit stereo PCM
- 0002h 16-bit PCM
- 0003h 16-bit stereo PCM
- Return: AX = status
- 0000h command ignored
- 0001h mode set
- --------s-660699-----------------------------
- INT 66 - DIGPAK - GET ADDRESSES
- AX = 0699h
- Return: AX = pending address
- BX = semaphore address
- --------s-66069A-----------------------------
- INT 66 - DIGPAK - SET RECORD MODE
- AX = 069Ah
- DX = recording mode
- 0000h turn audio recording on
- 0001h turn audio recording off
- Return: AX = status
- 0000h command ignored
- 0001h audio recording mode set
- --------s-66069B-----------------------------
- INT 66 - DIGPAK - STOP NEXT LOOP
- AX = 069Bh
- --------s-66069C-----------------------------
- INT 66 - DIGPAK - SET DMA BACKFILL MODE
- AX = 069Ch
- DX = mode
- 0000h turn backfill mode on
- 0001h turn backfill mode off
- Return: AX = status
- 0000h command ignored
- 0001h backfill mode set
- SeeAlso: AX=069Dh,AX=069Eh
- --------s-66069D-----------------------------
- INT 66 - DIGPAK - REPORT DMA COUNTER
- AX = 069Dh
- Return: AX = DMA counter
- SeeAlso: AX=069Eh
- --------s-66069E-----------------------------
- INT 66 - DIGPAK - VERIFY DMA BLOCK
- AX = 069Eh
- CX = length of buffer
- ES:BX -> buffer containing sound data
- Return: AX = status
- 0000h block crosses 64K bounadary
- 0001h block is OK
- SeeAlso: AX=069Dh
- --------s-66069F-----------------------------
- INT 66 - DIGPAK - SET PCM VOLUME
- AX = 069Fh
- BX = left channel volume (0-100)
- CX = right channel volume (0-100)
- Return: AX = status
- 0000h command ignored
- 0001h volume set
- --------s-6606A0-----------------------------
- INT 66 - DIGPAK - SET DPMI MODE
- AX = 06A0h
- DX = mode
- 0000h 32-bit register addressing on
- 0001h 32-bit register addressing off
- SeeAlso: INT 31/AX=0400h
- --------s-660700-----------------------------
- INT 66 - MIDPAK - UNINSTALL
- AX = 0700h
- Note: this function should NOT be called by applications
- Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
- Incorporated.
- --------s-660701-----------------------------
- INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
- AX = 0701h
- Return: AX = digitized sound capabilities
- 0000h if digitized sound driver (functions 06xxh) not available
- Notes: the installation check for the MIDI driver is to test for the signature
- "MIDI" six bytes before the interrupt handler
- also supported by MIDPAK, the successor to the Digitized Sound
- Package's MIDI driver
- SeeAlso: AX=0688h
- --------s-660702-----------------------------
- INT 66 - MIDPAK - PLAY SEQUENCE
- AX = 0702h
- BX = Sequence number
- Return: AX = status
- 0000h Sequence is being played
- 0001h Sequence not available
- SeeAlso: AX=0703h,AX=0705h
- --------s-660703-----------------------------
- INT 66 - MIDPAK - SEGUE SEQUENCE
- AX = 0703h
- BX = sequence number
- CX = activation code (FFFFh is next trigger)
- Return: ???
- --------s-660704-----------------------------
- INT 66 - MIDPAK - REGISTER XMIDI
- AX = 0704h
- CX:BX -> XMIDI sequence data
- DI:SI = length of XMIDI data
- Return: AX = status
- 0000h unable to register XMIDI data
- 0001h XMIDI file registered resident
- 0002h XMIDI file was registered to the application
- --------s-660705-----------------------------
- INT 66 - MIDPAK - STOP MIDI
- AX = 0705h
- SeeAlso: AX=0702h,AX=0709h
- --------s-660706-----------------------------
- INT 66 O - MIDPAK - REMAP CHANNEL
- AX = 0706h
- BX = sequence
- CX = physical
- --------s-660707-----------------------------
- INT 66 - MIDPAK - REPORT TRIGGER EVENT COUNTER
- AX = 0707h
- Return: AX = count of number of callbacks since last reset
- DX = ID
- SeeAlso: AX=0708h,AX=0713h
- --------s-660708-----------------------------
- INT 66 - MIDPAK - RESET EVENT TRIGGER COUNTER
- AX = 0708h
- SeeAlso: AX=0707h,AX=0713h
- --------s-660709-----------------------------
- INT 66 O - MIDPAK - MIDI SLEEP
- AX = 0709h
- SeeAlso: AX=070Ah
- --------s-66070A-----------------------------
- INT 66 O - MIDPAK - MIDI AWAKE
- AX = 070Ah
- SeeAlso: AX=0709h
- --------s-66070B-----------------------------
- INT 66 - MIDPAK - RESUME PLAYING
- AX = 070Bh
- SeeAlso: AX=070Ch
- --------s-66070C-----------------------------
- INT 66 - MIDPAK - GET SEQUENCE STATUS
- AX = 070Ch
- Return: AX = status
- 0000h sequence stopped
- 0001h sequence playing
- 0002h sequence done
- SeeAlso: AX=070Bh
- --------s-66070D-----------------------------
- INT 66 - MIDPAK - REGISTER XMIDI FILE
- AX = 070Dh
- CX:BX -> ASCII filename
- SeeAlso: AX=0704h,AX=0710h
- --------s-66070E-----------------------------
- INT 66 - MIDPAK - GET RELATIVE VOLUME
- AX = 070Eh
- Return: AX = current volume
- SeeAlso: AX=070Fh
- --------s-66070F-----------------------------
- INT 66 - MIDPAK - SET RELATIVE VOLUME
- AX = 070Fh
- BX = new volume
- CX = time
- SeeAlso: AX=070Eh
- --------s-660710-----------------------------
- INT 66 - MIDPAK - LOAD MIDPAK DRIVER
- AX = 0710h
- BX = segment of .ADV driver
- CX = 0000h (offset must be zero)
- DX:SI -> .AD driver
- SeeAlso: AX=070Dh
- --------s-660711-----------------------------
- INT 66 - MIDPAK - POLL MIDPAK
- AX = 0711h
- Return: AX = ???
- ???
- SeeAlso: AX=0712h
- --------s-660712-----------------------------
- INT 66 - MIDPAK - GET MIDI CLOCK
- AX = 0712h
- Return: AX:DX = clock counter
- CX:BX = clock address
- SeeAlso: AX=0711h,AX=0713h
- --------s-660713-----------------------------
- INT 66 - MIDPAK - GET TRIGGER COUNT ADDRESS
- AX = 0713h
- Return: AX:DX -> trigger counter address
- SeeAlso: AX=0707h,AX=0712h,AX=0714h
- --------s-660714-----------------------------
- INT 66 - MIDPAK - GET EVENT ID ADDRESS
- AX = 0714h
- Return: AX:DX -> event ID
- SeeAlso: AX=0713h,AX=0716h
- --------s-660716-----------------------------
- INT 66 - MIDPAK - REPORT SEQUENCE NUMBER
- AX = 0716h
- Return: AX = current sequence number
- SeeAlso: AX=0702h
- Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
- Incorporated.
- --------n-6610-------------------------------
- INT 66 - PenDOS - TDMOUSE.EXE - GET ???
- AH = 10h
- Return: CF clear
- AX = 0000h
- BX = ??? (0012h)
- DX:CX -> TDMOUSE INT 33 handler (IRET to hide mouse from other apps)
- Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate
- a touchpad; PenDOS is a set of programs by Communication Intelligence
- Corporation which makes applications pen-aware
- --------n-6611-------------------------------
- INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
- AH = 11h
- DX:BX -> new handler for ???
- Return: CF clear
- AX = 0000h
- DX:BX -> old handler for ??? (points at RETF by default)
- --------n-6612-------------------------------
- INT 66 - PenDOS - TDMOUSE.EXE - INITIALIZE
- AH = 12h
- Return: CF clear
- AX = 0000h
- Note: this function calls the old mouse handler with functions 0000h, 0002h,
- 0007h, 0008h, 000Fh, 0004h, and 000Ch (in that order)
- SeeAlso: AH=13h
- --------n-6613-------------------------------
- INT 66 - PenDOS - TDMOUSE.EXE - SHUTDOWN???
- AH = 13h
- Return: CF clear
- other register as returned by INT 33/AX=0000h
- SeeAlso: AH=12h
- --------n-6614-------------------------------
- INT 66 - PenDOS - TDMOUSE.EXE - ???
- AH = 14h
- BX = ???
- CX = ???
- Return: CF clear
- AX = 0000h
- --------n-6615-------------------------------
- INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
- AH = 15h
- DX:BX -> new handler for ???
- Return: CF clear
- AX = 0000h
- DX:BX -> old handler (points at RETF by default)
- --------n-6616-------------------------------
- INT 66 - PenDOS - TDMOUSE.EXE - UNUSED FUNCTIONS
- AH = 16h to 1Fh
- Return: CF set
- Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate
- a touchpad; PenDOS is a set of programs by Communication Intelligence
- Corporation which makes applications pen-aware
- --------n-6621-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 21h
- Return: CF clear if successful
- CF set on error
- Note: this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
- --------n-6622-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 22h
- DX:BX -> ???
- CL = ???
- Return: CF clear if successful
- CF set on error
- ???
- SeeAlso: AH=24h
- --------n-6623-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 23h
- ???
- Return: CF clear if successful
- CF set on error
- ???
- --------n-6624-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 24h
- DX:BX -> ???
- CL = ???
- Return: CF clear if successful
- CF set on error
- ???
- SeeAlso: AH=22h
- --------n-6625-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 25h
- CL = ??? (NOP if 00h)
- ???
- Return: CF clear if successful
- CF set on error
- ???
- --------n-6627-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 27h
- BL = ???
- BH = ???
- CL = ??? (0-3)
- DL = ??? (> BL)
- DH = ??? (> BH)
- Return: ???
- --------n-6628-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 28h
- ???
- Return: CF clear if successful
- CF set on error
- ???
- Note: this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
- --------n-6629-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 29h
- ???
- Return: ???
- Note: this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
- --------n-662A-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 2Ah
- DL = ??? (nonzero)
- DH = ??? (nonzero)
- Return: CF clear if successful
- CF set on error
- ???
- --------n-662B-------------------------------
- INT 66 - PenDOS - PINK - ???
- AH = 2Bh
- ???
- Return: CF clear if successful
- CF set on error
- ???
- --------n-662F-------------------------------
- INT 66 - PenDOS - PINK - INITIALIZE
- AH = 2Fh
- ???
- Return: AX = status
- 0000h failed
- FFFFh successful
- ???
- Note: this function sets ??? flag or counter to FFFFh and hooks INT 1Ch
- --------F-663345-----------------------------
- INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY
- AX = 3345h
- Return: AX = FFFFh error removing TSR
- Note: the installation check consists of checking for the signature
- "BitFax Scheduler" beginning two bytes past the interrupt handler
- SeeAlso: AH=04h,INT 2F/AH=2Ah,INT 2F/AX=CB00h
- Index: installation check;BitFax Scheduler
- --------n-6640-------------------------------
- INT 66 - PenDOS - PKEYUS - GET VERSION
- AH = 40h
- Return: CF clear
- AX = 0000h
- BH = major version (02h for version bundled with IBM DOS 6.1)
- BL = minor version (00h for version bundled with IBM DOS 6.1)
- DL = ??? (4Eh)
- DH = ??? (0Eh)
- --------n-6641-------------------------------
- INT 66 - PenDOS - PKEYUS - SET ???
- AH = 41h
- BX = ???
- CL = ??? (08h-20h)
- DL = screen column??? (<= 50h)
- DH = screen row??? (<= 3Ch)
- Return: AX = status (0000h successful, 0001h error)
- Note: this function also sets an internal flag
- SeeAlso: AH=42h,AH=43h
- --------n-6642-------------------------------
- INT 66 - PenDOS - PKEYUS - ???
- AH = 42h
- Return: CF clear
- AX = 0000h
- Note: this function also clears the flag set by AH=41h
- SeeAlso: AH=41h
- --------n-6643-------------------------------
- INT 66 - PenDOS - PKEYUS - ???
- AH = 43h
- BX = ???
- DX = ???
- Return: AX = status
- 0000h if AH=41h flag set
- else
- AH = ???
- AL = ???
- BX = ???
- DX = ???
- SeeAlso: AH=41h
- --------n-6644-------------------------------
- INT 66 - PenDOS - PKEYUS - UNUSED FUNCTIONS
- AH = 44h to 4Fh
- Return: CF set
- --------n-6650-------------------------------
- INT 66 - PenDOS - PMOUSE - SET ???
- AH = 50h
- BX = ???
- CH = ???
- DX = ???
- Return: CF clear
- AX = 0000h
- --------n-6651-------------------------------
- INT 66 - PenDOS - PMOUSE - NOP
- AH = 51h
- Return: CF set
- --------n-6652-------------------------------
- INT 66 - PenDOS - PMOUSE - ???
- AH = 52h
- BX = ???
- CL = ???
- DX = ???
- Return: ???
- --------n-6653-------------------------------
- INT 66 - PenDOS - PMOUSE - UNUSED FUNCTIONS
- AH = 53h to 57h
- Return: CF set
- --------n-66---------------------------------
- INT 66 - PenDOS - PMOUSE - ALTERNATE API
- AH = function (58h-5Fh)
- Note: these functions exactly duplicate AH=50h-57h
- --------U-66AA02-----------------------------
- INT 66 - HelpTSR v2.10 - INSTALLATION CHECK
- AX = AA02h
- Return: ES:DI -> 7 byte signature "HelpTSR" if resident
- Program: HelpTSR is a resident viewer by David Jurgens for HelpPC
- --------n-66C5-------------------------------
- INT 66 - PenDOS - VLOAD - API
- AH = C5h
- ???
- Return: ???
- --------t-66FFFBBXFFFB-----------------------
- INT 66 - MicroHelp Stay-Res Plus - ???
- AX = FFFBh
- BX = FFFBh
- ???
- Return: ???
- SeeAlso: AX=FFFEh,INT 2D"AMIS"
- --------t-66FFFEBXFFFE-----------------------
- INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL
- AX = FFFEh
- BX = FFFEh
- Return: only if unsuccessful
- Notes: installation check is for the interrupt handler to begin with the bytes
- FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) to
- appear at offset 0005h (older versions) or the offset returned by
- AX=FFFFh/BX=FFF0h in the interrupt handler segment.
- Programs which use Stay-Res include ThesPlus (program name "THESPLUS")
- and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman.
- SeeAlso: AX=FFFBh,AX=FFFFh,INT 2D"AMIS"
- Index: installation check;MicroHelp Stay-Res|installation check;ThesPlus
- Index: installation check;Personal Calendar|installation check;CAL
- --------t-66FFFFBXFFF0-----------------------
- INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME
- AX = FFFFh
- BX = FFF0h
- Return: DI = offset of program name in interrupt handler segment
- SeeAlso: AX=FFFBh,AX=FFFEh,INT 2D"AMIS"
- --------d-67---------------------------------
- INT 67 - Adaptec controllers - DRIVE 1 DATA
- Desc: this vector stores the last four bytes of the parameter table for
- hard disk 1
- SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 66"Adaptec"
- --------b-67---------------------------------
- INT 67 - TI Professional PC - SYSTEM DATA (NOT A VECTOR!)
- Desc: this vector contains the TI Pro's system configuration words
- (see #2127)
- SeeAlso: INT 66"TI Professional PC"
-
- Bitfields for TI Professional PC System Configuration doubleword:
- Bit(s) Description (Table 2127)
- 0 8087 present
- 31-1 reserved (0)
- --------d-67---------------------------------
- INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
- SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
- --------I-67---------------------------------
- INT 67 - Sangoma CCPOP 3270 resident module
- SeeAlso: INT 61"Sangoma",INT 68"Sangoma"
- --------U-67---------------------------------
- INT 67 - CUCKOO.COM - INSTALLATION CHECK
- Program: CUCKOO is a resident on-screen clock with optional hourly chime or
- cuckoo by an unknown author with revisions by Thomas A. Lundin
- Note: this is not a vector; when loaded for the first time, CUCKOO.COM uses
- the last unused (0000h:0000h) vector in the range 60h-67h to store
- the signature value 434Ch:4F4Bh ('CLOK')
- --------N-6700-------------------------------
- INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AND WAIT
- AH = 00h
- DS:DX -> ASCIZ semaphore name (max 64 bytes)
- Return: AL = status (see #2128)
- AH = semaphore owner if status=02h
- SeeAlso: AH=01h,AH=02h"PC-NET",INT 7F/AH=00h
-
- (Table 2128)
- Values for PC-NET semaphore function status:
- 00h successful
- 01h invalid function
- 02h semaphore already locked
- 03h unable to lock semaphore
- 04h semaphore space exhausted
- --------N-6701-------------------------------
- INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE
- AH = 01h
- DS:DX -> ASCIZ semaphore name (max 64 bytes)
- Return: AL = status (see #2128)
- AH = semaphore owner if status=02h
- SeeAlso: AH=00h,AH=02h"PC-NET",INT 7F/AH=01h"Alloy"
- --------N-6702-------------------------------
- INT 67 - PC-NET, Alloy NTNX - UNLOCK SEMAPHORE
- AH = 02h
- DS:DX -> ASCIZ semaphore name (max 64 bytes)
- Return: AL = status (see #2128)
- AH = semaphore owner if status=02h
- SeeAlso: AH=00h,AH=01h"PC-NET",INT 7F/AH=02h
- --------m-671E-------------------------------
- INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - INSTALLATION CHECK
- AH = 1Eh
- Return: AH = 00h if installed
- AL destroyed
- ES:DI -> ASCII signature "MemLimit"
- SeeAlso: AH=1Fh,INT 21/AX=4402h"386MAX"
- --------m-671F-------------------------------
- INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - API
- AH = 1Fh
- DS:SI -> request packet (see #2129)
- Return: AH = status (00h successful, 84h invalid function code, etc.)
- SeeAlso: AH=1Eh
-
- Format of 386MAX MEMLIMIT request packet:
- Offset Size Description (Table 2129)
- 00h WORD function code (00h-0Fh)
- 02h WORD return code (see #2130)
- 04h 4 BYTEs ???
- 08h WORD ???
- ???
-
- (Table 2130)
- Values for 386MAX MEMLIMIT return code:
- 00h unknown request
- 01h invalid parameter for VCPI limit
- 02h VCPI limit set
- 03h invalid parameter for EMS limit
- 04h EMS limit set
- 05h DPMI disabled
- 06h XMS disabled
- 07h XMS limit set
- 08h unable to uninstall
- 09h unloaded
- --------m-673F--CX5145-----------------------
- INT 67 U - QEMM-386 v4.23+ - INSTALLATION CHECK
- AH = 3Fh
- CX = 5145h ("QE")
- DX = 4D4Dh ("MM")
- Return: AH = 00h if installed
- ES:DI -> QEMM API entry point (see #2131,#2134,#2245)
- Notes: if no other program has hooked INT 67, an alternate installation
- check is to test for the string
- "QUARTERDECK EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
- handler's segment; the word at offset 12h contains the offset in
- the handler's segment of the API entry point
- although this function is still undocumented, Quarterdeck has recently
- documented two alternate methods for determining the QEMM API entry
- point, as well as several of the API functions
- MICEMM (Micronics Expanded Memory Manager) versions 2.0C and 4D support
- the alternate QEMM installation check and entry point functions 00h,
- 02h, and 03h; version 4D only provides the signature string if the
- commandline argument "DV" is provided
- 386MAX v6.01 responds to this call, but DESQview 2.42 does not
- recognize the returned entry point as providing QEMM's capabilities
- because a) only functions 0Ch (different from QEMM 0Ch) and
- 1000h-1009h are supported,
- b) status is returned as for EMS functions, not QEMM funcs
- c) the protected-mode entry point returned by function 1000h
- only supports functions 0Ch, 1004h, 1005h, and 100Ah
- the string check mentioned above is not supported by 386MAX
- SeeAlso: AX=5BF0h,AH=DDh,AX=FFA5h,INT 15/AX=11DEh,INT 21/AX=4402h/SF=01h
- SeeAlso: INT 21/AX=4402h"QEMM",INT 21/AX=4402h"386MAX",INT 2F/AX=D201h/BX=5145h
-
- (Table 2131)
- Values for calling QEMM "QPI_GetStatus" function:
- AH = 00h get QEMM state
- Return: CF clear
- AL = QEMM state
- bit 0 set if QEMM turned OFF
- bit 1 set if in "Auto" mode
- Note: this function is officially documented
- SeeAlso: #2132,#2133,#2134,#2245
-
- (Table 2132)
- Values for calling QEMM "QPI_SetStatus" function:
- AH = 01h set QEMM state
- AL = new state
- bit 0 set: place QEMM in OFF state
- Return: CF clear if successful
- CF set on error
- Note: this function is officially documented
- SeeAlso: #2131
-
- (Table 2133)
- Values for calling QEMM QPI function 02h:
- AH = 02h get ???
- Return: CF clear
- AX = segment of ??? data structure
- Data Structure
- Offset Size Description
- 00h DWORD page table entry for ???
- ???
- SeeAlso: #2134
-
- (Table 2134)
- Values for calling QEMM "QPI_GetVersion" function:
- AH = 03h get QEMM version
- Return: CF clear
- AX = BX = version in BCD
- Notes: this function is officially documented. The most recent official docs
- state that the version is returned in both AX and BX; older
- documentation only mentions BX
- MICEMM returns AX=0001h, BX unchanged
- SeeAlso: #2131,#2135
-
- (Table 2135)
- Values for calling QEMM QPI function 04h:
- AH = 04h allocate 4K page and set AUTO/ON mode
- Return: CF clear if successful
- DX = page number of a 4K page
- CF set if unable to allocate page
- Note: QEMM mode unchanged if not AUTO/OFF
- SeeAlso: #2136
-
- (Table 2136)
- Values for calling QEMM QPI function 05h:
- AH = 05h free 4K page and turn QEMM off
- DX = page number returned by function 04h
- Return: CF clear
- Note: QEMM mode unchanged if not AUTO/ON
- SeeAlso: #2135,#2137
-
- (Table 2137)
- Values for calling QEMM QPI function 06h:
- AH = 06h make new mapping context???
- DX = page number of 4K page to hold page table
- Return: CF clear
- Note: copies page table into given page and then sets ??? page table entry
- to point at copy
- SeeAlso: #2138,#2139
-
- (Table 2138)
- Values for calling QEMM QPI function 07h:
- AH = 07h get mapping context
- Return: CF clear
- DX = page number of page table for current mapping context
- SeeAlso: #2134,#2137,#2139
-
- (Table 2139)
- Values for calling QEMM QPI function 08h:
- AH = 08h set mapping context???
- DX = linear page number of page table
- Return: CF clear
- SeeAlso: #2134,#2137,#2138,#2140,#2142
-
- (Table 2140)
- Values for calling QEMM QPI function 09h:
- AH = 09h get linear page number for page table entry
- CX = page table index
- Return: CF clear
- DX = linear page number
- SeeAlso: #2141
-
- (Table 2141)
- Values for calling QEMM QPI function 0Ah:
- AH = 0Ah set linear page number for page table entry
- CX = page table index
- DX = linear page number
- Return: CF clear
- SeeAlso: #2140
-
- (Table 2142)
- Values for calling QEMM QPI function 0Bh:
- AH = 0Bh map 4K pages
- BX = number of pages
- CX = first page number (must be 0100h to allocate HMA)
- DX = EMS handle (memory belonging to EMS handle will be mapped
- into the address space beginning with the first page
- allocated to the handle)
- Return: AH = 00h
- SeeAlso: #2139,#2143
-
- (Table 2143)
- Values for calling QEMM QPI function 0Ch:
- AH = 0Ch get available memory
- Return: CF clear
- BX = 0001h
- CX = total 4K pages???
- DX = number of 4K pages free
- SeeAlso: #2142,#2144
-
- (Table 2144)
- Values for calling QEMM QPI function 0Dh:
- AH = 0Dh CRT controller I/O port trapping
- AL = mode
- 00h only trap on I/O ports 03C0h-03C5h, 03C7h, 03CAh-03CFh
- 01h trap on ports 03B4h, 03B5h, 03B8h, 03C6h, 03C8h, 03C9h,
- 03D4h, and 03D5h
- 02h only trap on I/O ports 03C6h, 03C8h, and 03C9h
- Return: CF clear
-
- (Table 2145)
- Values for calling QEMM QPI function 0Eh:
- AH = 0Eh set cursor virtualization callbacks
- DS:BX -> FAR routine for getting hardware cursor address
- ES:DX -> FAR routine for setting hardware cursor address
- Return: CF clear
- Note: both callbacks are invoked with CL indicating which
- CRT controller register to access (0Eh for high
- byte of cursor address, 0Fh for low byte)
- the DS:BX callback should return BX=cursor address;
- ES:DX is called with BL or BH (depending on CL)
- set to the appropriate half of the cursor's address
-
- (Table 2146)
- Values for calling QEMM QPI function 0Fh:
- AH = 0Fh unmap 4K pages
- CX = first page number
- DX = number of pages
- Return: CF clear
- AL = 00h/01h if ???
- Note: if CX=0100h and DX=0010h, the HMA is remapped to
- simulate a disabled A20
-
- (Table 2147)
- Values for calling QEMM QPI function 1000h:
- AX = 1000h get protected-mode interface
- DS:SI -> 16-byte buffer for two GDT entries
- ES:DI -> buffer for 4K page table
- Return: CF clear
- EAX = offset of protected-mode API entry point
- DS:SI buffer filled with two GDT descriptors
- first is QEMM code segment, second is data???
- ES:DI buffer filled with 4K page table
- DI points to first unused page table entry
- SeeAlso: INT 67/AX=DE01h
-
- (Table 2148)
- Values for calling QEMM QPI function 1001h:
- AX = 1001h get CPU debug registers
- ES:DI -> buffer for debug registers (8 DWORDs)
- Return: CF clear
- BL = INT01 handling (see function 1002h)
- ES:DI buffer filled
-
- (Table 2149)
- Values for calling QEMM QPI function 1002h:
- AX = 1002h set CPU debug registers
- BL = INT01 handling
- 00h reflect all debugging exceptions as V86-mode INT 01's
- else convert debugging exceptions other than single-step
- into V86-mode INT 03's, single-step to INT 01's
- ES:DI -> buffer containing debug registers (8 DWORDs)
- Return: CF clear
- Notes: identical to INT 67/AX=DE09h if BL=01h
- the INT01 handling flag is set to 01h by the general-protection
- violation handler for certain privileged instructions
-
- (Table 2150)
- Values for calling QEMM QPI function 1003h:
- AX = 1003h get machine status word CR0
- Return: CF clear
- EAX = contents of CR0
- SeeAlso: INT 67/AX=DE07h
-
- (Table 2151)
- Values for calling QEMM QPI function 1004h:
- AX = 1004h allocate a 4K page
- Return: CF clear if successful
- EDX = linear address of allocated page
- CF set on error
- SeeAlso: INT 67/AX=DE04h
-
- (Table 2152)
- Values for calling QEMM QPI function 1005h:
- AX = 1005h free 4K page
- EDX = linear address of page to free
- Return: CF clear
- SeeAlso: INT 67/AX=DE05h
-
- (Table 2153)
- Values for calling QEMM QPI function 1006h:
- AX = 1006h NOP
- Return: CF set
-
- (Table 2154)
- Values for calling QEMM QPI function 1007h:
- AX = 1007h get maximum physical memory address
- Return: CF clear
- EDX = physical address of highest 4K memory page
- SeeAlso: INT 67/AX=DE02h
-
- (Table 2155)
- Values for calling QEMM QPI function 1008h:
- AX = 1008h get physical address of page in first megabyte
- CX = page number (linear address shifted right 12 bits)
- Return: CF clear
- EDX = linear address of page
- SeeAlso: function 1F00h
-
- (Table 2156)
- Values for calling QEMM QPI function 1009h:
- AX = 1009h switch to protected mode
- ESI = linear address in first megabyte of system reg values
- (see INT 67/AX=DE0Ch)
- interrupts disabled
- Return: interrupts disabled
- GDTR, IDTR, LDTR, TR loaded
- SS:ESP must have at least 16 bytes space, and the
- entry point is required to set up a new stack
- before enabling interrupts
- EAX, ESI, DS, ES, FS, GS destroyed
-
- (Table 2157)
- Values for calling QEMM QPI function 100Ah:
- AX = 100Ah switch back to virtual-86 mode
- DS = selector for data segment from function 1000h
- SS:ESP in first megabyte of linear memory
- interrupts disabled
- STACK: QWORD return address from FAR call to 32-bit segment
- DWORD EIP
- DWORD CS
- DWORD reserved for EFLAGS
- DWORD ESP
- DWORD SS
- DWORD ES
- DWORD DS
- DWORD FS
- DWORD GS
- will switch to virtual86 mode with interrupts disabled, all
- segment registers loaded, and EAX destroyed.
-
- (Table 2158)
- Values for calling QEMM QPI function 11h:
- AH = 11h get memory type map
- AL = zero/nonzero ??? (set by QEMM.COM but apparently ignored
- by QEMM 6.00)
- ES:DI -> 256-byte buffer for memory types
- Return: CF clear
- BL = ???
- ES:DI buffer filled
- Note: each byte of the buffer corresponds to a 4K page, and
- contains the type of that page: 00h = mappable,
- 02h = mapped ROM, 03h = high RAM, 04h = excluded,
- 05h = video, 06h = ROM, 07h = adapter ROM,
- 08h = split ROM, 09h = page frame, 0Ah = RAMmable,
- 0Bh = conventional, 83h = high RAM under MS Windows
-
- (Table 2159)
- Values for calling QEMM QPI function 12h:
- AH = 12h get HIRAM chain
- Return: CF clear
- BX = segment of first MCB in high memory
- 0000h if no high memory
-
- (Table 2160)
- Values for calling QEMM QPI function 1300h:
- AX = 1300h VIDRAMEGA???
- BL = 00h copy ???
- nonzero copy ??? (reverse)
- Return: CF clear
- AL = status
- 00h if all pages clean
- 01h if any page dirty
-
- (Table 2161)
- Values for calling QEMM QPI function 1301h:
- AX = 1301h check if pages modified
- DX:DI = start address of range to check
- CX = length of range in paragraphs
- Return: CF clear
- CX = status
- 0000h none of the indicated pages is dirty
- DI destroyed
- 1000h one or more pages is dirty
- DI = low word of first dirty page's linear addr
-
- (Table 2162)
- Values for calling QEMM QPI function 1302h:
- AX = 1302h ???
- BL = ???
- BH = ???
- CX = ???
- SI = offset of ???
- DI = offset of ???
- ???
- Return: CF clear
- ???
- Note: disables certain interrupts at the two 8259 PICs during
- execution; also modifies CRT controller during
- execution under certain circumstances
-
- (Table 2163)
- Values for calling QEMM QPI function 1303h:
- AX = 1303h initialize EGA graphics virtualization
- BX = number of pages (less 1) of EMS to allocate
- Return: CF clear if successful
- DX = EMS handle
- CF set on error
-
- (Table 2164)
- Values for calling QEMM QPI function 1304h:
- AX = 1304h shutdown EGA graphics virtualization
- DX = EMS handle being used for virtualization
- Return: CF clear
-
- (Table 2165)
- Values for calling QEMM QPI function 1305h:
- AX = 1305h select portion of EGA graphics to virtualize???
- (related to graphics virtualization, changes memory mappings)
- CX = start offset within A000h segment of virtualized mem???
- Return: CF clear
- Note: disables certain interrupts at the two 8259 PICs during
- execution (see func 130Ch) and runs inside a QEMM
- critical section
-
- (Table 2166)
- Values for calling QEMM QPI function 1306h:
- AX = 1306h set DESQview critical section counter address
- ES:BX -> WORD DESQview critical section counter or 0000h:0000h
- Return: CF clear
- Note: also sets a pointer in the low-memory part of QEMM to
- the current value of INT 15 if ES:BX not 0000h:0000h
-
- (Table 2167)
- Values for calling QEMM QPI function 1307h:
- AX = 1307h ??? (changes memory mappings for entire A000h segment)
- Return: CF clear
- Note: disables certain interrupts at the two 8259 PICs during
- execution (see func 130Ch) and runs inside a QEMM
- critical section
-
- (Table 2168)
- Values for calling QEMM QPI function 1308h:
- AX = 1308h start/reset CRT controller I/O trapping
- BL = subfunction
- 00h restore CRTC I/O port trapping to previous state
- else start trapping all accesses to I/O ports 03B0-03DF
- Return: CF clear
- Note: if called more than once in a row with BL nonzero, the
- original state of the I/O port trapping will be lost
-
- (Table 2169)
- Values for calling QEMM QPI function 1309h:
- AX = 1309h Hercules mode-change support
- ES:BX -> new address for Hercules mode-change callback
- Return: CF clear
- Note: the callback function is called whenever the CRTC mode
- register is written, with AL set to the value written
-
- (Table 2170)
- Values for calling QEMM QPI function 130Ah:
- AX = 130Ah virtualize EGA/VGA DAC registers (I/O ports 03C8h/03C9h)
- CX:DX -> DAC register virtualization buffer (see #2252)
- or 0000h:0000h to disable
- Return: CF clear
-
- (Table 2171)
- Values for calling QEMM QPI function 130Bh:
- AX = 130Bh ???
- BL = ??? (??? or 00h)
- Return: CF clear
- ???
- Note: calls AX=130Eh in some cases
-
- (Table 2172)
- Values for calling QEMM QPI function 130Ch:
- AX = 130Ch set interrupts to mask
- BX = interrupts to mask out during AX=1302h,AX=1307h,AX=1308h,
- AX=130Dh,AX=1310h (BL = master PIC, BH = slave PIC)
- Return: CF clear
-
- (Table 2173)
- Values for calling QEMM QPI function 130Dh:
- AX = 130Dh map EGA memory at A0000h
- ???
- Return: CF clear
- Note: disables certain interrupts at the two 8259 PICs during execution
- (see #2172) and runs inside a QEMM critical section
- calls AX=1307h (see #2167)
-
- (Table 2174)
- Values for calling QEMM QPI function 130Eh:
- AX = 130Eh ??? (modifies CRT controller setup)
- ???
- Return: CF clear
-
- (Table 2175)
- Values for calling QEMM QPI function 130Fh:
- AX = 130Fh reset ???
- Return: CF clear
-
- (Table 2176)
- Values for calling QEMM QPI function 1310h:
- AX = 1310h copy modified pages to physical video RAM???
- ???
- Return: CF clear
- Note: disables certain interrupts at the two 8259 PICs during execution
- (see #2172) and runs inside a QEMM critical section
- also calls AX=130Dh (see #2173)
-
- (Table 2177)
- Values for calling QEMM QPI function 1311h:
- AX = 1311h set ???
- BL = zero/nonzero???
- Return: CF clear
- Note: certain operations will be performed with interrupts
- (as set by AX=130Ch) enabled rather than disabled if
- called with BL nonzero
-
- (Table 2178)
- Values for calling QEMM QPI function 1312h:
- AX = 1312h (v6.02) NOP???
- Note: called by DV 2.42, but appears to be a NOP in QEMM 6.02
-
- (Table 2179)
- Values for calling QEMM QPI function 1400h:
- AX = 1400h initialize DESQview "protection level" support
- ES:DI -> protection level configuration (at least 24 bytes)
- (see #2246)
- BL = highest ??? to return (one less than number of words)
- Return: CF clear
- AX = ??? (4204h for v6.00)
- Note: QEMM also sets the protected mode INT 02 and INT 06
- vectors to alternate handlers in certain cases
-
- (Table 2180)
- Values for calling QEMM QPI function 1401h:
- AX = 1401h turn off DESQview protection level support
- Return: CF clear
- ???
- Notes: clears the DV critical-section flag address set with
- function 1306h
- QEMM also sets the protected mode INT 02 and INT 06
- vectors to the default handlers if they had been
- revectored by function 1400h
-
- (Table 2181)
- Values for calling QEMM QPI function 1402h:
- AX = 1402h set protection level???
- BL = protection level???
- 00h NOP
- 01h ???
- 02h ???
- other (03h) ???
- ES:DI -> ???
- Return: CF clear
- ???
- Format of Data structure:
- Offset Size Description
- 00h WORD segment of ??? (X, word at X:0136h set to X)
- 02h WORD segment of ??? (word at X:0124h set to this)
- 04h WORD number of paragraphs of ???
- 06h 3 WORDs ??? (copied to X:0000h)
- 0Ch WORD ???
-
- (Table 2182)
- Values for calling QEMM QPI function 1403h:
- AX = 1403h add ??? to end of list and ??? (execute func 1406h)
- ES:DI -> ??? structure added to end of ??? list
- (at least 31 bytes, DWORD at offset 06h used for
- storing pointer to next struc, WORD at offset 00h
- seems to be a key or index)
- Return: CF clear
-
- (Table 2183)
- Values for calling QEMM QPI function 1404h:
- AX = 1404h NOP
- Return: CF clear
-
- (Table 2184)
- Values for calling QEMM QPI function 1405h:
- AX = 1405h remove ??? from ??? list
- BX = key???
- Return: CF clear
-
- (Table 2185)
- Values for calling QEMM QPI function 1406h:
- AX = 1406h ???
- ???
- Return: CF clear
- ???
- Notes: this function is a NOP unless protection level 2 or 3
- is active
- when not a NOP, one of the actions is to write-protect
- certain memory pages
-
- (Table 2186)
- Values for calling QEMM QPI function 1407h:
- AX = 1407h ???
- ???
- Return: CF clear
- ???
- Note: same as function 1406h, but only does anything if
- protection level 2 is active
-
- (Table 2187)
- Values for calling QEMM QPI function 1408h:
- AX = 1408h unprotect???
- ???
- Return: CF clear
- ???
-
- (Table 2188)
- Values for calling QEMM QPI function 1409h:
- AX = 1409h abort program causing protection violation???
- ???
- Return: CF clear
- ???
-
- (Table 2189)
- Values for calling QEMM QPI function 140Ah:
- AX = 140Ah set ???
- BX = index of ???
- Return: CF clear
- ???
- Notes: no range checking is performed on BX
- this function is a NOP unless protection level 3 active
-
- (Table 2190)
- Values for calling QEMM QPI function 140Bh:
- AX = 140Bh get ???
- BX = index of ???
- SI = 0000h
- Return: CF clear
- SI = segment of 256-byte buffer??? or 0000h
- Notes: no range checking is performed on BX
- this function is a NOP unless protection level 3 active
-
- (Table 2191)
- Values for calling QEMM QPI function 15h:
- AH = 15h set timer channel 0 virtualization buffer
- ES:BX -> WORD buffer for timer channel 0 divisor
- 0000h:0000h to disable virtualization
- Return: CF clear
-
- (Table 2192)
- Values for calling QEMM v5.00+ QPI function 1600h:
- AX = 1600h get memory access status
- ES:DI -> 256-byte buffer
- Return: ES:DI buffer filled
- Note: each byte of the buffer indicates the status of a 4K
- page (bit 0 set if read, bit 1 set if written)
-
- (Table 2193)
- Values for calling QEMM v5.00+ QPI function 1601h:
- AX = 1601h set memory access status
- ES:DI -> 256-byte buffer containing access statuses (see #2192)
-
- (Table 2194)
- Values for calling QEMM v5.00+ QPI function 17h:
- AH = 17h get memory usage statistics
- ES:DI -> 81-byte buffer for memory statistics (see #2250)
- Return: CF clear
-
- (Table 2195)
- Values for calling QEMM v5.11+ QPI function 18h:
- AH = 18h check whether conventional memory mapped into address range
- ES:BX = starting address
- CX = number of 4K pages
- Return: CF clear
- AL = 00h one or more pages is remapped
- 01h all pages in range are conventional memory
- (physical address == virtual address)
-
- (Table 2196)
- Values for calling QEMM v5.11+ QPI function 19h:
- AH = 19h NOP
- Return: CF set
-
- (Table 2197)
- Values for calling QEMM v5.11+ "QPI_UntrappedIORead" function:
- AX = 1A00h get byte from I/O port
- DX = port number
- Return: CF clear
- BL = port value
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2198)
- Values for calling QEMM v5.11+ "QPI_UntrappedIOWrite" function:
- AX = 1A01h send byte to I/O port
- BL = value to send
- DX = port number
- Return: CF clear
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2199)
- Values for calling QEMM v5.11+ "QPI_UntrappedIOReadIndexed" function:
- AX = 1A02h
- BH = index value to send
- DX = base port number
- Return: CF clear
- BL = value read from I/O port (DX+1)
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2200)
- Values for calling QEMM v5.11+ "QPI_UntrappedIOWriteIndexed" function:
- AX = 1A03h send bytes to two consecutive I/O ports
- BH = value for first I/O port (DX)
- BL = value for second I/O port (DX+1)
- DX = base port number
- Return: CF clear
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2201)
- Values for calling QEMM v7.03+ "QPI_UntrappedIO" function:
- AX = 1A04h
- BX = value to write to port
- CX = direction and size
- bit 2: output instead of input
- bit 3: word instead of byte
- DX = I/O port to be accessed
- Return: CF clear
- BX = value read (if CX indicates read)
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2202)
- Values for calling QEMM v7.03+ function 1A05h
- AX = 1A05h
- ???
- Return: ???
-
- (Table 2203)
- Values for calling QEMM v7.03+ "QPI_GetIOCallback" function:
- AX = 1A06h
- Return: CF clear
- ES:DI -> current I/O callback function
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2204)
- Values for calling QEMM v7.03+ "QPI_SetIOCallback" function:
- AX = 1A07h
- ES:DI -> new I/O callback function (see #2711)
- Return: CF clear
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2711)
- Values QEMM v7.03+ I/O callback function is called with:
- AL/AX = data to/from trapped port
- CL = I/O direction (00h = IN instruction, else OUT instruction)
- DX = I/O port address
- Return: CF clear if port handled by callback function
- CF set if not handled
- all other registers returned to application executing the IN or OUT
- instruction (allowing arbitrary changes to port address, data value,
- etc.)
- SeeAlso: #2204
-
- (Table 2205)
- Values for calling QEMM v7.03+ "QPI_GetPortTrap" function:
- AX = 1A08h
- DX = I/O port number
- Return: CF clear
- BL = trapping state (00h not being trapped, 01h trap installed)
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2206)
- Values for calling QEMM v7.03+ "QPI_SetPortTrap" function:
- AX = 1A09h
- DX = I/O port number
- Return: CF clear
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2207)
- Values for calling QEMM v7.03+ "QPI_ClearPortTrap" function:
- AX = 1A0Ah
- DX = I/O port number
- Return: CF clear
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2208)
- Values for calling QEMM v5.11+ QPI function 1B00h:
- AX = 1B00h get EMM Import Structure address
- ES:DI -> buffer for EMM import data structure (see #2248)
- Return: CF set on error
- CF clear if successful
- SeeAlso: INT 21/AX=4402h/SF=01h
-
- (Table 2209)
- Values for calling QEMM v5.11+ QPI function 1B01h:
- AX = 1B01h disable V86 mode
- Return: CF set on error
- (i.e. no Global EMM Import rec. allocated)
- CF clear if successful
- Note: shuts down EMS and initializes Global EMM Import record; this function
- is invoked from the callback supplied by INT 2F/AX=1605h
-
- (Table 2210)
- Values for calling QEMM v5.11+ QPI function 1B02h:
- AX = 1B02h enable V86 mode
- Return: CF set on error
- CF clear if successful
- Note: restarts EMS and frees Global EMM Import record; this function is
- invoked from the callback supplied by INT 2F/AX=1605h
-
- (Table 2211)
- Values for calling QEMM v5.11+ QPI function 1B03h:
- AX = 1B03h MS Windows initializing
- CX = segment from which Windows init broadcast made???
- DX = Windows startup flags
- DI = Windows version number (major in upper byte)
- Return: CF clear if successful
- DS:SI -> V86 mode enable/disable callback
- (see #1413 at INT 2F/AX=1605h)
- ES:BX -> startup info structure (see #1410 at INT 2F/AX=1605h)
- CF set on error (unable to start Windows)
- SeeAlso: INT 2F/AX=1605h
-
- (Table 2212)
- Values for calling QEMM v5.11+ QPI function 1B04h:
- AX = 1B04h MS Windows terminating
- Return: CF clear
-
- (Table 2213)
- Values for calling QEMM v5.11+ QPI function 1B05h:
- AX = 1B05h determine whether program is driver
- DS:DX -> ASCIZ filename
- Return: CF clear
- AL = status
- 01h if string ends in ".DRV"
- FFh if string ends in "GDI.EXE"
- 00h otherwise
- Note: when MS Windows 3.0 standard mode starts, QEMM patches all drivers
- until GDI.EXE is loaded
-
- (Table 2214)
- Values for calling QEMM v5.11+ QPI function 1B06h:
- AX = 1B06h patch protected-mode check in Windows driver
- CX = length of data pointed at by DS:DX
- DS:DX -> buffer containing Windows driver code
- Return: CF clear
- Note: patches all SMSW x/TEST x,1 instruction sequences into MOV x,CS/VERW x
- sequences, which has the effect that the protected-mode check will
- only indicate protected mode in native protected mode and not in V86
- mode
-
- (Table 2215)
- Values for calling QEMM v5.11+ QPI function 1B07h:
- AX = 1B07h
- BUG: QEMM 6.00-7.01 accept this and branch randomly
-
- (Table 2216)
- Values for calling QEMM v5.11+ QPI function 1Bxxh:
- AX = 1B08h to 1BFFh
- Return: CF set
-
- (Table 2217)
- Values for calling QEMM v5.11+ QPI function 1C00h:
- AX = 1C00h disable IRQ0-7 calldowns
- Return: CF clear
-
- (Table 2218)
- Values for calling QEMM v5.11+ QPI function 1C01h:
- AX = 1C01h set V86-mode IRQ0-7 handlers
- ES:DI -> 8 DWORDs containing V86-mode handler addresses
- Return: CF clear
-
- (Table 2219)
- Values for calling QEMM v5.11+ QPI function 1C02h:
- AX = 1C02h disable IRQ8-15 handlers
- Return: CF clear
-
- (Table 2220)
- Values for calling QEMM v5.11+ QPI function 1C03h:
- AX = 1C03h set V86-mode IRQ8-15 handlers
- ES:DI -> 8 DWORDs containing V86-mode handler addresses
- BUG: although the jump table only contains four entries, QEMM 6.00 will
- attempt to use it for any value of AL between 00h and 2Ah, thus
- branching unpredictably for AL=04h-2Ah; QEMM v7.01 behaves
- similarly for AL=04h-1Bh
- Note: when enabled, the appropriate IRQs are reflected back to the specified
- handlers in virtual-86 mode after the CPU automatically invokes the
- protected-mode handler inside QEMM
-
- (Table 2221)
- Values for calling QEMM v7.03+ "QPI_SimulateHWInt" function:
- AX = 1C04h
- BX = number of interrupt to simulate
- Return: ???
- Notes: this function will allow proper simulation of a hardware interrupt
- under DESQview and DESQview/X, where the correct interrupt handler
- may be in a different process with a completely different address
- space
- this function was officially documented with the release of QEMM v7.50
-
- (Table 2222)
- Values for calling QEMM v6.0x only QPI function 1D00h:
- AX = 1D00h switch to pre-Stealth interrupt vector table
- Return: CF clear if supported (QEMM v6.x)
- CF set if not supported (QEMM v7+)
- Notes: also switches VGA Save table pointer (0040h:00A8h) and overwrites the
- vectors currently assigned for use by the two interrupt controllers
- (see INT 67/AX=DE0Ah) with the vectors for INT 08-0F and 70-77 (to
- avoid crashing the system).
- functions 1Dxxh are not supported by QEMM v7.01, and always return CF
- set
-
- (Table 2223)
- Values for calling QEMM v6.0x only QPI function 1D01h:
- AX = 1D01h restore user interrupt vector table
- Return: CF clear if supported (QEMM v6.x)
- CF set if not supported (QEMM v7+)
- Notes: interrupts should be disabled around the AX=1D00h and AX=1D01h calls
- because QEMM does not modify the memory maps to map in ROM, so
- an interrupt could be disastrous
- clears any pending IRQ7 at end of function
- functions 1Dxxh are not supported by QEMM v7.01, and always return CF
- set
-
- (Table 2224)
- Values for calling QEMM v6.00+ QPI function 1Dxxh:
- AX = 1D02h to 1DFFh
- Return: CF set
-
- (Table 2225)
- Values for calling QEMM v6.00+ "QEMM_GET_INFO"/"QPI_GetInfo" function:
- AX = 1E00h get Stealth configuration
- Return: CF clear
- BL = memory configuration flags (documented as "reserved") (see #2249)
- BH = (v7.00+) disk buffer flags
- bit 0: DISKBUFFRAME buffer instead of DISKBUF buffer
- bit 1: buffer has already been used
- CL = stealth type (00h none, 46h Frame, 4Dh Map, 50h Protect)
- CH = suspend/resume interrupt (00h none)
- DL = (v7.00+) size of QEMM disk buffer in KB (00h none)
- DH = reserved (always 00h for v6.00)
- SI = reserved (always 0000h for v6.00)
- DI = reserved (always 0000h for v6.00)
- Note: this function is officially documented
-
- (Table 2226)
- Values for calling QEMM v6.00+ "QPI_GetStealthCount" function:
- AX = 1E01h get number of Stealth'ed ROMs
- Return: CF clear
- BX = number of Stealth'ed ROMs
- Note: this function is officially documented
-
- (Table 2227)
- Values for calling QEMM v6.00+ "QPI_GetStealthList" function:
- AX = 1E02h
- ES:DI -> buffer for Stealth ROM info (see #2251)
- Return: CF clear
- BX = number of Stealth'ed ROMs
- ES:DI buffer filled
- Note: this function is officially documented
-
- (Table 2228)
- Values for unimplemented Stealth information functions:
- AX = 1E03h to 1EFFh
- Return: CF set
-
-
- (Table 2229)
- Values for calling QEMM v6.00+ "QEMM_GET_PTE"/"QPI_GetPTE" function:
- AX = 1F00h get page table entry
- CX = page number (0000h-010Fh)
- Return: CF clear
- EDX = page table entry
- Note: this function is officially documented
-
- (Table 2230)
- Values for calling QEMM v6.00+ "QEMM_SET_PTE"/"QPI_SetPTE" function:
- AX = 1F01h set page table entry
- CX = page number (0000h-010Fh)
- EDX = new page table entry
- Return: CF clear
- Note: this function is officially documented
- SeeAlso: function 1008h
-
- (Table 2231)
- Values for calling QEMM v6.00+ QPI function 1Fxxh:
- AX = 1F02h to 1FFFh
- Return: CF set
-
- (Table 2232)
- Values for calling QEMM v6.00+ "QEMM_GET_VHI_INFO"/"QPI_GetVHIInfo" function:
- AX = 2000h "QEMM_GET_VHI_INFO" get VirtualHDIRQ information
- Return: CF clear
- BL = flags
- bit 7: VirtualHDIRQ setting respected
- (set if Stealth active)
- bits 6-1 reserved
- bit 0: VirtualHDIRQ currently enabled
- (INT 15/AH=90h suppressed when enabled)
- Note: this function is officially documented
- SeeAlso: #2233
-
- (Table 2233)
- Values for calling QEMM v6.00+ "QEMM_SET_VHI_INFO"/"QPI_SetVHIInfo" function:
- AX = 2001h set VirtualHDIRQ state
- BL bit 0 = new VirtualHDIRQ state
- Return: CF clear
- BL = old VHI setting (bits 0 and 7, see #2232)
- Note: this function is officially documented
- SeeAlso: #2232
-
- (Table 2234)
- Values for calling QEMM v6.00+ QPI function 20xxh:
- AX = 2002h to 20FFh
- Return: CF set
-
- (Table 2235)
- Values for calling QEMM v6.00+ "QEMM_COPY_STEALTH_ROMS"/"QPI_CopyStealthRoms":
- AX = 2100h copy data from Stealthed address space
- DS:SI -> start address of hidden memory to copy
- ES:DI -> buffer for copied data
- ECX = number of bytes to copy
- Return: CF clear if successful
- CF set on error (no Stealth or DS:SI < C000h:0000h or DS:SI + ECX > 1M)
- Note: this function was officially documented with the release of QEMM 7.50
-
- (Table 2236)
- Values for calling QEMM v6.00+ QPI function 21xxh:
- AX = 2101h to 21FFh
- Return: CF set
-
- (Table 2237)
- Values for calling QEMM v6.03+ QPI function 2200h:
- AX = 2200h DESQview/X support -- get ???
- Return: CF clear
- ES:DI -> ???
-
- (Table 2238)
- Values for calling QEMM v6.03+ QPI function 2201h:
- AX = 2201h DESQview/X support -- set ???
- ES:DI -> ??? or 0000h:0000h
- Return: CF clear if successful
- CF set on error
-
- (Table 2239)
- Values for calling QEMM v6.04+ QPI function 2300h:
- AX = 2300h get ???
- BX = which ??? to get (must be 0000h for v6.04)
- Return: CF clear if successful
- ES:DI -> ???
- CF set on error
-
- (Table 2240)
- Values for calling QEMM v6.04+ QPI function 2301h:
- AX = 2301h set ???
- BX = which ??? to set (must be 0000h for v6.04)
- ES:DI -> ???
- Return: CF clear if successful
- CF set on error
-
- (Table 2241)
- Values for calling QEMM v6.04+ QPI function 2302h:
- AX = 2302h clear specified ???
- BX = which ??? to clear (must be 0000h for v6.04)
- Return: CF clear if successful
- CF set on error
-
- (Table 2242)
- Values for calling QEMM v6.04+ QPI function 23FFh:
- AX = 23FFh clear all ???
- Return: CF clear if successful
- CF set on error
-
- (Table 2243)
- Values for calling QEMM v6.04+ QPI function 23xxh:
- AX = 2303h to 23FEh
- Return: CF set
-
- (Table 2244)
- Values for calling QEMM v7.01+ QPI function 24h:
- AH = 24h ST-DBL support
- AL = subfunction
- 00h set ???
- EDX -> information table (EDX = segment SHL 16 + offset)
- 01h ???
- Return: CF clear if successful
- CF set on error
-
- (Table 2245)
- Values for calling QEMM unimplemented QPI functions:
- AH = 25h to FFh
- Return: CF set
-
- Format of QEMM protection level configuration:
- Offset Size Description (Table 2246)
- 00h WORD segment of 128 breakpoint (INT 3) instructions for use in
- DESQview protection level 3 interrupt vector checking, or
- 0000h to disable; in pl3, INTs 00-7F are pointed at these
- breakpoints
- 02h DWORD -> array of actual interrupt handler addresses for INT 00-7F
- when interrupt vectors are pointed at protection level 3
- breakpoints
- 06h DWORD far pointer to ??? region list (see #2247)
- 0Ah DWORD far pointer to buffer for returned ???
- 0Eh DWORD seg:ofs of function to call on protection violation???
- 12h WORD segment of ???
- 14h DWORD far pointer to DWORD containing number of paragraphs of
- ??? for segment at offset 12h
- ???
-
- Format of protection level Region List:
- Offset Size Description (Table 2247)
- 00h WORD number of PAIRS of pointers to follow
- 02h 2N DWORDs start/end seg:ofs addresses of ??? regions
- Note: QEMM converts the segmented addresses into linear addresses in place
-
- Format of EMM Import structure:
- Offset Size Description (Table 2248)
- 00h DWORD physical address of EMM import struct
- 04h BYTE major version (v6.00 sets to 01h)
- 05h BYTE minor version (v6.00 sets to 00h/0Bh)
- SeeAlso: INT 21/AX=4402h/SF=01h
-
- Bitfields for memory configuration flags:
- Bit(s) Description (Table 2249)
- 0 conventional memory sorted
- 1 conventional memory filled
- 2 ???
- 3 ???
- 4 expanded memory is in use
- 5 ???
-
- Format of QEMM 6.0 memory statistics:
- Offset Size Description (Table 2250)
- 00h BYTE 01h if Shadow RAM found, 00h otherwise
- 01h DWORD initial conventional memory in bytes
- 05h DWORD initial extended memory in bytes
- 09h DWORD initial expanded memory in bytes
- 0Dh DWORD initial "top" or "shadow" memory in bytes
- 11h DWORD Unavailable conventional memory in bytes
- 15h DWORD Unavailable extended memory in bytes
- 19h DWORD Unavailable expanded memory in bytes
- 1Dh DWORD Unavailable "top" or "shadow" memory in bytes
- Add to offset 49h for Total unavailable top/shadow.
- 21h DWORD QEMM code size in bytes
- 25h DWORD QEMM data size in bytes
- 29h DWORD bytes used for TASKS=
- 2Dh DWORD DMA buffer size
- 31h DWORD bytes used for MAPS=
- 35h DWORD bytes of high RAM
- 39h DWORD bytes used by mapped ROMs
- 3Dh DWORD bytes of conventional memory provided by QEMM
- 41h DWORD bytes of extended memory NOT converted by QEMM (EXT=xxx)
- 45h DWORD bytes of EMS/XMS pool memory provided by QEMM
- 49h DWORD Unavailable "top" or "shadow" memory in bytes
- Add to offset 1Dh for Total unavailable top/shadow.
- 4Dh DWORD conventional memory overhead in bytes
- (set to 0 by QEMM.COM prior to call)
-
- Format of Stealth ROM info [array]:
- Offset Size Description (Table 2251)
- 00h WORD starting segment of ROM
- 02h WORD length of ROM in paragraphs
-
- Format of QEMM EGA/VGA DAC register virtualization buffer:
- Offset Size Description (Table 2252)
- 00h BYTE (temp) current color register number
- 01h BYTE (temp) number of bytes written so far for current color reg
- 02h 768 BYTEs three bytes per color register
- --------m-6740-------------------------------
- INT 67 - LIM EMS - GET MANAGER STATUS
- AH = 40h
- Return: AH = status (00h,80h,81h,84h) (see #2253)
- Note: this call can be used only after establishing that the EMS driver is in
- fact present
- SeeAlso: AH=3Fh,AX=FFA5h
-
- (Table 2253)
- Values for EMS function status:
- 00h successful
- 80h internal error
- 81h hardware malfunction
- 83h invalid handle
- 84h undefined function requested by application
- 85h no more handles available
- 86h error in save or restore of mapping context
- 87h insufficient memory pages in system
- 88h insufficient memory pages available
- 89h zero pages requested
- 8Ah invalid logical page number encountered
- 8Bh invalid physical page number encountered
- 8Ch page-mapping hardware state save area is full
- 8Dh save of mapping context failed
- 8Eh restore of mapping context failed
- 8Fh undefined subfunction
- 90h undefined attribute type
- 91h feature not supported
- 92h successful, but a portion of the source region has been overwritten
- 93h length of source or destination region exceeds length of region
- allocated to either source or destination handle
- 94h conventional and expanded memory regions overlap
- 95h offset within logical page exceeds size of logical page
- 96h region length exceeds 1M
- 97h source and destination EMS regions have same handle and overlap
- 98h memory source or destination type undefined
- 9Ah specified alternate map register or DMA register set not supported
- 9Bh all alternate map register or DMA register sets currently allocated
- 9Ch alternate map register or DMA register sets not supported
- 9Dh undefined or unallocated alternate map register or DMA register set
- 9Eh dedicated DMA channels not supported
- 9Fh specified dedicated DMA channel not supported
- A0h no such handle name
- A1h a handle found had no name, or duplicate handle name
- A2h attempted to wrap around 1M conventional address space
- A3h source array corrupted
- A4h operating system denied access
- --------m-6741-------------------------------
- INT 67 - LIM EMS - GET PAGE FRAME SEGMENT
- AH = 41h
- Return: AH = status (see also AH=40h)
- 00h function successful
- BX = segment of page frame
- SeeAlso: AH=58h,AH=68h
- --------m-6742-------------------------------
- INT 67 - LIM EMS - GET NUMBER OF PAGES
- AH = 42h
- Return: AH = status (see also AH=40h)
- 00h function successful
- BX = number of unallocated pages
- DX = total number of pages
- BUG: DOS 6.0 EMM386.EXE causes a system lock-up or reboot if in AUTO mode
- when this call is made; use AH=46h to ensure that EMM386 is ON
- before making this call
- SeeAlso: INT 2F/AX=2702h
- --------m-6743-------------------------------
- INT 67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY
- AH = 43h
- BX = number of logical pages to allocate
- Return: AH = status (00h,80h,81h,84h,85h,87h,88h,89h) (see #2253)
- DX = handle if AH=00h
- SeeAlso: AH=45h
- --------m-6744-------------------------------
- INT 67 - LIM EMS - MAP MEMORY
- AH = 44h
- AL = physical page number (0-3)
- BX = logical page number
- or FFFFh to unmap (QEMM)
- DX = handle
- Return: AH = status (00h,80h,81h,83h,84h,8Ah,8Bh) (see #2253)
- SeeAlso: AH=69h
- --------m-6745-------------------------------
- INT 67 - LIM EMS - RELEASE HANDLE AND MEMORY
- AH = 45h
- DX = EMM handle
- Return: AH = status (00h,80h,81h,83h,84h,86h) (see #2253)
- SeeAlso: AH=43h
- --------m-6746-------------------------------
- INT 67 - LIM EMS - GET EMM VERSION
- AH = 46h
- Return: AH = status (00h,80h,81h,84h) (see #2253)
- AL = EMM version number if AH=00h
- --------m-6747-------------------------------
- INT 67 - LIM EMS - SAVE MAPPING CONTEXT
- AH = 47h
- DX = handle
- Return: AH = status (00h,80h,81h,83h,84h,8Ch-8Eh) (see #2253)
- SeeAlso: AH=48h
- --------m-6748-------------------------------
- INT 67 - LIM EMS - RESTORE MAPPING CONTEXT
- AH = 48h
- DX = handle
- Return: AH = status (00h,80h,81h,83h,84h,8Eh) (see #2253)
- SeeAlso: AH=47h
- --------m-6749-------------------------------
- INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES
- AH = 49h
- Note: defined in EMS 3.0, but undocumented in EMS 3.2
- --------m-674A-------------------------------
- INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY
- AH = 4Ah
- Note: defined in EMS 3.0, but undocumented in EMS 3.2
- --------m-674B-------------------------------
- INT 67 - LIM EMS - GET NUMBER OF EMM HANDLES
- AH = 4Bh
- Return: AH = status (00h,80h,81h,83h,84h) (see #2253)
- BX = number of EMM handles if AH=00h
- --------m-674C-------------------------------
- INT 67 - LIM EMS - GET PAGES OWNED BY HANDLE
- AH = 4Ch
- DX = EMM handle
- Return: AH = status (see #1504)
- BX = number of logical pages if AH=00h
- SeeAlso: AH=4Dh
- --------m-674D-------------------------------
- INT 67 - LIM EMS - GET PAGES FOR ALL HANDLES
- AH = 4Dh
- ES:DI -> array to receive information
- Return: AH = status (00h,80h,81h,84h) (see #2253)
- ---if AH=00h---
- BX = number of active EMM handles
- array filled with 2-word entries, consisting of a handle and the
- number of pages allocated to that handle
- SeeAlso: AH=4Ch
- --------m-674E-------------------------------
- INT 67 - LIM EMS - GET OR SET PAGE MAP
- AH = 4Eh
- AL = subfunction
- 00h get mapping registers
- 01h set mapping registers
- 02h get and set mapping registers at once
- 03h get size of page-mapping array
- DS:SI -> array holding information (AL=01h/02h)
- ES:DI -> array to receive information (AL=00h/02h)
- Return: AH = status (00h,80h,81h,84h,8Fh,A3h) (see also AH=40h)
- 00h successful
- AL = bytes in page-mapping array (AL=03h only)
- array pointed to by ES:DI receives mapping info (AL=00h/02h)
- Notes: this function was designed to be used by multitasking operating systems
- and should not ordinarily be used by appplication software.
- MD386 returns the size of the page-mapping array in AX instead of AL
- SeeAlso: AH=4Fh
- --------m-674F-------------------------------
- INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP
- AH = 4Fh
- AL = subfunction
- 00h get partial page map
- DS:SI -> structure containing list of segments whose mapping
- contexts are to be saved
- ES:DI -> array to receive page map
- 01h set partial page map
- DS:SI -> structure containing saved partial page map
- 02h get size of partial page map
- BX = number of mappable segments in the partial map to be saved
- Return: AH = status (00h,80h,81h,84h,8Bh,8Fh,A3h) (see also AH=40h)
- 8Bh one of the specified segments is not mappable
- A3h contents of partial page map corrupted or count of mappable
- segments exceeds total number of mappable segments in system
- AL = size of partial page map for subfunction 02h
- SeeAlso: AH=4Eh
- --------m-6750-------------------------------
- INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES
- AH = 50h
- AL = subfunction
- 00h use physical page numbers
- 01h use segment addresses
- DX = handle
- CX = number of entries in array
- DS:SI -> mapping array (see #2254)
- Return: AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #2253)
- SeeAlso: AH=40h
-
- Format of EMS mapping array entry:
- Offset Size Description (Table 2254)
- 00h WORD logical page number or FFFFh to unmap physical page
- 02h WORD physical page number or segment address
- --------m-6751-------------------------------
- INT 67 - LIM EMS 4.0 - REALLOCATE PAGES
- AH = 51h
- DX = handle
- BX = number of pages to be allocated to handle
- Return: AH = status (00h,80h,81h,83h,84h,87h,88h) (see #2255)
- BX = actual number of pages allocated to handle
-
- (Table 2255)
- Values for EMS function status:
- 00h successful
- 80h internal error
- 81h hardware malfunction
- 83h invalid handle
- 84h undefined function requested
- 87h more pages requested than present in system
- 88h more pages requested than currently available
- 8Ah invalid logical page number encountered
- 8Bh invalid physical page number encountered
- 8Fh undefined subfunction
- 90h undefined attribute type
- 91h feature not supported
- A0h no such handle name
- A1h duplicate handle name
- --------m-6752-------------------------------
- INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES
- AH = 52h
- AL = subfunction
- 00h get handle attributes
- Return: AL = attribute
- 00h handle is volatile
- 01h handle is nonvolatile
- 01h set handle attributes
- BL = new attribute (see returned AL)
- 02h get attribute capability
- Return: AL = attribute capability
- 00h only volatile handles supported
- 01h both volatile and non-volatile supported
- DX = handle
- Return: AH = status (00h,80h,81h,83h,84h,8Fh-91h) (see #2253)
- SeeAlso: AH=53h
- --------m-6753-------------------------------
- INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME
- AH = 53h
- AL = subfunction
- 00h get handle name
- ES:DI -> 8-byte buffer for handle name
- 01h set handle name
- DS:SI -> 8-byte handle name
- DX = handle
- Return: AH = status (00h,80h,81h,83h,84h,8Fh,A1h) (see #2253)
- SeeAlso: AH=52h
- --------m-6754-------------------------------
- INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY
- AH = 54h
- AL = subfunction
- 00h get handle directory
- ES:DI -> buffer for handle directory (see #2256)
- 01h search for named handle
- DS:SI -> 8-byte name
- 02h get total number of handles
- Return: AL = number of entries in handle directory (subfunction 00h)
- DX = value of named handle (subfunction 01h)
- BX = total number of handles (subfunction 02h)
- AH = status (00h,80h,81h,84h,8Fh,A0h,A1h) (see also #2255)
- A1h a handle found had no name
-
- Format of EMS handle directory entry:
- Offset Size Description (Table 2256)
- 00h WORD handle
- 02h 8 BYTEs handle's name
- --------m-6755-------------------------------
- INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP
- AH = 55h
- AL = subfunction
- 00h physical page numbers provided by caller
- 01h segment addresses provided by caller
- DX = handle
- DS:SI -> structure containing map and jump address
- Return: (at target address unless error)
- AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #2253)
- SeeAlso: AH=56h
- --------m-6756-------------------------------
- INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL
- AH = 56h
- AL = subfunction
- 00h physical page numbers provided by caller
- DX = handle
- DS:SI -> structure containing page map and call address
- 01h segment addresses provided by caller
- DX = handle
- DS:SI -> structure containing page map and call address
- 02h get page map stack space required
- Return: BX = stack space required
- Return: (if successful, the target address is called. Use a RETF to return and
- restore mapping context)
- AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #2253)
- SeeAlso: AH=55h
- --------m-6756FF-----------------------------
- INT 67 - RM386 v6.00 - ???
- AX = 56FFh
- DS:SI -> ???
- ???
- Return: ???
- --------m-6757-------------------------------
- INT 67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION
- AH = 57h
- AL = subfunction
- 00h move memory region
- 01h exchange memory region
- DS:SI -> structure describing source and destination (see #2258)
- Return: AH = status (see #2257)
- Note: source and destination may overlap for a move, in which case the copy
- direction is chosen such that the destination receives an intact copy
- of the source region
-
- (Table 2257)
- Values for EMS function status:
- 00h successful
- 80h internal error
- 81h hardware failure
- 83h invalid handle
- 84h undefined function requested
- 8Ah invalid logical page number encountered
- 8Fh undefined subfunction
- 92h successful, but a portion of the source region has been overwritten
- 93h length of source or destination region exceeds length of region
- allocated to either source or destination handle
- 94h conventional and expanded memory regions overlap
- 95h offset within logical page exceeds size of logical page
- 96h region length exceeds 1M
- 97h source and destination EMS regions have same handle and overlap
- 98h memory source or destination type undefined
- A2h attempted to wrap around 1M conventional address space
-
- Format of EMS copy data:
- Offset Size Description (Table 2258)
- 00h DWORD region length in bytes
- 04h BYTE source memory type
- 00h conventional
- 01h expanded
- 05h WORD source handle (0000h if conventional memory)
- 07h WORD source initial offset (within page if EMS, segment if convent)
- 09h WORD source initial segment (conv mem) or logical page (EMS)
- 0Bh BYTE destination memory type
- 00h conventional
- 01h expanded
- 0Ch WORD destination handle
- 0Eh WORD destination initial offset
- 10h WORD destination initial segment or page
- --------m-6758-------------------------------
- INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY
- AH = 58h
- AL = subfunction
- 00h get mappable physical address array
- ES:DI -> buffer to be filled with array (see #2259)
- 01h get number of entries in m.p.a. array
- Return: CX = number of entries in array
- AH = status (00h,80h,81h,84h,8Fh) (see #2257)
- Note: the returned array for subfunction 00h is filled in physical segment
- address order
-
- Format of EMS mappable physical address entry:
- Offset Size Description (Table 2259)
- 00h WORD physical page segment
- 02h WORD physical page number
- --------m-675857-----------------------------
- INT 67 U - NETROOM??? - ???
- AX = 5857h
- BX = function??? (0057h,0059h,0159h seen)
- ???
- Return: ???
- Note: BX=0059h appears to be analogous to AX=5800h and BX=0159h appears to
- be analogous to AX=5801h; BX=0057h appears to indicate whether
- AX=580xh or AX=5857h/BX=0x59h should be used
- SeeAlso: AX=5BF0h
- --------m-6759-------------------------------
- INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION
- AH = 59h
- AL = subfunction
- 00h get hardware configuration array
- ES:DI -> buffer to be filled with array (see #2260)
- 01h get unallocated raw page count
- Return: BX = unallocated raw pages
- DX = total raw pages
- Return: AH = status (see also AH=58h"EMS 4.0")
- A4h access denied by operating system
- Note: subfunction 00h is for use by operating systems only, and can be
- enabled or disabled at any time by the operating system
-
- Format of EMS hardware configuration array:
- Offset Size Description (Table 2260)
- 00h WORD size of raw EMM pages in paragraphs
- 02h WORD number of alternate register sets
- 04h WORD size of mapping-context save area in bytes
- 06h WORD number of register sets assignable to DMA
- 08h WORD DMA operation type
- 0000h DMA with alternate register sets
- 0001h only one DMA register set
- --------m-675A-------------------------------
- INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES
- AH = 5Ah
- AL = subfunction
- 00h allocate standard pages
- 01h allocate raw pages
- BX = number of pages to allocate
- Return: DX = handle
- AH = status (00h,80h,81h,84h,85h,87h,88h,8Fh) (see #2253)
- --------m-675B-------------------------------
- INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET
- AH = 5Bh
- AL = subfunction
- 00h get alternate map register set
- Return: BL = current active alternate map register set number
- ES:DI -> map register context save area if BL=00h
- 01h set alternate map register set
- BL = new alternate map register set number
- ES:DI -> map register context save area if BL=0
- 02h get alternate map save array size
- Return: DX = array size in bytes
- 03h allocate alternate map register set
- Return: BL = number of map register set; 00h = not supported
- 04h deallocate alternate map register set
- BL = number of alternate map register set
- Return: AH = status (00h,80h,81h,84h,8Fh,9Ah-9Dh,A3h,A4h) (see #2261)
- Note: this function is for use by operating systems only, and can be
- enabled or disabled at any time by the operating system
-
- (Table 2261)
- Values for EMS function status:
- 00h successful
- 80h internal error
- 81h hardware malfunction
- 84h undefined function requested
- 8Fh undefined subfunction
- 9Ah specified alternate map register or DMA register set not supported
- 9Bh all alternate map register or DMA register sets currently allocated
- 9Ch alternate map register or DMA register sets not supported
- 9Dh undefined or unallocated alternate map register/DMA register set
- 9Eh dedicated DMA channels not supported
- 9Fh specified dedicated DMA channel not supported
- A3h source array corrupted
- A4h operating system denied access
- --------m-675B-------------------------------
- INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS
- AH = 5Bh
- AL = subfunction
- 05h allocate DMA register set
- Return: BL = DMA register set number, 00h if not supported
- 06h enable DMA on alternate map register set
- BL = DMA register set number
- DL = DMA channel number
- 07h disable DMA on alternate map register set
- BL = DMA register set number
- 08h deallocate DMA register set
- BL = DMA register set number
- Return: AH = status (00h,80h,81h,84h,8Fh,9Ah-9Fh,A3h,A4h) (see #2261)
- Note: this function is for use by operating systems only, and can be
- enabled or disabled at any time by the operating system
- --------m-675BE0-----------------------------
- INT 67 - MICEMM v4D, RM386 - GET LINEAR ADDRESS OF MEMORY
- AX = 5BE0h
- ES:BX -> memory for which to get linear address
- Return: AH = 00h
- CX:DX = linear address of physical memory corresponding to ES:BX
- Program: RAM-MAN/386 is the memory manager included with Helix's Netroom;
- MICEMM is a memory manager for some Micronics motherboards
- Note: this has been superceded by AX=DE06h, which should be used instead
- SeeAlso: AX=5BF0h,AX=5BF1h,AX=DE06h
- --------m-675BE1-----------------------------
- INT 67 - RM386 v6.00+ - GET MEMORY MANAGER SIZE
- AX = 5BE1h
- Return: AH = 00h
- CX = code and data size in bytes
- DX:BX = physical address of RM386 code
- DI:SI = total size of RM386 area including handle tables
- BP = number of additional pages (high DOS, etc.)
- SeeAlso: AX=5BE0h,AX=5BE2h
- --------m-675BE2-----------------------------
- INT 67 - RM386 v6.00+ - GET INTERRUPT VECTORS
- AX = 5BE2h
- Return: DS:SI -> V86-mode table (see #2262)
- ES:BX -> ??? (undoc, middle of device driver interrupt routine!)
- SeeAlso: AX=5BE0h,AX=5BE1h
-
- Format of RM386 V86-mode table:
- Offset Size Description (Table 2262)
- 00h DWORD original INT 13 vector
- 04h DWORD original INT 15 vector
- 08h DWORD original INT 19 vector
- 0Ch DWORD original INT 21 vector
- 10h DWORD original INT 4B vector
- 14h DWORD original INT 67 vector
- --------m-675BF0-----------------------------
- INT 67 - MICEMM v4D, RM386 - INSTALLATION CHECK
- AX = 5BF0h
- Return: AH = 00h if MICEMM or RM386 present
- BX = code segment of driver
- Program: MICEMM is the Micronics Expanded Memory Manager; RM386 is the memory
- manager included in Helix Software's Netroom
- SeeAlso: AH=3Fh,AX=5BE0h,AX=5BF1h
- --------m-675BF1-----------------------------
- INT 67 - MICEMM v4D, RM386 - GET ADDRESS MAP
- AX = 5BF1h
- ES:BX -> 256-byte (MICEMM) or 512-byte (RM386) buffer for memory types
- Return: AH = 00h
- ES:BX buffer filled (see #2263)
- Note: each byte in the buffer specifies the type of a 4K page of memory
- SeeAlso: AX=5BE0h,AX=5BF0h
-
- (Table 2263)
- Values for MICEMM/RM386 memory type:
- 00h unused (MICEMM), RAM/available (RM386)
- 02h DOS extension (XMS UMB)
- 04h shadowed ROM
- 08h mappable EMS
- 10h page frame
- 20h ROM
- 40h reserved (video memory, etc)
- 80h RAM (MICEMM), Windows UMB (RM386)
- --------m-675BF2-----------------------------
- INT 67 - RM386 - GET RM386 INTERNAL DATA
- AX = 5BF2h
- CX = size of buffer
- DS:SI -> buffer for internal data
- (documentation says ES:BX -> buffer, SI = offset within RM386)
- Return: buffer filled
- Note: the data returned by this function is release-specific
- SeeAlso: AX=5BF0h
- --------m-675BF3-----------------------------
- INT 67 - RM386 - RETURN TO REAL MODE
- AX = 5BF3h
- Return: nothing
- Note: use AX=5DE0h instead of this functin
- SeeAlso: AX=5BF0h,AX=5DE0h
- --------m-675BF4-----------------------------
- INT 67 - RM386 v6.00 - GET RM386 GLOBAL FLAGS
- AX = 5BF4h
- Return: AH = 00h
- BX = global flags 1 (see #2264)
- CX = global flags 2 (see #2265)
- DX = global flags 3 (see #2266)
- SI = global flags 4 (see #2267)
- SeeAlso: AX=5BF0h
-
- Bitfields for RM386 global flags 1:
- Bit(s) Description (Table 2264)
- 0-3 reserved
- 4 V86 mode
- 5 reserved
- 6 80386 or higher CPU
- 7,8 reserved
- 9 A20 enabled at startup
- 10 "HIGH_IO"
- 11 ROM
- 12 large frame
- 13,14 reserved
- 15 PS/2-style A20 control
-
- Bitfields for RM386 global flags 2:
- Bit(s) Description (Table 2265)
- 0 HMA in use
- 1 XMS present
- 2 using XMS driver memory
- 3 HIGH (NEAT only)
- 4-7 reserved
- 8 NOBKTRAP
- 9 NORESET
- 10 ALTMAP
- 11 NOFRAME
- 12-15 reserved
-
- Bitfields for RM386 global flags 3:
- Bit(s) Description (Table 2266)
- 0 NOTEST
- 1 NOEBDA
- 2 Windows3 support
- 3 system board mouse
- 4 DISKBUF
- 5 EBDALOW
- 6 A20 global enable flag
- 7 A20 flag
- 8 EBDA moved to stub
- 9 VXD file was found
- 10 reserved
- 11 NOBOOTMAP
- 12 AUTO
- 13 PS/2 machine
- 14 Compaq ROM merge active
- 15 NOHMA set
-
- Bitfields for RM386 global flags 4:
- Bit(s) Description (Table 2267)
- 0 "NOV8259" don't virtualize interrupt controller
- 1 NOSCSI
- 2 NOSCAN
- 3 NOTR
- 4 ALTBOOT
- 5 NOCOMPQ
- 6 KB2TRAP
- 7 DESHADOW
- 8 Video 7 VGA detected
- 9 reserved
- 10 NOVGA
- 11 NOPS2
- 12 DEBUG
- 13 NOVKB
- 14,15 reserved
- --------m-675BF5-----------------------------
- INT 67 - RM386 v6.00 - GET RM386 EMS HANDLE COUNT
- AX = 5BF5h
- Return: AH = status
- 00h successful
- BX = current number of allocated EMS handles
- 84h function not available
- SeeAlso: AX=5BF0h
- --------m-675C-------------------------------
- INT 67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT
- AH = 5Ch
- Return: AH = status (see #2268)
- Note: when MS-DOS v6.xx EMM386 is loaded and the keyboard driver supports
- INT 15/AH=4Fh (keyboard intercept) calls, the system may hang
- instead of booting if this function is called just prior to a jump
- to F000h:FFF0h
-
- (Table 2268)
- Values for EMS function status:
- 00h successful
- 80h internal error
- 81h hardware malfunction
- 84h undefined function requested
- --------m-675D-------------------------------
- INT 67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS
- AH = 5Dh
- AL = subfunction
- 00h enable OS Function Set
- 01h disable OS Function Set
- 02h return access key (resets memory manager, returns access key at
- next invocation)
- BX,CX = access key returned by first invocation
- Return: BX,CX = access key, returned only on first invocation of function
- AH = status (see also AH=5Ch)
- 8Fh undefined subfunction
- A4h operating system denied access
- --------m-675D03-----------------------------
- INT 67 u - Nanosoft MD386 - INTERNAL INITIALIZATION
- AX = 5D03h
- ???
- Return: ???
- Program: MD386 is a subset EMS memory manager by Nanosoft specifically designed
- for use with the MultiDOS Plus multitasker
- SeeAlso: AX=5D04h,AX=5E00h
- --------m-675D04-----------------------------
- INT 67 - Nanosoft MD386 - GET ALTERNATE MAP STRUCTURE
- AX = 5D04h
- BX = alternate register set number
- ES:DI -> 1024-byte buffer for map structure
- Return: AH = status (see #2253)
- buffer filled if AH=00h
- Note: used for debugging purposes
- SeeAlso: AX=5D05h
- --------m-675D05-----------------------------
- INT 67 - Nanosoft MD386 - GET INTERNAL HANDLE TABLE
- AX = 5D05h
- BX = handle number
- ES:DI -> 1024-byte buffer for handle table
- Return: AH = status (see #2253)
- buffer filled if AH=00h
- Note: used for debugging purposes
- SeeAlso: AX=5D04h
- --------m-675DE0-----------------------------
- INT 67 - RM386 - DISABLE RM386
- AX = 5DE0h
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DE1h
- --------m-675DE1-----------------------------
- INT 67 - RM386 - ENABLE RM386
- AX = 5DE1h
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DE0h
- --------m-675DE2-----------------------------
- INT 67 - RM386 - GET PAGE TABLE
- AX = 5DE2h
- ES:DI -> 1088-byte buffer for page table
- Return: ES:DI buffer filled
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DE3h
- --------m-675DE3-----------------------------
- INT 67 - RM386 - SET PAGE TABLE
- AX = 5DE3h
- ES:DI -> 1088-byte buffer containing page table
- Notes: only the access bits of the page table are used, the remainder is
- ignored
- RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DE2h
- --------m-675DE4-----------------------------
- INT 67 - RM386 - SET WRITE-PROTECTION FOR PAGE IN FIRST MEGABYTE
- AX = 5DE4h
- BL = page number
- BH = access (00h read-only, 01h read-write)
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- --------m-675DE5-----------------------------
- INT 67 - RM386 - MAP PHYSICAL PAGE TO PHYSICAL SEGMENT
- AX = 5DE5h
- EBX = physical page number
- DX = page number in first megabyte to be remapped (linear-addr SHR 12)
- Return: AH = status
- 00h successful
- 8Bh invalid destination page (not in first megabyte)
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DE6h
- --------m-675DE6-----------------------------
- INT 67 - RM386 - MAP LOGICAL 4K PAGE TO PHYSICAL SEGMENT
- AX = 5DE6h
- BX = logical page number in 4K pages from beginning of memory for EMS
- handle
- CX = segment in first megabyte to be remapped
- DX = previously-allocated EMS handle
- Return: AH = status
- 00h successful
- 83h invalid handle
- 8Ah invalid logical page (out of handle's range)
- 8Bh invalid destination page (not in first megabyte)
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DE5h
- --------m-675DE7-----------------------------
- INT 67 - RM386 - SET PAGE TABLE BITS FOR RANGE OF PAGES
- AX = 5DE7h
- BL = page table bits to be set (bits 2-0 = U/S, R/W, P)
- CX = number of pages to set
- DX = first page number to set (in first megabyte)
- Return: AH = status
- 00h successful
- 8Bh invalid destination page (not in first megabyte)
- A5h invalid page bits
- A6h invalid page count (overflows first megabyte)
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- --------m-675DE8-----------------------------
- INT 67 - RM386 - GET PARTIAL PAGE TABLE
- AX = 5DE8h
- BX = starting page number in first megabyte+HMA (0000h-010Fh)
- CX = number of page table entries to get
- ES:DI -> buffer for DWORD page table entries
- Return: AH = status (00h successful, 8Bh invalid page)
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DE9h
- --------m-675DE9-----------------------------
- INT 67 - RM386 - SET PARTIAL PAGE TABLE
- AX = 5DE9h
- BX = starting page number in first megabyte+HMA (0000h-010Fh)
- CX = number of page table entries to get
- DS:SI -> buffer of DWORD page table entries
- Return: AH = status (00h successful, 8Bh invalid destination page)
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DE8h
- --------m-675DEA-----------------------------
- INT 67 - RM386 - V86-MODE I/O PORT TRAPPING CONTROL
- AX = 5DEAh
- BX = function
- 00h globally disable V86-mode trapping
- 01h globally enable V86-mode trapping
- CL = interrupt to use for trapping
- 02h get I/O trapping state
- Return: AH = status
- 00h successful
- BX = current trapping state (function 02h)
- 0000h disabled, 0001h enabled
- CX = interrupt used as trap interrupt (functions 00h and 02h)
- Notes: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- when I/O trapping is enabled and I/O port access occurs, RM386
- simulates an INT instruction for the specified interrupt; the
- interrupt handler is responsible for decoding the trapped instruction
- and performing the appropriate action. INT 2C/AX=002Dh provides a
- similar but more-easily used interface.
- SeeAlso: AX=5DEBh,AH=EFh"RM386",INT 2C/AX=002Dh
- --------m-675DEB-----------------------------
- INT 67 - RM386 - V86-MODE I/O TRAPPING PORT CONTROL
- AX = 5DEBh
- BX = function
- 00h disable V86-mode trapping for specified port
- 01h enable V86-mode trapping for specified port
- 02h get V86-mode trapping state for specified port
- DX = port for which to enable/disable/query trapping
- Return: AH = status
- 00h successful
- BX = current trapping state (00h off, 01h on) (function 02)
- A7h invalid port ID
- A8h reserved port--cannot trap/untrap (DMA/INT/KBD controllers)
- Notes: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DEAh
- --------m-675DFD-----------------------------
- INT 67 U - RM386 v6.00 - ???
- AX = 5DFDh
- ???
- Return: ???
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DFEh
- --------m-675DFE-----------------------------
- INT 67 U - RM386 v6.00 - ???
- AX = 5DFEh
- ???
- Return: ???
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DFDh
- --------m-675DFF-----------------------------
- INT 67 U - RM386 v6.00 - ???
- AX = 5DFFh
- ???
- Return: ???
- Note: RM386 traps this function on the initial transition to protected
- mode caused by the INT instruction, which means it can not be
- overridden simply by hooking the interrupt
- SeeAlso: AX=5DFDh,AX=5DFEh
- --------m-675E00-----------------------------
- INT 67 - Nanosoft MD386 - SET HARDWARE BREAKPOINT
- AX = 5E00h
- DH = breakpoint number (0-3)
- DL = breakpoint attributes (used to set DR7)
- CX:BX = linear address of breakpoint
- SeeAlso: AX=5D03h,AX=5E01h
- --------m-675E01-----------------------------
- INT 67 - Nanosoft MD386 - GET HARDWARE DEBUG REGISTER
- AX = 5E01h
- BL = register number (0-3,7)
- Return: CX:BX = value of specified DRx register
- SeeAlso: AX=5E00h
- --------m-675E02-----------------------------
- INT 67 - Nanosoft MD386 - SET DEBUG EXCEPTION HANDLER
- AX = 5E02h
- CX:BX -> exception handler
- Note: the specified exception handler is called with a simulated interrupt
- whenever a debug exception occurs which was caused by a hardware
- breakpoint set with the debug registers
- SeeAlso: AX=5E04h,AX=5E05h
- --------m-675E03-----------------------------
- INT 67 - Nanosoft MD386 - ENABLE/DISABLE MEMORY WRITE PROTECTION
- AX = 5E03h
- BL = register map set number
- BH = new state (00h read-only, else read-write)
- CX = linear page number (linear address SHR 12)
- Note: setting write protection in map set 0 will cause the setting to become
- the default for newly-allocated map sets
- --------m-675E04-----------------------------
- INT 67 - Nanosoft MD386 - GET DEBUG EXCEPTION
- AX = 5E04h
- Return: BL = debug exception (low byte of DR6 register)
- SeeAlso: AX=5E02h,AX=5E05h
- --------m-675E05-----------------------------
- INT 67 - Nanosoft MD386 - IGNORE NEXT DEBUG EXCEPTION
- AX = 5E05h
- Note: may be required when using AX=5E02h for handling instruction
- breakpoints
- SeeAlso: AX=5E02h,AX=5E04h
- --------m-6760-------------------------------
- INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY
- AH = 60h
- ES:DI -> buffer
- Return: AH = status (see also AH=40h)
- AL = number of entries
- buffer at ES:DI filled
- --------m-6761-------------------------------
- INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT
- AH = 61h
- ???
- Return: ???
- Note: can be used by accelerator card manufacturer to flush RAM cache,
- ensuring that the cache accurately reflects what the processor would
- see without the cache.
- --------m-6768-------------------------------
- INT 67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM
- AH = 68h
- ES:DI -> buffer
- Return: AH = status (see also AH=40h)
- AL = number of entries
- buffer at ES:DI filled
- Note: equivalent to LIM 4.0 function 58h
- --------m-6769-------------------------------
- INT 67 - EEMS - MAP PAGE INTO FRAME
- AH = 69h
- AL = frame number
- BX = page number
- DX = handle
- Return: AH = status (see also AH=40h)
- Note: similar to EMS function 44h
- SeeAlso: AH=44h,AH=50h,AH=6Ah
- --------m-676A-------------------------------
- INT 67 - EEMS - PAGE MAPPING
- AH = 6Ah
- AL = subfunction
- 00h save partial page map
- CH = first page frame
- CL = number of frames
- ES:DI -> buffer which is to be filled
- 01h restore partial page map
- CH = first page frame
- CL = number of frames
- DI:SI -> previously saved page map
- 02h save and restore partial page map
- CH = first page frame
- CL = number of frames
- ES:DI = buffer for current page map
- DI:SI = new page map
- 03h get size of save array
- CH = first page frame
- CL = number of frames
- Return: AL = size of array in bytes
- 04h switch to standard map register setting
- 05h switch to alternate map register setting
- 06h deallocate pages mapped to frames in conventional memory
- CH = first page frame
- CL = number of frames
- Return: AH = status (see #2253)
- Note: similar to EMS function 4Eh, except that a subrange of pages can be
- specified
- SeeAlso: AH=69h
- --------m-676B-------------------------------
- INT 67 - DESQview 2.42-2.53 - BUG
- AH = 6Bh
- Note: the EMM.DVR portion of DESQview branches to a random location on this
- function due to a fencepost error
- --------m-67DD-------------------------------
- INT 67 - Quadtel QMAPS - API
- AH = DDh
- AL = function
- ???
- Return: ???
- Notes: details are not yet available
- Hewlett-Packard's HPMM.SYS is a licensed version of QMAPS, and thus
- supports this API
- SeeAlso: AH=3Fh,AX=FFA5h
- --------E-67DE00-----------------------------
- INT 67 - Virtual Control Program Interface - INSTALLATION CHECK
- AX = DE00h
- Return: AH = status
- 00h VCPI is present
- BH = major version number
- BL = minor version number
- nonzero VCPI not present
- BUG: MS Windows 3.00 is reported to "object violently" to this call.
- SeeAlso: INT 2F/AX=1687h
- --------E-67DE01-----------------------------
- INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE
- AX = DE01h
- ES:DI -> 4K page table buffer
- DS:SI -> three descriptor table entries in GDT
- first becomes code segment descriptor, other two for use by
- main control program
- Return: AH = 00h successful
- DI -> first unused page table entry in buffer
- EBX -> protected mode entry point in code segment (see #2269)
- AH = nonzero failed
- Note: protected mode entry point may be called with AX=DE00h-DE05h and
- AX=DE0Ch (in each case, all other registers as appropriate for
- the function)
- SeeAlso: INT 2F/AX=1687h,INT 67/AH=3Fh
-
- (Table 2269)
- Call QEMM v6.03 protected mode entry point additionally with:
- AX = DF00h ???
- ???
- Return: ???
- AX = DF01h ???
- ???
- Return: ???
- --------E-67DE02-----------------------------
- INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS
- AX = DE02h
- Return: AH = 00h successful
- EDX = physical address of highest 4K memory page
- AH nonzero: failed
- SeeAlso: AH=3Fh
- --------E-67DE03-----------------------------
- INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES
- AX = DE03h
- Return: AH = 00h successful
- EDX = number of free 4K pages
- AH nonzero: failed
- Notes: returns total number of pages available to ALL tasks in system
- also available in protected mode by calling the protected-mode VCPI
- entry point (see AX=DE01h,#2269)
- SeeAlso: AX=DE04h
- --------E-67DE04-----------------------------
- INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE
- AX = DE04h
- Return: AH = 00h successful
- EDX = physical address of allocated page
- AH nonzero: failed
- Notes: the client program is responsible for freeing all memory allocated
- with this call before terminating
- also available in protected mode by calling the protected-mode VCPI
- entry point (see AX=DE01h,#2269)
- SeeAlso: AH=3Fh,AX=DE03h,AX=DE05h
- --------E-67DE05-----------------------------
- INT 67 - Virtual Control Program Interface - FREE 4K PAGE
- AX = DE05h
- EDX = physical address of 4K page
- Return: AH = status
- 00h successful
- nonzero failed
- Note: also available in protected mode by calling the protected-mode VCPI
- entry point (see AX=DE01h,#2269)
- SeeAlso: AH=3Fh,AX=DE04h
- --------E-67DE06-----------------------------
- INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB
- AX = DE06h
- CX = page number (linear address shifted right 12 bits)
- Return: AH = status
- 00h successful
- EDX = physical address of page
- nonzero invalid page number (AH = 8Bh recommended)
- SeeAlso: AX=5BE0h
- --------E-67DE07-----------------------------
- INT 67 - Virtual Control Program Interface - READ CR0
- AX = DE07h
- Return: AH = 00h
- EBX = value of Control Register 0
- SeeAlso: AH=3Fh,AX=DE07h
- --------E-67DE08-----------------------------
- INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS
- AX = DE08h
- ES:DI -> array of 8 DWORDs
- Return: AH = 00h
- buffer filled with DR0 first, DR7 last, DR4 and DR5 unused
- SeeAlso: AH=3Fh,AX=DE09h
- --------E-67DE09-----------------------------
- INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS
- AX = DE09h
- ES:DI -> array of 8 DWORDs holding new values of debug registers
- Return: AH = 00h
- Note: values for DR4 and DR5 ignored
- SeeAlso: AH=3Fh,AX=DE08h
- --------E-67DE0A-----------------------------
- INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS
- AX = DE0Ah
- Return: AH = 00h successful
- BX = first vector used by master 8259 (IRQ0)
- CX = first vector used by slave 8259 (IRQ8)
- AH nonzero: failed
- Note: CX is undefined in systems without a slave 8259
- SeeAlso: AX=DE0Bh,INT 21/AX=250Ch,INT 31/AX=0400h
- --------E-67DE0B-----------------------------
- INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS
- AX = DE0Bh
- BX = first vector used by master 8259
- CX = first vector used by slave 8259
- interrupts disabled
- Return: AH = 00h successful
- AH nonzero: failed
- Notes: This call merely informs the server that the client has changed the
- interrupt mappings. The client may not change the mappings if they
- have already been changed by the server or another client, and is
- responsible for restoring the original mappings before terminating.
- SeeAlso: AX=DE0Ah,INT 2C/AX=002Ah
- --------E-67DE0C-----------------------------
- INT 67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE
- AX = DE0Ch
- ESI = linear address in first megabyte of values for system
- registers (see #2270)
- interrupts disabled
- Return: interrupts disabled
- GDTR, IDTR, LDTR, TR loaded
- SS:ESP must have at least 16 bytes space, and the entry point is
- required to set up a new stack before enabling interrupts
- EAX, ESI, DS, ES, FS, GS destroyed
- Note: in protected mode, calling the protected-mode VCPI entry point with
- AX = DE0Ch
- DS = segment selector mapping entire linear address space obtained
- via AX=DE01h
- SS:ESP in first megabyte of linear memory
- STACK:QWORD return address from FAR call to 32-bit segment
- DWORD EIP
- DWORD CS
- DWORD reserved for EFLAGS
- DWORD ESP
- DWORD SS
- DWORD ES
- DWORD DS
- DWORD FS
- DWORD GS
- and interrupts disabled, will switch to virtual86 mode with
- interrupts disabled, all segment registers loaded, and EAX
- destroyed.
- SeeAlso: AH=3Fh,INT 15/AH=89h,INT 38/AH=10h
-
- Format of system register values for switch to protected mode:
- Offset Size Description (Table 2270)
- 00h DWORD value for CR3
- 04h DWORD linear address in first megabyte of value for GDTR
- 08h DWORD linear address in first megabyte of value for IDTR
- 0Ch WORD value for LDTR
- 0Eh WORD value for TR
- 10h PWORD CS:EIP of protected mode entry-point
- --------m-67DE0F-----------------------------
- INT 67 - Netroom3 - ???
- AX = DE0Fh
- ???
- Return: ???
- Note: called by Netroom's DPMI.EXE
- --------m-67EF-------------------------------
- INT 67 - RM386 v6.00+ - EXECUTE XMS FUNCTION
- AH = EFh
- AL = function (00h-12h,80h-8Fh)
- other register as appropriate for XMS function
- Return: varies by function (see INT 2F/AX=4310h)
- Note: these functions appear to be equivalent to the XMS functions with the
- same numbers
- SeeAlso: AX=5DFFh"RM386",INT 2F/AX=4310h
- --------m-67FFA5-----------------------------
- INT 67 - Microsoft EMM386.EXE v4.20+ - INSTALLATION CHECK
- AX = FFA5h
- Return: AX = 845Ah/84A5h if loaded
- BX:CX -> API entry point (see #2271)
- Notes: this call is available even if EMM386 is not providing EMS
- the returned AX is 845Ah inside of MSWindows, 84A5h under bare DOS
- if no other program has hooked INT 67, an alternate installation
- check is to test for the string
- "MICROSOFT EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
- handler's segment; the word immediately preceding this string
- contains the offset of the API entry point
- SeeAlso: AH=3Fh,AX=FFA5h/BX=4345h,INT 21/AX=4402h"EMM386.EXE"
-
- (Table 2271)
- Call EMM386.EXE API entry point with:
- AH = 00h get memory manager's status
- Return: AH = status
- bit 0: not active (OFF)
- bit 1: in "Auto" mode
- AH = 01h set memory manager's state
- AL = new state (00h ON, 01h OFF, 02h AUTO)
- AH = 02h Weitek coprocessor support
- AL = subfunction
- 00h get Weitek support state
- Return: AL = status
- bit 0: Weitek coprocessor is present
- bit 1: Weitek support is enabled
- 01h turn on Weitek support
- 02h turn off Weitek support
- --- v4.20-4.41 only ---
- AH = 03h Windows support???
- AL = subfunction (00h, 01h)
- AH = 04h print copyright notice to standard output
- (using INT 21/AH=09h)
- AH = 05h print available report
- (the one shown when running EMM386 from the DOS prompt)
- SeeAlso: #0733 at INT 21/AX=4402h/SF=02h,#1402 at INT 2F/AX=12FFh/BX=0106h
- --------m-67FFA5BX4345-----------------------
- INT 67 U - Compaq CEMM v5.10+ - PRIVATE API
- AX = FFA5h
- BX = 4345h ("CE")
- DX = subfunction
- 0000h unshadow video ROM???
- 0001h shadow video ROM???
- 0002h map pages
- CX = number of pages (00h=one)
- ESI = linear address of first page to map into address space
- EDI = linear starting address at which pages are to be visible
- 0003h get ???
- Return: DX = ??? (0-2)
- 0004h BUG: crashes system due to fencepost error
- Return: AH = 84h
- AL = status (84h = error, FFh = success)
- Note: if BX <> 4345h or DX > 0004h on entry, CEMM behaves identically to
- Microsoft's EMM386 (see AX=FFA5h"EMM386")
- SeeAlso: AX=FFA5h"EMM386",#0733 at INT 21/AX=4402h/SF=02h,#2271
- --------I-68---------------------------------
- INT 68 - Sangoma CCPOP 3270 resident module
- SeeAlso: INT 67"Sangoma",INT 92"Sangoma"
- --------N-68---------------------------------
- INT 68 - Novell NetWare LU6.2
- Note: the installation check consists of testing for the signature string
- "APPC/PC" nine bytes before the interrupt handler
- SeeAlso: AH=01h/SF=1B00h,AH=FAh
- --------h-68---------------------------------
- INT 68 C - HP Vectra AT - IRQ16 - 8041 SERVICE REQUEST
- SeeAlso: INT 08"IRQ0",INT 69"HP Vectra",INT 6F"HP Vectra"
- --------N-6801--SF1B00-----------------------
- INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DISPLAY
- AH = 01h subfn 1B00h
- DS:DX -> control block (see #2272)
- Return: control block updated
- SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2B00h,INT 68"Novell"
-
- Format of APPC/PC "DISPLAY" control block:
- Offset Size Description (Table 2272)
- 00h 12 BYTEs reserved
- 0Ch WORD 1B00h (verb "DISPLAY")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h WORD 00h
- 1Ah 8 BYTEs (big-endian) logical unit ID
- 22h 8 BYTEs (big-endian) partner logical unit name
- 2Ah 8 BYTEs (big-endian) mode name
- 32h BYTE logical unit session limit
- 33h BYTE partner logical unit session limit
- 34h BYTE node maximum negotiable session limit
- 35h BYTE current session limit
- 36h BYTE minimum negotiated winner limit
- 37h BYTE maximum negotiated loser limit
- 38h BYTE active session count
- 39h BYTE active CONWINNER session count
- 3Ah BYTE active CONLOSER session count
- 3Bh BYTE session termination count
- 3Ch BYTE bit 7: SESSION_TERMINATION_TARGET_DRAIN
- bit 6: SESSION_TERMINATION_SOURCE_DRAIN
-
- (Table 2273)
- Values for APPC/PC return code:
- 0000h successful
- 0001h BAD_TP_ID
- 0002h BAD_CONV_ID
- 0003h bad logical unit ID
- 0008h no physical unit attached
- 0110h bad state
- 01B1h BAD_PART_LUNAME
- 01B2h bad mode name
- 0201h physical unit already active
- 0211h logical unit already active
- 0212h BAD_PART_SESS
- 0213h BAD_RU_SIZES
- 0214h BAD_MODE_SESS
- 0216h BAD_PACING_CNT
- 0219h EXTREME_RUS
- 021Ah SNASVCMG_1
- 0223h SSCP_CONNECTED_LU
- 0230h invalid change
- 0243h too many TPs
- 0272h adapter close failure
- 0281h GET_ALLOC_BAD_TYPE
- 0282h unsuccessful
- 0283h DLC failure
- 0284h unrecognized DLC
- 0286h duplicate DLC
- 0301h SSCP_PU_SESSION_NOT_ACTIVE
- 0302h data exceeds RU size
- 0401h invalid direction
- 0402h invalid type
- 0403h segment overlap
- 0404h invalid first character
- 0405h table error
- 0406h conversion error
- F0010000h APPC disabled
- F0020000h APPC busy
- F0030000h APPC abended
- F0040000h incomplete
- --------N-6801--SF2000-----------------------
- INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH PHYSICAL UNIT
- AH = 01h subfn 2000h
- DS:DX -> control block (see #2274)
- Return: control block updated
- SeeAlso: AH=01h/SF=2100h,AH=01h/SF=2B00h
-
- Format of APPC/PC "Attach Physical Unit" control block:
- Offset Size Description (Table 2274)
- 00h 12 BYTEs reserved
- 0Ch WORD 2000h (verb "Attach Physical Unit")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h WORD 00h
- 1Ah BYTE version
- 1Bh BYTE release
- 1Ch 8 BYTEs (big-endian) net name
- 24h 8 BYTEs (big-endian) physical unit name
- 2Ch 8 BYTEs 00h
- 34h DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
- (see also AH=01h/SF=2100h)
- 38h DWORD 00h
- 3Ch BYTE 00h RETURN_CONTROL: COMPLETE
- 01h RETURN_CONTROL: INCOMPLETE
- --------N-6801--SF2100-----------------------
- INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH LOGICAL UNIT
- AH = 01h subfn 2100h
- DS:DX -> control block (see #2275)
- Return: control block updated
- SeeAlso: #2278,#2279,#2281,AH=01h/SF=2000h,AH=01h/SF=2200h,AH=01h/SF=2B00h
-
- Format of APPC/PC "Attach Logical Unit" control block:
- Offset Size Description (Table 2275)
- 00h 12 BYTEs reserved
- 0Ch WORD 2100h (verb "Attach Logical Unit")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h WORD 70 offset to partner logical unit record
- 1Ah 8 BYTEs (big-endian) logical unit name
- 22h 8 BYTEs (big-endian) logical unit ID
- 2Ah BYTE logical unit local address
- 2Bh BYTE logical unit session limit
- 2Ch DWORD pointer to CREATE_TP_EXIT routine,
- FFFFFFFFh = reject incoming ALLOCATEs
- 00000000h = queue ALLOCATEs
- 30h DWORD 00h
- 34h DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
- 38h DWORD 00h
- 3Ch BYTE maximum TPs
- 3Dh BYTE queue depth
- 3Eh DWORD pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit
- 42h DWORD 00h
- 46h WORD total length of partner records
- 48h var array of partner logical unit records (see #2276)
- SeeAlso: #2278,#2279,#2281
-
- Format of APPC/PC partner logical unit record:
- Offset Size Description (Table 2276)
- 00h WORD length of this partner logical unit record
- 02h WORD 42 offset to mode records
- 04h 8 BYTEs (big-endian) partner logical unit name
- 0Ch BYTE partner logical unit security capabilities
- bit 7: already verified
- bit 6: conversation level security
- bit 5: session level security
- 0Dh BYTE partner logical unit session limit
- 0Eh WORD partner logical unit maximum MC_SEND_LL
- 10h 8 BYTEs (big-endian) partner logical unit DLC name
- 18h BYTE partner logical unit adapter number
- 19h 17 BYTEs (counted string) partner logical unit adapter address
- 2Ah WORD total length of mode records
- 2Ch 16N BYTEs array of mode records (see #2277)
-
- Format of mode record:
- Offset Size Description (Table 2277)
- 00h WORD 16 length of this mode record
- 02h 8 BYTEs (big-endian) mode name
- 0Ah WORD RU_SIZE high bound
- 0Ch WORD RU_SIZE low bound
- 0Eh BYTE mode maximum negotiable session limit
- 0Fh BYTE pacing size for receive
-
- Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT
- pointers are called by pushing the DWORD pointer to the verb on the stack and
- then performing a FAR call.
-
- Format of ACCESS_LU_LU_PW verb:
- Offset Size Description (Table 2278)
- 00h 12 BYTEs reserved
- 0Ch WORD 1900h (verb "ACCESS_LU_LU_PW")
- 0Eh 8 BYTEs (big-endian) logical unit ID
- 16h 8 BYTEs (big-endian) logical unit name
- 1Eh 8 BYTEs (big-endian) partner logical unit name
- 26h 17 BYTEs (counted string) partner fully qualified logical unit name
- 37h BYTE password available (0=no, 1=yes)
- 38h 8 BYTEs password
- SeeAlso: #2275,#2279,#2281
-
- Format of CREATE_TP verb:
- Offset Size Description (Table 2279)
- 00h 12 BYTEs reserved
- 0Ch WORD 2300h (verb "CREATE_TP")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) sense code (see #2280)
- 18h 8 BYTEs (big-endian) TP ID
- 20h 8 BYTEs (big-endian) logical unit ID
- 28h DWORD (big-endian) conversation ID
- 2Ch BYTE 0 basic conversation, 1 mapped conversation
- 2Dh BYTE 0 no sync level, 1 confirm
- 2Eh BYTE reserved
- 2Fh 65 BYTEs (counted string) transaction program name
- 70h 6 BYTEs 00h
- 76h WORD length of ERROR_LOG_DATA to return
- 78h DWORD pointer to ERROR_LOG_DATA buffer
- 7Ch 8 BYTEs (big-endian) partner logical unit name
- 84h 18 BYTEs (counted string) partner fully qualified logical unit name
- 96h 8 BYTEs (big-endian) mode name
- 9Eh 12 BYTEs 00h
- AAh 11 BYTEs (counted string) password
- B5h 11 BYTEs (counted string) user ID
- C0h BYTE 0 verification should be performed
- 1 already verified
- SeeAlso: #2278,#2281
-
- (Table 2280)
- Values for APPC/PC sense code:
- 00000000h Ok
- 080F6051h SECURITY_NOT_VALID
- 084B6031h TP_NOT_AVAIL_RETRY
- 084C0000h TP_NOT_AVAIL_NO_RETRY
- 10086021h TP_NAME_NOT_RECOGNIZED
- 10086034h CONVERSATION_TYPE_MISMATCH
- 10086041h SYNC_LEVEL_NOT_SUPPORTED
-
- Format of SYSLOG verb:
- Offset Size Description (Table 2281)
- 00h 12 BYTEs reserved
- 0Ch WORD 2600h (verb "SYSLOG")
- 0Eh 10 BYTEs 00h
- 18h WORD (big-endian) type
- 1Ah DWORD (big-endian) subtype
- 1Eh DWORD pointer to ADDITIONAL_INFO
- 22h DWORD (big-endian) conversation ID
- 26h 8 BYTEs (big-endian) TP ID
- 2Eh 8 BYTEs (big-endian) physical unit or logical unit name
- 36h WORD length of data
- 38h DWORD pointer to data
- 3Ch BYTE 00h
- SeeAlso: #2278,#2279
- --------N-6801--SF2200-----------------------
- INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH LOGICAL UNIT
- AH = 01h subfn 2200h
- DS:DX -> control block (see #2282)
- Return: control block updated
- SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2700h
-
- Format of APPC/PC "Detach Logical Unit" control block:
- Offset Size Description (Table 2282)
- 00h 12 BYTEs reserved
- 0Ch WORD 2200h (verb "Detach Logical Unit")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h 8 BYTEs (big-endian) logical unit ID
- 20h BYTE 00h
- --------N-6801--SF2700-----------------------
- INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH PHYSICAL UNIT
- AH = 01h subfn 2700h
- DS:DX -> control block (see #2283)
- Return: control block updated
- SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2200h
-
- Format of APPC/PC "Detach Physical Unit" control block:
- Offset Size Description (Table 2283)
- 00h 12 BYTEs reserved
- 0Ch WORD 2700h (verb "Detach Physical Unit")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h BYTE 00h type: hard
- 01h type: soft
- --------N-6801--SF2B00-----------------------
- INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ACTIVATE DLC
- AH = 01h subfn 2B00h
- DS:DX -> control block (see #2284)
- Return: control block updated
- SeeAlso: AH=01h/SF=1B00h,AH=01h/SF=2000h
-
- Format of APPC/PC "Activate DLC" control block:
- Offset Size Description (Table 2284)
- 00h 12 BYTEs reserved
- 0Ch WORD 2B00h (verb "Activate DLC")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h 8 BYTEs (big-endian) DLC name
- 20h BYTE adapter number
- --------N-6802--SF0100-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - ALLOCATE
- AH = 02h subfn 0100h
- DS:DX -> control block (see #2285)
- Return: control block updated
- SeeAlso: AH=02h/SF=0500h
-
- Format of APPC/PC "Allocate" control block:
- Offset Size Description (Table 2285)
- 00h 12 BYTEs reserved
- 0Ch WORD 0100h (verb "Allocate" or "MC_Allocate")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE (MC_Allocate only) conversation type
- 0 basic conversation
- 1 mapped conversation
- 27h BYTE SYNC_LEVEL (00h none, 01h confirm)
- 28h WORD 0000h
- 2Ah BYTE RETURN_CONTROL
- 00h when session allocated
- 01h immediate
- 02h when session free
- 2Bh 8 BYTEs 00h
- 33h 8 BYTEs (big-endian) partner logical unit name
- 3Bh 8 BYTEs (big-endian) mode name
- 43h 65 BYTEs (counted string) TP name
- 84h BYTE security (00h none, 01h same, 02h pgm)
- 85h 11 BYTEs 00h
- 90h 11 BYTEs (counted string) password
- 9Bh 11 BYTEs (counted string) user ID
- A6h WORD PIP_DATA length
- A8h DWORD pointer to PIP_DATA
-
- (Table 2286)
- Values for APPC/PC primary return code:
- 0000h successful
- 0001h parameter check
- 0002h state check
- 0003h allocation error
- 0005h deallocate abended
- 0006h deallocate abended program
- 0007h deallocate abended SVC
- 0008h deallocate abended timer
- 0009h deallocate normal return
- 000Ah data posting blocked
- 000Bh posting not active
- 000Ch PROG_ERROR_NO_TRUNC
- 000Dh PROG_ERROR_TRUNC
- 000Eh PROG_ERROR_PURGING
- 000Fh CONV_FAILURE_RETRY
- 0010h CONV_FAILURE_NO_RETRY
- 0011h SVC_ERROR_NO_TRUNC
- 0012h SVC_ERROR_TRUNC
- 0013h SVC_ERROR_PURGING
- 0014h unsuccessful
- 0018h CNOS partner logical unit reject
- 0019h conversation type mixed
- F001h APPC disabled
- F002h APPC busy
- F003h APPC abended
- F004h incomplete
-
- (Table 2287)
- Values for APPC/PC error code:
- 0001h bad TP ID
- 0002h bad conversation ID
- 0004h allocation error, no retry
- 0005h allocation error, retry
- 0006h data area crosses segment boundary
- 0010h bad TPN length
- 0011h bad CONV length
- 0012h bad SYNC level
- 0013h bad security selection
- 0014h bad return control
- 0015h SEC_TOKENS too big
- 0016h PIP_LEN incorrect
- 0017h no use of SNASVCMG
- 0018h unknown partner mode
- 0031h confirm: SYNC_NONE
- 0032h confirm: bad state
- 0033h confirm: NOT_LL_BDY
- 0041h confirmed: bad state
- 0051h deallocate: bad type
- 0052h deallocate: flush bad state
- 0053h deallocate: confirm bad state
- 0055h deallocate: NOT_LL_BDY
- 0057h deallocate: log LL_WRONG
- 0061h flush: not send state
- 0091h post on receipt: invalid length
- 0092h post on receipt: not in receive state
- 0093h post on receipt: bad fill
- 00A1h prepare to receive:invalid type
- 00A2h prepare to receive: unfinished LL
- 00A3h prepare to receive: not in send state
- 00B1h receive and wait: bad state
- 00B2h receive and wait: NOT_LL_BDY
- 00B5h receive and wait: bad fill
- 00C1h receive immediate: not in receive state
- 00C4h receive immediate: bad fill
- 00E1h request to send: not in receive state
- 00F1h send data: bad LL
- 00F2h send data: not in send state
- 0102h send error: log LL wrong
- 0103h send error: bad type
- 0121h test: invalid type
- 0122h test: not in receive state
- --------N-6802--SF0300-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRM
- AH = 02h subfn 0300h
- DS:DX -> control block (see #2288)
- Return: control block updated
- SeeAlso: AH=02h/SF=0400h
-
- Format of APPC/PC "Confirm" control block:
- Offset Size Description (Table 2288)
- 00h 12 BYTEs reserved
- 0Ch WORD 0300h (verb "Confirm" or "MC_Confirm")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE request to send received (0=no, 1=yes)
- --------N-6802--SF0400-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRMED
- AH = 02h subfn 0400h
- DS:DX -> control block (see #2289)
- Return: control block updated
- SeeAlso: AH=02h/SF=0300h
-
- Format of APPC/PC "Confirmed" control block:
- Offset Size Description (Table 2289)
- 00h 12 BYTEs reserved
- 0Ch WORD 0400h (verb "Confirmed" or "MC_Confirmed")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- --------N-6802--SF0500-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - DEALLOCATE
- AH = 02h subfn 0500h
- DS:DX -> control block (see #2290)
- Return: control block updated
- SeeAlso: AH=02h/SF=0100h,AH=02h/SF=0300h
-
- Format of APPC/PC "Deallocate" control block:
- Offset Size Description (Table 2290)
- 00h 12 BYTEs reserved
- 0Ch WORD 0500h (verb "Deallocate" or "MC_Deallocate")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE 00h
- 27h BYTE type
- 00h SYNC_LEVEL
- 01h FLUSH
- 02h ABEND_PROC
- 03h ABEND_SVC
- 04h ABEND_TIMER
- 05h ABEND
- 28h WORD (MC_Deallocate only) length of error log data
- 2Ah DWORD (MC_Deallocate only) pointer to error log data
- --------N-6802--SF0600-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - FLUSH
- AH = 02h subfn 0600h
- DS:DX -> control block (see #2291)
- Return: control block updated
- SeeAlso: AH=02h/SF=0300h
-
- Format of APPC/PC "Flush" control block:
- Offset Size Description (Table 2291)
- 00h 12 BYTEs reserved
- 0Ch WORD 0600h (verb "Flush" or "MC_Flush")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- --------N-6802--SF0700-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - GET ATTRIBUTES
- AH = 02h subfn 0700h
- DS:DX -> control block (see #2292)
- Return: control block updated
- SeeAlso: AH=02h/SF=0300h
-
- Format of APPC/PC "Get_Attributes" control block:
- Offset Size Description (Table 2292)
- 00h 12 BYTEs reserved
- 0Ch WORD 0700h (verb "Get_Attributes" or "MC_Get_Attributes")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h 8 BYTEs (big-endian) logical unit ID
- 2Eh BYTE 00h
- 2Fh BYTE SYNC_LEVEL (0=none, 1=confirm)
- 30h 8 BYTEs (big-endian) mode name
- 38h 8 BYTEs (big-endian) own net name
- 40h 8 BYTEs (big-endian) own logical unit name
- 48h 8 BYTEs (big-endian) partner logical unit name
- 50h 18 BYTEs (counted string) partner's fully qualified logical unit name
- 62h BYTE 00h
- 63h 11 BYTEs (counted string) user ID
- --------N-6802--SF0800-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - GET CONVERSATION TYPE
- AH = 02h subfn 0800h
- DS:DX -> control block (see #2293)
- Return: control block updated
- SeeAlso: AH=02h/SF=0300h
-
- Format of APPC/PC "Get_Type" control block:
- Offset Size Description (Table 2293)
- 00h 12 BYTEs reserved
- 0Ch WORD 0800h (verb "Get_Type")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE (ret) type (0=basic conversation, 1=mapped conversation)
- --------N-6802--SF0900-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - POST ON RECEIPT
- AH = 02h subfn 0900h
- DS:DX -> control block (see #2294)
- Return: control block updated
- SeeAlso: AH=02h/SF=0A00h
-
- Format of APPC/PC "Post_on_Receipt" control block:
- Offset Size Description (Table 2294)
- 00h 12 BYTEs reserved
- 0Ch WORD 0900h (verb "Post_on_Receipt")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h WORD maximum length
- 28h BYTE fill (0=buffer, 1=LL)
- --------N-6802--SF0A00-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - PREPARE TO RECEIVE
- AH = 02h subfn 0A00h
- DS:DX -> control block (see #2295)
- Return: control block updated
- SeeAlso: AH=02h/SF=0900h,AH=02h/SF=0B00h
-
- Format of APPC/PC "Prepare_to_Receive" control block:
- Offset Size Description (Table 2295)
- 00h 12 BYTEs reserved
- 0Ch WORD 0A00h (verb "Prepare_to_Receive" or "MC_Prepare_to_Receive")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE type (0=SYNC_LEVEL, 1=FLUSH)
- 27h BYTE locks (0=short, 1=long)
- --------N-6802--SF0B00-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE AND WAIT
- AH = 02h subfn 0B00h
- DS:DX -> control block (see #2296)
- Return: control block updated
- SeeAlso: AH=02h/SF=0C00h,AH=02h/SF=0F00h
-
- Format of APPC/PC "Receive_and_Wait" control block:
- Offset Size Description (Table 2296)
- 00h 12 BYTEs reserved
- 0Ch WORD 0B00h (verb "Receive_and_Wait" or "MC_Receive_and_Wait")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE type of information received (see #2297)
- 27h BYTE (MC_Receive_and_Wait only) fill (0=buffer, 1=LL)
- 28h BYTE Request_to_Send_Received (0=no, 1=yes)
- 29h WORD maximum length
- 2Bh WORD data length
- 2Dh DWORD pointer to data
-
- (Table 2297)
- Values for type of information received:
- 00h data
- 01h data complete
- 02h data incomplete
- 03h confirm
- 04h confirm send
- 05h confirm deallocate
- 06h send
- --------N-6802--SF0C00-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE IMMEDIATE
- AH = 02h subfn 0C00h
- DS:DX -> control block (see #2298)
- Return: control block updated
- SeeAlso: AH=02h/SF=0B00h,AH=02h/SF=0F00h
-
- Format of APPC/PC "Receive_Immediate" control block:
- Offset Size Description (Table 2298)
- 00h 12 BYTEs reserved
- 0Ch WORD 0C00h (verb "Receive_Immediate" or "MC_Receive_Immediate")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE type of information received (see #2297)
- 27h BYTE (MC_Receive_Immediate only) fill (0=buffer, 1=LL)
- 28h BYTE Request_to_Send_Received (0=no, 1=yes)
- 29h WORD maximum length
- 2Bh WORD data length
- 2Dh DWORD pointer to data
- --------N-6802--SF0E00-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - REQUEST TO SEND
- AH = 02h subfn 0E00h
- DS:DX -> control block (see #2299)
- Return: control block updated
- SeeAlso: AH=02h/SF=0F00h,AH=02h/SF=1000h
-
- Format of APPC/PC "Request_to_Send" control block:
- Offset Size Description (Table 2299)
- 00h 12 BYTEs reserved
- 0Ch WORD 0E00h (verb "Request_to_Send" or "MC_Request_to_Send")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- --------N-6802--SF0F00-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - SEND DATA
- AH = 02h subfn 0F00h
- DS:DX -> control block (see #2300)
- Return: control block updated
- SeeAlso: AH=02h/SF=0E00h,AH=02h/SF=1000h
-
- Format of APPC/PC "Send_Data" control block:
- Offset Size Description (Table 2300)
- 00h 12 BYTEs reserved
- 0Ch WORD 0F00h (verb "Send_Data" or "MC_Send_Data")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE request to send received (0=no, 1=yes)
- 27h BYTE 00h
- 28h WORD data length
- 2Ah DWORD pointer to data
- --------N-6802--SF1000-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - SEND ERROR
- AH = 02h subfn 1000h
- DS:DX -> control block (see #2301)
- Return: control block updated
- SeeAlso: AH=02h/SF=0F00h
-
- Format of APPC/PC "Send_Error" control block:
- Offset Size Description (Table 2301)
- 00h 12 BYTEs reserved
- 0Ch WORD 1000h (verb "Send_Error" or "MC_Send_Error")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE request to send received (0=no, 1=yes)
- 27h BYTE type (0=program, 1=SVC)
- 28h DWORD 00h
- 2Ch WORD (MC_Send_Error only) LOG_DATA length
- 2Eh DWORD (MC_Send_Error only) pointer to LOG_DATA
- --------N-6802--SF1200-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - TEST
- AH = 02h subfn 1200h
- DS:DX -> control block (see #2302)
- Return: control block updated
- SeeAlso: AH=02h/SF=1300h
-
- Format of APPC/PC "Test" control block:
- Offset Size Description (Table 2302)
- 00h 12 BYTEs reserved
- 0Ch WORD 1200h (verb "Test" or "MC_Test")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE (MC_Test only) test (0=posted, 1=request_to_send received)
- Note: error code has different interpretations for:
- 0 posted data
- 1 posted not data (primary return code = 0)
- 1 bad TP_ID (primary return code = 1)
- --------N-6802--SF1300-----------------------
- INT 68 - APPC/PC - CONNECTION CONTROL - WAIT
- AH = 02h subfn 1300h
- DS:DX -> control block (see #2303)
- Return: control block updated
- SeeAlso: AH=02h/SF=1200h
-
- Format of APPC/PC "Wait" control block:
- Offset Size Description (Table 2303)
- 00h 12 BYTEs reserved
- 0Ch WORD 1300h (verb "Wait")
- 0Eh BYTE 1 if MC_ (mapped conversation) form of verb
- 0 if basic verb
- 0Fh 5 BYTEs reserved (0)
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) error code (see #2287,#2302)
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD (big-endian) conversation ID
- 26h BYTE number of conversations to wait on
- Note: error codes have interpretations as for AH=02h/SF=1200h
- --------N-6803--SF2400-----------------------
- INT 68 - APPC/PC - TP STARTED
- AH = 03h subfn 2400h
- DS:DX -> control block (see #2304)
- Return: control block updated
-
- Format of APPC/PC "TP Started" control block:
- Offset Size Description (Table 2304)
- 00h 12 BYTEs reserved
- 0Ch WORD 2400h (verb "TP Started")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h WORD 00h
- 1Ah 8 BYTEs (big-endian) logical unit ID
- 22h 8 BYTEs (big-endian) TP ID
- --------N-6803--SF2800-----------------------
- INT 68 - APPC/PC - GET ALLOCATE
- AH = 03h subfn 2800h
- DS:DX -> control block (see #2305)
- Return: control block updated
-
- Format of APPC/PC "Get ALLOCATE" control block:
- Offset Size Description (Table 2305)
- 00h 12 BYTEs reserved
- 0Ch WORD 2800h (verb "Get ALLOCATE")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h WORD 00h
- 1Ah 8 BYTEs (big-endian) logical unit ID
- 22h BYTE type (00h dequeue, 01h test)
- 23h DWORD pointer to CREATE_TP record
- --------N-6803--SF2A00-----------------------
- INT 68 - APPC/PC - CHANGE LOGICAL UNIT
- AH = 03h subfn 2A00h
- DS:DX -> control block (see #2306)
- Return: control block updated
-
- Format of APPC/PC "Change Logical Unit" control block:
- Offset Size Description (Table 2306)
- 00h 12 BYTEs reserved
- 0Ch WORD 2A00h (verb "Change Logical Unit")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h WORD 00h
- 1Ah 8 BYTEs (big-endian) logical unit ID
- 22h DWORD pointer to CREATE_TP_EXIT routine
- 00000000h queue ALLOCATEs
- FFFFFFFFh reject incoming ALLOCATEs
- 26h DWORD 00000000h
- 2Ah DWORD pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors
- 2Eh DWORD 00000000h
- 32h BYTE maximum TPs
- 33h BYTE 00h stop QUEUE_ALLOCATEs
- 01h resume QUEUE_ALLOCATEs
- 34h DWORD pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit
- 38h DWORD 00000000h
- --------N-6804-------------------------------
- INT 68 - APPC/PC - TRANSACTION PROCESSING
- AH = 04h
- DS:DX -> control block (see #2307)
- Return: control block updated
-
- Format of APPC/PC control block:
- Offset Size Description (Table 2307)
- 00h 12 BYTEs reserved
- 0Ch WORD verb (action)
- 2500h TP_ENDED
- 2900h TP_VALID
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h WORD 00h
- 1Ah 8 BYTEs (big-endian) TP_ID
- 22h DWORD -> CREATE_TP record (only if verb = 2900h)
- --------N-6805-------------------------------
- INT 68 - APPC/PC - TRANSFER MESSAGE DATA
- AH = 05h
- DS:DX -> control block (see #2308)
- Return: control block updated
-
- Format of APPC/PC "Transfer Message Data" control block:
- Offset Size Description (Table 2308)
- 00h 12 BYTEs reserved
- 0Ch WORD 1C00h (verb "Transfer Message Data")
- 0Eh BYTE data type
- 00h user defined
- 01h NMVT
- 02h alert subvectors
- 03h PDSTATS subvectors
- 0Fh 5 BYTEs 00h
- 14h DWORD (big-endian) return code (see #2273)
- 18h 12 BYTEs 00h
- 24h BYTE flags (see #2309)
- 25h BYTE 00h
- 26h WORD length of data
- 28h N BYTEs data
-
- Bitfields for APPC/PC message transfer flags:
- Bit(s) Description (Table 2309)
- 0 don't add correlation subvector
- 1 don't add product set ID subvector
- 2 don't do SYSLOG
- 3 don't send SSCP_PU_SESSION
- SeeAlso: #2308
- --------N-6806-------------------------------
- INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS
- AH = 06h
- DS:DX -> control block (see #2310)
- Return: control block updated
-
- Format of APPC/PC "Change Number of Sessions" control block:
- Offset Size Description (Table 2310)
- 00h 12 BYTEs reserved
- 0Ch WORD 1500h (verb "Change Number of Sessions")
- 0Eh 6 BYTEs 00h
- 14h WORD (big-endian) primary return code (see #2286)
- 16h DWORD (big-endian) secondary return code (see #2273,#2311)
- 1Ah 8 BYTEs (big-endian) logical unit ID
- 22h 8 BYTEs blanks
- 2Ah 8 BYTEs (big-endian) partner logical unit name
- 32h 8 BYTEs (big-endian) mode name
- 3Ah BYTE bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME
- bit 6: set negotiable values
- 3Bh BYTE partner logical unit mode session limit
- 3Ch BYTE minimum CONWINNERS_SOURCE
- 3Dh BYTE maximum CONWINNERS_TARGET
- 3Eh BYTE automatic activation
- 3Fh BYTE 00h
- 40h BYTE flags
- bit 7: drain target
- bit 6: drain source
- bit 5: target responsible, not source
-
- (Table 2311)
- Values for secondary return code (see also AH=01h/SF=1B00h):
- 0000h accepted
- 0001h negotiated
- 0003h bad logical unit ID
- 0004h allocation failure, no retry
- 0005h allocation failure, retry
- 0151h can't raise limits
- 0153h all modes must reset
- 0154h bad SNASVCMG limits
- 0155h minimum greater than total
- 0156h mode closed (primary return code = 1)
- CNOS mode closed (primary return code = 18h)
- 0157h bad mode name (primary return code = 1)
- CNOS bad mode name (primary return code = 18h)
- 0159h reset SNA drains
- 015Ah single not SRC response
- 015Bh bad partner logical unit
- 015Ch exceeds maximum allowed
- 015Dh change SRC drains
- 015Eh logical unit detached
- 015Fh CNOS command race reject
- --------N-6807-------------------------------
- INT 68 - APPC/PC - PASSTHROUGH
- AH = 07h
- DS:DX -> control block (format depends on application subsystem)
- Return: control block updated
- SeeAlso: AH=FFh
- ----------684300-----------------------------
- INT 68 U - ??? - INSTALLATION CHECK???
- AX = 4300h
- Return: AX = F386h if ???
- ???
- Note: called by Novell DOS 7.0 EMM386.EXE
- SeeAlso: AX=4400h,INT 41/AX=004Fh
- ----------684400-----------------------------
- INT 68 U - ???
- AX = 4400h
- BX = ???
- CX = ???
- DX = ???
- DS:SI = real-mode address of protected-mode GDT
- ES:DI = real-mode address of protected-mode IDT
- Return: ???
- Note: called by Novell DOS 7.0 EMM386.EXE if AX=4300h returns AX=F386h
- SeeAlso: AX=4300h
- --------W-6847-------------------------------
- INT 68 - MS Windows debugging kernel - OUTPUT STRING
- AH = 47h
- ES:SI -> string
- Notes: output a string (to inform a debugger of some events)
- KERNEL outputs "Windows Kernel Entry\r\n" on startup
- SeeAlso: INT 41/AX=0012h
- --------N-68FA-------------------------------
- INT 68 - APPC/PC - ENABLE/DISABLE APPC
- AH = FAh
- AL bit 0 = new state (0 enable, 1 disable)
- SeeAlso: AH=FDh,INT 68"Novell"
- --------N-68FB-------------------------------
- INT 68 - APPC/PC - CONVERT
- AH = FBh
- DS:DX -> control block (see #2312)
- Return: control block updated
-
- Format of APPC/PC "CONVERT" control block:
- Offset Size Description (Table 2312)
- 00h 12 BYTEs reserved
- 0Ch WORD 1A00h (verb "CONVERT")
- 0Eh 6 BYTEs 00h
- 14h DWORD (big-endian) return code
- 18h BYTE conversion
- 00h ASCII to EBCDIC
- 01h EBCDIC to ASCII
- 19h BYTE character set
- 00h AE
- 01h A
- 02h G
- 1Ah WORD length of string to convert
- 1Ch DWORD pointer to source
- 20h DWORD pointer to target
- --------N-68FC-------------------------------
- INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING
- AH = FCh
- AL = new state
- 00h disable tracing
- 01h enable tracing
- DX = number of bytes to keep (0=all)
- SeeAlso: AH=FDh,AH=FEh
- --------N-68FD-------------------------------
- INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING
- AH = FDh
- AL = new tracing state (00h disabled, 01h enabled)
- SeeAlso: AH=FAh,AH=FCh,AH=FEh
- --------N-68FE-------------------------------
- INT 68 - APPC/PC - SET TRACE DESTINATION
- AH = FEh
- AL = trace destinations (see #2313)
- DS:DX -> trace stats record if AL bit 0 set (see #2314)
- SeeAlso: AH=FCh,AH=FDh
-
- Bitfields for trace destinations:
- Bit(s) Description (Table 2313)
- 0 storage (DS:DX -> trace stats record)
- 1 display
- 2 file (trace written to file OUTPUT.PC)
- 3 printer
-
- Format of APPC/PC Trace Statistics Record:
- Offset Size Description (Table 2314)
- 00h DWORD pointer to storage trace buffer
- 04h WORD max number of 80-byte records in trace
- 06h WORD (high-order byte first!) current record number (must init to 0)
- 08h DWORD (high-order byte first!) number of records written (init to 0)
- 0Ch DWORD reserved
- Note: do not move record while trace is active
- --------N-68FF-------------------------------
- INT 68 - APPC/PC - SET PASSTHROUGH
- AH = FFh
- DS:DX -> passthrough exit routine
- SeeAlso: AH=07h,INT 68"Novell"
- --------b-69---------------------------------
- INT 69 - Zenith AT BIOS - ???
- Note: called by INT 09 handler
- --------h-69---------------------------------
- INT 69 C - HP Vectra AT - IRQ17 - KEYBOARD OUTPUT-BUFFER-FULL SERVICE ROUTINE
- SeeAlso: INT 09"IRQ1",INT 68"HP Vectra",INT 6A"HP Vectra"
- --------N-690100-----------------------------
- INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
- AX = 0100h
- Return: AL = FFh if present
- SeeAlso: AX=010Fh
- --------N-690101-----------------------------
- INT 69 - DECnet DOS CTERM - SEND BYTE
- AX = 0101h
- BL = character
- DX = session handle
- Return: AH >= 80h on error
- SeeAlso: AX=0102h
- --------N-690102-----------------------------
- INT 69 - DECnet DOS CTERM - READ BYTE
- AX = 0102h
- DX = session handle
- Return: AH >= 80h on error
- AH < 80h if successful
- AL = character
- SeeAlso: AX=0101h
- --------N-690103-----------------------------
- INT 69 - DECnet DOS CTERM - STATUS
- AX = 0103h
- DX = session handle
- Return: AH status flags (see #2315)
- AL = reason code if DECnet error (see #2316)
- SeeAlso: AX=0104h
-
- Bitfields for DECnet DOS CTERM status flags:
- Bit(s) Description (Table 2315)
- 7 session has been aborted
- 6 DECnet error
- 1 trace data available
- 0 receive data available
-
- (Table 2316)
- Values for reason code:
- 00h normal disconnect
- 01h unknown message from host
- 02h protocol violation from host
- 03h could not process the initiate message
- 04h error receiving message from host
- 05h error sending message to host
- 06h error checking for message from host
- 07h remote system does not support CTERM
- 08h remote system does not support correct protocol version
- 09h did not receive BIND message from host
- 0Ah could not send BIND message to host
- 0Bh no more sessions available
- 0Ch session does not exist
- 0Dh not enough memory to complete operation
- 0Eh connection has broken
- Index: error codes;DECnet DOS CTERM|DECnet DOS CTERM;error codes
- --------N-690104-----------------------------
- INT 69 - DECnet DOS CTERM - DECnet STATUS
- AX = 0104h
- DX = session handle
- Return: AX = reason code (see #2316)
- Note: use this call when AX=0103h returns a DECnet error
- SeeAlso: AX=0103h
- --------N-690105-----------------------------
- INT 69 - DECnet DOS CTERM - OPEN SESSION
- AX = 0105h
- DS:BX -> ASCIZ node name
- ES:DX -> buffer for session control block (see #2332 at INT 6A/AH=D0h)
- Return: AX <= 0 on error
- AX > 0 session handle
- SeeAlso: AX=0103h,AX=0106h,AX=010Ah
- --------N-690106-----------------------------
- INT 69 - DECnet DOS CTERM - CLOSE SESSION
- AX = 0106h
- DX = session handle
- Return: AH = status
- 00h good close
- other error code (see #2316)
- SeeAlso: AX=0103h,AX=0105h
- --------N-69010A-----------------------------
- INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
- AX = 010Ah
- Return: AX = length of session control block in bytes
- SeeAlso: AX=0105h
- --------N-69010B-----------------------------
- INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
- AX = 010Bh
- DX = session handle
- Return: AX > 0 DECnet socket for the session
- AX = 0 no match for handle
- --------N-69010F-----------------------------
- INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
- AX = 010Fh
- Return: AH = status
- 00h successful uninstall
- other error code (see #2316)
- Note: CTERM must have been the last TSR loaded in order to deinstall it
- SeeAlso: AX=0100h
- Index: uninstall;DECnet DOS CTERM
- --------N-690A-------------------------------
- INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER
- AH = 0Ah
- AL = function number (see #2317)
- ES:BX -> Datalink Communication Block (see #2319)
- Return: AX = status (see #2318)
- SeeAlso: INT 6D"DECnet"
-
- (Table 2317)
- Values for DECnet DOS Data Link Layer function:
- 00h initialize
- 01h open portal
- 02h close portal
- 03h enable multicast address
- 04h disable multicast address
- 05h transmit
- 06h request transmit buffer
- 07h deallocate transmit buffer
- 08h read channel status
- 09h read datalink portal list
- 0Ah read information about a datalink portal
- 0Bh read and/or clear counters
- 0Ch request to boot from a network server
- 0Dh enable Ethernet channel
- 0Eh disable Ethernet channel
- 0Fh start MOP/send a System ID message
- 10h stop MOP
- 11h get DECPARM
- 12h set DECPARM
- 13h external loopback
-
- (Table 2318)
- Values for DECnet DOS Data Link Layer status:
- 00h successful
- 01h hardware failed to initialize
- 02h channel state was not off (must be off to execute that command)
- 03h channel state is off (must be on to execute that command)
- 04h address not set
- 05h hardware missing
- 06h buffer too small
- 07h no more buffers available
- 08h no more resources available
- 09h promiscuous receiver active
- 0Ah non exclusive
- 0Bh unrecognized portal
- 0Ch protocol type in use
- 0Dh not a valid Multicast address
- 0Eh outstanding calls
- 0Fh hardware doesn't support receiving bad frames
- 10h none outstanding
- 11h no events
- 12h broken
- 13h buffer quota exceeded
- 14h already initialized
- 15h loopback failure
- Index: error codes;DECnet DOS|DECnet DOS;error codes
-
- Format of Datalink Communication Block:
- Offset Size Description (Table 2319)
- 00h WORD portal ID
- 02h 6 BYTEs source address
- 08h 6 BYTEs destination address
- 0Eh DWORD buffer pointer
- 12h WORD buffer length
- 14h WORD operation
- 16h BYTE pad flag (used on open)
- 00h no pad
- 01h pad
- 17h BYTE mode flag (used on open)
- 00h 802.3
- 01h Ethernet
- 02h promiscuous
- 18h DWORD line status change function
- 1Ch DWORD received data function
- 20h DWORD transmitted data function
- 24h BYTE maximum outstanding transmits/receives
- 25h 2 BYTEs protocol type
- 27h WORD buffers lost
- --------N-694001-----------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - ???
- AX = 4001h
- Return: CF clear
- AX = 0000h
- ES:SI -> ???
- Range: INT 60 to INT 7F, selected by configuration
- Note: the signature "SYSV" immediately before the interrupt handler serves
- as the installation check
- SeeAlso: AX=4002h
- Index: installation check;10NET SYSSVC
- --------N-694002-----------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - ???
- AX = 4002h
- ???
- Return: ???
- Range: INT 60 to INT 7F, selected by configuration
- Note: the signature "SYSV" immediately before the interrupt handler serves
- as the installation check
- --------N-694101-----------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - ???
- AX = 4101h
- Return: CF clear
- ES:SI -> ???
- Range: INT 60 to INT 7F, selected by configuration
- SeeAlso: AX=4102h,AX=4103h,AX=4104h
- --------N-694102-----------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - ???
- AX = 4102h
- ???
- Return: ???
- --------N-694103-----------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - ???
- AX = 4103h
- ???
- Return: ???
- --------N-694104-----------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - ???
- AX = 4104h
- ???
- Return: ???
- --------N-6942-------------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - ???
- AH = 42h
- AL = function (01h-14h)
- ???
- Return: ???
- Range: INT 60 to INT 7F, selected by configuration
- --------N-6943-------------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - ???
- AH = 43h
- AL = function (01h-05h)
- ???
- Return: ???
- --------N-6944-------------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - ???
- AH = 44h
- AL = function (01h-03h)
- ???
- Return: ???
- Range: INT 60 to INT 7F, selected by configuration
- --------N-6949-------------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - BUG
- AH = 49h
- Note: due to a fencepost error, this function branches to hyperspace
- SeeAlso: AX=4001h,AH=FFh
- --------G-696996-----------------------------
- INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER
- AX = 6996h
- DS:DX -> interrupt handler or 0000h:0000h to disable
- Return: AX = 9669h
- Program: ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits
- a program to provide hardware interrupt handlers even while being
- debugged with a debugger that swaps interrupt vectors during
- debugging.
- Note: the interrupt vector which is to be reflected is set at installation
- time and cannot be changed
- --------N-69FF-------------------------------
- INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR
- AH = FFh
- Return: never???
- Desc: displays "System Error" message and register dump, then halts system
- Range: INT 60 to INT 7F, selected by configuration
- Notes: the signature "SYSV" immediately before the interrupt handler serves
- as the installation check
- SeeAlso: AX=4001h,AH=49h
- --------U-6A---------------------------------
- INT 6A - OPTHELP.COM
- Program: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
- assembler
- Range: INT 60h to INT 7Fh, selected by configuration
- --------N-6A---------------------------------
- INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM
- Note: the installation check consists of testing for a signature area
- immediately preceding the interrupt handler (see #2320)
- SeeAlso: AH=01h/DH=FFh,INT 6B"DECnet",INT 6D"DECnet"
- Index: installation check;DECnet DOS Local Area Transport
-
- Format of DECnet DOS signature area:
- Offset Size Description (Table 2320)
- -5 BYTE major version number
- -4 BYTE minor version number
- -3 3 BYTEs signature (ASCII "LAT")
- --------h-6A---------------------------------
- INT 6A C - HP Vectra AT - IRQ18 - RESERVED HARDWARE INTERRUPT
- SeeAlso: INT 0A"IRQ0",INT 69"HP Vectra",INT 6B"HP Vectra"
- --------N-6A0000-----------------------------
- INT 6A U - Super-TCP DOS TSR Kernel v3.57 - INSTALLATION CHECK
- AX = 0000h
- Return: AX = 4357h ('CW')
- Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
- Note: an alternate installation check is to test for the ASCIZ signature
- "FTC Super-TCP" three bytes past the interrupt handler
- SeeAlso: AX=0001h,AX=0002h,AX=000Fh,AX=0010h,INT 21/AH=3Fh"BW-TCP"
- SeeAlso: INT 61"PCTCP",INT 62/AH=00h"ETHDEV"
- --------N-6A0001-----------------------------
- INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
- AX = 0001h
- BH = function number
- 01h ???
- DS:SI -> ??? 24-byte record1 (see #2322)
- ES:DI -> buffer containing ???
- 02h ???
- DS:SI -> ??? 18-byte record2 (see #2323)
- ES:DI -> buffer containing ???
- 04h ???
- BL = subfunction
- 01h
- DS:SI -> ??? 28-byte record3 (see #2324)
- ES:DI -> buffer containing ???
- 02h
- DS:SI -> ??? 28-byte record3 (see #2324)
- ES:DI -> buffer containing ???
- 03h
- DS:SI -> ??? 28-byte record3 (see #2324)
- else Return: AX = 0005h
- 05h ???
- DS:SI -> ??? 20-byte record4 (see #2325)
- ES:DI -> buffer containing ???
- 06h ???
- BL = subfunction
- 01h
- DS:SI -> ??? 40-byte record5 (see #2326)
- 02h
- DS:SI -> ??? 20-byte record6 (see #2327)
- ES:DI -> ???
- 03h
- DS:SI -> ??? 20-byte record6 (see #2327)
- 04h
- DS:SI -> ??? 46-byte record7 (see #2328)
- else Return: AX = 0005h
- 11h ???
- DS:SI -> ??? 28-byte record8 (see #2329)
- ES:DI -> ???
- Return: AX = function status (see #2321)
- SeeAlso: AX=0000h
-
- (Table 2321)
- Values for Super-TCP function status:
- 0000h successful
- 0005h unsupported function
- 000Ah out of memory
-
- Format of record1:
- Offset Size Description (Table 2322)
- 00h 4 BYTEs ???
- 04h WORD size of ES:DI buffer
- 06h 18 BYTEs ???
-
- Format of record2:
- Offset Size Description (Table 2323)
- 00h 4 BYTEs ???
- 04h WORD size of ES:DI buffer
- 06h 12 BYTEs ???
-
- Format of record3:
- Offset Size Description (Table 2324)
- 00h 2 BYTEs ???
- 02h WORD ???
- 04h WORD size of ES:DI buffer
- 06h WORD ???
- 08h WORD operation number (for function 0401h)
- 0Ah DWORD -> ???
- 0Eh WORD (ret) ???
- 10h 12 BYTEs ???
-
- Format of record4:
- Offset Size Description (Table 2325)
- 00h 4 BYTEs ???
- 04h WORD size of ES:DI buffer
- 06h 14 BYTEs ???
-
- Format of record5:
- Offset Size Description (Table 2326)
- 00h BYTE operation??? (00h-07h)
- 01h BYTE ???
- 02h WORD (ret) ???
- 04h DWORD -> ???
- 08h 4 BYTEs ???
- 0Ch DWORD -> ??? or 0000h:0000h
- 10h 16 BYTEs ???
- 20h DWORD ???
- 24h 4 BYTEs ???
-
- Format of record6:
- Offset Size Description (Table 2327)
- 00h 4 BYTEs ???
- 04h WORD size of ES:DI buffer
- 06h 14 BYTEs ???
-
- Format of record7:
- Offset Size Description (Table 2328)
- 00h WORD ???
- 02h WORD ???
- 04h WORD ???
- 06h 40 BYTEs ???
-
- Format of record8:
- Offset Size Description (Table 2329)
- 00h 4 BYTEs ???
- 04h WORD size of ES:DI buffer
- 06h 6 BYTEs ???
- 0Ch WORD (ret) ???
- 0Eh WORD operation??? (01h-03h)
- 10h 12 BYTEs ???
- --------N-6A0002-----------------------------
- INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
- AX = 0002h
- BX = ??? (zero/nonzero)
- CX = ??? identifier (see AX=0004h)
- DS:SI -> 40-byte buffer for ??? or 0000h:0000h
- ES:DI -> buffer for ??? or 0000h:0000h
- Return: AX = 0000h (successful) ???
- BL = ???
- BH = ???
- CX = ???
- DX = ???
- --------N-6A0003-----------------------------
- INT 6A U - Super-TCP DOS TSR Kernel v3.57 - GET ??? DATA AREA
- AX = 0003h
- Return: CX:DX -> data area (see #2330)
-
- Format of Super-TCP data area:
- Offset Size Description (Table 2330)
- 00h 2 BYTEs ???
- 02h DWORD original INT 6A vector
- 06h 2 BYTEs ???
- 08h 96 BYTEs array of 16 6-byte ???
- 68h WORD number of elements of above array in use
- 6Ah WORD ???
- ???
- --------N-6A0004-----------------------------
- INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ALLOCATE ???
- AX = 0004h
- CX = size in ???
- Return: AX = 0000h (successful)
- CX = DX = ???
- SeeAlso: AX=0005h,AX=000Fh
- --------N-6A0005-----------------------------
- INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ???
- AX = 0005h
- CX = ??? identifier (from AX=0004h)
- Return: AX = status (0000h successful, FFFFh failed)
- SeeAlso: AX=0004h,AX=000Fh
- --------N-6A000F-----------------------------
- INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ALL ???
- AX = 000Fh
- Return: AX = 0000h (successful)
- SeeAlso: AX=0000h,AX=0004h,AX=0005h
- --------N-6A0010-----------------------------
- INT 6A U - Super-TCP DOS TSR Kernel v3.57 - UNINSTALL
- AX = 0010h
- Return: AX = status
- 0000h successful
- 0002h can't uninstall, interrupt vector hooked by another program
- Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
- Note: if AX is not one of the values listed here on entry, Super-TCP
- returns AX=FFFEh
- SeeAlso: AX=0000h
- --------N-6A01--DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
- AH = 01h
- DH = FFh
- AL = character
- DL = handle
- Return: AH >= 80h on error
- SeeAlso: AH=02h
- --------N-6A02--DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
- AH = 02h
- DH = FFh
- DL = handle
- Return: AH < 80h if successful
- AL = character
- AH >= 80h on error
- SeeAlso: AH=01h
- --------N-6A03--DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
- AH = 03h
- DH = FFh
- DL = handle
- Return: AH = status flags (see #2331)
-
- Bitfields for DECnet DOS LAT status flags:
- Bit(s) Description (Table 2331)
- 5 transmit buffer empty
- 3 session in start state
- 2 session not active
- 1 unable to queue transmit data
- 0 receive data available
- --------N-6AD0--DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
- AH = D0h
- DH = FFh
- AL = password flag
- FFh no password
- 0Fh password at ES:DI
- ES:BX -> LAT session control block (see #2332)
- ES:DI -> 16-byte blank-padded password (optional)
- Return: AH = 00h success
- DL = handle
- SeeAlso: AX=D000h
-
- Format of LAT Session Control Block:
- Offset Size Description (Table 2332)
- 00h 18 BYTEs service name
- 12h 18 BYTEs node name (future use)
- 24h 18 BYTEs port name (future use)
- 36h DWORD -> session stopped post routine
- 3Ah DWORD -> service table overflow post routine
- 3Eh DWORD -> transmit post routine
- 42h DWORD -> receive post routine
- 46h WORD session status
- 04h circuit failure
- 08h stop slot received
- ---LAT v???---
- 48h WORD slot state (LAT driver use)
- 4Ah WORD local credits (LAT driver use)
- 4Ch DWORD -> VCB (LAT driver use)
- 50h WORD backward slot (LAT driver use)
- 52h WORD forward slot (LAT driver use)
- 54h WORD remote slot ID (LAT driver use)
- 56h WORD local slot ID (LAT driver use)
- 58h WORD slot byte count (LAT driver use)
- 5Ah BYTE remote credits (LAT driver use)
- 5Bh 255 BYTEs transmitted data slot
- 15Ah BYTE number of receive data slots (4 recommended)
- 15Bh BYTE number of occupied slots
- 15Ch BYTE index of next receive slot to use
- 15Dh BYTE index of current receive slot
- 15Eh WORD pointer to first received character
- 160h N WORDs pointers to receive slots (buffers); each is 259 bytes
- 259N BYTEs buffers
- Note: set post routines to 0000h:0000h if polled operation will be used
- ---LAT v4.1.17---
- 48h WORD session state (LAT driver use)
- 4Ah BYTE local credits (LAT driver use)
- 4Bh DWORD -> VCB (LAT driver use)
- 4Fh WORD backward slot (LAT driver use)
- 51h WORD forward slot (LAT driver use)
- 53h BYTE remote slot ID (LAT driver use)
- 54h BYTE local slot ID (LAT driver use)
- 55h BYTE slot byte count (LAT driver use)
- 56h BYTE remote credits (LAT driver use)
- 57h 255 BYTEs transmitted data slot
- 156h BYTE number of receive data slots (4 recommended)
- 157h BYTE number of occupied slots
- 158h BYTE index of next receive slot to use
- 159h BYTE index of current receive slot
- 15Ah WORD pointer to first received character
- 15Ch N WORDs pointers to receive slots (buffers); each is 259 bytes
- 259N BYTEs buffers
- Note: set post routines to 0000h:0000h if polled operation will be used
- --------N-6AD000DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
- AX = D000h
- DH = FFh
- DL = handle
- Return: AX = status (see #2333)
- SeeAlso: AH=D0h
-
- (Table 2333)
- Values for DECnet DOS LAT function status:
- 0000h successful
- 0001h no such session
- 0002h session not running, try again later
- --------N-6AD100DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
- AX = D100h
- DH = FFh
- DL = handle
- Return: AX = 0000h if successful
- AH bit 7 set if unable to send break
- --------N-6AD300DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
- AX = D300h
- DH = FFh
- SeeAlso: AX=D400h
- --------N-6AD400DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
- AX = D400h
- DH = FFh
- CX = buffer size
- ES:BX -> buffer for LAT counters
- Return: AX = status
- 0000h counters copied into buffer
- FFFFh buffer too small
- SeeAlso: AX=D300h
- --------N-6AD500DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
- AX = D500h
- DH = FFh
- ES:BX -> 17-byte buffer for name
- Return: AH = 00h if successful
- ES:BX buffer filled
- AX = FFFFh if end of table or no name available
- Notes: use this function to get the names of the hosts on the network
- successive calls are necessary to get all names
- SeeAlso: AX=D600h
- --------N-6AD600DHFF-------------------------
- INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
- AX = D600h
- DH = FFh
- Return: AX = number of service table entries
- BX = status
- 0000h service table has not overflowed
- FFFFh service table has overflowed
- SeeAlso: AX=D500h
- --------N-6B---------------------------------
- INT 6B - DECnet DOS - PORT DRIVER
- Note: the installation check consists of testing for a signature area
- (see #2334) immediately preceding the interrupt handler
- SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
- Index: installation check;DECnet DOS Port Driver
-
- Format of DECnet DOS signature area:
- Offset Size Description (Table 2334)
- -5 BYTE major version number
- -4 BYTE minor version number
- -3 3 BYTEs signature (ASCII "PDV")
- --------v-6B---------------------------------
- INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
- SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
- --------h-6B---------------------------------
- INT 6B C - HP Vectra AT - IRQ19 - RESERVED HARDWARE INTERRUPT
- SeeAlso: INT 0B"IRQ0",INT 6A"HP Vectra",INT 6C"HP Vectra"
- --------S-6B0000-----------------------------
- INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
- AX = 0000h
- CX = length
- ES:BX -> buffer
- Return: CX = number of bytes written
- Program: NASI is Novell's NetWare Asynchronous Services Interface (purchased
- from Network Products Corp, who call it NCSI) which runs on
- workstations; NACS is the NetWare Asynchronous Communications
- Services module which runs on servers
- Notes: the installation check consists of testing for the signature string
- "NCSI" three bytes past the interrupt handler; see also AH=02h.
- As of version 3.0, Novell's NASI can be distinguished from NPC's
- NCSI by the presence of an 'A' immediately following the signature
- this function is also supported by TelAPI, NPC NCSI, and Connection
- Manager CLIENT.EXE; for TelAPI, nonzero values in AL specify a
- connection ID
- Connection Manager returns CF set/AL=FFh if called while an INT 6B
- call is already in progress
- SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3h
- --------S-6B0100-----------------------------
- INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
- AX = 0100h
- CX = length of buffer
- ES:BX -> buffer
- Return: CX = number of bytes read
- Note: also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
- AL specify a connection ID
- SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02h
- --------S-6B02-------------------------------
- INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
- AH = 02h
- AL nonzero
- Return: AL = 00h if present and OK
- Note: this function is also supported by TelAPI and NPC NCSI
- SeeAlso: AX=0700h
- --------S-6B0600-----------------------------
- INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
- AX = 0600h
- CX = command
- 02h send break
- 04h disconnect
- 06h hold
- Return: CF clear if successful
- AL = 00h
- CF set on error
- AX < 0
- Note: this function is also supported by TelAPI and NPC NCSI
- --------S-6B0700-----------------------------
- INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
- AX = 0700h
- Return: CH <> 00h if connection active
- Notes: this function is also supported by TelAPI and NPC NCSI
- Novell TelAPI returns CX=FF01h and CF clear
- SeeAlso: AH=02h,AH=10h
- --------N-6B08-------------------------------
- INT 6B - TelAPI - CHECK FOR BREAK SIGNAL
- AH = 08h
- AL = circuit number
- Return: CF clear if no breaks
- AL = 00h
- CX = 0000h
- CF set if one or more breaks received
- Note: this function also clears ??? flag
- SeeAlso: INT 14/AX=FF00h
- --------S-6B10-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
- AH = 10h
- AL = connection ID (Novell TELAPI.EXE)
- CX = ???
- Return: CF clear if successful
- CL = ???
- CH = ???
- CF set on error
- ???
- Notes: this function is also supported by TelAPI
- when shelled out to an external protocol from Novell NASI, the circuit
- whose status indicates that it is connected is the currently active
- circuit
- SeeAlso: AX=0700h,AH=12h,AH=1Fh
- --------S-6B11--DX0001-----------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
- AH = 11h
- DX = 0001h
- AL = 00h
- ES:BX -> service name string (8 characters, blank-padded)
- Return: CF clear if successful
- AL = virtual circuit number allocated (01h for Novell TELAPI.EXE)
- CL = ??? (01h for Novell TELAPI.EXE)
- CH = ??? (01h for Novell TELAPI.EXE)
- CF set on error
- ???
- Note: this function is also supported by TelAPI
- SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
- --------S-6B12-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
- AH = 12h
- AL = virtual circuit number
- CL = ???
- ES:BX -> ???
- Return: ???
- Note: this function is also supported by TelAPI
- SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
- --------S-6B13-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
- AH = 13h
- AL = virtual circuit number
- CL = direction (00h get, nonzero set)
- ES:BX -> buffer for/containing service name
- Return: ???
- Note: this function is also supported by TelAPI
- SeeAlso: AH=14h,AH=15h
- --------S-6B14-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
- AH = 14h
- AL = virtual circuit number
- ES:BX -> buffer for/containing service address
- Return: ???
- Note: this function is also supported by TelAPI, which only supports
- retrieving the address
- SeeAlso: AH=13h,AH=15h,AH=21h
- --------S-6B15-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
- AH = 15h
- AL = virtual circuit number
- CL = direction (00h get, nonzero set)
- ES:BX -> buffer for/containing virtual circuit config (see #2335)
- Return: ES:BX buffer filled
- Note: this function is also supported by TelAPI
- SeeAlso: AH=13h"NCSI",AH=14h"NCSI"
-
- Format of virtual circuit configuration:
- Offset Size Description (Table 2335)
- 00h WORD buffer length
- 02h WORD port ID
- 04h WORD receive rate
- 06h WORD receive word length
- 08h WORD receive stop bits
- 0Ah WORD receive parity
- 0Ch WORD transmit rate
- 0Eh WORD transmit word length
- 10h WORD transmit stop bits
- 12h WORD transmit parity
- 14h WORD DTR
- 16h WORD RTS
- --------S-6B16-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
- AH = 16h
- AL = virtual circuit number
- CL = ??? switch (00h, ???)
- Return: CF clear if successful
- AL = virtual circuit number
- CF set on error
- ???
- Note: this function is also supported by TelAPI, which always returns CF
- clear and AL=00h
- SeeAlso: AH=11h,AH=12h,AH=17h
- --------S-6B17-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
- AH = 17h
- AL = virtual circuit number
- Return: CF clear if successful
- CF set on error
- ???
- Note: this function is also supported by TelAPI, which always returns CF
- clear and AL=00h
- SeeAlso: AH=11h,AH=16h
- --------S-6B18-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
- AH = 18h
- AL = virtual circuit number
- CX = number of characters to send
- ES:BX -> buffer containing characters to be sent
- Return: CF clear if successful
- CF set on error
- ???
- Note: this function is also supported by TelAPI, which always returns CF
- clear and AL=30h
- SeeAlso: AX=0000h,AH=12h,AH=19h
- --------S-6B19-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
- AH = 19h
- AL = virtual circuit number
- CX = number of characters to read
- ES:BX -> buffer for received characters
- Return: CX = 0000h if failed
- CX = nonzero (possibly number of characters received) if successful
- Note: this function is also supported by TelAPI
- SeeAlso: AX=0100h,AH=12h,AH=18h
- --------S-6B1A-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
- AH = 1Ah
- ???
- Return: ???
- SeeAlso: AH=12h,AH=1Bh
- --------S-6B1B-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
- AH = 1Bh
- ???
- Return: ???
- SeeAlso: AH=12h,AH=1Ah
- --------S-6B1C-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - CLEAR RECEIVE BUFFER
- AH = 1Ch
- AL = circuit number
- Return: nothing
- SeeAlso: AH=1Dh"NCSI",AH=1Eh"NCSI"
- --------S-6B1D-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
- AH = 1Dh
- ???
- Return: ???
- SeeAlso: AH=1Ch,AH=1Eh
- --------S-6B1E-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
- AH = 1Eh
- ???
- Return: ???
- SeeAlso: AH=1Ch,AH=1Dh
- --------S-6B1F-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
- AH = 1Fh
- ???
- Return: ???
- SeeAlso: AH=10h,AH=12h
- --------S-6B20-------------------------------
- INT 6B - Connection Manager CLIENT.EXE - ???
- AH = 20h
- ???
- Return: ???
- Program: Connection Manager by Softwarehouse Corp. permits the sharing of
- serial ports over an IPX or NetBIOS-based network
- Note: CLIENT.EXE returns CF set/AL=F9h if AH is not 00h to 21h on entry
- --------S-6B21-------------------------------
- INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
- AH = 21h
- AL = virtual circuit number
- CL = ??? (00h or 01h)
- ES:BX -> buffer for service name structure (see #2336)
- Return: CF clear if successful
- ES:BX buffer filled
- CF set on error
- Notes: a program should call this function after allocating a virtual circuit
- and check that the general name matches the requested service
- prior to version 3.0, Novell's NASI returned the first available port;
- v3.0+ returns the first port found--check the returned status to
- determine whether the port is available
- SeeAlso: AH=14h"NCSI"
-
- Format of NCSI service name structure:
- Offset Size Description (Table 2336)
- 00h WORD buffer length
- 02h 8 BYTEs service name
- 0Ah 8 BYTEs general name
- 12h 8 BYTEs specific name
- 1Ah 4 BYTEs ???
- ---Novell NASI v3.0+ ---
- 1Eh BYTE port number
- 1Fh BYTE port status
- 00h idle (available)
- 01h allocated (available)
- 02h connected
- 03h on hold
- ----------6B6B-------------------------------
- INT 6B - Tandy SCHOOLMATE PLUS - API
- AH = 6Bh
- AL = E0h to FFh
- Note: details not yet available
- ----------6C---------------------------------
- INT 6C - system resume vector (CONVERTIBLE)
- ----------6C---------------------------------
- INT 6C - DOS 3.2 Realtime Clock update
- --------N-6C---------------------------------
- INT 6C - DECnet DOS network scheduler
- Notes: the installation check consists of testing for a signature area
- immediately preceding the interrupt handler (see #2337)
- also supported by DEC Pathworks for DOS
- SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
- Index: installation check;DECnet DOS scheduler
-
- Format of DECnet DOS signature area:
- Offset Size Description (Table 2337)
- -5 BYTE major version number
- -4 BYTE minor version number
- -3 3 BYTEs signature (ASCII "SCH")
- --------h-6C---------------------------------
- INT 6C C - HP Vectra AT - IRQ20 - HP-HIL CONTROLLER INTERRUPT
- SeeAlso: INT 0C"IRQ0",INT 6B"HP Vectra",INT 6D"HP Vectra"
- --------V-6D---------------------------------
- INT 6D - VIDEO - many VGA - VIDEO BIOS ENTRY POINT
- Desc: points at the original INT 10 entry point set up by the VGA BIOS
- Note: used by IBM, ATI VGA Wonder, Paradise, Video7, and NCR, and many others
- SeeAlso: INT 10
- --------V-6D---------------------------------
- INT 6D - Trident SVGA - VIDEO BIOS HANDLER
- Note: the BIOS INT 10 handler on various Trident VGA cards consists merely
- of a call to INT 6D followed by an IRET.
- --------N-6D---------------------------------
- INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
- AH = function
- ???
- Return: ???
- Note: the installation check consists of testing for a signature area
- immediately preceding the interrupt handler (see #2338)
- SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
- Index: installation check;DECnet DOS Data Link Layer
-
- Format of DECnet DOS signature area:
- Offset Size Description (Table 2338)
- -5 BYTE major version number
- -4 BYTE minor version number
- -3 3 BYTEs signature (ASCII "DLL")
- --------h-6D---------------------------------
- INT 6D C - HP Vectra AT - IRQ21 - RESERVED HARDWARE INTERRUPT
- SeeAlso: INT 0D"IRQ0",INT 6C"HP Vectra",INT 6E"HP Vectra"
- --------N-6E---------------------------------
- INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
- Notes: this is the main DECnet DOS access, and is described in Digital manual
- AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
- there is a signature/data area immediately prior to the interrupt
- handler which may be used as an installation check (see #2339)
- Index: installation check;DECnet DOS
-
- Format of DECnet DOS signature area:
- Offset Size Description (Table 2339)
- -5 BYTE major version number
- -4 BYTE minor version number
- -3 3 BYTEs signature (ASCII "DNP")
- --------h-6E---------------------------------
- INT 6E C - HP Vectra AT - IRQ22 - RESERVED HARDWARE INTERRUPT
- SeeAlso: INT 0E"IRQ0",INT 6D"HP Vectra",INT 6F/AH=00h"HP Vectra"
- --------!---Section--------------------------
-