Interrupt List, part 17 of 18 Copyright (c) 1989-1999,2000 Ralf Brown --------N-6B--------------------------------- INT 6B - DECnet DOS - PORT DRIVER InstallCheck: test for a signature area (see #03729) 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 03729) -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"IRQ3",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 InstallCheck: test 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 Notes: 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 = ??? ES:BX -> buffer for status (see #03730) 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 Format of NASI status: Offset Size Description (Table 03730) 00h BYTE number of allocated virtual circuits 01h BYTE reserved 02h 9 BYTEs states of emulated circuits 0-8 00h idle 01h attached Telnet session, in command state 02h attached Telnet session, connected with host 03h-06h ??? (not returned by TelAPI) Note: this description is derived from the Novell TelAPI emulation of NASI --------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 (0-8) Return: CF clear if successful AL = virtual circuit number CL = virtual circuit's state 00h idle 01h Telnet session, in command state 02h Telnet session, connected to host 03h-06h ??? (not returned by TelAPI) CF set on error AL = error code E2h invalid virtual circuit number E4h specified virtual circuit not allocated 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 #03731) 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 03731) 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 #03732) 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 03732) 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 InstallCheck: test for a signature area immediately preceding the interrupt handler (see #03733) Note: this function is 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 03733) -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"IRQ4",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 Notes: used by IBM, ATI VGA Wonder, Paradise, Video7, and NCR, and many others the Diamond Stealth64 BIOS uses this vector to store the INT 42 vector of the inactive video (see INT 10/AH=12h/BL=35h) SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh,INT 10/AH=12h/BL=10h --------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: ??? InstallCheck: test for a signature area immediately preceding the interrupt handler (see #03734) 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 03734) -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"IRQ5",INT 6C"HP Vectra",INT 6E"HP Vectra" --------V-6DBD60----------------------------- INT 6D U - Matrox Multiple Monitor Support v1.0 - ??? AX = BD60h DS:SI -> buffer containing ??? (see #03735) ??? Return: AX = 00BDh if function executed ???:SI -> 22-byte buffer (inside TSR) filled with ??? (see #03735) AX unchanged if function disabled Note: this function is a NOP if AX=BD6Fh/BL=01h was called SeeAlso: AX=BD61h,AX=BD6Fh,AX=BDFFh Format of Matrox ??? buffer: Offset Size Description (Table 03735) 00h 4 BYTEs ??? 04h WORD video mode width in pixels 06h WORD video mode height in pixels 08h BYTE ??? 09h BYTE ??? 0Ah BYTE ??? 0Bh BYTE flags bit 1: ??? bit 4: ??? (corresponds to bit 14 for AX=BD61h) bit 5: ??? (corresponds to bit 15 for AX=BD61h) 0Ch DWORD -> ??? buffer 10h WORD ??? bit 4: ??? (corresponds to bit 14 for AX=BD61h) bit 5: ??? (corresponds to bit 15 for AX=BD61h) 12h 4 BYTEs ??? SeeAlso: #03736 --------V-6DBD61----------------------------- INT 6D U - Matrox Multiple Monitor Support v1.0 - GET VIDEO MODE INFORMATION AX = BD61h BX = width in pixels (bits 13-0) bit 14: ??? bit 15: ??? CX = height in pixels Return: AL = BDh if function supported AH = status 00h successful 01h failed (resolution/flags not supported) CX:BX -> video mode data structure (see #03736) (first word is FFFFh if unsupported resolution) EAX high word cleared SeeAlso: AX=BD60h,AX=BD6Fh,AX=BDFFh Format of Matrox video mode information (VCE structure): Offset Size Description (Table 03736) 00h WORD width in pixels 02h WORD height in pixels 04h WORD ??? 06h DWORD dot clock frequency 0Ah 25 BYTEs ??? SeeAlso: #03735 --------V-6DBD6F----------------------------- INT 6D U - Matrox Multiple Monitor Support v1.0 - INSTALLATION CHECK AX = BD6Fh BL = subfunction 00h installation check 01h disable TSR 02h enable TSR (see AX=BD60h) Return: AX = 00BDh if installed SeeAlso: AX=BD60h,AX=BD61h,AX=BDFFh --------V-6DBDFF----------------------------- INT 6D U - Matrox Multiple Monitor Support v1.0 - UNHOOK INTERRUPT (UNINSTALL) AX = BDFFh Return: AX = 00BDh if supported Note: this function revectors INT 6D without checking that it points at the TSR, and does not release the memory occupied by the TSR SeeAlso: AX=BD60h,AX=BD61h,AX=BD6Fh --------N-6E--------------------------------- INT 6E - DECnet DOS - DECnet NETWORK PROCESS API InstallCheck: test for the signature/data area (see #03737) immediately prior to the interrupt handler Note: this is the main DECnet DOS access, and is described in Digital manual AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual") Index: installation check;DECnet DOS Format of DECnet DOS signature area: Offset Size Description (Table 03737) -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"IRQ6",INT 6D"HP Vectra",INT 6F/AH=00h"HP Vectra" --------N-6F--------------------------------- INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface) AX = function 0000h enter terminal mode Return: AX = status 0000h no action requested 0001h screen save 0001h reset interface and set configuration parameters DX = bitfields bits 2-0: model number bits 4-3: I/O address bits 6-5: DMA channel Return: nothing 0002h set display parameters DX = bitfields bits 1-0: OIA mode bits 4-2: monitor support Return: nothing 0003h read status Return: AX = status word (see #03738) 0004h read cursor position Return: AX = cursor position 0005h get character from device buffer DX = cursor position Return: AH = type (00h data, 01h attribute) AL = data or attribute character 0006h send character DH = type (00h ASCII, 01h extended code) DL = ASCII character or extended code Return: nothing 0007h set timeout DX = timeout in seconds Return: nothing 0008h wait for location to be modified DX = cursor position Return: AX = status (0000h modified, nonzero timeout) 0009h NOP 000Ah restore display Return: nothing 000Bh update device buffer Return: AX = cursor positoin 000Ch write string to add information area DS:DX -> string Return: nothing 000Dh maintenance operations DX = maintenance operation code Return: AX = operation status 000Eh get control program version Return: AH = release number (major version) AL = level number (minor version) 000Fh get microcode version Return: AH = release number (major version) AL = level number (minor version) 0010h save or display graphics BX = length of data buffer CX = subfunction request code DS:DX -> data buffer Return: AX = return code CX = length of PIF data 0011h perform structured field operation CX = request number DS:DX -> parameter list Return: AX = status word (see #03738) CX = error number 0012h set cursor position for direct write buffer DX = new cursor position Return: AX = status word (see #03738) 0013h write direct to buffer DL = character to be written DH = translation option Return: AX = status word (see #03738) 0014h write direct to buffer without echo DL = character to be written DH = translation option Return: AX = status word (see #03738) 0015h set direct write string length DX = string value Return: nothing 0016h write string direct to buffer DS:DX -> string Return: AX = status word (see #03738) 0017h write string direct to buffer, untranslated DS:DX -> string Return: AX = status word (see #03738) 0018h get direct-write cursor position Return: AX = cursor position 0019h convert row/column to cursor position DH = display row (1-43) DL = display column (1-132) Return: AX = cursor position 001Ah convert cursor position to row/column DX = cursor position Return: AH = display row AL = display column 001Bh find next field DX = initial cursor position Return: AX = field cursor position 001Ch find previous field DX = initial cursor position Return: AX = field cursor position 001Dh find next unprotected field DX = initial cursor position Return: AX = field cursor position 001Eh find previous unprotected field DX = initial cursor position Return: AX = field cursor position 001Fh find next protected field DX = initial cursor position Return: AX = field cursor position 0020h find previous protected field DX = initial cursor position Return: AX = field cursor position 0021h masked search forward DH = mask DL = search pattern Return: AX = cursor position or 0000h 0022h masked search backward DH = mask DL = search pattern Return: AX = cursor position or 0FFFh 0023h find field length DX = cursor position Return: AX = field length 0024h read field DS:DX -> buffer for field contents Return: AX = status word (see #03738) 0025h read screen DS:DX -> buffer for screen contents Return: AX = status word (see #03738) 0026h read buffer untranslated DX = cursor position Return: AX = buffer code CX:BX -> 3278/79 device buffer image 0027h enable/disable keyboard DL = new state of keyboard breaks (00h enabled, 01h disabled) Return: nothing 0028h select host session DL = session short name Return: AX = session information 0029h retrieve host session name AX = short name (DFT) or 0000h (not available, CUT mode) 002Ah get current device buffer size Return: AX = device buffer size CX = segment of EAB 002Bh arm modified location trigger DX = cursor position Return: AX = status (0000h not available, 0001h successful) Bitfields for PCOX status word: Bit(s) Description (Table 03738) 0,1 cursor type 2 cursor inhibited 3 display inhibited 4 feature step inhibited 5 480-character format code 6,7 unused 8-10 model number (2-5) 11 unit has been reset by controller (cleared after status returned) 12 buffer has been written into (cleared after status returned) 13 alarm has been sounded (cleared after status returned) 14-15 monitor type (01 mono, 10 color, 11 hybrid) --------N-6F00------------------------------- INT 6F - 10NET - LOGIN AH = 00h DS:DX -> login record (see #03739) Return: CL = security level AX = status (see #03740) SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR" Format of 10NET login record: Offset Size Description (Table 03739) 00h 8 BYTEs user name 08h 8 BYTEs password 10h 12 BYTEs name of SuperStation (Table 03740) Values for 10NET status: 0000h successful 01FFh "RTO_NERR" transmit interrupt lost (time out on response) 02FFh "NET_NERR" network (hardware) error 03FFh "PAS_NERR" invalid password 04FFh "LRN_NERR" local resource not available 05FFh "SRN_NERR" server resource not available 06FFh "LNM_NERR" already logged in under different name 07FFh "LSF_NERR" login security failure (node) 08FFh "NLI_NERR" not logged in 09FFh "DIVZ_NERR" position calc error 0AFFh "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write) 0BFFh "RFNC_NERR" request function not in range 0CFFh "NSFH_NERR" no more server file handle entries left 0DFFh "NFTAB_NERR" no more shared file table entries left 0EFFh "NUFH_NERR" no more user file handle entries left 0FFFh "CHAT_NERR" chat permit not on 10FFh "NSRV_NERR" not a server on request 11FFh "NOBD_NERR" no transporter board error 12FFh "STO_NERR" time out on send 13FFh "INF_NERR" item not found (spool item not on queue) 14FFh "DACS_NERR" DOS access incompatible 15FFh "RLOCK_NERR" record already locked 16FFh "IVP_NERR" invalid parameter 17FFh "RLTO_NERR" record lock time out error 18FFh "CSPL_NERR" currently spooling to named device 19FFh "DRP_NERR" dropped receive message (throttle) 1AFFh "SOPV_NERR" open sharing violation 1BFFh "NTUF_NERR" no more tuf entries left 1CFFh "NOWN_NERR" not file owner on open 1DFFh "RSEC_NERR" read security not passed 1EFFh "WSEC_NERR" write security not passed 1FFFh "GSEC_NERR" group security not passed 20FFh "SEC1_NERR" security file failure 21FFh "ACT1_NERR" activity file failure 22FFh "SPL1_NERR" spool control file failure 23FFh "NMT_NERR" device not mounted (spooling) 24FFh "RSPL_NERR" spool file has not been terminated 25FFh "DNSH_NERR" device not mounted or is not being shared 26FFh "DUP_NERR" duplicate node ID 27FFh "FNF_NERR" file not found error 28FFh "NMF_NERR" no more files 29FFh "UN_NERR" unknown internal system error 2AFFh "QCP_NERR" print queue is full or corrupted 2BFFh "IFNC_NERR" invalid function 2CFFh "IVH_NERR" invalid handle 2DFFh "TOF_NERR" too many files opened 2EFFh "PNF_NERR" path not found 2FFFh "SACT_NERR" named file is active ---10NET v5.0+ --- 30FFh "NAK_NERR" received NAK on send (destination out of buffers) 31FFh "RENT_NERR" reentrancy in driver F_SEND 32FFh "RECV_NERR" driver could not be put in receive mode 33FFh "NRLT_NERR" no more RLTAB entries left 34FFh "DIAL_NERR" function requires an unsupported dialect 35FFh "IVD_NERR" invalid device 36FFh "NALV_NERR" netname access level violated 37FFh "NPIDNF_NERR" network path not found 38FFh "SP_NERR" server is paused 39FFh "TMNM_NERR" too many remote user names 3AFFh "DUPD_NERR" duplicate network device 3BFFh "DIU_NERR" shared device in use, can't delete 3CFFh "NNWD_NERR" network name was deleted 3DFFh "NPFS_NERR" not enough space for print file 3EFFh "NNNF_NERR" network name not found (can't find the call name) 3FFFh "NB_NERR" network busy 40FFh "NDNLE_NERR" network device no longer exists 41FFh "NBCLE_NERR" NetBIOS command limit exceeded 42FFh "FINT24_NERR" Fail on INT 24h 43FFh "PEXP_NERR" password expired 44FFh "NPUP_NERR" new password error 45FFh "MAXS_NERR" maximum allowed disk space exceeded 46FFh "TDOW_NERR" time-of-day/day-of-week error SeeAlso: #03767 Index: error codes;10Net|10Net;error codes --------b-6F00------------------------------- INT 6F - HP Vectra EX-BIOS - "F_ISR" (internal) - RESPOND TO LOGICAL ISR AH = 00h BP = ID for driver (see #03741) DH = data type (see #03742) DL = physical device driver's index (driver ID / 6) BX,CX = data ES:0000h -> physical device's Describe Record (see #03749) ---keypress event data--- BH = keyboard state (only if bit 5 of DH set) (see #03743) BL = scancode (if bit 4 of DH clear) CX = number of scancodes in list (if bit 4 of DH set) ES:SI -> scancode list (if bit 4 of DH set) ---motion event data--- BX = new X position (abs device) or X increment (relative device) CX = new Y position (abs device) or Y increment (relative device) ---button event data BL = button information bits 15-8 reserved bit 7: button state (0 = down, 1 = up) bits 6-0: button number (0-7) BH = reserved Return: AH = status (see #03744) BP,DS destroyed ---if device is keyboard translator--- BL = translated scancode BH = new keyboard state (if DH bit 5 set) (see #03743) DH = new scancode type (see #03742) Notes: INT 6F corresponds to IRQ23 on the original HP Vectra AT, which is unavailable because of its use as a BIOS extension software interrupt the INT 6F handler consists of an instruction to load DS with the driver's data segment followed by an indexed far jump using BP to select the destination vector; since the interrupt handler is located immediately following the dispatch table, the HP_VECTOR_TABLE may be found by looking at offset 0000h in the INT 6F segment, and its size is equal to the offset of the interrupt handler each entry in the HP_VECTOR table consists of a DWORD for the driver's entry point address and a WORD for the driver's data segment this function is not user-callable, as it is a response to a physical event, and assumes that the caller has already handled the physical interrupt and updated the Describe Record (see #03749) to reflect the event SeeAlso: INT 6C"HP Vectra",INT 6F/AX=0200h"HP Vectra" (Table 03741) Values for HP Vectra EX-BIOS driver ID: 0000h V_SCOPY (null driver, but DS value points at system copyright string) 0006h V_DOLITTLE (null driver) 000Ch V_PNULL (null driver) 0012h V_SYSTEM 0018h reserved 001Eh V_S8259 0024h reserved 002Ah V_SINPUT 0030h reserved 0036h V_QWERTY (keyboard translator) 003Ch V_SOFTKEY (keyboard translator) 0042h V_FUNCTION (keyboard translator) 0048h V_NUMPAD (keyboard translator) 004Eh V_CCP (keyboard translator) 0054h V_SVIDEO 005Ah V_STRACK 0060h V_EVENT_TOUCH 0066h V_EVENT_TABLET 006Ch V_EVENT_POINTER 0072h reserved 0078h reserved 007Eh reserved 0084h reserved 008Ah V_CCPCUR (keyboard translator) 0090h V_RAW (keyboard translator) 0096h V_CCPNUM (keyboard translator) 009Ch V_OFF (keyboard translator) 00A2h V_CCPGID (translator: cursor control pad keys to GID data) 00A8h V_SKEY2FKEY (keyboard translator) 00AEh V_8041 00B4h V_PGID_CCP 00BAh C_LTABLET 00C0h V_LPOINTER (pointing device: mouse, etc.) 00C6h V_LTOUCH (touch screen) 00CCh V_LHPMOUSE 00D2h ??? ... 0102h ??? 0108h V_LNULL 010Eh reserved 0114h V_HPHIL 011Ah-01C2h reserved 016Eh V_SCANDOOR (scancode management chip driver) (ES/QS/RS only) 01C8h-0228h available (Table 03742) Values for HP Vectra EX-BIOS ISR data type: 00h reserved "T_KC_R0" 01h reserved "T_KC_R1" 02h ASCII data 03h reserved "T_KC_R3" 04h HP150 keyboard (ITF) scancode 05h reserved "T_KC_R5" 06h device-definable type 07h HP Vectra keyboard set 08h IBM AT scancode set 09h button data 0Ah IBM PC scancode set 0Bh Softkey keypad (F1-F8) 0Ch function key keypad (F1-F10) 0Dh HP Cursor Control Pad keypad 0Eh Qwerty keypad 0Fh Numeric keypad 1xh bit 4 set: string of CX scancode of type 0xh at ES:SI 2xh bit 5 set: BH contains current keyboard state 40h signed 8-bit relative data 41h signed 16-bit relative data 42h unsigned 8-bit absolute data 43h unsigned 16-bit absolute data 45h specially-formed data (80x25) generated by V_LTOUCH 46h specially-formed data (640x200) generated by V_LTABLET 47h specially-formed data (640x200) generated by V_LPOINTER Bitfields for HP Vectra EX-BIOS keyboard state: Bit(s) Description (Table 03743) 0 Alt pressed 1 Left Shift pressed 2 Right Shift pressed 3 Ctrl pressed 4 CapsLock active 5 NumLock active 6 Right unlabeled key pressed (some international keyboards) 7 Left unlabeled key pressed (some international keyboards) SeeAlso: #00582 (Table 03744) Values for HP Vectra EX-BIOS status: 00h successful 02h unsupported function 04h not serviced 06h done (no further processing should be performed on the ISR event) F2h device is out of paper F4h device is offline F6h no more space for more drivers F8h driver is busy FAh bad parameter FEh operation failed Note: status codes are always even; negative values (>= 80h) indicate errors while positive values indicate exceptional conditions Format of HP EX-BIOS driver header data: Offset Size Description (Table 03745) 00h WORD driver attributes (see #03746) 02h WORD string index of driver's name 04h WORD driver's default logical device vector (see #03741) 06h WORD driver's parent class (bitset) (see #03747) 08h WORD driver's child class (bitset) 0Ah WORD driver's parent vector 0Ch WORD driver's child vector 0Eh BYTE major subaddress 0Fh BYTE minor subaddress Notes: this structure is located at offset 0 in the driver's data segment, which in turn may be read from the HP_VECTOR_TABLE (refer to note in main entry) only the first WORD is required, and everything from offset 6 onward is only required if the device wishes to perform device mapping SeeAlso: #03748,#03749 Bitfields for HP EX-BIOS driver header attributes: Bit(s) Description (Table 03746) 15 this is a complete driver header 14 "ATR_DEVCFG" reserved 13 driver can be mapped with the parent vector at offset 0Ah 12 driver can be mapped with the child vector at offset 0Ch 11-9 driver type 000 reserved vector 001 free vector 010 EX-BIOS service 011 logical driver (mapped from parent to child) 100 mappable driver (cannot be last in driver chain) 101 mappable driver that is last in driver chain 110 input driver (mappable) 111 reserved 8 "ATR_STRING" reserved 7 call SF_START whenever driver is remapped 6-5 addressing requirements 00 no subaddresses required 01 requires major address be stored at offset 0Eh 10 requires minor address be stored at offset 0Fh 11 required major,minor, and mid addresses (minor in low nybble of offset 0Fh, mid address in high nybble of 0Fh) 4 driver can be shared between several parent drivers 3 driver can be shared between several child drivers 2 this driver header is in ROM 1 "ATR_YIELD" reserved 0 reserved SeeAlso: #03745,#03747 Bitfields for HP EX-BIOS driver class: Bit(s) Description (Table 03747) 15 maps F1 to F8 softkeys 14 keyboard 13 cursor pad 12 console device 11 serial output device (may be capable of limited input) 10 "CL_COMM" reserved 9 interfaces multiple resources transparent to operating system 8 serial output device filter (can be mapped between logical and physical driver to perform translations) 7 addressed block device 6 priority boot device 5 logical graphics input device 4 physical graphics input device (can map to child of another driver) 3 "CL_GID" can map to an event 2 physical touch device 1 reserved 0 class extension bit Note: special values: FFFFh maps to all other devices (V_PNULL), and 0000h maps to no other driver SeeAlso: #03745 Format of HP EX-BIOS global data area: Offset Size Description (Table 03748) 00h 20 BYTEs reserved 14h BYTE sound driver status 15h BYTE number of pending key clicks (max 4) (see AH=34h/BP=0012h) 16h BYTE current tick duration scaling factor 17h BYTE current key click volume 18h WORD current beep period (10 us increments) (see AH=3Ch/BP=0012h) 1Ah WORD current beep duration (10 us increments) 1Ch BYTE number of pending beep functions (max 4) (see AH=3Ah/BP=0012h) 1Dh BYTE reserved 1Eh WORD next unused string index number 20h ... reserved SeeAlso: #03745 Format of HP EX-BIOS Driver Describe Record: Offset Size Description (Table 03749) 00h 16 BYTEs EX-BIOS driver header data (see #03745) 10h BYTE device GID type bits 7-4: device type bits 3-0: physical device link address 11h BYTE physical device ID (see #03751) 12h WORD logical device status bits (see #03750) 14h BYTE physical device vector number (driver ID / 6) 15h BYTE maximum number of axes reported (0-2) 16h BYTE device class bits 7-4: current class bits 3-0: default class 17h BYTE number of buttons/prompts bits 7-4: number of prompts bits 3-0: number of buttons 18h BYTE reserved 19h BYTE (physical devices only) maximum output burst length 1Ah BYTE (physical devices only) number of write registers 1Bh BYTE (physical devices only) number of read registers 1Ch BYTE button transition flags (bit 0 = button0, etc.) 1Dh BYTE current button states (bit 0 = button0, etc.) 1Eh WORD device resolution 20h WORD maximum x-axis count 22h WORD maximum y-axis count 24h WORD X position data for absolute devices 26h WORD Y position data for absolute devices 28h WORD X delta for relative devices 2Ah WORD Y delta for relative devices 2Ch WORD (logical devices only) X-axis scaling accumulator (fraction of one logical unit) 2Eh WORD (logical devices only) Y-axis scaling accumulator (fraction of one logical unit) Bitfields for HP logical device status flags: Bit(s) Description (Table 03750) 15-5 reserved 4 event enabled 3 tracking enabled 2 clipping enabled 1 button error occurred 0 interrupt in progress SeeAlso: #03749 (Table 03751) Values for HP-HIL device ID: 00h-02h reserved 03h Swiss-French keyboard 04h-06h reserved 07h Canadian-English keyboard 08h-0Ah reserved 0Bh Italian keyboard 0Ch reserved 0Dh Dutch keyboard 0Eh Swedish keyboard 0Fh German keyboard 10h-12h reserved 13h Spanish keyboard 14h reserved 15h Belgian (Flemish) keyboard 16h Finnish keyboard 17h UK keyboard 18h French-Canadian keyboard 19h Swiss-German keyboard 1Ah Nerwegian keyboard 1Bh Frensh keyboard 1Ch Danish keyboard 1Dh Katakana keyboard 1Eh Latin American-Spanish keyboard 1Fh US-American keyboard 20h-2Bh reserved 2Ch-2Fh tone generator 30h-3Fh reserved 40h-5Bh reserved (character entry) 5Ch-5Fh barcode reader 60h-67h reserved (relative positions) 68h-6Bh mouse 6Ch-6Fh trackball 70h-7Fh reserved (relative positions) 80h-87h reserved (absolute positions) 88h-8Bh touchpad 8Ch-8Fh touch screen 90h-97h graphics tablet 98h-9Fh reserved (absolute positions) A0h-BFh compressed keyboard (91-93 keys) C0h-DFh extended keyboard (107-109 keys) E0h-FFh standard keyboard (85-87 keys) --------N-6F01------------------------------- INT 6F - 10NET - LOGOFF AH = 01h DS:DX -> superstation ID or nulls (12 bytes) Return: CX = number of files closed AX = status (see also #03740) 08FFh superstation ID not already logged in SeeAlso: AH=00h"10NET",AH=81h --------N-6F02------------------------------- INT 6F - 10NET - STATUS OF NODE AH = 02h DS:DX -> 512-byte status record (see #03753) Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: INT 21/AX=5E01h"10NET" (Table 03752) Values for 10NET station type: 00h workstation 01h superstation 02h gateway station 03h gateway active 04h logged into multiple superstations 05h reserved Format of 10NET node status record: Offset Size Description (Table 03753) 00h 8 BYTEs user name (0 if none) 08h BYTE station type (see #03752) 09h 24 BYTEs list of superstations logged into more than one superstation 21h 12 BYTEs node ID 2Dh WORD message count for this station (send for user node, receive for superstations) ---for superstations only--- 2Fh WORD drives allocated (bit 0=A:, bit 1=B:,...) 31h BYTE user service flags (see #03754) 32h BYTE printers allocated (bit 0=LPT1,...) 33h BYTE number of unprinted spool files 34h BYTE number of opened files 35h BYTE number of logged on nodes 36h BYTE primary drive (1=A:) 37h BYTE reserved 38h N BYTEs list of logged on node IDs (each 12 bytes, max 37 IDs) 1F4h 3 BYTEs time: sec/min/hrs 1F7h 3 BYTEs date: day/mon/year-1980 Bitfields for 10NET user service flags: Bit(s) Description (Table 03754) 7 gate 6 print permit on 4 SUBMIT is on 3 mail waiting for node 2 calendar waiting for you 1 news waiting for you 0 mail waiting for you --------b-6F0200----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INIT" - START INITIALIZING DRIVER AX = 0200h BP = driver ID (see #03741) BX = "last-used DS" value from HP global data area (see #03748) Return: AH = status (see #03744) BX = new "last-used DS" value BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0202h,AH=0Ch"F_INS_FIXOWNDS" --------b-6F0202----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_START" - COMPLETE DRIVER INITIALIZ. AX = 0202h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra" --------W-6F0204----------------------------- INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK AX = 0204h Return: AX = status 0000h switch is allowed other switch not allowed Note: intercepting this call will allow a DOS application to ensure that Windows will not switch away from it. --------b-6F0204----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_REPORT_STATE" - GET DRIVER STATE AX = 0204h BP = driver ID (see #03741) Return: AH = status (see #03744) DX = device state from Logical Describe Record (see #03749,#03755) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0206h"HP Vectra" Bitfields for HP Vectra V_HPHIL driver state: Bit(s) Description (Table 03755) 0 link configuration in progress 1 reserved 2 no devices attached 3 general failure 4,5 reserved 6 HP-HIL driver open 7 reserved 8 link has been reconfigured 9 error during output request 10 reserved 11 output request complete 12 timeout 13-15 reserved --------b-6F0206----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_VERSION_DESC" - GET DRIVER VERSION AX = 0206h BP = driver ID (see #03741) Return: AH = status (see #03744) BX = driver release date code (BL = BCD years since 1960, BH = BCD week number within year) CX = length of version string ES:DI -> version string BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra",AX=0208h --------b-6F0208----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_DEF_ATTR" - RESET TO DEFAULT ATTR AX = 0208h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=020Ah,AX=020Ch --------b-6F020A----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_GET_ATTR" - GET CURRENT ATTRIBUTES AX = 020Ah BP = driver ID (see #03741) Return: AH = status (see #03744) BX,CX = current attributes BP,DS destroyed ---for V_LTOUCH, V_LPOINTER--- BX = logical width CX = logical height SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ch --------b-6F020C----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_SET_ATTR" - SET DEVICE ATTRIBUTES AX = 020Ch BP = driver ID (see #03741) BX,CX = new attributes ---for V_LTOUCH, V_LPOINTER--- BX = new logical width CX = new logical height Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ah --------b-6F020E----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_OPEN" - RESERVE DRIVER FOR ACCESS AX = 020Eh BP = driver ID (see #03741) for V_HPHIL, others Return: AH = status (see #03744) BP,DS destroyed Desc: place device in open state, which allows output to the device SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=0210h --------b-6F0210----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_CLOSE" - RELEASE DRIVER AX = 0210h BP = driver ID (see #03741) for V_HPHIL, others Return: AH = status (see #03744) BP,DS destroyed Desc: place device in closed state, which disallows output to the device SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh --------b-6F0212----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TIMEOUT" - REPORT REQUESTED TIMEOUT AX = 0212h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed Desc: report to driver that a previously-requested timeout interval has expired SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0214h,AX=0216h --------b-6F0214----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INTERVAL" - 60 HZ INTERVAL EXPIRED AX = 0214h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed Desc: report to driver that a previously-requested 60 Hz interval has expired SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0216h --------b-6F0216----------------------------- INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TEST" - PERFORM HARDWARE TEST AX = 0216h BP = driver ID (see #03741) Return: AH = status (see #03744) BP,DS destroyed ---on failure--- CX = length of reason string ES:DI -> string describing error SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0214h --------N-6F03------------------------------- INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE AH = 03h DS:DI -> node ID (optional) Return: ES:BX -> configuration table (see #03756) SeeAlso: AH=13h,INT 21/AX=5E01h"10NET" Format of 10NET configuration table: Offset Size Description (Table 03756) -41 WORD local device table address -39 WORD extended network error mapping table address -37 WORD shared device table address -35 WORD mounted device table address -33 BYTE receive buffer counter -32 BYTE collect buffer counter -31 WORD TUF address -29 BYTE enable flag -28 BYTE FCB keep flag -27 WORD reserved ---up to here, 10NET v3.3--- -25 WORD count of dropped Send6F -23 WORD buffer start address -21 WORD comm driver base address -19 WORD send/receive retry count -17 BYTE number of 550ms loops before timeout -16 WORD UFH address -14 WORD CDIR address -12 WORD LTAB address -10 WORD SFH address -8 WORD FTAB address -6 WORD RLTAB address -4 WORD SMI address -2 WORD NTAB address 00h WORD address of first CT_DRV 02h BYTE number of DRV entries 03h 8 BYTEs login name 0Bh 12 BYTEs node ID (blank-padded) 17h 6 BYTEs node address 1Dh BYTE flag 1Eh BYTE CT_CFLG (chat permit) bit 1: sound bell bit 0: CHAT permit 1Fh BYTE CT_PSFLG (see #03757) 20h BYTE in 10Net flag 21h WORD receive message count 23h WORD send message count 25h WORD retry count 27h WORD failed count 29h WORD driver errors 2Bh WORD dropped responses/CHATs 2Dh 9 BYTEs LIST ID/NTAB address (3 entries--LPT1-3) 36h 6 BYTEs AUX ID/NTAB address (2 entries--COM1-2) 3Ch BYTE active CB channel 3Dh BYTE received 6F messages on queue 3Eh 9 BYTEs activity counters for channels 1-9 ---beyond here, 10NET v3.3--- 47h BYTE bit 0: RS232 gate bit 1: Send6F gate (user set) 48h DWORD pointer into gate (user set) 4Ch DWORD pointer into 10Net send 50h N WORDs addresses of timer blocks Bitfields for CT_PSFLG: Bit(s) Description (Table 03757) 5 PRINT permit 4 KB initiated 3 CHAT called FOXPTRM 2 SUBMIT active 1 SUBMIT received 0 SUBMIT permit --------N-6F04------------------------------- INT 6F - 10NET - SEND AH = 04h DS:BX -> send record (see #03758) DS:DX -> data (max 1024 bytes) Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AH=05h"10NET",AH=09h"10NET",AH=0Ah"10NET" Format of 10NET send record: Offset Size Description (Table 03758) 00h 12 BYTEs receiving node's ID if first byte has high-order bit set, message is directed to the CT_RGATE vector at the receiver if second byte is 00h, first byte is taken as a CB channel number and delivered to all nodes on same channel 0Ch WORD length of data at DX --------b-6F04--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_BASEHPVT" - GET HP_VECTOR_TABLE ADDRESS AH = 04h BP = 0012h (driver ID for V_SYSTEM) Return: AH = status (see #03744) ES = segment of HP_VECTOR_TABLE (see also AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=06h"F_INS_XCHGFIX",AH=08h"F_INS_XCHGRSVD" --------b-6F04--BP005A----------------------- INT 6F - HP Vectra EX-BIOS - "F_TRACK_INIT" - RESET TRACKING DRIVER TO DEFAULTS AH = 04h BP = 005Ah (driver ID for V_STRACK) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=08h"F_TRACK_OFF" SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X" --------b-6F0400----------------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_LOCK" - RESERVE SUB-ADDRESSES AX = 0400h BP = driver ID (see #03741) DH,DL = major,minor address (optional) Return: AH = status (see #03744) BP,DS destroyed Desc: reserve specified sub-addresses on an already-allocated driver for exclusive access Note: this function is documented as present but unsupported in the drivers V_LTABLET, V_LPOINTER, and V_LTOUCH SeeAlso: AX=0200h"HP Vectra",AX=0402h"SF_UNLOCK" --------b-6F0400BP001E----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_SVC" - UNMASK 8041 SVC INT AX = 0400h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD" SeeAlso: AX=0408h"SF_ENABLE_HPHIL" --------b-6F0400BP002A----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DEF_LINKS" - SET DEFAULT PARENTS AX = 0400h BP = 002Ah (driver ID for V_SINPUT) Return: AH = status (see #03744) BP,DS destroyed Desc: set the parent vectors in the physical device driver headers to their system defaults SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=002Ah,AX=0404h/BP=002Ah SeeAlso: AH=06h"F_INQUIRE" --------b-6F0400BP0054----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_ID_HP" - INSTALLATION CHECK AX = 0400h BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BX = 4850h ('BP') BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0402h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h --------b-6F0400BP00CC----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - INIT INT 33 HANDLER AX = 0400h BP = 00CCh (driver ID for V_LHPMOUSE) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=00CCh --------b-6F0402----------------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_UNLOCK" - RELEASE SUB-ADDRESSES AX = 0402h BP = driver ID (see #03741) DH,DL = major,minor address (optional) Return: AH = status (see #03744) BP,DS destroyed Desc: release specified sub-addresses from exclusive access Note: this function is documented as present but unsupported in the drivers V_LTABLET, V_LPOINTER, and VLTOUCH SeeAlso: AX=0200h"HP Vectra",AX=0400h"SF_LOCK" --------b-6F0402BP001E----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_SVC" - MASK 8041 SVC INT AX = 0402h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0406h/BP=001Eh SeeAlso: AX=040Ah/BP=001Eh --------b-6F0402BP002A----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_GET_LINKS" - GET DRIVER LINK FIELDS AX = 0402h BP = 002Ah (driver ID for V_SINPUT) ES:SI -> buffer for link table (see #03759) Return: AH = status (see #03744) ES:SI buffer filled BP,DS destroyed Desc: get the parent and child vectors for the seven supported physical device drivers SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0404h"SF_SET_LINKS" SeeAlso: AH=06h"F_INQUIRE" Format of HP Vectra EX-BIOS driver link table: Offset Size Description (Table 03759) 00h BYTE vector number of HP-HIL device #1's child 01h BYTE vector number of HP-HIL device #1's parent ... 0Ch BYTE vector number of HP-HIL device #7's child 0Dh BYTE vector number of HP-HIL device #7's parent --------b-6F0402BP0054----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_INFO" - GET DISPLAY INFO AX = 0402h BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h --------b-6F0402BP00CC----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - FORCE INT 33 INIT AX = 0402h BP = 00CCh (driver ID for V_LHPMOUSE) Return: AH = status (see #03744) BP,DS destroyed Desc: set up INT 33 even if no mouse is installed SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=00CCh --------b-6F0404----------------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_ON" - GRAPHICS CURSOR ON AX = 0404h BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed Desc: enables graphics cursor tracking of the logical device's movement SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0406h"SF_TRACK_OFF" --------b-6F0404BP001E----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_KBD" - UNMASK 8041 OBF INT AX = 0404h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_ENABLE_SVC",AX=0406h"SF_DISABLE_KBD" SeeAlso: AX=0408h"SF_ENABLE_HPHIL" --------b-6F0404BP002A----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_LINKS" - SET DRIVER LINK FIELDS AX = 0404h BP = 002Ah (driver ID for V_SINPUT) ES:SI -> buffer containing link table (see #03759) Return: AH = status (see #03744) BP,DS destroyed Desc: specify the parent and child vectors for the seven supported physical device drivers SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0402h"SF_GET_LINKS" SeeAlso: AH=06h"F_INQUIRE" --------b-6F0404BP0054----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_INFO" - SET EXT-CTRL INFO AX = 0404h BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0406h/BP=0054h SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h --------b-6F0406----------------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_OFF" - GRAPHICS CURSOR OFF AX = 0406h BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed Desc: disables graphics cursor tracking of the logical device's movement SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0404h"SF_TRACK_ON" SeeAlso: AX=0408h"SF_CREATE_EVENT" --------b-6F0406BP001E----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_KBD" - MASK 8041 OBF INT AX = 0406h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD" SeeAlso: AX=040Ah"SF_DISABLE_HPHIL" --------b-6F0406BP0054----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_MOD_INFO" - SET EXT-CTRL REG AX = 0406h BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h --------b-6F0406BP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_RECONFIGURE" - RECONFIG LINK AX = 0406h BP = 0114h (driver ID for V_HPHIL) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0408h"SF_CRV_WR_PROMPTS" SeeAlso: AX=0410h"SF_CRV_SELF_TEST" --------b-6F0408----------------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_EVENT" - SET EVENT HANDLER AX = 0408h BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET ES:SI -> new event handler (see AH=00h"HP Vectra") DX = new handler's DS Return: AH = status (see #03744) ES:SI -> old event handler DX = old handler's DS BP,DS destroyed Desc: specify routine to be called on logical device events Note: when events occur, the event handler is called with the same registers as the "F_ISR" function on AH=00h"HP Vectra" SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_LOCK",AX=0406h"SF_TRACK_OFF" SeeAlso: AX=040Ah"SF_EVENT_ON",AX=040Ch"SF_EVENT_OFF",AH=06h"F_SAMPLE" --------b-6F0408BP001E----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_HPHIL" - UNMASK HP-HIL INT AX = 0408h BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0404h/BP=001Eh SeeAlso: AX=040Ah/BP=001Eh --------b-6F0408BP0054----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_RES" - GET VIDMODE RESOLUTN AX = 0408h BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h SeeAlso: AX=0406h/BP=0054h,AX=040Ah/BP=0054h --------b-6F0408BP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_PROMPTS" - WRITE PROMPT AX = 0408h BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address DL = prompt number Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0406h/BP=0114h,AX=040Ah/BP=0114h Bitfields for HP Vectra V_HPHIL device address indicator: Bit(s) Description (Table 03760) 15-14 reserved 13 address in DH is valid (must be set, clear is reserved) 12 valid value in DL 11-0 reserved --------b-6F040A----------------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_ON" - ENABLE EVENT HANDLER AX = 040Ah BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ch"SF_EVENT_OFF" SeeAlso: AX=040Eh"SF_CLIPPING_ON" --------b-6F040ABP001E----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_HPHIL" - MASK HP-HIL INT AX = 040Ah BP = 001Eh (driver ID for V_S8259) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=001Eh,AX=0406h/BP=001Eh SeeAlso: AX=0408h/BP=001Eh --------b-6F040ABP0054----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_MODE" - SET VIDEO MODE AX = 040Ah BP = 0054h (driver ID for V_SVIDEO) ??? Return: AH = status (see #03744) BP,DS destroyed ??? Note: only partially documented SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h SeeAlso: AX=0406h/BP=0054h,AX=0408h/BP=0054h --------b-6F040ABP00AE----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_INTR" - CREATE INTERVAL ENTRY AX = 040Ah BP = 00AEh (driver ID for V_8041) BH = vector number of driver to be called regularly (vector addr / 6) Return: AH = status (see #03744) BP,DS destroyed Desc: add a driver to the list (max eight) of drivers which will be called by the HP's 8041 at 60 Hz Note: the newly added entry will not be called until enabled with AX=040Eh/BP=00AEh SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh --------b-6F040ABP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_ACK" - ACKNOWLEDGE DEVICE AX = 040Ah BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address DL = acknowledge number (specific if 01h-07h, generic otherwise) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0406h/BP=0114h,AX=040Ch/BP=0114h --------b-6F040C----------------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_OFF" - DISABLE EVENT HANDLER AX = 040Ch BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ah"SF_EVENT_ON" --------b-6F040CBP00AE----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DELET_INTR" - DELETE INTERVAL ENTRY AX = 040Ch BP = 00AEh (driver ID for V_8041) BH = vector number of driver to be removed (vector addr / 6) Return: AH = status (see #03744) BP,DS destroyed Desc: remove a driver to the list (max eight) of drivers which will be called by the HP's 8041 at 60 Hz SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh --------b-6F040CBP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPEAT" - SET KEY REPEAT RATE AX = 040Ch BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address DL = repeat rate (00h = 30 Hz, 01h = 60 Hz) Return: AH = status (see #03744) BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=0114h,AX=040Eh/BP=0114h --------b-6F040E----------------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_ON" - ENABLE CLIPPING AX = 040Eh BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed Desc: causes the physical device's motion to be clipped to prevent overflow or underflow of the logical position SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=0410h"SF_CLIPPING_OFF" --------b-6F040EBP00AE----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABL_INTR" - START INTERRUPT SRVICE AX = 040Eh BP = 00AEh (driver ID for V_8041) BH = vector number of driver to be called regularly (vector addr / 6) Return: AH = status (see #03744) BP,DS destroyed Desc: enable 60 Hz calling of a driver previously added to the list of drivers to be called by the HP's 8041 SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh --------b-6F040EBP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_DISABLE_REPEAT" - KEY REPT OFF AX = 040Eh BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address Return: AH = status (see #03744) BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0410h/BP=0114h SeeAlso: AX=0416h/BP=0114h --------b-6F0410----------------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_OFF" - DISABLE CLIPPING AX = 0410h BP = driver ID (see #03741) for V_LPOINTER, V_LTOUCH, V_LTABLET Return: AH = status (see #03744) BP,DS destroyed Desc: disables clipping of the physical device's motion, which may cause overflow or underflow of the logical position SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON" --------b-6F0410BP00AE----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISBL_INTR" - END INTERRUPT SERVICE AX = 0410h BP = 00AEh (driver ID for V_8041) BH = vector number of driver (vector addr / 6) Return: AH = status (see #03744) BP,DS destroyed Desc: disable 60 Hz interval calls to the specified driver SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh --------b-6F0410BP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_SELF_TEST" - PERFORM SELFTEST AX = 0410h BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address ES:SI -> buffer for result Return: AH = status (see #03744) CX = number of bytes in buffer BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0412h/BP=0114h --------b-6F0412BP00AE----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_RAMSW" - SET RAM SWITCH IN 8041 AX = 0412h BP = 00AEh (driver ID for V_8041) Return: AH = status (see #03744) BP,DS destroyed Desc: sets a flag in the 8041 indicating that a second 256K bank of RAM on the motherboard is enabled SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh --------b-6F0412BP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_STATUS" - GET DEVSTATUS AX = 0412h BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address ES:SI -> 15-byte buffer for status Return: AH = status (see #03744) CX = number of bytes returned in buffer BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=0410h/BP=0114h,AX=0414h/BP=0114h --------b-6F0414BP00AE----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_RAMSW" - CLEAR 8041 RAM SWITCH AX = 0414h BP = 00AEh (driver ID for V_8041) Return: AH = status (see #03744) BP,DS destroyed Desc: clears a flag in the 8041 indicating that a second 256K bank of RAM on the motherboard is enabled, causing the second bank to be disabled Note: this function should normally never be called SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh --------b-6F0414BP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_NAME" - GET DEV NAME AX = 0414h BP = 0114h (driver ID for V_HPHIL) BX = device address indicator (see #03760) DH = HP HIL device major address ES:SI -> 15-byte buffer for name Return: AH = status (see #03744) CX = number of bytes returned in buffer BP,DS destroyed Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=00h"HP Vectra",AX=0412h/BP=0114h --------b-6F0416BP00AE----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_CRTSW" - SET CRT TO MULTIMODE AX = 0416h BP = 00AEh (driver ID for V_8041) Return: AH = status (see #03744) BP,DS destroyed Desc: sets a flag in the 8041 indicating that the primary display is the Multimode graphics adapter (default) SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh --------b-6F0416BP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_REPEAT" - SET TYPEMATIC AX = 0416h BP = 0114h (driver ID for V_HPHIL) BH = what to set (00h typematic rate, 01h delay, 02h both) BL = flag (00h = non-CCP keypad, 01h = Cursor Control Pad only) DL = rate bits 7-4: delay value bits 3-0: typematic rate Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0418h/BP=0114h --------b-6F0418BP00AE----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_CRTSW" - SET CRT TO MONOCHROME AX = 0418h BP = 00AEh (driver ID for V_8041) Return: AH = status (see #03744) BP,DS destroyed Desc: clears a flag in the 8041, indicating that the primary display is the monochrome adapter SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh --------b-6F0418BP0114----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_LED" - SET KEYBOARD LEDS AX = 0418h BP = 0114h (driver ID for V_HPHIL) BL = new LED states bit 0: scroll lock bit 1: NumLock bit 2: CapsLock Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0416h/BP=0114h --------b-6F041ABP00AE----------------------- INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_PASS_THRU" - SEND DATA BYTE TO 8041 AX = 041Ah BP = 00AEh (driver ID for V_8041) BL = byte to send to 8041 Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=040Eh/BP=00AEh --------N-6F05------------------------------- INT 6F - 10NET - RECEIVE AH = 05h CX = number of seconds before timeout DS:DX -> receive buffer (see #03761) Return: CF clear if successful AH = FEh if dequeued message is a CB message CF set on error AX = error code (see #03740) SeeAlso: AH=04h"10NET" Format of 10NET receive buffer: Offset Size Description (Table 03761) 00h 12 BYTEs sending node's ID 0Ch WORD length of message 0Eh N BYTEs message (maximum 1024 bytes) --------b-6F06------------------------------- INT 6F - HP Vectra EX-BIOS - "F_PUT_BYTE" - WRITE A BYTE OF DATA TO DEVICE AH = 06h BP = driver ID (see #03741) for V_HPHIL, others AL = value to output ---if driver is V_HPHIL--- BX = device address indicator (see #03760) DH = HP HIL device major address DL = HP-HIL device register (00h-7Fh) Return: AH = status (see #03744) BP,DS destroyed Desc: output a byte to a specific HP-HIL device register Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=04h"HP Vectra",AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER" --------b-6F06------------------------------- INT 6F - HP Vectra EX-BIOS - "F_SAMPLE" - POLL CURRENT ABSOLUTE POSITION AH = 06h BP = driver ID (see #03741) for V_LTOUCH, V_LPOINTER, V_LTABLET, etc. Return: AH = status (see #03744) BX = current logical X position CX = current logical Y position DL = button transitions (bit N = button N state has changed) DH = current button states (bit N = current button N state) ES:0000h -> logical device's Describe Record (see #03749) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON" --------b-6F06--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFIX" - EXCH VALUES WITH FIXED VECTOR AH = 06h BP = 0012h (driver ID for V_SYSTEM) BX = vector address DX = new value for DS ES:DI -> new CS:IP entry point Return: AH = status (see #03744) DX = old value for DS ES:DI -> old CS:IP entry point BP,DS destroyed Desc: replace an existing EX-BIOS driver at a fixed HPVT location without initialization SeeAlso: AH=00h"HP Vectra",AH=04h"F_INS_BASEHPVT",AH=08h"F_INS_XCHGRSVD" SeeAlso: AH=0Ah"F_INS_XCHGFREE",AH=0Ch"F_INS_FIXOWNDS" --------b-6F06--BP002A----------------------- INT 6F - HP Vectra EX-BIOS - "F_INQUIRE" - GET DRIVER PHYSICAL DESCRIBE RECORD AH = 06h BP = 002Ah (driver ID for V_SINPUT) AL = HP-HIL physical device number (01h-07h) Return: AH = status (see #03744) ES:SI -> physical describe record for driver BP,DS destroyed Note: the returned physical describe record must not be modified SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=08h/BP=002Ah,AH=0Ah/BP=002Ah SeeAlso: AH=0Ch/BP=002Ah --------b-6F06--BP005A----------------------- INT 6F - HP Vectra EX-BIOS - "F_TRACK_ON" - ENABLE CURSOR TRACKING AH = 06h BP = 005Ah (driver ID for V_STRACK) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF" SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X" --------N-6F07------------------------------- INT 6F - 10NET - LOCK HANDLE AH = 07h BX = file handle CX:DX = starting offset in file SI = record length Return: CF clear if successful CF set on error AX = error code (see also AH=00h) 0002h file not found SeeAlso: AH=08h"10NET",AH=0Fh,INT 21/AH=5Ch --------N-6F08------------------------------- INT 6F - 10NET - UNLOCK HANDLE AH = 08h BX = file handle AL = mode 00h unlock all 01h unlock record at CX:DX Return: CF clear if successful CF set on error AX = error code (see also AH=00h) 0002h file not found SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch --------b-6F08------------------------------- INT 6F - HP Vectra EX-BIOS - "F_GET_BYTE" - READ A BYTE OF DATA FROM DEVICE AH = 08h BP = driver ID (see #03741) for V_HPHIL (0114h), others ---if device is V_HPHIL--- BX = device address indicator (see #03760) DH = HP HIL device major address DL = HP-HIL device register (00h-7Fh) Return: AH = status (see #03744) AL = value read from device BP,DS destroyed Desc: generic read-byte function; for driver V_HPHIL, retrieves the value of a specific HP-HIL device register Note: this function is only available if the driver is in the open state (see AX=020Eh"SF_OPEN") SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER" --------b-6F08--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGRSVD" - EXCH VALUES WITH RESRVED VECTOR AH = 08h BP = 0012h (driver ID for V_SYSTEM) DX = new value for DS ES:DI -> new CS:IP entry point Return: AH = status (00h,F6h) (see also #03744) 00h successful BX = vector address used DX = old value for DS ES:DI -> old CS:IP entry point BP,DS destroyed Desc: exchange the supplied entry point and DS with the values in the next reserved entry in the HP_VECTOR_TABLE Note: returns AH=F6h if no more reserved vectors are available SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ah/BP=0012h SeeAlso: AH=0Ch/BP=0012h --------b-6F08--BP002A----------------------- INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ALL" - GET DRIVER STATUS TABLE AH = 08h BP = 002Ah (driver ID for V_SINPUT) ES:SI -> buffer for device status table (see #03762) Return: AH = status (see #03744) ES:SI buffer filled BP,DS destroyed Note: the returned physical describe record must not be modified SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=0Ah/BP=002Ah SeeAlso: AH=0Ch/BP=002Ah Format of HP Vectra HP-HIL physical device status table: Offset Size Description (Table 03762) 00h BYTE status for HP-HIL device #1 bit 0: device present bits 7-2 reserved 01h BYTE device ID for HP-HIL device #1 ... 0Ch BYTE status for HP-HIL device #7 0Dh BYTE device ID for HP-HIL device #7 --------b-6F08--BP005A----------------------- INT 6F - HP Vectra EX-BIOS - "F_TRACK_OFF" - DISABLE CURSOR TRACKING AH = 08h BP = 005Ah (driver ID for V_STRACK) Return: AH = status (see #03744) BP,DS destroyed Note: also removes the graphics cursor sprite from the screen SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=06h"F_TRACK_ON" SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X" --------N-6F09------------------------------- INT 6F - 10NET - SUBMIT AH = 09h DS:BX -> submit record (see #03763) SeeAlso: AH=04h"10NET" Format of 10NET submit record: Offset Size Description (Table 03763) 00h 12 BYTEs destination node ID (must be logged in) 0Ch WORD length+2 of following 'command line' text 0Eh N BYTEs command line text (<=100 bytes), system adds CR --------N-6F0A------------------------------- INT 6F - 10NET - CHAT AH = 0Ah DS:BX -> control parameters (see #03764) DS:DX -> chat message (see #03765) SeeAlso: AH=04h"10NET",AH=8Ah Format of 10NET chat control parameters: Offset Size Description (Table 03764) 00h 8 BYTEs sender ID, defaults to node's userID if nulls 08h 8 BYTEs destination user ID, 'EVERYONE' may be used 10h 12 BYTEs destination node ID Format of 10NET chat message: Offset Size Description (Table 03765) 00h WORD length+2 of following text 02h N BYTEs text, max 101 bytes --------b-6F0A------------------------------- INT 6F - HP Vectra EX-BIOS - "F_PUT_BUFFER" - WRITE A BUFFER TO DEVICE AH = 0Ah BP = driver ID (see #03741) for V_HPHIL (0114h), others CX = number of bytes to write ES:DI -> buffer containing data ---if driver is V_HPHIL--- BX = device address indicator (see #03760) DH = HP HIL device major address DL = HP-HIL device register (00h-7Fh) Return: AH = status (see #03744) CX = number of unwritten bytes left in buffer BP,DS destroyed SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER" SeeAlso: AH=0Eh"F_PUT_WORD" --------b-6F0A------------------------------- INT 6F - HP Vectra EX-BIOS - "F_PUT_BLOCK" - WRITE BLOCKS TO DEVICE AH = 0Ah BP = driver ID (see #03741) for block device DH = device major number DL = device minor number ES:DI -> command block (see #03766) Return: AH = status (see #03744) BX = operation status BP,DS destroyed SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER" SeeAlso: AH=0Eh"F_PUT_WORD" Format of HP Vectra F_PUT_BLOCK/F_GET_BLOCK command block: Offset Size Description (Table 03766) 00h DWORD data transfer address 04h WORD number of blocks 06h DWORD block address (some devices only use low word) --------b-6F0A--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFREE" - EXCH VALUES WITH FREE VECTOR AH = 0Ah BP = 0012h (driver ID for V_SYSTEM) DX = new value for DS ES:DI -> new CS:IP entry point Return: AH = status (00h,F6h) (see also #03744) 00h successful BX = vector address used DX = old value for DS ES:DI -> old CS:IP entry point BP,DS destroyed Desc: exchange the supplied entry point and DS with the values in the next free entry in the HP_VECTOR_TABLE Note: returns AH=F6h if no more reserved vectors are available SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h SeeAlso: AH=0Ch/BP=0012h --------b-6F0A--BP002A----------------------- INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_FIRST" - GET PHYSICAL DRIVER VECTOR AH = 0Ah BP = 002Ah (driver ID for V_SINPUT) Return: AH = status (see #03744) BX = vector address for first HP-HIL device BP,DS destroyed Note: all seven HP-HIL devices use consecutive vectors in the HP_VECTOR_TABLE SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah SeeAlso: AH=0Ch/BP=002Ah --------b-6F0A--BP005A----------------------- INT 6F - HP Vectra EX-BIOS - "F_DEF_MASKS" - DEFINE GRAPHICS CURSOR MASKS AH = 0Ah BP = 005Ah (driver ID for V_STRACK) BH = width of save area in bytes BL = hot-spot X coordinate CH = height in scan lines CL = hot-spot Y coordinate ES:SI -> sprite mask (screen mask followed by XOR sprite mask) Return: AH = status (see #03744) BP,DS destroyed Note: the save area is one byte wider than the actual sprite mask; the total size of the sprite is at most 144 bytes SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF" SeeAlso: AH=0Ch"F_SET_LIMITS_X",AH=10h"F_PUT_SPRITE",AH=12h"F_REMOVE_SPRITE" --------N-6F0B------------------------------- INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY AH = 0Bh AL = drive number or 0 ES:SI = Ethernet address or 0 DS:BX -> 31-byte ASCIZ semaphore name Return: AL = status (see #03767) Note: same as INT 60/AH=12h SeeAlso: AH=0Ch"10NET",INT 60/AH=12h (Table 03767) Values for 10NET status: 00h successful 01h semaphore currently locked 02h server not responding 03h invalid semaphore name 04h semaphore list is full 05h invalid drive ID 06h invalid Ethernet address 07h not logged in 08h write to network failed 09h semaphore already logged in this CPU SeeAlso: #03740 Index: error codes;10-Net|10-Net;error codes --------N-6F0C------------------------------- INT 6F - 10NET - UNLOCK SEMAPHORE AH = 0Ch AL = drive number or 0 ES:SI = Ethernet address or 0 DS:BX -> 31-byte ASCIZ semaphore name Return: AL = status (see also #03767) 01h semaphore not locked Note: same as INT 60/AH=13h SeeAlso: AH=0Bh,INT 60/AH=13h --------b-6F0C------------------------------- INT 6F - HP Vectra EX-BIOS - "F_GET_BUFFER" - READ A BUFFER OF DATA FROM DEVICE AH = 0Ch BP = driver ID (see #03741) for V_HPHIL (0114h), others CX = number of bytes or blocks to read DS:SI -> buffer for received data Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BLOCK" SeeAlso: AH=10h"F_GET_WORD" --------b-6F0C------------------------------- INT 6F - HP Vectra EX-BIOS - "F_GET_BLOCK" - READ BLOCKS OF DATA FROM DEVICE AH = 0Ch BP = driver ID (see #03741) DH = device major number DL = device minor number ES:DI -> command block (see #03766) Return: AH = status (see #03744 at AH=00h"HP Vectra") BX = operation status BP,DS destroyed SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER" SeeAlso: AH=10h"F_GET_WORD" --------b-6F0C--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_FIXOWNDS" - INSTALL VALUES IN FIXED VECTOR AH = 0Ch BP = 0012h (driver ID for V_SYSTEM) BX = vector address used ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), which should return the routine's DS in BX. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h SeeAlso: AH=0Eh/BP=0012h,AH=12h/BP=0012h --------b-6F0C--BP002A----------------------- INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ENTRY" - GET GID DRIVER ENTRY POINT AH = 0Ch BP = 002Ah (driver ID for V_SINPUT) Return: AH = status (see #03744) ES:BX -> physical GID driver CS:IP BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah SeeAlso: AH=0Ah/BP=002Ah --------b-6F0C--BP005A----------------------- INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_X" - SET HORIZONTAL TRACKING LIMITS AH = 0Ch BP = 005Ah (driver ID for V_STRACK) CX = minimum X coordinate DX = maximum X coordinate Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Eh/BP=005Ah SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0007h --------N-6F0D------------------------------- INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK AH = 0Dh AL = type code 01h return superstations only 02h return non-superstations only otherwise return all CX = length of data buffer DS:DX -> array of records to be filled (see #03768) Return: CL = number of records returned (responding stations) SeeAlso: AH=16h,AH=8Dh Format of station record: Offset Size Description (Table 03768) 00h 12 BYTEs node ID 0Ch BYTE station flags (see #03769) ---if AL = 01h--- 0Dh BYTE version number 0Eh WORD level number of 10Net software in responding node ---if AL = 02h--- 0Dh 8 BYTEs user ID 15h BYTE version number 16h WORD level number Bitfields for station flags: Bit(s) Description (Table 03769) 1 workstation 2 superstation 3 xgate 4 active gate --------N-6F0E------------------------------- INT 6F - 10NET - SPOOL/PRINT AH = 0Eh DS:DX -> spool/print record (see #03771) Return: CF clear if successful CF set on error AX = error code (see also #03740) 17FFh device not mounted 18FFh already spooling to named device (Table 03770) Values for 10NET spooler operation code: 0000h initiate spool 0001h abort print 0002h close spool 0003h delete spool 0004h print 0005h get report info 0006h set chat template 0007h queue 0008h return queue 0009h queue non-spooled file for printing Format of 10NET Spool/Print record: Offset Size Description (Table 03771) 00h WORD operation code (see #03770) 02h 11 BYTEs file name in FCB format ---if operation code = 00h or 06h--- 0Dh BYTE notification flags (see #03772) 0Eh BYTE days to keep (FFh=forever) 0Fh BYTE bits 0,1: device (1=LPT1) bits 4-7: remote drive to store spool file (1=A,...) 10h WORD length of following data area 12h N BYTEs up to 64 bytes of description ---if operation code = 03h--- 0Dh 8 BYTEs user ID to associate with filename ---if operation code = 04h--- 0Dh WORD block number 0Fh 8 BYTEs user ID to associate with filename ---if operation code = 05h--- 0Dh BYTE RRN to start retrieve 0Eh BYTE bits 0,1: local print device (LPTx) bit 3: if set, return entries for all users 0Fh WORD length of following area 11h N BYTEs up to 1500 bytes to receive $SCNTL records returned ---if operation code = 07h--- 0Dh BYTE queue number 0Eh BYTE bits 0,1: local print device (LPTx) 0Fh WORD number of bytes of test print to be done 11h BYTE code: 01h print device 02h test print count 03h prn ---if operation code = 08h--- 0Dh BYTE queue location or $SCNTL location to start access returns next item for access: 00h-7Fh queued items 80h-FEh non-queued, non-printed items FFh no more items 0Eh WORD unused 10h WORD length of following area 12h N BYTEs up to 64 bytes to receive $SCNTL records (see #03773) ---if operation code = 09h--- 0Dh 3 BYTEs unused 10h N BYTEs path to non-spooled file to be queued for printing Bitfields for notification flags: Bit(s) Description (Table 03772) 7 queue to top 6 do ID page 5 no form feed 4 reserved 3 explicit queuing only 2 notify at print completion 1 notify server operator, with reply 0 notify at print start Format of 10NET $SCNTL record: Offset Size Description (Table 03773) 00h 8 BYTEs user ID 08h 11 BYTEs filename in FCB format 13h 6 BYTEs node ID 19h 3 BYTEs creation date 1Ch BYTE notification flags (see #03772) 1Dh BYTE retention time in days 1Eh BYTE printing device (LPTx) 1Fh 3 BYTEs date last printed (0 = never) 22h BYTE device containing spoolfile 23h WORD bytes to print for test print 25h WORD block number to start print 27h BYTE reserved --------b-6F0E------------------------------- INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE WORD OF DATA TO DEVICE AH = 0Eh BP = driver ID (see #03741) DX = data word Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=10h"F_GET_WORD" --------b-6F0E------------------------------- INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE A WORD OF DATA AH = 0Eh BP = driver ID (see #03741) ??? details not yet available Return: ??? SeeAlso: AH=06h"HP Vectra",AH=0Ah"HP Vectra",AH=10h"HP Vectra" --------b-6F0E--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGETDS" - INSTALL VALUES IN FIXED VECTOR AH = 0Eh BP = 0012h (driver ID for V_SYSTEM) BX = vector address used ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX; the routine should adjust BX and return the new value. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ch/BP=0012h SeeAlso: AH=10h/BP=0012h,AH=14h/BP=0012h --------b-6F0E--BP005A----------------------- INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_Y" - SET VERTICAL TRACKING LIMITS AH = 0Eh BP = 005Ah (driver ID for V_STRACK) CX = minimum Y coordinate DX = maximum Y coordinate Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Ch/BP=005Ah SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0008h --------N-6F0F------------------------------- INT 6F - 10NET v5.0 - "RM LOCK" - ??? AH = 0Fh ??? Return: ??? SeeAlso: AH=07h,AH=08h"10NET" --------N-6F10------------------------------- INT 6F - 10NET - ATTACH/DETACH PRINTER AH = 10h AL = subfunction 00h initiate spooling if LPT1 is mounted 01h terminate spooling if LPT1 is mounted SeeAlso: INT 21/AX=5D08h --------b-6F10------------------------------- INT 6F - HP Vectra EX-BIOS - "F_GET_WORD" - READ WORD OF DATA FROM DEVICE AH = 10h BP = driver ID (see #03741) Return: AH = status (see #03744 at AH=00h"HP Vectra") DX = data word BP,DS destroyed SeeAlso: AH=08h"F_GET_BYTE",AH=0Ch"F_GET_BUFFER",AH=0Eh"F_PUT_WORD" --------b-6F10--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGLBDS" - INSTALL VALUES IN FIXED VECTOR AH = 10h BP = 0012h (driver ID for V_SYSTEM) BX = vector address used ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global data area. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h SeeAlso: AH=0Ch/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h,AH=16h/BP=0012h --------b-6F10--BP005A----------------------- INT 6F - HP Vectra EX-BIOS - "F_PUT_SPRITE" - DISPLAY GRAPHICS CURSOR SPRITE AH = 10h BP = 005Ah (driver ID for V_STRACK) BX = X coordinate CX = Y coordinate Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF" SeeAlso: AH=12h"F_REMOVE_SPRITE",INT 33/AX=0004h --------N-6F11------------------------------- INT 6F - 10NET - LOCK FCB AH = 11h AL = mode 01h sequential 02h random 03h random block CX = number of records DS:DX -> FCB (see #01345 at INT 21/AH=0Fh) Return: CF clear if successful CF set on error AX = error code (see also #03740) 0002h file not found SeeAlso: AH=12h,INT 21/AH=0Fh --------N-6F12------------------------------- INT 6F - 10NET - UNLOCK FCB AH = 12h AL = mode 00h sequential 01h random 02h random block CX = number of records DS:DX -> FCB (see #01345 at INT 21/AH=0Fh) Return: CF clear if successful CF set on error AX = error code (see also #03740) 0002h file not found SeeAlso: AH=11h --------b-6F12--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_FREEOWNDS" - INSTALL VALUES IN FREE VECTOR AH = 12h BP = 0012h (driver ID for V_SYSTEM) ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), which should return the routine's DS in BX. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=14h/BP=0012h SeeAlso: AH=16h/BP=0012h,AH=18h/BP=0012h --------b-6F12--BP005A----------------------- INT 6F - HP Vectra EX-BIOS - "F_REMOVE_SPRITE" - REMOVE GRAPHICS CURSOR SPRITE AH = 12h BP = 005Ah (driver ID for V_STRACK) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=10h"F_PUT_SPRITE" --------N-6F13------------------------------- INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS AH = 13h DS:DX -> node ID, 12 bytes blank-padded Return: CF clear if successful ES:BX = configuration table address on given machine CF set on error AX = error code (see #03740) SeeAlso: AH=03h --------N-6F14------------------------------- INT 6F - 10NET v3.3+ - GET REMOTE MEMORY AH = 14h BX:SI = address of remote memory CX = length (<=1024 bytes) DS:DX -> node ID, 12 bytes blank-padded DS:DI -> area to receive remote memory image Return: CF clear if successful CX = amount of memory copied to DS:SI CF set on error AX = error code (see #03740) --------b-6F14--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGETDS" - INSTALL VALUES IN FREE VECTOR AH = 14h BP = 0012h (driver ID for V_SYSTEM) ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744) BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX; the routine should adjust BX and return the new value. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h SeeAlso: AH=16h/BP=0012h --------N-6F1501----------------------------- INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY AX = 1501h BX = zero-based index DS:SI -> node ID, 12 bytes blank-padded ES:DI -> 85-byte buffer for shared device table entry (see #03774) Return: CF clear if successful ES:DI buffer contains shared device table entry of BXth device CF set on error AX = error code (see #03740) SeeAlso: AX=1502h,AX=1503h,AX=9501h Format of 10NET shared device table entry: Offset Size Description (Table 03774) 00h 8 BYTEs device 08h 8 BYTEs alias 10h 64 BYTEs path 50h 8 BYTEs password 58h BYTE access 59h 4 BYTEs mask --------N-6F1502----------------------------- INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY AX = 1502h DS:SI -> node ID, 12 bytes blank-padded ES:DI -> valid shared device table entry Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AX=1501h,AX=1503h,AX=9502h --------N-6F1503----------------------------- INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY AX = 1503h BX = zero-based index DS:SI -> node ID, 12 bytes blank-padded Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AX=1501h,AX=1502h,AX=9503h --------N-6F16------------------------------- INT 6F - 10NET v5.0 - "GL WHO" - ??? AH = 16h ??? Return: ??? SeeAlso: AH=0Dh --------b-6F16--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGLBDS" - INSTALL VALUES IN FREE VECTOR AH = 16h BP = 0012h (driver ID for V_SYSTEM) ES:DI -> new CS:IP entry point Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra") BP,DS destroyed Note: on installation, the given entry point will be invoked with an SF_INIT call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global data area. If the SF_INIT call returns with error code FEh, the power-on self-test sequence will be called. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=10h/BP=0012h,AH=12h/BP=0012h SeeAlso: AH=14h/BP=0012h,AH=18h/BP=0012h --------N-6F17------------------------------- INT 6F - 10NET v3.3+ - MOUNT AH = 17h AL = local drive number (0=A:) BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx DS:DX -> node ID, 12 bytes blank-padded Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AH=18h --------N-6F18------------------------------- INT 6F - 10NET v3.3+ - UNMOUNT AH = 18h AL = local drive number (0=A:) BL = type 00h disk 01h-03h LPTn 04h,05h COMx Return: CF clear if successful CF set on error AX = error code (see #03740) SeeAlso: AH=17h --------b-6F18--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_INS_FIND" - FIND DRIVER BY ATTRIBUTES AH = 18h BP = 0012h (driver ID for V_SYSTEM) AL = sense of test (00h equal, 02h non-equal) BX = AND mask DX = pattern SI = first vector address to search DI = offset in HP header of field to test Return: AH = status (00h,FEh) (see #03744 at INT 6F/AH=00h"HP Vectra") BP,DS destroyed ---if AH=00h--- SI = first matching vector address Desc: compare successive drivers' header fields starting at address SI until the header field AND BX is either equal or non-equal to DX SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=10h/BP=0012h SeeAlso: AH=12h/BP=0012h,AH=16h/BP=0012h --------N-6F19------------------------------- INT 6F U - 10NET v5.0 - AUDIT AH = 19h ??? Return: ??? SeeAlso: AH=99h --------N-6F1A------------------------------- INT 6F U - 10NET v5.0 - "BULL" - ??? AH = 1Ah ??? Return: ??? --------N-6F1B------------------------------- INT 6F U - 10NET v5.0 - "GMOUNT" - ??? AH = 1Bh ??? Return: ??? --------N-6F1C------------------------------- INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST AH = 1Ch ??? Return: ??? --------N-6F1D------------------------------- INT 6F U - 10NET v5.0 - "TABDATA" - ??? AH = 1Dh ??? Return: ??? --------N-6F1E------------------------------- INT 6F U - 10NET v5.0 - "SCHED" - ??? AH = 1Eh ??? Return: ??? --------b-6F1E--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_RAM_GET" - GET EX-BIOS FREE RAM AREA AH = 1Eh BP = 0012h (driver ID for V_SYSTEM) Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra") BX = last-used DS DX = maximum DS BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=20h/BP=0012h,AH=22h/BP=0012h --------N-6F1F------------------------------- INT 6F U - 10NET v5.0 - "WHOAMI" - ??? AH = 1Fh ??? Return: ??? --------N-6F20------------------------------- INT 6F U - 10NET v5.0 - ??? AH = 20h ??? Return: ??? --------b-6F20--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_RAM_RET" - RESERVE EX-BIOS MEMORY AH = 20h BP = 0012h (driver ID for V_SYSTEM) BX = new value for "last-used DS" DX = new value for "maximum DS" Return: AH = status (00h) (see #03744 at INT 6F/AH=00h"HP Vectra") BP,DS destroyed Note: the F_INS_FIXGETDS and F_INS_FREEGETDS functions (see AH=0Eh/BP=0012h,AH=14h/BP=0012h) also modify the values returned by this call, requiring care if both methods are used to allocate memory SeeAlso: AH=00h"HP Vectra",AH=0Eh/BP=0012h,AH=14h/BP=0012h,AH=1Eh/BP=0012h --------N-6F21------------------------------- INT 6F U - 10NET v5.0 - ??? AH = 21h ??? Return: ??? --------N-6F22------------------------------- INT 6F U - 10NET v5.0 - ??? AH = 22h ??? Return: ??? --------b-6F22--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_CMOS_GET" - READ CMOS MEMORY AH = 22h BP = 0012h (driver ID of V_SYSTEM) BL = address of CMOS byte to read Return: AH = status (see #03744 at AH=00h"HP Vectra") AL = byte read BP,DS destroyed Note: supported by ES, QS, and RS series HP Vectras SeeAlso: AH=00h"HP Vectra",AH=1Eh/BP=0012h,AH=24h/BP=0012h --------b-6F24--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_CMOS_RET" - WRITE CMOS MEMORY AH = 24h BP = 0012h (driver ID of V_SYSTEM) BL = address of CMOS byte to write AL = new value Return: AH = status (see #03744) BP,DS destroyed Note: updates the CMOS checksum fields (both IBM-standard and HP checksums) SeeAlso: AH=00h"HP Vectra",AH=22h/BP=0012h --------b-6F2A--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_YIELD" - GIVE UP CPU TO OTHER TASKS AH = 2Ah BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BP,DS destroyed Note: this is a hook for multitasking systems SeeAlso: AH=00h"HP Vectra",INT 15/AX=1000h,INT 2F/AX=1680h --------b-6F30--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_ENABLE" - TURN ON KEYCLICKS AH = 30h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed Desc: enables keyclicks and flushes any pending keyclicks SeeAlso: AH=32h/BP=0012h,AH=34h/BP=0012h,AH=36h/BP=0012h --------b-6F32--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_DISABLE" - TURN OFF KEYCLICKS AH = 32h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BP,DS destroyed Desc: disables keyclicks and flushes any pending keyclicks SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=38h/BP=0012h --------b-6F34--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK" - GENERATE KEYCLICK AH = 34h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BP,DS destroyed Desc: generate a keyclick if fewer than four clicks are already pending Note: if keyclicks are already pending, the remaining click count is incremented and the function returns immediately SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=36h/BP=0012h,AH=3Ah/BP=0012h --------b-6F36--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_ENABLE" - ENABLE BEEPS AH = 36h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=34h/BP=0012h,AH=38h/BP=0012h --------b-6F38--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_DISABLE" - DISABLE BEEPS AH = 38h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=32h/BP=0012h,AH=36h/BP=0012h --------b-6F3A--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP" - SOUND BEEP WITH CURRENT VALUES AH = 3Ah BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744 at AH=00h"HP Vectra") BP,DS destroyed Desc: make a sound of the frequency and duration defined in the EX-BIOS global data area (see #03748) SeeAlso: AH=00h"HP Vectra",AH=34h/BP=0012h,AH=36h/BP=0012h,AH=38h/BP=0012h SeeAlso: AH=3Ch/BP=0012h,AH=3Eh/BP=0012h --------b-6F3C--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_SND_SET_BEEP" - SET BEEP FREQUENCY AND DURATION AH = 3Ch BP = 0012h (driver ID of V_SYSTEM) BX = frequency in Hz (1-25000, 0 = off) DX = duration in 10-microsecond increments Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Eh/BP=0012h,#03748 --------b-6F3E--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_SND_TONE" - SOUND TONE WITH FREQ AND DURATION AH = 3Eh BP = 0012h (driver ID of V_SYSTEM) BX = frequency in Hz (1-25000, 0 = off) DX = duration in 10-microsecond increments Return: AH = status (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Ch/BP=0012h,AH=40h/BP=0012h --------b-6F40--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_STR_GET_FREE_INDEX" - FIND FREE STRING INDEX AH = 40h BP = 0012h (driver ID of V_SYSTEM) Return: AH = status (see #03744) BX = next free string index BP,DS destroyed Desc: get the next string index available to user programs SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=44h/BP=0012h,AH=46h/BP=0012h --------b-6F42--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_STR_DEL_BUCKET" - DEL HEADER FROM BUCKET LIST AH = 42h BP = 0012h (driver ID of V_SYSTEM) ES:DI -> bucket header (see #03775) Return: AH = status (00h,FEh) (see #03744 at AH=00h"HP Vectra") BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=44h/BP=0012h Format of HP Vectra EX-BIOS bucket header: Offset Size Description (Table 03775) 00h DWORD pointer to next bucket header (FFFFh:FFFFh if last) 04h WORD upper bound on string index 06h WORD lower bound on string index 08h DWORD pointer to array of string offset pointers 0Ch WORD segment of strings Note: the strings pointed at by the offset pointers are byte-counted ASCIZ strings --------b-6F44--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_STR_PUT_BUCKET" - ADD HEADER TO BUCKET HDR LIST AH = 44h BP = 0012h (driver ID of V_SYSTEM) ES:DI -> bucket header (see #03775) Return: AH = status (00h) (see #03744) BP,DS destroyed SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=46h/BP=0012h --------b-6F46--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_STR_GET_STRING" - FIND STRING IN BUCKET LIST AH = 46h BP = 0012h (driver ID of V_SYSTEM) BX = string index Return: AH = status (00h,other) (see #03744) BP,DS destroyed ---if successful--- CX = length of string (excluding count byte and terminating NUL) DS:SI -> header for string ES:DI -> found string SeeAlso: AH=00h"HP Vectra",AH=44h/BP=0012h,AH=48h/BP=0012h --------b-6F48--BP0012----------------------- INT 6F - HP Vectra EX-BIOS - "F_STR_GET_INDEX" - GET INDEX FOR STRING AH = 48h BP = 0012h (driver ID of V_SYSTEM) ES:DI -> ASCIZ string Return: AH = status (00h,other) (see #03744 at AH=00h"HP Vectra") BP,DS destroyed ---if successful--- BX = index for the given string SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=46h/BP=0012h --------A-6F636FBX6D70----------------------- INT 6F - Clara Empricost - TSR Version - INSTALLATION CHECK AX = 636Fh ('co') BX = 6D70h ('mp') CX = 696Eh ('in') SS:DX -> WORD to set if installed Return: SS:DX word set to 636Fh if installed Program: Condition List Action Rejection Algorithm for the Evaluation of Music at Pseudo-Random Idea COnstruction STage (CLARA EMPRICOST) is an experimental program by Silas Brown SeeAlso: AX=636Fh/BX=6D70h"UNINSTALL" --------A-6F636FBX6D70----------------------- INT 6F - Clara Empricost - TSR Version - UNINSTALL AX = 636Fh ('co') BX = 6D70h ('mp') CX = 6F73h ('os') Return: nothing -- call installation check to determine whether successful Program: Condition List Action Rejection Algorithm for the Evaluation of Music at Pseudo-Random Idea COnstruction STage (CLARA EMPRICOST) is an experimental program by Silas Brown Notes: Saves any unfinished task and prevents processing of new tasks, even if can't uninstall If INT 28h or INT 6Fh have been chained since installation, returns without changing interrupts or freeing memory do not call while DOS is active (i.e. InDOS flag is nonzero or INT 28 is active and InDOS > 1) SeeAlso: AX=636Fh/BX=6D70h"INSTALLATION CHECK" --------N-6F80------------------------------- INT 6F - 10NET v5.0 - LOGIN AH = 80h DS:DX -> login record (see #03776) Return: CF clear if successful BL = number of days until password expires (00h = never) CL = security level CF set on error AX = status (see #03740) SeeAlso: AH=00h,AH=81h Format of 10NET login record: Offset Size Description (Table 03776) 00h 8 BYTEs user name 08h 8 BYTEs password 10h 15 BYTEs server node ID 1Fh 8 BYTEs new password 27h BYTE invoke mode (00h command line, 01h interactive) --------N-6F81------------------------------- INT 6F - 10NET v5.0 - LOGOUT AH = 81h DS:DX -> server node ID (DX=0000h for universal logout) Return: AX = status (see #03740) SeeAlso: AH=01h,AH=80h --------N-6F8A------------------------------- INT 6F - 10NET v5.0 - CHAT AH = 8Ah DS:BX -> chat parameters (see #03777) DS:DX -> chat message (see #03778) Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AH=0Ah"10NET" Format of 10NET chat parameters: Offset Size Description (Table 03777) 00h 8 BYTEs sender's user name 08h 8 BYTEs destination user name 10h 15 BYTEs destination node (0 if broadcast-style chat) Format of 10NET chat message: Offset Size Description (Table 03778) 00h WORD message length 02h N BYTEs chat message contents --------N-6F8D------------------------------- INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK AH = 8Dh BX = service mask (see #03779) CX = length of buffer DS:DX -> buffer for array of Who data structures (see #03780) Return: CF clear if successful CX = number of nodes matching service mask DS:DX buffer filled CF set on error AX = status (see #03740) SeeAlso: AH=0Dh Bitfields for 10NET service mask: Bit(s) Description (Table 03779) 0 workstation 1 file server 2 print server 3 de-spool server Format of 10NET Who data structure: Offset Size Description (Table 03780) 00h 8 BYTEs user name 08h 15 BYTEs node ID 17h 3 BYTEs unique portion of Ethernet address 1Ah BYTE Who group number 1Bh WORD service mask (see #03779) 1Dh DWORD serial number 21h BYTE maximum concurrent users with same serial number allowed on net 22h BYTE chat mask (see #03781) 23h BYTE internal system bits (see #03782) 24h 9 BYTEs version number in format MM.mm.xxx 2Dh BYTE number of shared directories 2Eh BYTE number of shared printer queues Bitfields for 10NET chat mask: Bit(s) Description (Table 03781) 0 chat permitted 1 bell enabled 2 chat keyboard initiated 3 in INT 16 handler 4 in Get Input 5 display has timed out 6 chat is idle Bitfields for 10NET internal system bits: Bit(s) Description (Table 03782) 0 submit permitted 1 submit initiated 2 submit executing 3 internal client call/chat/spool/autospool 4 in spool termination 5 print permitted 6 waiting for keyboard input --------N-6F9501----------------------------- INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY AX = 9501h BX = zero-based index DS:SI -> server's node ID ES:DI -> buffer for shared device structure (see #03783) Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h Format of 10NET shared device structure: Offset Size Description (Table 03783) 00h 8 BYTEs alias 08h BYTE type (02h modem, 03h print queue, 04h directory) 09h BYTE access rights bit 0: read bit 1: write bit 2: create 0Ah 8 BYTEs password 12h 32 BYTEs comment ---directory--- 32h 64 BYTEs pathname of shared directory ---print queue--- 32h BYTE notification bit mask (see #03784) 33h BYTE job control bit mask (see #03785) 34h WORD number of days to retain file 36h WORD test print length 38h BYTE number of copies to print 39h BYTE compression algorithm 3Ah BYTE tab width (00h = don't expand) 3Bh BYTE priority 3Ch WORD time to open queue (FFFFh = always) 3Eh WORD time to close queue 40h WORD pause following queue switch, in clock ticks 42h WORD pause between print jobs, in clock ticks 44h BYTE associate queue file existence mask bit 0: queue switch file exists bit 1: initiate file exists bit 2: abort file exists 45h 6 BYTEs character sequence for page eject 4Bh BYTE status of print queue bit 0: queue is closed 4Ch WORD number of jobs on queue 4Eh WORD offset of next print job to be dispatched (FFFFh = none) 50h BYTE number of print devices in printer pool 51h WORD offset of first print device structure (FFFFh if empty) Bitfields for notification flags: Bit(s) Description (Table 03784) 0 user at print start 1 operator at start, with reply 2 user at print completion 3 operator at completion, with reply 4 user on queue switch 5 operator on queue switch, with reply 6 user on print error Bitfields for 10NET job control mask: Bit(s) Description (Table 03785) 0 print banner page 1 eject page at end of job 2 mark as "held" (queue but don't print) 3 rush job (queue at top) 4 overwrite file with zeros before deletion 5 hyperspool if possible --------N-6F9502----------------------------- INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY AX = 9502h DS:SI -> server's node ID ES:DI -> shared device structure (see #03783) Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h --------N-6F9503----------------------------- INT 6F - 10NET v5.0 - DELETE SHARED DEVICE AX = 9503h BX = zero-based index DS:SI -> server's node ID Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h --------N-6F9504----------------------------- INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE AX = 9504h BX = zero-based shared device index CX = zero-based user index DS:SI -> server's node ID Return: CF clear if successful ES:DI -> node ID of the CX'th user of the BX'th device CF set on error AX = status (see #03740) SeeAlso: AX=9501h,AX=9502h,AX=9503h --------N-6F99------------------------------- INT 6F - 10NET v5.0 - AUDIT AH = 99h DS:SI -> server's node ID ES:DI -> data to be appended to audit trail file (max 106 bytes) Return: CF clear if successful CF set on error AX = status (see #03740) SeeAlso: AH=19h,AH=9Ch --------N-6F9C------------------------------- INT 6F - 10NET v5.0 - GET LOGIN LIST AH = 9Ch BX = zero-based index Return: CF clear if successful DS:DI -> BX'th node ID that caller's machine is logged into CF set on error AX = status (see #03740) --------H-70--------------------------------- INT 70 C - IRQ8 - CMOS REAL-TIME CLOCK Desc: this interrupt is called when the real-time clock chip generates an alarm or periodic interrupt, among others (see CMOS 0Bh). The periodic interrupt by default occurs 1024 times per second. Notes: many BIOSes turn off the periodic interrupt in the INT 70h handler unless in an event wait (see INT 15/AH=83h,INT 15/AH=86h). may be masked by setting bit 0 on I/O port A1h SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview",MEM FEE00320h SeeAlso: MEM 0040h:006Bh --------v-70--------------------------------- INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR Note: the virus sets this interrupt to be the same as INT 21, and then performs only INT 70 calls; since INT 70 is also generated by the real-time clock on the PC/AT and higher, this could cause random actions on an infected system SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS" --------H-71--------------------------------- INT 71 C - IRQ9 - REDIRECTED TO INT 0A BY BIOS Notes: may be masked by setting bit 1 on I/O port A1h the default BIOS handler invokes INT 0A for compatibility, since the pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the AT expansion bus. under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process SeeAlso: INT 0A"IRQ2",INT 59"IRQ9",MEM 0040h:006Bh --------H-72--------------------------------- INT 72 C - IRQ10 - RESERVED Notes: may be masked by setting bit 2 on I/O port A1h DOS 3.3+ revectors IRQ10 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 5A"IRQ10",MEM 0040h:006Bh --------H-73--------------------------------- INT 73 C - IRQ11 - RESERVED Notes: may be masked by setting bit 3 on I/O port A1h DOS 3.3+ revectors IRQ11 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 5B"IRQ11",MEM 0040h:006Bh --------H-74--------------------------------- INT 74 C - IRQ12 - POINTING DEVICE (PS) Notes: may be masked by setting bit 4 on I/O port A1h DOS 3.3+ revectors IRQ12 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process SeeAlso: INT 33/AX=0000h,INT 33/AX=0024h,INT 5C"NetBIOS",MEM 0040h:006Bh --------H-75--------------------------------- INT 75 C - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up) Desc: redirected to INT 02 by the BIOS, for compatibility with the PC Notes: may be masked by setting bit 5 on I/O port A1h not all clones wire the coprocessor to generate this IRQ; some systems generate an NMI (see INT 02) or assert the -ERROR pin on the CPU (see INT 10"COPROCESSOR") under DESQview, only the INT 15h vector and BASIC segment address (the word at 0000h:0510h) may be assumed to be valid for the handler's process SeeAlso: INT 10"COPROCESSOR",INT 5D"IRQ13",MEM 0040h:006Bh --------H-76--------------------------------- INT 76 C - IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE (AT and later) Notes: may be masked by setting bit 6 on I/O port A1h DOS 3.3+ revectors IRQ14 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ on the PS/2, this interrupt is designed to be shared with other devices that produce an operation-complete interrupt, though the only current user is the hard disk SeeAlso: INT 0E"IRQ6",INT 15/AH=91h,INT 5E"IRQ14",MEM 0040h:006Bh --------H-77--------------------------------- INT 77 C - IRQ15 - RESERVED (AT,PS) Notes: may be masked by setting bit 7 on I/O port A1h DOS 3.3+ revectors IRQ15 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 5F"IRQ15",MEM 0040h:006Bh --------H-77--------------------------------- INT 77 C - IRQ15 - SECONDARY IDE CONTROLLER - OPERATION COMPLETE Notes: may be masked by setting bit 7 on I/O port A1h DOS 3.3+ revectors IRQ15 to a stack-switching routine unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ SeeAlso: INT 5F"IRQ15",MEM 0040h:006Bh --------H-77--------------------------------- INT 77 C - IRQ15 - POWER CONSERVATION (Compaq SLT/286) Note: may be masked by setting bit 7 on I/O port A1h SeeAlso: INT 15/AX=4600h,INT 5F"IRQ15" --------E-78--------------------------------- INT 78 - UofSalford DBOS DOS extender - API AH = function 00h (PB) display 32-bit memory specified by command argument 01h (PT) display 32-bit instruction(s) specified by command arg 02h specify offset to subsequent PB and PT commands 03h switch to protected mode DWORD following INT instruction point to map; protected-mode entry point is immediately following the DWORD Return: never Note: if bit 31 of the map address is set, only a stub was loaded by DOS and DBOS will load the entire program 04h specify that subsequent load (AH=03h) should leave program in memory 05h release program from memory 06h set break point at address and option count from commandline 07h resume program execution 08h single-step program 09h set read/write breakpoint using 386 debug registers 0Ah set write breakpoint using 386 debug register 0Bh set memory byte to new value 0Ch display CPU registers 0Dh run until specified program address reached 0Fh print trace from program map 10h specify an offset using a map symbol 14h print memory without any offset 18h switch DBOS into/out of test mode (ON/OFF commandline args) 1Dh get address of real/protected-mode communication buffer Return: ES:BP -> comm buffer 1Eh set real-mode memory size (specify how much real-mode memory to leave free when running FTN77 programs) 22h uninstall DBOS 24h force DBOS to emulate coprocessor instructions 26h set named DBOS switches from commandline 27h reset named DBOS switched from commandline 2Ah set list of dynamic link libraries to contents of commandline file 35h specify that subsequent load (AH=03h) should stop at first instruction Return: ??? Notes: DBOS supports functions 00h through 50h; many of these functions provide a low-level debugging interface command arguments are read from the calling program's PSP SeeAlso: INT 79"DBOS" Index: uninstall;DBOS DOS extender --------E-78--------------------------------- INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0 Program: GO32.EXE is a DOS extender included as part of the 80386 port of the GNU C/C++ compiler by DJ Delorie and distributed as DJGPP Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32" --------A-78--------------------------------- INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND AX = function 0001h begin plot BX = file level 0000h ASCII file 0001h binary file 0002h AutoCAD DXB file 0003h installed ADI driver 0002h end plot (close plotter) 0003h move (pen up) BX = new X position CX = new Y position 0004h move (pen down) BX = new X position CX = new Y position 0005h select pen BX = pen number 0006h select drawing speed BX = drawing speed N 0007h select line style BX = line style N 0008h raise pen 0009h abort plot Return: AX = 0000h (may be used for driver status in future releases) SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD" --------d-78--------------------------------- INT 78 - ADP-60 IDE controller - ORIGINAL INT 13 SeeAlso: INT 79"ADP-60" --------s-78------------------------------- INT 78 - ULTRAMID - API AX = function --- digital functions --- 0000h start digital ES:DI -> Sound Structure Return: AX = voice used 0001h play next buffer ES:DI -> Sound Structure 0002h set panning BX = pan CX = voice 0003h set volume BX = volume CX = voice 0004h set rate (not yet implemented) 0005h pause digital CX = voice 0006h restart digital CX = voice 0007h stop digital CX = voice 0008h get digital position CX = voice Return: AX:DX -> position in PC buffer 0009h get voice status (not yet implemented) --- MIDI functions --- 000Ah load MIDI patches ES:DI -> MIDI track just after the Mtrk header BX:DX = length of MIDI track 000Bh load XMIDI patches ES:DI -> event buffer including the EVNT header 000Ch load patch CX = MIDI number of patch 000Dh unload patch CX = MIDI number of patch 000Eh start sequence 000Fh unload all patches 0010h MIDI out byte CX = MIDI byte 0011h MIDI out string CX = length ES:DI -> string of MIDI data 0012h all notes off --- resource functions --- 0013h allocate memory BX:DX = size of GUS memory needed Return: AX:DX = address of memory, or 0000:0000 if not avaiable 0014h free memory BX:DX = address of memory to be freed 0015h uninstall 0016h sem enter 0017h sem leave 0018h add external semaphore BX:DX -> external semaphore 0019h clear external semaphore BX:DX -> external semaphore 001Ah application start 001Bh application end --- v1.12 --- 001Ch ??? 001Dh ??? 001Eh ??? 001Fh ??? Program: UltraMid is a TSR from Advanced Gravis to play MIDI and digital data through the Gravis UltraSound (GUS) InstallCheck: test for the signature "ULTRAMID" at offset 0103h in the interrupt handler's segment Range: INT 78 to INT 7F SeeAlso: INT 2F/AX=CD00h"ULTRAMID",INT 7E/AH=00h"SBOS",INT 7E/AX=00FEh"SBOS" Index: uninstall;UltraMID --------d-7800------------------------------- INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT AH = 00h DX = interface board I/O port Return: CF set on error AL = error code (see #03786) InstallCheck: (used by TARGA.DEV) test for the string "SCSI" at offset 03h into the interrupt handler Note: if this routine is not called, the port is the driver's default (usually 0280h or 0300h) SeeAlso: AH=01h,AH=02h Index: installation check;TARGA.DEV (Table 03786) Values for TARGA.DEV error code: 00h illegal command given to SCSI code 01h invalid I/O port specified (must be from 100H to 3F8H, and must be on an 8-port boundary) 02h invalid DMA channel specified (must be from 1 to 3) 03h invalid SCSI board number specified (must be from 0 to 7) 04h error from data register test during self-test 05h SCSI input signals not all 0 when SCSI RST activated 06h SCSI input signals not all 0 before selecting a SCSI device 07h BSY signal is active; SCSI bus is busy 08h SCSI board not selected, BSY signal did not come on in response to raising SEL 09h time-out waiting for status state, signifying end of DMA transfer --------E-780000----------------------------- INT 78 - HugeRealMode Driver - INSTALLATION CHECK AX = 0000h Return: AX = DBCAh if installed Program: the HugeRealMode driver was published in the German DOS Extra Nr. 20 (1992), and makes a 4G flat address space (for both data and code) available to real-mode DOS programs SeeAlso: AX=0001h --------E-780001----------------------------- INT 78 - HugeRealMode Driver - GET ENTRY POINT AX = 0001h Return: ES:BX -> far call entry point (see #03788,#03803) SeeAlso: AX=0000h (Table 03787) Values for HugeRealMode Server error code: 00h successful 01h unknown function 02h A20 disabled 03h A20 enabled 04h memory allocation error 05h memory not fixeable (LOCK) 06h memory not deallocaable 07h memory not moveable (UNLOCK) 08h change in memory allocation size not possible 09h file error (with .XMF-file) 0Ah memory error (with .XMF-file) 0Bh unknown procedure (currently Turbo Pascal unit only) (Table 03788) Call HugeRealMode Server "Enable A20" function with: AL = 00h Return: AX = error code (see #03787) Note: The HugeRealMode Server requires an XMS-driver like HIMEM.SYS loaded before HUGEREAL (for XMS-memory allocation and A20 control). It utilizes some undocumented 386+ features to enable 4G code and data segments (flat memory model) in the CPUs real-mode. It is not compatible with V86-mode (as with most EMM386). For maximum speed and compatibility with DOS it uses a two stage interrupt model (see #03791) SeeAlso: #03789,#03790,#03791 (Table 03789) Call HugeRealMode Server "Disable A20" function with: AL = 01h Return: AX = error code (see #03787) SeeAlso: #03788,#03790 (Table 03790) Call HugeRealMode Server "Query A20 State" function with: AL = 02h Return: AX = A20 state (0000h disabled, 0001h enabled) SeeAlso: #03788,#03789 (Table 03791) Call HugeRealMode Server "Enable Two-Stage Interrupt Model" function with: AL = 03h Return: AX = error code (see #03787) Notes: If the two stage interrupt model is disabled, the IP must stay below 1MB, because the high word of EIP is not saved correctly by the standard interrupt management in real mode. Routines in extended memory may only be called with interrupts disabled (only usable for very short routines). If the two stage interupt model is enabled, these conventions are not required. The outer (transparent) ISRs save the higher word of EIP in the high word of CR3 (possible modification: in memory, if this is not safe) and then invoke the standard ISRs. Because of this handling, one should use pseudo segmented code even in extended memory (64K blocks located on 64K boundaries) to avoid the misalignment of the saved EIP (in CR3). Another way is to track and realign CR3 each time when jumping over a 64K boundary in extended memory SeeAlso: #03788,#03792 (Table 03792) Call HugeRealMode Server "Disable Two-Stage Interrupt Model" function with: AL = 04h Return: AX = error code (see #03787) SeeAlso: #03788,#03791 (Table 03793) Call HugeRealMode Server "Get Segment Address Of Server-Management Range" with: AL = 05h Return: AX = error code (see #03787) ES = segment address SeeAlso: #03803 (Table 03794) Call HugeRealMode Server "Allocate Memory" function with: AL = 06h DX = length in KB Return: AX = error code (see #03787) DX = handle EBX = start address of allocated block SeeAlso: #03795,#03796 (Table 03795) Call HugeRealMode Server "Deallocate Memory" function with: AL = 07h DX = handle Return: AX = error code (see #03787) SeeAlso: #03794,#03796 (Table 03796) Call HugeRealMode Server "Modify Allocated Memory Size" function with: AL = 08h DX = handle BX = new size in KB Return: AX = error code (see #03787) EBX = new address SeeAlso: #03794,#03795 (Table 03797) Call HugeRealMode Server "Load .XMF-file" function with: AL = 09h ES:BX -> filename (see #03798) Return: AX = error code (see #03787) ECX = target address Notes: memory must be allocated before loading .XMF file format (eXtended Memory executable File format) is supported by the HugeRealMode server for easier handling of XMS-code. The utility CONFXMF converts .OBJ-files (.COM 'tiny' model) to .XMF-format SeeAlso: #03794 Format of .XMF program file header: Offset Size Description (Table 03798) 00h DWORD signature "XMF_" 04h WORD length of programs code 06h WORD count of 32bit addresses to relocate 08h WORD offset to code start (releative to file start) (see #03799) 0Ah WORD relocation table Note: each word contains a 16bit address, where a relocation has to be performed SeeAlso: #03797,#03799 Format of .XMF-file code header: Offset Size Description (Table 03799) 00h WORD count of exported functions 02h N PWORDs 48bit pointers (16bit segment+32bit offset) to each function (16bit segment is always zero) var start of program's code SeeAlso: #03797,#03798 (Table 03800) Call HugeRealMode Server "Set Segment Limits" function with: AL = 0Ah BL = segment limits (see #03801) Return: AX = error code (see #03787) SeeAlso: #03793 Bitfields for HugeRealMode Server segment limits: Bit(s) Description (Table 03801) 7 CS size: 1=4GB, 0=64KB 6-5 not used 4 SS size: 1=4GB, 0=64KB 3 GS size 2 FS size 1 ES size 0 DS size SeeAlso: #03800 (Table 03802) Call HugeRealMode Server "Transfer Memory From DOS To XMS" function with: AL = 0Bh ES:SI = source address EDI = target address ECX = length Return: AX = error code SeeAlso: #03803 (Table 03803) Call HugeRealMode Server "Transfer Memory From XMS To DOS" function with: AL = 0Ch ESI = source address ES:DI = target address ECX = length Return: AX = error code SeeAlso: #03802 --------d-7801------------------------------- INT 78 - TARGA.DEV - GET I/O PORT AH = 01h Return: DX = current interface board I/O port SeeAlso: AH=00h,AH=03h"TARGA" --------d-7802------------------------------- INT 78 - TARGA.DEV - SET DMA CHANNEL AH = 02h AL = interface board DMA channel Return: CF set on error AL = error code (see #03786) Note: if this routine is not called, the DMA channel is the driver's default (usually 3) SeeAlso: AH=00h,AH=03h"TARGA" --------d-7803------------------------------- INT 78 - TARGA.DEV - GET DMA CHANNEL AH = 03h Return: AL = current interface board DMA channel SeeAlso: AH=01h,AH=02h --------d-7804------------------------------- INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER AH = 04h AL = SCSI device number Return: CF set on error AL = error code (see #03786) Note: if this routine is not called, the device number used is the driver's default (usually 0) SeeAlso: AH=02h,AH=05h --------d-7805------------------------------- INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER AH = 05h Return: AL = current SCSI device number SeeAlso: AH=03h"TARGA",AH=04h --------d-7806------------------------------- INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE AH = 06h AL = new state 00h clear early return mode 01h set early return mode Note: if early return mode is set then SCSI will return with no errors when the last DMA transfer is started in a call with AH=13h or AH=14h if this routine is not called, early return mode is cleared SeeAlso: AH=13h,AH=14h,AH=15h --------d-7808------------------------------- INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST AH = 08h Return: CF set on error AL = error code (see #03786) Note: the SCSI bus is also reset SeeAlso: AH=09h --------d-7809------------------------------- INT 78 - TARGA.DEV - RESET SCSI BUS AH = 09h Return: AL = error code if carry set (see #03786) SeeAlso: AH=08h --------d-7810------------------------------- INT 78 - TARGA.DEV - SEND SCSI COMMAND AH = 10h DS:SI -> command bytes (see #03804) Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) SeeAlso: AH=11h,INT 21/AX=4403h"ST-01" Format of SCSI Command: Offset Size Description (Table 03804) 00h BYTE length of command 01h ??? command bytes --------d-7811------------------------------- INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O) AH = 11h DS:SI -> command bytes (see #03805) ES:BX -> data storage area CX = number of data bytes to transfer Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) Note: this command receives data internally one byte at a time SeeAlso: AH=10h,AH=13h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03805) 00h BYTE length of command 01h ??? command bytes --------d-7812------------------------------- INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O) AH = 12h DS:SI -> command bytes (see #03806) ES:BX -> data storage area CX = number of data bytes to transfer Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) Note: this command sends data internally one byte at a time SeeAlso: AH=14h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03806) 00h BYTE length of command 01h ??? command bytes --------d-7813------------------------------- INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA) AH = 13h DS:SI -> command bytes (see #03807) ES:BX -> data storage area DX:CX = number of data bytes to transfer Return: AH = SCSI status byte (if early return mode is clear) CF clear if successful AL = SCSI message byte (if early return mode is clear) CF set on error AL = error code (see #03786) Note: this command receives data using DMA SeeAlso: AH=11h,AH=12h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03807) 00h BYTE length of command 01h ??? command bytes --------d-7814------------------------------- INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA) AH = 14h DS:SI -> command bytes (see #03808) ES:BX -> data storage area DX:CX = number of data bytes to transfer Return: AH = SCSI status byte (if early return mode is clear) CF clear if successful AL = SCSI message byte (if early return mode is clear) CF set on error AL = error code (see #03786) Note: this command sends data using DMA SeeAlso: AH=12h,AH=13h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03808) 00h BYTE length of command 01h ??? command bytes --------d-7815------------------------------- INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA) AH = 15h Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) Note: if AH=06h was previously called to set the early return mode, this function finishes a command AH=13h or AH=14h which returned before the last DMA transfer was finished SeeAlso: AH=06h,AH=13h,AH=14h --------V-79--------------------------------- INT 79 - AVATAR.SYS - FAST GET KEYSTROKE Return: CF set if no keystroke available AX = FFFFh CF clear if key pressed AX = keystroke Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets AVATAR command codes just as ANSI.SYS interprets ANSI commands Note: if a keystroke is available, it is removed from the keyboard buffer before being returned SeeAlso: INT 29,INT 2F/AX=1A00h/BX=4156h --------E-79--------------------------------- INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32" --------d-79--------------------------------- INT 79 U - ADP-60 IDE adapter - ??? SeeAlso: INT 78"ADP-60" --------E-79--------------------------------- INT 79 - DBOS DOS Extender details not available Desc: this interrupt is used by an MS Windows virtual device driver with which the DBOS extender communicates when run inside a Windows Enhanced Mode DOS box SeeAlso: INT 78"DBOS" --------A-790001----------------------------- INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE AX = 0001h BX = interface level (0001h) Return: AX = status (0000h initialization failed, 0001h init successful) BX = digitizer type 0000h relative pointing device (mouse, etc.) 0001h digitizing tablet CX = digitizer dataflow type 0000h continuous 0001h pauses between packets SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD" --------A-790002----------------------------- INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE AX = 0002h SeeAlso: AX=0001h,AX=0003h --------A-790003----------------------------- INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS AX = 0003h Return: AX = status 0000h nothing 0002h tracking point (no button pressed) BX = X coordinate CX = Y coordinate 0003h picked point (button 0,A,B,C,D pressed) BX = X coordinate CX = Y coordinate 0004h button pick BX = button number 0005h button and coordinates BX = button number CX = X coordinate DX = Y coordinate SeeAlso: AX=0001h,AX=0002h --------N-7A--------------------------------- INT 7A U - Topware Network Operating System - ??? AL = ??? ??? Return: ??? SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00h --------N-7A--------------------------------- INT 7A - X.PC Packet software interface ES:BX -> parameter block SeeAlso: INT 60/AX=01FFh --------E-7A--------------------------------- INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2 Program: GO32.EXE is a DOS extender included as part of the 80386 port of the GNU C/C++ compiler by DJ Delorie and distributed as DJGPP Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0A"IRQ2",INT 79"GO32",INT 7B"GO32" --------P-7A--------------------------------- INT 7A O - PRINDIR - API (moved to INT 7C, then INT 2F/AX=7F00h) SeeAlso: INT 7C"PRINDIR",INT 2F/AX=7F00h"PRINDIR" --------N-7A--------------------------------- INT 7A - Novell NetWare - LOW-LEVEL API - Notes Note: this interrupt is used for IPX/SPX access in NetWare versions through 2.0a; in later versions, you should use INT 2F/AX=7A00h to get an entry point even though INT 7A still exists. For both INT 7A and the FAR entry point, BX contains the function number; IPX is sometimes called internally with BX bit 15 set, which causes the handler to bypass some initial checks and an optional call to the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h (see #02926) SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h --------N-7A----BX0000----------------------- INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET BX = 0000h AL = socket longevity 00h open until close or terminate FFh open until close DX = socket number (high byte in DL) 0000h dynamic allocation else socket to open (see #03809) Return: AL = return code 00h success DX = socket number FEh socket table full FFh socket already open Notes: TSRs which need to use sockets should set AL to FFh, non-resident programs should normally use AL=00h IPX can be configured to support up to 150 open sockets on a workstation, and defaults to 20 this function is supported by Advanced NetWare 1.02+ SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h (Table 03809) Values for IPX socket number: 0451h File Service (NetWare Core Protocol) 0452h Service Advertising Protocol (SAP) (see #03817) 0453h Routing Information Packet (see #03820) 0455h NetBIOS Packet 0456h diagnostics 0457h server serial numbers (labeled "Copy Protection" by Lanalyzer) 2222h NetWare Core Protocol 4000h-7FFFh used for dynamic allocation 4000h \ seem to be used by IPX internally 4001h / 4444h Brightwork Development's SiteLock server 5555h Brightwork Development's SiteLock client (workstation) 8000h-FFFFh assigned by Novell 869Ch ID Software's DOOM 901Fh Lancheck 9023h Server info (NetWare "Slurpee", NetWare Lite, Personal NetWare) 9024h Client info (NetWare "Slurpee", NetWare Lite, Personal NetWare) 9025h Serial socket (NetWare "Slurpee", NetWare Lite, Personal NetWare) 9026h Extension info (NetWare Lite, Personal NetWare???) Notes: SiteLock is an application metering product using IPX to communicate between the application and the license server IPX socket numbers should be registered with the Novell Development Products Division SeeAlso: INT 7A/BX=0001h --------N-7A----BX0001----------------------- INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET BX = 0001h DX = socket number (high byte in DL) (see #03809) Notes: also cancels events set by any Event Control Blocks for the socket the program must close all open sockets before terminating this function is supported by Advanced NetWare 1.02+ When the NetWare-specific release of the DR DOS command processor does a NetWare shutdown sequence on exit, it will close all user sockets except for socket numbers 4000 and 4001, which seem to be used by IPX internally. SeeAlso: BX=0000h --------N-7A----BX0002----------------------- INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET BX = 0002h ES:SI -> target internetwork address (see #03824 at INT 7A/BX=000Bh) ES:DI -> 6-byte buffer for local target Return: AL = return code 00h success CX = expected one-way transfer time (clock ticks) for a 576-byte packet ES:DI -> local target FAh unsuccessful (no path to destination) Notes: the internetwork address consists of a 4-byte network address followed by a 6-byte node address. The local target is only a 6-byte node address. If the target is in the same network, the local target is just the node address of target; otherwise, the local target is the node address of the bridge that leads to the target. this function may be called from inside IPX and AES Event Service Routines, but not from other interrupt handlers this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0009h --------N-7A----BX0003----------------------- INT 7A - Novell NetWare - IPX Driver - SEND PACKET BX = 0003h ES:SI -> Event Control Block (see #03810,#03811) Notes: returns immediately; IPX attempts to send the packet in the background this function is supported by Advanced NetWare 1.02+ this function is nearly identical to BX=000Fh, except that it always copies the source address into the IPX header assumed to be at the beginning of the first fragment SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell" Format of IPX Event Control Block: Offset Size Description (Table 03810) 00h DWORD Link 04h DWORD -> Event Service Routine (00000000h if none) (see #03814) 08h BYTE in use flag (see #03812) 09h BYTE completion code (see #03813) 0Ah WORD (big-endian) socket number (see #03809) 0Ch 4 BYTEs IPX workspace 10h 12 BYTEs driver workspace 1Ch 6 BYTEs immediate local node address 22h WORD fragment count 24h var fragment descriptors Offset Size Description 00h DWORD -> fragment data 04h WORD size of fragment in bytes. Notes: ESR is a far procedure that is called when the ECB has been handled. On call, the in use flag is zero if the ECB has been handled, non-zero otherwise. If the flag is zero, the completion code holds the result of the event. the first fragment should start with an IPX header (see #03815) all fragments are concatenated and sent in one piece node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes SeeAlso: #03811 Format of AES-ECB: Offset Size Description (Table 03811) 00h DWORD Link 04h DWORD ESR (Event Service Routine) address (see #03814) 08h BYTE in use flag (see #03812) 09h 5 BYTEs AES workspace SeeAlso: #03810 (Table 03812) Values for ECB in use flag: 00h available E0h AES temporary F6h \ special IPX/SPX processing for v3.02+ F7h / F8h IPX in critical section F9h SPX listening FAh processing FBh holding FCh AES waiting FDh AES couting down delay time FEh awaiting packet reception FFh sending packet SeeAlso: #03810,#03811,#03813 (Table 03813) Values for ECB completion code: 00h success ECh remote terminated connection without acknowledging packet EDh abnormal connection termination EEh invalid connection ID EFh SPX connection table full F9h event should not be cancelled FAh cannot establish connection with specified destination FCh cancelled FDh malformed packet FEh packet undeliverable FFh physical error SeeAlso: #03810,#03812 (Table 03814) Values Event Service Routine is called with: AL = caller's identity (00h = AES, FFh = IPX) ES:SI -> event control block interrupts disabled Return: all registers preserved SeeAlso: #03810,#03815 Format of IPX header: Offset Size Description (Table 03815) 00h WORD (big-endian) checksum 02h WORD (big-endian) length in bytes of total packet 04h BYTE transport control 05h BYTE packet type (see #03816) 06h 10 BYTEs destination internetwork address 10h WORD (big-endian) destination socket 12h 10 BYTEs source internetwork address 1Ch WORD (big-endian) source socket Notes: an IPX packet has the identical format as a Xerox Network Standard (XNS) packet the application must set packet type, destination address, and destination socket; IPX/SPX set the remaining fields SeeAlso: #03810,#03826 (Table 03816) Values for IPX packet type: 00h unknown packet type 01h routing information packet 02h echo packet 03h error packet 04h packet exchange packet (always use this one for data) 05h SPX packet (see #03826) 11h NetWare Core Protocol (also used by Service Advertising Protocol) 14h Propagated Packet (for NetWare), NetBIOS name packet 15h-1Eh experimental protocols Note: undocumented packet type 14h will cross up to 16 networks deep in all directions; as Aaron Martin of Origin Systems discovered, the first 64 bytes of the IPX data in such packets should be considered reserved, as IPX places the traversed server nodes there. Format of Service Advertising Protocol Service Query Packet: Offset Size Description (Table 03817) 00h 30 BYTEs IPX header 1Eh WORD (big-endian) query type 0001h general find service 0003h find nearest server 20h WORD (big-endian) server type (see #01890 at INT 21/AH=E3h"CONNECTION CONTROL") SeeAlso: #03818 Format of Service Advertising Protocol Server Identification Packet: Offset Size Description (Table 03818) 00h 30 BYTEs IPX header 1Eh WORD (big-endian) response type 0002h general service 0004h nearest service 20h 64N BYTEs server entries (1-7) (see #03819) SeeAlso: #03817,#03820 Format of SAP server entry: Offset Size Description (Table 03819) 00h WORD (big-endian) server type (see #01890 at INT 21/AH=E3h"CONNECTION CONTROL") 02h 48 BYTEs ASCIZ server name 32h 2 WORDs (big-endian) network number 34h 3 WORDs (big-endian) node number 3Ch WORD (big-endian) socket number 3Eh WORD (big-endian) number of hops between caller and server 10h = Server Shutdown Advertising Packet SeeAlso: #03818 Format of IPX Routing Information packet: Offset Size Description (Table 03820) 00h 30 BYTEs IPX header 1Eh WORD operation (0001h request, 0002h response) 20h 8N BYTEs network entries (1-50) (see #03821) SeeAlso: #03818 Format of RIP network entry: Offset Size Description (Table 03821) 00h DWORD network number (FFFFFFFFh = general request) 04h WORD (response) number of hops 06h WORD (response) number of clock ticks to reach destination --------N-7A----BX0004----------------------- INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET BX = 0004h ES:SI -> Event Control Block (see BX=0003h) Return: AL = status 00h successful FFh no listening socket for packet Desc: this function provides IPX with an ECB for receiving an IPX packet, but does not wait for a packet to arrive Notes: the application must open a socket and initialize the ECB's ESR address, socket number, fragment count, and fragment descriptor fields before invoking this function there is no limit on the number of ECBs which may simultaneously be listening on a socket this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0000h,BX=0003h --------N-7A----BX0005----------------------- INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT BX = 0005h AX = delay time in clock ticks ES:SI -> Event Control Block (see BX=0003h) Note: this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0006h,BX=0007h,BX=0008h --------N-7A----BX0006----------------------- INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT BX = 0006h ES:SI -> Event Control Block (see BX=0003h) Return: AL = return code (see #03822) Notes: cannot cancel packets which the node's driver has already sent this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0005h (Table 03822) Values for IPX return code: 00h success F9h event in use FCh event cancelled FFh unsuccessful, event not in use, or unrecognized ECB flag --------N-7A----BX0007----------------------- INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT BX = 0007h AX = delay time ES:SI -> Event Control Block (see BX=0003h) Note: this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0006h --------N-7A----BX0008----------------------- INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER BX = 0008h Return: AX = interval marker in clock ticks (big-endian???) Notes: may be used to measure the time elapsed between two events, up to one hour this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0005h --------N-7A----BX0009----------------------- INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS BX = 0009h ES:SI -> buffer for own internetwork address (see #03823) Return: ES:SI buffer filled SI destroyed Note: this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0002h,BX=000Bh Format of IPX internetwork address: Offset Size Description (Table 03823) 00h 4 BYTEs (big-endian) network number 04h 6 BYTEs (big-endian) node number within network --------N-7A----BX000A----------------------- INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL BX = 000Ah Desc: this call indicates that the application is idle and permits the IPX driver to do some work Note: this function is supported by Advanced NetWare 1.02+ SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h --------N-7A----BX000B----------------------- INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET BX = 000Bh ES:SI -> internetwork address (see #03824) Return: nothing Notes: this function permits the network software on the remote machine to remove any virtual connection with the calling machine only use in point-to-point networks should never be called from within an Event Service Routine this function is supported by Advanced NetWare 1.02+ SeeAlso: BX=0002h,BX=0009h Format of IPX internetwork address: Offset Size Description (Table 03824) 00h 4 BYTEs (big-endian) destination network 04h 6 BYTEs (big-endian) destination node 0Ah 2 BYTEs (big-endian) destination socket --------N-7A----BX000C----------------------- INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS BX = 000Ch CX:DX = global network address (see INT 7A/BX=0002h) ES:DI -> "OSINCRITICALSECTION" flag DS:SI -> current mode for socket Note: the address cannot be changed once it has been initialized SeeAlso: INT 7A/BX=0024h --------N-7A----BX000D----------------------- INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE BX = 000Dh Return: AX = maximum packet size CX = retry count SeeAlso: BX=001Ah --------N-7A----BX000E----------------------- INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS BX = 000Eh Return: nothing Notes: this function terminates all sockets opened with the current mode; this may be intended for future enhancements as the socket mode never changes in v2.15 called by the NetWare shell if a program terminates --------N-7A----BX000F----------------------- INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET BX = 000Fh ES:SI -> Event Control Block (see #03810 at BX=0003h) IPX header's checksum field must be set to FFFFh (see #03815) IPX header's total-length field must be set Note: nearly identical to function 0003h, but does not copy address into the first fragment, and bypasses normal error checking SeeAlso: BX=0003h --------N-7A----BX0010----------------------- INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK BX = 0010h AL = 00h Return: AL = status 00h if SPX not installed F0h if IPX not installed FFh if SPX loaded BH = SPX major version BL = SPX minor version CX = maximum SPX connections DX = SPX connections available Notes: this function is supported by Advanced NetWare 2.1+ this interrupt is used for IPX/SPX access in NetWare versions through 2.0a; in later versions, you should use INT 2F/AX=7A00h to get an entry point even though INT 7A still exists. For both INT 7A and the FAR entry point, BX contains the function number IPX is sometimes called internally with BX bit 15 set, which causes the entry point handler to bypass some checks and an optional call to the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h (see #02926) SeeAlso: BX=0015h --------N-7A----BX0011----------------------- INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION BX = 0011h AL = retry count AH = watchdog flag ES:SI -> Event Control Block (see #03810 at BX=0003h) Return: AL = status (00h,EFh,FDh,FFh) (see #03825) DX = assigned connection ID number Desc: attempt to establish a connection with a listening socket Notes: there should always be at least two SPX ECB's listening to a socket, so that NetWare can perform its internal packet exchanges the first fragment should start with a SPX header (see #03826). Fill in all destination addresses. this function is supported by Advanced NetWare 2.1+ SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h (Table 03825) Values for SPX function status: 00h attempting to contact destination socket EEh no such connection EFh local connection table full FDh buffer size not 42 or fragment count not 1 FFh sending socket not open Format of SPX header: Offset Size Description (Table 03826) 00h WORD (big-endian) checksum 02h WORD (big-endian) length in bytes of total packet 04h BYTE transport control 05h BYTE packet type (see #03816 at INT 7A/BX=0003h) 06h 10 BYTEs destination internet address 10h WORD (big-endian) destination socket 12h 10 BYTEs source internet address 1Ch WORD (big-endian) source socket 1Eh BYTE connection control (see #03827) 1Fh BYTE datastream type FEh terminate connection request packet FFh terminate connection acknowledgement packet other user-defined, ignored by SPX 20h WORD (big-endian) source connection ID 22h WORD (big-endian) destination connection ID 24h WORD (big-endian) sequence number 26h WORD (big-endian) acknowledge number 28h WORD (big-endian) allocation number SeeAlso: #03815 Bitfields for SPX connection control: Bit(s) Description (Table 03827) 3-0 unused??? 4 end of message 5 reserved 6 acknowledgement required 7 system packet --------N-7A----BX0012----------------------- INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION BX = 0012h AH = watchdog flag (00h disabled, 01h enabled) AL = retry count (00h = default) ES:SI -> Event Control Block (see #03810 at BX=0003h) Return: nothing Notes: there should always be at least two SPX ECB's listening to a socket, so that NetWare can perform its internal packet exchanges this function is supported by Advanced NetWare 2.1+ SeeAlso: BX=0011h,BX=0013h,BX=0014h --------N-7A----BX0013----------------------- INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION BX = 0013h DX = connection ID to terminate ES:SI -> Event Control Block (see #03810 at BX=0003h) Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: BX=0011h,BX=0012h,BX=0014h --------N-7A----BX0014----------------------- INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION BX = 0014h DX = connection ID to terminate Return: nothing Notes: this function is supported by Advanced NetWare 2.1+ this function does not tell the other side that the connection has been terminated also aborts any outstanding Establish Connection, Terminate Connection, and Send Sequenced Packet commands SeeAlso: BX=0011h,BX=0013h --------N-7A----BX0015----------------------- INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS BX = 0015h DX = connection ID ES:SI -> status buffer (see #03828) Return: AL = return code (00h,EEh) (see also #03825) 00h connection still valid ES:SI -> status buffer filled Note: this function is supported by Advanced NetWare 2.1+ SeeAlso: BX=0010h,BX=0011h Format of SPX status buffer: Offset Size Description (Table 03828) 00h BYTE connection state 01h waiting to establish connection 02h starting (attempting to create connection) 03h connection established 04h terminating 01h BYTE watchdog flag bit 0: used internally by SPX bit 1: SPX watchdog is monitoring connection bits 2-7 used internally by SPX 02h WORD (big-endian) source connection ID 04h WORD (big-endian) destination connection ID 06h WORD (big-endian) sequence number of next packet sent 08h WORD (big-endian) acknowledge number, expected sequence number of next received packet 0Ah WORD (big-endian) maximum sequence number remote SPX may send without ACK from local SPX 0Ch WORD (big-endian) remote acknowledge number, next sequence number remote SPX expects to receive 0Eh WORD (big-endian) remote allocation number, maximum sequence number local SPX may send 10h WORD (big-endian) connection socket 12h 6 BYTEs immediate node address--bridge on local network to destination 18h 10 BYTEs destination internetwork address (see #03824 at INT 7A/BX=000Bh) 22h WORD (big-endian) retransmit count 24h WORD (big-endian) estimated roundtrip delay 26h WORD (big-endian) retransmitted packets 28h WORD (big-endian) suppressed packets 2Ah 12 BYTEs ??? (v2.15) --------N-7A----BX0016----------------------- INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET BX = 0016h DX = connection ID ES:SI -> Event Control Block (see BX=0003h) Notes: this function is supported by Advanced NetWare 2.1+ CX may need to be 0001h ??? SeeAlso: BX=0011h,BX=0017h --------N-7A----BX0017----------------------- INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET BX = 0017h DX = connection ID (unused in v2.15) ES:SI -> Event Control Block (see BX=0003h) Notes: this function is supported by Advanced NetWare 2.1+ CX may need to be 0001h ??? SeeAlso: BX=0011h,BX=0016h --------N-7A----BX0018----------------------- INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT BX = 0018h ES:SI -> diagnostic element (see #03829) to be added to Diagnostic Queue Note: this function is supported on file servers only under v2.15; v3.02 also supports it on workstations SeeAlso: BX=0019h Format of IPX diagnostic element: Offset Size Description (Table 03829) 00h DWORD pointer to next diagnostic element 04h DWORD pointer to function for ??? 08h DWORD pointer to function for ??? --------N-7A----BX0019----------------------- INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT BX = 0019h ES:SI -> diagnostic element (see BX=0018h) to be removed Note: this function is supported on file servers only under v2.15; v3.02 also supports it on workstations SeeAlso: BX=0018h --------N-7A----BX001A----------------------- INT 7A - Novell NetWare - IPX Driver - GET DRIVER MAXIMUM PACKET SIZE BX = 001Ah Return: AX = maximum packet size with preamble (at least 576 bytes) CX = IPX retry count DS,FLAGS preserved SeeAlso: BX=000Dh --------N-7A----BX001B----------------------- INT 7A U - Novell NetWare - IPX Driver - INTERNAL BX = 001Bh ??? Return: ??? Notes: this function is supported on file servers only under v2.15; v3.02 also supports it on workstations used by NetWare Access Server, which may call INT 15/AX=1117h with BX=0000h in some cases (it uses a modified DESQview) --------N-7A----BX001C----------------------- INT 7A U - Novell NetWare - NetWare Access Server - GET ??? BX = 001Ch Return: AX = length of ??? ES:BX -> ??? Notes: these functions are NOPs for standard IPX drivers such as IPXODI v2.12 SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Dh,INT 7A/BX=001Eh --------N-7A----BX001D----------------------- INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB AND SOCKET BX = 001Dh Return: DX = socket number chosen by IPX ES:SI -> ECB in IPX's code segment (will be listening) BX corrupted Notes: these functions are NOPs for standard IPX drivers such as IPXODI v2.12 SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Eh --------N-7A----BX001E----------------------- INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB BX = 001Eh Return: ES:SI -> ECB BX corrupted Notes: these functions are NOPs for standard IPX drivers such as IPXODI v2.12 SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Dh --------N-7A----BX001F----------------------- INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX INFORMATION BX = 001Fh DX = 0000h Return: AX = ??? BX:CX -> ??? entry point (see #03830) (undocumented) DX = feature flags bit 0: IPXODI rather than dedicated IPX bit 1: checksumming functions 0020h-0022h supported ES:SI -> array of words containing used socket number (undocumented); 0000h ends array all other registers except DS and FLAGS may be destroyed Note: IPXODI v2.12 is distributed as part of the Personal NetWare system bundled with Novell DOS 7 SeeAlso: BX=0020h,INT 2F/AX=7A2Fh (Table 03830) Call IPXODI entry point with: ES:SI -> ECB??? (offset 24h is far pointer to ??? data) --------N-7A----BX0020----------------------- INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM BX = 0020h ES:SI -> ECB (see #03810 at INT 7A/BX=0003h) Return: DS,FLAGS preserved BX,BP corrupted (documented as potentially destroying all other regs) Desc: generate a checksum for the packet data and store it in the IPX checksum field before transmitting the packet SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh --------N-7A----BX0021----------------------- INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM BX = 0021h ES:SI -> ECB data (see #03810 at INT 7A/BX=0003h) Return: ES,DS,SI preserved BX,BP corrupted, all other registers potentially destroyed Notes: the checksum and TransportControl fields of the IPX packet are updated this function enables interrupts and is fully reentrant SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh --------N-7A----BX0022----------------------- INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM BX = 0022h ES:SI -> ECB data (see #03810 at INT 7A/BX=0003h) Return: AX = status (0000h checksum matches) DS,ES,SI preserved BX,BP corrupted, all other registers potentially destroyed Note: this function enables interrupts and is fully reentrant SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh --------N-7A----BX0023----------------------- INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET BX = 0023h DX = socket number (0000h for dynamic allocation) ES:SI -> Look Ahead handler (see #03831) BP = desired lookahead size (0000h-0080h) Return: AL = status 00h successful DX = assigned socket number (big-endian) FEh maximum number of sockets already open FFh specific socket already opened by another application DS,FLAGS preserved all other registers may be destroyed Notes: the socket will always be long-lived, and must thus be explicitly closed with INT 7A/BX=0001h before the Look Ahead handler code is removed from memory (i.e. the program terminates) this function is only supported if INT 2F/AX=7A00h returns ES:BX pointing at an IPX version greater than 3.30 the desired lookahead size is the smallest-size packet (including IPX header) that should be passed to the lookahead handler when it arrives SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h (Table 03831) Call IPX Look-Ahead handler with: AX = packet's destination socket DS:SI -> look-ahead structure (see #03010 at INT 2F/AX=C000h"LSL") DF clear interrupt disabled (must remain disabled) Return: AX = packet use 0000h application want packet ES:SI -> ODI ECB (see #03011 at INT 2F/AX=C000h"LSL") 8001h application does not want packet ZF set if AX=0000h DS,DI,BP,SS,SP preserved interrupts disabled --------N-7A----BX0024----------------------- INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS BX = 0024h ES:SI -> buffer containing internetwork address (see #03824) Return: BX,CX,SI,DI,ES destroyed Note: this function differs from INT 7A/BX=000Ch in that it unconditionally sets the address SeeAlso: INT 7A/BX=000Ch --------A-7A0001----------------------------- INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1) AX = 0001h BX = configuration CX = interface level (0001h) Return: AX = status 0000h initialization failed 0001h pre-v4.0 driver initialized successfully 0003h post-v3.1 driver initialized successfully (driver truncates excessivly long packets) BX = width of graphics area in pixels, or 0000h if using packet communication DX:CX -> packet-mode entry point (see #03832) SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD" SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade" (Table 03832) Call packet-mode entry point with: STACK: DWORD pointer to request packet (see #03833) WORD length of packet Format of request packet: Offset Size Description (Table 03833) 00h WORD function number (00h-45h for Compaq VGADI41.EXE) --------A-7A0200BX0000----------------------- INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP) AX = 0200h BX = 0000h CX = interface level (0001h) Return: BX = 0000h (driver uses packet communication) DX:CX -> packet-mode entry point (see #03832) SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD" --------I-7A04------------------------------- INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE AH = 04h ??? Return: ??? SeeAlso: AH=06h --------I-7A06------------------------------- INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE AH = 06h ??? Return: ??? SeeAlso: AH=04h ----------7A07D0----------------------------- INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT AX = 07D0h Return: AX = ??? (0003h) BX = 0000h DX:CX -> ADI entry point (see AX=0001h) SeeAlso: AX=0001h --------I-7A09--BX8020----------------------- INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES AH = 09h BX = 8020h (synchronous request) CX = 0000h DX = ID of session manager (SESSMGR) AL = service (see #03834) ES:DI -> control block Return: ??? (Table 03834) Values for service: 01h get session ID 02h get session info 04h dettach from session 05h attach to session 06h get list of windows available 07h get environment of window 08h get 'PIF' (program information file) info 0Ah get base window ID 0Bh get cursor info --------I-7A09--BX8020----------------------- INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES AH = 09h BX = 8020h (synchronous request) CX = 0000h DX = ID of keyboard manager AL = service number (see #03835) ES:DI -> control block Return: ??? (Table 03835) Values for 3270 Workstation Program keyboard service: 01h connect to keyboard 02h disconnect from keyboard 03h read from keyboard 04h send keystroke to session 05h disable input 06h enable input 07h update status code --------I-7A09--BX8020----------------------- INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES AH = 09h BX = 8020h (synchronous request) CX = 00FFh DX = ID of window service controller (WSCTRL) AL = service number (see #03836) ES:DI -> control block Return: ??? (Table 03836) Values for 3270 Workstation Program window service: 01h connect to WS control 02h disconnect from WS control 03h add a window 04h change window's position on screen 05h change window's size 06h change window's color 07h change window's position in the presentation space 08h hide/unhide toggle 09h enlarge/reduce toggle 0Ah change screen background color 0Bh get window's position on screen 0Ch get window's size 0Dh get window's color 0Eh get window's position in the presentation space 0Fh determine whether hidden 10h determine whether enlarged 11h get background color 12h get window names 13h delete all windows from profile 14h pick active window 15h redraw screen 16h redraw window 17h delete a window from profile 18h get active window 19h get active screen 1Ah get window data 1Bh change window data 1Ch select active screen --------I-7A09--BX8020----------------------- INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES AH = 09h BX = 8020h CX = 00FFh DX = ID of PCPSM AL = service 01h define presentation space 02h delete presentation space 03h display presentation space 04h position cursor in presentation space 05h change default presentation space ES:DI -> control block Return: ??? --------I-7A09--BX8020----------------------- INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION AH = 09h BX = 8020h CX = 00FFh DX = ID of 3270EML AL = service 01h connect 02h disconnect ES:DI -> control block Return: ??? --------I-7A09--BX8020----------------------- INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA AH = 09h BX = 8020h CX = 00FFh DX = ID of OIAM AL = service 01h read Operator Information Area 02h read OIA subset ES:DI -> control block Return: ??? Note: the OIA is the 25th line on the Host session --------I-7A09--BX8020----------------------- INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA AH = 09h BX = 8020h CX = 00FFh DX = ID of XLATE AL = service 01h translate from host characters to ASCII and vice versa (determined by control block byte 11) ES:DI -> control block Return: ??? --------I-7A09--BX8020----------------------- INT 7A - IBM 3270 Workstation Program API - COPY SERVICE AH = 09h BX = 8020h CX = 00FFh DX = ID of copy service AL = service 01h copy string from one presentation space to another 02h copy block from one presentation space to another 03h connect to PC session for copy 04h disconnect PC session from copy ES:DI -> control block Return: ??? --------I-7A09--BX8020----------------------- INT 7A - IBM 3270 Workstation Program API - Multi-DOS AH = 09h BX = 8020h CX = 00FFh ES:DI -> control block DX = ID of INDJQRY get environment size = ID of INDJASY request DOS functions from workstation = ID of MEMORY AL = function 01h allocate memory 02h deallocate memory 03h modify allocated size Return: ??? --------I-7A09------------------------------- INT 7A - IBM 3270 Workstation Program API - HOST SERVICES AH = 09h BX = request type (4000h async, 8028h synchronous) CX = 0000h DX = ID of MFIC AL = service (see #03837) ES:DI -> control block (Table 03837) Values for 3270 Workstation Program host service: 01h connect to host 02h disconnect from host 03h read DFT structured data from host 04h write DFT structured data to host 05h create a host buffer --------I-7A13------------------------------- INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE AH = 13h ??? Return: ??? ----------7A7A------------------------------- INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE AH = 7Ah ??? Return: AX = status 0000h success 000Eh undefined function code Range: unknown, selected by device driver commandline arguments --------I-7A81------------------------------- INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME AH = 81h ES:DI -> 8-char blank-padded gate name (see #03838) Return: DX = gate ID (Table 03838) Values for 3270 Workstation Program gate name: "SESSMGR " "KEYBOARD" "WSCTRL " "MFIC " "PCPSM " "3270EML " "COPY " "XLATE " "OIAM " "MEMORY " "INDJQRY " "INDJASY " --------I-7A83------------------------------- INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS AH = 83h ??? Return: ??? --------I-7AFDCB----------------------------- INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK AX = FDCBh Return: DX:AX -> PCS/3270 signature block if loaded (see #03839) Format of Personal Communications/3270 signature block: Offset Size Description (Table 03839) 04h WORD PCS/3270 signature (5741h) 06h WORD version (0501h = PCS/3270 v1.0) --------I-7AFE01----------------------------- INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION AX = FE01h ??? Return: ??? SeeAlso: AX=FE02h --------I-7AFE02----------------------------- INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION AX = FE02h ??? Return: ??? SeeAlso: AX=FE01h --------I-7AFF01----------------------------- INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION AX = FF01h ES:DI -> API function handler routine Return: CX = 1200h SeeAlso: AX=FF02h,AX=FF03h --------I-7AFF02----------------------------- INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION AX = FF02h Return: CX = 1200h SeeAlso: AX=FF01h --------I-7AFF03----------------------------- INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION AX = FF03h ES:DI -> send/receive function handler routine Return: CX = 1200h SeeAlso: AX=FF01h --------I-7AFF04----------------------------- INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ??? AX = FF04h ES:DI -> ??? Return: CX = 1200h --------f-7B--------------------------------- INT 7B - Btrieve API (single user) DS:DX -> 38-byte parameter record (see #03840) Return: return code field set Note: Btrieve sets low byte of vector to 33h; this serves as the installation check SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h Format of Btrieve parameter record: Offset Size Description (Table 03840) 00h DWORD pointer to data buffer 04h WORD data buffer length 06h DWORD pointer to 90-byte record containing positioning info (should be same for all calls for same file) 0Ah DWORD pointer to 38-byte FCB info buffer (should be same for all calls for same file) 0Eh WORD function code (see #03841) 10h DWORD pointer to file name/key buffer 14h BYTE key length 15h BYTE key number 16h DWORD pointer to status code (see #03842) 1Ah WORD interface code (version specific) 6176h version 5.10 (Table 03841) Values for function code: 00h open 01h close 02h insert 03h update 04h delete 05h get_equal 06h get_next 07h get_prev 08h get_greater 09h get_gr_eql 0Ah get_less 0Bh get_less_eq 0Ch get_first 0Dh get_last 0Eh create 0Fh stat 10h extend 11h set_dir: set directory information 12h get_dir: get directory information 13h begin_trans 14h end_trans 15h abort_trans 16h get_pos: get record position number 17h get_direct: get data by sending record position 18h step_next 19h stop 1Ah version 1Bh unlock 1Ch reset 1Dh set owner 1Eh clear owner 1Fh create supplemental index 20h drop supplemental index 21h step first 22h step last 23h step previous 24h get next extended: get multiple records using a filter 25h get previous extended: get multiple records using a filter 26h step next extended: get multiple records using a filter 27h step previous extended: get multiple records using a filter 28h insert extended: insert one or more records 31h ??? Notes: add 50 (32h) to any "get" operation to just return the key data add 100 (64h) for a single-record wait lock (automatically released on next get) add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h or 55h if record already locked) add 300 (12Ch) for a multiple-record wait lock (not released until unlock called) add 400 (190h) for a multiple-record nowait lock (nowait lock returns error 54h or 55h if record already locked) (Table 03842) Values for Btrieve status code: 00h successful 01h invalid operation 02h I/O error 03h file not open 04h key value not found 05h duplicate key value 06h invalid key number 07h different key number 08h invalid positioning 09h end of file 0Ah modifiable key value error 0Bh invalid file name 0Ch file not found 0Dh extended file error 0Eh pre-image open error 0Fh pre-image I/O error 10h expansion error 11h close error 12h disk full 13h unrecoverable error 14h record manager inactive 15h key buffer too short 16h data buffer length overrun 17h position block length 18h page size error 19h create I/O error 1Ah number of keys 1Bh invalid key position 1Ch invalid record length 1Dh invalid key length 1Eh not a Btrieve file 1Fh file already extended 20h extended I/O error 22h invalid extension name 23h directory error 24h transaction error 25h transaction is active 26h transaction control file I/O error 27h end/abort transaction error 28h transaction max files 29h operation not allowed 2Ah incomplete accelerated access 2Bh invalid record address 2Ch null key path 2Dh inconsistent key flags 2Eh access to file denied 2Fh maximum open files 30h invalid alternate sequence definition 31h key type error 32h owner already set 33h invalid owner 34h error writing cache 35h invalid interface 36h variable page error 37h autoincrement error 38h incomplete index 39h expanded memory error 3Ah compression buffer too short 3Bh file already exists 3Ch reject count reached 3Dh work space too small 3Eh incorrect descriptor 3Fh invalid extended insert 40h filter limit reached 41h incorrect field offset 4Ah automatic transaction abort 4Dh Btrieve engine busy or resource locked by another user 4Eh deadlock detected 50h conflict 51h lock error 52h lost position 53h read outside transaction 54h record in use 55h file in use 56h file table full 57h handle table full 58h incompatible open mode 5Ah redirected device table full 5Bh server error 5Ch transaction table full 5Dh incompatible lock type 5Eh permission error 5Fh session no longer valid 60h communications environment error 61h data message too small 62h internal transaction error --------I-7B--------------------------------- INT 7B - Eicon Access API (3270/5250 gateways) SeeAlso: INT 5C"NetBIOS" --------E-7B--------------------------------- INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32" --------A-7B--------------------------------- INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA AX = data length (0000h-7FFFh) CX:BX -> data to be plotted DX = vertical position of line on page Return: nothing Notes: This interrupt is called by AutoCAD to perform its output A data length of 0000h indicates that a blank line is to be output SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD" --------e-7B--------------------------------- INT 7B U - MCI Express v2.11+ - DRIVER.EXE - ??? Program: MCI Express is a front end to MCI Mail; DRIVER.EXE is its communication driver ----------7B--------------------------------- INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API DS:DX -> parameter block (see #03844) Return: parameter block updated (Table 03843) Values for Novell XQL function number: 00h log in 01h log out 02h "tNewFcn" 03h "tFreeFcn" 04h "tMoveFldFcn" 05h "tFieldFcn" 06h "tDescribeFcn" 07h "tFetchFcn" 08h "tComputeFcn" 09h "tOrderFcn" 0Ah "tRestrictFcn" 0Bh "tJoinFcn" 0Ch "tInsertFcn" 0Dh "tUpdateFcn" 0Eh "tUpdallFcn" 0Fh "tRemoveFcn" 10h "tRemallFcn" 11h "tResetFcn" 12h "tTransFcn" 13h "tStatFcn" 14h "tDDCreFcn" 15h "tStoreFcn" 16h "tRecallFcn" 17h "tStopFcn" 18h "tDDFileFcn" 19h "tDDFieldFcn" 1Ah "tDDIndexFcn" 1Bh "tDDModFcn" 1Ch "tDDViewFcn" 1Dh "tDDDrpFcn" 1Eh "tDDPathFcn" 1Fh "tDDAttrFcn" 20h "tDDFcn" 21h "tSecurFcn" 22h "tUserFcn" 23h "tAccessFcn" 24h "tPswdFcn" 25h "tCharFcn" 26h "tVersionFcn" 27h "tCnvFcn" 28h "tValFcn" 29h "tMaskFcn" SeeAlso: #03844 Format of XQL parameter block: Offset Size Description (Table 03844) 00h 4 BYTEs signature "XQLP" 04h WORD function number (see #03843) 06h WORD handle 08h WORD status 0Ah WORD session ID 0Ch var data record (varies by function) ---function 00h--- 0Ch DWORD -> user name 10h DWORD -> password 14h DWORD -> dictionary 18h DWORD -> filepath 1Ch DWORD -> machine name 20h WORD process ID ---function 01h--- no additional fields??? ---function 02h--- 0Ch DWORD -> filename 10h DWORD -> owner name 14h WORD open mode ---function 03h--- no additional fields??? ---function 04h--- 0Ch WORD "frompos" 0Eh WORD "topos" ---function 05h--- 0Ch WORD subfunction 0Eh WORD position 10h WORD count 12h DWORD -> field list ---function 06h--- 0Ch WORD subfunction 0Eh WORD length of description 10h WORD position 12h WORD count 14h DWORD pointer to description list ---function 07h--- 0Ch WORD data length 0Eh WORD "op" 10h DWORD "select" 14h DWORD "reject" 18h DWORD pointer to data buffer ---function 08h--- 0Ch DWORD -> field name 10h WORD field type 12h WORD field size 14h WORD "flddec" 16h WORD "explen" 18h DWORD pointer to "expbuf" ---function 09h--- 0Ch WORD count 0Eh DWORD -> field list ---function 0Ah--- 0Ch WORD "newexp" 0Eh WORD "explen" 10h DWORD -> "expbuf" ---function 0Bh--- 0Ch DWORD -> filename 10h DWORD -> owner name 14h WORD type of join 16h WORD "pCount" 18h DWORD -> "pNames" 1Ch WORD "sCount" 1Eh DWORD -> "sNames" ---functions 0Ch, 0Dh, 0Fh--- 0Ch WORD file count 0Eh DWORD -> file list 12h DWORD count 16h DWORD -> buffer ---function 0Eh--- 0Ch WORD file count 0Eh DWORD -> file list 12h WORD "op" 14h DWORD "select" 18h DWORD "reject" 1Ch WORD count 1Eh DWORD -> "res" 22h DWORD -> "comp" ---function 10h--- 0Ch WORD file count 0Eh DWORD -> file list 12h WORD "op" 14h DWORD "select" 18h DWORD "reject" ---function 11h--- 0Ch DWORD machine name ---function 12h--- 0Ch WORD option ---function 13h--- 0Ch WORD subfunction 0Eh WORD length of buffer 10h DWORD -> buffer ---function 14h--- 0Ch WORD subfunction 0Eh DWORD -> filename 12h WORD "create" 14h DWORD -> pathname 18h DWORD -> owner name 1Ch WORD owner access restrictions 1Eh WORD number of fields 20h DWORD -> field list 24h WORD number of keys 28h DWORD -> key list 2Ch WORD "buflen" 2Eh DWORD -> create parameters ---function 15h--- 0Ch DWORD -> "StoreName" 10h WORD length of buffer 12h DWORD -> buffer ---function 16h--- 0Ch DWORD -> "RecallName" 10h WORD owner number 12h DWORD -> owner list 16h WORD open mode 18h WORD length of buffer 1Ah DWORD -> buffer ---function 17h--- no additional fields??? ---function 18h--- 0Ch WORD "rtype" 0Eh WORD count 10h DWORD -> "filebuf" 14h WORD length of following buffer 16h DWORD -> output buffer ---functions 19h, 1Ah--- 0Ch WORD "rtype" 0Eh WORD count 10h DWORD -> field buffer 14h WORD length of following buffer 16h DWORD -> output buffer ---function 1Bh--- 0Ch WORD subfunction 0Eh DWORD -> filename 12h WORD "create" 14h DWORD -> pathname 18h DWORD -> owner name 1Ch WORD owner access restrictions 1Eh WORD field count 20h DWORD -> field list 24h WORD number of keys 26h DWORD -> list of keys ---function 1Ch--- 0Ch WORD count 0Eh DWORD -> view name 12h WORD length of following buffer 14h DWORD -> output buffer ---function 1Dh--- 0Ch DWORD -> filename 10h WORD file type 12h WORD "deletepath" ---function 1Eh--- 0Ch WORD "dirtype" 0Eh DWORD -> pathname ---function 1Fh--- 0Ch WORD function 0Eh DWORD -> field name 12h WORD attribute 14h WORD size of buffer 16h DWORD -> buffer for attributes ---function 20h--- 0Ch DWORD -> directory path 10h WORD function ---function 21h--- 0Ch DWORD -> master password 10h WORD "securityflag" ---function 22h--- 0Ch DWORD -> master password 10h WORD function (add/modify/remove) 12h DWORD -> user name 16h DWORD -> password 1Ah WORD global rights 1Ch WORD count 1Eh WORD length of following buffer 20h DWORD -> "userbuf" ---function 23h--- 0Ch DWORD -> master password 10h DWORD -> user name 14h WORD function (allow/deny/getrights) 16h WORD rights 18h DWORD -> filename 1Ch WORD number of field names in following buffer 1Eh DWORD -> field names 22h WORD maximum buffer length 24h DWORD -> output buffer ---function 24h--- 0Ch DWORD -> user name 10h DWORD -> password ---function 25h--- 0Ch WORD "charFcn" 0Eh WORD "charType" 10h WORD "charValue" ---function 26h--- 0Ch DWORD -> buffer ---function 27h--- 0Ch WORD option 0Eh WORD type 10h WORD size 12h WORD "dec" 14h WORD "dsize" 16h DWORD -> value 1Ah DWORD -> "retval" 1Eh DWORD -> mask 22h WORD "justify" ---function 28h--- 0Ch DWORD -> field name 10h WORD length of buffer 12h DWORD -> buffer for data ---function 29h--- 0Ch WORD option 0Eh WORD type 10h WORD size 12h WORD "dec" 14h WORD length of mask 16h DWORD -> mask --------A-7B8001----------------------------- INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT AX = 8001h BX = file level 0000h binary file 0001h CAD/camera image file 0002h installed ADI driver CX = horizontal size in pixels DX = vertical size in pixels Return: AX = status (0000h initialization failed, 0001h init successful) BX = allowed output format 0000h monochrome 0001h color (4 bits per pixel) SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade" --------A-7B8002----------------------------- INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT AX = 8002h SeeAlso: AX=8001h,AX=8003h --------A-7B8003----------------------------- INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT AX = 8003h SeeAlso: AX=8001h,AX=8002h --------r-7C--------------------------------- INT 7C U - IBM REXX88PC command language ??? --------E-7C--------------------------------- INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4 Program: GO32.EXE is a DOS extender included as part of the 80386 port of the GNU C/C++ compiler by DJ Delorie and distributed as DJGPP Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32" --------P-7C--------------------------------- INT 7C - PRINDIR v8.02-8.xx - API AH = function 00h set output to Invisible mode 01h set output to LPT1 02h set output to LPT2 03h set output to LPT3 04h set output to COM1 05h set output to COM2 06h set output to COM3 07h set output to COM4 08h set output to screen 09h set output to file 0Ah change file path ES:DI -> new path CX = length of path (max 41, but not range-checked) 0Bh change file name ES:DI -> new filename CX = length of new name (max 41, but not range-checked) 0Ch set redirected device (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4) 0Dh force buffer dump 0Eh set display color AL = new color attribute (see #00014 at INT 10/AH=08h) 0Fh set popup hotkey AL = hotkey scancode 10h toggle byte display AL = new state (00h off, 01h on) 11h change buffer flush delay AL = timer ticks before flush Return: AX = status 0000h successful 0001h invalid function or nothing in buffer to be dumped (documented as "nonzero = error") Program: PRINDIR is a shareware printer-redirection program by J.M. Allen Creations InstallCheck: test for the ASCIZ signature "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond the start of the interrupt handler Note: prior versions of PRINDIR used INT 7A instead of INT 7C SeeAlso: INT 7A"PRINDIR",INT 2F/AX=7F00h"PRINDIR" Index: hotkeys;PRINDIR --------A-7C--------------------------------- INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER Note: this is the default interrupt vector for rendering hardcopy drivers instead of INT 7A used by AutoCAD drivers SeeAlso: INT 7A/AX=0001h"AutoCAD" --------N-7C--------------------------------- INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of it Data Link Interface, allowing the use of any of several network transport layers; this product is called SK-PASSPORT in the USA. InstallCheck: test for the ASCII signature string "UPPS_DLI" immediately preceding the interrupt handler Notes: To find the service interrupt being used by the driver, an application should scan through the interrupt table until it finds an interrupt vector with the "UPPS_DLI" string. There may be more than one DLI loaded, each having its own service interrupt. SeeAlso: AX=0000h,AX=0002h,AX=000Fh Index: installation check;SK-UPPS --------N-7C0000----------------------------- INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION AX = 0000h Return: AH = major DLI version AL = minor DLI version DX = OEM signature (see #03845) CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh (Table 03845) Values for SK-UPPS Data Link Interface OEM signature (defined by SK): 0001h experimental 3343h ('3C') 3COM 4942h ('IB') IBM 4943h ('IC') Intellicom 494Eh ('IN') Intel 4B4Fh ('KO') Kodiak 4D41h ('MA') Madge 4E45h ('NE') Novell 4F43h ('OC') Olicom 5349h ('SI') Siemens 534Bh ('SK') Schneider & Koch (SysKonnect) 5744h ('WD') Western Digital --------N-7C0001----------------------------- INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER AX = 0001h Return: AX = completion code (see #03846) Note: the DLI will refuse to unload if there are any protocols (see AX=0007h) or clients (see AX=0010h) active. Index: uninstall;SK-UPPS Data Link Interface (Table 03846) Values for SK-UPPS completion code: 0000h SUCCESS 0005h INVALID_MULTICAST 0006h BUFFER_TOO_SMALL 0007h NO_BUFFERS_LEFT 0008h NO_RESOURCES_LEFT 000Bh ILLEGAL_PROTOCOL_ID 000Ch PROTOCOL_IN_USE 000Dh NO_MULTICAST_ADDRESS 000Fh PROTOCOLS_ACTIVE 0010h CLIENTS_ACTIVE 001Bh INVALID_MODE 001Ch MODE_NOT_SUPPORTED FFFFh UNKNOWN_SERVICE --------N-7C0002----------------------------- INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS AX = 0002h ES:DI -> Status Information Block (SIB) (see #03858) Return: AX = completion code (see #03846) Note: GET DRIVER INFO (AX=000Eh) should be used instead. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh --------N-7C0003----------------------------- INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS AX = 0003h ES:DI -> new node address (6 bytes) Return: AX = completion code (see #03846) Note: the DLI will refuse to change the address if any protocols (see AX=0007h) are active SeeAlso: AX=0001h,AX=000Eh --------N-7C0004----------------------------- INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER AX = 0004h DX = protocol ID (see AX=0007h,#03849) Return: AX = completion code (see also #03846) 0000h successful ES:BX -> Memory Buffer (Mbuf) (see #03847) Note: if the DLI has no free Mbufs, it will set an internal flag for the protocol and later call the protocol's Event Upcall with EV_BUFFER_AVAILABLE (see #03853,#03854) as soon as an Mbuf becomes available. There will only be one "buffer available" Upcall, even if this function has been called several times before. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h Format of SK-UPPS Memory Buffer (Mbuf): Offset Size Description (Table 03847) 00h DWORD -> NEXT Mbuf (linked list) 04h WORD OFFSET of actual data within DATA area 06h 2 BYTEs reserved (currently unused) 08h WORD LENGTH of actual data found in DATA area starting at OFFSET 0Ah 2 BYTEs reserved (currently unused) 0Ch DWORD -> DATA area (size can be obtained via AX=000Eh call) 10h WORD PROTOCOL ID of protocol currently "owning" the Mbuf 12h BYTE IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h) 13h BYTE RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall) --------N-7C0005----------------------------- INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER AX = 0005h ES:BX -> Mbuf (see #03847) Return: nothing SeeAlso: AX=0004h --------N-7C0006----------------------------- INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME AX = 0006h ES:BX -> Mbuf (see #03847) Return: nothing Notes: The DLI will send LENGTH bytes found in the Mbuf's DATA area starting at OFFSET. A complete and valid frame must be stored there. The DLI will only copy the current node address (see AX=0003h) to the source node field of the frame's MAC header. On Ethernet, the DLI will always send a minimum of 60 bytes, regardless of the value found in the LENGTH field. This function returns immediately; the DLI will call the protocol's Transmit Upcall (see #03848) when the frame has been sent. The Mbuf's IN USE field will be non-zero until the DLI calls the Transmit Upcall. SeeAlso: AX=0002h,AX=0004h,AX=0013h (Table 03848) Values SK-UPPS Transmit Upcall is called with: ES:BX -> Mbuf (NEXT field destroyed) interrupts disabled Note: On FDDI the bytes of the source and destination node fields in the MAC header have been bit-swapped to physical address format. --------N-7C0007----------------------------- INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL AX = 0007h ES:BX -> Protocol Control Block (see #03849) Return: AX = completion code (see #03846) Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers SeeAlso: AX=0008h,AX=000Bh Format of SK-UPPS Protocol Control Block (PCB): Offset Size Description (Table 03849) 00h WORD (big-endian) protocol type 02h WORD protocol mode (see #03850) 04h DWORD -> Receive Upcall routine (see #03851) 08h DWORD -> Transmit Upcall routine 0Ch DWORD -> Event Upcall routine (see #03853) 10h DWORD -> ASCIZ protocol name (zero if none) 14h WORD protocol ID will be returned here (always non-zero) Bitfields for SK-UPPS protocol mode: Bit(s) Description (Table 03850) 0 promiscuous mode; protocol receives all frames regardless of their destination (PROTOCOL TYPE must be FFFFh) 1 if set, protocol's Event Upcall will be called on entry and exit of the DLI's Interrupt Service Routine (see #03854) 2 DLI 2.2+ hook mode; protocol receives all directed frames destined for this station (PROTOCOL TYPE must be FFFFh) 3 DLI 2.3+ receive error frames (only valid in promiscuous mode (0)) 4-5 DLI 2.5+ frame type: 00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low) 01 IEEE 802.2; specify Service Access Point (SAP) in MSB (offset 0) of PROCOTOL TYPE field; LSB must be zero 10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE field (high-low) 11 reserved (currently unused) 6 DLI 2.5+ if set, protocol's Event Upcall will be called with event code EV_BUFFER_WANTED, when DLI runs out of Mbufs 7 DLI 2.7+ chain mode; if set, client allows the specified frame type to be shared with other clients 8 DLI 2.8+ receive non-LLC frames rather than LLC frames 9 DLI 2.8+ receive all multicast frames (see also AX=0009h) 10-15 reserved (currently unused; must be zero) Notes: If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook" mode is set, the protocol receives all frames that did not match any registered frame type (demultiplexor mode). Protocols using "promiscuous", "hook" or "chain" mode should always return from the Receive Upcall with the received Mbuf in ES:BX and the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK BUFFER function (see AX=000Fh). Some DLIs do not support all or even any of the "promiscuous", "receive non-LLC" and "receive all multicasts" mode bits. SeeAlso: #03849 (Table 03851) Values SK-UPPS Receive Upcall is called with: ES:BX -> Mbuf AX = receive status (see #03852) (also stored in Mbuf's RECEIVE STATUS field) interrupts disabled Return: nothing SeeAlso: #03853 Bitfields for SK-UPPS receive status: Bit(s) Description (Table 03852) 0-2 reserved (0), currently unused 3 frame check sequence (FCS) error 4 overflow (frame too long) 5 framing error 6 reserved (0), currently unused 7 non-LLC frame (see #03850 [bit 8]) 8-15 reserved (0), currently unused Notes: The protocol's Receive Upcall routine will be called whenever a frame matching the specified frame type is received. A received frame is passed to the protocol in the Mbuf's DATA area at OFFSET and its size is LENGTH bytes. The receive status passed to the Receive Upcall in register AL is always zero, except for protocols using "non-LLC" mode (8 of PCB's protocol mode field) or "promiscuous" mode together with "receive error frames" (0 & 3). Upcalls are FAR routines and must return with a RET FAR. If the Carry Flag is set on return from a Receive or Transmit Upcall, then ES:BX must point to an Mbuf, which the DLI will then pass to the RELEASE BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE. (Table 03853) Values SK-UPPS Event Upcall is called with: AX = event code (see #03854) Return: nothing Note: All Event Upcalls may be ignored by the protocol. SeeAlso: #03851 (Table 03854) Values for SK-UPPS Event Upcall event code: 00h EV_BUFFER_AVAILABLE client may now call REQUEST BUFFER (AX=0004h) 01h EV_ISR_START start of Interrupt Service Routine 02h EV_ISR_END end of ISR (see #03850 [bit 1]) 03h EV_BUFFER_WANTED DLI temporarily out of Mbufs 04h EV_NETWORK_STATUS DLI 2.8+ network status -- DX=status (see #03855) 05h EV_IO_CONTROL DLI 2.8+ I/O control -- DX=subfunc (see AX=0016h) SeeAlso: #03853 Bitfields for EV_NETWORK_STATUS in register DX: Bit(s) Description (Table 03855) Token-Ring FDDI 15 SIGNAL_LOSS SIGNAL_LOSS 14 HARD_ERROR HARD_ERROR 13 SOFT_ERROR SOFT_ERROR 12 TRANSMIT_BEACON TRANSMIT_BEACON 11 LOBE_WIRE_FAULT PATH_TEST_FAILED 10 AUTO_REMOVAL SELF_TEST_REQUIRED 9 reserved reserved 8 REMOVE_RECEIVED REMOTE_DISCONNECT 7 COUNTER_OVERFLOW reserved 6 SINGLE_STATION DUPLICATE_ADDRESS 5 RING_RECOVERY NO_RING_OP_STATUS 4 reserved VERSION_MISMATCH 3 reserved STUCK_BYPASS 2 reserved FDDI_EVENT 1 reserved RING_OP_CHANGE 0 reserved reserved Note: EV_NETWORK_STATUS is not supported on Ethernet --------N-7C0008----------------------------- INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL AX = 0008h BX = protocol ID (see #03849) Return: AX = completion code (see #03846) Note: the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if they had been given to TRANSMIT FRAME RELEASE (AX=0013h). all multicast addresses registered for this protocol will be disabled. after this function returns, the protocol's Upcall routines will no longer be called. SeeAlso: AX=0007h,AX=000Bh --------N-7C0009----------------------------- INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST AX = 0009h BX = protocol ID (see #03849) ES:DI -> multicast address (6 bytes) Return: AX = completion code (see #03846) Notes: The broadcast address is always enabled. Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call (AX=0007h) to receive all multicast frames. SeeAlso: AX=000Ah,AX=0014h --------N-7C000A----------------------------- INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST AX = 000Ah BX = protocol ID (see #03849) ES:DI -> multicast address (6 bytes) Return: AX = completion code (see #03846) SeeAlso: AX=0009h,AX=0014h --------N-7C000B----------------------------- INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST AX = 000Bh ES:DI -> protocol ID buffer CX = number of 2-byte protocol IDs that may be stored in buffer Return: AX = completion code (see #03846) CX = number of active protocols (regardless of value returned in AX) protocol ID buffer filled with active protocol IDs Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers Note: If the buffer supplied is too small, CX still contains the total number of active protocols and the buffer has been filled until full. SeeAlso: AX=000Ch,AX=0014h --------N-7C000C----------------------------- INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS AX = 000Ch BX = protocol ID (see #03849,AX=000Bh) ES:DI -> Protocol Status Block (see #03856) Return: AX = completion code (see #03846) SeeAlso: AX=000Bh,AX=0014h Format of SK-UPPS Protocol Status Block (PSB): Offset Size Description (Table 03856) 00h DWORD -> ASCIZ protocol name 04h WORD protocol mode (see #03850) 06h WORD protocol type (see AX=0007h) 08h WORD number of registered multicasts (see AX=0009h,AX=0014h) --------N-7C000D----------------------------- INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS AX = 000Dh BX = flag: 0=don't clear statistics, 1=clear statistics ES:DI -> Statistics Data Block (see #03857) Return: AX = completion code (see #03846) SeeAlso: AX=0002h,AX=0015h Format of SK-UPPS Statistics Data Block (SDB): Offset Size Description (Table 03857) 00h DWORD node uptime in ticks (1/18.21 sec.) 04h DWORD bytes received 08h DWORD bytes transmitted 0Ch DWORD frames received 10h DWORD frames transmitted 14h DWORD multicast bytes received 18h DWORD multicast frames received 1Ch DWORD unrecognized frames 20h WORD missed frames 22h WORD frame check sequence (FCS) errors 24h WORD framing errors 26h WORD babbling errors 28h WORD late collision errors 2Ah WORD loss of carrier errors 2Ch WORD 16 retries failed errors 2Eh WORD overflow errors Note: fields 26h through 2Ch are always zero, except in some very old versions of the DLI. Use GET MEDIA STATISTICS (AX=0015h) to get more detailed information. --------N-7C000E----------------------------- INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO AX = 000Eh ES:DI -> Driver Information Block (see #03858) BX = offset of 1st field within DIB to be returned CX = number of bytes to be returned Return: AX = completion code (see #03846) CX = number of bytes copied (regardless of value returned in AX) Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h Format of SK-UPPS Driver Information Block (DIB): Offset Size Description (Table 03858) 00h 6 BYTEs physical node address (from adapter's ROM) 06h 6 BYTEs current node address (see AX=0003h) 0Ch BYTE adapter id (defined by OEM) 0Dh BYTE IRQ line (FFh if none) 0Eh DWORD -> shared memory (zero if none) 12h DWORD size of shared memory (zero if none) 16h WORD base I/O port (zero if none) 18h BYTE DMA line (FFh if none) 19h BYTE DLI 2.4+ topology (see AX=0000h) 1Ah WORD size of an Mbuf's DATA area (see #03847) 1Ch 2 BYTEs reserved (currently unused) 1Eh WORD total number of Mbufs the DLI has 20h WORD maximum number of Mbufs that can be allocated via REQUEST BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h) ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h) 22h DWORD -> ASCIZ adapter name 26h WORD number of I/O ports used (zero if none) 28h DWORD line speed in bits/sec. --------N-7C000F----------------------------- INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER AX = 000Fh ES:BX -> Mbuf (see #03847) Return: nothing Notes: A protocol may call this function instead of returning the Mbuf directly from the Receive Upcall if it is running in "promiscuous", "hook" or "chain" mode. SeeAlso: AX=0007h --------N-7C0010----------------------------- INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK AX = 0010h Return: nothing Notes: An application having no active protocols may call this function to prevent the DLI from unloading. SeeAlso: AX=0001h,AX=0011h --------N-7C0011----------------------------- INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK AX = 0011h Return: nothing Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers SeeAlso: AX=0010h --------N-7C0012----------------------------- INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER AX = 0012h DX = protocol ID (see #03849) Return: AX = completion code (see #03846) if AX=0000h: ES:BX -> Mbuf (see #03847) Note: If the protocol wants to be informed when an Mbuf becomes available, REQUEST BUFFER (AX=0004h) should be used instead. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h --------N-7C0013----------------------------- INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE AX = 0013h ES:BX -> Mbuf (see #03847) Return: nothing Notes: Returns immediately; The protocol's Transmit Upcall will NOT be called. The Mbuf may no more be used by the protocol in any way (i.e. the Mbuf's IN USE field may not be polled). SeeAlso: AX=0004h,AX=0013h --------N-7C0014----------------------------- INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST AX = 0014h BX = protocol ID (see #03849,AX=000Bh) ES:DI -> multicast address buffer CX = number of 6-byte multicast addresses that may be stored in buffer Return: AX = completion code (see #03846) CX = number of registered multicast addresses for this protocol (regardless of value returned in AX) multicast address buffer filled with multicast addresses registered for this protocol Note: If the buffer supplied is too small, CX still contains the total number of registered multicast addresses for this protocol and the buffer has been completely filled SeeAlso: AX=000Bh,AX=0009h,AX=000Ch --------N-7C0015----------------------------- INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS AX = 0015h ES:DI -> media-specific statistics buffer (see #03859,#03860,#03861) BX = offset of 1st field within MSS to be returned CX = number of bytes to be returned Return: AX = completion code (see #03846) CX = number of bytes copied (regardless of value returned in AX) Note: not supported by all DLIs (will return AX=FFFFh if not supported). SeeAlso: AX=0000h,AX=000Dh Format of SK-UPPS media-specific statistics for Ethernet: Offset Size Description (Table 03859) 00h DWORD alignment errors 04h DWORD frame check sequence (FCS) errors 08h DWORD single collision frames 0Ch DWORD multiple collision frames 10h DWORD signal quality error (SQE) test errors 14h DWORD deferred transmissions 18h DWORD late collisions 1Ch DWORD excessive collisions 20h DWORD internal MAC transmit errors 24h DWORD carrier sense errors 28h DWORD excessive deferrals 2Ch DWORD frame too longs 30h DWORD in range length errors 34h DWORD out of range length fields 38h DWORD internal MAC receive errors Format of SK-UPPS media-specific statistics for FDDI: Offset Size Description (Table 03860) 00h DWORD SMT operating version id (refer to ANSI 7.1.2.2) 04h DWORD SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B, 5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3) 08h DWORD SMT frames sent 0Ch DWORD SMT frames received 10h DWORD SMT ring up count 14h 6 BYTEs MAC upstream neighbour 1Ah 6 BYTEs MAC downstream neighbour 20h DWORD MAC frame counter (refer to ANSI MAC 2.2.1) 24h DWORD MAC error counter ( " ) 28h DWORD MAC lost counter ( " ) 2Ch BYTE port 1 link error estimate (ranges from 10**-4 to 10**-15 and is reported as the absolute value of the exponent) 2Dh BYTE port 2 link error estimate ( " ) 2Eh 2 BYTEs reserved (currently unused) 30h DWORD attachment class: 1=single-attachment (S PORT), 2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs) 34h DWORD attachment optical bypass present: 1=true, 2=false Format of SK-UPPS media-specific statistics for Token-Ring: Offset Size Description (Table 03861) 00h 6 BYTEs upstream neighbour 06h WORD local ring number 08h DWORD ring up count 0Ch DWORD signal loss errors 10h DWORD lobe wire faults 14h DWORD ring recovery count 18h DWORD line errors 1Ch DWORD burst errors 20h DWORD ARI/FCI errors 24h DWORD lost frame errors 28h DWORD receive congestion errors 2Ch DWORD frame copied errors 30h DWORD token errors 34h DWORD DMA bus errors 38h DWORD DMA parity errors 3Ch DWORD receive overflow errors --------N-7C0016----------------------------- INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL AX = 0016h DX = subfunction; bits 14-15 specify direction of I/O: 00 no data at all (ES:BX undefined) 01 driver -> application (GET) 10 application -> driver (SET) 11 both directions (GET/SET) ES:BX -> I/O buffer (optional) CX = size of buffer (if ES:BX valid) Return: AX = completion code; defined by OEM Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack, which provides an API on top of its Data Link Interface, allowing the use of any of several network transport layers Notes: not supported by all DLIs (will return AX=FFFFh if not supported) subfunction codes are defined by OEMs SeeAlso: AX=0001h --------N-7C0017----------------------------- INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST AX = 0017h Return: AX = completion code (see #03846) Notes: not supported by all DLIs (will return AX=FFFFh, if not supported). must be called with interrupts disabled; when the client re-enables interrupts, an interrupt will be generated and reported to the client through an Event Upcall (see #03853 [EV_ISR_START/EV_ISR_END]) SeeAlso: AX=0007h --------t-7D--------------------------------- INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT Note: this interface has been moved to INT 2D; there are no known implementations on INT 7D SeeAlso: INT 2D"AMIS",INT 2F"NOTES" --------S-7D--------------------------------- INT 7D U - YTERM 1.4 - CLOCK SUPPORT SeeAlso: INT 7E"YTERM" --------E-7D--------------------------------- INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0D"IRQ5",INT 7C"GO32",INT 7E"GO32" --------U-7D--------------------------------- INT 7D - HyperPAD v2.2 - API ACCESS Note: this vector is hooked but immediately passed on (without checking whether the previous handler was 0000h:0000h). The sole purpose of this vector is to provide the address of the data area described below (see #03862). Format of HyperPAD data area: Offset Size Description (Table 03862) -16h DWORD pointer to ??? FAR function -12h DWORD pointer to callback setting function [C calling conventions, (*callback)(int (_loadds far *)()) ] -0Eh 6 BYTEs signature "BRC001" -08h DWORD pointer to previous INT 7D handler -04h DWORD pointer to ??? data 00h HyperPAD INT 7D handler ----------7D--------------------------------- INT 7D - IBM DOS 6.1 E.EXE - ??? Note: E.EXE checks whether this interrupt is in use (not 0000h:0000h), and if it is used, attempts to load E55VGA.EX instead of the default E.EX overlay. However, E55VGA.EX is not included in IBM DOS 6.1. --------G-7D00------------------------------- INT 7D - SCSILink - RESET SCSI BUS AH = 00h Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted cross assemblers and similar products to communicate with Cross Products hardware debuggers Desc: reset all devices on the SCSI bus InstallCheck: test for the signature "SCSILINK" immediately prior to the interrupt handler Index: installation check;SCSILink --------G-7D01------------------------------- INT 7D - SCSILink - CONNECT TO TARGET AH = 01h AL = target ID Return: CF clear if successful CF set on error AL = initiator error AH = target error Desc: arbitrate the use of the bus and select the specified target device --------G-7D02------------------------------- INT 7D - SCSILink - SEND COMMAND AH = 02h ES:BX -> parameter block (see #03863) Return: CF clear if successful CF set on error AL = initiator error AH = target error Desc: send the specified command block to the target device and perform any related I/O Format of SCSILink parameter block: Offset Size Description (Table 03863) 00h DWORD size of command block 04h DWORD address of command block (see #03864) 08h DWORD size of buffer 0Ch DWORD address of buffer Format of SCSILink command block: Offset Size Description (Table 03864) 00h info not yet available --------G-7D03------------------------------- INT 7D - SCSILink - SET TIMEOUT AH = 03h AL = timeout selector (see #03865) BX = new value in 55ms ticks Desc: change an internal timeout value to allow communication with very slow targets (Table 03865) Values for SCSILink timeout selector: 00h time to wait for bus (default 18) 01h time to wait for new phase (default 5) 02h maximum time to send/receive block (default 18) 03h time to wait for reselect (default 180) --------G-7D04------------------------------- INT 7D - SCSILink - GET ERROR STRING AH = 04h AL = error number Return: ES:BX -> ASCIZ error string for error number --------G-7D05------------------------------- INT 7D - SCSILink - GET ADDRESS AH = 05h Return: AL = DMA channel AH = initiator ID BX = card address Desc: determine the current hardware configuration --------G-7D06------------------------------- INT 7D - SCSILink - PUT DATA AH = 06h CX = number of bytes to store (0001h-0100h) ES:BX -> data to be saved Return: CF clear if successful CF set on error AL = error code (01h = too much data) Note: the specified data is stored in SCSILink's PSP SeeAlso: AH=07h --------G-7D07------------------------------- INT 7D - SCSILink - GET DATA AH = 07h CX = number of bytes to retrieve (0001h-0100h) ES:BX -> buffer for data Return: CF clear if successful CF set on error AL = error code (01h = too much data) Note: retrieve data previously stored with AH=06h SeeAlso: AH=06h --------G-7D08------------------------------- INT 7D - SCSILink - TERMINATE SESSION AH = 08h Desc: indicate to any other programs that intercept INT 7D that the program has finished with the link Note: the program should call this function even if a SCSI error caused its termination --------G-7D09------------------------------- INT 7D - SCSILink - POLL REQUEST AH = 09h AL = target ID Return: AL = status FEh resident driver experienced SCSI error FFh resident driver handleded event Desc: give any drivers chained onto INT 7D a chance to handle an exception not specifically handled by the calling program Notes: this service exists so that resident disk servers, etc. can continue running even while debuggers and profilers are active the resident driver assumes that a connection has been established and attempts to leave the target connected --------*-7E--------------------------------- INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY --------S-7E--------------------------------- INT 7E U - YTERM 1.4 - ??? SeeAlso: INT 7D"YTERM",INT 7F"YTERM" --------E-7E--------------------------------- INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6 Program: GO32.EXE is a DOS extender included as part of the 80386 port of the GNU C/C++ compiler by DJ Delorie and distributed as DJGPP Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0E"IRQ6",INT 7D"GO32",INT 7F"GO32" --------s-7E00------------------------------- INT 7E - MaxSBOS v0.21 - GET ??? AH = 00h Return: DX:AX -> ??? SeeAlso: AH=01h,AH=02h,AH=03h --------s-7E0001----------------------------- INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE AX = 0001h DX = game device handle BL = MIDI byte to send??? ??? Return: EAX = status 00000000h if successful FFFFFFFFh on error (function disabled) Program: IWSBSDRV is the resident portion of the InterWave SBOS sound card emulator for the Gravis UltraSound Plug-and-Play Note: this function is only supported if the MIDISIMPLE device has been opened via the InterWave Game API (see INT 2F/AX=CD21h) SeeAlso: AX=0002h,INT 2F/AX=CD21h,#03074 --------s-7E0002----------------------------- INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING AX = 0002h DX = game device handle ES:EDI -> buffer containing MIDI string to be sent ECX = length of buffer in bytes Return: EAX = status 00000000h if successful FFFFFFFFh on error (function disabled) Note: this function is only supported if the MIDISIMPLE device has been opened via the InterWave Game API (see INT 2F/AX=CD21h) SeeAlso: AX=0001h,INT 2F/AX=CD21h,#03074 --------s-7E00F6----------------------------- INT 7E - SBOS v3.82 - SET ??? AX = 00F6h BL = ??? (max. 20h, value will be set to 20h if BL greater) Return: AX=00F9h,AX=00FEh --------s-7E00F7----------------------------- INT 7E - SBOS v3.82 - GET ??? AX = 00F7h Return: AX = status 0000h failed 0001h successful BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh) CH = ??? CL = ??? SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh --------s-7E00F9----------------------------- INT 7E - SBOS v3.82 - SET ??? AX = 00F9h BX = ??? SeeAlso: AX=00F6h,AX=00FBh,AX=00FDh --------s-7E00FB----------------------------- INT 7E - SBOS v3.82 - SET ??? AX = 00FBh BL = ??? SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh --------s-7E00FD----------------------------- INT 7E - SBOS v3.82 - SET ??? AX = 00FDh BL = ??? (max. 20h, value will be set to 20h if BL greater) SeeAlso: AX=00F9h,AX=00FEh --------s-7E00FE----------------------------- INT 7E - SBOS v3.82 - UNINSTALL AX = 00FEh Return: AX = status 0000h successful 00FCh unable to unhook INT 21 00FDh unable to unhook INT 09 00FEh unable to release memory Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound InstallCheck: test for the ASCII signature "SBOS" at offset 0Ah in the interrupt handler's segment (similar to one of the possible EMS installation checks) Range: SBOS may use INT 78-INT 7F Note: this function may not be called if any SBOS vectors have been hooked SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID" --------s-7E00FF----------------------------- INT 7E - SBOS v3.82 - SET INTERRUPT FOR ??? AX = 00FFh BL = new interrupt vector to hook Return: BX = 03CDh if supported Desc: unhooks the current interrupt handler for ???, and reconnects it to the specified new interrupt number SeeAlso: AX=00F7h,AX=00F9h,AX=00FEh --------s-7E01------------------------------- INT 7E - MaxSBOS v0.21 - ??? AH = 01h ??? Return: ??? Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis UltraSound MAX Range: INT 78-INT 7F, selected by commandline parameter Note: the installation check is the same as for 'regular' SBOS (see AX=00FEh) although the API in v0.21 does not provide the functions present in the older SBOS SeeAlso: AX=00FEh,AH=02h,AH=03h --------s-7E02------------------------------- INT 7E - MaxSBOS v0.21 - ??? AH = 02h Return: AX = FFFFh SeeAlso: AX=00FEh,AH=01h,AH=03h --------s-7E03------------------------------- INT 7E - MaxSBOS v0.21 - NOP AH = 03h Return: nothing SeeAlso: AX=00FEh,AH=01h,AH=02h --------m-7E5857BL57------------------------- INT 7E - XLOAD - INSTALLATION CHECK AX = 5857h BL = 57h Return: AX = 0000h if installed Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh --------m-7E5857BL5A------------------------- INT 7E - XLOAD - GET ??? AX = 5857h BL = 5Ah Return: AX = 0000h CX = ??? DS:SI -> ??? SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh --------m-7E5857BL5B------------------------- INT 7E - XLOAD - GET XLOAD MEMORY SIZE AX = 5857h BL = 5Bh Return: AX = 0000h CX = segment of XLOAD TSR DX = size of memory block in which XLOAD TSR is located SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Ah --------s-7E--80----------------------------- INT 7E - IWSBSDRV v1.41 - GET ??? AL = 80h Return: DX:AX -> ??? SeeAlso: AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h --------s-7E--81----------------------------- INT 7E - IWSBSDRV v1.41 - ??? AL = 81h ??? Return: ??? SeeAlso: AL=80h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h --------s-7E--82----------------------------- INT 7E - IWSBSDRV v1.41 - GET ??? AL = 82h Return: AX = ??? (FFFFh) SeeAlso: AL=80h,AL=81h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h --------s-7E--83----------------------------- INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD) AL = 83h ??? Return: ??? SeeAlso: AL=80h,AL=81h,AL=82h,AL=84h,AL=85h,AL=86h,AL=87h SeeAlso: INT 2F/AX=1684h/BX=38DAh"VIWD" --------s-7E--84----------------------------- INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM??? AL = 84h Return: AL = status 00h successful else failed SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=85h,AL=86h,AL=87h SeeAlso: INT 2F/AX=CD04h"InterWave" --------s-7E--85----------------------------- INT 7E - IWSBSDRV v1.41 - SET ??? FLAG AL = 85h Return: nothing SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=86h,AL=87h --------s-7E--86----------------------------- INT 7E - IWSBSDRV v1.41 - HOOK INT 21 AL = 86h Return: AX,BX,DX,ES destroyed SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=87h --------s-7E--87----------------------------- INT 7E - IWSBSDRV v1.41 - RESTORE INT 21 AL = 87h Return: AX,DX destroyed SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h --------V-7F--------------------------------- INT 7F - Halo88 - API BX = function number (see #03866) additional parameters on stack Return: ??? Program: Halo88 is a suite of graphics routines Note: according to Stuart Kemp, the code appears to make no provisions for chaining (Table 03866) Values for Halo88 API function: 64h arc 65h bar 66h box 67h circle 68h clr 69h default hatch style 6Ah default line style 6Bh delhcur 6Ch delln / deltcur 6Dh ellipse 6Eh fill 6Fh flood 70h flood2 71h init graphics 72h init hcur 73h init marker 74h init tcur 75h inqarc 76h inqbknd 77h inqclr 78h inqerr 79h inqgcur 7Ah inqhcur 7Bh inqmarker 7Dh inqtcur 7Eh inqtext 7Fh lnabs 80h lnrel 81h markerabs 82h markerrel 83h moveabs 84h movehcurabs 85h movehcurrel 86h moverel 87h movetcurabs 88h movetcurrel 89h movefrom 8Ah moveto 8Bh pie 8Ch polylnabs 8Dh polylnrel 8Eh ptabs 8Fh ptrel 91h setasp 92h set color 93h set font 94h set hatch style 95h set line style 97h settext 98h set text color 99h btext 9Ah setseg 9Bh display 9Ch setscreen 9Eh close graphics 9Fh ftinit A0h ftlocate A1h ftext A5h set viewport A6h set window A7h set world AAh ftcolor ACh initlp ADh inqasp AEh inqdev AFh inqdisplay B0h inqft B1h inqftcolor B2h inqinterlace B3h inqlpa B4h inqlpg B5h inqmode B6h inqscreen B7h inqversion B8h roam B9h scroll BAh setieee BBh set interlace BCh shift BDh start graphics BEh vpan CBh gwrite CCh gread CDh setxor CEh rbox CFh rcir D0h rlnabs D1h rlnrel D2h delbox D3h delcir D5h setseg2 DCh worldoff DDh mapwtod DEh mapdtow DFh mapwton E0h mapntow E1h mapdton E2h mapntod E3h inqworld E4h inqviewport E5h set line width E6h lnjoint E7h set locator E8h read locator E9h setdev EBh setstext ECh setstclr EDh setstang EEh stext EFh inqstext F0h setdegree F1h inqstsize F2h polyfabs F3h polyfrel F4h inqdrange F5h inqstang F6h orglocator F7h inqlocator F8h inqarea F9h setipal FAh setborder FBh inqcrange FEh setclip FFh fcir 100h setcrange 101h setdrange 102h setlattr 103h polycabs 104h polycrel 108h memcom 109h memexp 10Ah memmov 10Eh movefx 10Fh movetx 110h inqrgb 111h save image 112h restore image 113h setapal 114h setxpal 118h inqtsize 12Eh gprint 130h setprn 131h setpattr 133h setbattr 135h pexpand 136h ptnorm 137h pfnorm 13Bh inqprn 13Ch lopen 13Dh lclose 13Eh lappend 13Fh lrecord 140h lswitch 142h inqfun 15Dh lsetup 15Eh lrest 15Fh lsave --------N-7F--------------------------------- INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR AL = request ID 01h "Request"/"RequestDirect" ES:BX -> pRq DX ignored 04h "Wait" ES:BX -> ppMsgRet DX = exchange 05h "AllocExch" ES:BX -> pExchRet 06h "DeAllocExch" DX = exchange 07h "Check" ES:BX -> ppMsgRet DX = exchange CX = 4354h ('CT') Return: AX = status 0000h successful --------S-7F--------------------------------- INT 7F - Telebit ACS SERIAL I/O ES:SI-> parameter block (see #03867) Return: CF set on error CF clear on success InstallCheck: test for the signature "PDGATEWRKSTNIF" just prior to the interrupt handler Index: installation check;Telebit ACS Serial I/O Format of Telebit ACS parameter block: Offset Size Description (Table 03867) 00h BYTE command (see #03868) 01h BYTE gateway number 02h BYTE reserved 03h BYTE port 04h 17 BYTEs auxiliary buffer 15h BYTE session 16h WORD count of bytes passed to API 18h DWORD buffer pointer passed to/from API 1Ch WORD count of bytes passed from API 1Eh BYTE return code (see #03869) (Table 03868) Values for Telebit ACS command: 3Ch status 3Dh connect 3Eh disconnect 3Fh read 40h data/command write 41h clear receive buffer 42h get configuration 43h get receiver status 44h raw write 45h search servers 46h set transmit buffer size (Table 03869) Values for Telebit ACS return code: 00h success 01h invalid session 05h servername invalid 06h NetWare fileserver bindery is locked 07h communication server not active 08h general failure in NetWare fileserver 09h not logged into a fileserver 10h connection table full 11h no response from communication server 12h connection attempt terminated abnormally 13h connection refused - no sessions available 14h gateway number/port already in use 15h invalid connection response 16h port invalid 17h incorrect version in server response 18h gateway number/port combination not configured 19h initialization has not been completed 20h no more sockets are available 21h no active poolname 23h FATAL internal interface error 24h registration of host workstation failed - name is already in use 25h registration of host workstation failed - workstation name table full 26h registration of host workstation failed - only one session may be registered for dial-in FFh Telebit ACS API is busy - retry later --------N-7F--------------------------------- INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE InstallCheck: test for the signature "Lynn" in the four bytes preceding the interrupt handler; if present, the current program is running as a DOS task on a non-dedicated NetWare 2.x file server. Note: Before placing the server into "console" mode, it is recommended that NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h. SeeAlso: INT 21/AH=DEh/DL=04h Index: installation check;non-dedicated NetWare server --------S-7F--------------------------------- INT 7F U - YTERM - ??? SeeAlso: INT 7E"YTERM" --------E-7F--------------------------------- INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7 Notes: this vector is overwritten when GO32 starts but is not restored by early versions of the DOS extender the newest versions of GO32 dynamically allocate the vectors used for the relocated IRQs, much as DESQview does (see INT 50"DESQview") SeeAlso: INT 0F"IRQ7",INT 7E"GO32" ----------7F--------------------------------- INT 7F - Canon IXHND2 Scanner Interface --------U-7F--------------------------------- INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT DS:SI -> WinRun control block (WCB) (see #03870) Return: WinRun receiver status returned in WCB Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start Windows applications from a virtual DOS machine under Windows Note: The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need to be up and running Format of the WinRun control block (WCB): Offset Size Description (Table 03870) 00h DWORD pointer to ASCIZ command string 04h WORD (ret) WinRun receiver status 0000h-001Fh WinExec() error 0020h-FFFEh WinExec() instance handle FFFFh Windows not running or WinRun receiver not installed --------N-7F--------------------------------- INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX) Notes: the words at C800h:0000h and C800h:0002h will both be 584Eh if the MW386 multitasking system is present (i.e. signature "NXNX") NTNX allows its API to be placed on a different interrupt than 7Fh at load time. To determine the actual vector used, open the device "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will be the actual interrupt number being used; the other interrupts may be found with INT 7F/AH=09h/CL=03h --------N-7F--------------------------------- INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK Note: a program may determine that it is running on an ANSK Slave by checking the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this address is RAM, and should not be written. However, the above check will not work on Slaves with <1MB RAM or those using the SLIM.SYS device driver --------N-7F00------------------------------- INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT AH = 00h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #03871) AH = semaphore owner if status=02h SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h (Table 03871) Values for Alloy function status: 00h successful 01h invalid function 02h semaphore already locked 03h unable to lock/unlock semaphore 04h semaphore space exhausted 05h host/target PC did not respond (NTNX) --------T-7F00------------------------------- INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE AH = 00h BX = resource identifier AL = wait flag Return: AL = status 00h successful 01h resource not available 02h user error InstallCheck: ensure that the interrupt vector is not pointing at segment 0000h, then test whether the byte at offset 0000h in the interrupt handler's segment is E9h Notes: function will not return until the resource is available if AL is nonzero on entry a maximum of 100 resources may be enqueued at once SeeAlso: AH=01h"MultiLink" --------N-7F00------------------------------- INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION AH = 00h ES:SI -> buffer for "USERS" text string Return: AX = 4250h ('BP') if installed BX = 5120h ('Q ') if installed DX = version number (DH = major, DL = minor) CX = length of returned string Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ" --------N-7F01------------------------------- INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AH = 01h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #03871) AH = semaphore owner if status=02h SeeAlso: AH=00h,AH=02h,AH=41h --------T-7F01------------------------------- INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE AH = 01h BX = resource identifier Return: AL = status 00h successful 02h user error Note: the indicated resource may be dequeued even if it was enqueued by another task SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink" --------V-7F01------------------------------- INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS AH = 01h Return: BX = 1234h if installed DX:AX -> array of FAR entry points CH = driver major version CL = driver minor version Note: TIGACD 2.05 returns CF set on unrecognized functions in AX SeeAlso: AX=1234h,AX=4321h --------N-7F01------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK AH = 01h AL = stream number (01h-40h) CL = new application flags bit 7: monitored frames available via AH=0Bh"G8BPQ" DL = new application mask Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network Range: INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+ (earlier versions were hard-wired for INT 7F) SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ" --------I-7F0104BX0000----------------------- INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API) AX = 0104h (HLLAPI gate ID) BX = 0000h DS:SI -> parameter control block (see #03872) Return: parameter control block updated InstallCheck: for the Novell HLLAPI TSR, test for the signature "CXI" (for the company Novell bought) immediately prior to the interrupt handler SeeAlso: AX=0105h,AX=ABCDh Format of HLLAPI parameter control block: Offset Size Description (Table 03872) 00h 3 BYTEs signature = 'PCB' 03h BYTE function number (see #03873,#03874) 04h WORD segment of control string 06h WORD offset of control string 08h WORD length of control string, unless explicit end-of-str char set 0Ah BYTE unused (IBM) ControlString[0] (Rabbit) 0Bh WORD return code (see #03876) 0Dh WORD maximum length of control string (IBM) unused (Rabbit) (Table 03873) Values for HLLAPI function number: 00h OEM function (Query system for Attachmate implementation) 01h Connect presentation space 02h Disconnect presentation space 03h Send string of keystrokes as if typed from keyboard 04h Wait ~60s, returns status of presentation space 05h Copy current presentation space into a user-defined buffer 06h Search presentation space for first occurrence of a specified string 07h Query cursor location in current presentation space 08h Copy part or all of current presentation space into user buffer 09h Set session parameters; parameters vary by vendor (see #03875) 0Ah Get info on sessions currently connected 0Bh Lock current presentation space 0Ch Unlock previously locked presentation space 0Dh Return copy of operator info area (OIA) of current presentation space 0Eh get attribute byte for given position in the current presentation space 0Fh copy string of characters to the current presentation space 10h workstation control functions 11h storage manager functions, intended primarily for BASIC applications (not implemented by Rabbit) 12h set delay period in half-second intervals 14h get info on level of workstation support used 15h reset session parameters to default values 16h get detailed info on the current session 17h start host notification to application on presentation sp or OIA update 18h check host update when host notification enabled 19h stop host notification 1Eh search field within current presentation space for string 1Fh get first positionof a selected field in the current presentation space 20h get length of specified field 21h copy string into a specified field 22h copy specified field into a user-defined buffer 23h create alternate presentation space (IBM only), don't use with BASIC 24h switch to alternate presentation space (IBM only), not with BASIC 25h display cursor in specified area (IBM only), don't use with BASIC 26h display alternate presentation space (IBM only), don't use with BASIC 27h delete alternate presentation space (IBM only), don't use with BASIC 28h set cursor 29h start Close Intercept 2Ah query Close Intercept 2Bh stop Close Intercept 32h start intercepting keystrokes to allow filtering 33h get keystrokes after turning on interception 34h notify operator when keystroke rejected by filter subroutine 35h stop intercepting keystrokes 5Ah send file 5Bh receive file 5Ch run a program (not implemented by Rabbit) 5Dh execute DOS command (not implemented by Rabbit) 63h change presentation space position to PC display row/col or vice versa 65h connect to Window Services 66h disconnect from Window Services 67h set/query window coordinates 68h set/query window status 69h change presentation space name 78h connect Structured Fields 79h disconnect Structured Fields 7Ah query size of communications buffer 7Bh allocate communications buffer 7Ch free communications buffer 7Dh get request completion state 7Eh read Structured Fields 7Fh write Structured Fields FFh Get info on DCA implementation (Table 03874) Values for LLAPI function number: 80h initialize LLAPI (internal call) 83h set Session ID (one-character ID) 84h read Session ID (one-character ID) 85h lock 327x keyboard 86h unlock 327x keyboard 87h wait for Clear to Send 88h type ASCII character 89h type 327x key 8Ah read keyboard lock state 8Fh force screen update 90h view session 91h relinquish (suspend foreground until background becomes idle) 92h poke screen character 93h poke translated character 94h peek screen character 95h peek translated character 96h set cursor position 97h send scan code (Rabbit only) 98h synchronize (returns after keystroke queue empty) 99h type PC key (Rabbit only) (Table 03875) Values for HLLAPI Function 09h Session Parameters: ASCII ??? (Rabbit only) ATTRIB return attributes in hex NOATTRIB return attributes as blanks CONPHYS make physical connection CONLOG only make logical connection EAB copy extended attribute bytes along with data NOEAB copy data only ESC=n set escape character to "n" (default '@') EOT=n set end of string character (default 00h) FPAUSE full-duration pause FTNOWAIT return immediately from functions 5Ah and 5Bh (Rabbit only) FTWAIT wait for file transfer to complete (Rabbit only) IPAUSE interruptable pause RABESC ??? (Rabbit only) NORABESC ??? (Rabbit only) SCANCODE ??? (Rabbit only) STRLEN use explicit string lengths STREOT use terminated strings SRCHALL search entire presentation space SRCHFROM search from specified offset SRCHFRWD search forward from position 1 SRCHBKWD search backward from last position in presentation space TIMEOUT=n ??? (Rabbit only) TWAIT wait specified time for keyboard ready LWAIT wait until keyboard ready NWAIT no wait TRON enable tracing TROFF disable tracing AUTORESET send reset before sending keys with function 03h NORESET don't send reset QUIET don't display messages sent with INT 21/AH=09h NOQUIET allow messages to be displayed TIMEOUT=n set timeout in 30-second intervals, 0 = wait until ^Break XLATE translate extended attribute bytes NOXLATE don't translate NEWRET use HLLAPI v3.0 return code conventions OLDRET use HLLAPI v2.0 return code conventions (Table 03876) Values for Windows HLLAPI return code: 00h successful 01h Presentation Space not connected/requested size unavailable 02h invalid function or parameter error/invalid block ID 03h file transfer complete 04h file transfer complete (segmented)/Presentation Space busy 05h inhibited or keyboard locked 06h data truncated 07h invalid Presentation Space position 08h operation not available 09h system error 0Ah blocking error 0Bh resource not available 0Ch session stopped 14h undefined key combination 15h OIA updated 16h Presentation Space updated 17h both Presentation Space and OIA updated 18h no such field 19h no keystrokes available 1Ah Presentation Space or Operator Information Area changed 1Bh file transfer aborted 1Ch zero-length field 1Eh cursor type invalid 1Fh keystroke overflow 20h another application is already connected 22h message sent to host cancelled 23h transmission from host cancelled 24h lost contact with host 25h function successful 26h function incomplete 27h a DDM session is already connected 28h disconnected, but asynchronous requests still pending 29h buffer already in use 2Ah no matching request found 12Dh invalid function number 12Eh file not found 131h access denied 134h out of memory 136h environment invalid 137h format invalid 270Eh (9998) invalid Presentation Space ID 270Fh (9999) invalid row or column code ---Windows HLLAPI extensions--- F000h asynchronous call already in progress F001h invalid asynchronous task ID F002h blocking call cancelled F003h underlying subsystem not started F004h unsupported application version --------V-7F0105----------------------------- INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE) AX = 0105h Return: CF set on error CF clear if successful CX:DX -> array of FAR pointers to entry points (see #03877) Note: most functions are invoked by pushing the DWORD parameter block pointer and then performing a FAR call via the appropriate vector of the entry point array, placing the FAR address of the function's parameter block on the top of the stack SeeAlso: AX=0104h,AX=0106h,AX=ABCDh (Table 03877) Values for HDILOAD function number: (do FAR call via entry_points+4*function) 08h HOPEN Open Adapter (see #03909) 09h HSMX Set Mix (see #03938) 10h HINT Interrupt (see #03905) 13h HLDPAL Load Palette (see #03906) 15h HBBW BitBLT Write Image Data (see #03892) 17h HBBR BitBLT Read Image Data (see #03893) 18h HBBCHN Chained Data Go (see #03891) 19h HBBC BitBLT Copy Data (see #03890) 1Dh HQMODE Get Current Mode (see #03915) 20h HRECT Fill Rectangle (see #03917) 22h HCLOSE Close Adapter and place in quiescent state (see #03898) 30h HINIT Initialize State (see #03904) 31h HSYNC Synchronize Adapter (see #03943) 39h HSPAL Save Palette (see #03940) 3Ah HRPAL Restore Palette (see #03920) ??? HSGQ Set Graphics Quality (see #03929) ??? HSCOORD Set Coordinate Type (see #03926) ??? HESC Escape, Terminate Processing (see #03903) ??? HSBCOL Set Background Color (see #03921) ??? HSBP Set Bit Plane Controls (see #03922) ??? HSCMP Set Color Comparison Register (see #03924) ??? HSCOL Set Color (see #03925) ??? HSHS Set Scissors (clipping rectangle) (see #03930) ??? HXLATE Assign Text Color (see #03944) ??? HQMODES Get Adapter Modes (see #03916) ??? HQDPS Get Drawing Process State Size (see #03914) ??? HQDFPAL Get Default Palette (see #03913) ??? HQCOORD Get Coordinate Type (see #03911) ??? HQCP Get Current Position (see #03912) ??? HSMODE Change Mode (see #03936) ??? HLINE Draw Line at Given Position (see #03907) ??? HCLINE Draw Line at Current Position (see #03897) ??? HRLINE Draw Line Relative from Given Position (see #03918) ??? HCRLINE Draw Line Relative at Current Position (see #03900) ??? HSLT Set Line Type (see #03933) ??? HSLW Set Line Width (see #03935) ??? HSLPC Save Line Pattern Count (see #03932) ??? HRLPC Restore Line Pattern Count (see #03919) ??? HCBBW BitBLT Write Image Data at Current Position (see #03894) ??? HBAR Begin Area (see #03889) ??? HEAR End Area (see #03901) ??? HSPATT Set Pattern (see #03941) ??? HSPATTO Set Pattern Reference Point (see #03942) ??? HEGS Erase Graphics Screen (see #03902) ??? HSCP Set Current Position (see #03927) ??? HMRK Set Marker (see #03908) ??? HCMRK Set Marker at Current Position (see #03899) ??? HSMARK Set Marker Shape (see #03937) ??? HSCS Set Character Set (see #03928) ??? HCHST Write Character String at Given Position (see #03896) ??? HCCHST Write Character String at Current Position (see #03895) ??? HSCELL Set Cell Size for Alphanumeric Text (see #03923) ??? ABLOCKMFI Write Character/Attribute Block MFI (see #03880) ??? ABLOCKCGA Write Character Block CGA (see #03878) ??? AERASE Erase Rectangle (see #03883) ??? ASCROLL Scroll Rectangle (see #03884) ??? ACURSOR Set Alphanumerics Cursor Position (see #03882) ??? ASCUR Set Alphanumeric Cursor Shape (see #03885) ??? ASFONT Set Font (see #03886) ??? AXLATE Assign Alphanumeric Color (see #03888) Format of ABLOCKCGA parameter block: Offset Size Description (Table 03878) 00h WORD 000Ah (length of following data) 02h WORD top-left coordinate of character block 04h WORD width of block 06h DWORD -> block of WORDs describing characters (see #03879) 0Ah BYTE length of block in characters 0Bh BYTE highlight attribute bit 4: transparent background bit 5: overstrike bit 6: reverse video bit 7: underscore SeeAlso: #03880 Bitfields for one character in ABLOCKCGA character block: Bit(s) Description (Table 03879) 3-0 foreground attribute 7-4 background attribute 15-8 character code Format of ABLOCKMFI parameter block: Offset Size Description (Table 03880) 00h WORD 0009h (length of following data) 02h WORD top-left coordinate of character block 04h WORD width of block 06h DWORD -> block of DWORDs describing characters (see #03881) 0Ah BYTE length of block in characters SeeAlso: #03878 Bitfields for one character in ABLOCKMFI character block: Bit(s) Description (Table 03881) 7-0 reserved 9-8 low two bits of font number 12 transparent background 13 overstrike 14 reverse video 15 underscore 19-16 foreground color attribute 23-20 background color attribute 31-24 character code Format of ACURSOR parameter block: Offset Size Description (Table 03882) 00h WORD 0002h (length of following data) 02h BYTE column (0-based) 03h BYTE row (0-based) SeeAlso: #03885 Format of AERASE parameter block: Offset Size Description (Table 03883) 00h WORD 0005h (length of following data) 02h BYTE left-most column (0-based) 03h BYTE top-most row (0-based) 04h BYTE rectangle's width in character cells 05h BYTE rectangle's height in character cells 06h BYTE background color (bits 7-4) SeeAlso: #03884 Format of ASCROLL parameter block: Offset Size Description (Table 03884) 00h WORD 0006h (length of following data) 02h BYTE left-most column (0-based) of source 03h BYTE top-most row (0-based) of source 04h BYTE rectangle's width in character cells 05h BYTE rectangle's height in character cells 06h BYTE left-most column (0-based) of destination 07h BYTE top-most row (0-based) of destination SeeAlso: #03883 Format of ASCUR parameter block: Offset Size Description (Table 03885) 00h WORD 0003h (length of following data) 02h BYTE cursor start line (00h = top of cell, FFh = keep current shape) 03h BYTE cursor stop line 04h BYTE cursor attribute 00h normal 01h hidden 02h left-arrow (requires start = 2 and stop = bottom of cell) 03h right-arrow (requires start = 2 and stop = bottom of cell) Notes: no cursor is shown if the start line is greater than the stop line the alphanumeric cursor is hidden after each mode change SeeAlso: #03882,INT 10/AH=01h Format of ASFONT parameter block: Offset Size Description (Table 03886) 00h WORD 0005h (length of following data) 02h BYTE font number (0-3) 03h DWORD -> character set definition block (see #03887) Format of 8514/A character set definition block: Offset Size Description (Table 03887) 00h BYTE reserved 01h BYTE type of character set 00h bitmapped, 01h&02h reserved, 03h short-stroke font 02h BYTE reserved 03h DWORD reserved 07h BYTE cell width in pixels 08h BYTE cell height in pixels 09h BYTE reserved 0Ah WORD cell size in bytes 0Ch WORD flags bit 15: reserved (0) bit 14: color bitmap bit 13: proportional spacing 0Eh DWORD -> index table 12h DWORD -> character width table 16h BYTE initial code point 17h BYTE final code point 18h DWORD -> character definition table 1Ch WORD reserved 1Eh DWORD -> second character definition table 22h WORD reserved 24h DWORD -> third character definition table Format of AXLATE parameter block: Offset Size Description (Table 03888) 00h WORD 0080h (length of following data) 02h 64 BYTEs character foreground translation table 42h 64 BYTEs character background translation table Format of HBAR parameter block: Offset Size Description (Table 03889) 00h WORD 0000h (no data following) SeeAlso: #03901 Format of HBBC parameter block: Offset Size Description (Table 03890) 00h WORD 0010h (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height 08h BYTE source bit plane number (across-the-plane copies only) 09h BYTE reserved 0Ah 2 WORDs X,Y coordinates of source's upper-left corner in display memory 0Eh 2 WORDs X,Y coordinates of destination's upper-left corner in display memory Note: copies data from one location in video memory to another SeeAlso: #03891 Format of HBBCHN parameter block: Offset Size Description (Table 03891) 00h WORD 0006h (length of following data) 02h DWORD -> data buffer in system memory 06h WORD number of bytes to transfer Note: this function performs the actual data transfer for a bitBLT set up with HBBR, HBBW, or HCBBW SeeAlso: #03890,#03892,#03893,#03894 Format of HBBR parameter block: Offset Size Description (Table 03892) 00h WORD 000Ch or 0014h (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height 08h BYTE source bit plane number 09h BYTE reserved 0Ah 2 WORDs X,Y coordinates of destination's upper-left corner in display memory ---optional--- 0Eh WORD sub-rectangle left margin in pixels 10h WORD sub-rectangle top margin in pixels 12h WORD sub-rectangle width 14h WORD sub-rectangle height SeeAlso: #03891,#03892,#03894 Format of HBBW parameter block: Offset Size Description (Table 03893) 00h WORD 000Ah or 0012h (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height 08h 2 WORDs X,Y coordinates of destination in display memory ---optional--- 0Ch WORD sub-rectangle left margin in pixels 0Eh WORD sub-rectangle top margin in pixels 10h WORD sub-rectangle width 12h WORD sub-rectangle height SeeAlso: #03891,#03893,#03894 Format of HCBBW parameter block: Offset Size Description (Table 03894) 00h WORD 0006h or 000Eh (length of following data) 02h WORD data format 0000h across-the-plane copy (color expansion) 0008h through-the-plane copy 04h WORD data rectangle's width 06h WORD data rectangle's height ---optional--- 08h WORD sub-rectangle left margin in pixels 0Ah WORD sub-rectangle top margin in pixels 0Ch WORD sub-rectangle width 0Eh WORD sub-rectangle height SeeAlso: #03891,#03892,#03893 Format of HCCHST parameter block: Offset Size Description (Table 03895) 00h WORD length of following data 02h N BYTEs ASCII string to display (length given by 'length' field above) SeeAlso: #03896 Format of HCHST parameter block: Offset Size Description (Table 03896) 00h WORD length of following data 02h 2 WORDs X,Y of left-bottom corner of string on screen 06h N BYTEs ASCII string to display (length given by 'length' field above) SeeAlso: #03895 Format of HCLINE parameter block: Offset Size Description (Table 03897) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y coordinates for each of N points in polyline Notes: the first line segment is drawn beginning at the current position on completion, the current position is set to the last point drawn SeeAlso: #03907,#03918,#03900 Format of HCLOSE parameter block: Offset Size Description (Table 03898) 00h WORD 0001h (length of following data) 01h BYTE (ret) return code SeeAlso: #03909 Format of HCMRK parameter block: Offset Size Description (Table 03899) 00h WORD length of following data 02h 2N WORDs X,Y of N points Note: draws N+1 marker symbols, the first one at the current position SeeAlso: #03908 Format of HCRLINE parameter block: Offset Size Description (Table 03900) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y coordinates relative to the position of the previous point (current position for first point) for each of N points in polyline Notes: the first line segment is drawn beginning at the current position on completion, the current position is set to the last point drawn SeeAlso: #03907,#03897,#03918 Format of HEAR parameter block: Offset Size Description (Table 03901) 00h WORD 0001h (length of following data) 02h BYTE area definition flags bits 7-6: End Area type 00 complete, perform fill 01 suspend definition 10 complete, but don't fill SeeAlso: #03889 Format of HEGS parameter block: Offset Size Description (Table 03902) 00h WORD 0000h (no data following) Format of HESC parameter block: Offset Size Description (Table 03903) 00h WORD 0000h (no data following) Format of HINIT parameter block: Offset Size Description (Table 03904) 00h WORD 0002h (length of following data) 02h WORD segment of task buffer SeeAlso: #03943 Format of HINT parameter block: Offset Size Description (Table 03905) 00h WORD 0004h (length of following data) 02h DWORD interrupt/event identifier bit 31: vertical blanking Format of HLDPAL parameter block: Offset Size Description (Table 03906) 00h WORD 000Ah (length of following data) 02h BYTE palette ID (00h = user, 01h = default) 03h BYTE reserved 04h WORD number of first palette entry 06h WORD number of entries 08h DWORD -> palette entries SeeAlso: #03940 Format of HLINE parameter block: Offset Size Description (Table 03907) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y coordinates for each of N points in polyline Note: on completion, the current position is set to the last point drawn SeeAlso: #03897,#03918,#03900 Format of HMRK parameter block: Offset Size Description (Table 03908) 00h WORD length of following data (multiple of 4) 02h 2N WORDs X,Y for N points SeeAlso: #03899 Format of HOPEN parameter block: Offset Size Description (Table 03909) 00h WORD 0003h (length of following data) 01h BYTE initialization flags bit 6: don't load default palette bit 7: clear bitplanes 02h BYTE mode type (see #03910) 03h BYTE (ret) return code bit 7: no adapter (hardware mismatch) SeeAlso: #03898 (Table 03910) Values for 8514/A display mode: 0000h 12x20 characters, 1024x768 0001h 8x14 characters, 640x480 0002h 8x14 characters, 1024x768 0003h 7x15 characters, 1024x768 Format of HQCOORD parameter block: Offset Size Description (Table 03911) 00h WORD 0004h (length of following data) 02h BYTE (ret) coordinate format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 03h BYTE (ret) relative coordinate format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 04h BYTE (ret) number of dimensions (2-4) 05h BYTE (ret) test results bit 7: coordinate format not supported bit 6: relative coordinate format not supported bit 5: specified dimension not supported Format of HQCP parameter block: Offset Size Description (Table 03912) 00h WORD 0004h (length of following data) 02h WORD (ret) current X position 04h WORD (ret) current Y position Format of HQDFPAL parameter block: Offset Size Description (Table 03913) 00h WORD 0040h (length of following data) 02h 16 DWORDs (ret) color index values Note: the default palette is set to match the default EGA/VGA 16-color palettes Format of HQDPS parameter block: Offset Size Description (Table 03914) 00h WORD 0006h (length of following data) 02h WORD (ret) size of data buffer in bytes 04h WORD (ret) stack size in bytes 06h WORD (ret) size of palette save buffer in bytes Format of HQMODE parameter block: Offset Size Description (Table 03915) 00h WORD 0012h (length of following data) 02h BYTE current video mode (see #03910) 03h WORD driver version bit 6: 80286/8086 CPU bit 5: 8 bit planes instead of 4 planes bits 4-0: hardware release number 05h BYTE adapter type 03h 8514/A 04h XGA 06h BYTE reserved (display type) 07h BYTE character cell width 08h BYTE character cell height 09h BYTE number of bit planes 0Ah WORD screen width (pixels) 0Ch WORD screen height (pixels) 0Eh WORD horizontal resolution (pixels/inch) 10h WORD vertical resolution (pixels/inch) 12h BYTE flag: 00h = monochrome, FFh = color 13h BYTE intensity levels SeeAlso: #03916 Format of HQMODES parameter block: Offset Size Description (Table 03916) 00h WORD 0021h (length of following data) 02h BYTE (ret) adapter type 03h 32 BYTEs (ret) available display modes (FFh byte marks end of data) SeeAlso: #03915 Format of HRECT parameter block: Offset Size Description (Table 03917) 00h WORD 0008h (legth of following data) 02h 2 WORDs X,Y coordinates of top left corner or rectangle 06h WORD rectangle's width 08h WORD rectangle's height Note: the rectangle is filled using the current pattern, color, and mix Format of HRLINE parameter block: Offset Size Description (Table 03918) 00h WORD length of following data (multiple of 4) 02h 2 WORDs X,Y coordinates of starting point 06h 2N WORDs X,Y coordinates relative to the position of the previous point for each of N points in polyline Note: on completion, the current position is set to the last point drawn SeeAlso: #03907,#03897,#03900 Format of HRLPC parameter block: Offset Size Description (Table 03919) 00h WORD 0000h (no data following) Note: used for continuity of lines crossing scissors boundaries SeeAlso: #03932 Format of HRPAL parameter block: Offset Size Description (Table 03920) 00h WORD 0300h (length of following data) 02h 768 BYTEs buffer containing previously-saved palette table SeeAlso: #03940 Format of HSBCOL parameter block: Offset Size Description (Table 03921) 00h WORD 0004h (length of following data) 02h DWORD color index for new background color SeeAlso: #03925 Format of HSBP parameter block: Offset Size Description (Table 03922) 00h WORD 000Ch (length of following data) 02h DWORD bitmask for graphics updates 06h DWORD bitmask for alphanumeric updates 0Ah DWORD display bitmask Format of HSCELL parameter block: Offset Size Description (Table 03923) 00h Format of HSCMP parameter block: Offset Size Description (Table 03924) 00h WORD 0005h (length of following data) 02h DWORD comparison color 06h BYTE logical operation 00h True 01h pel > testcolor 02h pel == testcolor 03h pel < testcolor 04h False 05h pel >= testcolor 06h pel <> testcolor 07h pel <= testcolor Format of HSCOL parameter block: Offset Size Description (Table 03925) 00h WORD 0004h (length of following data) 02h DWORD color index for new foreground color SeeAlso: #03921 Format of HSCOORD parameter block: Offset Size Description (Table 03926) 00h WORD 0003h (length of following data) 02h BYTE coordinate format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 03h BYTE relative coordinates format bits 7-4: bytes per coordinate bits 3-0: fraction bytes in coordinate 04h BYTE number of dimensions (2-4) Format of HSCP parameter block: Offset Size Description (Table 03927) 00h WORD 0004h (length of following data) 02h 2 WORDs X,Y or coordinate for new current position Format of HSCS parameter block: Offset Size Description (Table 03928) 00h WORD 0004h (length of following data) 02h DWORD -> character set definition Format of HSGQ parameter block: Offset Size Description (Table 03929) 00h WORD 0002h (length of following data) 02h WORD quality settings (see #03931) Format of HSHS parameter block: Offset Size Description (Table 03930) 00h WORD 0008h (length of following data) 02h WORD left edge of clipping rectangle (-2048 to +6143) 04h WORD right edge 06h WORD top edge 08h WORD bottom edget Bitfields for 8514/A quality settings: Bit(s) Description (Table 03931) 15 reserved 14 high precision 13 reserved 12-11 pel code 00 not drawn 01 drawn 02 conditional on overpainting/mixes 10 don't close areas to be filed 9-0 reserved Format of HSLPC parameter block: Offset Size Description (Table 03932) 00h WORD 0000h (no data following) Note: used for continuity of lines crossing scissors boundaries SeeAlso: #03919 Format of HSLT parameter block: Offset Size Description (Table 03933) 00h WORD 0006h (length of following data) 02h BYTE line type (see #03934) 03h BYTE reserved 04h DWORD -> user line-type definition (if user type) SeeAlso: #03935 (Table 03934) Values for 8514/A line type: 00h user line type 01h dotted 02h short dashes 03h dash-dot 04h double dotted 05h dashed 06h dash double dot 07h solid 08h invisible SeeAlso: #03933 Format of HSLW parameter block: Offset Size Description (Table 03935) 00h WORD 0001h (length of following data) 02h BYTE width of line in pixels SeeAlso: #03933 Format of HSMODE parameter block: Offset Size Description (Table 03936) 00h WORD 0001h (length of following data) 02h BYTE new display mode number (see #03910) Format of HSMRK paramter block: Offset Size Description (Table 03937) 00h WORD 000Eh (length of following data) 02h BYTE cell width 03h BYTE cell height 04h BYTE flags 05h BYTE reserved 06h WORD length of marker symbol 08h DWORD -> image definition data 0Ch DWORD -> color definition data SeeAlso: #03941 Format of HSMX parameter block: Offset Size Description (Table 03938) 00h WORD 0002h (length of following data) 02h BYTE foreground mix (see #03939) 03h BYTE background mix (see #03939) (Table 03939) Values for 8514/A mix: 00h retain previous mix 01h source OR destination 02h source 04h source XOR destination 05h leave as-is 06h max(source,destination) 07h min(source,destination) 08h source+destination (clipped) 09h destination-source (clipped to zero) 0Ah source-destination (clipped to zero) 0Bh average source and destination 10h zero destination 11h source AND destination 12h source AND NOT destination 13h source 14h NOT source AND destination 15h leave as-is 16h source XOR destination 17h source OR destination 18h NOT source AND NOT destination 19h NOT (source XOR destination) 1Ah NOT destination 1Bh source OR NOT destination 1Ch NOT source 1Dh NOT source OR destination 1Eh NOT source OR NOT destination 1Fh set all bits of destination Format of HSPAL parameter block: Offset Size Description (Table 03940) 00h WORD 0300h (length of following data) 02h 768 BYTEs buffer for palette table SeeAlso: #03906,#03920 Format of HSPATT parameter block: Offset Size Description (Table 03941) 00h WORD 000Eh (length of following data) 02h BYTE cell width 03h BYTE cell height 04h BYTE flags 05h BYTE reserved 06h WORD length of marker symbol 08h DWORD -> image definition data 0Ch DWORD -> color definition data SeeAlso: #03937,#03942 Format of HSPATTO parameter block: Offset Size Description (Table 03942) 00h WORD 0004h (length of following data) 02h 2 WORDs X,Y of pattern reference point (origin) SeeAlso: #03941 Format of HSYNC parameter block: Offset Size Description (Table 03943) 00h WORD 0002h (length of following data) 02h WORD segment of task state buffer SeeAlso: #03904 Format of HXLATE parameter block: Offset Size Description (Table 03944) 00h WORD 0020h (length of following data) 02h 32 BYTEs color index table --------V-7F0105----------------------------- INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS) AX = 0105h Return: CF set on error CF clear if successful CX:DX -> array of FAR pointers to entry points (see #03877) Note: this API is a superset of the 8514/A Adapter Interface (see AX=0105h"HDILOAD") --------V-7F0106----------------------------- INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL AX = 0106h Return: AX = 0105h if successfully unloaded SeeAlso: AX=0105h --------N-7F02------------------------------- INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE AH = 02h DS:DX -> ASCIZ semaphore name (max 64 bytes) Return: AL = status (see #03871) AH = semaphore owner if status=02h SeeAlso: AH=00h,AH=01h,AH=42h --------T-7F02------------------------------- INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU AH = 02h Return: ??? Desc: yields CPU to other tasks SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h --------N-7F02------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME AH = 02h AL = stream number (01h-40h) CX = length of frame ES:SI -> frame to be sent SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ" --------f-7F0200----------------------------- INT 7F - Btrieve Multi-User - GIVE UP TIME??? AX = 0200h SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve" --------N-7F03------------------------------- INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER AH = 03h Return: AL = user number AH = machine number (MW386) Note: this function call is the recommended method for a CPU-bound process to prevent its priority from being lowered SeeAlso: AH=04h,AH=05h,AH=A1h --------N-7F03------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME AH = 03h AL = stream number (01h-40h) ES:DI -> buffer for frame (must be large enough for a full frame; 350 bytes is usually sufficient) Return: BX = number of pending frames (0000h if returned frame was last avail) CX = length of received frame SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ" --------N-7F04------------------------------- INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS AH = 04h Return: AL = total number of users on currrent machine (MW386) AL = number of slaves on system (NTNX) SeeAlso: AH=03h --------N-7F04------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS AH = 04h AL = stream number (01h-40h) Return: CX = state (0000h disconnected, 0001h connected) DX = delta state (0000h no change, 0001h changed since last check) SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ" --------N-7F05------------------------------- INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL AH = 05h AL = function 00h lock system (disable slave services) 01h unlock system 02h enable spooler 03h disable spooler 04h enable slave timer update 05h disable slave timer update 06h enable form feeds 07h disable form feeds SeeAlso: INT 17/AH=A4h --------N-7F05------------------------------- INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS AH = 05h DX:DI -> buffer for user information record (see #03945) Notes: MW386 provides this function for backward compatibility only, and sets many of the fields to zero because they are meaningless under MW386 this function has no effect when called by the host (user 0) SeeAlso: AH=03h Format of Alloy user information record: Offset Size Description (Table 03945) 00h WORD segment of video RAM 02h WORD segment of secondary copy of video RAM 04h WORD offset of screen update flag (see INT 10/AH=8Bh) flag nonzero if update needed 06h WORD video NMI enable port (not used by MW386, set to 0000h) 08h WORD video NMI disable port (not used by MW386, set to 0000h) 0Ah BYTE processor type 00h 8088 01h V20 02h 8086 03h V30 06h 80386 0Bh WORD multitasking flag (00h = single tasking, 01h = multitasking) (not used by MW386, set to 0000h) 0Dh WORD offset of terminal driver (not used by MW386, set to 0000h) 0Fh BYTE port for console I/O (not used by MW386, set to 0000h) 10h WORD offset of processor communication busy flag bit 7 set when slave communicating with host 12h WORD pointer to FAR NX system call (not used by MW386, set to 0000h) 14h WORD offset of 16-byte user configuration record (see AH=38h) 16h WORD offset of command/status word 18h WORD offset of screen valid flag (see INT 10/AH=93h) nonzero if screen must be repainted 1Ah WORD offset of screen repaint flag 1Ch WORD pointer to NEAR NX system call (not used by MW386, set to 0000h) 1Eh WORD offset for intercept flags (not used by MW386, set to 0000h) intercept flag = FFh if MS-DOS intercepts should be disabled 20h WORD offset of terminal lock flag (see INT 10/AH=92h) lock flag = FFh if backgrnd screen updates should be suspended 22h 26 BYTEs reserved --------N-7F05------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE AH = 05h AL = stream number (01h-40h) Note: this function must be called in order to receive a report of another status change SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ" --------N-7F06------------------------------- INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO AH = 06h AL = drive number (1=A:, 2=B:, etc) ES:DI -> drive info record (see #03946) Return: AX = status 0000h successful ES:DI buffer filled 0001h not shared drive Format of Alloy drive info record: Offset Size Description (Table 03946) 00h WORD segment of drive IO-REQUEST structure (MS-DOS DPB) 02h WORD segment of allocation map (owner table) one byte per FAT entry, containing user ID owning that entry 04h WORD segment of master FAT for drive (copy of FAT on disk) 06h WORD pointer to configuration file 08h WORD total number of clusters 0Ah WORD bytes per sector 0Ch WORD sectors per cluster 0Eh BYTE FAT type (0Ch = 12-bit, 10h = 16-bit) --------N-7F06------------------------------- INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE AH = 06h DL = drive number (1=A:,2=B:,etc) CX = number of clusters to allocate Return: AH = status 00h successful CX = number of clusters still free 10h invalid shared drive request CL = first and second shared drives 11h invalid cluster count (must be 01h-FFh) --------N-7F06------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL AH = 06h AL = stream number (01h-40h) CX = subfunction 0000h connect to node DL bit 0: use BBS callsign instead of Node Call 0001h connect to node use BBS Call if APPLMASK=1 0002h disconnect 0003h return user to node SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ" --------N-7F07------------------------------- INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES AH = 07h Return: ES:DI -> shared drive list (see #03947) Note: MW386 considers all fixed disks to be shared drives; only C and D will be returned as shared Format of Alloy shared drive list: Offset Size Description (Table 03947) 00h BYTE string length 01h BYTE number of shared drives 02h N BYTEs one byte per shared drive --------N-7F07------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM AH = 07h AL = stream number (01h-40h) Return: BX = number of pending receive frames CX = number of unacknowledged sent frames DX = number of buffers available SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ" --------N-7F08------------------------------- INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS AH = 08h CL = function 00h get original interrupt vector 01h get Network Executive interrrupt AL = interrupt number DX:SI -> DWORD to hold interrupt vector Return: AL = status 00h successful 01h interrupt vector not used by network executive 02h invalid subfunction Note: the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h, 1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh SeeAlso: AH=09h/CL=03h,INT 21/AH=35h --------N-7F08--CL02------------------------- INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT AH = 08h CL = 02h DX = timeout in seconds Return: AL = status 00h successful 02h invalid subfunction --------N-7F08------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION AH = 08h AL = stream number (01h-40h) Return: ES:DI -> 10-byte buffer containing blank-padded callsign ---v4.05+ --- AL = radio port to which channel is connected (level 2) AH = session type (see #03948) BX = L2 paclen for session CX = maximum frame size DX = L4 window size or 0000h if not L4 circuit Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ" Bitfields for G8BPQ session type: Bit(s) Description (Table 03948) 0 L2LINK 1 SESSION 2 UPLINK 3 DOWNLIND 5 BPQHOST --------T-7F09------------------------------- INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY AH = 09h AL = priority (0-7) Return: nothing InstallCheck: ensure that the interrupt vector is not pointing at segment 0000h, then test whether the byte at offset 0000h in the interrupt handler's segment is E9h Index: installation check;MultiLink Advanced SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink" --------N-7F09------------------------------- INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS AH = 09h AL = application 00h node 01h BBS 02h HOST 03h SYSOP BL = what to get (00h callsign, 01h application name) ES:SI -> buffer for callsign/name string Return: CX = length of returned string SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ" --------N-7F09------------------------------- INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING AH = 09h CL = function 00h enable checking of RTNX.MUD file 01h disable RTNX.MUD checking --------N-7F09--CL02------------------------- INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE AH = 09h CL = 02h Note: in dedicated mode, the host will only poll for I/O requests from the slave processors, and not provide workstation services --------N-7F09--CL03------------------------- INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT AH = 09h CL = 03h AL = default interrupt number (67h,7Fh,etc) Return: CL = actual interrupt which handles specified interrupt's calls SeeAlso: AH=08h --------N-7F0A--CL00------------------------- INT 7F - Alloy NTNX - GET SYSTEM FLAGS AH = 0Ah CL = 00h ES:DI -> buffer for system flags (see #03949) Return: ES:DI buffer filled Notes: on a slave, only the NX_Busy flag is returned all three flags are at fixed positions, so this function only needs to be called once an interrupt handler should only perform DOS or device accesses when all three flags are 00h Format of Alloy system flags: Offset Size Description (Table 03949) 00h DWORD pointer to NX_Busy flag (nonzero when communicating with users) 04h DWORD pointer to device driver busy flag 08h DWORD pointer to InTimer flag --------N-7F0A------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME AH = 0Ah AL = radio port ES:SI -> buffer containing data to be sent CX = number of bytes to send SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ" --------T-7F0A------------------------------- INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS AH = 0Ah AL = task-switch status 00h normal (disable task when it repeatedly polls keyboard) 01h disable task until keyboard input available FFh never disable task Return: ??? SeeAlso: AH=09h"MultiLink" --------N-7F0B--CL02------------------------- INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE AH = 0Bh CL = 02h AL = slave ID number CH = DOS to activate 00h graphics DOS 01h character DOS Return: AL = status 00h successful 01h nothing done, proper DOS type already loaded --------N-7F0B------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME AH = 0Bh ES:DI -> buffer for received data (see #03950) Return: CX = number of bytes received Note: the specified buffer must be large enough to receive a full frame SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ" Format of G8BPQ received data: Offset Size Description (Table 03950) 00h WORD internal control information 02h BYTE port number (bit 7 set if transmitted frame) 03h WORD frame length including this header 05h var user data --------N-7F0C------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION AH = 0Ch DX = function 0001h update beacon text CX = length of data ES:SI -> data to be sent in beacons 0002h (v4.07+) initiate NODES broadcast SeeAlso: AH=09h"G8BPQ" --------N-7F0D00----------------------------- INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM AX = 0D00h Return: AL = first available stream number, or FFh if none free SeeAlso: AH=00h"G8BPQ",AH=0Dh --------N-7F0D------------------------------- INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM AH = 0Dh AL = stream number (01h-FFh) CL = function 01h allocate stream Return: CX = status (0000h successful, else already in use) 02h deallocate stream SeeAlso: AX=0D00h --------N-7F0F------------------------------- INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER AH = 0Fh Return: AX = time marker (clock ticks modulo 64K) Program: the G8BPQ AX25 Networking Package is amateur packet radio software by John Wiseman which allows a PC to act as a node in an AX.25 network SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h --------N-7F10--CL00------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL AH = 10h CL = 00h AL = channel number DX:DI -> channel buffer Return: AL = status (00h-03h,0Dh) (see #03951) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h (Table 03951) Values for Alloy function status: 00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah channel not open 0Ch channel already locked 0Dh unable to open --------N-7F10--CL01------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL AH = 10h CL = 01h AL = channel number Return: AL = status (00h-03h,0Ah) (see #03951) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h --------N-7F10--CL02------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL AH = 10h CL = 02h AL = channel number Return: AL = status (00h-03h,0Ah,0Ch) (see #03951) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h --------N-7F10--CL03------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL AH = 10h CL = 03h AL = channel number Return: AL = status (00h-03h,0Ah) (see #03951) Notes: should only be used on channels locked with AH=10h/CL=02h, not on those locked by receipt of a datagram may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h --------N-7F10--CL04------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER AH = 10h CL = 04h AL = channel number Return: AL = status (00h-03h) (see #03951) Notes: unlocks buffer after received datagram has been processed may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=00h --------N-7F10--CL05------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS AH = 10h CL = 05h Return: AL = status (00h-03h) (see #03951) Notes: clears all pending datagrams and clears buffer pointers before closing the channels may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=01h --------N-7F10--CL06------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS AH = 10h CL = 06h Return: AL = status (00h-03h) (see #03951) Note: may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h --------N-7F10--CL07------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS AH = 10h CL = 07h Return: AL = status (00h-03h) (see #03951) Notes: unlocks all locked channels which have no pending datagrams may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h --------N-7F10--CL08------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS AH = 10h CL = 08h DX = maximum channel number to lock Return: AL = status (00h-03h) (see #03951) Notes: locks channels numbered 00h through the value in DX may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h --------N-7F10--CL09------------------------- INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS AH = 10h CL = 09h DX = maximum channel number to unlock Return: AL = status (00h-03h) (see #03951) Notes: unlocks channels numbered 00h through the value in DX may not be invoked from within a hardware interrupt handler SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h --------N-7F11------------------------------- INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM AH = 11h DX:SI -> request block (see #03953) Return: AL = status (see #03952) Note: if wildcard channel FFh used, actual channel number will be filled in SeeAlso: AH=12h (Table 03952) Values for Alloy function status: 00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah packet too large (or <2 bytes if NTNX) 0Bh can't send packet to itself 0Ch invalid number of destinations 0Dh destination channel number out of range 0Eh destination user is busy 0Fh destination user has locked channel 10h channel not open 11h no datagram server on destination (NTNX) Format of Alloy request block: Offset Size Description (Table 03953) 00h DWORD pointer to packet to send 04h WORD packet size in bytes (1-4096) 06h BYTE number of destinations for packet (max 1Fh) 07h 31 BYTEs destination user IDs (FFh = broadcast to all except sender) 26h 31 BYTEs destination channels (FFh = first available channel) 45h 31 BYTEs return destination statuses --------N-7F12------------------------------- INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM AH = 12h AL = channel number being acknowledged DI:DX = 32-bit status to return to sender Return: AL = status (see #03954) Note: also unlocks the channel, allowing the next datagram to be received SeeAlso: AH=11h,AH=15h/CL=04h (Table 03954) Values for Alloy function status: 00h successful 01h busy 02h channel range error (not 00h-3Fh) 03h invalid subfunction 0Ah channel not open 0Bh no message in channel 0Ch destination slave busy--retry (NTNX) 0Dh destination user not active 0Eh destination slave not active (NTNX) 0Fh destination disabled datagram service --------V-7F1234----------------------------- INT 7F - TIGA Communications Driver v2.05 - UNINSTALL AX = 1234h SeeAlso: AX=4321h --------N-7F13--CL00------------------------- INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS AH = 13h CL = 00h Note: clears all pending datagrams and removes all channels opened in NTNX compatibility mode --------N-7F14--CL00------------------------- INT 7F - Alloy NTNX, MW386 - SET RECEIVE ISR AH = 14h CL = 00h DX:DI -> application FAR receive service routine (see #03955) Return: AL = status (00h-03h) (see #03954) SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h (Table 03955) Values Alloy receive service routine is called with: DH = sender ID DL = channel with datagram interrupts disabled Return: AL = response code 00h leave buffer locked, set channel status, and repeat call later 01h release channel buffer 02h change buffer pointer to DX:DI AH,CX,DX,DI,SI may be destroyed --------N-7F14--CL01------------------------- INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR AH = 14h CL = 01h DX:DI -> application FAR acknowledge service routine (see #03956) Return: AL = status (00h-03h) (see #03954) Note: the service routine will be called as soon as an acknowledgment arrives SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h (Table 03956) Values Alloy acknowledge service routine is called with: DS:SI -> acknowledge structure (see #03960) Return: AL = response code 00h application busy, network executive should call again later 01h acknowledge accepted AH,DX,SI may be destroyed --------N-7F14--CL02------------------------- INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER AH = 14h CL = 02h AL = channel number DX:DI -> receive buffer Return: AL = status (00h-03h) (see #03954) Note: may be called from within a receive ISR or when a datagram is pending SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h --------N-7F14--CL03------------------------- INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR AH = 14h CL = 03h Return: DX:DI -> current receive ISR SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h --------N-7F14--CL04------------------------- INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR AH = 14h CL = 04h Return: DX:DI -> current acknowledge ISR SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h --------N-7F14--CL05------------------------- INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER AH = 14h CL = 05h DX:DI -> buffer for busy structure (see #03957) Return: DX:DI buffer filled Format of Alloy busy structure: Offset Size Description (Table 03957) 00h DWORD pointer to busy flag byte 04h WORD fixed port address (FF00h) --------N-7F15--CL00------------------------- INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS AH = 15h CL = 00h AL = channel number DX:DI -> status structure (see #03958) Return: AL = status (00h-03h) (see #03954) SeeAlso: AH=15h/CL=01h Format of Alloy channel status structure: Offset Size Description (Table 03958) 00h BYTE channel status bit 0: channel open bit 1: channel buffer contains received data bit 7: channel locked 01h BYTE sender ID --------N-7F15--CL01------------------------- INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL AH = 15h CL = 01h DX:DI -> full-channel structure (see #03959) Return: AL = status 00h successful 01h busy 0Ah no datagrams available Note: MW386 v1.0 returns the lowest channel with a datagram; newer versions and NTNX return the oldest datagram SeeAlso: AH=15h/CL=00h Format of Alloy full-channel structure: Offset Size Description (Table 03959) 00h BYTE number of channel with oldest datagram 01h BYTE sender ID --------N-7F15--CL02------------------------- INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS AH = 15h CL = 02h Return: AH = number of channels available (40h for MW386) Note: the application may always assume at least 32 channels available SeeAlso: AH=15h/CL=03h --------N-7F15--CL03------------------------- INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE AH = 15h CL = 03h DX:DI -> WORD for return value Return: buffer WORD filled with maximum packet size (4096 for MW386) SeeAlso: AH=15h/CL=02h --------N-7F15--CL04------------------------- INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS AH = 15h CL = 04h DX:DI -> status structure (see #03960) Return: AL = status 00h successful DX:DI structure filled 01h busy 0Ah no acknowledgement has arrived SeeAlso: AH=12h,AH=14h/CL=01h Format of Alloy status structure: Offset Size Description (Table 03960) 00h BYTE sender ID 01h BYTE channel number 02h 4 BYTEs receiver status (see #03954) --------N-7F16------------------------------- INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER AH = 16h DX:SI -> transfer structure (see #03961) Return: AL = status 00h successful 0Ah source or destination out of range 0Bh transfer kernel busy--try again Notes: this call transfers memory contents directly between users; both source and destination user IDs may differ from the caller's ID no segment wrap is allowed Format of Alloy transfer structure: Offset Size Description (Table 03961) 00h WORD bytes to transfer 02h BYTE source ID FEh = caller 03h DWORD source address 07h BYTE destination ID FFh = all slaves except caller FEh = caller 08h DWORD destination address --------N-7F21------------------------------- INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S) AH = 21h AL = sender's user ID DS:DX -> control packet (see #03962) Note: messages or commands are ignored if disabled by the destination user SeeAlso: AH=22h Format of Alloy control packet: Offset Size Description (Table 03962) 00h BYTE packet type 00h message 01h NTNX command 02h MW386 command 01h BYTE destination user ID or 'A' for all users 02h 62 BYTEs ASCIZ message (packet type 00h) BIOS keycodes terminated by NUL byte (type 01h) or word (02h) Note: a maximum of 16 keycodes will be processed for NTNX and MW386 commands --------N-7F22------------------------------- INT 7F - Alloy NTNX - GET MESSAGE AH = 22h Return: pending messages displayed on user's screen SeeAlso: AH=21h --------N-7F24------------------------------- INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS AH = 24h CL = function 00h attach 01h release CH = drive (0=A:,1=B:,etc) Return: AX = status (see #03963) Note: only drives on the current machine may be attached (Table 03963) Values for Alloy function status: 00h successful 01h invalid request 02h already attached 03h not attached 04h lock table full --------N-7F24------------------------------- INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR AH = 24h CL = function 02h attach host 03h release host Return: AX = status (see #03963) Note: the host processor may be attached in order to perform I/O via the host --------N-7F25--CL00------------------------- INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION AH = 25h CL = 00h Return: AH = version suffix letter CH = major version number CL = minor version number SeeAlso: AH=25h/CL=01h --------N-7F25--CL01------------------------- INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE AH = 25h CL = 01h Return: CL = executive type (see #03964) SeeAlso: AH=25h/CL=00h (Table 03964) Values for Alloy network executive type: 00h RTNX 01h ATNX 02h NTNX 03h BTNX 04h MW386 05h ANSK --------V-7F2525----------------------------- INT 7F - TIGA Communications Driver v2.05 - ??? AX = 2525h BX = ??? Return: ??? SeeAlso: AX=4321h,AX=5555h --------N-7F26--CL00------------------------- INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE AH = 26h CL = 00h Return: AX = file mode bits (see #03965) Note: MW386 does not support file modes, and always returns AX=001Fh SeeAlso: AH=26h,AH=26h/CL=06h Bitfields for Alloy file mode bits: Bit(s) Description (Table 03965) 0 directory protection enabled 1 extended open enabled 2 flush on every disk write 3 flush on every disk write in locked interval 4 flush on reads from simultaneously opened file --------N-7F26------------------------------- INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL AH = 26h CL = check type to set/reset 01h directory protection 02h extended open 03h flush on every disk write 04h flush on disk write if any lock set during write 05h flush on all reads if file written AL = new state (00h off, 01h on) SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h --------N-7F26--CL06------------------------- INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE AH = 26h CL = 06h Note: cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h SeeAlso: AH=26h/CL=00h --------N-7F30------------------------------- INT 7F - Alloy MW386 - GET PORT INFORMATION AH = 30h CX = MW386 port number Return: AL = result FFh if port not found else driver unit number BL = port mode BH = port type 02h remote DH = owner's machine ID DL = owner's user ID SeeAlso: INT 17/AH=8Bh --------N-7F31------------------------------- INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT AH = 31h ??? Return: ??? --------N-7F37------------------------------- INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE AH = 37h Return: ES:AX -> semaphore table --------N-7F37------------------------------- INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL AH = 37h DS:DX -> ASCIZ string to display Note: if the string is empty, a terminal update will be forced --------N-7F38------------------------------- INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER AH = 38h AL = new terminal driver number FFh dummy driver FEh current driver FDh load new driver DS:SI -> new driver SeeAlso: AH=39h --------N-7F39------------------------------- INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER AH = 39h AL = new terminal driver number FFh dummy driver FEh current driver FDh load new driver DS:SI -> new driver DL = user number (FFh = caller) DH = machine number if DL <> FFh Return: CF set if invalid user number CF clear if successful Notes: only available to supervisors the new driver number will not take effect until the user is rebooted SeeAlso: AH=38h --------N-7F3A------------------------------- INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS AH = 3Ah DL = user number (FFh = caller) DH = machine number Return: CF clear if successful AH = terminal driver number AL = baud rate (00h = 38400, 01h = 19200, etc) CL = parity (00h none, 01h even, 02h odd) CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC) CF set if invalid user number SeeAlso: AH=3Bh --------N-7F3B------------------------------- INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS AH = 3Bh AL = baud rate (00h = 38400, 01h = 19200, etc) CL = parity (00h none, 01h even, 02h odd) CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC) DL = user number (FFh = caller) DH = machine number for user Return: CF set if invalid user number Notes: only available to supervisors the new parameters will take effect immediately if the user's terminal has not been started, else AH=3Dh must be called to post the changes SeeAlso: AH=3Ah,AH=3Dh --------N-7F3C------------------------------- INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT AH = 3Ch AL = new state (00h disabled, 01h enabled) DL = user number (FFh = caller) DH = machine number for user Return: CF set if invalid user number Note: only available to supervisors SeeAlso: AH=3Dh --------N-7F3D------------------------------- INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES AH = 3Dh Note: should be called whenever a program changes the terminal type or its parameters SeeAlso: AH=3Bh --------N-7F41------------------------------- INT 7F - Alloy NTNX - LOCK FILE FOR USER AH = 41h AL = user ID DS:DX -> ASCIZ filename Return: AL = status (see #03966) Note: requests exclusive read/write access to file SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX" (Table 03966) Values for Alloy function status: 00h successful 01h invalid function 02h already locked 03h unable to lock 04h lock table full or semaphore space exhausted --------N-7F41------------------------------- INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER AH = 41h AL = user ID DS:DX -> ASCIZ semaphore name Return: AL = status (see #03966) SeeAlso: AH=00h,AH=42h"MW386" --------s-7F4150BHC1------------------------- INT 7F U - Voyetra - AAPISG - API AX = 4150h ('AP') BH = C1h BL = function (00h-13h) 00h initialize (fails except first time called) ??? Return: AX = status??? 0000h successful 0001h failed Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board BUG: the function range check uses JL instead of JB, so it will cause a crash if BL >= 80h on entry SeeAlso: AX=4331h,AX=564Dh,AX=5658h --------N-7F42------------------------------- INT 7F - Alloy NTNX - UNLOCK FILE FOR USER AH = 42h AL = user ID DS:DX -> ASCIZ filename Return: AL = status (see #03966) SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386" --------N-7F42------------------------------- INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER AH = 42h AL = user ID DS:DX -> ASCIZ semaphore name Return: AL = status 00h successful 01h invalid function 03h unable to unlock semaphore SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX" --------V-7F4321----------------------------- INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK AX = 4321h Return: AX = 0000h if installed Note: INT 7F is the default, but may be overridden SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h --------s-7F4331BHC1------------------------- INT 7F U - Voyetra - VAPISG - API AX = 4331h ('C1') BH = C1h BL = function (00h-7Ah) ??? Return: ??? Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy sound board SeeAlso: AX=4150h,AX=564Dh,AX=5658h --------N-7F4E------------------------------- INT 7F - Alloy MW386 v2+ - SET ERROR MODE AH = 4Eh AL = error mode flags bit 0: display critical disk errors bit 1: display sharing errors DX = 4E58h ("NX") Return: AL = status 00h successful SeeAlso: AH=4Fh --------N-7F4F------------------------------- INT 7F - Alloy MW386 v2+ - SET FCB MODE AH = 4Fh AL = FCB mode 02h read/write compatibility 42h read/write shared DX = 4E58h ("NX") Return: AL = status 00h successful --------V-7F5555----------------------------- INT 7F - TIGA Communications Driver v2.05 - ??? AX = 5555h BX = ??? Return: ??? SeeAlso: AX=4321h --------s-7F564DBHC1------------------------- INT 7F U - Voyetra Multimedia Player - VMP.EXE API AX = 564Dh ('VM') BH = C1h BL = function (00h-1Bh) 00h ??? Return: CF clear AX = 0000h ??? Return: AX = FFFFh if invalid function ??? SeeAlso: AX=4331h,AX=5658h --------s-7F5658BHC1------------------------- INT 7F U - Voyetra - VAPISG - API AX = 5658h ('VX') BH = C1h BL = function (00h-1Bh) ??? Return: ??? Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy sound board SeeAlso: AX=4331h,AX=564Dh --------N-7F81------------------------------- INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER AH = 81h AL = user ID DS:DX -> ASCIZ device name SeeAlso: AH=82h --------N-7F82------------------------------- INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER AH = 82h AL = user ID DS:DX -> ASCIZ device name SeeAlso: AH=81h --------N-7FA0------------------------------- INT 7F - Alloy MW386 - GET USER NAME AH = A0h DL = user number (FFh = caller) DH = machine number for user ES:DI -> 17-byte buffer for ASCIZ user name Return: CF set if invalid user number SeeAlso: AH=03h,AH=A1h --------N-7FA1------------------------------- INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER AH = A1h Return: AL = process number DL = user number DH = machine number SeeAlso: AH=03h,AH=A0h,AH=A2h --------N-7FA2------------------------------- INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL AH = A2h DL = user number (FFh = caller) DH = machine number for user Return: CF clear if successful AL = privilege level 00h supervisor 01h high 02h medium 03h low CF set if invalid user number SeeAlso: AH=A1h,AH=A3h --------N-7FA3------------------------------- INT 7F - Alloy MW386 - GET USER LOGIN STATE AH = A3h DL = user number DH = machine number for user Return: CF clear if successful AL = login state 00h never logged in 01h currently logged out 03h currently logged in CF set if invalid user number or user not active SeeAlso: AH=A2h --------N-7FA4------------------------------- INT 7F - Alloy MW386 - VERIFY USER PASSWORD AH = A4h DS:DX -> ASCIZ password (null-padded to 16 bytes) Return: AL = status 00h accepted else invalid password --------N-7FA500----------------------------- INT 7F - Alloy MW386 - GET USER STATUS AX = A500h DI = machine number and user number Return: CF clear if successful BX = user flags bit 5: allow messages CL = scan code for task manager hotkey CH = scan code for spooler hotkey DL = scan code for task swapper hotkey DH = modifier key status CF set if invalid user number SeeAlso: AX=A501h Index: hotkeys;Alloy MW386 --------N-7FA501----------------------------- INT 7F - Alloy MW386 - SET USER STATUS AX = A501h BX = user flags (see AX=A500h) CL = scan code for task manager hotkey CH = scan code for spooler hotkey DL = scan code for task swapper hotkey DH = modifier key status DI = machine number and user number Return: CF set if invalid user number Note: must have supervisor privilege to set another user's status SeeAlso: AX=A500h Index: hotkeys;Alloy MW386 --------V-7FABCDBX0000----------------------- INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY AX = ABCDh BX = 0000h Return: AX = total number of functions available ES:BX -> entry point array (see #03967) SeeAlso: AX=0104h,AX=0105h (Table 03967) Values for 8516 Touch Screen function number: 00h check initialization and reset (see #03968) 14h set user-defined subroutine (see #03969) Notes: each driver function takes two stack parameters using Pascal calling conventions: address of parameter block and address of results buffer all pointers are FAR pointers on return, AX contains the status of the call: AX = 0000h successful 0001h invalid input 0002h interface error 0003h unable to perform function Format of 8516 Touch Screen Function 00h parameter block: Offset Size Description (Table 03968) 00h WORD 0000h (function number) Note: this function should be called before any other device driver functions Format of 8516 Touch Screen Function 00h results buffer: Offset Size Description (Table 03969) 00h WORD touch screen status 0000h unavailable 0001h uncalibrated FFFFh available 02h WORD aux mouse status (0000h not present, FFFFh present) Notes: the following driver parameters will have been reset to zero: touchdown counter, liftoff counter, position at last touch, position at last lift, int call mask, select on count, select off count, pos select on count, pos select off count. the following driver parameters will have been reset as listed: mouse emulation mode: left on thresholds: 46 on screen, 96 push harder, 80 push release x, y hysteresis: 400 data repeat rate: 40/sec select mechanism: push-harder - first-touch coordinate origin: upper left corner filter frequency: medium data block mask: all enabled click lock: on --------N-7FB0------------------------------- INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER AH = B0h AL = user number DS = code segment Note: MW386 ignores AL and DS; it releases all semaphores locked using INT 67 or INT 7F locking functions SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h --------N-7FB1--SF00------------------------- INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER AH = B1h subfn 00h AL = (bits 7-5) 000 (bits 4-0) user ID Note: MW386 ignores AL; it releases all semaphores locked using INT 67 or INT 7F locking functions SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h --------N-7FB2--SF01------------------------- INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER AH = B2h subfn 01h AL = (bits 7-5) 001 (bits 4-0) user ID SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h --------N-7FB3--SF02------------------------- INT 7F - Alloy NTNX - RELEASE FILES FOR USER AH = B3h subfn 02h AL = (bits 7-5) 010 (bits 4-0) user ID SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h --------N-7FB4------------------------------- INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER AH = B4h AL = user ID SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h --------N-7FC3------------------------------- INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT AH = C3h AL = byte to write Return: CF clear if successful CF set on error SeeAlso: AH=C6h --------N-7FC5------------------------------- INT 7F - Alloy MW386 - CHANGE CONSOLE MODE AH = C5h AL = new console mode 00h keyboard indirect 01h keyboard direct 02h data handshake enforced 03h no data handshake Return: CF clear if successful AL = prior console mode CF set on error (caller is not remote user) Note: modes 2 and 3 may be used for input through the console port; no video output should be performed in these modes --------N-7FC6------------------------------- INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT AH = C6h AL = byte to write Return: CF clear if successful CF set on error (caller is not remote user) Note: any terminal driver data translation will be bypassed SeeAlso: AH=C3h,AH=C7h --------N-7FC7------------------------------- INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE AH = C7h Return: CF clear if successful AL = byte read CF set on error (no data available or caller is not remote user) Note: used to read data after placing console in mode 2 or 3 (see AH=C5h) SeeAlso: AH=C5h,AH=C6h,AH=C8h --------N-7FC8------------------------------- INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER AH = C8h AL = maximum bytes to read ES:DI -> buffer for console data Return: CF clear if successful CX = number of bytes read CF set on error (caller is not remote user) SeeAlso: AH=C7h --------N-7FCF------------------------------- INT 7F - Alloy NTNX - REBOOT USER PROCESSOR AH = CFh DS:DX -> ASCIZ string containing user number to be reset SeeAlso: AH=D6h --------N-7FD6------------------------------- INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE AH = D6h DS:DX -> reset packet (see #03970) Return: never if successful Note: all users will be shut down immediately if successful SeeAlso: AH=CFh Format of Alloy MW386 reset packet: Offset Size Description (Table 03970) 00h DWORD reset code (60606060h) 04h 16 BYTEs ASCIZ supervisor password padded with nulls --------N-7FD7------------------------------- INT 7F - Alloy MW386 - POST EVENT AH = D7h AL = user number (if local event) DX = event number --------N-7FD8------------------------------- INT 7F - Alloy MW386 - FLUSH DISK BUFFERS AH = D8h Return: CF set on error Note: forces all disk buffers to be written out immediately SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h --------N-7FDB------------------------------- INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE AH = DBh Return: AL = drive from which MW386 was started (2=C:,3=D:,etc) --------N-7FE0------------------------------- INT 7F - Alloy MW386 - CREATE DOS TASK AH = E0h AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) DS:DX -> ASCIZ task name (max 16 bytes) Return: CF clear if successful AL = task create ID CF set on error Note: only foreground DOS tasks can use this function SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h --------N-7FE1------------------------------- INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID AH = E1h AL = create ID (from AH=E0h) Return: AL = DOS process number CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) Note: this function should not be called immediately after creating a new DOS task, since the new task is being initialized by a concurrent process SeeAlso: AH=E0h,AH=E2h --------N-7FE2------------------------------- INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK AH = E2h AL = DOS process number (from AH=E1h) Return: CF set on error (invalid process number or caller not foreground task) Notes: specified task becomes the foreground task and current task is placed in the background may only be called by a foreground task SeeAlso: AH=E0h,AH=E1h --------N-7FE3------------------------------- INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK AH = E3h DS:DX -> ASCIZ task name ---v1.x--- AL = user number ---v2+--- BH = user number BL = task number Return: CF clear if successful CF set on error (invalid process number) SeeAlso: AH=E0h,AH=E4h,AH=E5h --------N-7FE4------------------------------- INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER AH = E4h ES:DI -> buffer for task name ---v1.x--- AL = user number ---v2+--- BH = user number BL = task number Return: CF clear if successful CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) DX = task flags bit 7: MS-DOS process ES:DI buffer filled CF set on error (invalid process number) SeeAlso: AH=E3h,AH=E5h --------N-7FE5------------------------------- INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME AH = E5h DS:DX -> ASCIZ task name BH = user number Return: CF clear if successful AL = DOS process number CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K) CF set on error (no match for name) SeeAlso: AH=E3h,AH=E4h --------N-7FE6------------------------------- INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS AH = E6h Return: AX = number of processes available to current user SeeAlso: AH=E0h --------N-7FE7------------------------------- INT 7F - Alloy MW386 - REMOVE DOS TASK AH = E7h AL = DOS process number Return: CF clear if successful CF set on error (invalid process number or first process) Note: can only be called by a foreground task SeeAlso: AH=E0h --------N-7FE8------------------------------- INT 7F - Alloy MW386 - DOS TASK DELAY AH = E8h CX = delay time in milliseconds Note: a delay of 0 may be used to surrender the current time slice SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS" SeeAlso: INT 2F/AX=1680h --------N-7FF0------------------------------- INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP AH = F0h AL = group number DS:DX -> ASCIZ directory name Return: CF clear if successful AX = status 0002h directory not found 0003h directory not found 0005h directory in use, cannot be restricted 02xxh restricted to group xxh CF set on error Note: the restriction on the directory may be removed by calling this function with group 0, then using AH=F1h to assign the directory to group 0 SeeAlso: AH=F1h,AH=F2h,AH=F3h --------N-7FF1------------------------------- INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP AH = F1h AL = group number DS:DX -> ASCIZ directory name Notes: performs permanent assignment to a group; no immediate action is taken unless the directory has been restricted with AH=F0h may be used to restrict a nonexistent directory SeeAlso: AH=F0h --------N-7FF2------------------------------- INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY AH = F2h CX = entry number ES:DI -> 64-byte buffer Return: CF clear if successful buffer filled with 63-byte directory info and 1-byte group number CF set on error (invalid entry) SeeAlso: AH=F0h,AH=F3h --------N-7FF3------------------------------- INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP AH = F3h AL = group number CX = entry number ES:DI -> 64-byte buffer Return: CF clear if successful CX = next entry number buffer filled with 63-byte directory info and 1-byte group number CF set on error (no more matching entries) Note: like AH=F2h, but only returns directories belonging to the specified group SeeAlso: AH=F2h --------N-7FF8------------------------------- INT 7F - Alloy MW386 - ASSIGN USER TO GROUP AH = F8h AL = group number DL = user number DH = machine number (currently 00h) Return: CF clear if successful CF set on error (user already in maximum number of groups) Note: each user is allowed eight group assignments SeeAlso: AH=F9h,AH=FAh --------N-7FF9------------------------------- INT 7F - Alloy MW386 - REMOVE USER FROM GROUP AH = F9h AL = group number DL = user number DH = machine number (currently 00h) Return: CF clear if successful CF set if failed SeeAlso: AH=F8h,AH=FAh --------N-7FFA------------------------------- INT 7F - Alloy MW386 - GET USER GROUP LIST AH = FAh DL = user number DH = machine number (currently 00h) ES:DI -> 16-byte buffer for group list Return: CX = number of groups ES:DI buffer filled with group numbers SeeAlso: AH=F8h,AH=F9h --------N-7FFB------------------------------- INT 7F - Alloy MW386 - ASSIGN GROUP NAME AH = FBh CL = group number ES:DI -> ASCIZ group name (max 17 bytes) SeeAlso: AH=FCh --------N-7FFC------------------------------- INT 7F - Alloy MW386 - GET GROUP NAME AH = FCh CL = group number ES:DI -> 17-byte buffer for ASCIZ name Return: ES:DI buffer filled Note: if the group has not been named, "(unnamed)" is returned SeeAlso: AH=FBh ----------80--------------------------------- INT 80 - Q-PRO4 - ??? --------r-80--------------------------------- INT 80 - reserved for BASIC Note: this vector and INT 81 through INT ED are modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC" --------E-80--------------------------------- INT 80 - Phar Lap 386|DOS-Extender - RELOCATED PRINT-SCREEN Note: the extender relocates INT 05 to here by default, but can be told to leave INT 05 alone with the commandline (or DOSX= environment variable) flag -PRIVEC 5 SeeAlso: INT 05"PRINT SCREEN" --------d-80--------------------------------- INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!) Note: the factory-default location for the eight bytes of scratchpad RAM needed by the SCSI adapter is 0000h:0200h, which is interrupt vectors 80h and 81h SeeAlso: INT 81"BusLogic" --------O-80--------------------------------- INT 80 - Linux - SYSTEM CALLS parameters in registers (Table 04086) Values for system call number: 00h ??? 01h exit 02h fork 03h read 04h write 05h open 06h close 07h waitpid 08h creat 09h link 0Ah unlink 0Bh execve 0Ch chdir 0Dh time 0Eh mknod 0Fh chmod 10h lchown 11h break 12h oldstat (obsolete) 13h lseek 14h getpid 15h mount 16h umount 17h setuid 18h getuid 19h stime 1Ah ptrace 1Bh alarm 1Ch oldfstat 1Dh pause 1Eh utime 1Fh stty 20h gtty 21h access 22h nice 23h ftime 24h sync 25h kill 26h rename 27h mkdir 28h rmdir 29h dup 2Ah pipe 2Bh times 2Ch prof 2Dh brk 2Eh setgid 2Fh getgid 30h signal 31h geteuid 32h getegid 33h acct 34h umount2 35h lock 36h ioctl 37h fcntl 38h mpx 39h setpgid 3Ah ulimit 3Bh oldolduname (obsolete) 3Ch umask 3Dh chroot 3Eh ustat 3Fh dup2 40h getppid 41h getpgrp 42h setsid 43h sigaction 44h sgetmask 45h ssetmask 46h setreuid 47h setregid 48h sigsuspend 49h sigpending 4Ah sethostname 4Bh setrlimit 4Ch getrlimit 4Dh getrusage 4Eh gettimeofday 4Fh settimeofday 50h getgroups 51h setgroups 52h select 53h symlink 54h oldlstat (obsolete) 55h readlink 56h uselib 57h swapon 58h reboot 59h readdir 5Ah mmap 5Bh munmap 5Ch truncate 5Dh ftruncate 5Eh fchmod 5Fh fchown 60h getpriority 61h setpriority 62h profil 63h statfs 64h fstatfs 65h ioperm 66h socketcall 67h syslog 68h setitimer 69h getitimer 6Ah stat 6Bh lstat 6Ch fstat 6Dh olduname (obsolete) 6Eh iopl 6Fh vhangup 70h idle 71h vm86old 72h wait4 73h swapoff 74h sysinfo 75h ipc 76h fsunc 77h sigreturn 78h clone 79h setdomainname 7Ah uname 7Bh modify_ldt 7Ch adjtimex 7Dh mprotect 7Eh sigprocmask 7Fh create_module 80h init_module 81h delete_module 82h get_kernel_syms 83h quotactl 84h getpgid 85h fchdir 86h bdflush 87h sysfs 88h personality 89h afs_syscall 8Ah setfsuid 8Bh setfsgid 8Ch llseek 8Dh getdents 8Eh newselect 8Fh flock 90h msync 91h readv 92h writev 93h getsid 94h fdatasync 95h sysctl 96h mlock 97h munlock 98h mlockall 99h munlockall !!! http://home.snafu.de/phpr/lhpsysc0.html --------O-80--------------------------------- INT 80 - FreeBSD - SYSTEM CALLS parameters on stack --------b-80--------------------------------- INT 80 U - AMI BIOS v1.00.12.AX1T - internal - BIOS SUBSYSTEM SELECTION AH = function 00h install and initialize BIOS subsystem AL = ??? (00h,01h,03h) CX:BX = subsystem ID (see #03971) ESI = address from which to load, or 00000000h for default for subsystem EDI = physical address at which to install, or 0 for default Note: if CX=0000h on entry, this call is applied to all subsystems whose ID has low word BX 01h get BIOS subsystem information CX:BX = subsystem ID (see #03971) Return: AL = ??? AH = ??? EDX = uncompressed size of subsystem in bytes SI = offset within subsystem of initialization routine, or FFFFh if none EDI = physical address of default location or 0 02h get matching subsystem identifier AL = index into subsystem list (return ALth occurrence matching BX) BX = low word of subsystem identifier (0001h,0002h,0004h,0005h,000Bh,FFFFh) Return: CF clear if successful CX = high word of ALth matching subsystem CF set on error Note: the system is halted if AL=00h on entry 03h set up "big real" mode (4G segment limits) 04h turn off "big real" mode (restore 64K segment limits) 05h remove BIOS subsystem CX:BX = subsystem ID to leave out Note: the system is halted if an invalid (not installed) subsystem ID is specified 06h get installed subsystem info CX:BX = subsystem ID (see #03971) Return: CF clear EDX = length of ??? EDI = linear address of start of ??? Note: the system is halted if an invalid (not installed) subsystem ID is specified Return: CF clear if successful CF set on non-fatal error Note: this interrupt vector is cleared to 0000h:0000h near the end of the BIOS startup sequence (Table 03971) Values for AMI BIOS subsystem ID: 00010001h ROM BIOS @F000-FFFF 00010002h setup??? (loaded @6000-68FF) 00010005h APM code 0001000Bh language-specific error message set (English) 00020002h PnP/PCI ACFG code (loaded @F000-F1FF) 0001FFFFh 0002FFFFh recovery code 00030004h 0003FFFFh BIOS decompression code 0004000Bh 00060004h 0100FFFFh ACFG data 10000000h ROM @C000 (64K) 10000001h HMA (48K) 10000002h RAM @7A00 (24K) 10000003h RAM @8000-BFFF 10000004h 10000005h real-mode address space (0-1M) 1000000Bh installed language-specific message set??? --------s-80----BL00------------------------- INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER BL = 00h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: AX = initialization result (see #03972) Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module, which provides access to multiple drivers for the SoundBlaster board through a single interface Range: INT 80h to INT BFh, selected automatically Note: the SBSIM installation check consists of testing for the signature "SBSIM" at offset 103h in the interrupt handler's segment. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM" SeeAlso: INT 80/BX=0000h"SBSIM" (Table 03972) Values for SBSIM error code: 01h busy--currently in use 02h bad driver specified 03h invalid function 04h voice process already active 05h couldn't start CT-VOICE 06h couldn't start CTVDSK 07h invalid SBSIM handle 08h buffer not initialized yet 09h bad filename 0Ah bad file handle 0Bh driver not started yet 0Ch XMS driver not installed 0Dh no free SBSIM handles 0Eh bad file type 0Fh couldn't free XMS block 10h invalid source selected 11h get pan position failed 12h set pan position failed 13h set volume failed 14h couldn't start fade/pan 15h couldn't stop fade/pan 16h couldn't pause fade/pan 17h not a fade/pan operation 18h bad mode for fade/pan 19h couldn't start fade/pan 1Ah source not fading/panning 1Bh FM or MIDI already playing 1Ch bad MIDI mapper format --------s-80----BL01------------------------- INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER BL = 01h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: AX = result (see #03972) SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM" --------s-80----BL02------------------------- INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER BL = 02h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: nothing SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM" --------s-80----BL03------------------------- INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER BL = 03h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: nothing SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM" SeeAlso: INT 80/BL=05h --------s-80----BL04------------------------- INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER BL = 04h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: nothing SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM" --------s-80----BL05------------------------- INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS BL = 05h BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI) Return: AX = status SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM" --------s-80----BX0000----------------------- INT 80 - SoundBlaster SBFM driver - GET VERSION BX = 0000h Return: ??? Note: SBFM installs at a free interrupt in the range 80h through BFh SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh/ES=0000h --------s-80----BX0000----------------------- INT 80 - SBSIM - "QUERYVERSION" - GET VERSION BX = 0000h Return: AX = version (AH = major, AL = minor) Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module, which provides access to multiple drivers for the SoundBlaster board through a single interface Range: INT 80h to INT BFh, selected automatically Note: the SBSIM installation check consists of testing for the signature "SBSIM" at offset 103h in the interrupt handler's segment. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 21/AX=4402h"CTMMSYS" SeeAlso: INT 80/BL=00h"SBSIM" Index: installation check;SBSIM|installation check;SoundBlaster --------s-80----BX0001----------------------- INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS BX = 0001h DX:AX -> music status byte SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM" --------s-80----BX0001----------------------- INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED BX = 0001h Return: AX = bit flags for loaded drivers (see #03973) SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM" Bitfields for SBSIM loaded drivers: Bit(s) Description (Table 03973) 0 FM 1 double disk-buffered voice driver (DDBV) 2 memory voice driver 3 auxiliary driver (mixer) 4 MIDI --------s-80----BX0002----------------------- INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE BX = 0002h CX = number of instruments DX:AX -> instrument table SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM" --------s-80----BX0002----------------------- INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT BX = 0002h AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI) Return: CF clear if successful DX:AX -> entry point CF set on error SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM" --------s-80----BX0003----------------------- INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE BX = 0003h AX = clock rate divisor (1193180 / desired frequency in Hertz) FFFFh to restore to 18.2 Hz SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM" --------s-80----BX0004----------------------- INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE BX = 0004h AX = driver clock rate divisor (1193180 / frequency in Hertz) Note: default frequency is 96 Hz SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM" --------s-80----BX0005----------------------- INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC BX = 0005h AX = semi-tone offset SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM" --------s-80----BX0005----------------------- INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS BX = 0005h AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI) Return: CF clear if successful DX:AX -> buffer CX = buffer size in K CF set on error Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module, which provides access to multiple drivers for the SoundBlaster board through a single interface Range: INT 80h to INT BFh, selected automatically Note: the SBSIM installation check consists of testing for the signature "SBSIM" at offset 103h in the interrupt handler's segment. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM" --------s-80----BX0006----------------------- INT 80 - SoundBlaster SBFM driver - PLAY MUSIC BX = 0006h DX:AX -> music block Return: AX = status 0000h successful 0001h music already active SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h --------s-80----BX0007----------------------- INT 80 - SoundBlaster SBFM driver - STOP MUSIC BX = 0007h Return: AX = status 0000h successful 0001h music not active SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h --------s-80----BX0008----------------------- INT 80 - SoundBlaster SBFM driver - RESET DRIVER BX = 0008h Return: AX = status 0000h successful 0001h music is active SeeAlso: BX=0000h"SBFM" --------s-80----BX0009----------------------- INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC BX = 0009h Return: AX = status 0000h successful 0001h no music active SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h --------s-80----BX000A----------------------- INT 80 - SoundBlaster SBFM driver - RESUME MUSIC BX = 000Ah Return: AX = status 0000h successful 0001h no music paused SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM" --------s-80----BX000B----------------------- INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS BX = 000Bh DX:AX -> trap routine SeeAlso: BX=0000h"SBFM" --------s-80----BX0400----------------------- INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME BX = 0400h AX = sound source (see #03974) Return: CF clear if successful AX = volume CF set on error AX = error code (see #03972 at INT 80/BL=00h) SeeAlso: BX=0401h"SBSIM" (Table 03974) Values for SBSIM sound source: 00h master volume 01h voice 02h FM 03h CD 04h line in 05h microphone --------s-80----BX0401----------------------- INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME BX = 0401h AX = sound source (see #03974) DX = new volume Return: AX = result (0000h = success) (see also INT 80/BL=00h) SeeAlso: BX=0400h"SBSIM" --------N-8001------------------------------- INT 80 - QPC Software PKTINT.COM - INITIALIZE AH = 01h Return: AX = 0000h CX = FFFFh DX = FFFFh Notes: this interrupt is the WinQVTNet protected mode interface to Windows 3.0 all buffer pointers are reset back to 0 --------N-8002------------------------------- INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES AH = 02h BX = extra bytes to allocate per packet Return: AX = segment address of 10K buffer (for receives???) BX = segment address of 2K buffer (for sends???) SeeAlso: AH=05h --------N-8003------------------------------- INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT AH = 03h Return: CX:DX -> receive call address Note: the returned address can be used in the packet driver calls since it will be a valid address in all DOS boxes SeeAlso: AH=06h --------N-8004------------------------------- INT 80 - QPC Software PKTINT.COM - ENABLE??? AH = 04h BX = ??? Return: ??? SeeAlso: AH=01h --------N-8005------------------------------- INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS AH = 05h Return: AX = amount of buffer currently in use BX = current offset in buffer CX = number of times receive has been called SeeAlso: AH=02h --------N-8006------------------------------- INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET AH = 06h Return: BX = next packet offset CX = number of bytes still buffered DX = size of packet released back into buffer pool SeeAlso: AH=03h --------r-81--------------------------------- INT 81 - reserved for BASIC Note: this vector is modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 80"BASIC",INT 82"BASIC" --------N-81--------------------------------- INT 81 - IBM TOKEN RING ADAPTER - ??? SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING" --------d-81--------------------------------- INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!) Note: the factory-default location for the eight bytes of scratchpad RAM needed by the SCSI adapter is 0000h:0200h, which is interrupt vectors 80h and 81h SeeAlso: INT 80"BusLogic" --------b-81--------------------------------- INT 81 - AMI WinBIOS - SECOND HARD DRIVE AUTODETECTION Notes: used by WinBIOS with core version of July 1994 or later QEMM 7.5 began using this interrupt internally after the QPAT3 maintenance release when searching for "ROM holes", causing a lengthy delay during bootup. Adding the QEMM parameter RH:N will avoid the QEMM call to INT 81 and speed up the boot process --------O-81--------------------------------- INT 81 - Paragon Technology PTS/DOS 6.5x, S/DOS 1.0 - API --------s-810200--------------------------- INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE AX = 0200h BX = PSP segment SI = ??? (data area) Return: AX = status (see #03975) BL = emulation state bit 1 Emulation is on bit 2 Emulation is off Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32 emulator for the Gravis UltraSound Range: INT 81 to INT FF (see INT 21/AX=FD12h), selected by scanning for an interrupt with vector 0000h:0000h SeeAlso: AX=0202h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h (Table 03975) Values for MegaEm status: 0000h successful 0001h invalid command line optie 0002h display options 0003h ??? 0004h invalid number of voices specified 0005h could not load enough patches to provide acceptable emulation 0006h to many warnings on patch loading 0007h ??? (not used anymore) 0008h /CO and SCSI don't work together 0009h invalid music volume 000Ah invalid master volume 000Bh /SC switch is no longer valid 0100h ??? (some error on patch loading) --------s-810202--------------------------- INT 81 - Gravis UltraSound - MegaEm - ??? AX = 0202h Return: AX = ??? SeeAlso: AX=0200h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h --------s-810300--------------------------- INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ??? AX = 0300h Return: AX = ??? SeeAlso: AX=0200h,AX=0202h,AX=0400h,INT 21/AX=FD12h/BX=3457h --------s-810400--------------------------- INT 81 - Gravis UltraSound - MegaEm - ??? AX = 0400h BX = ??? (segment) Return: AX = ??? BX = ??? Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32 emulator for the Gravis UltraSound SeeAlso: AX=0200h,AX=0202h,AX=0300h,INT 21/AX=FD12h/BX=3457h --------s-812010------------------------ INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT AX = 2010h ??? Return: ??? Note: MegaEm calls this function from its INT 78 handler, and then immediately returns (via RETF in v3.10, thus leaving the flags on the stack); this permits it to operate while hooking only one interrupt through the memory manager in protected mode SeeAlso: AX=2011h,AX=2012h --------s-812011------------------------ INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT AX = 2011h ??? Return: ??? Note: MegaEm calls this function from its NMI (INT 02) handler, and then immediately returns; this permits it to operate while hooking only one interrupt through the memory manager in protected mode SeeAlso: AX=2010h,AX=2012h --------s-812012------------------------ INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT AX = 2012h ??? Return: ??? Note: MegaEm calls this function from its GUS IRQ handler, and then immediately returns; this permits it to operate while hooking only one interrupt through the memory manager in protected mode SeeAlso: AX=2010h,AX=2011h --------s-812015------------------------ INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ??? AX = 2015h ??? Return: ??? --------r-82--------------------------------- INT 82 - reserved for BASIC SeeAlso: INT 81"BASIC",INT 83"BASIC" --------N-82--------------------------------- INT 82 - IBM TOKEN RING ADAPTER - ??? AH = function 00h display message??? DS:BX -> string ??? Return: ??? SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING" --------r-83--------------------------------- INT 83 - reserved for BASIC SeeAlso: INT 82"BASIC",INT 84"BASIC" --------s-8300------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 00h ??? Return: CF clear (successful) AX = ??? (0302h) Program: JM Pro Tracker is a public-domain resident .MOD (digital music) player by Josha Munnik (Table 03976) Values for JM Pro Tracker error code: 000Ah ??? 000Bh ??? 0014h ??? 001Eh some required parameters have not yet been set 001Fh already playing??? FExxh busy (API call already in progress) FFxxh invalid function number --------s-8301------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 01h DX = ??? or FFFFh ??? Return: CF clear if successful CF set on error AX = error code (see #03976) --------s-8302------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 02h BX = ??? ??? Return: CF clear if successful AX = ??? BX = ??? CX = ??? DX = ??? SI = ??? CF set on error AX = error code (000Ah,000Bh,other) (see #03976) --------s-8303------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 03h BX = ??? (only low four bits, must be nonzero) CX = ??? ??? Return: CF clear if successful CF set on error AX = error code (0014h) (see #03976) --------s-8304------------------------------- INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER??? AH = 04h CX = number of bytes in suggested buffer ES:DI -> suggested buffer for DMA transfers??? Return: CF clear if successful ES:AX -> actual buffer (filled with bytes of 80h) CX = actual length (multiple of 4) CF set on error AX = error code (see #03976) Note: the buffer must not cross a 64K DMA page boundary --------s-8305------------------------------- INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER AH = 05h CX = length of buffer ES:DI -> buffer for/containing ??? Return: CF clear (successful) SeeAlso: AH=06h,AH=07h,AH=18h --------s-8306------------------------------- INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER AH = 06h CX = length of buffer ES:DI -> buffer for/containing ??? Return: CF clear (successful) SeeAlso: AH=05h,AH=07h,AH=18h --------s-8307------------------------------- INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER AH = 07h BX = ??? CX = length of buffer ES:DI -> buffer for/containing ??? Return: CF clear (successful) SeeAlso: AH=05h,AH=06h,AH=18h --------s-8308------------------------------- INT 83 - JM Pro Tracker v5.0 - START PLAYING??? AH = 08h ??? Return: CF clear if successful ??? CF set on error AX = error code (001Eh,001Fh) (see #03976) SeeAlso: AH=09h,AH=0Ah --------s-8309------------------------------- INT 83 - JM Pro Tracker v5.0 - PAUSE??? AH = 09h ??? Return: CF clear if successful CF set on error AX = error code (see #03976) SeeAlso: AH=08h,AH=0Ah --------s-830A------------------------------- INT 83 - JM Pro Tracker v5.0 - RESUME??? AH = 0Ah ??? Return: CF clear if successful CF set on error AX = error code (001Fh) (see #03976) SeeAlso: AH=08h,AH=09h --------s-830B------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Bh BX = ??? ??? Return: CF clear if successful CF set on error --------s-830C------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Ch DX bit 5 = ??? ??? Return: CF clear if successful BX = ??? (FFFFh) CX = ??? (0000h) DX = ??? CF set on error AX = error code (see #03976) --------s-830D------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Dh BX = ??? ??? Return: CF clear (successful) --------s-830E------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Eh BX = ??? (ignored if ES:DI = 0000h:0000h) ES:DI -> ??? or 0000h:0000h Return: CF clear (successful) --------s-830F------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 0Fh ??? Return: CF clear if successful AX = ??? CF set on error AX = error code (see #03976) --------s-8310------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 10h BL = subfunction??? CX = ??? DX = ??? ??? Return: CF clear if successful CX = DX = ??? CF set on error AX = error code (see #03976) SeeAlso: AH=18h --------s-8311------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 11h BL = ??? CX = ??? Return: CF clear (successful) --------s-8312------------------------------- INT 83 - JM Pro Tracker v5.0 - CLEAR ??? AH = 12h Return: nothing --------s-8313------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 13h BX = ??? Return: CF clear (successful) --------s-8314------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 14h ??? Return: CF clear (successful) BX = ??? --------s-8315------------------------------- INT 83 - JM Pro Tracker v5.0 - GET ??? AH = 15h BX = what to get (zero/nonzero) Return: CF clear if successful BX = ??? DX = ??? CF set on error AX = error code (see #03976) --------s-8316------------------------------- INT 83 - JM Pro Tracker v5.0 - ??? AH = 16h AL = subfunction 00h ??? Return: BX = ??? CX = ??? DX = ??? ES:DI -> ??? CF indicates ??? 01h ??? Return: BX = ??? CX = ??? DX = ??? Return: CF clear if successful CF set on error AX = error code (FFxxh) (see #03976) --------s-8317------------------------------- INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT AH = 17h Return: CF clear if successful CF set on error (hooked by another program) --------s-8318------------------------------- INT 83 - JM Pro Tracker v5.0 - SET BUFFERS AH = 18h ES:DI -> buffer-pointer structure (see #03977) Return: nothing SeeAlso: AH=05h,AH=06h,AH=07h,AH=10h Format of JM Pro Tracker buffer-pointer structure: Offset Size Description (Table 03977) 00h WORD length of ??? buffer (see AH=05h) 02h DWORD -> ??? buffer (see AH=05h) 06h WORD length of ??? buffer (see AH=06h) 08h DWORD -> ??? buffer (see AH=06h) 0Ch WORD length of ??? buffer (see AH=07h) 0Eh DWORD -> ??? buffer (see AH=07h) 12h WORD ??? (see AH=07h) 14h WORD ??? (see AH=10h) (subfunction 01h) 16h WORD ??? (see AH=10h) (subfunction 01h) 18h WORD ??? (see AH=10h) (subfunction 00h) 1Ah WORD ??? (see AH=10h) (subfunction 01h) --------r-84--------------------------------- INT 84 - reserved for BASIC SeeAlso: INT 83"BASIC",INT 85"BASIC" --------r-85--------------------------------- INT 85 - reserved for BASIC Note: INT 80 through INT ED are modified but not restored by Direct Access v4.0, and may be left dangling by other programs written with the same version of compiled BASIC SeeAlso: INT 84"BASIC",INT 86"BASIC" --------N-86--------------------------------- INT 86 - NetBIOS - ORIGINAL INT 18 Note: some implementations of NetBIOS reportedly relocate INT 18 here SeeAlso: INT 18"BOOT HOOK" --------r-86--------------------------------- INT 86 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 85"BASIC",INT 87"BASIC" --------r-86--------------------------------- INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS SeeAlso: INT 21/AH=4Ch,INT 87"APL" --------r-87--------------------------------- INT 87 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 86"BASIC",INT 88"BASIC" --------r-87--------------------------------- INT 87 - APL*PLUS/PC - ??? SeeAlso: INT 86"APL",INT 88/AL=00h --------v-87--------------------------------- INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!) Note: the ZeroHunt virus copies its resident code down to 0000h:021Ch and following SeeAlso: INT 8B"VIRUS" --------r-88--------------------------------- INT 88 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 87"BASIC",INT 89"BASIC" ----------88--------------------------------- INT 88h - WANG PC - GET CONFIGURATION AL = get info type 01h Get System Console Return: ES:BX -> Configuration structure (see #04089) else: ??? SeeAlso: PORT 1010h"Wang",MEM F000h:0000h,MEM FC00h:3FC2h,INT 21/AX=4402h Format of Wang PC System Console configuration structure: Offset Size Description (Table 04089) 00h WORD version 02h WORD memory size 04h 2 WORDs reserved 08h WORD number of screens (1..4) 0Ah 4 WORDs offset of console screen info structure 1..4 within configuration structure's segment (ES) (see #04090) Format of Wang PC Screen Info structure: Offset Size Description (Table 04090) 00h BYTE state (bit 7 set appears to indicate the active console that is currently attached to the screen) 01h BYTE scanoff 02h WORD buffer segment 04h BYTE colors 05h BYTE row 06h BYTE column 07h BYTE attribute 00h = ??? 02h = ??? 0Fh = white on black 08h BYTE auxiliary mode 09h BYTE auxiliary mode 2 SeeAlso: #04089 --------r-88--00----------------------------- INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE AL = 00h BX = STPTR of the variable to be assigned ES:SI -> model of type, rank, and shape (see #03978) Return: ES:DI -> first data byte of object DX:CX = number of elements in the object SeeAlso: INT 88/AL=01h,INT 88/AL=08h,INT C8"APL" Format of APL*PLUS/PC shape model: Offset Size Description (Table 03978) 00h BYTE type 01h character (2-byte dimension sizes) 02h integer (2-byte dimension sizes) 08h floating point (2-byte dimension sizes) 11h character (4-byte dimension sizes) 12h integer (4-byte dimension sizes) 18h floating point (4-byte dimension sizes) 01h BYTE rank 02h (D)WORD first dimension of shape N (D)WORD second dimension of shape ... --------r-88--01----------------------------- INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE AL = 01h AH = rank BX = STPTR of the variable to be assigned CX = first dimension (if any) DX = second dimension (if any) Return: ES:DI -> object CX = number of elements in the object Note: each dimension must be 32767 or smaller SeeAlso: AL=00h,AL=02h,AL=08h,INT C8"APL" --------r-88--02----------------------------- INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE AL = 02h AH = rank BX = STPTR of the variable to be assigned CX = first dimension (if any) DX = second dimension (if any) Return: ES:DI -> object CX = number of elements in the object Note: each dimension must be 32767 or smaller SeeAlso: AL=01h,AL=08h,INT C8"APL" --------r-88--08----------------------------- INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE AL = 08h AH = rank BX = STPTR of the variable to be assigned CX = first dimension (if any) DX = second dimension (if any) Return: ES:DI -> object CX = number of elements in the object Note: each dimension must be 32767 or smaller SeeAlso: AL=01h,AL=02h,INT C8"APL" --------r-88--F5----------------------------- INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL AL = F5h BX = STPTR of object SeeAlso: INT C8"APL" --------r-88--F6----------------------------- INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING AL = F6h BX = STPTR of object SeeAlso: AL=F7h,AL=F8h,INT C8"APL" --------r-88--F7----------------------------- INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING AL = F7h BX = STPTR of object SeeAlso: AL=F6h,AL=F8h,INT C8"APL" --------r-88--F8----------------------------- INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING AL = F8h BX = STPTR of object Return: BX = name's outswapping status 0000h eligible 0001h not eligible SeeAlso: AL=F6h,AL=F7h,INT C8"APL" --------r-88--F9----------------------------- INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS AL = F9h ES:SI -> name CX = length of name Return: CF set if name ill-formed or already in use BX = STPTR if already in symbol table CF clear if name is available for use BX = 0000h Note: does not force the name into the workspace SeeAlso: AL=FEh,AL=FFh,INT C8"APL" --------r-88--FC----------------------------- INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION AL = FCh BX = amount of memory needed (paragraphs) Return: CF clear if memory available CF set if a workspace compaction is required SeeAlso: AL=FDh,INT C8"APL" --------r-88--FD----------------------------- INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY AL = FDh Return: BX = number of paragraphs available in workspace SeeAlso: AL=FCh,INT C8"APL" --------r-88--FE----------------------------- INT 88 - APL*PLUS/PC - CREATE NAME AL = FEh ES:SI -> name CX = length of name Return: BX = STPTR of name DX = interpreter's data segment SeeAlso: AL=F9h,AL=FFh,INT C8"APL" --------r-88--FF----------------------------- INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS AL = FFh ES:SI -> name CX = length of name Return: CF set if name ill-formed or already in use BX = STPTR if already in symbol table CF clear if name is available for use BX = 0000h Note: forces the name into the workspace and makes it immune from outswapping SeeAlso: AL=F9h,AL=FEh,INT C8"APL" --------r-89--------------------------------- INT 89 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 88"BASIC",INT 8A"BASIC" --------r-89--------------------------------- INT 89 - APL*PLUS/PC - ??? Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete the older interrupts SeeAlso: INT C9"APL" --------r-8A--------------------------------- INT 8A - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 89"BASIC",INT 8B"BASIC" --------r-8A--------------------------------- INT 8A - APL*PLUS/PC - PRINT SCREEN Note: same as INT 05 SeeAlso: INT 05"PRINT SCREEN",INT 8C"APL",INT CA"APL" --------r-8B--------------------------------- INT 8B - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8A"BASIC",INT 8C"BASIC" --------r-8B--------------------------------- INT 8B - APL*PLUS/PC - BEEP Note: same as printing a ^G via INT 21/AH=02h SeeAlso: INT 21/AH=02h,INT CB"APL" --------v-8B--------------------------------- INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!) Note: if the ZeroHunt virus is resident, this vector will contain either EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415) SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS" --------r-8C--------------------------------- INT 8C - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8B"BASIC",INT 8D --------r-8C--------------------------------- INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY AX = flag 0000h do not save display attributes 0001h save attributes SeeAlso: INT CC"APL" --------r-8D--------------------------------- INT 8D - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8C,INT 8E --------r-8E--------------------------------- INT 8E - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8D,INT 8F --------r-8F--------------------------------- INT 8F - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8E,INT 90 --------r-90--------------------------------- INT 90 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 8F,INT 91 --------r-90--------------------------------- INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER --------r-91--------------------------------- INT 91 - IBM ROM BASIC - used while in interpreter Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM BASIC.COM/BASICA.COM do not restore vector on termination SeeAlso: INT 90,INT 92 --------N-91--------------------------------- INT 91 - IBM TOKEN RING ADAPTER - ??? SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING" --------!---Section--------------------------